**/
#include "theory/quantifiers/anti_skolem.h"
+
+#include "options/quantifiers_options.h"
+#include "theory/quantifiers/first_order_model.h"
#include "theory/quantifiers/term_database.h"
#include "theory/quantifiers_engine.h"
-#include "theory/quantifiers/first_order_model.h"
-#include "options/quantifiers_options.h"
using namespace std;
-using namespace CVC4;
using namespace CVC4::kind;
using namespace CVC4::context;
-using namespace CVC4::theory;
-using namespace CVC4::theory::quantifiers;
+namespace CVC4 {
+namespace theory {
+namespace quantifiers {
struct sortTypeOrder {
TermDb* d_tdb;
}
}
-QuantAntiSkolem::QuantAntiSkolem( QuantifiersEngine * qe ) : QuantifiersModule( qe ){
- d_sqc = new CDSkQuantCache( qe->getUserContext() );
+QuantAntiSkolem::QuantAntiSkolem(QuantifiersEngine* qe)
+ : QuantifiersModule(qe) {
+ d_sqc = new CDSkQuantCache(qe->getUserContext());
}
+QuantAntiSkolem::~QuantAntiSkolem() { delete d_sqc; }
+
/* Call during quantifier engine's check */
void QuantAntiSkolem::check( Theory::Effort e, unsigned quant_e ) {
if( quant_e==QuantifiersEngine::QEFFORT_STANDARD ){
}
}
+}/* namespace CVC4::theory::quantifiers */
+}/* namespace CVC4::theory */
+}/* namespace CVC4 */
#ifndef __CVC4__THEORY__QUANT_ANTI_SKOLEM_H
#define __CVC4__THEORY__QUANT_ANTI_SKOLEM_H
-#include "theory/quantifiers_engine.h"
+#include <map>
+#include <vector>
+
+#include "expr/node.h"
+#include "expr/type_node.h"
+#include "context/cdhashset.h"
#include "context/cdo.h"
#include "theory/quantifiers/ce_guided_single_inv.h"
+#include "theory/quantifiers_engine.h"
namespace CVC4 {
namespace theory {
namespace quantifiers {
class QuantAntiSkolem : public QuantifiersModule {
+public:
+ QuantAntiSkolem( QuantifiersEngine * qe );
+ virtual ~QuantAntiSkolem();
+
+ bool sendAntiSkolemizeLemma( std::vector< Node >& quants,
+ bool pconnected = true );
+
+ /* Call during quantifier engine's check */
+ void check( Theory::Effort e, unsigned quant_e );
+ /* Called for new quantifiers */
+ void registerQuantifier( Node q ) {}
+ void assertNode( Node n ) {}
+ /** Identify this module (for debugging, dynamic configuration, etc..) */
+ std::string identify() const { return "QuantAntiSkolem"; }
+
+ private:
typedef context::CDHashSet<Node, NodeHashFunction> NodeSet;
-private:
+
std::map< Node, bool > d_quant_processed;
std::map< Node, SingleInvocationPartition > d_quant_sip;
std::map< Node, std::vector< TypeNode > > d_ask_types;
bool add( context::Context* c, std::vector< Node >& quants, unsigned index = 0 );
};
CDSkQuantCache * d_sqc;
-public:
- bool sendAntiSkolemizeLemma( std::vector< Node >& quants, bool pconnected = true );
-public:
- QuantAntiSkolem( QuantifiersEngine * qe );
-
- /* Call during quantifier engine's check */
- void check( Theory::Effort e, unsigned quant_e );
- /* Called for new quantifiers */
- void registerQuantifier( Node q ) {}
- void assertNode( Node n ) {}
- /** Identify this module (for debugging, dynamic configuration, etc..) */
- std::string identify() const { return "QuantAntiSkolem"; }
-};
+}; /* class QuantAntiSkolem */
-}
-}
-}
+}/* namespace CVC4::theory::quantifiers */
+}/* namespace CVC4::theory */
+}/* namespace CVC4 */
#endif