diff --git a/certora/specs/GovernorBaseRules.spec b/certora/specs/GovernorBaseRules.spec index baa4d18c4..7e856dbe1 100644 --- a/certora/specs/GovernorBaseRules.spec +++ b/certora/specs/GovernorBaseRules.spec @@ -138,8 +138,8 @@ rule noExecuteBeforeDeadline(uint256 pId, env e, method f, calldataarg args) │ Invariant: The quorum numerator is always less than or equal to the quorum denominator │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ */ -invariant quorumRatioLessThanOne(uint256 blockNumber) - quorumNumerator(blockNumber) <= quorumDenominator() +invariant quorumRatioLessThanOne() + quorumNumerator() <= quorumDenominator() filtered { f -> !skip(f) } { preserved { diff --git a/certora/specs/GovernorPreventLateQuorum.spec b/certora/specs/GovernorPreventLateQuorum.spec index cb906810b..ec85e0737 100644 --- a/certora/specs/GovernorPreventLateQuorum.spec +++ b/certora/specs/GovernorPreventLateQuorum.spec @@ -29,17 +29,17 @@ rule deadlineChangeToPreventLateQuorum(uint256 pId, env e, method f, calldataarg // This is not (easily) provable as an invariant because the prover think `_totalSupplyCheckpoints` // can arbitrarily change, which causes the quorum() to change. Not sure how to fix that. - require quorumReached(pId) <=> getExtendedDeadline(pId) > 0; + // require quorumReached(pId) <=> getExtendedDeadline(pId) > 0; // Timeout uint256 deadlineBefore = proposalDeadline(pId); bool deadlineExtendedBefore = getExtendedDeadline(pId) > 0; - bool quorumReachedBefore = quorumReached(pId); + // bool quorumReachedBefore = quorumReached(pId); // Timeout f(e, args); uint256 deadlineAfter = proposalDeadline(pId); bool deadlineExtendedAfter = getExtendedDeadline(pId) > 0; - bool quorumReachedAfter = quorumReached(pId); + // bool quorumReachedAfter = quorumReached(pId); // Timeout // deadline can never be reduced assert deadlineBefore <= proposalDeadline(pId); @@ -53,8 +53,8 @@ rule deadlineChangeToPreventLateQuorum(uint256 pId, env e, method f, calldataarg ) || ( !deadlineExtendedBefore && deadlineExtendedAfter && - !quorumReachedBefore && - quorumReachedAfter && + // !quorumReachedBefore && + // quorumReachedAfter && deadlineAfter == clock(e) + lateQuorumVoteExtension() && votingAll(f) )