summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-11-08Evaluate cast-to-real operator (#7599)Andrew Reynolds
Fixes cvc5/cvc5-projects#341.
2021-11-08[proofs] Adding NoSubtype node converter to Alethe (#7587)Haniel Barbosa
Initial version. It'll be improved on demand according to new cases that may lead to issues.
2021-11-08[proofs] Method to convert node representation of Alethe rule (#7598)Haniel Barbosa
2021-11-06Integrate java unit tests into ctest (#7593)Gereon Kremer
This PR properly integrates the java api unit tests into ctest.
2021-11-06Print `unsupported` for unrecognized flags. (#7384)Abdalrhman Mohamed
Fixes #7374.
2021-11-06better traces in node converter (#7590)Haniel Barbosa
2021-11-06Do not use extended rewrites on recursive function definitions (#7549)Andrew Reynolds
Leads to potential non-idempotent behavior in the rewriter. The issue cannot be replicated on master, but this safe guards this case anyways. Fixes #5278.
2021-11-06Only run regress0 for static build (#7592)Gereon Kremer
It is surprisingly tricky to call ctest properly with multiple -LE arguments (and I actually doubt that the CI version of ctest adheres to its documentation). This PR avoid calling make check (which sets -LE regress[3-4] as a default) and calls ctest directly.
2021-11-06Remove `Notice()` in favor of new `verbose()` (#7588)Gereon Kremer
This PR removes the remaining usages of the Notice() macros and uses verbose() instead.
2021-11-06Disable regress2 test. (#7591)Mathias Preiner
2021-11-05Fix exclusion criteria for codatatype model values (#7546)Andrew Reynolds
This fixes codatatype model value construction. Model construction for codatatypes is non-standard since it requires analyzing whether (possibly recursively defined) terms are alpha equivalent to others during model construction. This is currently handled as a special case within the theory model builder. (This should eventually be moved somewhere more appropriate via a new callback to theory). This fixes the criteria which was too permissive about which values can be used in models. We now exclude values that match the skeleton of representative codatatype terms. Previously we additionally required that the terms were bisimilar. Fixes #4851.
2021-11-05[proofs] Fix open sat proof (#7509)Haniel Barbosa
Improves how LazyCDProofChain handles cycles, which fixes a particular case triggered by the added regression. Also makes LazyCDProofChain::getProofFor more robust in that when it can't connect the requested fact it yields an assumption proof node. Fixes cvc5/cvc5-projects#324
2021-11-05Eliminate a level of nesting of traversals in theory preprocessing (#7345)Andrew Reynolds
This simplifies the theory preprocessor so that it does not rely on the term formula removal to do a nested traversal. Instead, it only relies on its "runCurrent" method. Notice that this PR essentially replaces TheoryPreprocessor's theoryPreprocess method with TermFormulaRemoval's runInternal method, while adding the required call to rewriteWithProof and preprocessWithProof as post-rewrites. This is far simpler than the previous method, which invoked nested traversals using TermFormulaRemoval::run. There are two things that will be improved in follow up PRs: The initial full rewrite step in the theory preprocessor can be merged into the main traversal of theory preprocess (I believe this is why we are slower on nec benchmark than we were previously), We should eliminate the traversal methods from TermFormulaRemoval altogether, as they are now subsumed by the theory preprocessors main traversal. This will require refactoring how "early ITE removal" works, as this is the only user now of TermFormulaRemoval::run. Note we should probably performance test this change. This incidentally fixes #6973, as the previous theory preprocessing code was to blame for that issue.
2021-11-05Remove `Chat()` in favor of new `verbose()` (#7586)Gereon Kremer
This PR completely removes the first of several logging macros. Instead of Chat(), we now use verbose(2).
2021-11-05Move functions and lambdas from builtin to uf (#7570)Andrew Reynolds
This is in preparation for adding better native support for handling lambdas in the higher-order extension of the UF theory. We require that LAMBDA and function types belong to theory UF so that the theory solver is properly notified. This also splits the utility methods for computing whether a function is "constant" to its own file. This PR is code move only.
2021-11-05[FP] Do not assert that model has shared term (#7585)Andres Noetzli
Fixes #7569. Currently, the FP solver asserts that m->hasTerm(sharedTerm) is always true for the real term in the conversion from real to floating-point value. This is not necessarily the case because the arithmetic solver computes values for the variables in the shared terms but not necessarily for the terms themselves. This commit removes the assertion and instead relies on the fact that a later assertion checks that m->getValue(sharedTerm).isConst(), which is the property that we are actually interested in.
2021-11-05Fix some issues with the java api (#7583)Gereon Kremer
This PR fixes two issues with the java api: - the JNI_HEADERS variable was set to a non-existent file, which caused the generate-jni-headers target to always rebuilt. - the directory structure was unnecessarily nested (probably because we use CMAKE_CURRENT_BINARY_DIR instead of CMAKE_BINARY_DIR).
2021-11-05Alethe: Translate CNF rules (#7532)Lachnitt
Implementation of the translation of various CNF rules into the Alethe calculus. Co-authored-by: Haniel Barbosa <hanielbbarbosa@gmail.com>
2021-11-05Minor changes to circuit propagator (#7584)Haniel Barbosa
Previously in a given part of the code a proof would be retrieved only so that it'd be printed. This commit guards that part of the code with whether the trace is on and gives more information in what is printed. Also changes the style of a call.
2021-11-05Remove many static calls to rewrite (#7580)Andrew Reynolds
This is the result of a global replace Rewriter::rewrite( -> rewrite( + patching the results. It makes several classes into EnvObj. Many calls to Rewriter::rewrite remain (that are embedded in classes that should not be EnvObj).
2021-11-05Remove quadratic solving in NlModel (#7542)Gereon Kremer
This PR removes obsolete code from NlModel concerned with solving quadratic equations. This code is only used on nonlinear real problems where the cad solver is not used.
2021-11-05Eliminate `Warning` macro in favor of `EnvObj::warning` (#7575)Gereon Kremer
This PR eliminates almost all usages of the Warning macro, replacing it mostly by calling EnvObj::warning.
2021-11-05Remove a bunch of debugging/logging code from the linear solver (#7576)Gereon Kremer
This PR removes old debugging code from the linear solver. The removed code was either redundant, already in comments, or manually disabled by a constant false.
2021-11-04Add -o sygus-grammar to print auto-generated SyGuS grammars (#7573)Andrew Reynolds
Fixes #5341.
2021-11-04Improve defaults for sygus default grammars (#7553)Andrew Reynolds
We now add constants from the conjecture to default grammars by default. We also ensure that integer constants are used as real constants when applicable.
2021-11-04Replace the old dump infrastructure (#7572)Andrew Reynolds
This deletes the old dumping infrastructure, which due to changes in our usage of SolverEngine does not print valid benchmarks. This eliminates the concept of a "NodeManagerListener" which has been problematic to maintain. This PR reimplements the --dump=assertions:pre-X and --dump=assertions:post-X as -t assertions::pre-X and -t assertions::post-X. This is done in a self contained utility method in ProcessAssertions using smt::PrintBenchmark and does not require keeping the rest of the code in sync. The other dumping tags are deleted for now, and will be reimplemented as needed.
2021-11-04Start refactoring of `-o` and `-v` (#7449)Gereon Kremer
This PR does the first step in consolidating our various output mechanisms. The goal is to have only three major ways to output information: - verbose(level) prints log-like information to the user via stderr, -v and -q increase and decrease the verbosity, respectively. - output(tag) prints structured information (as s-expressions) to the user via stdout, -o enables individual tags. - Trace(tag) prints log-like information to the developer via stdout, -t enables individual tags. While Debug and Trace (and eventually Dump) will be combined within Trace, all of Warning, Message, Notice and Chat will be combined into verbose.
2021-11-04Refactor cmake to build either static or shared (#7534)Gereon Kremer
This PR simplifies the cmake setup to only build either shared or statically. It also attempts to fix windows builds, both shared and static.
2021-11-04 Fix links in README.md (#7568)Gereon Kremer
This PR fixes links to releases and nightly builds. Fixes #7016.
2021-11-04Enable CDCAC solver for selected quantified logics (#7571)Gereon Kremer
This PR enables the CDCAC solver for quantified logics with reals, but no integers. Also, it disables SyGuS if no integers are used. The regression is a benchmark that is only solved with this new configuration.
2021-11-04Add support for special tag collectors (#7562)Gereon Kremer
This PR makes the collection of trace and debug tags more flexible by allowing for "special tag collectors". They can be used to inject tags that are not used as constant strings, but only assembled dynamically at runtime. One example is the set of assertions::pre-X and assertions::post-X tags. They are currently handled by Dump, and will be migrated to Trace.
2021-11-04Minor cleanup in SolverEngine::setInfo() (#7566)Gereon Kremer
This does a bit of cleanup by properly calling the option handler instead of trying to manually replicating it. This is way more robust in the face of modifications to the option handlers.
2021-11-04Make `Theory::get()` private (#7518)Andres Noetzli
Now that theories have been refactored to use common interfaces, they should not access Theory::get() anymore because facts are consumed by Theory::check().
2021-11-03api: Rename some separation logic functions for consistency. (#7564)Aina Niemetz
This renames Solver::getSeparationHeap to Solver::getValueSepHeap, Solver::getSeparationNilTerm to Solver::getSepNil and Solver::declareSeparationHeap to Solver::declareSepHeap. @mudathirmahgoub @alex-ozdemir @yoni206
2021-11-03Add unit test to cover previous failure with second solver instance. (#7565)Aina Niemetz
Fixes #5893.
2021-11-03Enable CI for Junit tests (#7436)mudathirmahgoub
This PR enables CI for java tests by adding --java-bindings to ci.yml. It also replaces the unreliable finalize method and instead uses AutoCloseable and explicit close method to clean up dynamic memory allocated by java native interface. The PR fixes compile errors for SolverTest.java and runtime errors for Solver.defineFun.
2021-11-03Fix debug trace for miplib (#7563)Andrew Reynolds
A debug trace on miplib referred to a possibly out of bounds child.
2021-11-03Refactor skolem construction (#7561)Andrew Reynolds
This makes all methods for constructing skolems local to SkolemManager. It removes infrastructure for node manager listeners being notified when skolems are constructed. This was used for 2 things: (1) The old dumping infrastructure, where skolems could contribute in part to traces to print benchmarks. This code will be deleted soon. (2) The miplib preprocessing pass, which used this functionality to listen to what skolems were constructed, and subsequently assumed these skolems coincided with what Boolean variables appeared in assertions. This is highly error prone, and has been replaced by a simple traversal to collect Boolean variables in assertions. This is in preparation for a lazy lambda lifting technique, which will require more infrastructure in SkolemManager.
2021-11-03Formalize more string skolems (#7554)Andrew Reynolds
This properly formalizes all string skolems used in reduction and preprocessing. This avoids proof checking failures due to non-deterministism when checking steps for these modules. Fixes cvc5/cvc5-projects#334. Fixes cvc5/cvc5-projects#331.
2021-11-03Fix preregistration for floating point theory (#7558)Andrew Reynolds
Preregistering terms must always add them to the equality engine of TheoryFp, otherwise there may be preregistered terms that do not occur in the equality engine of TheoryFp, thus leading to crashes during theory combination. Fixes cvc5/cvc5-projects#329.
2021-11-02bv: Disable equality engine for --bitblast=eager and bitblast-internal. (#7560)Mathias Preiner
When we eagerly bitblast to the main SAT solver, we have to make sure that we don't use the equality engine in order to not start propagating equalities below BITVECTOR_EAGER_ATOM predicates. Fixes the nightly failure.
2021-11-02Move `fmf.card` printing code. (#7559)Abdalrhman Mohamed
The code for printing fmf.card does not run in its current location. This PR moves the code to a different switch statement to ensure that it runs.
2021-11-02Add printing methods for some commands. (#7557)Abdalrhman Mohamed
This PR is a step towards enabling -o raw-benchmark. It adds printing methods for some of the new commands and fixes some other miscellaneous issues.
2021-11-02Improve syntax for fmf cardinality constraints (#7556)Andrew Reynolds
This is an experimental extension of smt2.
2021-11-02Add LFSC signature for quantifiers (#7540)Andrew Reynolds
Also includes a fix for the Boolean signature. After the strings PR and this one, the initial LFSC signature is complete.
2021-11-02Fix setDefaults() for proofs with bitblast-internal. (#7552)Mathias Preiner
2021-11-02bv: Remove remaining Rewriter::rewrite calls. (#7545)Mathias Preiner
2021-11-02Make quant elimination robust to presence of other quantified formulas (#7551)Andrew Reynolds
Fixes #4813
2021-11-01Eliminate calls to Rewriter::rewrite and options:: in sets and bags (#7550)Andrew Reynolds
There is 1 remaining call to Rewriter::rewrite in the bags type enumerator which is not straightforward to eliminate; it should perhaps call an intermediate call to a normal form utility instead of the full rewriter.
2021-11-01Weaken assertion in CEGQI (#7548)Andrew Reynolds
The assertion can be violated in mixed Int/Real arithmetic. The instantiator utility nevertheless safe guards Int vs Real subtyping. Fixes #7537.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback