Do not use as const with Z3 due to soundness issue#9011
Conversation
Disable `as const` for Z3 as it produces wrong results per Z3Prover/z3#9550.
There was a problem hiding this comment.
Pull request overview
Disables the SMT2 as const array constant construct for the Z3 backend due to a soundness bug in Z3 (Z3Prover/z3#9550) that causes incorrect results.
Changes:
- Set
use_as_const = falsefor the Z3 solver path insmt2_convt's constructor.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #9011 +/- ##
===========================================
- Coverage 80.55% 80.55% -0.01%
===========================================
Files 1707 1707
Lines 189047 189047
Branches 73 73
===========================================
- Hits 152292 152287 -5
- Misses 36755 36760 +5 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
mlkem-native test results using patched CBMC (and standard Z3 4.15.3) look good. No regressions. A bit slower at K=4, but not too bad. A bit faster for K=2 and K=3. |
|
mldsa-native test results using patched CBMC (and standard Z3 4.15.3) look good. No regressions. A bit faster too for all parameter sets. |
Disable
as constfor Z3 as it produces wrong results per Z3Prover/z3#9550.