File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed
regression/contracts-dfcc/quantifiers-loops-fresh-bound-vars-smt Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change 1
1
CORE dfcc-only smt-backend broken-cprover-smt-backend
2
2
main.c
3
- --dfcc main --apply-loop-contracts --enforce-contract foo --malloc-may-fail --malloc-fail-null _ --z3 --slice-formula --no-standard-checks
3
+ --dfcc main --apply-loop-contracts --enforce-contract foo --malloc-may-fail --malloc-fail-null _ --bitwuzla --slice-formula --no-standard-checks
4
4
^EXIT=0$
5
5
^SIGNAL=0$
6
6
^VERIFICATION SUCCESSFUL$
Original file line number Diff line number Diff line change
1
+ CORE dfcc-only smt-backend broken-cprover-smt-backend
2
+ main.c
3
+ --dfcc main --apply-loop-contracts --enforce-contract foo --malloc-may-fail --malloc-fail-null --dfcc-simple-invalid-pointer-model _ --z3 --slice-formula --no-standard-checks
4
+ ^EXIT=0$
5
+ ^SIGNAL=0$
6
+ ^VERIFICATION SUCCESSFUL$
7
+ --
8
+ ^warning: ignoring
9
+ --
10
+ Tests support for quantifiers in loop contracts with the SMT backend.
11
+ When quantified loop invariants are used, they are inserted three times
12
+ in the transformed program (base case assertion, step case assumption,
13
+ step case assertion), and each occurrence needs to be rewritten with fresh
14
+ symbols for the quantified variables. The SMT solver would with an error
15
+ whenever this renaming is not properly done.
16
+ When z3 is used, for performance we have to activate the simple invalid pointer
17
+ model in the cprover_contracts library.
You can’t perform that action at this time.
0 commit comments