summaryrefslogtreecommitdiff
path: root/src/theory/theory_engine.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-11-19 16:53:48 -0600
committerGitHub <noreply@github.com>2020-11-19 16:53:48 -0600
commitf2ed7b1aebc175b971e3cebf4c0b2fff6e4e895f (patch)
tree9d67467344399282909475f3cf891639f8abbaf8 /src/theory/theory_engine.h
parent7191e58e5561a159c0cd3b81fddbe311ba70a45b (diff)
Enable new implementation of CEGQI based on nested quantifier elimination (#5477)
This replaces the old implementation of CEGQI based on nested quantifier elimination (--cegqi-nested-qe) with the new implementation. The previous implementation used some convoluted internal attributes to manage dependencies between quantified formulas, the new implementation is much simpler: it simply eliminates nested quantification eagerly. Fixes #5365, fixes #5279, fixes #4849, fixes #4433. This PR also required fixes related to how quantifier elimination is computed.
Diffstat (limited to 'src/theory/theory_engine.h')
-rw-r--r--src/theory/theory_engine.h13
1 files changed, 2 insertions, 11 deletions
diff --git a/src/theory/theory_engine.h b/src/theory/theory_engine.h
index ee3611a53..1412d7464 100644
--- a/src/theory/theory_engine.h
+++ b/src/theory/theory_engine.h
@@ -686,23 +686,14 @@ class TheoryEngine {
/**
* Get instantiation methods
- * first inputs forall x.q[x] and returns ( q[a], ..., q[z] )
- * second inputs forall x.q[x] and returns ( a, ..., z )
- * third and fourth return mappings e.g. forall x.q1[x] -> ( q1[a]...q1[z] )
+ * the first given forall x.q[x] returns ( a, ..., z )
+ * the second returns mappings e.g. forall x.q1[x] -> ( q1[a]...q1[z] )
* , ... , forall x.qn[x] -> ( qn[a]...qn[z] )
*/
- void getInstantiations( Node q, std::vector< Node >& insts );
void getInstantiationTermVectors( Node q, std::vector< std::vector< Node > >& tvecs );
- void getInstantiations( std::map< Node, std::vector< Node > >& insts );
void getInstantiationTermVectors( std::map< Node, std::vector< std::vector< Node > > >& insts );
/**
- * Get instantiated conjunction, returns q[t1] ^ ... ^ q[tn] where t1...tn are current set of instantiations for q.
- * Can be used for quantifier elimination when satisfiable and q[t1] ^ ... ^ q[tn] |= q
- */
- Node getInstantiatedConjunction( Node q );
-
- /**
* Forwards an entailment check according to the given theoryOfMode.
* See theory.h for documentation on entailmentCheck().
*/
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback