Closed
Description
CBMC version: develop
Operating system: Mac OS 10.15.7
Test case:
#include <assert.h>
void main()
{
int i;
__CPROVER_assume(i % 2 == 0);
assert(__CPROVER_exists { int j ; i == j + j });
}
Exact command line resulting in the issue:
cbmc --z3 test.c
or cbmc --cvc4 test.c
What behaviour did you expect:
CBMC would verify the assertion and report success.
What happened instead:
$ cbmc --z3 test.c | tail
SMT2 solver returned error message:
"line 88 column 17: model is not available"
Running SMT2 QF_AUFBV using Z3
Runtime Solver: 1.69421s
Runtime decision procedure: 1.69455s
** Results:
test.c function main
[main.assertion.1] line 7 assertion __CPROVER_exists { int j ; i == j + j }: ERROR
** 0 of 1 failed (1 iterations)
VERIFICATION ERROR
$ cbmc --cvc4 test.c | tail
SMT2 solver returned error message:
"The logic was specified as QF_AUFBV, which doesn't include THEORY_QUANTIFIERS, but got a preprocessing-time fact for that theory.
The fact:
(forall ((|main::1::1::j!0#0| (_ BitVec 32))) (not (= (concat ((_ extract 30 0) |main::1::1::j!0#0|) (_ bv0 1)) |main::1::i!0@1#1|)) )"
Running SMT2 QF_AUFBV using CVC4
Runtime Solver: 0.0263352s
Runtime decision procedure: 0.0265899s
** Results:
main.c function main
[main.assertion.1] line 7 assertion __CPROVER_exists { int j ; i == j + j }: ERROR
** 0 of 1 failed (1 iterations)
VERIFICATION ERROR
Additional context:
CBMC also fails to verify this program with the SAT backend, but a similar issue has already been reported in #5395.