This commit is contained in:
Hadrien Croubois
2023-03-16 11:02:15 +01:00
parent dbb4a29dc9
commit 607268bd97
2 changed files with 7 additions and 7 deletions

View File

@ -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 {

View File

@ -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)
)