diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2015-03-23 15:09:25 +0100 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2015-03-23 15:09:25 +0100 |
commit | 8beb91c3113dae4a858a30c7a21387e833d60527 (patch) | |
tree | 3779a2c309adb7c6200f709244f90a5d0ac554da /src/theory/quantifiers/inst_strategy_cbqi.h | |
parent | 973cbd67611a2943714fd9544d098ec1472a40b8 (diff) |
Decouple counter-example guided quantifier instantiation from Sygus.
Diffstat (limited to 'src/theory/quantifiers/inst_strategy_cbqi.h')
-rw-r--r-- | src/theory/quantifiers/inst_strategy_cbqi.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/theory/quantifiers/inst_strategy_cbqi.h b/src/theory/quantifiers/inst_strategy_cbqi.h index 72ab5d247..e139d0b6f 100644 --- a/src/theory/quantifiers/inst_strategy_cbqi.h +++ b/src/theory/quantifiers/inst_strategy_cbqi.h @@ -22,6 +22,7 @@ #include "theory/arith/arithvar.h" #include "util/statistics_registry.h" +#include "theory/quantifiers/ce_guided_single_inv.h" namespace CVC4 { namespace theory { @@ -80,6 +81,37 @@ public: }; +//generalized counterexample guided quantifier instantiation + +class InstStrategyCegqi; + +class CegqiOutputInstStrategy : public CegqiOutput +{ +public: + CegqiOutputInstStrategy( InstStrategyCegqi * out ) : d_out( out ){} + InstStrategyCegqi * d_out; + bool addInstantiation( std::vector< Node >& subs, std::vector< int >& subs_typ ); + bool isEligibleForInstantiation( Node n ); +}; + +class InstStrategyCegqi : public InstStrategy { +private: + CegqiOutputInstStrategy * d_out; + std::map< Node, CegInstantiator * > d_cinst; + Node d_curr_quant; + /** process functions */ + void processResetInstantiationRound( Theory::Effort effort ); + int process( Node f, Theory::Effort effort, int e ); +public: + InstStrategyCegqi( QuantifiersEngine * qe ); + ~InstStrategyCegqi(){} + + bool addInstantiation( std::vector< Node >& subs, std::vector< int >& subs_typ ); + bool isEligibleForInstantiation( Node n ); + /** identify */ + std::string identify() const { return std::string("Cegqi"); } +}; + } } } |