Skip to content

MathSAT SMT2 not working #6263

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
xXMarkuski opened this issue Jul 30, 2021 · 2 comments
Open

MathSAT SMT2 not working #6263

xXMarkuski opened this issue Jul 30, 2021 · 2 comments
Assignees

Comments

@xXMarkuski
Copy link

CBMC version: Tested with CBMC 5.27.0 and 5.35.0
Operating system: Fedora 34
Test Case:

#include <assert.h>

void main(){
  assert(0);
}

Exact command line resulting in the issue:

$cbmc simpleProgram.c --mathsat | tail
SMT2 solver returned error message:
    "The CNF conversion does not support quantifiers"
Running SMT2 QF_AUFBV using MathSAT
Runtime Solver: 0.0204232s
Runtime decision procedure: 0.0205809s

** Results:
simpleProgram.c function main
[main.assertion.1] line 4 assertion 0: ERROR

** 0 of 1 failed (1 iterations)
VERIFICATION ERROR

What behaviour did you expect: Mathsat returns SAT
What happened instead: MathSAT exits with an error message

I believe this is due to commit "Fixed SMT encoding of array_of_expr" first included in version 5.27.0, which enabled generation of using a quantifier-based initialization instead of lambda in smt2_conv.cpp line 4400, while MathSAT does not fully support quantifiers.
Version 5.26.0 correctly fails the verification.

Previously I created a question on the CProver Support list.

@xXMarkuski xXMarkuski changed the title MathSAT MathSAT SMT2 not working Jul 30, 2021
@martin-cs
Copy link
Collaborator

This will also affect Boolector, which is often the best performing solver and is used by several commercial users.

@martin-cs
Copy link
Collaborator

@thomasspriggs @TGWDB I know you are working with this at the moment.

@TGWDB TGWDB self-assigned this Aug 4, 2021
TGWDB added a commit to TGWDB/cbmc that referenced this issue Aug 4, 2021
This commit fixes an error introduced in diffblue#5974 where quantifiers
were produced for all SMT2 solvers despite only being supported by
Z3 and CVC4. The fix here reverts to the older behaviour for other
solvers.

Fixes diffblue#6263
TGWDB added a commit to TGWDB/cbmc that referenced this issue May 12, 2022
This commit fixes an error introduced in diffblue#5974 where quantifiers
were produced for all SMT2 solvers despite only being supported by
Z3 and CVC4. The fix here reverts to the older behaviour for other
solvers.

Fixes diffblue#6263
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants