// variable
if(n.getMetaKind() == kind::metakind::VARIABLE) {
- if(n.getKind() != kind::VARIABLE &&
- n.getKind() != kind::SORT_TYPE) {
- out << n.getKind() << ':';
- }
-
string s;
if(n.getAttribute(expr::VarNameAttr(), s)) {
out << s;
d_scope = new NodeManagerScope(d_nm);
d_mapPtr = new StackingMap<TNode, TNode, TNodeHashFunction>(d_ctxt);
- a = d_nm->mkVar("a", d_nm->realType());
- b = d_nm->mkVar("b", d_nm->realType());
- c = d_nm->mkVar("c", d_nm->realType());
- d = d_nm->mkVar("d", d_nm->realType());
- e = d_nm->mkVar("e", d_nm->realType());
- f = d_nm->mkVar("f", d_nm->realType());
- g = d_nm->mkVar("g", d_nm->realType());
+ a = d_nm->mkSkolem("a", d_nm->realType());
+ b = d_nm->mkSkolem("b", d_nm->realType());
+ c = d_nm->mkSkolem("c", d_nm->realType());
+ d = d_nm->mkSkolem("d", d_nm->realType());
+ e = d_nm->mkSkolem("e", d_nm->realType());
+ f = d_nm->mkSkolem("f", d_nm->realType());
+ g = d_nm->mkSkolem("g", d_nm->realType());
}
void tearDown() {
d_scope = new NodeManagerScope(d_nm);
d_vectorPtr = new StackingVector<TNode>(d_ctxt);
- a = d_nm->mkVar("a", d_nm->realType());
- b = d_nm->mkVar("b", d_nm->realType());
- c = d_nm->mkVar("c", d_nm->realType());
- d = d_nm->mkVar("d", d_nm->realType());
- e = d_nm->mkVar("e", d_nm->realType());
- f = d_nm->mkVar("f", d_nm->realType());
- g = d_nm->mkVar("g", d_nm->realType());
+ a = d_nm->mkSkolem("a", d_nm->realType());
+ b = d_nm->mkSkolem("b", d_nm->realType());
+ c = d_nm->mkSkolem("c", d_nm->realType());
+ d = d_nm->mkSkolem("d", d_nm->realType());
+ e = d_nm->mkSkolem("e", d_nm->realType());
+ f = d_nm->mkSkolem("f", d_nm->realType());
+ g = d_nm->mkSkolem("g", d_nm->realType());
}
void tearDown() {
void testDeallocation() {
TypeNode booleanType = d_nodeManager->booleanType();
- Node* node = new Node(d_nodeManager->mkVar(booleanType));
+ Node* node = new Node(d_nodeManager->mkSkolem(booleanType));
MyData* data;
MyData* data1;
MyDataAttribute attr;
typedef expr::CDAttribute<CDPrimitiveIntAttributeId,uint64_t> CDPrimitiveIntAttribute;
void testInts(){
TypeNode booleanType = d_nodeManager->booleanType();
- Node* node = new Node(d_nodeManager->mkVar(booleanType));
+ Node* node = new Node(d_nodeManager->mkSkolem(booleanType));
const uint64_t val = 63489;
uint64_t data0 = 0;
uint64_t data1 = 0;
typedef expr::CDAttribute<CDTNodeAttributeId, TNode> CDTNodeAttribute;
void testTNodes(){
TypeNode booleanType = d_nodeManager->booleanType();
- Node* node = new Node(d_nodeManager->mkVar(booleanType));
+ Node* node = new Node(d_nodeManager->mkSkolem(booleanType));
- Node val(d_nodeManager->mkVar(booleanType));
+ Node val(d_nodeManager->mkSkolem(booleanType));
TNode data0;
TNode data1;
typedef expr::CDAttribute<CDPtrAttributeId, Foo*> CDPtrAttribute;
void testPtrs(){
TypeNode booleanType = d_nodeManager->booleanType();
- Node* node = new Node(d_nodeManager->mkVar(booleanType));
+ Node* node = new Node(d_nodeManager->mkSkolem(booleanType));
Foo* val = new Foo(63489);
Foo* data0 = NULL;
typedef expr::CDAttribute<CDConstPtrAttributeId, const Foo*> CDConstPtrAttribute;
void testConstPtrs(){
TypeNode booleanType = d_nodeManager->booleanType();
- Node* node = new Node(d_nodeManager->mkVar(booleanType));
+ Node* node = new Node(d_nodeManager->mkSkolem(booleanType));
const Foo* val = new Foo(63489);
const Foo* data0 = NULL;
typedef expr::CDAttribute<CDStringAttributeId, std::string> CDStringAttribute;
void testStrings(){
TypeNode booleanType = d_nodeManager->booleanType();
- Node* node = new Node(d_nodeManager->mkVar(booleanType));
+ Node* node = new Node(d_nodeManager->mkSkolem(booleanType));
std::string val("63489");
std::string data0;
typedef expr::CDAttribute<CDBoolAttributeId, bool> CDBoolAttribute;
void testBools(){
TypeNode booleanType = d_nodeManager->booleanType();
- Node* node = new Node(d_nodeManager->mkVar(booleanType));
+ Node* node = new Node(d_nodeManager->mkSkolem(booleanType));
bool val = true;
bool data0 = false;
void testOperatorEquals() {
Node a, b, c;
- b = d_nodeManager->mkVar(*d_booleanType);
+ b = d_nodeManager->mkSkolem(*d_booleanType);
a = b;
c = a;
- Node d = d_nodeManager->mkVar(*d_booleanType);
+ Node d = d_nodeManager->mkSkolem(*d_booleanType);
TS_ASSERT(a==a);
TS_ASSERT(a==b);
Node a, b, c;
- b = d_nodeManager->mkVar(*d_booleanType);
+ b = d_nodeManager->mkSkolem(*d_booleanType);
a = b;
c = a;
- Node d = d_nodeManager->mkVar(*d_booleanType);
+ Node d = d_nodeManager->mkSkolem(*d_booleanType);
/*structed assuming operator == works */
TS_ASSERT(iff(a!=a, !(a==a)));
/*tests: Node& operator=(const Node&); */
void testOperatorAssign() {
Node a, b;
- Node c = d_nodeManager->mkNode(NOT, d_nodeManager->mkVar(*d_booleanType));
+ Node c = d_nodeManager->mkNode(NOT, d_nodeManager->mkSkolem(*d_booleanType));
b = c;
TS_ASSERT(b==c);
/* We don't have access to the ids so we can't test the implementation
* in the black box tests. */
- Node a = d_nodeManager->mkVar("a", d_nodeManager->booleanType());
- Node b = d_nodeManager->mkVar("b", d_nodeManager->booleanType());
+ Node a = d_nodeManager->mkSkolem("a", d_nodeManager->booleanType());
+ Node b = d_nodeManager->mkSkolem("b", d_nodeManager->booleanType());
TS_ASSERT(a<b || b<a);
TS_ASSERT(!(a<b && b<a));
/* Node eqNode(const Node& right) const; */
TypeNode t = d_nodeManager->mkSort();
- Node left = d_nodeManager->mkVar(t);
- Node right = d_nodeManager->mkVar(t);
+ Node left = d_nodeManager->mkSkolem(t);
+ Node right = d_nodeManager->mkSkolem(t);
Node eq = left.eqNode(right);
TS_ASSERT(EQUAL == eq.getKind());
void testIteNode() {
/*Node iteNode(const Node& thenpart, const Node& elsepart) const;*/
- Node a = d_nodeManager->mkVar(*d_booleanType);
- Node b = d_nodeManager->mkVar(*d_booleanType);
+ Node a = d_nodeManager->mkSkolem(*d_booleanType);
+ Node b = d_nodeManager->mkSkolem(*d_booleanType);
Node cnd = d_nodeManager->mkNode(OR, a, b);
Node thenBranch = d_nodeManager->mkConst(true);
void testGetKind() {
/*inline Kind getKind() const; */
- Node a = d_nodeManager->mkVar(*d_booleanType);
- Node b = d_nodeManager->mkVar(*d_booleanType);
+ Node a = d_nodeManager->mkSkolem(*d_booleanType);
+ Node b = d_nodeManager->mkSkolem(*d_booleanType);
Node n = d_nodeManager->mkNode(NOT, a);
TS_ASSERT(NOT == n.getKind());
n = d_nodeManager->mkNode(IFF, a, b);
TS_ASSERT(IFF == n.getKind());
- Node x = d_nodeManager->mkVar(*d_realType);
- Node y = d_nodeManager->mkVar(*d_realType);
+ Node x = d_nodeManager->mkSkolem(*d_realType);
+ Node y = d_nodeManager->mkSkolem(*d_realType);
n = d_nodeManager->mkNode(PLUS, x, y);
TS_ASSERT(PLUS == n.getKind());
TypeNode booleanType = d_nodeManager->booleanType();
TypeNode predType = d_nodeManager->mkFunctionType(sort, booleanType);
- Node f = d_nodeManager->mkVar(predType);
- Node a = d_nodeManager->mkVar(sort);
+ Node f = d_nodeManager->mkSkolem(predType);
+ Node a = d_nodeManager->mkSkolem(sort);
Node fa = d_nodeManager->mkNode(kind::APPLY_UF, f, a);
TS_ASSERT( fa.hasOperator() );
// test iterators
void testIterator() {
NodeBuilder<> b;
- Node x = d_nodeManager->mkVar(*d_booleanType);
- Node y = d_nodeManager->mkVar(*d_booleanType);
- Node z = d_nodeManager->mkVar(*d_booleanType);
+ Node x = d_nodeManager->mkSkolem(*d_booleanType);
+ Node y = d_nodeManager->mkSkolem(*d_booleanType);
+ Node z = d_nodeManager->mkSkolem(*d_booleanType);
Node n = b << x << y << z << kind::AND;
{ // iterator
void testKindedIterator() {
TypeNode integerType = d_nodeManager->integerType();
- Node x = d_nodeManager->mkVar("x", integerType);
- Node y = d_nodeManager->mkVar("y", integerType);
- Node z = d_nodeManager->mkVar("z", integerType);
+ Node x = d_nodeManager->mkSkolem("x", integerType);
+ Node y = d_nodeManager->mkSkolem("y", integerType);
+ Node z = d_nodeManager->mkSkolem("z", integerType);
Node plus_x_y_z = d_nodeManager->mkNode(kind::PLUS, x, y, z);
Node x_minus_y = d_nodeManager->mkNode(kind::MINUS, x, y);
void testToString() {
TypeNode booleanType = d_nodeManager->booleanType();
- Node w = d_nodeManager->mkVar("w", booleanType);
- Node x = d_nodeManager->mkVar("x", booleanType);
- Node y = d_nodeManager->mkVar("y", booleanType);
- Node z = d_nodeManager->mkVar("z", booleanType);
+ Node w = d_nodeManager->mkSkolem("w", booleanType);
+ Node x = d_nodeManager->mkSkolem("x", booleanType);
+ Node y = d_nodeManager->mkSkolem("y", booleanType);
+ Node z = d_nodeManager->mkSkolem("z", booleanType);
Node m = NodeBuilder<>() << w << x << kind::OR;
Node n = NodeBuilder<>() << m << y << z << kind::AND;
void testToStream() {
TypeNode booleanType = d_nodeManager->booleanType();
- Node w = d_nodeManager->mkVar("w", booleanType);
- Node x = d_nodeManager->mkVar("x", booleanType);
- Node y = d_nodeManager->mkVar("y", booleanType);
- Node z = d_nodeManager->mkVar("z", booleanType);
+ Node w = d_nodeManager->mkSkolem("w", booleanType);
+ Node x = d_nodeManager->mkSkolem("x", booleanType);
+ Node y = d_nodeManager->mkSkolem("y", booleanType);
+ Node z = d_nodeManager->mkSkolem("z", booleanType);
Node m = NodeBuilder<>() << x << y << kind::OR;
Node n = NodeBuilder<>() << w << m << z << kind::AND;
Node o = NodeBuilder<>() << n << n << kind::XOR;
TypeNode intType = d_nodeManager->integerType();
TypeNode fnType = d_nodeManager->mkFunctionType(intType, intType);
- Node x = d_nodeManager->mkVar("x", intType);
- Node y = d_nodeManager->mkVar("y", intType);
- Node f = d_nodeManager->mkVar("f", fnType);
- Node g = d_nodeManager->mkVar("g", fnType);
+ Node x = d_nodeManager->mkSkolem("x", intType);
+ Node y = d_nodeManager->mkSkolem("y", intType);
+ Node f = d_nodeManager->mkSkolem("f", fnType);
+ Node g = d_nodeManager->mkSkolem("g", fnType);
Node fx = d_nodeManager->mkNode(APPLY_UF, f, x);
Node fy = d_nodeManager->mkNode(APPLY_UF, f, y);
Node gx = d_nodeManager->mkNode(APPLY_UF, g, x);
// This is for demonstrating what a certain type of user error looks like.
// Node level0(){
// NodeBuilder<> nb(kind::AND);
-// Node x = d_nodeManager->mkVar(*d_booleanType);
+// Node x = d_nodeManager->mkSkolem(*d_booleanType);
// nb << x;
// nb << x;
// return Node(nb.constructNode());
void testIterator() {
NodeBuilder<> b;
- Node x = d_nm->mkVar(*d_booleanType);
- Node y = d_nm->mkVar(*d_booleanType);
- Node z = d_nm->mkVar(*d_booleanType);
+ Node x = d_nm->mkSkolem(*d_booleanType);
+ Node y = d_nm->mkSkolem(*d_booleanType);
+ Node z = d_nm->mkSkolem(*d_booleanType);
b << x << y << z << AND;
{
NodeBuilder<> noKind;
TS_ASSERT_EQUALS(noKind.getKind(), UNDEFINED_KIND);
- Node x( d_nm->mkVar( *d_integerType ) );
+ Node x( d_nm->mkSkolem( *d_integerType ) );
noKind << x << x;
// push_back(noKind, K);
TS_ASSERT_EQUALS(noKind.getKind(), UNDEFINED_KIND);
void testGetNumChildren() {
/* unsigned getNumChildren() const; */
- Node x( d_nm->mkVar( *d_integerType ) );
+ Node x( d_nm->mkSkolem( *d_integerType ) );
NodeBuilder<> nb;
#ifdef CVC4_ASSERTIONS
}
void testAppend() {
- Node x = d_nm->mkVar(*d_booleanType);
- Node y = d_nm->mkVar(*d_booleanType);
- Node z = d_nm->mkVar(*d_booleanType);
+ Node x = d_nm->mkSkolem(*d_booleanType);
+ Node y = d_nm->mkSkolem(*d_booleanType);
+ Node z = d_nm->mkSkolem(*d_booleanType);
Node m = d_nm->mkNode(AND, y, z, x);
Node n = d_nm->mkNode(OR, d_nm->mkNode(NOT, x), y, z);
Node o = d_nm->mkNode(XOR, y, x);
- Node r = d_nm->mkVar(*d_realType);
- Node s = d_nm->mkVar(*d_realType);
- Node t = d_nm->mkVar(*d_realType);
+ Node r = d_nm->mkSkolem(*d_realType);
+ Node s = d_nm->mkSkolem(*d_realType);
+ Node t = d_nm->mkSkolem(*d_realType);
Node p = d_nm->mkNode(EQUAL, d_nm->mkConst<Rational>(0),
d_nm->mkNode(PLUS, r, d_nm->mkNode(UMINUS, s), t));
void testLeftistBuilding() {
NodeBuilder<> nb;
- Node a = d_nm->mkVar(*d_booleanType);
+ Node a = d_nm->mkSkolem(*d_booleanType);
- Node b = d_nm->mkVar(*d_booleanType);
- Node c = d_nm->mkVar(*d_booleanType);
+ Node b = d_nm->mkSkolem(*d_booleanType);
+ Node c = d_nm->mkSkolem(*d_booleanType);
- Node d = d_nm->mkVar(*d_realType);
- Node e = d_nm->mkVar(*d_realType);
+ Node d = d_nm->mkSkolem(*d_realType);
+ Node e = d_nm->mkSkolem(*d_realType);
nb << a << NOT
<< b << c << OR
}
void testConvenienceBuilders() {
- Node a = d_nm->mkVar(*d_booleanType);
+ Node a = d_nm->mkSkolem(*d_booleanType);
- Node b = d_nm->mkVar(*d_booleanType);
- Node c = d_nm->mkVar(*d_booleanType);
+ Node b = d_nm->mkSkolem(*d_booleanType);
+ Node c = d_nm->mkSkolem(*d_booleanType);
- Node d = d_nm->mkVar(*d_realType);
- Node e = d_nm->mkVar(*d_realType);
- Node f = d_nm->mkVar(*d_realType);
+ Node d = d_nm->mkSkolem(*d_realType);
+ Node e = d_nm->mkSkolem(*d_realType);
+ Node f = d_nm->mkSkolem(*d_realType);
Node m = a && b;
TS_ASSERT_EQUALS(m, d_nm->mkNode(AND, a, b));
}
void testMkNodeNot() {
- Node x = d_nodeManager->mkVar("x",d_nodeManager->booleanType());
+ Node x = d_nodeManager->mkSkolem("x",d_nodeManager->booleanType());
Node n = d_nodeManager->mkNode(NOT, x);
TS_ASSERT_EQUALS( n.getNumChildren(), 1u );
TS_ASSERT_EQUALS( n.getKind(), NOT);
}
void testMkNodeBinary() {
- Node x = d_nodeManager->mkVar("x",d_nodeManager->booleanType());
- Node y = d_nodeManager->mkVar("y",d_nodeManager->booleanType());
+ Node x = d_nodeManager->mkSkolem("x",d_nodeManager->booleanType());
+ Node y = d_nodeManager->mkSkolem("y",d_nodeManager->booleanType());
Node n = d_nodeManager->mkNode(IMPLIES, x, y);
TS_ASSERT_EQUALS( n.getNumChildren(), 2u );
TS_ASSERT_EQUALS( n.getKind(), IMPLIES);
}
void testMkNodeThreeChildren() {
- Node x = d_nodeManager->mkVar("x",d_nodeManager->booleanType());
- Node y = d_nodeManager->mkVar("y",d_nodeManager->booleanType());
- Node z = d_nodeManager->mkVar("z",d_nodeManager->booleanType());
+ Node x = d_nodeManager->mkSkolem("x",d_nodeManager->booleanType());
+ Node y = d_nodeManager->mkSkolem("y",d_nodeManager->booleanType());
+ Node z = d_nodeManager->mkSkolem("z",d_nodeManager->booleanType());
Node n = d_nodeManager->mkNode(AND, x, y, z);
TS_ASSERT_EQUALS( n.getNumChildren(), 3u );
TS_ASSERT_EQUALS( n.getKind(), AND);
}
void testMkNodeFourChildren() {
- Node x1 = d_nodeManager->mkVar("x1",d_nodeManager->booleanType());
- Node x2 = d_nodeManager->mkVar("x2",d_nodeManager->booleanType());
- Node x3 = d_nodeManager->mkVar("x3",d_nodeManager->booleanType());
- Node x4 = d_nodeManager->mkVar("x4",d_nodeManager->booleanType());
+ Node x1 = d_nodeManager->mkSkolem("x1",d_nodeManager->booleanType());
+ Node x2 = d_nodeManager->mkSkolem("x2",d_nodeManager->booleanType());
+ Node x3 = d_nodeManager->mkSkolem("x3",d_nodeManager->booleanType());
+ Node x4 = d_nodeManager->mkSkolem("x4",d_nodeManager->booleanType());
Node n = d_nodeManager->mkNode(AND, x1, x2, x3, x4);
TS_ASSERT_EQUALS( n.getNumChildren(), 4u );
TS_ASSERT_EQUALS( n.getKind(), AND );
}
void testMkNodeFiveChildren() {
- Node x1 = d_nodeManager->mkVar("x1",d_nodeManager->booleanType());
- Node x2 = d_nodeManager->mkVar("x2",d_nodeManager->booleanType());
- Node x3 = d_nodeManager->mkVar("x3",d_nodeManager->booleanType());
- Node x4 = d_nodeManager->mkVar("x4",d_nodeManager->booleanType());
- Node x5 = d_nodeManager->mkVar("x5",d_nodeManager->booleanType());
+ Node x1 = d_nodeManager->mkSkolem("x1",d_nodeManager->booleanType());
+ Node x2 = d_nodeManager->mkSkolem("x2",d_nodeManager->booleanType());
+ Node x3 = d_nodeManager->mkSkolem("x3",d_nodeManager->booleanType());
+ Node x4 = d_nodeManager->mkSkolem("x4",d_nodeManager->booleanType());
+ Node x5 = d_nodeManager->mkSkolem("x5",d_nodeManager->booleanType());
Node n = d_nodeManager->mkNode(AND, x1, x2, x3, x4, x5);
TS_ASSERT_EQUALS( n.getNumChildren(), 5u );
TS_ASSERT_EQUALS( n.getKind(), AND);
}
void testMkNodeVectorOfNodeChildren() {
- Node x1 = d_nodeManager->mkVar("x1",d_nodeManager->booleanType());
- Node x2 = d_nodeManager->mkVar("x2",d_nodeManager->booleanType());
- Node x3 = d_nodeManager->mkVar("x3",d_nodeManager->booleanType());
+ Node x1 = d_nodeManager->mkSkolem("x1",d_nodeManager->booleanType());
+ Node x2 = d_nodeManager->mkSkolem("x2",d_nodeManager->booleanType());
+ Node x3 = d_nodeManager->mkSkolem("x3",d_nodeManager->booleanType());
std::vector<Node> args;
args.push_back(x1);
args.push_back(x2);
}
void testMkNodeVectorOfTNodeChildren() {
- Node x1 = d_nodeManager->mkVar("x1",d_nodeManager->booleanType());
- Node x2 = d_nodeManager->mkVar("x2",d_nodeManager->booleanType());
- Node x3 = d_nodeManager->mkVar("x3",d_nodeManager->booleanType());
+ Node x1 = d_nodeManager->mkSkolem("x1",d_nodeManager->booleanType());
+ Node x2 = d_nodeManager->mkSkolem("x2",d_nodeManager->booleanType());
+ Node x3 = d_nodeManager->mkSkolem("x3",d_nodeManager->booleanType());
std::vector<TNode> args;
args.push_back(x1);
args.push_back(x2);
void testMkVarWithNoName() {
TypeNode booleanType = d_nodeManager->booleanType();
- Node x = d_nodeManager->mkVar(booleanType);
- TS_ASSERT_EQUALS(x.getKind(),VARIABLE);
+ Node x = d_nodeManager->mkSkolem(booleanType);
+ TS_ASSERT_EQUALS(x.getKind(),SKOLEM);
TS_ASSERT_EQUALS(x.getNumChildren(),0u);
TS_ASSERT_EQUALS(x.getType(),booleanType);
}
void testMkVarWithName() {
TypeNode booleanType = d_nodeManager->booleanType();
- Node x = d_nodeManager->mkVar("x", booleanType);
- TS_ASSERT_EQUALS(x.getKind(),VARIABLE);
+ Node x = d_nodeManager->mkSkolem("x", booleanType);
+ TS_ASSERT_EQUALS(x.getKind(),SKOLEM);
TS_ASSERT_EQUALS(x.getNumChildren(),0u);
TS_ASSERT_EQUALS(x.getAttribute(VarNameAttr()),"x");
TS_ASSERT_EQUALS(x.getType(),booleanType);
/* This test is only valid if assertions are enabled. */
void testMkNodeTooFew() {
#ifdef CVC4_ASSERTIONS
- Node x = d_nodeManager->mkVar( d_nodeManager->booleanType() );
+ Node x = d_nodeManager->mkSkolem( d_nodeManager->booleanType() );
TS_ASSERT_THROWS( d_nodeManager->mkNode(AND, x), AssertionException );
#endif
}
const unsigned int max = metakind::getUpperBoundForKind(AND);
TypeNode boolType = d_nodeManager->booleanType();
for( unsigned int i = 0; i <= max; ++i ) {
- vars.push_back( d_nodeManager->mkVar(boolType) );
+ vars.push_back( d_nodeManager->mkSkolem(boolType) );
}
TS_ASSERT_THROWS( d_nodeManager->mkNode(AND, vars), AssertionException );
#endif
}
void testSelfIteration() {
- Node x = d_nodeManager->mkVar("x", *d_booleanType);
- Node y = d_nodeManager->mkVar("y", *d_booleanType);
+ Node x = d_nodeManager->mkSkolem("x", *d_booleanType);
+ Node y = d_nodeManager->mkSkolem("y", *d_booleanType);
Node x_and_y = x && y;
NodeSelfIterator i = x_and_y, j = NodeSelfIterator::self(x_and_y);
TS_ASSERT(i != x_and_y.end());
d_nm = new NodeManager(d_context, NULL);
d_scope = new NodeManagerScope(d_nm);
- a = d_nm->mkVar("a", d_nm->booleanType());
- b = d_nm->mkVar("b", d_nm->booleanType());
- c = d_nm->mkVar("c", d_nm->booleanType());
- d = d_nm->mkVar("d", d_nm->booleanType());
- e = d_nm->mkVar("e", d_nm->booleanType());
- f = d_nm->mkVar("f", d_nm->mkFunctionType(d_nm->booleanType(),
- d_nm->booleanType()));
- g = d_nm->mkVar("g", d_nm->mkFunctionType(d_nm->booleanType(),
- d_nm->booleanType()));
- h = d_nm->mkVar("h", d_nm->mkFunctionType(d_nm->booleanType(),
- d_nm->booleanType()));
+ a = d_nm->mkSkolem("a", d_nm->booleanType());
+ b = d_nm->mkSkolem("b", d_nm->booleanType());
+ c = d_nm->mkSkolem("c", d_nm->booleanType());
+ d = d_nm->mkSkolem("d", d_nm->booleanType());
+ e = d_nm->mkSkolem("e", d_nm->booleanType());
+ f = d_nm->mkSkolem("f", d_nm->mkFunctionType(d_nm->booleanType(),
+ d_nm->booleanType()));
+ g = d_nm->mkSkolem("g", d_nm->mkFunctionType(d_nm->booleanType(),
+ d_nm->booleanType()));
+ h = d_nm->mkSkolem("h", d_nm->mkFunctionType(d_nm->booleanType(),
+ d_nm->booleanType()));
fa = d_nm->mkNode(kind::APPLY_UF, f, a);
fb = d_nm->mkNode(kind::APPLY_UF, f, b);
fc = d_nm->mkNode(kind::APPLY_UF, f, c);