Age | Commit message (Collapse) | Author |
|
|
|
Fixes cvc5/cvc5-projects#316.
|
|
Since we apply a lazy schema for app completion, this may omit terms from the care graph that are relevant for theory combination. This corrects the care graph for UF when higher-order is enabled by considering the HO_APPLY version of all partially and fully applied prefixes of APPLY_UF terms during TheoryUF::computeCareGraph.
Fixes #5741. Fixes #5744. Fixes #5201. Fixes #5078. Fixes #4758.
|
|
This fixes a model unsoundness issue in the theory solver for relations.
|
|
|
|
These rewrites introduce the possibility of non-termination in the rewriter, as demonstrated in the included regression.
Instead, these rewrites are now moved to the extended rewriter.
|
|
Fixes #7504.
|
|
Fixes #6766.
|
|
This PR adds the missing handler declaration for the --version option.
Fixes #7505.
|
|
Previously the check for whether the original conclusion of the MACRO_RESOULTION step was a singleton was incomplete. Now the test is made the proper way.
Depends on #7497.
Fixes cvc5/cvc5-projects#318
|
|
Fixes cvc5/cvc5-projects#317
|
|
This avoids cyclic proofs in a rare case where theory explanations involve an equality and its symmetric form.
This PR disables auto-symmetry on lazy proofs used for theory explanations, which is slightly less convenient but avoids potentials for cyclic proofs. Note this complication would not arise if the theory engine did not allow non-rewritten equalities to be propagated between theories.
Fixes cvc5/cvc5-projects#311.
|
|
Fixes cvc5/cvc5-projects#319
|
|
Fixes #4656. Fixes #5234. These do not occur on master.
|
|
Fixes #7385.
Option --sygus-inst relies on the quantifier-free sygus extension of datatypes, which does not support incremental mode. Updating it to support incremental is a long term project.
Until this is complete, --sygus-inst should not be run in incremental mode.
|
|
This adds a new option for --sygus-query-gen=unsat to generate unsat queries (previously, only satisfiable queries were supported).
The algorithm can be seen as a variant of abduction where we conjoin predicates that both (1) refine the current model and (2) avoid repeated unsat cores.
It does some minor refactoring of ExprMinerManager to support the new module.
|
|
Adds leftover missing unit tests for new API call for mkCardinalityConstraint from eeb78c8.
|
|
Fixes cvc5/cvc5-projects#306.
|
|
Previously, we asserted global declarations as substitutions/formulas just before check-sat. This is not ideal since the current set of assertions can be preprocessed without having knowledge of definitions of defined functions. Moreover, this could lead to model unsoundness if it were the case that a defined symbol was solved during preprocessing.
Fixes #7479. In that example, y was solved for true and then we failed to overwrite y with its definition (> x 0), hence dropping the definition. Now, y is defined as (> x 0) before we preprocess.
|
|
|
|
|
|
This removes two uses of f-strings, which are not supported by Python
<3.6.
|
|
(#7453)
Required to address Zelkova bottlenecks.
This generalizes the methods for eager prefix/suffix conflicts for strings to do eager lower/upper bound conflicts for integer equivalence classes based on string-specific reasoning about length terms. This avoids cases where Simplex fails to show a concise conflict due to not having access to string reasoning (e.g. strings::ArithEntail) for arithmetic bounds.
The approach can still be improved by inferring fixed length for regular expression memberships, analogous to what is done for prefix/suffix conflicts.
It also changes EqcInfo to store (str.len x) instead of x for length terms.
|
|
Required to avoid timeout in non-libpoly builds.
FYI @dddejan .
|
|
This PR refactors java package name from cvc5 to io.github.cvc5.api.
It also refactor the names of cpp and java files.
|
|
Previously the checker was doing things in a smart way that could lead to issues when a clause coincided with a singleton clause as a literal of another clause within the chain.
Fixes cvc5/cvc5-projects#310
|
|
This PR resolves a subtle issue with CDCAC proofs.
The CDCAC proof is maintained as a tree where (mostly) every node corresponds to an (infeasible) interval generated within the CDCAC method. We prune these intervals regularly to get rid of redundant intervals, which also sorts intervals. The pruning however relied on a stable ordering of both intervals and child nodes within the proof tree, as there was no easy way to map nodes back to intervals.
This PR adds an objectId field to the proof tree nodes and assigns ids to the CDCAC intervals. This allows for a robust mapping between the two, even if the interval list is reordered.
Fixes cvc5/cvc5-projects#313.
|
|
This PR fixes another subtle proof issue in the circuit propagator concerning negated ites.
Fixes cvc5/cvc5-projects#309.
|
|
Fixes #5848.
This also fixes an issue leftover from #6605 where a spurious assertion failure was thrown.
Also introduces subfolder regress/regress1/abduction.
|
|
Given that arithmetic lemmas can survive the current (sat) context by being buffered in the inference manager, their proofs need to do as well. This PR changes the CAD proofs to be user context dependent.
Fixes cvc5/cvc5-projects#315.
|
|
This PR makes the IntBlaster class inherit from EnvObj, along with derived modifications.
|
|
Fixes #6180.
|
|
A life of solver object was simple before summer. Then it got complicated with getDifficulty, optional proofs getProof, more assumptions addSygusAssume, and finally different options to choose from OptionInfo.
This PR attempts to prepare solver objects for this new life.
|
|
This PR follows #7452 and fixes the proofs generated for backward propagation of negated ite terms.
|
|
This PR goes back to #7446 and implements a proper fix that handles both symmetrical cases.
|
|
|
|
|
|
This PR fixes a proof for an xor term that failed to eliminate a double negation.
Fixes cvc5/cvc5-projects#304
|
|
This PR fixes an incorrect proof in the circuit propagator related to back-propagation of an ite term.
Fixes cvc5/cvc5-projects#305.
|
|
This makes the regression script more modular by refactoring all the
different checks into separate classes, which makes it easier to add
additional tests and to run only a subset of the tests.
|
|
This makes cardinality constraints nullary operators. This eliminates hacks for supporting these previously.
It also removes an unimplemented kind CARDINALITY_VALUE.
Notice that the parser and printer now do not use a common syntax for cardinality constraints, this will be resolved on followup PRs.
|
|
Fixes #1649. The test was not enabled before and was still expecting
CVC-style output.
|
|
This PR reintroduces support for the (deprecated) option interactive-mode. It was erroneously removed in #7295.
Fixes #7379.
|
|
|
|
@alex-ozdemir
|
|
Fixes #5288, fixes (the 3rd benchmark on) #5741, fixes #6184, fixes #5735, which do not trigger on master.
|
|
This adds two missing functions to the python API, along with tests for them. It also adds a missing test for the cpp API.
|
|
Fixes #7000. That sequence of API calls now throws a logic exception.
|
|
This makes the SyGuS solver robust to variables that are not closed enumerable, e.g. arrays of uninterpreted sorts.
It corrects an issue in array's mkGroundTerm issue which would allow constants to enter into constraints for SyGuS problems with arrays. This method does not cause further issues currently since quantifiers is guarded in several places to ensure array constants are not constructed via this method.
It also makes it so that we don't add explicit CEGIS refinement lemmas unless evaluation unfolding is enabled and the counterexamples are from closed enumerable types; there is no reason to add these unless we are combining with evaluation unfolding.
This addresses several of the issues raised in #6605.
|
|
This addresses one of the issues related to #6605.
|