Skip to content
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

--check-models Fatal failure at CVC4/src/smt/smt_engine.cpp:4738 #3729

Closed
muchang opened this issue Feb 8, 2020 · 1 comment · Fixed by #3844
Closed

--check-models Fatal failure at CVC4/src/smt/smt_engine.cpp:4738 #3729

muchang opened this issue Feb 8, 2020 · 1 comment · Fixed by #3844
Assignees
Labels
minor Priority

Comments

@muchang
Copy link

muchang commented Feb 8, 2020

Hi,
For this formula,

(declare-fun a () Real)
(assert (= a (sin 1.0)))
(check-sat)

cvc4 --check-models throws out a fatal failure:

Fatal failure within void CVC4::SmtEngine::checkModel(bool) at CVC4/src/smt/smt_engine.cpp:4738
Internal error detectedSmtEngine::checkModel(): ERRORS SATISFYING ASSERTIONS WITH MODEL:
model value for a
             is (sin 1)
and that is not a constant (.isConst() == false).
Run with `--check-models -v' for additional diagnostics.
Aborted

with `--check-models -v' :

minisat: Incremental solving is forced on (to avoid variable elimination) unless using internal decision strategy.
============================[ Search Statistics ]==============================
| Conflicts |          ORIGINAL         |          LEARNT          | Progress |
|           |    Vars  Clauses Literals |    Limit  Clauses Lit/Cl |          |
===============================================================================
===============================================================================
SmtEngine::checkModel(): generating model
(model
Fatal failure within CVC4::Expr CVC4::SmtEngine::getValue(const CVC4::Expr&) const at CVC4/src/smt/smt_engine.cpp:4283
Check failure
 m->hasApproximations() || resultNode.getKind() == kind::LAMBDA || resultNode.isConst()
Aborted

OS: Ubuntu 18.04
Revision: 618282e

@ajreynol ajreynol self-assigned this Feb 10, 2020
@ajreynol ajreynol added the minor Priority label Feb 10, 2020
@ajreynol
Copy link
Member

Due to transcendental functions not being considered approximations, thus our assertion is still too strong.

ajreynol added a commit that referenced this issue Feb 29, 2020
…l stages (#3844)

Fixes #3729 and fixes #3720.

This updates two more stages of check-model (checking whether values assigned to terms are constants and internally checking whether assertions belonging to theories) to only throw warnings when a term/assertion has a non-constant value in the model. This is to accommodate cases where check-model is infeasible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
minor Priority
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants