-
Notifications
You must be signed in to change notification settings - Fork 39
Open
Description
Dear AdaCore,
I'm experimenting with verification of some cryptographic code (in this case the LibMLKEM library). We have found that CVC5 1.2.0 is very poor at reasoning about the "power" theory for integers, and we have to fall back on AltErgo to discharge those VCs.
BUT... we find that CVC5 has a built-in "int.pow2" operator, which it is able to reason with. If I remove the "power" theory from the SMT file, and change all instances of (power 2 i) to (int.pow2 i) then CVC5 proves my VCs almost instantly. Perhaps gnatprove could be changed to use "int.pow2" where possible when --prover=cvc5 is selected?
This is using GNATProve 14.1.0 on macOS.
I can send example SMT files if you'd like to see an example.
Metadata
Metadata
Assignees
Labels
No labels