Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Fixes issue #2137. CnfProof has a stack of assertions that are being
converted to clauses. Previously, it could happen that while an
assertion was being added, TheoryProxy::explainPropagation() would be
called from Solver::reason() and push an assertion to the stack that was
then not removed. This lead to a clause id of the assertion being
associated with the explanation instead, which in turn could lead to a
wrong unsat core. This commit identifies two cases where
TheoryProxy::explainPropagation() is called without cleaning up the
assertion stack afterwards. It also adds an assertion that the assertion
stack must be empty when we are getting the unsat core.
|
|
With this commit, we only use an SmtEngine with a separate ExprManager
for --sygus-rr-synth-check if necessary (currently, this is only the
case when --sygus-rr-synth-check-timeout is active). The reason for
this is that we do not support exportTo for all kinds. Additionally,
this commit adds support for exporting floating-point types and adds a
check that throws an exception if an unsupported type is being
exported (previously, it just crashed). Finally, it fixes a minor
issue with -d export, where an expression was printed while the wrong
ExprManager was active, leading to an assertion failure when getting
the types of expressions (which is required for operators like
equality where the sort of the children is not fixed).
|
|
|
|
|
|
|
|
|
|
|
|
This commit adds a floating-point sampler inspired by PyMPF [0]. It also
creates a new Sampler class that can be used for creating random values
of different sorts (currently BV and FP values).
[0] https://github.com/florianschanda/PyMPF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is PR 8/18 from the sygus comp 2018 branch (https://github.com/ajreynol/CVC4/tree/sygusComp2018-2).
I am not sure how it is possible in any circumstance that the complication in the comment I am deleting would ever happen, without doing something very strange. I think it is referring to some sort of inter-dependence between macro expansion + beta-reductions. This should not concern the rewriter. Here is the commit that introduced it: bdaa304.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixes #2133. In that issue, a quantifiers rewrite triggered a model-unsoundness in fmf-fun. The rewrite made a function definition have an ITE at top-level instead of equality. The corrected code was model-unsound, since it assumed that quantified formulas that are not EQUAL can be ignored.
|
|
|
|
|
|
|
|
|
|
|
|
The issue is not triggered anymore after PR #2059 but the test case is
good to have for changes in MiniSat code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Use evaluator for sygus sampler.
* Format
|
|
|
|
This fixes #821.
For some background, some special cases were added to equality engine and theory engine a few years ago to handle constants properly. As a result of these changes, a comment in the code was added about a HACK for getModelValue, but the code is completely reasonable looking to me (it says that the model value of a constant is itself). This PR removes that comment.
From what I can tell issue #821 can be closed.
|
|
|
|
In MiniSat's analyze(), we were taking a reference of a clause that
could be invalidated by a call to resolveOutUnit(). resolveOutUnit() can
lead to allocation of clauses which in turn can lead to clauses being
reallocated, making the reference stale. The commit encloses the
reference in a code block that makes the lifetime of the reference more
obvious and removes uses of the potentially stale reference.
|
|
|
|
|
|
|
|
|
|
|
|
This commit adds the Evaluator class that can be used to quickly
evaluate terms under a given substitution without going through the
rewriter. This has been shown to lead to significant performance
improvements on SyGuS PBE problems with a large number of inputs because
candidate solutions are evaluated on those inputs. With this commit, the
evaluator only gets called from the SyGuS solver but there are
potentially other places in the code that could profit from it.
|