summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers_engine.h
AgeCommit message (Collapse)Author
2014-11-28Synchronize conjecture generation with E-matching. Minor fix to ↵ajreynol
--full-saturate-quant.
2014-11-25Fix bug in --term-db-mode=relevant with variable triggers. Support ↵ajreynol
inst-closure predicate and mode --term-db-inst-closure. Minor changes to theory_quantifiers.
2014-11-13Remove two obsolete versions of MBQI.ajreynol
2014-11-07Properly distinguish which EQC to assign values in datatypes, use ↵ajreynol
assertRepresentative. Disable regression related to records. Enable fmf-fun related regression (modified). Apply modified version of Morgan's patch to fix tuples/records in model. Fix bug with sort inference + patterns. Minor infrastructure.
2014-10-13Model building into quantifiers engine. Simplify axiom-inst mode.ajreynol
2014-10-13Refactor model builder from model engine to quant engine. Work on fairness ↵ajreynol
strategy for CEGQI. Add option for single/multi triggers. Minor cleanup.
2014-10-10Initial draft of CEGQI.ajreynol
2014-10-10Add owner map to better manage QuantifiersModules. Initial infrastructure ↵ajreynol
for cegqi.
2014-10-08Cache for getInstance, thanks to Johannes Kanig for the report. Do not ↵ajreynol
mkRep for multi triggers.
2014-08-21Fix --inst-max-level for strategies that use arbitrary representative terms.ajreynol
2014-08-18Add support for quantifier-specific instantiation levels. Add option for ↵ajreynol
setting inst-level 0 only for input terms.
2014-08-01Minor cleanup from previous commit. Better organization for how quantifiers ↵ajreynol
modules check (introduce QuantifiersEngine::QEffort).
2014-07-31New module for generating candidate equality conjectures used in inductive ↵ajreynol
proofs. Filtering currently includes: LHS generalizes a term from an active conjecture, terms must be canonical, conjecture must be confirmed by a ground witness, and cannot be falsified by a ground witness. Refactoring of term database. QcfEngine now uses central data structure for term indexing. Add two options for quantifier instantiation : trigger selection mode --trigger-sel=mode, and --inst-no-entail which blocks all quantifier instantiations that are currently entailed (using an incomplete check).
2014-07-01Update copyrights.Morgan Deters
2014-06-19More proof support for CASC : include skolemizationajreynol
2014-05-30Fixes for --inst-max-levelajreynol
2014-05-11More preparation for CASC proofs. Minor fix for sort inference (rewrite new ↵Andrew Reynolds
assertions). Bug fix for ambqi : simplify correctly for multi-sorted case. Bug fix for fmc : only do exh-simplification for uninterpreted sorts, ensure reps are enumerated for quantification over Real.
2014-05-08Fixes to quantifiers rewriter to prevent miniscoping nested quantifiers. ↵Andrew Reynolds
Minor fixes to ambqi. Preparation for CASC proof output. Add NNF option.
2014-04-28Preparation for models for co-inductive datatypes. Minor cleanup.Andrew Reynolds
2014-04-28Optimizations for datatypes: check for clashes modulo equality. Avoid ↵ajreynol
building model at fullModel=false when possible. Minor cleanup.
2014-03-11Initial refactor of rewrite rules, make theory_rewriterules empty theory. ↵Andrew Reynolds
Push kinds to quantifiers/kinds, rewrite rewrite rules in rewriter. Fix rewrite rule attribute, refactor QCF, instantiation engine does not register rewrite rules, minor clean up. QCF is now functional backend to rewrite rules. Support boolean variables in QCF. Change check-model to ignore rewrite rules. Incorporate some fixes from master. Move rewrite of rewrite rules from rewriter to preprocessor, attribute becomes pattern. Minor fixes to QCF/rewrite engine, removes RE on last call approach. Add option for one inst per round in RE. Merging rewrite rules into master, check-model current fails on 3 FMF regressions. Fix check-model issue, a line of code was omitted during merge.
2014-02-25Add options --full-saturate-quant and --mbqi=trust. Other minor changes.Andrew Reynolds
2014-01-27More optimization of QCF and instantiation caching. Fix CDInstMatchTrie.Andrew Reynolds
2014-01-26More optimization of QCF. Fixed InstMatchTrie for caching instantiations. ↵Andrew Reynolds
Use non-context dependent cache for instantiations when not incremental. Instantiate from relevant domain when no other instantiations apply. Minor cleanup of relevance for triggers.
2014-01-10Add new method --quant-cf for finding conflicts eagerly for quantified ↵Andrew Reynolds
formulas. This module can efficiently determine when there exists a conflict wrt quantified formulas that is implied by the current set of equalities, and reports the single lemma corresponding to the conflict. It does so before resorting to heuristic instantiation. Clean up the rewriter, other minor cleanup.
2013-10-15performance optimizations for quantifier instantiationAndrew Reynolds
2013-10-07Multiple fixes for datatypes theory solver: add support for parametric ↵Andrew Reynolds
datatypes in type enumerator, fix infinite loop in type enumerator, fix fairness issue for splitting (moves constructor selection into model generation procedure), fixes bug 532, find conflict for constructor with conflicting label eagerly. Add representive flattening for quantifiers (currently disabled). Other minor cleanup.
2013-07-02Minor fixes for bounded integers, rewrite engine.Andrew Reynolds
2013-06-17Make --var-elim-quant true by default. Add rewrite engine to quantifiers ↵Andrew Reynolds
module.
2013-05-11Preliminary version of finite model finding over bounded integer ↵Andrew Reynolds
quantification. Minor update to casc script.
2013-05-08Add new method for checking candidate models, --fmf-fmc. Add infrastructure ↵Andrew Reynolds
for handling bounded integer quantification (quantifiers/bounded_integers.h and .cpp). Add option for disabling model minimality restriction for finite model finding, --disable-uf-ss-min-model. Add option for relational triggers such as x = f(y), --relational-trigger.
2013-04-02Regenerated copyrights: canonicalized names, no emailsMorgan Deters
2013-04-01update copyrightsMorgan Deters
2013-03-11ite removal option for quantifiers --ite-remove-quant, e-matching for ↵Andrew Reynolds
boolean terms, improvement for pre skolemization
2013-02-24added option --model-u-dt-enum for outputting uninterpreted sorts as ↵Andrew Reynolds
datatype enumerations + minor update to array rewriter to improve output for this option, minor refactoring of representative selection for quantifier instantiation, initial draft of disequality propagation option --uf-ss-deq-prop, other refactoring of uf strong solver, fixed bug 496, improvement for fmf enumeration of finite built-in sorts
2013-02-04Model no longer adds subterms of quantifiers to equality engine, this fixed ↵Andrew Reynolds
bug 492 and resolves previous issue for bug 486.\n Multiple improvements for E-matching: do not choose multi-triggers if single triggers exist, only create multi-triggers that contain all variables, consider multiple terms per equivalence class but only add one instantiation per round per (trigger,term) pair.\nImprovements for strong solver: make use of sort inference information when choosing splits, check for cliques eagerly when disequalities are asserted.
2013-01-28made QuantifiersEngine::d_inst_match_trie and ↵Andrew Reynolds
QuantifiersEngine::d_lemmas_produced user-level context dependent. this fixes bug 486
2012-12-01drastic simplification of quantifiers code regarding equality queries, ↵Andrew Reynolds
instantiation strategies moved from instantiators to central instantiation engine, removed instantiator objects, simplified rewrite rules candidate generator to use central equality engine, efficient e-matching now uses central equality engine
2012-11-30quantifiers now uses master equality engine, preparation work to cleanup codeAndrew Reynolds
2012-11-14replaced all static member data from rewrite rule triggers, added ↵Andrew Reynolds
infrastructure for recognizing quantifier macros
2012-10-31cleaning up some of the equality query stuff, implemented a new ↵Andrew Reynolds
representative selection strategy for quantifier instantiation
2012-10-24efficient e-matching now specific to rewrite rulesAndrew Reynolds
2012-10-23more major cleanup of quantifiers code, separating rewrite-rules-specific ↵Andrew Reynolds
code from quantifiers-specific code
2012-10-23more updates to inst gen: fixed partial instantiations, recognize duplicate ↵Andrew Reynolds
defaults for uf
2012-10-16more cleanup of quantifiers codeAndrew Reynolds
2012-10-16first draft of new inst gen method (still with bugs), some cleanup of ↵Andrew Reynolds
quantifiers code
2012-10-11Standardizing copyright notice. Touches **ALL** sources, guys, sorry.. it'sMorgan Deters
just the header comments at the top, though. Don't update to this rev if you don't have time for a complete rebuild, and exclude this rev if you want to see what's new across a range of commits. (this commit was certified error- and warning-free by the test-and-commit script.)
2012-09-25some buggy examples for incrementality, and make bug326 run as part of make ↵Morgan Deters
regress, because the bug was fixed. Also make QuantifiersModule's destructor virtual (it has virtual members). (this commit was certified error- and warning-free by the test-and-commit script.)
2012-09-22Separate public-facing and internal-facing interfaces to Statistics.Morgan Deters
The external interface (e.g., what's answered by ExprManager::getStatistics() and SmtEngine::getStatistics()) is a snapshot of the current statistics (rather than a reference to the actual StatisticsRegistry). The StatisticsRegistry is now internal-only. However, it's built as a convenience library so that the parser and driver can use it too (by re-linking against it). This is part of the ongoing effort to clean up the public interface. (this commit was certified error- and warning-free by the test-and-commit script.)
2012-08-31merge from fmf-devel branch. more updates to models: now with ↵Andrew Reynolds
collectModelInfo with fullModel argument, most theory-specific implementation out of the model class, model printer relegated to printer classes. Also updates to finite mode finding, modifications to datatypes making them compatible with theory combination, support for theory-specific handling of user attributes, refactoring of uf models
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback