theory THEORY_QUANTIFIERS ::CVC4::theory::quantifiers::TheoryQuantifiers "theory/quantifiers/theory_quantifiers.h"
typechecker "theory/quantifiers/theory_quantifiers_type_rules.h"
-properties check presolve getNextDecisionRequest
+properties check presolve
rewriter ::CVC4::theory::quantifiers::QuantifiersRewriter "theory/quantifiers/quantifiers_rewriter.h"
* Called when a quantified formula q is asserted to the quantifiers theory
*/
virtual void assertNode(Node q) {}
- /* Get the next decision request.
- *
- * Identical to Theory::getNextDecisionRequest(...)
- */
- virtual Node getNextDecisionRequest( unsigned& priority ) { return TNode::null(); }
/** Identify this module (for debugging, dynamic configuration, etc..) */
virtual std::string identify() const = 0;
//----------------------------general queries
getQuantifiersEngine()->check( e );
}
-Node TheoryQuantifiers::getNextDecisionRequest( unsigned& priority ){
- return getQuantifiersEngine()->getNextDecisionRequest( priority );
-}
-
void TheoryQuantifiers::assertUniversal( Node n ){
Assert( n.getKind()==FORALL );
if( !options::cbqi() || options::recurseCbqi() || !TermUtil::hasInstConstAttr(n) ){
void presolve() override;
void ppNotifyAssertions(const std::vector<Node>& assertions) override;
void check(Effort e) override;
- Node getNextDecisionRequest(unsigned& priority) override;
bool collectModelInfo(TheoryModel* m) override;
void shutdown() override {}
std::string identify() const override
addTermToDatabase(d_term_util->getInstConstantBody(f), true);
}
-Node QuantifiersEngine::getNextDecisionRequest( unsigned& priority ){
- unsigned min_priority = 0;
- Node dec;
- for( unsigned i=0; i<d_modules.size(); i++ ){
- Node n = d_modules[i]->getNextDecisionRequest( priority );
- if( !n.isNull() && ( dec.isNull() || priority<min_priority ) ){
- dec = n;
- min_priority = priority;
- }
- }
- return dec;
-}
-
void QuantifiersEngine::addTermToDatabase( Node n, bool withinQuant, bool withinInstClosure ){
if( options::incrementalSolving() ){
if( d_presolve_in.find( n )==d_presolve_in.end() ){
void registerPattern( std::vector<Node> & pattern);
/** assert universal quantifier */
void assertQuantifier( Node q, bool pol );
- /** get next decision request */
- Node getNextDecisionRequest( unsigned& priority );
private:
/** (context-indepentent) register quantifier internal
*