Skip to content

[Certora] Precise calculation of earliestExecutionTime()#906

Open
jhoenicke wants to merge 4 commits intomainfrom
jochen/eet_preciseminimum
Open

[Certora] Precise calculation of earliestExecutionTime()#906
jhoenicke wants to merge 4 commits intomainfrom
jochen/eet_preciseminimum

Conversation

@jhoenicke
Copy link
Copy Markdown
Collaborator

This fixes the spec EarliestTime and tracks the minDecreaseTimelock values precisely.

I still get a counterexample when for decreaseTimelock(). Apparently there is something strange in the prover, as the counterexample doesn't even enter the if statement in the hook.

Disclaimer: I also noticed that the traces for the sanity check are wrong, in the sense that they compute the signature incorrectly. It looks like this problem already existed before. I opened a ticket for the Certora prover to investigate this.

@jhoenicke
Copy link
Copy Markdown
Collaborator Author

I now believe that the only reason why the current code verifies (even the current main branch) is because the loop unrolling depth is too low for extractDecreaseTimelockArgs. Unfortunately the sanity check doesn't catch this, because it generates traces where the signature is never decreaseTimelock() even for the decreaseTimelock function.

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.

1 participant