summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/ce_guided_instantiation.h
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2015-01-28 15:21:21 +0100
committerajreynol <andrew.j.reynolds@gmail.com>2015-01-28 15:21:21 +0100
commit1b6de21ad4a182111bc7aaa1898f4f638f5e1184 (patch)
tree9473cecbddb7eeba201c8e33a70e72cc6bc575b9 /src/theory/quantifiers/ce_guided_instantiation.h
parent3d82de01011931ee352715ac4f45c7bbc66f2201 (diff)
Minor refactor CEGQI.
Diffstat (limited to 'src/theory/quantifiers/ce_guided_instantiation.h')
-rw-r--r--src/theory/quantifiers/ce_guided_instantiation.h30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/theory/quantifiers/ce_guided_instantiation.h b/src/theory/quantifiers/ce_guided_instantiation.h
index 8b3d56a2a..ad94b51a5 100644
--- a/src/theory/quantifiers/ce_guided_instantiation.h
+++ b/src/theory/quantifiers/ce_guided_instantiation.h
@@ -67,11 +67,27 @@ private:
/** refine count */
unsigned d_refine_count;
/** assign */
- void assign( Node q );
+ void assign( QuantifiersEngine * qe, Node q );
/** is assigned */
bool isAssigned() { return !d_quant.isNull(); }
/** current extential quantifeirs whose couterexamples we must refine */
std::vector< std::vector< Node > > d_ce_sk;
+ private: //for single invocation
+ void analyzeSygusConjecture();
+ bool analyzeSygusConjunct( Node n, Node p, std::map< Node, std::vector< Node > >& children,
+ std::map< Node, std::map< Node, std::vector< Node > > >& prog_invoke,
+ std::vector< Node >& progs, std::map< Node, std::map< Node, bool > >& contains, bool pol );
+ bool analyzeSygusTerm( Node n, std::map< Node, std::vector< Node > >& prog_invoke, std::map< Node, bool >& contains );
+ public:
+ Node d_single_inv;
+ //map from programs to variables in single invocation property
+ std::map< Node, Node > d_single_inv_map;
+ //map from programs to evaluator term representing the above variable
+ std::map< Node, Node > d_single_inv_app_map;
+ //list of skolems for each argument of programs
+ std::vector< Node > d_single_inv_arg_sk;
+ //list of skolems for each program
+ std::vector< Node > d_single_inv_sk;
public: //for fairness
/** the cardinality literals */
std::map< int, Node > d_lits;
@@ -107,18 +123,6 @@ private:
/** get model term */
Node getModelTerm( Node n );
private:
- std::map< Node, Node > d_single_inv;
- //map from programs to variables in single invocation property
- std::map< Node, std::map< Node, Node > > d_single_inv_map;
- //map from programs to evaluator term representing the above variable
- std::map< Node, std::map< Node, Node > > d_single_inv_app_map;
-private:
- void analyzeSygusConjecture( Node q );
- bool analyzeSygusConjunct( Node n, Node p, std::map< Node, std::vector< Node > >& children,
- std::map< Node, std::map< Node, std::vector< Node > > >& prog_invoke,
- std::vector< Node >& progs, std::map< Node, std::map< Node, bool > >& contains, bool pol );
- bool analyzeSygusTerm( Node n, std::map< Node, std::vector< Node > >& prog_invoke, std::map< Node, bool >& contains );
-private:
/** print sygus term */
void printSygusTerm( std::ostream& out, Node n );
public:
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback