summaryrefslogtreecommitdiff
path: root/src/theory
AgeCommit message (Collapse)Author
2018-09-25Fix warnings uncovered by cmake build (#2521)Andrew Reynolds
2018-09-24Fix quantifiers selector over store rewrite (#2510)Andrew Reynolds
Due an ordering on if's the rewrite sel( store( a, i, j ), k ) ---> ite( k=i, j, sel( a, k ) ) was very rarely kicking in. After the change, we are +61-7 on SMT LIB: https://www.starexec.org/starexec/secure/details/job.jsp?id=30581
2018-09-24Allow partial models for multiple sygus enumerators (#2499)Andrew Reynolds
2018-09-24Infrastructure for variable agnostic sygus enumerators (#2511)Andrew Reynolds
2018-09-24 Improve non-linear check model error handling (#2497)Andrew Reynolds
2018-09-24Refactor strings equality rewriting (#2513)Andrew Reynolds
This moves the extended rewrites for string equality to the main strings rewriter as a function rewriteEqualityExt, and makes this function called on every equality that is generated (from non-equalities) by our rewriter.
2018-09-24cmake: Fix dependencies for code generation. (#2524)Mathias Preiner
2018-09-24cmake: Fix theory order #2. (#2522)Mathias Preiner
2018-09-24Unify rewrites related to (str.contains x y) --> (= x y) (#2512)Andres Noetzli
2018-09-24cmake: Fix theory order. (#2518)Mathias Preiner
2018-09-22cmake: Only build libcvc4 and libcvc4parser as libraries.Mathias Preiner
The sources of all previous libraries are now added to libcvc4 and built as libcvc4. This removes circular dependencies between libcvc4 and libexpr. Further, we now only have one parser library and don't build additional libraries for each language.
2018-09-22cmake: Remove unused CMakeLists.txtMathias Preiner
2018-09-22cmake: Working build infrastructure.Mathias Preiner
TODO: cvc4autoconfig.h
2018-09-22cmake: .cpp generation done, .h generation not yet completeAina Niemetz
2018-09-22cmake: Added initial build infrastructure.Aina Niemetz
2018-09-19Decision strategy: incorporate arrays. (#2495)Andrew Reynolds
2018-09-19Add rewrites for str.contains + str.replace/substr (#2496)Andres Noetzli
2018-09-18Decision strategy: incorporate separation logic. (#2494)Andrew Reynolds
2018-09-18Add two rewrites for string contains character (#2492)Andrew Reynolds
2018-09-18 Refactor strings extended functions inferences (#2480)Andrew Reynolds
This refactors the extended function inference step of TheoryStrings. It also generalizes a data member (d_pol) so that we track extended functions that are equal to constants for any type. This is in preparation for working on solving equations and further inferences in this style.
2018-09-18Fix issue with str.idof in evaluator (#2493)Andres Noetzli
2018-09-18Decision strategy: incorporate strings fmf. (#2485)Andrew Reynolds
2018-09-18More aggressive caching of string skolems. (#2491)Andrew Reynolds
2018-09-18Move and rename sygus solver classes (#2488)Andrew Reynolds
2018-09-17Clean remaining references to getNextDecisionRequest in quantifiers. (#2484)Andrew Reynolds
2018-09-17Improvements and fixes for symmetry detection and breaking (#2459)Andrew Reynolds
This fixes a few open issues with symmetry detection algorithm. It also extends the algorithm to do: - Alpha equivalence to recognize symmetries between quantified formulas, - A technique to recognize a subset of variables in two terms are symmetric, e.g. from x in A ^ x in B, we find A and B are interchangeable by treating x as a fixed symbol, - Symmetry breaking for maximal subterms instead of variables.
2018-09-17Move inst_strategy_cbqi to inst_strategy_cegqi (#2477)Andrew Reynolds
2018-09-17Decision strategy: incorporate cegis unif (#2482)Andrew Reynolds
2018-09-17 Decision strategy: incorporate bounded integers (#2481)Andrew Reynolds
2018-09-17Decision strategy: incorporate datatypes sygus solver. (#2479)Andrew Reynolds
2018-09-17More aggressive skolem caching for strings, document and clean preprocessor ↵Andrew Reynolds
(#2478)
2018-09-17Make strings model construction robust to lengths that are not propagated ↵Andrew Reynolds
equal (#2444) This fixes #2429. This was caused by arithmetic not notifying an equality between shared terms that it assigned to the same value. See explanation in comment. We should investigate a bit more why this is happening. I didnt think arithmetic was allowed to assign the same value to unpropagated shared length terms. I've opened issue https://github.com/CVC4/CVC4/issues/2443 to track this. Regardless, the strings model construction should be robust to handle this case, which this PR does.
2018-09-17Decision strategy: incorporate UF with cardinality constraints (#2476)Andrew Reynolds
2018-09-17Decision strategy: incorporate sygus feasible and sygus stream feasible (#2462)Andrew Reynolds
2018-09-14Refactor how assertions are added to decision engine (#2396)Andres Noetzli
Before refactoring the preprocessing passes, we were using three arguments to add assertions to the decision engine. Now all that information lives in the AssertionPipeline. This commit moves the AssertionPipeline to its own file and changes the `addAssertions()` methods related to the decision engine to take an AssertionPipeline as an arguement instead of three separate ones. Additionally, the TheoryEngine now uses an AssertionPipeline for lemmas.
2018-09-14Add Skolem cache for strings, refactor length registration (#2457)Andrew Reynolds
This PR is in preparation for doing more aggressive caching of skolems (for example, in the strings preprocessor). It refactors sendLengthLemma -> registerLength, which unifies how length lemmas for skolems and other string terms are handled.
2018-09-13Generalize CandidateRewriteDatabase to ExprMiner (#2340)Andrew Reynolds
2018-09-13Uses information gain heuristic for building better solutions from DTs (#2451)Haniel Barbosa
2018-09-13Simplify storing of transcendental function applications that occur in ↵Andrew Reynolds
assertions (#2458)
2018-09-13 Decision strategy: incorporate CEGQI (#2460)Andrew Reynolds
2018-09-12 Initial infrastructure for theory decision manager (#2447)Andrew Reynolds
2018-09-11Fix for when strings process loop is disabled. (#2456)Andrew Reynolds
2018-09-11Support model cores via option --produce-model-cores. (#2407)Andrew Reynolds
This adds support for model cores, fixes #1233. It includes some minor cleanup and additions to utility functions.
2018-09-10fix (#2446)Haniel Barbosa
2018-09-10Using a single condition enumerator in sygus-unif (#2440)Haniel Barbosa
This commit allows the use of unification techniques in which the search space for conditions in explored independently of the search space for return values (i.e. there is a single condition enumerator for which we always ask new values, similar to the PBE case). In comparison with asking the ground solver to come up with a minimal number of condition values to resolve all my separation conflicts: - _main advantage_: can quickly enumerate relevant condition values for solving the problem - _main disadvantage_: there are many "spurious" values (as in not useful for actual solutions) that get in the way of "good" values when we build solutions from the lazy trie. A follow-up PR will introduce an information-gain heuristic for building solutions, which ultimately greatly outperforms the other flavor of sygus-unif. There is also small improvements for trace messages.
2018-09-10Squash implementation of counterexample-guided instantiation (#2423)Andrew Reynolds
2018-09-10Add (str.replace (str.replace y w y) y z) rewrite (#2441)Andres Noetzli
2018-09-07 Make isClosedEnumerable a member of TypeNode (#2434)Andrew Reynolds
2018-09-06 Further simplify and fix initialization of ce guided instantiation (#2437)Andrew Reynolds
2018-09-06Refactor and document quantifiers variable elimination and conditional ↵Andrew Reynolds
splitting (#2424)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback