Open zvonimir opened 7 years ago
Can you tell me the command line that you used?
Simply corral mul-sim4.bpl
.
Btw, I remember this being the typical exception when Z3 incompleteness is encountered. However, I looked at the prover log, and I did not see the usual incompleteness suspects (quantifiers, arrays, etc). Hence, I am not sure if that is indeed the root cause.
Interestingly, corral with Z3 version 4.4.0 succeeds. With 4.5.0, I do get the crash. I passed the additional flag /proverLog:log
. When I feed log
to z3-4.5.0
it prints:
(:reason-unknown "smt tactic failed to show goal to be sat/unsat (incomplete (theory arithmetic))")
I believe corral isn't designed to handle such kind of incompleteness.
Thanks @akashlal. I will explore this further on the Z3 side. Btw, this is just a suggestion, but maybe it would be possible to print out a "gentler" error message when Z3 incompleteness is encountered instead of crashing.
Interestingly this problem persists with Z3 versions 4.6.0, 4.7.1, 4.8.1, 4.8.3, and 4.8.4.
With Z3 versions 4.8.5 and 4.8.6, Z3 seems to spin (forever?).
With Z3 version 4.8.7, Z3 complains about an unknown model_compress
parameter.
% corral /proverLog:prover.log ~/Desktop/mul-sim4.bpl
Corral program verifier version 0.1.0.0
Warning: Using default recursion bound of 1
Single threaded program detected
Verifying program while tracking: {assertsPassed}
Prover error: line 17 column 28: unknown parameter 'model_compress'
Legal parameters are:
auto_config (bool) (default: true)
debug_ref_count (bool) (default: false)
dot_proof_file (string) (default: proof.dot)
dump_models (bool) (default: false)
memory_high_watermark (unsigned int) (default: 0)
memory_max_alloc_count (unsigned int) (default: 0)
memory_max_size (unsigned int) (default: 0)
model (bool) (default: true)
model_validate (bool) (default: false)
proof (bool) (default: false)
rlimit (unsigned int) (default: 0)
smtlib2_compliant (bool) (default: false)
stats (bool) (default: false)
timeout (unsigned int) (default: 4294967295)
trace (bool) (default: false)
trace_file_name (string) (default: z3.log)
type_check (bool) (default: true)
unsat_core (bool) (default: false)
verbose (unsigned int) (default: 0)
warning (bool) (default: true)
well_sorted_check (bool) (default: false)
Corral encountered a prover error. Giving up.
This PR fixes the last issue.
With that fix, Z3 4.8.7 behaves as 4.8.5 and 4.8.6, spinning (forever?).
Corral crashes on the attached file mul-sim4.txt with the exception I inlined below. I am using the latest commit of Corral (1513113343aa) and Z3 release 4.5.0.