summaryrefslogtreecommitdiff
path: root/src/preprocessing/passes/quantifier_macros.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/preprocessing/passes/quantifier_macros.cpp')
-rw-r--r--src/preprocessing/passes/quantifier_macros.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/preprocessing/passes/quantifier_macros.cpp b/src/preprocessing/passes/quantifier_macros.cpp
index 8251183dd..6c97936b0 100644
--- a/src/preprocessing/passes/quantifier_macros.cpp
+++ b/src/preprocessing/passes/quantifier_macros.cpp
@@ -18,6 +18,7 @@
#include <vector>
+#include "expr/skolem_manager.h"
#include "options/quantifiers_options.h"
#include "options/smt_options.h"
#include "preprocessing/assertion_pipeline.h"
@@ -323,6 +324,8 @@ bool QuantifierMacros::getSubstitution( std::vector< Node >& v_quant, std::map<
bool QuantifierMacros::process( Node n, bool pol, std::vector< Node >& args, Node f ){
Trace("macros-debug") << " process " << n << std::endl;
+ NodeManager* nm = NodeManager::currentNM();
+ SkolemManager* sm = nm->getSkolemManager();
if( n.getKind()==NOT ){
return process( n[0], !pol, args, f );
}else if( n.getKind()==AND || n.getKind()==OR ){
@@ -335,11 +338,14 @@ bool QuantifierMacros::process( Node n, bool pol, std::vector< Node >& args, Nod
if( isBoundVarApplyUf( n ) ){
Node op = n.getOperator();
if( d_macro_defs.find( op )==d_macro_defs.end() ){
- Node n_def = NodeManager::currentNM()->mkConst( pol );
+ Node n_def = nm->mkConst(pol);
for( unsigned i=0; i<n.getNumChildren(); i++ ){
std::stringstream ss;
ss << "mda_" << op << "";
- Node v = NodeManager::currentNM()->mkSkolem( ss.str(), n[i].getType(), "created during macro definition recognition" );
+ Node v =
+ sm->mkDummySkolem(ss.str(),
+ n[i].getType(),
+ "created during macro definition recognition");
d_macro_basis[op].push_back( v );
}
//contains no ops
@@ -392,7 +398,10 @@ bool QuantifierMacros::process( Node n, bool pol, std::vector< Node >& args, Nod
for( size_t a=0; a<m.getNumChildren(); a++ ){
std::stringstream ss;
ss << "mda_" << op << "";
- Node v = NodeManager::currentNM()->mkSkolem( ss.str(), m[a].getType(), "created during macro definition recognition" );
+ Node v = sm->mkDummySkolem(
+ ss.str(),
+ m[a].getType(),
+ "created during macro definition recognition");
d_macro_basis[op].push_back( v );
}
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback