summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers_engine.h
AgeCommit message (Collapse)Author
2020-09-03Minor cleanup of quantifiers engine (#4994)Andrew Reynolds
Eventually, QuanitifersEngine should not depend on TheoryEngine. This is a first step in this direction. It eliminates some uses of TheoryEngine and eliminates a unnecessary friend relationship between quantifiers::TermDb and TheoryEngine. Further refactoring will be done in future PRs.
2020-09-02(proof-new) Support proofs of quantifier instantiation (#5001)Andrew Reynolds
This adds basic support for proofs of quantifier instantiation, which is the main method for sending lemmas from TheoryQuantifiers. Quantifier instantiation is also heavily used for solving extended string functions.
2020-09-01Removes old proof code (#4964)Haniel Barbosa
This deletes much of the old proof code. Basically everything but the minimal necessary infra-structure for producing unsat cores. That includes dependency tracking in preprocessing, the prop engine proof and the unsat core computation code in the old proof manager. These should also go once we fully integrate into master the new proof infrastructure. It also cleans interfaces that were using old-proof-code-specific constructs (such as LemmaProofRecipe). When possible or when it made sense standalone local proof production code was kept, but deactivated (such is in the equality engine and in the arithmetic solver).
2020-08-18Quantifiers engine stores a pointer to the master equality engine (#4908)Andrew Reynolds
This is work towards a configurable approach to theory combination. Setting the master equality engine in QuantifiersEngine mimics setting EqualityEngine in Theory.
2020-08-11Remove instantiation model true option (#4861)Andrew Reynolds
This was an option that rejected instantiations that are true according to the current model's equality engine. This option was never helpful and will be burdensome to maintain with new updates to equality engine infrastructure.
2020-06-16Update copyright headers.Aina Niemetz
2020-03-20Make handling of illegal internal representatives in quantifiers engine more ↵Andrew Reynolds
robust (#4034) Fixes #4002 (that benchmark is now unknown). The experimental option --cbqi-all previously had some issues when combined with finite model finding. When these two options are used simultaneously, it may be the case that certain equivalence classes are "illegal" since they contain only terms that are ineligible for instantiation. The previous code threw a warning when this occurred which in extreme cases allowed for potentially ineligible terms for instantiation. The new code is more conservative: we never choose illegal internal representatives and instead set the incomplete flag in finite model finding when this occurs. A block of code changed indentation in this PR, which was updated to the new standards.
2020-02-19Delay enumerative instantiation if theory engine does not need check (#3774)Andrew Reynolds
2019-12-17Generate code for options with modes. (#3561)Mathias Preiner
This commit adds support for code generation of options with modes (enums). From now on option enums can be specified in the corresponding *.toml files without the need of extra code. All option enums are now in the options namespace.
2019-11-04Make check synth solution robust to auxiliary assertions (#3432)Andrew Reynolds
2019-11-04Make getSynthSolution return a Bool (#3306)Andrew Reynolds
2019-09-17 Encapsulate relevant domain (#3293)Andrew Reynolds
2019-09-16Remove equality inference option for quantifiers (#3282)Andrew Reynolds
2019-09-12Encapsulate synth engine (#3271)Andrew Reynolds
2019-09-11Refactoring finite bounds in Quantifiers Engine (#3261)Andrew Reynolds
2019-09-11Infrastructure for instantiation rewriter (#3262)Andrew Reynolds
2019-09-04Refactoring CEGQI interface (#3239)Andrew Reynolds
2019-08-17Move quantifiers relevance module inside E-matching module (#3186)Andrew Reynolds
2019-08-12 Give rewrite engine pointer to conflict-based instantiation module (#3174)Andrew Reynolds
2019-08-08Reorganize includes for quantifiers engine (#3169)Andrew Reynolds
2019-08-05Remove forward declarations in quantifiers engine (#3156)Andrew Reynolds
2019-08-01Move some generic utilities out of quantifiers (#3139)Andrew Reynolds
2019-04-24Do not use __ prefix for header guards. (#2974)Mathias Preiner
Fixes 2887.
2019-03-26Update copyright headers.Aina Niemetz
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-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-07-02Remove miscellaneous dead and unused code from quantifiers (#2121)Andrew Reynolds
2018-06-25Updated copyright headers.Aina Niemetz
2018-05-30Fixes for quantifiers + incremental (#2009)Andrew Reynolds
2018-05-27Fix cegqi assertions for quantified non-linear cases. (#1999)Andrew Reynolds
2018-03-23Remove unused code (#1700)Andrew Reynolds
2018-03-06Simplify initialization of quantifiers engine (#1641)Andrew Reynolds
2018-02-02Option to check solutions produced by SyGuS solver (#1553)Haniel Barbosa
2017-12-06Remove CDChunkList (#1414)Andres Noetzli
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-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-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-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.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback