Skip to content

[Certora] Fix flaky SMT timeout on NoDebtWithoutCollateral (lockedOrNoDebtWithoutCollateral)#1080

Closed
claude[bot] wants to merge 2 commits into
mainfrom
claude/nodebtwithoutcollateral-real-fix
Closed

[Certora] Fix flaky SMT timeout on NoDebtWithoutCollateral (lockedOrNoDebtWithoutCollateral)#1080
claude[bot] wants to merge 2 commits into
mainfrom
claude/nodebtwithoutcollateral-real-fix

Conversation

@claude

@claude claude Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Requested by Mathis GD · Slack thread

The lockedOrNoDebtWithoutCollateral invariant leg is a flaky ~2h SMT timeout under -havocAllByDefault. The fix constrains the collateral-bitmap state space in the liquidate preserved block via requireInvariant hints (atMostMaxCollateralsBitsSet, nonZeroCollateralsAreActivated, both proved in CollateralBitmap.spec and redeclared locally rather than imported) and bounds the RCF denominator WAD*WAD - lif*lltv away from zero using the market-creation maxLif bound (createdMarketsRespectMaxLifBound in CreatedMarkets.spec), removing the nonlinear case splits that dominate solve time.

Supersedes closed #1077 (whose _.price() => NONDET summary was a proven no-op, since -havocAllByDefault does not havoc static calls); verification is CI-only.


Generated by Claude Code

claude added 2 commits July 24, 2026 14:55
…WithoutCollateral)

Constrain the collateral-bitmap state space via requireInvariant hints
(atMostMaxCollateralsBitsSet, nonZeroCollateralsAreActivated) and bound the
RCF denominator WAD*WAD - lif*lltv using the market-creation maxLif bound,
cutting nonlinear case splits in the liquidate preserved block.
@MathisGD MathisGD closed this Jul 25, 2026
@MathisGD
MathisGD deleted the claude/nodebtwithoutcollateral-real-fix branch July 25, 2026 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants