<< " ( (x " << elementType << ") )"
<< " " << name << ""
<< " (store emptyset" << elementTypeAsString << " x true) )" << endl;
- setoperators[ make_pair(t, kind::SET_SINGLETON) ] =
+ setoperators[ make_pair(t, kind::SINGLETON) ] =
em->mkVar( std::string("setenum") + elementTypeAsString,
em->mkFunctionType( elementType, t ) );
addOperator(kind::INTERSECTION, "intersection");
addOperator(kind::SETMINUS, "setminus");
addOperator(kind::SUBSET, "subseteq");
- addOperator(kind::MEMBER, "in");
- addOperator(kind::SET_SINGLETON, "setenum");
+ addOperator(kind::MEMBER, "member");
+ addOperator(kind::SINGLETON, "singleton");
break;
case THEORY_DATATYPES:
case kind::SUBSET:
case kind::MEMBER:
case kind::SET_TYPE:
- case kind::SET_SINGLETON: out << smtKindString(k) << " "; break;
+ case kind::SINGLETON: out << smtKindString(k) << " "; break;
// datatypes
case kind::APPLY_TYPE_ASCRIPTION: {
case kind::INTERSECTION: return "intersection";
case kind::SETMINUS: return "setminus";
case kind::SUBSET: return "subseteq";
- case kind::MEMBER: return "in";
+ case kind::MEMBER: return "member";
case kind::SET_TYPE: return "Set";
- case kind::SET_SINGLETON: return "setenum";
+ case kind::SINGLETON: return "singleton";
default:
; /* fall through */
}
Node TermDb::getOperator( Node n ) {
//return n.getOperator();
Kind k = n.getKind();
- if( k==SELECT || k==STORE || k==UNION || k==INTERSECTION || k==SUBSET || k==SETMINUS || k==MEMBER || k==SET_SINGLETON ){
+ if( k==SELECT || k==STORE || k==UNION || k==INTERSECTION || k==SUBSET || k==SETMINUS || k==MEMBER || k==SINGLETON ){
//since it is parametric, use a particular one as op
TypeNode tn = n[0].getType();
Node op = n.getOperator();
bool Trigger::isAtomicTriggerKind( Kind k ) {
return k==APPLY_UF || k==SELECT || k==STORE ||
k==APPLY_CONSTRUCTOR || k==APPLY_SELECTOR_TOTAL || k==APPLY_TESTER ||
- k==UNION || k==INTERSECTION || k==SUBSET || k==SETMINUS || k==MEMBER || k==SET_SINGLETON;
+ k==UNION || k==INTERSECTION || k==SUBSET || k==SETMINUS || k==MEMBER || k==SINGLETON;
}
bool Trigger::isSimpleTrigger( Node n ){
return NodeManager::currentNM()->mkNode(kind::MEMBER, a, b);
}
-static Node SET_SINGLETON(TNode a) {
- return NodeManager::currentNM()->mkNode(kind::SET_SINGLETON, a);
+static Node SINGLETON(TNode a) {
+ return NodeManager::currentNM()->mkNode(kind::SINGLETON, a);
}
static Node EQUAL(TNode a, TNode b) {
"the empty set constant; payload is an instance of the CVC4::EmptySet class"
# the type
-operator SET_TYPE 1 "set type"
+operator SET_TYPE 1 "set type, takes as parameter the type of the elements"
cardinality SET_TYPE \
"::CVC4::theory::sets::SetsProperties::computeCardinality(%TYPE%)" \
"theory/sets/theory_sets_type_rules.h"
operator SETMINUS 2 "set subtraction"
operator SUBSET 2 "subset predicate; first parameter a subset of second"
operator MEMBER 2 "set membership predicate; first parameter a member of second"
-operator SET_SINGLETON 1 "the set of the single element given as a parameter"
+operator SINGLETON 1 "the set of the single element given as a parameter"
typerule UNION ::CVC4::theory::sets::SetsBinaryOperatorTypeRule
typerule INTERSECTION ::CVC4::theory::sets::SetsBinaryOperatorTypeRule
typerule SETMINUS ::CVC4::theory::sets::SetsBinaryOperatorTypeRule
typerule SUBSET ::CVC4::theory::sets::SubsetTypeRule
typerule MEMBER ::CVC4::theory::sets::MemberTypeRule
-typerule SET_SINGLETON ::CVC4::theory::sets::SetSingletonTypeRule
+typerule SINGLETON ::CVC4::theory::sets::SingletonTypeRule
typerule EMPTYSET ::CVC4::theory::sets::EmptySetTypeRule
construle UNION ::CVC4::theory::sets::SetsBinaryOperatorTypeRule
construle INTERSECTION ::CVC4::theory::sets::SetsBinaryOperatorTypeRule
construle SETMINUS ::CVC4::theory::sets::SetsBinaryOperatorTypeRule
-construle SET_SINGLETON ::CVC4::theory::sets::SetSingletonTypeRule
+construle SINGLETON ::CVC4::theory::sets::SingletonTypeRule
endtheory
if(S.getKind() == kind::UNION ||
S.getKind() == kind::INTERSECTION ||
S.getKind() == kind::SETMINUS ||
- S.getKind() == kind::SET_SINGLETON) {
+ S.getKind() == kind::SINGLETON) {
doSettermPropagation(x, S);
if(d_conflict) return;
}// propagation: children
left_literal = MEMBER(x, S[0]) ;
right_literal = NOT( MEMBER(x, S[1]) );
break;
- case kind::SET_SINGLETON: {
+ case kind::SINGLETON: {
Node atom = MEMBER(x, S);
if(holds(atom, true)) {
learnLiteral(EQUAL(x, S[0]), true, atom);
return nm->mkConst(EmptySet(nm->toType(setType)));
} else {
Elements::iterator it = elements.begin();
- Node cur = SET_SINGLETON(*it);
+ Node cur = SINGLETON(*it);
while( ++it != elements.end() ) {
- cur = nm->mkNode(kind::UNION, cur, SET_SINGLETON(*it));
+ cur = nm->mkNode(kind::UNION, cur, SINGLETON(*it));
}
return cur;
}
d_equalityEngine.addTriggerTerm(node, THEORY_SETS);
// d_equalityEngine.addTerm(node);
}
- if(node.getKind() == kind::SET_SINGLETON) {
+ if(node.getKind() == kind::SINGLETON) {
Node true_node = NodeManager::currentNM()->mkConst<bool>(true);
learnLiteral(MEMBER(node[0], node), true, true_node);
//intentional fallthrough
if(S.getKind() == kind::UNION ||
S.getKind() == kind::INTERSECTION ||
S.getKind() == kind::SETMINUS ||
- S.getKind() == kind::SET_SINGLETON) {
+ S.getKind() == kind::SINGLETON) {
d_theory.d_settermPropagationQueue.push_back(std::make_pair(x, S));
}// propagation: children
return false;
}
- if(setTerm.getKind() == kind::SET_SINGLETON) {
+ if(setTerm.getKind() == kind::SINGLETON) {
return elementTerm == setTerm[0];
}
- Assert(setTerm.getKind() == kind::UNION && setTerm[1].getKind() == kind::SET_SINGLETON,
+ Assert(setTerm.getKind() == kind::UNION && setTerm[1].getKind() == kind::SINGLETON,
"kind was %d, term: %s", setTerm.getKind(), setTerm.toString().c_str());
return elementTerm == setTerm[1][0] || checkConstantMembership(elementTerm, setTerm[0]);
// switch(setTerm.getKind()) {
// case kind::EMPTYSET:
// return false;
- // case kind::SET_SINGLETON:
+ // case kind::SINGLETON:
// return elementTerm == setTerm[0];
// case kind::UNION:
// return checkConstantMembership(elementTerm, setTerm[0]) ||
case kind::EMPTYSET:
/* assign emptyset, which is default */
break;
- case kind::SET_SINGLETON:
+ case kind::SINGLETON:
Assert(setterm[0].isConst());
cur.insert(TheorySetsRewriter::preRewrite(setterm[0]).node);
break;
} else {
Elements::iterator it = elements.begin();
- Node cur = nm->mkNode(kind::SET_SINGLETON, *it);
+ Node cur = nm->mkNode(kind::SINGLETON, *it);
while( ++it != elements.end() ) {
cur = nm->mkNode(kind::UNION, cur,
- nm->mkNode(kind::SET_SINGLETON, *it));
+ nm->mkNode(kind::SINGLETON, *it));
}
return cur;
}
Assert(d_index == 0 || d_index == 1);
if(d_index == 1) {
- n = d_nm->mkNode(kind::SET_SINGLETON, *(*(d_constituentVec[0])));
+ n = d_nm->mkNode(kind::SINGLETON, *(*(d_constituentVec[0])));
}
// for (unsigned i = 0; i < d_indexVec.size(); ++i) {
}
};/* struct MemberTypeRule */
-struct SetSingletonTypeRule {
+struct SingletonTypeRule {
inline static TypeNode computeType(NodeManager* nodeManager, TNode n, bool check)
throw (TypeCheckingExceptionPrivate, AssertionException) {
- Assert(n.getKind() == kind::SET_SINGLETON);
+ Assert(n.getKind() == kind::SINGLETON);
return nodeManager->mkSetType(n[0].getType(check));
}
inline static bool computeIsConst(NodeManager* nodeManager, TNode n) {
- Assert(n.getKind() == kind::SET_SINGLETON);
+ Assert(n.getKind() == kind::SINGLETON);
return n[0].isConst();
}
-};/* struct SetSingletonTypeRule */
+};/* struct SingletonTypeRule */
struct EmptySetTypeRule {
inline static TypeNode computeType(NodeManager* nodeManager, TNode n, bool check)
(assert (forall ((l4 List0) (e1 Int)) (! (= (buggySortedIns e1 l4) (ite (is-Nil l4) (Cons e1 Nil) (ite (<= (head0 l4) e1) (Cons (head0 l4) (buggySortedIns e1 (tail0 l4))) (Cons e1 l4)))) :pattern ((buggySortedIns e1 l4)))))
(assert (forall ((l3 List0) (e Int)) (! (= (sortedIns e l3) (ite (is-Nil l3) (Cons e Nil) (ite (<= (head0 l3) e) (Cons (head0 l3) (sortedIns e (tail0 l3))) (Cons e l3)))) :pattern ((sortedIns e l3)))))
(assert (forall ((l5 List0)) (! (= (sort l5) (ite (is-Nil l5) Nil (sortedIns (head0 l5) (sort (tail0 l5))))) :pattern ((sort l5)))))
-(assert (forall ((l1 List0)) (! (= (contents l1) (ite (is-Nil l1) (as emptyset (Set Int)) (union (contents (tail0 l1)) (setenum (head0 l1))))) :pattern ((contents l1)))))
+(assert (forall ((l1 List0)) (! (= (contents l1) (ite (is-Nil l1) (as emptyset (Set Int)) (union (contents (tail0 l1)) (singleton (head0 l1))))) :pattern ((contents l1)))))
(pop)
(push)
-(assert (forall ((l4 List0) (e1 Int)) (not (let ((result2 (ite (is-Nil l4) (Cons e1 Nil) (ite (<= (head0 l4) e1) (Cons (head0 l4) (buggySortedIns e1 (tail0 l4))) (Cons e1 l4))))) (and (= (contents result2) (union (contents l4) (setenum e1))) (isSorted result2) (= (size result2) (+ (size l4) 1)))))))
+(assert (forall ((l4 List0) (e1 Int)) (not (let ((result2 (ite (is-Nil l4) (Cons e1 Nil) (ite (<= (head0 l4) e1) (Cons (head0 l4) (buggySortedIns e1 (tail0 l4))) (Cons e1 l4))))) (and (= (contents result2) (union (contents l4) (singleton e1))) (isSorted result2) (= (size result2) (+ (size l4) 1)))))))
(check-sat)
(pop)
(assert (! (forall ((l1 Loc) (l2 Loc))
(or (not Axiom_1$0)
(or (<= (read$0 data$0 l1) (read$0 data$0 l2))
- (not (Btwn$0 next$0 l1 l2 null$0)) (not (in l1 sk_?X_4$0))
- (not (in l2 sk_?X_4$0)))))
+ (not (Btwn$0 next$0 l1 l2 null$0)) (not (member l1 sk_?X_4$0))
+ (not (member l2 sk_?X_4$0)))))
:named sortedness_3))
(assert (! (= (read$1 next$0 null$0) null$0) :named read_null_1))
-(assert (! (not (in tmp_2$0 Alloc$0)) :named new_31_11))
+(assert (! (not (member tmp_2$0 Alloc$0)) :named new_31_11))
-(assert (! (not (in null$0 Alloc$0)) :named initial_footprint_of_copy_23_11_2))
+(assert (! (not (member null$0 Alloc$0)) :named initial_footprint_of_copy_23_11_2))
(assert (! (not (= lst$0 null$0)) :named if_else_26_6))
(assert (! (= cp_2$0 res_1$0) :named assign_32_4))
-(assert (! (= FP_1$0 (union FP$0 (setenum tmp_2$0))) :named assign_31_11))
+(assert (! (= FP_1$0 (union FP$0 (singleton tmp_2$0))) :named assign_31_11))
(assert (! (or (and (Btwn$0 next$0 lst$0 null$0 null$0) Axiom_1$0)
(not (slseg_struct$0 sk_?X_4$0 data$0 next$0 lst$0 null$0)))
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 lst$0 l1 null$0)
- (in l1 (slseg_domain$0 data$0 next$0 lst$0 null$0))
+ (member l1 (slseg_domain$0 data$0 next$0 lst$0 null$0))
(not (= l1 null$0)))
(and (or (= l1 null$0) (not (Btwn$0 next$0 lst$0 l1 null$0)))
- (not (in l1 (slseg_domain$0 data$0 next$0 lst$0 null$0))))))
+ (not (member l1 (slseg_domain$0 data$0 next$0 lst$0 null$0))))))
:named slseg_footprint_2))
-(assert (! (not (in curr_2$0 FP_1$0)) :named check_heap_access_33_4))
+(assert (! (not (member curr_2$0 FP_1$0)) :named check_heap_access_33_4))
(assert (! (not (= tmp_2$0 null$0)) :named new_31_11_1))
(assert (! (= FP_Caller_1$0 (setminus FP_Caller$0 FP$0)) :named assign_26_2_1))
-(assert (! (= Alloc_1$0 (union Alloc$0 (setenum tmp_2$0))) :named assign_31_11_1))
+(assert (! (= Alloc_1$0 (union Alloc$0 (singleton tmp_2$0))) :named assign_31_11_1))
(assert (! (forall ((?x Loc)) (Btwn$0 next$0 ?x ?x ?x)) :named btwn_refl_1))
(set-logic ALL_SUPPORTED)
(set-info :status unsat)
-(assert (in 5 (as emptyset (Set Int) )))
+(assert (member 5 (as emptyset (Set Int) )))
(check-sat)
(declare-fun H () (Set Int) )
(declare-fun I () (Set Int) )
(declare-fun x () Int)
-(assert (in x (intersection (union A B) C)))
-(assert (not (in x G)))
+(assert (member x (intersection (union A B) C)))
+(assert (not (member x G)))
(assert (= (union A B) D))
(assert (= C (intersection E F)))
(assert (and (= F H) (= G H) (= H I)))
(set-logic QF_ALL_SUPPORTED)
(set-info :status unsat)
-(assert (= (as emptyset (Set Int)) (setenum 5)))
+(assert (= (as emptyset (Set Int)) (singleton 5)))
(check-sat)
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
(let ((e16 (f1 e14 v1 v4)))
(let ((e17 (intersection e16 e15)))
(let ((e18 (f1 v4 e15 v2)))
-(let ((e19 (ite (p1 e13) (setenum 1) (setenum 0))))
-(let ((e20 (in v0 e17)))
-(let ((e21 (in e7 e16)))
-(let ((e22 (in e10 e16)))
-(let ((e23 (in e8 e17)))
-(let ((e24 (in e9 e14)))
-(let ((e25 (in e8 e16)))
-(let ((e26 (in v0 e13)))
-(let ((e27 (in e12 v4)))
-(let ((e28 (in e8 e14)))
-(let ((e29 (in e8 v1)))
-(let ((e30 (in e10 e13)))
-(let ((e31 (in e7 e13)))
+(let ((e19 (ite (p1 e13) (singleton 1) (singleton 0))))
+(let ((e20 (member v0 e17)))
+(let ((e21 (member e7 e16)))
+(let ((e22 (member e10 e16)))
+(let ((e23 (member e8 e17)))
+(let ((e24 (member e9 e14)))
+(let ((e25 (member e8 e16)))
+(let ((e26 (member v0 e13)))
+(let ((e27 (member e12 v4)))
+(let ((e28 (member e8 e14)))
+(let ((e29 (member e8 v1)))
+(let ((e30 (member e10 e13)))
+(let ((e31 (member e7 e13)))
(let ((e32 (f1 e13 e13 e13)))
(let ((e33 (f1 e18 v4 e17)))
(let ((e34 (f1 v2 v2 e15)))
(let ((e20 (intersection e17 e18)))
(let ((e21 (intersection v1 e16)))
(let ((e22 (setminus e20 e16)))
-(let ((e23 (ite (p1 v2 e18 e21) (setenum 1) (setenum 0))))
+(let ((e23 (ite (p1 v2 e18 e21) (singleton 1) (singleton 0))))
(let ((e24 (setminus e17 e23)))
(let ((e25 (union v2 e22)))
(let ((e26 (union e24 e18)))
-(let ((e27 (ite (p1 e20 e19 e25) (setenum 1) (setenum 0))))
+(let ((e27 (ite (p1 e20 e19 e25) (singleton 1) (singleton 0))))
(let ((e28 (f1 e20)))
-(let ((e29 (in e14 e17)))
-(let ((e30 (in e13 e23)))
-(let ((e31 (in e11 e25)))
-(let ((e32 (in e6 v1)))
-(let ((e33 (in e9 v1)))
-(let ((e34 (in v0 e28)))
-(let ((e35 (in e9 e16)))
-(let ((e36 (in e4 e17)))
-(let ((e37 (in e9 e18)))
-(let ((e38 (in e14 e25)))
-(let ((e39 (in e14 v2)))
-(let ((e40 (in v0 v1)))
-(let ((e41 (in e4 e16)))
-(let ((e42 (in e15 e21)))
-(let ((e43 (in e7 e22)))
-(let ((e44 (in e11 v2)))
-(let ((e45 (in e14 e22)))
-(let ((e46 (in e11 e16)))
-(let ((e47 (in e15 e22)))
-(let ((e48 (in e10 e23)))
-(let ((e49 (in e4 e21)))
-(let ((e50 (in e5 e28)))
-(let ((e51 (in e6 e28)))
-(let ((e52 (in v0 e22)))
-(let ((e53 (in e14 e20)))
+(let ((e29 (member e14 e17)))
+(let ((e30 (member e13 e23)))
+(let ((e31 (member e11 e25)))
+(let ((e32 (member e6 v1)))
+(let ((e33 (member e9 v1)))
+(let ((e34 (member v0 e28)))
+(let ((e35 (member e9 e16)))
+(let ((e36 (member e4 e17)))
+(let ((e37 (member e9 e18)))
+(let ((e38 (member e14 e25)))
+(let ((e39 (member e14 v2)))
+(let ((e40 (member v0 v1)))
+(let ((e41 (member e4 e16)))
+(let ((e42 (member e15 e21)))
+(let ((e43 (member e7 e22)))
+(let ((e44 (member e11 v2)))
+(let ((e45 (member e14 e22)))
+(let ((e46 (member e11 e16)))
+(let ((e47 (member e15 e22)))
+(let ((e48 (member e10 e23)))
+(let ((e49 (member e4 e21)))
+(let ((e50 (member e5 e28)))
+(let ((e51 (member e6 e28)))
+(let ((e52 (member v0 e22)))
+(let ((e53 (member e14 e20)))
(let ((e54 (f1 e21)))
(let ((e55 (f1 e28)))
(let ((e56 (f1 e27)))
(let ((e8 (* e6 (- e5))))
(let ((e9 (ite (p0 e7 v0 e6) 1 0)))
(let ((e10 (f0 v0 e8 e8)))
-(let ((e11 (ite (p1 v1) (setenum 1) (setenum 0))))
+(let ((e11 (ite (p1 v1) (singleton 1) (singleton 0))))
(let ((e12 (union v3 v3)))
(let ((e13 (intersection v3 v1)))
-(let ((e14 (ite (p1 v3) (setenum 1) (setenum 0))))
+(let ((e14 (ite (p1 v3) (singleton 1) (singleton 0))))
(let ((e15 (intersection v2 e14)))
-(let ((e16 (ite (p1 e11) (setenum 1) (setenum 0))))
-(let ((e17 (ite (p1 v4) (setenum 1) (setenum 0))))
+(let ((e16 (ite (p1 e11) (singleton 1) (singleton 0))))
+(let ((e17 (ite (p1 v4) (singleton 1) (singleton 0))))
(let ((e18 (union e15 v2)))
-(let ((e19 (ite (p1 e16) (setenum 1) (setenum 0))))
+(let ((e19 (ite (p1 e16) (singleton 1) (singleton 0))))
(let ((e20 (intersection e18 v3)))
(let ((e21 (setminus v4 e12)))
(let ((e22 (union v3 v2)))
(let ((e23 (setminus e12 v4)))
(let ((e24 (setminus v3 e16)))
(let ((e25 (intersection e19 e20)))
-(let ((e26 (ite (p1 e15) (setenum 1) (setenum 0))))
+(let ((e26 (ite (p1 e15) (singleton 1) (singleton 0))))
(let ((e27 (setminus e17 e15)))
(let ((e28 (f1 e23 e12)))
-(let ((e29 (in e10 e16)))
-(let ((e30 (in e10 v1)))
-(let ((e31 (in e7 e19)))
+(let ((e29 (member e10 e16)))
+(let ((e30 (member e10 v1)))
+(let ((e31 (member e7 e19)))
(let ((e32 (f1 e12 e12)))
(let ((e33 (f1 e16 e25)))
(let ((e34 (f1 v1 e27)))
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
(declare-fun S () (Set Int))
(declare-fun T () (Set Int))
-(assert (in x S))
+(assert (member x S))
-(assert (= S (union T (setenum y))))
+(assert (= S (union T (singleton y))))
(assert (not (= x y)))
-(assert (not (in x T)))
+(assert (not (member x T)))
(check-sat)
(assert (! (forall ((l1 Loc) (l2 Loc))
(or (not Axiom$0)
(or (= l1 l2) (< (read$0 data$0 l1) (read$0 data$0 l2))
- (not (Btwn$0 next$0 l1 l2 null$0)) (not (in l1 sk_?X$0))
- (not (in l2 sk_?X$0)))))
+ (not (Btwn$0 next$0 l1 l2 null$0)) (not (member l1 sk_?X$0))
+ (not (member l2 sk_?X$0)))))
:named strict_sortedness))
(assert (! (forall ((l1 Loc))
(or (= l1 null$0)
- (in (read$0 data$0 l1)
+ (member (read$0 data$0 l1)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
(not (Btwn$0 next$0 lst$0 l1 null$0))))
:named sorted_set_1))
(witness$0 (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
null$0)
- (in (read$0 data$0 curr_2$0)
+ (member (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
(sorted_set_domain$0 data$0 next$0 lst$0 null$0)))
(not
- (in (read$0 data$0 curr_2$0)
+ (member (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
:named sorted_set_2))
(witness$0 (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
null$0)
- (in (read$0 data$0 prev_2$0)
+ (member (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
(sorted_set_domain$0 data$0 next$0 lst$0 null$0)))
(not
- (in (read$0 data$0 prev_2$0)
+ (member (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
:named sorted_set_2_1))
(witness$0 (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
null$0)
- (in (read$0 data$0 sk_l1$0)
+ (member (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
(sorted_set_domain$0 data$0 next$0 lst$0 null$0)))
(not
- (in (read$0 data$0 sk_l1$0)
+ (member (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
:named sorted_set_2_2))
(witness$0 (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
null$0)
- (in (read$0 data$0 sk_l1_1$0)
+ (member (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
(sorted_set_domain$0 data$0 next$0 lst$0 null$0)))
(not
- (in (read$0 data$0 sk_l1_1$0)
+ (member (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
:named sorted_set_2_3))
(witness$0 (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
null$0)
- (in (read$0 data$0 sk_l2$0)
+ (member (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
(sorted_set_domain$0 data$0 next$0 lst$0 null$0)))
(not
- (in (read$0 data$0 sk_l2$0)
+ (member (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
:named sorted_set_2_4))
(witness$0 (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
null$0)
- (in (read$0 data$0 sk_l2_1$0)
+ (member (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
(sorted_set_domain$0 data$0 next$0 lst$0 null$0)))
(not
- (in (read$0 data$0 sk_l2_1$0)
+ (member (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
:named sorted_set_2_5))
(=
(witness$0 sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0))
null$0)
- (in sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))
+ (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))
(or
(and
(= sk_?e$0
(read$0 data$0
(witness$0 sk_?e$0
(sorted_set_c$0 data$0 next$0 lst$0 null$0))))
- (in
+ (member
(witness$0 sk_?e$0
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
(sorted_set_domain$0 data$0 next$0 lst$0 null$0)))
- (not (in sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
+ (not (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
:named sorted_set_2_6))
(assert (! (and
(witness$0 sk_?e_3$0
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
null$0)
- (in sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))
+ (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))
(or
(and
(= sk_?e_3$0
(read$0 data$0
(witness$0 sk_?e_3$0
(sorted_set_c$0 data$0 next$0 lst$0 null$0))))
- (in
+ (member
(witness$0 sk_?e_3$0
(sorted_set_c$0 data$0 next$0 lst$0 null$0))
(sorted_set_domain$0 data$0 next$0 lst$0 null$0)))
- (not (in sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
+ (not (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
:named sorted_set_2_7))
(assert (! (forall ((l1 Loc))
(or (= l1 null$0)
- (in (read$0 data$0 l1)
+ (member (read$0 data$0 l1)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
(not (Btwn$0 next$0 curr_2$0 l1 null$0))))
:named sorted_set_1_1))
(assert (! (forall ((l1 Loc))
(or (= l1 curr_2$0)
- (in (read$0 data$0 l1)
+ (member (read$0 data$0 l1)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
(not (Btwn$0 next$0 lst$0 l1 curr_2$0))))
:named sorted_set_1_2))
(witness$0 (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
null$0)
- (in (read$0 data$0 curr_2$0)
+ (member (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
(sorted_set_domain$0 data$0 next$0 curr_2$0 null$0)))
(not
- (in (read$0 data$0 curr_2$0)
+ (member (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
:named sorted_set_2_8))
(witness$0 (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
null$0)
- (in (read$0 data$0 prev_2$0)
+ (member (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
(sorted_set_domain$0 data$0 next$0 curr_2$0 null$0)))
(not
- (in (read$0 data$0 prev_2$0)
+ (member (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
:named sorted_set_2_9))
(witness$0 (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
null$0)
- (in (read$0 data$0 sk_l1$0)
+ (member (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
(sorted_set_domain$0 data$0 next$0 curr_2$0 null$0)))
(not
- (in (read$0 data$0 sk_l1$0)
+ (member (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
:named sorted_set_2_10))
(witness$0 (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
null$0)
- (in (read$0 data$0 sk_l1_1$0)
+ (member (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
(sorted_set_domain$0 data$0 next$0 curr_2$0 null$0)))
(not
- (in (read$0 data$0 sk_l1_1$0)
+ (member (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
:named sorted_set_2_11))
(witness$0 (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
null$0)
- (in (read$0 data$0 sk_l2$0)
+ (member (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
(sorted_set_domain$0 data$0 next$0 curr_2$0 null$0)))
(not
- (in (read$0 data$0 sk_l2$0)
+ (member (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
:named sorted_set_2_12))
(witness$0 (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
null$0)
- (in (read$0 data$0 sk_l2_1$0)
+ (member (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
(sorted_set_domain$0 data$0 next$0 curr_2$0 null$0)))
(not
- (in (read$0 data$0 sk_l2_1$0)
+ (member (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
:named sorted_set_2_13))
(witness$0 sk_?e$0
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
null$0)
- (in sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
+ (member sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
(or
(and
(= sk_?e$0
(read$0 data$0
(witness$0 sk_?e$0
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (in
+ (member
(witness$0 sk_?e$0
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
(sorted_set_domain$0 data$0 next$0 curr_2$0 null$0)))
- (not (in sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
+ (not (member sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
:named sorted_set_2_14))
(assert (! (and
(witness$0 sk_?e_3$0
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
null$0)
- (in sk_?e_3$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
+ (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
(or
(and
(= sk_?e_3$0
(read$0 data$0
(witness$0 sk_?e_3$0
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (in
+ (member
(witness$0 sk_?e_3$0
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
(sorted_set_domain$0 data$0 next$0 curr_2$0 null$0)))
(not
- (in sk_?e_3$0
+ (member sk_?e_3$0
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
:named sorted_set_2_15))
(witness$0 (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
null$0)
- (in (read$0 data$0 curr_2$0)
+ (member (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
- (in
+ (member
(witness$0 (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0)))
(not
- (in (read$0 data$0 curr_2$0)
+ (member (read$0 data$0 curr_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
:named sorted_set_2_16))
(witness$0 (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
null$0)
- (in (read$0 data$0 prev_2$0)
+ (member (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
- (in
+ (member
(witness$0 (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0)))
(not
- (in (read$0 data$0 prev_2$0)
+ (member (read$0 data$0 prev_2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
:named sorted_set_2_17))
(witness$0 (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
null$0)
- (in (read$0 data$0 sk_l1$0)
+ (member (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0)))
(not
- (in (read$0 data$0 sk_l1$0)
+ (member (read$0 data$0 sk_l1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
:named sorted_set_2_18))
(witness$0 (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
null$0)
- (in (read$0 data$0 sk_l1_1$0)
+ (member (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0)))
(not
- (in (read$0 data$0 sk_l1_1$0)
+ (member (read$0 data$0 sk_l1_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
:named sorted_set_2_19))
(witness$0 (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
null$0)
- (in (read$0 data$0 sk_l2$0)
+ (member (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0)))
(not
- (in (read$0 data$0 sk_l2$0)
+ (member (read$0 data$0 sk_l2$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
:named sorted_set_2_20))
(witness$0 (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
null$0)
- (in (read$0 data$0 sk_l2_1$0)
+ (member (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
(or
(and
(read$0 data$0
(witness$0 (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
- (in
+ (member
(witness$0 (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0)))
(not
- (in (read$0 data$0 sk_l2_1$0)
+ (member (read$0 data$0 sk_l2_1$0)
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
:named sorted_set_2_21))
(witness$0 sk_?e$0
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
null$0)
- (in sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
+ (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
(or
(and
(= sk_?e$0
(read$0 data$0
(witness$0 sk_?e$0
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
- (in
+ (member
(witness$0 sk_?e$0
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0)))
- (not (in sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
+ (not (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
:named sorted_set_2_22))
(assert (! (and
(witness$0 sk_?e_3$0
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
null$0)
- (in sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
+ (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
(or
(and
(= sk_?e_3$0
(read$0 data$0
(witness$0 sk_?e_3$0
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
- (in
+ (member
(witness$0 sk_?e_3$0
(sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0)))
(not
- (in sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
+ (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
:named sorted_set_2_23))
(assert (! (= (read$1 next$0 null$0) null$0) :named read_null))
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 lst$0 l1 null$0)
- (in l1 (sorted_set_domain$0 data$0 next$0 lst$0 null$0))
+ (member l1 (sorted_set_domain$0 data$0 next$0 lst$0 null$0))
(not (= l1 null$0)))
(and (or (= l1 null$0) (not (Btwn$0 next$0 lst$0 l1 null$0)))
(not
- (in l1
+ (member l1
(sorted_set_domain$0 data$0 next$0 lst$0 null$0))))))
:named sorted_set_footprint))
-(assert (! (or (in sk_?e_3$0 c2_2$0)
- (and (in sk_?e_2$0 sk_FP_1$0) (not (in sk_?e_2$0 FP$0)))
- (and (in sk_?e_3$0 (union c1_2$0 c2_2$0))
- (not (in sk_?e_3$0 content$0)))
- (and (in sk_?e_3$0 c1_2$0)
+(assert (! (or (member sk_?e_3$0 c2_2$0)
+ (and (member sk_?e_2$0 sk_FP_1$0) (not (member sk_?e_2$0 FP$0)))
+ (and (member sk_?e_3$0 (union c1_2$0 c2_2$0))
+ (not (member sk_?e_3$0 content$0)))
+ (and (member sk_?e_3$0 c1_2$0)
(not
- (in sk_?e_3$0
+ (member sk_?e_3$0
(sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (and (in sk_?e_3$0 content$0)
- (not (in sk_?e_3$0 (union c1_2$0 c2_2$0))))
- (and (in sk_?e_3$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
- (not (in sk_?e_3$0 c1_2$0)))
+ (and (member sk_?e_3$0 content$0)
+ (not (member sk_?e_3$0 (union c1_2$0 c2_2$0))))
+ (and (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
+ (not (member sk_?e_3$0 c1_2$0)))
(and (not (= curr_2$0 null$0)) (not (= prev_2$0 null$0))
(not (< (read$0 data$0 prev_2$0) (read$0 data$0 curr_2$0))))
(not (= curr_2$0 lst$0)) (not (= prev_2$0 null$0))
(assert (! (or (sorted_set_struct$0 sk_?X_3$0 data$0 next$0 curr_2$0 null$0 c1_2$0)
(not (Btwn$0 next$0 curr_2$0 null$0 null$0))
- (! (and (Btwn$0 next$0 sk_l1$0 sk_l2$0 null$0) (in sk_l1$0 sk_?X_3$0)
- (in sk_l2$0 sk_?X_3$0) (not (= sk_l1$0 sk_l2$0))
+ (! (and (Btwn$0 next$0 sk_l1$0 sk_l2$0 null$0) (member sk_l1$0 sk_?X_3$0)
+ (member sk_l2$0 sk_?X_3$0) (not (= sk_l1$0 sk_l2$0))
(not (< (read$0 data$0 sk_l1$0) (read$0 data$0 sk_l2$0))))
:named strict_sortedness_1))
:named unnamed_1))
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 lst$0 l1 curr_2$0)
- (in l1
+ (member l1
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0))
(not (= l1 curr_2$0)))
(and
(or (= l1 curr_2$0)
(not (Btwn$0 next$0 lst$0 l1 curr_2$0)))
(not
- (in l1
+ (member l1
(sorted_set_domain$0 data$0 next$0 lst$0 curr_2$0))))))
:named sorted_set_footprint_1))
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 curr_2$0 l1 null$0)
- (in l1
+ (member l1
(sorted_set_domain$0 data$0 next$0 curr_2$0 null$0))
(not (= l1 null$0)))
(and
(or (= l1 null$0)
(not (Btwn$0 next$0 curr_2$0 l1 null$0)))
(not
- (in l1
+ (member l1
(sorted_set_domain$0 data$0 next$0 curr_2$0
null$0))))))
:named sorted_set_footprint_2))
-(assert (! (not (in null$0 Alloc$0)) :named initial_footprint_of_insert_27_11_1))
+(assert (! (not (member null$0 Alloc$0)) :named initial_footprint_of_insert_27_11_1))
(assert (! (or (= prev_2$0 curr_2$0)
- (in sk_?e_1$0 (intersection sk_?X_4$0 sk_?X_3$0))
- (and (in sk_?e_1$0 sk_FP$0) (not (in sk_?e_1$0 FP$0)))
- (and (in sk_?e$0 (union c1_2$0 c2_2$0)) (not (in sk_?e$0 content$0)))
- (and (in sk_?e$0 c1_2$0)
- (not (in sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
- (and (in sk_?e$0 c2_2$0)
- (not (in sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
- (and (in sk_?e$0 content$0) (not (in sk_?e$0 (union c1_2$0 c2_2$0))))
- (and (in sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
- (not (in sk_?e$0 c1_2$0)))
- (and (in sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
- (not (in sk_?e$0 c2_2$0)))
+ (member sk_?e_1$0 (intersection sk_?X_4$0 sk_?X_3$0))
+ (and (member sk_?e_1$0 sk_FP$0) (not (member sk_?e_1$0 FP$0)))
+ (and (member sk_?e$0 (union c1_2$0 c2_2$0)) (not (member sk_?e$0 content$0)))
+ (and (member sk_?e$0 c1_2$0)
+ (not (member sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
+ (and (member sk_?e$0 c2_2$0)
+ (not (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
+ (and (member sk_?e$0 content$0) (not (member sk_?e$0 (union c1_2$0 c2_2$0))))
+ (and (member sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
+ (not (member sk_?e$0 c1_2$0)))
+ (and (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
+ (not (member sk_?e$0 c2_2$0)))
(and (not (= curr_2$0 null$0)) (not (= prev_2$0 null$0))
(not (< (read$0 data$0 prev_2$0) (read$0 data$0 curr_2$0))))
(not (= (read$1 next$0 prev_2$0) curr_2$0))
(assert (! (or (sorted_set_struct$0 sk_?X_5$0 data$0 next$0 lst$0 curr_2$0 c2_2$0)
(not (Btwn$0 next$0 lst$0 curr_2$0 curr_2$0))
(! (and (Btwn$0 next$0 sk_l1_1$0 sk_l2_1$0 curr_2$0)
- (in sk_l1_1$0 sk_?X_5$0) (in sk_l2_1$0 sk_?X_5$0)
+ (member sk_l1_1$0 sk_?X_5$0) (member sk_l2_1$0 sk_?X_5$0)
(not (= sk_l1_1$0 sk_l2_1$0))
(not (< (read$0 data$0 sk_l1_1$0) (read$0 data$0 sk_l2_1$0))))
:named strict_sortedness_2))
:named btwn_step_10))
(assert (! (forall ((?f FldLoc))
- (or (in (ep$0 ?f sk_?X_30$0 null$0) sk_?X_30$0)
+ (or (member (ep$0 ?f sk_?X_30$0 null$0) sk_?X_30$0)
(= null$0 (ep$0 ?f sk_?X_30$0 null$0))))
:named entry-point3_10))
(assert (! (forall ((?f FldLoc))
- (or (in (ep$0 ?f sk_?X_30$0 lst_1$0) sk_?X_30$0)
+ (or (member (ep$0 ?f sk_?X_30$0 lst_1$0) sk_?X_30$0)
(= lst_1$0 (ep$0 ?f sk_?X_30$0 lst_1$0))))
:named entry-point3_11))
(assert (! (forall ((?f FldLoc))
- (or (in (ep$0 ?f sk_?X_30$0 curr_3$0) sk_?X_30$0)
+ (or (member (ep$0 ?f sk_?X_30$0 curr_3$0) sk_?X_30$0)
(= curr_3$0 (ep$0 ?f sk_?X_30$0 curr_3$0))))
:named entry-point3_12))
(assert (! (forall ((?f FldLoc))
- (or (in (ep$0 ?f sk_?X_30$0 tmp_2$0) sk_?X_30$0)
+ (or (member (ep$0 ?f sk_?X_30$0 tmp_2$0) sk_?X_30$0)
(= tmp_2$0 (ep$0 ?f sk_?X_30$0 tmp_2$0))))
:named entry-point3_13))
(assert (! (forall ((?f FldLoc) (?y Loc))
(or (Btwn$0 ?f null$0 (ep$0 ?f sk_?X_30$0 null$0) ?y)
- (not (Btwn$0 ?f null$0 ?y ?y)) (not (in ?y sk_?X_30$0))))
+ (not (Btwn$0 ?f null$0 ?y ?y)) (not (member ?y sk_?X_30$0))))
:named entry-point4_10))
(assert (! (forall ((?f FldLoc) (?y Loc))
(or (Btwn$0 ?f lst_1$0 (ep$0 ?f sk_?X_30$0 lst_1$0) ?y)
- (not (Btwn$0 ?f lst_1$0 ?y ?y)) (not (in ?y sk_?X_30$0))))
+ (not (Btwn$0 ?f lst_1$0 ?y ?y)) (not (member ?y sk_?X_30$0))))
:named entry-point4_11))
(assert (! (forall ((?f FldLoc) (?y Loc))
(or (Btwn$0 ?f curr_3$0 (ep$0 ?f sk_?X_30$0 curr_3$0) ?y)
- (not (Btwn$0 ?f curr_3$0 ?y ?y)) (not (in ?y sk_?X_30$0))))
+ (not (Btwn$0 ?f curr_3$0 ?y ?y)) (not (member ?y sk_?X_30$0))))
:named entry-point4_12))
(assert (! (forall ((?f FldLoc) (?y Loc))
(or (Btwn$0 ?f tmp_2$0 (ep$0 ?f sk_?X_30$0 tmp_2$0) ?y)
- (not (Btwn$0 ?f tmp_2$0 ?y ?y)) (not (in ?y sk_?X_30$0))))
+ (not (Btwn$0 ?f tmp_2$0 ?y ?y)) (not (member ?y sk_?X_30$0))))
:named entry-point4_13))
(assert (! (forall ((?f FldLoc) (?y Loc))
- (or (not (Btwn$0 ?f null$0 ?y ?y)) (not (in ?y sk_?X_30$0))
- (in (ep$0 ?f sk_?X_30$0 null$0) sk_?X_30$0)))
+ (or (not (Btwn$0 ?f null$0 ?y ?y)) (not (member ?y sk_?X_30$0))
+ (member (ep$0 ?f sk_?X_30$0 null$0) sk_?X_30$0)))
:named entry-point2_10))
(assert (! (forall ((?f FldLoc) (?y Loc))
- (or (not (Btwn$0 ?f lst_1$0 ?y ?y)) (not (in ?y sk_?X_30$0))
- (in (ep$0 ?f sk_?X_30$0 lst_1$0) sk_?X_30$0)))
+ (or (not (Btwn$0 ?f lst_1$0 ?y ?y)) (not (member ?y sk_?X_30$0))
+ (member (ep$0 ?f sk_?X_30$0 lst_1$0) sk_?X_30$0)))
:named entry-point2_11))
(assert (! (forall ((?f FldLoc) (?y Loc))
- (or (not (Btwn$0 ?f curr_3$0 ?y ?y)) (not (in ?y sk_?X_30$0))
- (in (ep$0 ?f sk_?X_30$0 curr_3$0) sk_?X_30$0)))
+ (or (not (Btwn$0 ?f curr_3$0 ?y ?y)) (not (member ?y sk_?X_30$0))
+ (member (ep$0 ?f sk_?X_30$0 curr_3$0) sk_?X_30$0)))
:named entry-point2_12))
(assert (! (forall ((?f FldLoc) (?y Loc))
- (or (not (Btwn$0 ?f tmp_2$0 ?y ?y)) (not (in ?y sk_?X_30$0))
- (in (ep$0 ?f sk_?X_30$0 tmp_2$0) sk_?X_30$0)))
+ (or (not (Btwn$0 ?f tmp_2$0 ?y ?y)) (not (member ?y sk_?X_30$0))
+ (member (ep$0 ?f sk_?X_30$0 tmp_2$0) sk_?X_30$0)))
:named entry-point2_13))
(assert (! (= (read$0 (write$0 next$0 curr_3$0 (read$0 next$0 tmp_2$0)) curr_3$0)
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 lst$0 l1 curr_2$0)
- (in l1 (lseg_domain$0 next$0 lst$0 curr_2$0))
+ (member l1 (lseg_domain$0 next$0 lst$0 curr_2$0))
(not (= l1 curr_2$0)))
(and
(or (= l1 curr_2$0)
(not (Btwn$0 next$0 lst$0 l1 curr_2$0)))
- (not (in l1 (lseg_domain$0 next$0 lst$0 curr_2$0))))))
+ (not (member l1 (lseg_domain$0 next$0 lst$0 curr_2$0))))))
:named lseg_footprint_20))
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 curr_3$0 l1 null$0)
- (in l1 (lseg_domain$0 next$0 curr_3$0 null$0))
+ (member l1 (lseg_domain$0 next$0 curr_3$0 null$0))
(not (= l1 null$0)))
(and
(or (= l1 null$0)
(not (Btwn$0 next$0 curr_3$0 l1 null$0)))
- (not (in l1 (lseg_domain$0 next$0 curr_3$0 null$0))))))
+ (not (member l1 (lseg_domain$0 next$0 curr_3$0 null$0))))))
:named lseg_footprint_21))
-(assert (! (not (in tmp_2$0 FP_2$0)) :named check_free_31_6))
+(assert (! (not (member tmp_2$0 FP_2$0)) :named check_free_31_6))
-(assert (! (not (in null$0 Alloc$0)) :named framecondition_of_remove_loop_18_4_15))
+(assert (! (not (member null$0 Alloc$0)) :named framecondition_of_remove_loop_18_4_15))
(assert (! (not (= lst$0 null$0)) :named if_else_13_6_4))
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 lst_1$0 l1 curr_3$0)
- (in l1 (lseg_domain$0 next$0 lst_1$0 curr_3$0))
+ (member l1 (lseg_domain$0 next$0 lst_1$0 curr_3$0))
(not (= l1 curr_3$0)))
(and
(or (= l1 curr_3$0)
(not (Btwn$0 next$0 lst_1$0 l1 curr_3$0)))
- (not (in l1 (lseg_domain$0 next$0 lst_1$0 curr_3$0))))))
+ (not (member l1 (lseg_domain$0 next$0 lst_1$0 curr_3$0))))))
:named lseg_footprint_22))
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 lst$0 l1 null$0)
- (in l1 (lseg_domain$0 next$0 lst$0 null$0))
+ (member l1 (lseg_domain$0 next$0 lst$0 null$0))
(not (= l1 null$0)))
(and (or (= l1 null$0) (not (Btwn$0 next$0 lst$0 l1 null$0)))
- (not (in l1 (lseg_domain$0 next$0 lst$0 null$0))))))
+ (not (member l1 (lseg_domain$0 next$0 lst$0 null$0))))))
:named lseg_footprint_23))
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 curr_2$0 l1 null$0)
- (in l1 (lseg_domain$0 next$0 curr_2$0 null$0))
+ (member l1 (lseg_domain$0 next$0 curr_2$0 null$0))
(not (= l1 null$0)))
(and
(or (= l1 null$0)
(not (Btwn$0 next$0 curr_2$0 l1 null$0)))
- (not (in l1 (lseg_domain$0 next$0 curr_2$0 null$0))))))
+ (not (member l1 (lseg_domain$0 next$0 curr_2$0 null$0))))))
:named lseg_footprint_24))
-(assert (! (not (in null$0 Alloc$0)) :named initial_footprint_of_remove_10_11_11))
+(assert (! (not (member null$0 Alloc$0)) :named initial_footprint_of_remove_10_11_11))
(assert (! (not (= tmp_2$0 null$0)) :named if_else_28_8_2))
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
; What was going on?
;
; The solver was unable to reason that (emptyset) cannot equal
-; (setenum 0). There were no membership predicates anywhere, just
+; (singleton 0). There were no membership predicates anywhere, just
; equalities.
;
; Fix
;
-; Add the propagation rule: (true) => (in x (setenum x))
+; Add the propagation rule: (true) => (member x (singleton x))
(declare-fun z3f70 (Int) (Set Int))
(declare-fun z3v85 () Int)
(declare-fun z3v87 () Int)
(declare-fun z3v90 () Int)
-(assert (= (z3f70 z3v90) (union (z3f70 z3v85) (union (as emptyset (Set Int)) (setenum z3v86)))))
+(assert (= (z3f70 z3v90) (union (z3f70 z3v85) (union (as emptyset (Set Int)) (singleton z3v86)))))
(assert (= (z3f70 z3v90) (z3f70 z3v87)))
(assert (= (as emptyset (Set Int)) (z3f70 z3v87)))
(check-sat)
(declare-fun T () (Set Int))
(declare-fun x () Int)
-(assert (or (not (= S smt_set_emp)) (in x T)))
+(assert (or (not (= S smt_set_emp)) (member x T)))
(assert (= smt_set_emp
- (ite (in x T)
- (union (union smt_set_emp (setenum x)) S)
+ (ite (member x T)
+ (union (union smt_set_emp (singleton x)) S)
S)))
(check-sat)
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
; EXPECT: sat
; Observed behavior:
-; --check-model failed for set-term (union (z3f69 z3v151) (setenum z3v143))
+; --check-model failed for set-term (union (z3f69 z3v151) (singleton z3v143))
; with different set of elements in the model for representative and the node
; itself.
;
(define-sort Elt () Int)
(define-sort mySet () (Set Elt ))
(define-fun smt_set_emp () mySet (as emptyset mySet))
-(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (in x s))
-(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (setenum x)))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (union s (singleton x)))
(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (union s1 s2))
(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (intersection s1 s2))
;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
(z3f69 z3v140))))
(assert (= (z3f69 z3v152)
- (smt_set_cup (setenum z3v143) (z3f69 z3v151))))
+ (smt_set_cup (singleton z3v143) (z3f69 z3v151))))
(assert (= (z3f70 z3v152)
- (smt_set_cup (setenum z3v143) (z3f70 z3v151))))
+ (smt_set_cup (singleton z3v143) (z3f70 z3v151))))
(assert (and
(= (z3f69 z3v142)
- (smt_set_cup (setenum z3v143) (z3f69 z3v141)))
+ (smt_set_cup (singleton z3v143) (z3f69 z3v141)))
(= (z3f70 z3v142)
- (smt_set_cup (setenum z3v143) (z3f70 z3v141)))
+ (smt_set_cup (singleton z3v143) (z3f70 z3v141)))
(= z3v142 (z3f92 z3v143 z3v141))
(= z3v142 z3v144)
(= (z3f62 z3v61) z3v61)
(declare-fun b () Int)
(declare-fun x () (Set Int))
(declare-fun y () (Set Int))
-(assert (= x (setenum a)))
-(assert (= y (setenum b)))
+(assert (= x (singleton a)))
+(assert (= y (singleton b)))
(assert (not (= x y)))
(assert (and (< 1 a) (< a 3) (< 1 b) (< b 3)))
(check-sat)
(declare-fun z () Int)
(declare-fun a () (Set Int))
(declare-fun b () (Set Int))
-(assert (in x (union a b)))
-(assert (not (in y a)))
-(assert (not (in z b)))
+(assert (member x (union a b)))
+(assert (not (member y a)))
+(assert (not (member z b)))
(assert (= z y))
(assert (= x y))
(check-sat)
(declare-fun y () Int)
(declare-fun a () (Set Int))
(declare-fun b () (Set Int))
-(assert (in x (union a b)))
-(assert (not (in y a)))
+(assert (member x (union a b)))
+(assert (not (member y a)))
(assert (= x y))
(check-sat)
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 curr$0 l1 null$0)
- (in l1 (lseg_domain$0 next$0 curr$0 null$0))
+ (member l1 (lseg_domain$0 next$0 curr$0 null$0))
(not (= l1 null$0)))
(and (or (= l1 null$0) (not (Btwn$0 next$0 curr$0 l1 null$0)))
- (not (in l1 (lseg_domain$0 next$0 curr$0 null$0))))))
+ (not (member l1 (lseg_domain$0 next$0 curr$0 null$0))))))
:named lseg_footprint_14))
-(assert (! (not (in tmp_1$0 Alloc$0)) :named new_42_10))
+(assert (! (not (member tmp_1$0 Alloc$0)) :named new_42_10))
-(assert (! (not (in null$0 Alloc$0))
+(assert (! (not (member null$0 Alloc$0))
:named initial_footprint_of_rec_copy_loop_34_11_4))
(assert (! (not (= curr$0 null$0)) :named if_else_37_6))
(assert (! (= FP_Caller_2$0 (setminus FP_Caller$0 FP$0)) :named assign_37_2_2))
-(assert (! (= Alloc_2$0 (union Alloc$0 (setenum tmp_1$0))) :named assign_42_10))
+(assert (! (= Alloc_2$0 (union Alloc$0 (singleton tmp_1$0))) :named assign_42_10))
(assert (! (or (Btwn$0 next$0 cp$0 null$0 null$0)
(not (lseg_struct$0 sk_?X_38$0 next$0 cp$0 null$0)))
(assert (! (forall ((l1 Loc))
(or
(and (Btwn$0 next$0 cp$0 l1 null$0)
- (in l1 (lseg_domain$0 next$0 cp$0 null$0))
+ (member l1 (lseg_domain$0 next$0 cp$0 null$0))
(not (= l1 null$0)))
(and (or (= l1 null$0) (not (Btwn$0 next$0 cp$0 l1 null$0)))
- (not (in l1 (lseg_domain$0 next$0 cp$0 null$0))))))
+ (not (member l1 (lseg_domain$0 next$0 cp$0 null$0))))))
:named lseg_footprint_15))
-(assert (! (not (in cp_1$0 FP_3$0)) :named check_heap_access_43_4))
+(assert (! (not (member cp_1$0 FP_3$0)) :named check_heap_access_43_4))
(assert (! (not (= tmp_1$0 null$0)) :named new_42_10_1))
(assert (! (= cp_1$0 tmp_1$0) :named assign_42_4))
-(assert (! (= FP_3$0 (union FP$0 (setenum tmp_1$0))) :named assign_42_10_1))
+(assert (! (= FP_3$0 (union FP$0 (singleton tmp_1$0))) :named assign_42_10_1))
(assert (! (or (Btwn$0 next$0 curr$0 null$0 null$0)
(not (lseg_struct$0 sk_?X_37$0 next$0 curr$0 null$0)))
(declare-fun T () (Set Int))
(declare-fun x () Int)
(declare-fun y () Int)
-(assert (in y S))
-(assert (not (in x (union S T))))
+(assert (member y S))
+(assert (not (member x (union S T))))
(assert (= x y))
(check-sat)
(assert (not (= S (as emptyset myset))))
; 1 element is S
-(assert (not (= S (setenum (as emptyset (Set (_ BitVec 1)))))))
-(assert (not (= S (setenum (setenum (_ bv0 1)) ))))
-(assert (not (= S (setenum (setenum (_ bv1 1)) ))))
-(assert (not (= S (setenum (union (setenum (_ bv0 1))
- (setenum (_ bv1 1)))))))
+(assert (not (= S (singleton (as emptyset (Set (_ BitVec 1)))))))
+(assert (not (= S (singleton (singleton (_ bv0 1)) ))))
+(assert (not (= S (singleton (singleton (_ bv1 1)) ))))
+(assert (not (= S (singleton (union (singleton (_ bv0 1))
+ (singleton (_ bv1 1)))))))
; 2 elements in S
-(assert (not (= S (union (setenum (as emptyset (Set (_ BitVec 1))))
- (setenum (setenum (_ bv0 1)))) )))
-(assert (not (= S (union (setenum (as emptyset (Set (_ BitVec 1))))
- (setenum (setenum (_ bv1 1)))))))
-(assert (not (= S (union (setenum (as emptyset (Set (_ BitVec 1))))
- (setenum (union (setenum (_ bv0 1))
- (setenum (_ bv1 1))))))))
-(assert (not (= S (union (setenum (union (setenum (_ bv0 1))
- (setenum (_ bv1 1))))
- (setenum (setenum (_ bv0 1)))) )))
-(assert (not (= S (union (setenum (setenum (_ bv0 1)))
- (setenum (setenum (_ bv1 1)))) )))
-(assert (not (= S (union (setenum (union (setenum (_ bv0 1))
- (setenum (_ bv1 1))))
- (setenum (setenum (_ bv1 1)))))))
+(assert (not (= S (union (singleton (as emptyset (Set (_ BitVec 1))))
+ (singleton (singleton (_ bv0 1)))) )))
+(assert (not (= S (union (singleton (as emptyset (Set (_ BitVec 1))))
+ (singleton (singleton (_ bv1 1)))))))
+(assert (not (= S (union (singleton (as emptyset (Set (_ BitVec 1))))
+ (singleton (union (singleton (_ bv0 1))
+ (singleton (_ bv1 1))))))))
+(assert (not (= S (union (singleton (union (singleton (_ bv0 1))
+ (singleton (_ bv1 1))))
+ (singleton (singleton (_ bv0 1)))) )))
+(assert (not (= S (union (singleton (singleton (_ bv0 1)))
+ (singleton (singleton (_ bv1 1)))) )))
+(assert (not (= S (union (singleton (union (singleton (_ bv0 1))
+ (singleton (_ bv1 1))))
+ (singleton (singleton (_ bv1 1)))))))
; 3 elements in S
-(assert (not (= S (union (setenum (setenum (_ bv1 1)))
- (union (setenum (as emptyset (Set (_ BitVec 1))))
- (setenum (setenum (_ bv0 1))))) )))
-(assert (not (= S (union (setenum (union (setenum (_ bv0 1))
- (setenum (_ bv1 1))))
- (union (setenum (as emptyset (Set (_ BitVec 1))))
- (setenum (setenum (_ bv1 1))))) )))
-(assert (not (= S (union (setenum (union (setenum (_ bv0 1))
- (setenum (_ bv1 1))))
- (union (setenum (setenum (_ bv0 1)))
- (setenum (setenum (_ bv1 1))))) )))
-(assert (not (= S (union (setenum (union (setenum (_ bv0 1))
- (setenum (_ bv1 1))))
- (union (setenum (as emptyset (Set (_ BitVec 1))))
- (setenum (setenum (_ bv0 1))))) )))
+(assert (not (= S (union (singleton (singleton (_ bv1 1)))
+ (union (singleton (as emptyset (Set (_ BitVec 1))))
+ (singleton (singleton (_ bv0 1))))) )))
+(assert (not (= S (union (singleton (union (singleton (_ bv0 1))
+ (singleton (_ bv1 1))))
+ (union (singleton (as emptyset (Set (_ BitVec 1))))
+ (singleton (singleton (_ bv1 1))))) )))
+(assert (not (= S (union (singleton (union (singleton (_ bv0 1))
+ (singleton (_ bv1 1))))
+ (union (singleton (singleton (_ bv0 1)))
+ (singleton (singleton (_ bv1 1))))) )))
+(assert (not (= S (union (singleton (union (singleton (_ bv0 1))
+ (singleton (_ bv1 1))))
+ (union (singleton (as emptyset (Set (_ BitVec 1))))
+ (singleton (singleton (_ bv0 1))))) )))
; 4 elements in S
-(assert (not (= S (union (setenum (union (setenum (_ bv0 1))
- (setenum (_ bv1 1))))
- (union (setenum (setenum (_ bv1 1)))
- (union (setenum (as emptyset (Set (_ BitVec 1))))
- (setenum (setenum (_ bv0 1)))))) )))
+(assert (not (= S (union (singleton (union (singleton (_ bv0 1))
+ (singleton (_ bv1 1))))
+ (union (singleton (singleton (_ bv1 1)))
+ (union (singleton (as emptyset (Set (_ BitVec 1))))
+ (singleton (singleton (_ bv0 1)))))) )))
(check-sat)
(assert (= x y))
(declare-fun a () (Set Int))
(declare-fun b () (Set Int))
-(assert (not (in x a)))
-(assert (in y (union a b)))
+(assert (not (member x a)))
+(assert (member y (union a b)))
(assert (= x z))
-(assert (not (in z a)))
+(assert (not (member z a)))
(assert (= a b))
(check-sat)
(declare-fun a () (Set Int))
(declare-fun b () (Set Int))
(declare-fun x () Int)
-;(assert (not (in x a)))
-(assert (in x (intersection a b)))
-(assert (not (in x b)))
+;(assert (not (member x a)))
+(assert (member x (intersection a b)))
+(assert (not (member x b)))
(check-sat)
(exit)
(declare-fun A () SetInt)
(declare-fun B () SetInt)
(declare-fun x () Int)
-(assert (in x (union A B)))
+(assert (member x (union A B)))
-(assert (not (in x (intersection A B))))
-(assert (not (in x (setminus A B))))
-;(assert (not (in x (setminus B A))))
-;(assert (in x B))
+(assert (not (member x (intersection A B))))
+(assert (not (member x (setminus A B))))
+;(assert (not (member x (setminus B A))))
+;(assert (member x B))
(check-sat)
(declare-fun b () (Set Int))
(declare-fun c () (Set Int))
(declare-fun e () Int)
-(assert (= a (setenum 5)))
+(assert (= a (singleton 5)))
(assert (= c (union a b) ))
(assert (not (= c (intersection a b) )))
(assert (= c (setminus a b) ))
(assert (subseteq a b))
-(assert (in e c))
-(assert (in e a))
-(assert (in e (intersection a b)))
+(assert (member e c))
+(assert (member e a))
+(assert (member e (intersection a b)))
(check-sat)
(pop 1)
(declare-fun e2 () Int)
(assert (= x y))
(assert (= e1 e2))
-(assert (in e1 x))
-(assert (not (in e2 y)))
+(assert (member e1 x))
+(assert (not (member e2 y)))
(check-sat)
(pop 1)
(declare-fun e2 () Int)
(assert (= x y))
(assert (= e1 e2))
-(assert (in e1 (union x z)))
-(assert (not (in e2 (union y z))))
+(assert (member e1 (union x z)))
+(assert (not (member e2 (union y z))))
(check-sat)
(pop 1)
(declare-fun S () (Set Int))
(declare-fun x () Int)
-(assert (in (+ 5 x) S))
-(assert (not (in 9 S)))
+(assert (member (+ 5 x) S))
+(assert (not (member 9 S)))
(assert (= x 4))
(check-sat)
(declare-fun a () (Set Int))
(declare-fun b () (Set Int))
(declare-fun x () Int)
-(assert (not (in x a)))
-(assert (in x (union a b)))
+(assert (not (member x a)))
+(assert (member x (union a b)))
(check-sat)
;(get-model)
-(assert (not (in x b)))
+(assert (not (member x b)))
(check-sat)
(exit)
(let ((e12 (* (- e4) e7)))
(let ((e13 (- e10)))
(let ((e14 (f0 e5 e7 e6)))
-(let ((e15 (in v0 v1)))
-(let ((e16 (in e12 v2)))
-(let ((e17 (in e14 v1)))
+(let ((e15 (member v0 v1)))
+(let ((e16 (member e12 v2)))
+(let ((e17 (member e14 v1)))
(let ((e18 (f1 v3)))
(let ((e19 (f1 v2)))
(let ((e20 (f1 v1)))
(declare-fun A () (Set Int))
(declare-fun B () (Set Int))
(declare-fun x () Int)
-(assert (in x A))
+(assert (member x A))
(push 1)
-(assert (not (in x (union A B))))
+(assert (not (member x (union A B))))
(check-sat)
(pop 1)
(check-sat)
(declare-fun A () (Set Int))
(declare-fun B () (Set Int))
(declare-fun x () Int)
-(assert (not (in x (union A B))))
+(assert (not (member x (union A B))))
(push 1)
-(assert (in x A))
+(assert (member x A))
(check-sat)
(pop 1)
(check-sat)
(declare-fun A () (Set Int))
(declare-fun B () (Set Int))
(declare-fun x () Int)
-(assert (in x B))
+(assert (member x B))
(push 1)
-(assert (not (in x (union A B))))
+(assert (not (member x (union A B))))
(check-sat)
(pop 1)
(check-sat)
(declare-fun A () (Set Int))
(declare-fun B () (Set Int))
(declare-fun x () Int)
-(assert (not (in x (union A B))))
+(assert (not (member x (union A B))))
(push 1)
-(assert (in x B))
+(assert (member x B))
(check-sat)
(pop 1)
(check-sat)
(declare-fun B () (Set Int))
(declare-fun x () Int)
(declare-fun y () Int)
-(assert (in x (union A B)))
-(assert (not (in y A)))
-(assert (not (in y B)))
+(assert (member x (union A B)))
+(assert (not (member y A)))
+(assert (not (member y B)))
(check-sat)