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 11CORE dfcc-only smt-backend broken-cprover-smt-backend
22main.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
44^EXIT=0$
55^SIGNAL=0$
66^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