summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-06-27Header for new C++ API. (#1697)Aina Niemetz
2018-06-27Synthesize candidate-rewrites from standard inputs (#1918)Andrew Reynolds
2018-06-26sygusComp2018: add scripts. (#2103)Andrew Reynolds
2018-06-26sygusComp2018: Add evaluator (#2090)Andres Noetzli
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.
2018-06-26Add casc j9 tfn script (#2100)Andrew Reynolds
2018-06-26 Disable uf symmetry breaker in incremental mode (#2091)Andrew Reynolds
2018-06-26Fix assertion for relational triggers (#2096)Andrew Reynolds
2018-06-26 Do not dagify printing over binders (#2093)Andrew Reynolds
2018-06-26Remove unnecessary code in register quantifier internal (#2092)Andrew Reynolds
2018-06-25Minor improvements in SMT2 and CVC printers (#2089)Andres Noetzli
This commit adds support for string concatenation, charat, and length operators in the CVC printer and support for re.nostr, re.allchar, and insert into a set in the SMT2 printer.
2018-06-25Bump library version to 1.7-prerelease.Aina Niemetz
2018-06-25Cutting release 1.6.Aina Niemetz
2018-06-25More updates to NEWS for 1.6.Aina Niemetz
2018-06-25Update AUTHORS, NEWS, README, RELEASE-NOTES and THANKS file for 1.6.Aina Niemetz
2018-06-25Bump library version.Aina Niemetz
2018-06-25Update copyright year in configuration.cpp:copyright().Aina Niemetz
2018-06-25Updated copyright headers.Aina Niemetz
2018-06-25Do not use git blame -C in get-authors (too many false positives).Aina Niemetz
2018-06-25Fix update-copyright script for files without a header.Aina Niemetz
2018-06-25Added Makai and Yoni to get-authors script.Aina Niemetz
2018-06-25Remove parentheses for prefix ops without args (#2082)Andres Noetzli
In the CVC printer, function definitions without arguments are printed like constants but when actually using that function we were printing in the form of `x()`. For example: ``` (set-logic QF_BV) (define-fun x1480 () Bool true) (define-fun x2859 () Bool true) (define-fun x2387 () Bool x2859) (check-sat) ``` Was dumped as: ``` OPTION "incremental" false; OPTION "logic" "QF_BV"; x1480 : BOOLEAN = TRUE; x2859 : BOOLEAN = TRUE; x2387 : BOOLEAN = x2859(); ``` This commit removes these parentheses when prefix functions with zero arguments are printed, so the example above becomes: ``` OPTION "incremental" false; OPTION "logic" "QF_BV"; x1480 : BOOLEAN = TRUE; x2859 : BOOLEAN = TRUE; x2387 : BOOLEAN = x2859(); ```
2018-06-20Fix warnings and enable -Wnon-virtual-dtor warning (#2079)Andres Noetzli
This commit fixes warnings for an unused variable, comparison of two different types and add virtual destructors to classes that were previously missing them. It also enables the -Wnon-virtual-dtor warning which warns about any class definition with virtual methods that does not have a virtual destructor (except if the destructor is protected). This flag is supported by both clang and GCC and not enabled by default.
2018-06-20Check unsat cores in regressions also without LFSC (#1955)Andres Noetzli
When moving the LFSC checker out of the CVC4 repository in commit dfa69ff98a14fcc0f2387e59a0c9994ef440e7d0, we disabled checking unsat cores when CVC4 was compiled without LFSC due to the complexity of the regression script. This commit changes the new(-ish) Python regression script to check unsat cores even when CVC4 was compiled without LFSC. This is done by having two separate flags, --with-lfsc and --enable-proof, for the regression script that mirror the configuration flags. The regression script performs unsat cores and proofs checks based on those flags. Additionally, this commit changes the regression script to check proofs and unsat cores in two independent runs. Testing them in a single run masked issues #1953 and #1954.
2018-06-20Updated installation instructions to mention autogen.sh (#1477)Aina Niemetz
2018-06-20Resolve CVC4_USE_SYMFPU in headers at config-time (#2077)Andres Noetzli
As described in issue #2013, we had `#ifdef CVC4_USE_SYMFPU` conditions in floatingpoint.h, which was problematic when installing the header files because the definition of `CVC4_USE_SYMFPU` was a compile-flag and simply including the header files in another project would be missing that definition. This commit moves floatingpoint.h to a template file floatingpoint.h.in and substitutes the value of `CVC4_USE_SYMFPU` at configure-time when generating floatingpoint.h (this is the same solution that integer.h and rational.h use). I have tested the fix with the examples provided in #2013 and they work.
2018-06-15Disable solving non-linear BV literals by default (#2070)Andrew Reynolds
2018-06-13Workaround for incremental unsat cores (#1962)Andres Noetzli
This commit implements a workaround for computing unsat cores while doing incremental solving to address #1349. Currently, our resolution proofs do not handle clauses with a lower-than-assertion-level correctly because the resolution proofs for them get removed when popping the context but the SAT solver keeps using them. The workaround changes the behavior of the SAT solver to add clauses always at the current level if incremental solving and unsat cores are enabled. This makes sure that all learned clauses are removed when we pop below the level that they were learned at. This may degrade performance because the SAT solver has to relearn clauses.
2018-06-13Fix simple regexp consume (#2066)Andrew Reynolds
2018-06-13Disable unconstrainedSimp pass when proofs enabled (#1976)Andres Noetzli
Currently, we may end up enabling the unconstrainedSimp pass when proofs are enabled because the check that this pass is disabled happens before a check for automatically enabling it. This lead to issues when running for example on regress0/aufbv/bug00.smt with --check-proofs. This commit moves the code for automatically enabling the pass to only be run if proofs and unsat cores are disabled. Note: This commit is mostly a simple code move but formatting in setDefaults was a bit off, so there are a lot of formatting changes.
2018-06-12Fix strip constant endpoint for ITOS in strings rewriter (#2067)Andrew Reynolds
2018-06-10Fix equality conflicts reported by FP (#2064)Andrew Reynolds
2018-06-09Disable test that fails in competition mode (#2063)Andres Noetzli
Commit 106e764a04e4099cc36d13de9cec47cbf717b6cc missed one test case. This commit disables that test case for the competition build.
2018-06-08Add flag to skip regression if feature enabled (#2062)Andres Noetzli
This commit adds the option of skipping regressions when a specified feature is enabled. It also changes some of the regression tests to be skipped when it is a competition build because regressions fail otherwise. In the tests changed in this commit, we do not care about reproducing error messages in a competition build, so we can skip them.
2018-06-08Reset decisions at SAT level after solving (#2059)Andres Noetzli
Some quick background: CVC4 has two primary contexts: the assertion context (which corresponds to the push/pops issued by the user) and the decision/SAT context (which corresponds to the push/pops done by the user and each decision made by MiniSat. Before 2cc0e2c6a691fb6d30ed8879832b49bc1f277d77, we had an additonal push/pop when doing the actual solving. With these removed, it could happen that we get a wrong result when doing incremental solving: ``` ... ; check-sat call returns sat, the decision level in the SAT solver is ; non-zero at this point (check-sat) ; Solver::addClause_() determines that we cannot add the clause to the ; SAT solver directly because the decision level is non-zero (i.e. the ; clause is treated like a theory lemma), thus it is added to the lemmas ; list. (assert false) ; The solver stores some information about the current state, including ; the value of the "ok" flag in Solver, which indicates whether the ; current constraints are unsatisfiable. Note that "ok" is true at this ; point. (push) ; Now, in Solver::updateLemmas(), we add clauses from the lemmas list. ; The problem is that empty clauses (which "false" is after removing "false" ; literals) and unit clauses are not added like normal clauses. Instead, ; the empty clause, essentially just results in the "ok" flag being set to ; false (unit clauses are added to the decision trail). (check-sat) ; Here, the solver restores the information stored during ; (push), including the "ok" flag, which is now true again. (pop) ; At this point, the solver has "forgotten" about (assert false) since ; the "ok" flag is back to true and it answers sat. (check-sat) ``` There are multiple ways to look at the problem and to fix it: - One could argue that an input assertion should always be added directly to the clauses in the SAT solver, i.e. the solver should always be at decision level 0 when we are adding input clauses. The advantage of this is that it is relatively easy to implement, corresponds to what the original MiniSat code does (it calls Solver::cancelUntil(0) after solving), and is no worse than what we had before commit 2cc0e2c6a691fb6d30ed8879832b49bc1f277d77 (push/pop do a strict superset of what resetting the decision at the current assertion level does). The disadvantage is that we might throw away some useful work. - One could argue that is fine that (assert false) is treated like a theory lemma. The advantage being that it might result in more efficient solving and the disadvantage being that it is much trickier to implement. Unfortunately, it is not quite clear from the code what the original intention was but we decided to implement the first solution. This commit exposes a method in MiniSat to reset the decisions at the current assertion level. We call this method from SmtEngine after solving. Resetting the decisions directly after solving while we are still in MiniSat does not work because it causes issues with datastructures in the SMT solver that use the decision context (e.g. TheoryEngine::d_incomplete seems to be reset too early, resulting in us answering sat instead of unknown).
2018-06-08Disable BV-abstraction in the competition script. (#2061)Mathias Preiner
2018-06-07Look for cryptominisat5_simple, not cryptominisat5 (#2058)Andres Noetzli
If the boost program_options library is missing, CryptoMiniSat5 only builds a cryptominisat5_simple binary and omits the cryptominisat5, which has more command-line options. We do not use the binary anyway, so this commit changes the cryptominisat.m4 script to look for the cryptominisat5_simple binary, which is always generated.
2018-06-07Remove invalid assertion (#1993). (#2057)Aina Niemetz
2018-06-06Clear pending inferences during datatypes splitting (#2056)Andrew Reynolds
2018-06-04Only enable transcendentals if logic is N[I]RAT (#2052)Andres Noetzli
2018-06-04Move assertion. (#2051)Andrew Reynolds
2018-06-04[SMT-COMP] Add new logics to run-scripts (#2022)Andres Noetzli
2018-06-04Enable cegqi (with model values) for floating point by default (#2023)Andrew Reynolds
2018-06-04Regressions: Support for requiring CVC4 features (#2044)Andres Noetzli
This commit adds supprt for the `REQUIRES` directive in our regression benchmarks. This directive can be used to enable certain benchmarks only if CVC4 has been configured with certain features enabled.
2018-06-02 Fix assertion involving unassigned Boolean eqc in model (#2050)Andrew Reynolds
2018-06-02Fix corner case of mixed int/real cegqi. (#2046)Andrew Reynolds
2018-06-02Fix BV-abstraction check to consider SKOLEM. (#2042)Mathias Preiner
Further, fix a bug in the AIG bitblaster that was also uncovered with the minimized file.
2018-06-02Fix preinitialization pass for finite model finding (#2047)Andrew Reynolds
2018-06-01Fix quantified bv variable elimination (#2039)Andrew Reynolds
2018-06-01Fix quantifiers conflict lemma handling (#2043)Andrew Reynolds
2018-06-01Apply preprocessing to counterexample lemmas in CEGQI (#2027)Andrew Reynolds
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback