summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-05[Unit Tests] Add missing include (#6990)Andres Noetzli
For some configurations, the unit test `solver_black` was unable to find the correct variant `std::find()`. This commit adds an explicit include of `<algorithm>`, which declares the `std::find()` as required by the unit test.
2021-08-05Fix policy for rewriting string equalities (#6916)Andrew Reynolds
This PR simplifies our rewriter for string equalities. We do not try to rewrite equalities to true/false by default. This prevents cases where lemmas may contain vacuous premises that rewrite to false, hence making a lemma rewrite to true. This PR reorganizes the interplay between the rewrite and the post-processing of rewrites via extended equality rewriting. Fixes #6913. Also adds benchmarks from #6101 which appear related but were fixed in previous commits, thus fixes #6101 as well.
2021-08-05No longer call solver constructor with an options object. (#6985)Gereon Kremer
This PR removes calls to the Solver constructor with an Options object, and instead uses the setOption() method.
2021-08-04Consolidate solver resets (#6986)Gereon Kremer
This PR consolidates the two different reset implementations into a single function.
2021-08-04Proper printing of proofs in the internal calculus (#6975)Andrew Reynolds
2021-08-04Fix policy for merging subproofs (#6981)Andrew Reynolds
This makes it so that we replace subproof A with subproof B if A and B prove the same thing, and B contains no assumptions. This is independent of the scope that A and B are in. The previous policy replaced subproof A with subproof B if A and B prove the same thing and were in the same scope. This is not safe if A occurs in multiple scopes, where free assumptions can escape. The new policy is more effective and safer than the previous one.
2021-08-04[proof] [dot] Fix comments on dot printer (#6983)Diego Della Rocca de Camargos
This PR fixes the escaped characters in the dot printer. The output is now a valid DOT. Signed-off-by: Diego Della Rocca de Camargos diegodellarocc@gmail.com
2021-08-04Add inference ids for remainder of sygus solver (#6977)Andrew Reynolds
Now, all inferences throughout cvc5 in our regression are properly marked with an InferenceId. This PR includes minor simplifications to the interface for sygus modules. In particular it changes the behavior to send inferences via the inference manager instead of passing them around as a vector.
2021-08-04Improve error messages for UF catching higher-order (#6982)Haniel Barbosa
Addresses #6979.
2021-08-04syqi: Add debug information for dumping instantiations. (#6978)Mathias Preiner
Adds the datatype values as debug information for dumping instantiations produced by --sygus-inst.
2021-08-04Add optional debug information for dumping instantiations (#6950)Andrew Reynolds
This complete the implementation of dump-instantiations-debug. With this option, we can print the source of instantiations. For example: $ cvc5 regress1/quantifiers/dump-inst-proof.smt2 --dump-instantiations-debug --produce-proofs unsat (instantiations (forall ((x Int)) (or (P x) (Q x))) (! ( 2 ) :source QUANTIFIERS_INST_E_MATCHING_SIMPLE ((not (= (P x) true)))) ) (instantiations (forall ((x Int)) (or (not (S x)) (not (Q x)))) (! ( 2 ) :source QUANTIFIERS_INST_E_MATCHING_SIMPLE ((not (= (S x) false)))) )
2021-08-04Update bug_report.mdAina Niemetz
2021-08-04Add containsAssumption proof utility (#6953)Andrew Reynolds
Work towards making our policy for subproof merging safer.
2021-08-04Refactor managed streams (#6934)Gereon Kremer
This PR introduces a new ManagedStream class that replaces the previous ManagedOstream. It allows to directly store the (wrapped) stream objects in the options. Handling the stream options is moved from the options manager to option predicates and the different options for input and output streams are combined into a single one. Some associated utilities (open_ostream.h and update_ostream.h) are now obsolete and thus removed.
2021-08-04Add API function to get list of option names (#6971)Gereon Kremer
This PR adds a new API function api::Solver::getOptionNames() that exposes a list of all option names as strings. This PR will be followed by another that adds a method to further inspect a particular option by name, and thereby allows to inspect the solver options in a sensible way.
2021-08-04Replace numeric predicates by explicit minimum and maximum (#6976)Gereon Kremer
This PR replaces some option predicates by explicit minimum and maximum values. This allows us to export information about an options domain/range in the future.
2021-08-04Add missing inference identifiers (#6962)Andrew Reynolds
The only remaining unknown inferences covered by our regressions are from the sygus solver, will address in later PR.
2021-08-04[proof] Add getProof to API and use it in GetProofCommand (#6974)Haniel Barbosa
Also adds a call to get proof in a unit test.
2021-08-04Add IEEE-BV-to-FP to external-to-internal mapping in C++ API (#6951)Alex Ozdemir
Without this, you can't make terms with that kind.
2021-08-03Remove dependencies on smt engine in smt solver (#6965)Andrew Reynolds
This is work towards eliminating circular dependencies on SmtEngine. This simplifies several interfaces and makes it so that SmtSolver does not take a pointer to its parent SmtEngine. It is also work towards eliminating the output manager, which is now subsumed by Env.
2021-08-03Use int64_t, uint64_t or double for all numeric options. (#6970)Gereon Kremer
This PR further simplifies the option setup by only using int64_t or uint64_t for integer options.
2021-08-03Refactor shared solver to use theory builtin inference manager (#6960)Andrew Reynolds
This ensures that e.g. COMBINATION_SPLIT shows up under theory::builtin::inferencesLemmas, and -t im. It also removes outdated interfaces from OutputChannel, and makes the feature TheoryEngine::ensureLemmaAtoms more modular, which was required for making these interfaces more consistent. It also ensures that TheoryBuiltin has an inference manager, which will simplify special casing in #6956.
2021-08-03Remove "inUnsatCore" flag throughout (#6964)Andrew Reynolds
The internal solver no longer cares about what assertions are named / are in the unsat core. This simplifies the code so that the (now unused) `inUnsatCore` flag is removed from all interfaces. This eliminates another external use of `getSmtEngine`.
2021-08-03Properly honor --stats-all and --stats-expert when printing statistics (#6967)Gereon Kremer
This PR fixes an issue that was introduced with fda4613 where printing the statistics would only show non-defaulted and non-expert options.
2021-08-02Add 'REQUIRES: poly' to regression. (#6966)Aina Niemetz
This regression times out without libpoly.
2021-08-02bv: Enable equality engine for bitblast-internal. (#6961)Mathias Preiner
2021-07-31Perform statistics printing via the API (#6952)Gereon Kremer
This PR changes how the command executor prints the statistics by moving stuff around a bit, eventually using only proper API methods of api::Solver. This PR also removes the smt_engine.h include from command_executor.cpp.
2021-07-30Allow changing certain options while solving (#6945)Gereon Kremer
This PR allows changing some select options ever after the smt engine has been fully initialized, following the SMT-LIB standard (section 4.1.7).
2021-07-30Simplify smt2 printer (#6954)Andrew Reynolds
The common case of printing function applications is to print the kind in smt2 format, this makes this the default case and removes spurious cases. It also makes a few minor fixes.
2021-07-29Integrate installation instructions into documentation (#6814)Gereon Kremer
This PR migrates the current INSTALL.md to an rst file and then includes it in the documentation. It also does some minor improvements to this file, in particular it now mentions --dep-path
2021-07-29quickstart: Add python example to docs. (#6949)Aina Niemetz
2021-07-29[proofs] Set BV solver to better proof-producing one when proofs on (#6903)Haniel Barbosa
Since the internal bitblaster can be way slower, the regressions that would have slow runs when --check-proofs is passed now have the command line that forces the use of the default bitblaster.
2021-07-29Python quick start example (#6939)yoni206
This is a translation of quickstart.cpp to python.
2021-07-29Integrate central equality engine approach into theory engine, add option ↵Andrew Reynolds
and regressions (#6943) This commit makes TheoryEngine take into account whether theories are using the central equality engine. With this commit, the central equality engine can now be optionally enabled via `--ee-mode=central`.
2021-07-29Minor updates to shared terms database for central equality engine (#6929)Andrew Reynolds
Includes proper set up of the proof equality engine it uses (which may be shared over multiple theories). Also makes its assertEquality method robust to non-equality atoms.
2021-07-28Fixes for building python wheels on manylinux2014 (#6947)makaimann
This PR makes several fixes to the wheel building infrastructure for manylinux2014. don't statically link to Python (see: this section of PEP-513) use standard 'build' directory. I noticed that the wheel infrastructure uses directory 'build' to prepare the wheel anyway, so it doesn't make a lot of sense for us to use a separate working directory. I tried changing the name of the build directory in setuptools by setting member variables in initialize_options but that didn't seem to work and I decided it wasn't worth the effort. The wheel should be built in a clean environment anyway, i.e., docker. find the correct include directory and python library paths for building on manylinux2014 using skbuild. manylinux2014 has several versions of python installed in /opt/python. The CMake infrastructure can't find the necessary information (plus the libraries are deleted from the docker image to save space -- the library is just set to a generic libpython<version>.a). Instead, this PR would manually set them via CMake options. to allow setting the python information, I extended the configure.sh script to allow directly setting CMake options. There are definitely other options here if you'd rather not change configure.sh. My reasoning was that it could be useful in other situations and I just marked it as an advanced feature. Another approach would be to use skbuild directly in the CMake infrastructure. I didn't like that solution because it would make the CMakeLists.txt more complicated and it wouldn't follow the standard CMake/Cython/Python approach which means we won't benefit from future improvements to that CMake infrastructure. Plus, this issue should only come up on systems with non-standard installations of Python, such as manylinux. This approach (setting CMake options) is basically what scikit-build does automatically if we had used that infrastructure directly.
2021-07-28Minor changes to arrays in preparation for central equality engine (#6917)Andrew Reynolds
Makes arrays more robust to the order in which terms can be added to the equality engine vs. when they are preregistered. We should probably performance test this. FYI @barrettcw
2021-07-28Only use libedit on tty inputs (#6946)Gereon Kremer
This PR improves the check when we use libedit: only when the input is an interactive terminal. This is motivated by a change to the unit test for the interactive mode that now properly redirects standard input (and output).
2021-07-28Print link to docs preview (#6922)Andres Noetzli
This commit adds a message to the `docs` target with a link to a preview of the documentation, e.g.: ``` Preview docs in browser: file://localhost/home/noetzli/repos/cvc5_win/build-docs/docs/sphinx/index.html ```
2021-07-28Make extended rewriter methods const (#6948)Andrew Reynolds
2021-07-27bv: Refactor getEqualityStatus and use for both bitblasting solvers. (#6933)Mathias Preiner
This commit refactors the getEqualityStatus handling for bitblast and bitblast-internal.
2021-07-27proof: Add eqrange expansion rule. (#6936)Mathias Preiner
Adds proof support for the eqrange operator. Co-authored-by: Andrew Reynolds <andrew.j.reynolds@gmail.com>
2021-07-27Track instantiation reasons in proofs (#6935)Andrew Reynolds
This adds optional arguments to INSTANTIATE steps in proofs to track fine-grained reasons for relevant instantiations. Also simplifies an old argument modEq which was unused. FYI @MikolasJanota
2021-07-27Add basic LFSC utilities (#6879)Andrew Reynolds
Adds basic utilities in preparation for the LFSC proof conversion. Depends on #6881, review that first.
2021-07-27Move enum value generator to own file (#6941)Andrew Reynolds
Work towards integrating the enumerator callback into the fast enumerator.
2021-07-27Minor fix for term database + central equality engine (#6928)Andrew Reynolds
Previously we provided a bogus (self) explanation in a rare case of setting up the term database for higher order. This is incompatible with cases where central equality engine = master equality engine.
2021-07-27Revert change to regression (#6940)Andrew Reynolds
Although it works on most machines, it times out in the nightly builds.
2021-07-27Make all dependencies in the fast enumerator optional (#6918)Andrew Reynolds
This allows one to use a fast enumerator without having access to sygus term database, statistics, etc.
2021-07-27Add print expression utility (#6880)Andrew Reynolds
This will be used in the LFSC printer. It may be of general use to other proof printers.
2021-07-27Add regression for fixed `str.indexof_re` issue (#6938)Andres Noetzli
Fixes #6639. The issue cannot be reproduced on current master and git bisect suggests that commit adf497a fixed the issue.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback