summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers_engine.cpp
AgeCommit message (Collapse)Author
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-17Move inst_strategy_cbqi to inst_strategy_cegqi (#2477)Andrew Reynolds
2018-09-10Squash implementation of counterexample-guided instantiation (#2423)Andrew Reynolds
2018-08-28 Split term canonize utility to own file and document (#2398)Andrew Reynolds
2018-08-24Clean up quantifiers engine initialization. (#2371)Andrew Reynolds
2018-08-22 More unused code elimination (#2358)Andrew Reynolds
2018-08-20More unused code elimination (#2339)Andrew Reynolds
2018-07-02Remove miscellaneous dead and unused code from quantifiers (#2121)Andrew Reynolds
2018-06-28Split and document ceg theory instantiators (#2094)Andrew Reynolds
2018-06-26Remove unnecessary code in register quantifier internal (#2092)Andrew Reynolds
2018-06-25Updated copyright headers.Aina Niemetz
2018-06-01Fix quantifiers conflict lemma handling (#2043)Andrew Reynolds
2018-05-31Reduce before preregister. (#2025)Andrew Reynolds
2018-05-30Fixes for quantifiers + incremental (#2009)Andrew Reynolds
2018-05-27Fix cegqi assertions for quantified non-linear cases. (#1999)Andrew Reynolds
2018-05-21Refactor sygus eval unfold (#1946)Andrew Reynolds
2018-03-23Remove unused code (#1700)Andrew Reynolds
2018-03-06Simplify initialization of quantifiers engine (#1641)Andrew Reynolds
2018-02-14Quantifiers subdirectories (#1608)Andrew Reynolds
2018-02-02Option to check solutions produced by SyGuS solver (#1553)Haniel Barbosa
2017-12-08Make collect model info return a Bool (#1421)Andrew Reynolds
2017-11-24(Refactor) Instantiate utility (#1387)Andrew Reynolds
2017-11-14Make QEffort an enum (#1366)Andrew Reynolds
* Make QEffort an enum. * Format * Minor * Fix
2017-11-09 Decouple sygus term database and term database. (#1317)Andrew Reynolds
* Decouple sygus term database and term database. * Clang format * Fix include
2017-11-01(Move-only) Split quant util (#1306)Andrew Reynolds
* Initial draft of splitting quant util. * Minor * Document recursive term builder. * Rename file, minor. * Clang format
2017-11-01(Refactor) Split term util (#1303)Andrew Reynolds
* Fix some documentation. * Move model basis out of term db. * Moving * Finished moving. * Document Skolemize and term enumeration. * Minor * Model basis to first order model. * Change function name. * Minor * Clang format. * Minor * Format * Minor * Format * Address review.
2017-10-28(Move only) Move enumerative instantiation strategy to its own file and ↵Andrew Reynolds
document (#1290) * Move, document, and rename enumerative instantiation. * Clang format.
2017-10-28Document term db (#1220)Andrew Reynolds
* Document TermDb and related classes. Minor changes to quantifiers utils and their interface. Address some comments left over from PR 1206. * Minor * Minor * Change namespace style. * Address review * Fix incorrectly merged portion that led to regression failures. * New clang format, fully document relevant domain. * Clang format again. * Minor
2017-10-27Refactor theory model (#1236)Andrew Reynolds
* Refactor theory model, working on making RepSet references const. * Encapsulation of members of rep set. * More documentation on rep set. * Swap names * Reference issues. * Minor * Minor * New clang format.
2017-10-10Fix memory leak in quantifiers engine (#1219)Andres Noetzli
Commit 96a0bc3b022b67b5ab79bf2ab087573c65a8d248 introduced a memory leak where d_quant_attr was not deleted when the QuantifiersEngine was destroyed. This commit fixes the issue by turning d_quant_attr into an std::unique_ptr.
2017-10-09Split term database (#1206)Andrew Reynolds
* Move equality query to own file, move equality inference to quantifiers engine. * Move quantifiers attributes out of TermDb and into QuantAttribute. * Move term database sygus to quantifiers engine, move some attributes to quantifiers attributes header. * Split term database into term util. * Partial fix for #1205 that eliminates need for dependency in node.cpp. * Add more references to github issues.
2017-09-29Simplify representation of inversion Skolems for bv cegqi (#1164)Andrew Reynolds
* Simplify intermediate representation of inversion skolems for cegqi bit-vectors. Cache bv inversion status globally in QuantifierEngine. Generalize virtual term policy for marking eligible instantiation terms. Enable regression. * Enable other regression
2017-09-27Minor fixes for partial quantifier elimination. (#1147)Andrew Reynolds
This forces "counterexample lemmas" (the formula B => ~phi[e] on page 23 of http://homepage.divms.uiowa.edu/~ajreynol/fmsd17-instla.pdf) to be added during TheoryQuantifiers::preRegisterTerm instead of at full effort check. This is required to ensure that CVC4's partial quantifier elimination algorithm produces correct results. Some background: "get-qe" and "get-qe-disjunct" are commands in the SMT2 parser. Here is how they can be used: [declarations] [assertions A] (get-qe (exists X F)) returns a ground formula F' such that A ^ F' and A ^ (exists X F) are equivalent. The command "get-qe-disjunct" provides an interface for doing an incremental version of "get-qe". [declarations] [assertions A] (get-qe-disjunct (exists X F)) returns a ground formula F1' such that A ^ F' implies A ^ (exists X F). It moreover has the property that if you call: [declarations] [assertions A] (assert F1') (get-qe-disjunct (exists X F)) this will give you a formula F2' where eventually: [declarations] [assertions A] (assert (not (or F1' ... Fn'))) (get-qe-disjunct (exists X F)) will either return "true" or "false", for some finite n. Here is an example that failed before this commit: (set-logic LIA) (declare-fun a () Int) (declare-fun b () Int) (declare-fun c () Int) (declare-fun d () Int) (assert (or (not (>= (+ a (* (- 1) b)) 1)) (not (>= (+ c (* (- 1) d)) 0)))) (get-qe-disjunct (exists ((x Int)) (and (> a b) (> c x) (> d x)))) This should return: (not (or (not (>= (+ a (* (- 1) b)) 1)) (>= (+ c (* (- 1) d)) 1))) Previously it was returning: false This is because the cbqi algorithm needs to assume the negation of the quantified formula we are doing qe on before it makes any decision. The get-qe-partial feature is being requested by Cesare and Daniel Larraz for Kind2. This improves our performance on quantified LIA/LRA: https://www.starexec.org/starexec/secure/details/job.jsp?id=24480 see CVC4-092617-2-fixQePartial
2017-08-17Add mbqi interleave option, change option fs-inst to fs-interleave.ajreynol
2017-07-20Moving from the gnu extensions for hash maps to the c++11 hash mapsTim King
* Replacing __gnu_cxx::hash_map with std::unordered_map. * Replacing __gnu_cxx::hash_set with std::unordered_set. * Replacing __gnu_cxx::hash with std::hash. * Adding missing includes.
2017-07-07Update copyright headers.Mathias Preiner
2017-06-01Minor optimizations related to cbqi.ajreynol
2017-05-15Make conflict-based instantiation abort if a ground conflict is found in the ↵ajreynol
master equality engine during term indexing, fixes bug 801.
2017-03-29Add quantifiers options related to model and master equality engine.ajreynol
2017-03-27Making ppNotifyAssertions take a const vector.Tim King
2017-03-24Refactor model building for quantifiers to be a single pass, simplification. ↵ajreynol
Modify datatypes collect model info to include dt equivalence classes. Further work on sygus. Other minor fixes.
2017-03-02Eliminate Boolean term conversion. Generalizes removeITE pass to remove ↵ajreynol
Boolean terms, treats distinguished BOOLEAN_TERM_VARIABLE kind as theory literal. Fixes bugs 597, 604, 651, 652, 691, 694. Add regressions.
2017-02-16Fixes for sets+rels check. Minor.ajreynol
2016-12-07Refactoring, generalization of bounded inference module. Simplification of ↵ajreynol
rep set iterator. Disable quantifiers dynamic splitting for variables that are inferred bounded. Minor changes to fmc mbqi. Add regressions.
2016-12-02Refactor preprocessing of models in fmf. Fix options --fmf-empty-sorts and ↵ajreynol
--fmf-fun-rlv, fixes bug 723.
2016-11-21Refactoring related to track instantiation option.ajreynol
2016-11-03Add priorities to getNextDecision. Properly handle case for finite types + ↵ajreynol
unbounded heaps in sep logic. Fix another simple memory leak in sygus.
2016-10-28Add get instantiations utilities to API.ajreynol
2016-09-29Address some coverity warnings, add another stat.ajreynol
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback