summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/term_database.h
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2014-10-10 23:27:39 +0200
committerajreynol <andrew.j.reynolds@gmail.com>2014-10-10 23:27:45 +0200
commit089d232454e89dc44a6ca2136f9b408c9335d8f1 (patch)
tree21c815088431e820ccc3b3e42fa05e5a5a9bea68 /src/theory/quantifiers/term_database.h
parent859ab54a3cc8afdc01980e3e97e91b45480586dc (diff)
Initial draft of CEGQI.
Diffstat (limited to 'src/theory/quantifiers/term_database.h')
-rw-r--r--src/theory/quantifiers/term_database.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/theory/quantifiers/term_database.h b/src/theory/quantifiers/term_database.h
index 3bd0563b6..25ef9c81c 100644
--- a/src/theory/quantifiers/term_database.h
+++ b/src/theory/quantifiers/term_database.h
@@ -19,6 +19,7 @@
#include "expr/attribute.h"
#include "theory/theory.h"
+#include "theory/type_enumerator.h"
#include <map>
@@ -241,6 +242,8 @@ public:
public:
//get bound variables in n
static void getBoundVars( Node n, std::vector< Node >& bvs);
+
+
//for skolem
private:
/** map from universal quantifiers to their skolemized body */
@@ -253,7 +256,20 @@ public:
std::vector< Node >& sk, Node& sub, std::vector< unsigned >& sub_vars );
/** get the skolemized body */
Node getSkolemizedBody( Node f);
-
+ /** is induction variable */
+ static bool isInductionTerm( Node n );
+
+//for ground term enumeration
+private:
+ /** ground terms enumerated for types */
+ std::map< TypeNode, std::vector< Node > > d_enum_terms;
+ //type enumerators
+ std::map< TypeNode, unsigned > d_typ_enum_map;
+ std::vector< TypeEnumerator > d_typ_enum;
+public:
+ //get nth term for type
+ Node getEnumerateTerm( TypeNode tn, unsigned index );
+
//miscellaneous
public:
/** map from universal quantifiers to the list of variables */
@@ -289,11 +305,7 @@ public:
int isInstanceOf( Node n1, Node n2 );
/** filter all nodes that have instances */
void filterInstances( std::vector< Node >& nodes );
-
-public: //for induction
- /** is induction variable */
- static bool isInductionTerm( Node n );
-
+
public: //general queries concerning quantified formulas wrt modules
/** is quantifier treated as a rewrite rule? */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback