sets: Rename kinds with a more consistent naming scheme. (#7595)
authorAina Niemetz <aina.niemetz@gmail.com>
Mon, 8 Nov 2021 20:49:14 +0000 (12:49 -0800)
committerGitHub <noreply@github.com>
Mon, 8 Nov 2021 20:49:14 +0000 (12:49 -0800)
This prefixes sets kinds with SET_ and relation kinds with
RELATION_. It also prefixes the corresponding SMT-LIB operators with
'set.' and relation operators with 'rel.'.

329 files changed:
examples/api/cpp/sets.cpp
examples/api/python/sets.py
examples/sets-translate/sets-translate-example-input.smt2
examples/sets-translate/sets_translate.cpp
src/api/cpp/cvc5.cpp
src/api/cpp/cvc5.h
src/api/cpp/cvc5_kind.h
src/api/parsekinds.py
src/expr/node.h
src/expr/node_manager.cpp
src/parser/parser.cpp
src/parser/parser.h
src/parser/smt2/Smt2.g
src/parser/smt2/smt2.cpp
src/printer/smt2/smt2_printer.cpp
src/proof/alethe/alethe_post_processor.cpp
src/proof/lfsc/lfsc_node_converter.cpp
src/theory/bags/bags_rewriter.cpp
src/theory/bags/normal_form.cpp
src/theory/bags/theory_bags_type_rules.cpp
src/theory/quantifiers/ematching/trigger_term_info.cpp
src/theory/quantifiers/fmf/bounded_integers.cpp
src/theory/quantifiers/sygus/sygus_grammar_cons.cpp
src/theory/quantifiers/term_database.cpp
src/theory/quantifiers/term_util.cpp
src/theory/sep/theory_sep.cpp
src/theory/sets/cardinality_extension.cpp
src/theory/sets/cardinality_extension.h
src/theory/sets/inference_manager.cpp
src/theory/sets/kinds
src/theory/sets/normal_form.h
src/theory/sets/singleton_op.cpp
src/theory/sets/singleton_op.h
src/theory/sets/solver_state.cpp
src/theory/sets/solver_state.h
src/theory/sets/term_registry.cpp
src/theory/sets/theory_sets.cpp
src/theory/sets/theory_sets_private.cpp
src/theory/sets/theory_sets_private.h
src/theory/sets/theory_sets_rels.cpp
src/theory/sets/theory_sets_rels.h
src/theory/sets/theory_sets_rewriter.cpp
src/theory/sets/theory_sets_type_rules.cpp
src/theory/theory_model.h
test/python/unit/api/test_term.py
test/regress/regress0/bug586.cvc.smt2
test/regress/regress0/bug605.cvc.smt2
test/regress/regress0/cores/issue4971-1.smt2
test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2
test/regress/regress0/datatypes/dt-2.6.smt2
test/regress/regress0/datatypes/dt-match-pat-param-2.6.smt2
test/regress/regress0/datatypes/dt-param-2.6.smt2
test/regress/regress0/datatypes/dt-sel-2.6.smt2
test/regress/regress0/datatypes/issue5280-no-nrec.smt2
test/regress/regress0/fmf/bounded_sets.smt2
test/regress/regress0/fmf/fmf-strange-bounds-2.smt2
test/regress/regress0/fmf/quant_real_univ.cvc.smt2
test/regress/regress0/ho/fta0144-alpha-eq.smt2
test/regress/regress0/parser/declarefun-emptyset-uf.smt2
test/regress/regress0/rels/addr_book_0.cvc.smt2
test/regress/regress0/rels/atom_univ2.cvc.smt2
test/regress/regress0/rels/card_transpose.cvc.smt2
test/regress/regress0/rels/iden_0.cvc.smt2
test/regress/regress0/rels/iden_1.cvc.smt2
test/regress/regress0/rels/join-eq-u-sat.cvc.smt2
test/regress/regress0/rels/join-eq-u.cvc.smt2
test/regress/regress0/rels/joinImg_0.cvc.smt2
test/regress/regress0/rels/oneLoc_no_quant-int_0_1.cvc.smt2
test/regress/regress0/rels/qgu-fuzz-relations-1-dd.smt2
test/regress/regress0/rels/qgu-fuzz-relations-1.smt2
test/regress/regress0/rels/rel_1tup_0.cvc.smt2
test/regress/regress0/rels/rel_complex_0.cvc.smt2
test/regress/regress0/rels/rel_complex_1.cvc.smt2
test/regress/regress0/rels/rel_conflict_0.cvc.smt2
test/regress/regress0/rels/rel_join_0.cvc.smt2
test/regress/regress0/rels/rel_join_0_1.cvc.smt2
test/regress/regress0/rels/rel_join_1.cvc.smt2
test/regress/regress0/rels/rel_join_1_1.cvc.smt2
test/regress/regress0/rels/rel_join_2.cvc.smt2
test/regress/regress0/rels/rel_join_2_1.cvc.smt2
test/regress/regress0/rels/rel_join_3.cvc.smt2
test/regress/regress0/rels/rel_join_3_1.cvc.smt2
test/regress/regress0/rels/rel_join_4.cvc.smt2
test/regress/regress0/rels/rel_join_5.cvc.smt2
test/regress/regress0/rels/rel_join_6.cvc.smt2
test/regress/regress0/rels/rel_join_7.cvc.smt2
test/regress/regress0/rels/rel_product_0.cvc.smt2
test/regress/regress0/rels/rel_product_0_1.cvc.smt2
test/regress/regress0/rels/rel_product_1.cvc.smt2
test/regress/regress0/rels/rel_product_1_1.cvc.smt2
test/regress/regress0/rels/rel_symbolic_1.cvc.smt2
test/regress/regress0/rels/rel_symbolic_1_1.cvc.smt2
test/regress/regress0/rels/rel_symbolic_2_1.cvc.smt2
test/regress/regress0/rels/rel_symbolic_3_1.cvc.smt2
test/regress/regress0/rels/rel_tc_11.cvc.smt2
test/regress/regress0/rels/rel_tc_2_1.cvc.smt2
test/regress/regress0/rels/rel_tc_3.cvc.smt2
test/regress/regress0/rels/rel_tc_3_1.cvc.smt2
test/regress/regress0/rels/rel_tc_7.cvc.smt2
test/regress/regress0/rels/rel_tc_8.cvc.smt2
test/regress/regress0/rels/rel_tp_3_1.cvc.smt2
test/regress/regress0/rels/rel_tp_join_0.cvc.smt2
test/regress/regress0/rels/rel_tp_join_1.cvc.smt2
test/regress/regress0/rels/rel_tp_join_2.cvc.smt2
test/regress/regress0/rels/rel_tp_join_3.cvc.smt2
test/regress/regress0/rels/rel_tp_join_eq_0.cvc.smt2
test/regress/regress0/rels/rel_tp_join_int_0.cvc.smt2
test/regress/regress0/rels/rel_tp_join_pro_0.cvc.smt2
test/regress/regress0/rels/rel_tp_join_var_0.cvc.smt2
test/regress/regress0/rels/rel_transpose_0.cvc.smt2
test/regress/regress0/rels/rel_transpose_1.cvc.smt2
test/regress/regress0/rels/rel_transpose_1_1.cvc.smt2
test/regress/regress0/rels/rel_transpose_3.cvc.smt2
test/regress/regress0/rels/rel_transpose_4.cvc.smt2
test/regress/regress0/rels/rel_transpose_5.cvc.smt2
test/regress/regress0/rels/rel_transpose_6.cvc.smt2
test/regress/regress0/rels/rel_transpose_7.cvc.smt2
test/regress/regress0/rels/relations-ops.smt2
test/regress/regress0/rels/rels-sharing-simp.cvc.smt2
test/regress/regress0/sets/abt-min.smt2
test/regress/regress0/sets/abt-te-exh.smt2
test/regress/regress0/sets/abt-te-exh2.smt2
test/regress/regress0/sets/card-2.smt2
test/regress/regress0/sets/card-3sets.cvc.smt2
test/regress/regress0/sets/card.smt2
test/regress/regress0/sets/card3-ground.smt2
test/regress/regress0/sets/comp-qf-error.smt2
test/regress/regress0/sets/complement.cvc.smt2
test/regress/regress0/sets/complement2.cvc.smt2
test/regress/regress0/sets/complement3.cvc.smt2
test/regress/regress0/sets/cvc-sample.cvc.smt2
test/regress/regress0/sets/dt-simp-mem.smt2
test/regress/regress0/sets/emptyset.smt2
test/regress/regress0/sets/eqtest.smt2
test/regress/regress0/sets/error1.smt2
test/regress/regress0/sets/error2.smt2
test/regress/regress0/sets/insert.smt2
test/regress/regress0/sets/int-real-univ-unsat.smt2
test/regress/regress0/sets/int-real-univ.smt2
test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.cvc4.47.smt2
test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.small.smt2
test/regress/regress0/sets/jan27/ListConcat.hs.fqout.177minimized.smt2
test/regress/regress0/sets/jan27/ListConcat.hs.fqout.cvc4.177.smt2
test/regress/regress0/sets/jan28/TalkingAboutSets.hs.fqout.3577minimized.smt2
test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized10.smt2
test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized1832.smt2
test/regress/regress0/sets/mar2014/sharing-preregister.smt2
test/regress/regress0/sets/mar2014/small.smt2
test/regress/regress0/sets/mar2014/smaller.smt2
test/regress/regress0/sets/nonvar-univ.smt2
test/regress/regress0/sets/pre-proc-univ.smt2
test/regress/regress0/sets/rec_copy_loop_check_heap_access_43_4.smt2
test/regress/regress0/sets/setel-eq.smt2
test/regress/regress0/sets/sets-deq-dd.smt2
test/regress/regress0/sets/sets-equal.smt2
test/regress/regress0/sets/sets-extr.smt2
test/regress/regress0/sets/sets-inter.smt2
test/regress/regress0/sets/sets-new.smt2
test/regress/regress0/sets/sets-of-sets-subtypes.smt2
test/regress/regress0/sets/sets-poly-int-real.smt2
test/regress/regress0/sets/sets-poly-nonint.smt2
test/regress/regress0/sets/sets-sample.smt2
test/regress/regress0/sets/sets-sharing.smt2
test/regress/regress0/sets/sets-union.smt2
test/regress/regress0/sets/sharing-simp.smt2
test/regress/regress0/sets/union-1a-flip.smt2
test/regress/regress0/sets/union-1a.smt2
test/regress/regress0/sets/union-1b-flip.smt2
test/regress/regress0/sets/union-1b.smt2
test/regress/regress0/sets/union-2.smt2
test/regress/regress0/sets/univset-simp.smt2
test/regress/regress0/tptp/Axioms/BOO004-0.ax
test/regress/regress0/tptp/Axioms/SYN000+0.ax
test/regress/regress0/tptp/Axioms/SYN000-0.ax
test/regress/regress0/tptp/BOO003-4.p
test/regress/regress0/tptp/BOO027-1.p
test/regress/regress0/tptp/KRS018+1.p
test/regress/regress0/tptp/KRS063+1.p
test/regress/regress0/tptp/MGT019+2.p
test/regress/regress0/tptp/MGT031-1.p
test/regress/regress0/tptp/MGT041-2.p
test/regress/regress0/tptp/NLP114-1.p
test/regress/regress0/tptp/SYN000-1.p
test/regress/regress0/tptp/SYN075+1.p
test/regress/regress0/tptp/SYN075-1.p
test/regress/regress1/bug567.smt2
test/regress/regress1/datatypes/non-simple-rec-set.smt2
test/regress/regress1/fmf/agree467.smt2
test/regress/regress1/fmf/cons-sets-bounds.smt2
test/regress/regress1/fmf/fmf-strange-bounds.smt2
test/regress/regress1/fmf/ko-bound-set.cvc.smt2
test/regress/regress1/fmf/memory_model-R_cpp-dd.cvc.smt2
test/regress/regress1/fmf/radu-quant-set.smt2
test/regress/regress1/ho/hoa0102.smt2
test/regress/regress1/quantifiers/bug822.smt2
test/regress/regress1/quantifiers/bug_743.smt2
test/regress/regress1/quantifiers/cdt-0208-to.smt2
test/regress/regress1/quantifiers/inst-max-level-segf.smt2
test/regress/regress1/quantifiers/set-choice-koikonomou.cvc.smt2
test/regress/regress1/quantifiers/set3.smt2
test/regress/regress1/quantifiers/set8.smt2
test/regress/regress1/quantifiers/seu169+1.smt2
test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2
test/regress/regress1/rels/addr_book_1.cvc.smt2
test/regress/regress1/rels/addr_book_1_1.cvc.smt2
test/regress/regress1/rels/bv1-unit.cvc.smt2
test/regress/regress1/rels/bv1-unitb.cvc.smt2
test/regress/regress1/rels/bv1.cvc.smt2
test/regress/regress1/rels/bv1p-sat.cvc.smt2
test/regress/regress1/rels/bv1p.cvc.smt2
test/regress/regress1/rels/bv2.cvc.smt2
test/regress/regress1/rels/garbage_collect.cvc.smt2
test/regress/regress1/rels/iden_1_1.cvc.smt2
test/regress/regress1/rels/join-eq-structure-and.cvc.smt2
test/regress/regress1/rels/join-eq-structure.cvc.smt2
test/regress/regress1/rels/joinImg_0_1.cvc.smt2
test/regress/regress1/rels/joinImg_0_2.cvc.smt2
test/regress/regress1/rels/joinImg_1.cvc.smt2
test/regress/regress1/rels/joinImg_1_1.cvc.smt2
test/regress/regress1/rels/joinImg_2.cvc.smt2
test/regress/regress1/rels/joinImg_2_1.cvc.smt2
test/regress/regress1/rels/prod-mod-eq.cvc.smt2
test/regress/regress1/rels/prod-mod-eq2.cvc.smt2
test/regress/regress1/rels/qgu-fuzz-relations-2.smt2
test/regress/regress1/rels/qgu-fuzz-relations-3-upwards.smt2
test/regress/regress1/rels/rel_complex_3.cvc.smt2
test/regress/regress1/rels/rel_complex_4.cvc.smt2
test/regress/regress1/rels/rel_complex_5.cvc.smt2
test/regress/regress1/rels/rel_mix_0_1.cvc.smt2
test/regress/regress1/rels/rel_pressure_0.cvc.smt2
test/regress/regress1/rels/rel_tc_10_1.cvc.smt2
test/regress/regress1/rels/rel_tc_4.cvc.smt2
test/regress/regress1/rels/rel_tc_4_1.cvc.smt2
test/regress/regress1/rels/rel_tc_5_1.cvc.smt2
test/regress/regress1/rels/rel_tc_6.cvc.smt2
test/regress/regress1/rels/rel_tc_9_1.cvc.smt2
test/regress/regress1/rels/rel_tp_2.cvc.smt2
test/regress/regress1/rels/rel_tp_join_2_1.cvc.smt2
test/regress/regress1/rels/set-strat.cvc.smt2
test/regress/regress1/rels/strat.cvc.smt2
test/regress/regress1/sets/ListElem.hs.fqout.cvc4.38.smt2
test/regress/regress1/sets/ListElts.hs.fqout.cvc4.317.smt2
test/regress/regress1/sets/TalkingAboutSets.hs.fqout.cvc4.3577.smt2
test/regress/regress1/sets/UniqueZipper.hs.1030minimized.cvc4.smt2
test/regress/regress1/sets/UniqueZipper.hs.1030minimized2.cvc4.smt2
test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.10.smt2
test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.1832.smt2
test/regress/regress1/sets/arjun-set-univ.cvc.smt2
test/regress/regress1/sets/card-3.smt2
test/regress/regress1/sets/card-4.smt2
test/regress/regress1/sets/card-5.smt2
test/regress/regress1/sets/card-6.smt2
test/regress/regress1/sets/card-7.smt2
test/regress/regress1/sets/card-vc6-minimized.smt2
test/regress/regress1/sets/choose.cvc.smt2
test/regress/regress1/sets/choose1.smt2
test/regress/regress1/sets/choose2.smt2
test/regress/regress1/sets/choose3.smt2
test/regress/regress1/sets/choose4.smt2
test/regress/regress1/sets/comp-intersect.smt2
test/regress/regress1/sets/comp-odd.smt2
test/regress/regress1/sets/comp-pos-member.smt2
test/regress/regress1/sets/comp-positive.smt2
test/regress/regress1/sets/copy_check_heap_access_33_4.smt2
test/regress/regress1/sets/deepmeas0.hs.fqout.cvc4.41.smt2
test/regress/regress1/sets/finite-type/bug3663.smt2
test/regress/regress1/sets/finite-type/sets-card-arrcolor.smt2
test/regress/regress1/sets/finite-type/sets-card-arrunit.smt2
test/regress/regress1/sets/finite-type/sets-card-bool-1.smt2
test/regress/regress1/sets/finite-type/sets-card-bool-2.smt2
test/regress/regress1/sets/finite-type/sets-card-bool-3.smt2
test/regress/regress1/sets/finite-type/sets-card-bool-4.smt2
test/regress/regress1/sets/finite-type/sets-card-bool-rec.smt2
test/regress/regress1/sets/finite-type/sets-card-bv-1.smt2
test/regress/regress1/sets/finite-type/sets-card-bv-2.smt2
test/regress/regress1/sets/finite-type/sets-card-bv-3.smt2
test/regress/regress1/sets/finite-type/sets-card-bv-4.smt2
test/regress/regress1/sets/finite-type/sets-card-color-sat.smt2
test/regress/regress1/sets/finite-type/sets-card-color.smt2
test/regress/regress1/sets/finite-type/sets-card-datatype-1.smt2
test/regress/regress1/sets/finite-type/sets-card-datatype-2.smt2
test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-1.smt2
test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-2.smt2
test/regress/regress1/sets/fuzz14418.smt2
test/regress/regress1/sets/fuzz15201.smt2
test/regress/regress1/sets/fuzz31811.smt2
test/regress/regress1/sets/infinite-type/sets-card-array-int-1.smt2
test/regress/regress1/sets/infinite-type/sets-card-array-int-2.smt2
test/regress/regress1/sets/infinite-type/sets-card-int-1.smt2
test/regress/regress1/sets/infinite-type/sets-card-int-2.smt2
test/regress/regress1/sets/insert_invariant_37_2.smt2
test/regress/regress1/sets/is_singleton1.smt2
test/regress/regress1/sets/issue2568.smt2
test/regress/regress1/sets/issue2904.smt2
test/regress/regress1/sets/issue4124-need-check.smt2
test/regress/regress1/sets/issue4370-2-lemma-ee-iter.smt2
test/regress/regress1/sets/issue4370-4-lemma-ee-iter.smt2
test/regress/regress1/sets/issue4391-card-lasso.smt2
test/regress/regress1/sets/issue5271.smt2
test/regress/regress1/sets/issue5309.smt2
test/regress/regress1/sets/issue5342.smt2
test/regress/regress1/sets/issue5342_difference_version.smt2
test/regress/regress1/sets/issue5705-cg-subtyping.smt2
test/regress/regress1/sets/issue5942-witness.smt2
test/regress/regress1/sets/lemmabug-ListElts317minimized.smt2
test/regress/regress1/sets/remove_check_free_31_6.smt2
test/regress/regress1/sets/set-comp-sat.smt2
test/regress/regress1/sets/setofsets-disequal.smt2
test/regress/regress1/sets/sets-tuple-poly.cvc.smt2
test/regress/regress1/sets/sets-uc-wrong.smt2
test/regress/regress1/sets/sharingbug.smt2
test/regress/regress1/sets/univ-set-uf-elim.smt2
test/regress/regress1/strings/issue6184-unsat-core.smt2
test/regress/regress1/sygus/sets-pred-test.sy
test/regress/regress1/sym/sym-setAB.smt2
test/regress/regress1/sym/sym1.smt2
test/regress/regress1/sym/sym3.smt2
test/regress/regress1/sym/sym5.smt2
test/regress/regress1/trim.cvc.smt2
test/regress/regress2/bug812.smt2
test/regress/regress2/ho/auth0068.smt2
test/regress/regress2/sygus/sets-fun-test.sy
test/regress/regress4/sets-card-neg-mem-union-2.smt2
test/unit/api/java/SolverTest.java
test/unit/api/java/TermTest.java
test/unit/api/solver_black.cpp
test/unit/api/term_black.cpp
test/unit/theory/theory_bags_normal_form_white.cpp
test/unit/theory/theory_sets_type_rules_white.cpp

index 1f3a1683cb51184c28f8bea07558ede55d60a711..a4bc12ec82dedda62a31af7f740b42d9e5ff7033 100644 (file)
@@ -42,12 +42,12 @@ int main()
     Term B = slv.mkConst(set, "B");
     Term C = slv.mkConst(set, "C");
 
-    Term unionAB = slv.mkTerm(UNION, A, B);
-    Term lhs = slv.mkTerm(INTERSECTION, unionAB, C);
+    Term unionAB = slv.mkTerm(SET_UNION, A, B);
+    Term lhs = slv.mkTerm(SET_INTERSECTION, unionAB, C);
 
-    Term intersectionAC = slv.mkTerm(INTERSECTION, A, C);
-    Term intersectionBC = slv.mkTerm(INTERSECTION, B, C);
-    Term rhs = slv.mkTerm(UNION, intersectionAC, intersectionBC);
+    Term intersectionAC = slv.mkTerm(SET_INTERSECTION, A, C);
+    Term intersectionBC = slv.mkTerm(SET_INTERSECTION, B, C);
+    Term rhs = slv.mkTerm(SET_UNION, intersectionAC, intersectionBC);
 
     Term theorem = slv.mkTerm(EQUAL, lhs, rhs);
 
@@ -60,7 +60,7 @@ int main()
     Term A = slv.mkConst(set, "A");
     Term emptyset = slv.mkEmptySet(set);
 
-    Term theorem = slv.mkTerm(SUBSET, emptyset, A);
+    Term theorem = slv.mkTerm(SET_SUBSET, emptyset, A);
 
     cout << "cvc5 reports: " << theorem << " is " << slv.checkEntailed(theorem)
          << "." << endl;
@@ -72,16 +72,16 @@ int main()
     Term two = slv.mkInteger(2);
     Term three = slv.mkInteger(3);
 
-    Term singleton_one = slv.mkTerm(SINGLETON, one);
-    Term singleton_two = slv.mkTerm(SINGLETON, two);
-    Term singleton_three = slv.mkTerm(SINGLETON, three);
-    Term one_two = slv.mkTerm(UNION, singleton_one, singleton_two);
-    Term two_three = slv.mkTerm(UNION, singleton_two, singleton_three);
-    Term intersection = slv.mkTerm(INTERSECTION, one_two, two_three);
+    Term singleton_one = slv.mkTerm(SET_SINGLETON, one);
+    Term singleton_two = slv.mkTerm(SET_SINGLETON, two);
+    Term singleton_three = slv.mkTerm(SET_SINGLETON, three);
+    Term one_two = slv.mkTerm(SET_UNION, singleton_one, singleton_two);
+    Term two_three = slv.mkTerm(SET_UNION, singleton_two, singleton_three);
+    Term intersection = slv.mkTerm(SET_INTERSECTION, one_two, two_three);
 
     Term x = slv.mkConst(integer, "x");
 
-    Term e = slv.mkTerm(MEMBER, x, intersection);
+    Term e = slv.mkTerm(SET_MEMBER, x, intersection);
 
     Result result = slv.checkSatAssuming(e);
     cout << "cvc5 reports: " << e << " is " << result << "." << endl;
index b41b2ad5aa25a9fc23807ee6ce5fbe1e7ecb5767..bf487c617e733e4011d54ee04d80cc650a65988a 100644 (file)
@@ -39,12 +39,12 @@ if __name__ == "__main__":
     B = slv.mkConst(set_, "B")
     C = slv.mkConst(set_, "C")
 
-    unionAB = slv.mkTerm(kinds.Union, A, B)
-    lhs = slv.mkTerm(kinds.Intersection, unionAB, C)
+    unionAB = slv.mkTerm(kinds.SetUnion, A, B)
+    lhs = slv.mkTerm(kinds.SetIntersection, unionAB, C)
 
-    intersectionAC = slv.mkTerm(kinds.Intersection, A, C)
-    intersectionBC = slv.mkTerm(kinds.Intersection, B, C)
-    rhs = slv.mkTerm(kinds.Union, intersectionAC, intersectionBC)
+    intersectionAC = slv.mkTerm(kinds.SetIntersection, A, C)
+    intersectionBC = slv.mkTerm(kinds.SetIntersection, B, C)
+    rhs = slv.mkTerm(kinds.SetUnion, intersectionAC, intersectionBC)
 
     theorem = slv.mkTerm(kinds.Equal, lhs, rhs)
 
@@ -56,7 +56,7 @@ if __name__ == "__main__":
     A = slv.mkConst(set_, "A")
     emptyset = slv.mkEmptySet(set_)
 
-    theorem = slv.mkTerm(kinds.Subset, emptyset, A)
+    theorem = slv.mkTerm(kinds.SetSubset, emptyset, A)
 
     print("cvc5 reports: {} is {}".format(theorem,
                                           slv.checkEntailed(theorem)))
@@ -67,16 +67,16 @@ if __name__ == "__main__":
     two = slv.mkInteger(2)
     three = slv.mkInteger(3)
 
-    singleton_one = slv.mkTerm(kinds.Singleton, one)
-    singleton_two = slv.mkTerm(kinds.Singleton, two)
-    singleton_three = slv.mkTerm(kinds.Singleton, three)
-    one_two = slv.mkTerm(kinds.Union, singleton_one, singleton_two)
-    two_three = slv.mkTerm(kinds.Union, singleton_two, singleton_three)
-    intersection = slv.mkTerm(kinds.Intersection, one_two, two_three)
+    singleton_one = slv.mkTerm(kinds.SetSingleton, one)
+    singleton_two = slv.mkTerm(kinds.SetSingleton, two)
+    singleton_three = slv.mkTerm(kinds.SetSingleton, three)
+    one_two = slv.mkTerm(kinds.SetUnion, singleton_one, singleton_two)
+    two_three = slv.mkTerm(kinds.SetUnion, singleton_two, singleton_three)
+    intersection = slv.mkTerm(kinds.SetIntersection, one_two, two_three)
 
     x = slv.mkConst(integer, "x")
 
-    e = slv.mkTerm(kinds.Member, x, intersection)
+    e = slv.mkTerm(kinds.SetMember, x, intersection)
 
     result = slv.checkSatAssuming(e)
 
index be230b1136c3016331ae400a72bafda0961ef1e2..1dfb508038a4a3bcc745ff78fd573e8f8fb50b2b 100644 (file)
 (declare-fun b2 () Atom)
 
 (assert (forall ((b Atom)) (or 
-(member v (k t0 b))
-(member v (k t1 b))
+(set.member v (k t0 b))
+(set.member v (k t1 b))
 ) ))
 
-(assert (not (member v (k t2 b2))))
+(assert (not (set.member v (k t2 b2))))
 
 (check-sat)
 
index 661ab94b59965827ba63baf774e3c6f17a1dc799..69fc07837dd9e199e92480dc2efecaf9fda4e945 100644 (file)
@@ -120,63 +120,62 @@ class Mapper {
              << " ()"
              << " " << name
              << " ( (as const " << name << ") false ) )" << endl;
-      setoperators[ make_pair(t, kind::EMPTYSET) ] =
-        em->mkVar( std::string("emptyset") + elementTypeAsString,
-                   t);
+      setoperators[make_pair(t, kind::SET_EMPTY)] =
+          em->mkVar(std::string("emptyset") + elementTypeAsString, t);
 
       if(!enableAxioms)
         sout << "(define-fun singleton" << elementTypeAsString << "     "
              << " ( (x " << elementType << ") )"
              << " " << name << ""
              << " (store emptyset" << elementTypeAsString << " x true) )" << endl;
-      setoperators[ make_pair(t, kind::SINGLETON) ] =
-        em->mkVar( std::string("singleton") + elementTypeAsString,
-                   em->mkFunctionType( elementType, t ) );
+      setoperators[make_pair(t, kind::SET_SINGLETON)] =
+          em->mkVar(std::string("singleton") + elementTypeAsString,
+                    em->mkFunctionType(elementType, t));
 
       if(!enableAxioms)
         sout << "(define-fun union" << elementTypeAsString << "       "
              << " ( (s1 " << name << ") (s2 " << name << ") )"
              << " " << name << ""
              << " ((_ map or) s1 s2))" << endl;
-      setoperators[ make_pair(t, kind::UNION) ] =
-        em->mkVar( std::string("union") + elementTypeAsString,
-                   em->mkFunctionType( t_t, t ) );
+      setoperators[make_pair(t, kind::SET_UNION)] =
+          em->mkVar(std::string("union") + elementTypeAsString,
+                    em->mkFunctionType(t_t, t));
 
       if(!enableAxioms)
         sout << "(define-fun intersection" << elementTypeAsString << ""
              << " ( (s1 " << name << ") (s2 " << name << ") )"
              << " " << name << ""
              << " ((_ map and) s1 s2))" << endl;
-      setoperators[ make_pair(t, kind::INTERSECTION) ] =
-        em->mkVar( std::string("intersection") + elementTypeAsString,
-                   em->mkFunctionType( t_t, t ) );
+      setoperators[make_pair(t, kind::SET_INTERSECTION)] =
+          em->mkVar(std::string("intersection") + elementTypeAsString,
+                    em->mkFunctionType(t_t, t));
 
       if(!enableAxioms)
         sout << "(define-fun setminus" << elementTypeAsString << "    "
              << " ( (s1 " << name << ") (s2 " << name << ") )"
              << " " << name << ""
              << " (intersection" << elementTypeAsString << " s1 ((_ map not) s2)))" << endl;
-      setoperators[ make_pair(t, kind::SETMINUS) ] =
-        em->mkVar( std::string("setminus") + elementTypeAsString,
-                   em->mkFunctionType( t_t, t ) );
+      setoperators[make_pair(t, kind::SET_MINUS)] =
+          em->mkVar(std::string("setminus") + elementTypeAsString,
+                    em->mkFunctionType(t_t, t));
 
       if(!enableAxioms)
         sout << "(define-fun member" << elementTypeAsString << "          "
              << " ( (x " << elementType << ")" << " (s " << name << "))"
              << " Bool"
              << " (select s x) )" << endl;
-      setoperators[ make_pair(t, kind::MEMBER) ] =
-        em->mkVar( std::string("member") + elementTypeAsString,
-                   em->mkPredicateType( elet_t ) );
+      setoperators[make_pair(t, kind::SET_MEMBER)] =
+          em->mkVar(std::string("member") + elementTypeAsString,
+                    em->mkPredicateType(elet_t));
 
       if(!enableAxioms)
         sout << "(define-fun subset" << elementTypeAsString << "    "
              << " ( (s1 " << name << ") (s2 " << name << ") )"
              << " Bool"
              <<" (= emptyset" << elementTypeAsString << " (setminus" << elementTypeAsString << " s1 s2)) )" << endl;
-      setoperators[ make_pair(t, kind::SUBSET) ] =
-        em->mkVar( std::string("subset") + elementTypeAsString,
-                   em->mkPredicateType( t_t ) );
+      setoperators[make_pair(t, kind::SET_SUBSET)] =
+          em->mkVar(std::string("subset") + elementTypeAsString,
+                    em->mkPredicateType(t_t));
 
       if(enableAxioms) {
         int N = sizeof(setaxioms) / sizeof(setaxioms[0]);
@@ -193,9 +192,12 @@ class Mapper {
 
     }
     Expr ret;
-    if(e.getKind() == kind::EMPTYSET) {
+    if (e.getKind() == kind::SET_EMPTY)
+    {
       ret = setoperators[ make_pair(t, e.getKind()) ];
-    } else {
+    }
+    else
+    {
       vector<Expr> children = e.getChildren();
       children.insert(children.begin(), setoperators[ make_pair(t, e.getKind()) ]);
       ret = em->mkExpr(kind::APPLY_UF, children);
index f587bbfc0c10f140c621a1de8d80cae33d873fb4..9684c29c5c096bd41cbd54dc798ccf4e06c69961 100644 (file)
@@ -273,26 +273,27 @@ const static std::unordered_map<Kind, cvc5::Kind> s_kinds{
     {SEP_STAR, cvc5::Kind::SEP_STAR},
     {SEP_WAND, cvc5::Kind::SEP_WAND},
     /* Sets ---------------------------------------------------------------- */
-    {EMPTYSET, cvc5::Kind::EMPTYSET},
-    {UNION, cvc5::Kind::UNION},
-    {INTERSECTION, cvc5::Kind::INTERSECTION},
-    {SETMINUS, cvc5::Kind::SETMINUS},
-    {SUBSET, cvc5::Kind::SUBSET},
-    {MEMBER, cvc5::Kind::MEMBER},
-    {SINGLETON, cvc5::Kind::SINGLETON},
-    {INSERT, cvc5::Kind::INSERT},
-    {CARD, cvc5::Kind::CARD},
-    {COMPLEMENT, cvc5::Kind::COMPLEMENT},
-    {UNIVERSE_SET, cvc5::Kind::UNIVERSE_SET},
-    {JOIN, cvc5::Kind::JOIN},
-    {PRODUCT, cvc5::Kind::PRODUCT},
-    {TRANSPOSE, cvc5::Kind::TRANSPOSE},
-    {TCLOSURE, cvc5::Kind::TCLOSURE},
-    {JOIN_IMAGE, cvc5::Kind::JOIN_IMAGE},
-    {IDEN, cvc5::Kind::IDEN},
-    {COMPREHENSION, cvc5::Kind::COMPREHENSION},
-    {CHOOSE, cvc5::Kind::CHOOSE},
-    {IS_SINGLETON, cvc5::Kind::IS_SINGLETON},
+    {SET_EMPTY, cvc5::Kind::SET_EMPTY},
+    {SET_UNION, cvc5::Kind::SET_UNION},
+    {SET_INTERSECTION, cvc5::Kind::SET_INTERSECTION},
+    {SET_MINUS, cvc5::Kind::SET_MINUS},
+    {SET_SUBSET, cvc5::Kind::SET_SUBSET},
+    {SET_MEMBER, cvc5::Kind::SET_MEMBER},
+    {SET_SINGLETON, cvc5::Kind::SET_SINGLETON},
+    {SET_INSERT, cvc5::Kind::SET_INSERT},
+    {SET_CARD, cvc5::Kind::SET_CARD},
+    {SET_COMPLEMENT, cvc5::Kind::SET_COMPLEMENT},
+    {SET_UNIVERSE, cvc5::Kind::SET_UNIVERSE},
+    {SET_COMPREHENSION, cvc5::Kind::SET_COMPREHENSION},
+    {SET_CHOOSE, cvc5::Kind::SET_CHOOSE},
+    {SET_IS_SINGLETON, cvc5::Kind::SET_IS_SINGLETON},
+    /* Relations ----------------------------------------------------------- */
+    {RELATION_JOIN, cvc5::Kind::RELATION_JOIN},
+    {RELATION_PRODUCT, cvc5::Kind::RELATION_PRODUCT},
+    {RELATION_TRANSPOSE, cvc5::Kind::RELATION_TRANSPOSE},
+    {RELATION_TCLOSURE, cvc5::Kind::RELATION_TCLOSURE},
+    {RELATION_JOIN_IMAGE, cvc5::Kind::RELATION_JOIN_IMAGE},
+    {RELATION_IDEN, cvc5::Kind::RELATION_IDEN},
     /* Bags ---------------------------------------------------------------- */
     {UNION_MAX, cvc5::Kind::UNION_MAX},
     {UNION_DISJOINT, cvc5::Kind::UNION_DISJOINT},
@@ -582,26 +583,27 @@ const static std::unordered_map<cvc5::Kind, Kind, cvc5::kind::KindHashFunction>
         {cvc5::Kind::SEP_STAR, SEP_STAR},
         {cvc5::Kind::SEP_WAND, SEP_WAND},
         /* Sets ------------------------------------------------------------ */
-        {cvc5::Kind::EMPTYSET, EMPTYSET},
-        {cvc5::Kind::UNION, UNION},
-        {cvc5::Kind::INTERSECTION, INTERSECTION},
-        {cvc5::Kind::SETMINUS, SETMINUS},
-        {cvc5::Kind::SUBSET, SUBSET},
-        {cvc5::Kind::MEMBER, MEMBER},
-        {cvc5::Kind::SINGLETON, SINGLETON},
-        {cvc5::Kind::INSERT, INSERT},
-        {cvc5::Kind::CARD, CARD},
-        {cvc5::Kind::COMPLEMENT, COMPLEMENT},
-        {cvc5::Kind::UNIVERSE_SET, UNIVERSE_SET},
-        {cvc5::Kind::JOIN, JOIN},
-        {cvc5::Kind::PRODUCT, PRODUCT},
-        {cvc5::Kind::TRANSPOSE, TRANSPOSE},
-        {cvc5::Kind::TCLOSURE, TCLOSURE},
-        {cvc5::Kind::JOIN_IMAGE, JOIN_IMAGE},
-        {cvc5::Kind::IDEN, IDEN},
-        {cvc5::Kind::COMPREHENSION, COMPREHENSION},
-        {cvc5::Kind::CHOOSE, CHOOSE},
-        {cvc5::Kind::IS_SINGLETON, IS_SINGLETON},
+        {cvc5::Kind::SET_EMPTY, SET_EMPTY},
+        {cvc5::Kind::SET_UNION, SET_UNION},
+        {cvc5::Kind::SET_INTERSECTION, SET_INTERSECTION},
+        {cvc5::Kind::SET_MINUS, SET_MINUS},
+        {cvc5::Kind::SET_SUBSET, SET_SUBSET},
+        {cvc5::Kind::SET_MEMBER, SET_MEMBER},
+        {cvc5::Kind::SET_SINGLETON, SET_SINGLETON},
+        {cvc5::Kind::SET_INSERT, SET_INSERT},
+        {cvc5::Kind::SET_CARD, SET_CARD},
+        {cvc5::Kind::SET_COMPLEMENT, SET_COMPLEMENT},
+        {cvc5::Kind::SET_UNIVERSE, SET_UNIVERSE},
+        {cvc5::Kind::SET_COMPREHENSION, SET_COMPREHENSION},
+        {cvc5::Kind::SET_CHOOSE, SET_CHOOSE},
+        {cvc5::Kind::SET_IS_SINGLETON, SET_IS_SINGLETON},
+        /* Relations ------------------------------------------------------- */
+        {cvc5::Kind::RELATION_JOIN, RELATION_JOIN},
+        {cvc5::Kind::RELATION_PRODUCT, RELATION_PRODUCT},
+        {cvc5::Kind::RELATION_TRANSPOSE, RELATION_TRANSPOSE},
+        {cvc5::Kind::RELATION_TCLOSURE, RELATION_TCLOSURE},
+        {cvc5::Kind::RELATION_JOIN_IMAGE, RELATION_JOIN_IMAGE},
+        {cvc5::Kind::RELATION_IDEN, RELATION_IDEN},
         /* Bags ------------------------------------------------------------ */
         {cvc5::Kind::UNION_MAX, UNION_MAX},
         {cvc5::Kind::UNION_DISJOINT, UNION_DISJOINT},
@@ -618,7 +620,7 @@ const static std::unordered_map<cvc5::Kind, Kind, cvc5::kind::KindHashFunction>
         {cvc5::Kind::BAG_IS_SINGLETON, BAG_IS_SINGLETON},
         {cvc5::Kind::BAG_FROM_SET, BAG_FROM_SET},
         {cvc5::Kind::BAG_TO_SET, BAG_TO_SET},
-        {cvc5::Kind::BAG_MAP,BAG_MAP},
+        {cvc5::Kind::BAG_MAP, BAG_MAP},
         /* Strings --------------------------------------------------------- */
         {cvc5::Kind::STRING_CONCAT, STRING_CONCAT},
         {cvc5::Kind::STRING_IN_REGEXP, STRING_IN_REGEXP},
@@ -3266,12 +3268,12 @@ void Term::collectSet(std::set<Term>& set,
                       const Solver* slv)
 {
   // We asserted that node has a set type, and node.isConst()
-  // Thus, node only contains of EMPTYSET, UNION and SINGLETON.
+  // Thus, node only contains of SET_EMPTY, SET_UNION and SET_SINGLETON.
   switch (node.getKind())
   {
-    case cvc5::Kind::EMPTYSET: break;
-    case cvc5::Kind::SINGLETON: set.emplace(Term(slv, node[0])); break;
-    case cvc5::Kind::UNION:
+    case cvc5::Kind::SET_EMPTY: break;
+    case cvc5::Kind::SET_SINGLETON: set.emplace(Term(slv, node[0])); break;
+    case cvc5::Kind::SET_UNION:
     {
       for (const auto& sub : node)
       {
@@ -5176,7 +5178,7 @@ Term Solver::mkTermHelper(Kind kind, const std::vector<Term>& children) const
   {
     // default case, same as above
     checkMkTerm(kind, children.size());
-    if (kind == api::SINGLETON)
+    if (kind == api::SET_SINGLETON)
     {
       // the type of the term is the same as the type of the internal node
       // see Term::getSort()
@@ -5906,7 +5908,7 @@ Term Solver::mkUniverseSet(const Sort& sort) const
   //////// all checks before this line
 
   Node res = getNodeManager()->mkNullaryOperator(*sort.d_type,
-                                                 cvc5::kind::UNIVERSE_SET);
+                                                 cvc5::kind::SET_UNIVERSE);
   // TODO(#2771): Reenable?
   // (void)res->getType(true); /* kick off type checking */
   return Term(this, res);
index b73c1ce27af8504670202b242d60587625636250..1ecf8715bc2b85974b2d0a785876e9174f99f9ee 100644 (file)
@@ -1484,7 +1484,7 @@ class CVC5_EXPORT Term
    * where `c1 ... cn` are values ordered by id such that `c1 > ... > cn` (see
    * also @ref Term::operator>(const Term&) const).
    *
-   * Note that a universe set term (kind UNIVERSE_SET) is not considered to be
+   * Note that a universe set term (kind SET_UNIVERSE) is not considered to be
    * a set value.
    */
   bool isSetValue() const;
index bece490982cf8927a08d51d39db22b4eddec4157..57941aa5f6586eb4acee6c41cf04a950e42de627 100644 (file)
@@ -2117,7 +2117,7 @@ enum Kind : int32_t
    * Create with:
    *   - `Solver::mkEmptySet(const Sort& sort) const`
    */
-  EMPTYSET,
+  SET_EMPTY,
   /**
    * Set union.
    *
@@ -2128,7 +2128,7 @@ enum Kind : int32_t
    *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
    *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  UNION,
+  SET_UNION,
   /**
    * Set intersection.
    *
@@ -2139,7 +2139,7 @@ enum Kind : int32_t
    *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
    *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  INTERSECTION,
+  SET_INTERSECTION,
   /**
    * Set subtraction.
    *
@@ -2150,7 +2150,7 @@ enum Kind : int32_t
    *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
    *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  SETMINUS,
+  SET_MINUS,
   /**
    * Subset predicate.
    *
@@ -2161,7 +2161,7 @@ enum Kind : int32_t
    *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
    *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  SUBSET,
+  SET_SUBSET,
   /**
    * Set membership predicate.
    *
@@ -2172,7 +2172,7 @@ enum Kind : int32_t
    *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
    *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  MEMBER,
+  SET_MEMBER,
   /**
    * Construct a singleton set from an element given as a parameter.
    * The returned set has same type of the element.
@@ -2183,7 +2183,7 @@ enum Kind : int32_t
    * Create with:
    *   - `Solver::mkTerm(Kind kind, const Term& child) const`
    */
-  SINGLETON,
+  SET_SINGLETON,
   /**
    * The set obtained by inserting elements;
    *
@@ -2197,7 +2197,7 @@ enum Kind : int32_t
    *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2, const Term& child3) const`
    *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  INSERT,
+  SET_INSERT,
   /**
    * Set cardinality.
    *
@@ -2207,7 +2207,7 @@ enum Kind : int32_t
    * Create with:
    *   - `Solver::mkTerm(Kind kind, const Term& child) const`
    */
-  CARD,
+  SET_CARD,
   /**
    * Set complement with respect to finite universe.
    *
@@ -2217,63 +2217,83 @@ enum Kind : int32_t
    * Create with:
    *   - `Solver::mkTerm(Kind kind, const Term& child) const`
    */
-  COMPLEMENT,
+  SET_COMPLEMENT,
   /**
    * Finite universe set.
    * All set variables must be interpreted as subsets of it.
    *
-   * Note that UNIVERSE_SET is considered a special symbol of the theory of
+   * Note that SET_UNIVERSE is considered a special symbol of the theory of
    * sets and is not considered as a set value,
    * i.e., `Term::isSetValue() const` will return false.
    *
    * Create with:
    *   - `Solver::mkUniverseSet(const Sort& sort) const`
    */
-  UNIVERSE_SET,
+  SET_UNIVERSE,
   /**
-   * Set join.
+   * Set comprehension
+   * A set comprehension is specified by a bound variable list x1 ... xn,
+   * a predicate P[x1...xn], and a term t[x1...xn]. A comprehension C with the
+   * above form has members given by the following semantics:
+   * @f[
+   *  \forall y. ( \exists x_1...x_n. P[x_1...x_n] \hat{} t[x_1...x_n] = y )
+   * \Leftrightarrow (member y C)
+   * @f]
+   * where y ranges over the element type of the (set) type of the
+   * comprehension. If @f$ t[x_1..x_n] @f$ is not provided, it is equivalent to
+   * y in the above formula.
    *
    * Parameters:
-   *   - 1..2: Terms of set sort
+   *   - 1: Term BOUND_VAR_LIST
+   *   - 2: Term denoting the predicate of the comprehension
+   *   - 3: (optional) a Term denoting the generator for the comprehension
    *
    * Create with:
    *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
+   *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2, const Term& child3) const`
    *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  JOIN,
+  SET_COMPREHENSION,
   /**
-   * Set cartesian product.
+   * Returns an element from a given set.
+   * If a set A = {x}, then the term (choose A) is equivalent to the term x.
+   * If the set is empty, then (choose A) is an arbitrary value.
+   * If the set has cardinality > 1, then (choose A) will deterministically
+   * return an element in A.
    *
    * Parameters:
-   *   - 1..2: Terms of set sort
+   *   - 1: Term of set sort
    *
    * Create with:
-   *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
-   *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
+   *   - `Solver::mkTerm(Kind kind, const Term& child) const`
    */
-  PRODUCT,
+  SET_CHOOSE,
   /**
-   * Set transpose.
+   * Set is_singleton predicate.
    *
    * Parameters:
-   *   - 1: Term of set sort
+   *   - 1: Term of set sort, is [1] a singleton set?
    *
    * Create with:
    *   - `Solver::mkTerm(Kind kind, const Term& child) const`
    */
-  TRANSPOSE,
+  SET_IS_SINGLETON,
+
+  /* Relations ------------------------------------------------------------- */
+
   /**
-   * Set transitive closure.
+   * Set join.
    *
    * Parameters:
-   *   - 1: Term of set sort
+   *   - 1..2: Terms of set sort
    *
    * Create with:
-   *   - `Solver::mkTerm(Kind kind, const Term& child) const`
+   *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
+   *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  TCLOSURE,
+  RELATION_JOIN,
   /**
-   * Set join image.
+   * Set cartesian product.
    *
    * Parameters:
    *   - 1..2: Terms of set sort
@@ -2282,9 +2302,9 @@ enum Kind : int32_t
    *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
    *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  JOIN_IMAGE,
+  RELATION_PRODUCT,
   /**
-   * Set identity.
+   * Set transpose.
    *
    * Parameters:
    *   - 1: Term of set sort
@@ -2292,56 +2312,41 @@ enum Kind : int32_t
    * Create with:
    *   - `Solver::mkTerm(Kind kind, const Term& child) const`
    */
-  IDEN,
+  RELATION_TRANSPOSE,
   /**
-   * Set comprehension
-   * A set comprehension is specified by a bound variable list x1 ... xn,
-   * a predicate P[x1...xn], and a term t[x1...xn]. A comprehension C with the
-   * above form has members given by the following semantics:
-   * @f[
-   *  \forall y. ( \exists x_1...x_n. P[x_1...x_n] \hat{} t[x_1...x_n] = y )
-   * \Leftrightarrow (member y C)
-   * @f]
-   * where y ranges over the element type of the (set) type of the
-   * comprehension. If @f$ t[x_1..x_n] @f$ is not provided, it is equivalent to
-   * y in the above formula.
+   * Set transitive closure.
    *
    * Parameters:
-   *   - 1: Term BOUND_VAR_LIST
-   *   - 2: Term denoting the predicate of the comprehension
-   *   - 3: (optional) a Term denoting the generator for the comprehension
+   *   - 1: Term of set sort
    *
    * Create with:
-   *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
-   *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2, const Term& child3) const`
-   *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
+   *   - `Solver::mkTerm(Kind kind, const Term& child) const`
    */
-  COMPREHENSION,
+  RELATION_TCLOSURE,
   /**
-   * Returns an element from a given set.
-   * If a set A = {x}, then the term (choose A) is equivalent to the term x.
-   * If the set is empty, then (choose A) is an arbitrary value.
-   * If the set has cardinality > 1, then (choose A) will deterministically
-   * return an element in A.
+   * Set join image.
    *
    * Parameters:
-   *   - 1: Term of set sort
+   *   - 1..2: Terms of set sort
    *
    * Create with:
-   *   - `Solver::mkTerm(Kind kind, const Term& child) const`
+   *   - `Solver::mkTerm(Kind kind, const Term& child1, const Term& child2) const`
+   *   - `Solver::mkTerm(Kind kind, const std::vector<Term>& children) const`
    */
-  CHOOSE,
+  RELATION_JOIN_IMAGE,
   /**
-   * Set is_singleton predicate.
+   * Set identity.
    *
    * Parameters:
-   *   - 1: Term of set sort, is [1] a singleton set?
+   *   - 1: Term of set sort
    *
    * Create with:
    *   - `Solver::mkTerm(Kind kind, const Term& child) const`
    */
-  IS_SINGLETON,
+  RELATION_IDEN,
+
   /* Bags ------------------------------------------------------------------ */
+
   /**
    * Empty bag constant.
    *
index 0dcc7be68aee02164d375ddba91286899fa13ea6..14762c24cebeb768052f3ab1929518d51a9a22ab 100644 (file)
@@ -105,7 +105,7 @@ class KindsParser:
            BITVECTOR_ADD       -->  BVAdd
            APPLY_SELECTOR      -->  ApplySelector
            FLOATINGPOINT_ISNAN -->  FPIsNan
-           SETMINUS            -->  Setminus
+           SET_MINUS            -->  Setminus
 
         See the generated .pxi file for an explicit mapping
         '''
index 13885a0f20fc05aa3fb5b961e0d2b3678cf797a9..048a05e4628fd794b1846a7fef3d1392b797d9d7 100644 (file)
@@ -438,7 +438,7 @@ public:
     assertTNodeNotExpired();
     return getKind() == kind::LAMBDA || getKind() == kind::FORALL
            || getKind() == kind::EXISTS || getKind() == kind::WITNESS
-           || getKind() == kind::COMPREHENSION
+           || getKind() == kind::SET_COMPREHENSION
            || getKind() == kind::MATCH_BIND_CASE;
   }
 
index b8e22c6f7c3a54cb441c7fc17570251d070de721..6f614e9272b602f3a44b4ad1e236ed4185b10479 100644 (file)
@@ -1033,8 +1033,8 @@ Node NodeManager::mkSingleton(const TypeNode& t, const TNode n)
       << "Invalid operands for mkSingleton. The type '" << n.getType()
       << "' of node '" << n << "' is not a subtype of '" << t << "'."
       << std::endl;
-  Node op = mkConst(SingletonOp(t));
-  Node singleton = mkNode(kind::SINGLETON, op, n);
+  Node op = mkConst(SetSingletonOp(t));
+  Node singleton = mkNode(kind::SET_SINGLETON, op, n);
   return singleton;
 }
 
index 9f34b56479c688344f67b2e2cc2fa845d7580d36..83b1f5025dc98d2da33749081894e4b2a02e6cf6 100644 (file)
@@ -531,7 +531,7 @@ api::Term Parser::mkHoApply(api::Term expr, const std::vector<api::Term>& args)
 api::Term Parser::applyTypeAscription(api::Term t, api::Sort s)
 {
   api::Kind k = t.getKind();
-  if (k == api::EMPTYSET)
+  if (k == api::SET_EMPTY)
   {
     t = d_solver->mkEmptySet(s);
   }
@@ -555,7 +555,7 @@ api::Term Parser::applyTypeAscription(api::Term t, api::Sort s)
     }
     t = d_solver->mkEmptySequence(s.getSequenceElementSort());
   }
-  else if (k == api::UNIVERSE_SET)
+  else if (k == api::SET_UNIVERSE)
   {
     t = d_solver->mkUniverseSet(s);
   }
index 19e5b85311c1a003a176bc569362239a12982436..1d9eb97aec52861d36e49b35cf3ddeb5c2f4437c 100644 (file)
@@ -611,7 +611,7 @@ public:
    *
    * Return term t with a type ascription applied to it. This is used for
    * syntax like (as t T) in smt2 and t::T in the CVC language. This includes:
-   * - (as emptyset (Set T))
+   * - (as set.empty (Set T))
    * - (as emptybag (Bag T))
    * - (as univset (Set T))
    * - (as sep.nil T)
@@ -623,8 +623,8 @@ public:
    *
    * Notice that method is not necessarily a cast. In actuality, the above terms
    * should be understood as symbols indexed by types. However, SMT-LIB does not
-   * permit types as indices, so we must use, e.g. (as emptyset (Set T))
-   * instead of (_ emptyset (Set T)).
+   * permit types as indices, so we must use, e.g. (as set.empty (Set T))
+   * instead of (_ set.empty (Set T)).
    *
    * @param t The term to ascribe a type
    * @param s The sort to ascribe
index daf1481004a1d9a2833242d4ff8510c8f6898f8b..e60494b7dd00f592ca78408456b9fc982ae839b9 100644 (file)
@@ -1305,7 +1305,7 @@ termNonVariable[cvc5::api::Term& expr, cvc5::api::Term& expr2]
       }
       expr = MK_TERM(kind, args);
     }
-  | LPAREN_TOK COMPREHENSION_TOK
+  | LPAREN_TOK SET_COMPREHENSION_TOK
     { PARSER_STATE->pushScope(); }
     boundVarList[bvl]
     {
@@ -1314,7 +1314,7 @@ termNonVariable[cvc5::api::Term& expr, cvc5::api::Term& expr2]
     term[f, f2] { args.push_back(f); }
     term[f, f2] {
       args.push_back(f);
-      expr = MK_TERM(api::COMPREHENSION, args);
+      expr = MK_TERM(api::SET_COMPREHENSION, args);
     }
     RPAREN_TOK
   | LPAREN_TOK qualIdentifier[p]
@@ -1547,7 +1547,7 @@ termNonVariable[cvc5::api::Term& expr, cvc5::api::Term& expr2]
  * as (3).
  * - Overloaded non-parametric constructors (as C T) return the appropriate
  * expression, analogous to the parametric cases above.
- * - For other ascripted nullary constants like (as emptyset (Set T)),
+ * - For other ascripted nullary constants like (as set.empty (Set T)),
  * (as sep.nil T), we return the appropriate expression (3).
  * - For array constant specifications (as const (Array T1 T2)), we return (1)
  * and (4), where kind is set to STORE_ALL and type is set to (Array T1 T2),
@@ -2224,7 +2224,7 @@ DECLARE_DATATYPES_TOK : { PARSER_STATE->v2_6() || PARSER_STATE->sygus() }?'decla
 DECLARE_CODATATYPES_2_5_TOK : { !( PARSER_STATE->v2_6() || PARSER_STATE->sygus() ) }?'declare-codatatypes';
 DECLARE_CODATATYPES_TOK : { PARSER_STATE->v2_6() || PARSER_STATE->sygus() }?'declare-codatatypes';
 PAR_TOK : { PARSER_STATE->v2_6() || PARSER_STATE->sygus() }?'par';
-COMPREHENSION_TOK : { PARSER_STATE->isTheoryEnabled(theory::THEORY_SETS) }?'comprehension';
+SET_COMPREHENSION_TOK : { PARSER_STATE->isTheoryEnabled(theory::THEORY_SETS) }?'set.comprehension';
 TESTER_TOK : { ( PARSER_STATE->v2_6() || PARSER_STATE->sygus() ) && PARSER_STATE->isTheoryEnabled(theory::THEORY_DATATYPES) }?'is';
 UPDATE_TOK : { ( PARSER_STATE->v2_6() || PARSER_STATE->sygus() ) && PARSER_STATE->isTheoryEnabled(theory::THEORY_DATATYPES) }?'update';
 MATCH_TOK : { ( PARSER_STATE->v2_6() || PARSER_STATE->sygus() ) && PARSER_STATE->isTheoryEnabled(theory::THEORY_DATATYPES) }?'match';
index 2fd91e49544965db8d0604262ebe18a5d7ecb88c..b86c564d003dedf2531dad695e427b00e69401bb 100644 (file)
@@ -587,28 +587,29 @@ Command* Smt2::setLogic(std::string name, bool fromCommand)
   }
 
   if(d_logic.isTheoryEnabled(theory::THEORY_SETS)) {
-    defineVar("emptyset", d_solver->mkEmptySet(d_solver->getNullSort()));
+    defineVar("set.empty", d_solver->mkEmptySet(d_solver->getNullSort()));
     // the Boolean sort is a placeholder here since we don't have type info
     // without type annotation
-    defineVar("univset", d_solver->mkUniverseSet(d_solver->getBooleanSort()));
-
-    addOperator(api::UNION, "union");
-    addOperator(api::INTERSECTION, "intersection");
-    addOperator(api::SETMINUS, "setminus");
-    addOperator(api::SUBSET, "subset");
-    addOperator(api::MEMBER, "member");
-    addOperator(api::SINGLETON, "singleton");
-    addOperator(api::INSERT, "insert");
-    addOperator(api::CARD, "card");
-    addOperator(api::COMPLEMENT, "complement");
-    addOperator(api::CHOOSE, "choose");
-    addOperator(api::IS_SINGLETON, "is_singleton");
-    addOperator(api::JOIN, "join");
-    addOperator(api::PRODUCT, "product");
-    addOperator(api::TRANSPOSE, "transpose");
-    addOperator(api::TCLOSURE, "tclosure");
-    addOperator(api::JOIN_IMAGE, "join_image");
-    addOperator(api::IDEN, "iden");
+    defineVar("set.universe",
+              d_solver->mkUniverseSet(d_solver->getBooleanSort()));
+
+    addOperator(api::SET_UNION, "set.union");
+    addOperator(api::SET_INTERSECTION, "set.intersection");
+    addOperator(api::SET_MINUS, "set.minus");
+    addOperator(api::SET_SUBSET, "set.subset");
+    addOperator(api::SET_MEMBER, "set.member");
+    addOperator(api::SET_SINGLETON, "set.singleton");
+    addOperator(api::SET_INSERT, "set.insert");
+    addOperator(api::SET_CARD, "set.card");
+    addOperator(api::SET_COMPLEMENT, "set.complement");
+    addOperator(api::SET_CHOOSE, "set.choose");
+    addOperator(api::SET_IS_SINGLETON, "set.is_singleton");
+    addOperator(api::RELATION_JOIN, "rel.join");
+    addOperator(api::RELATION_PRODUCT, "rel.product");
+    addOperator(api::RELATION_TRANSPOSE, "rel.transpose");
+    addOperator(api::RELATION_TCLOSURE, "rel.tclosure");
+    addOperator(api::RELATION_JOIN_IMAGE, "rel.join_image");
+    addOperator(api::RELATION_IDEN, "rel.iden");
   }
 
   if (d_logic.isTheoryEnabled(theory::THEORY_BAGS))
@@ -1120,10 +1121,11 @@ api::Term Smt2::applyParseOp(ParseOp& p, std::vector<api::Term>& args)
       Debug("parser") << "applyParseOp: return uminus " << ret << std::endl;
       return ret;
     }
-    if (kind == api::SINGLETON && args.size() == 1)
+    if (kind == api::SET_SINGLETON && args.size() == 1)
     {
-      api::Term ret = d_solver->mkTerm(api::SINGLETON, args[0]);
-      Debug("parser") << "applyParseOp: return singleton " << ret << std::endl;
+      api::Term ret = d_solver->mkTerm(api::SET_SINGLETON, args[0]);
+      Debug("parser") << "applyParseOp: return set.singleton " << ret
+                      << std::endl;
       return ret;
     }
     else if (kind == api::CARDINALITY_CONSTRAINT)
index e68570919301145d7b0c1faa3bb62b864ac05db5..2313905044306055d51942e78a1d8173c0cfbc60 100644 (file)
@@ -330,8 +330,8 @@ void Smt2Printer::toStream(std::ostream& out,
       out << ss.str();
       break;
     }
-    case kind::EMPTYSET:
-      out << "(as emptyset ";
+    case kind::SET_EMPTY:
+      out << "(as set.empty ";
       toStreamType(out, n.getConst<EmptySet>().getType());
       out << ")";
       break;
@@ -688,7 +688,7 @@ void Smt2Printer::toStream(std::ostream& out,
     break;
 
   // sets
-  case kind::SINGLETON:
+  case kind::SET_SINGLETON:
   {
     out << smtKindString(k, d_variant) << " ";
     TypeNode elemType = n.getType().getSetElementType();
@@ -698,7 +698,7 @@ void Smt2Printer::toStream(std::ostream& out,
     return;
   }
   break;
-  case kind::UNIVERSE_SET:out << "(as univset " << n.getType() << ")";break;
+  case kind::SET_UNIVERSE: out << "(as set.universe " << n.getType() << ")"; break;
 
   // bags
   case kind::MK_BAG:
@@ -1060,25 +1060,25 @@ std::string Smt2Printer::smtKindString(Kind k, Variant v)
   case kind::APPLY_UPDATER: return "update";
 
   // set theory
-  case kind::UNION: return "union";
-  case kind::INTERSECTION: return "intersection";
-  case kind::SETMINUS: return "setminus";
-  case kind::SUBSET: return "subset";
-  case kind::MEMBER: return "member";
+  case kind::SET_UNION: return "set.union";
+  case kind::SET_INTERSECTION: return "set.intersection";
+  case kind::SET_MINUS: return "set.minus";
+  case kind::SET_SUBSET: return "set.subset";
+  case kind::SET_MEMBER: return "set.member";
   case kind::SET_TYPE: return "Set";
-  case kind::SINGLETON: return "singleton";
-  case kind::INSERT: return "insert";
-  case kind::COMPLEMENT: return "complement";
-  case kind::CARD: return "card";
-  case kind::COMPREHENSION: return "comprehension";
-  case kind::CHOOSE: return "choose";
-  case kind::IS_SINGLETON: return "is_singleton";
-  case kind::JOIN: return "join";
-  case kind::PRODUCT: return "product";
-  case kind::TRANSPOSE: return "transpose";
-  case kind::TCLOSURE: return "tclosure";
-  case kind::IDEN: return "iden";
-  case kind::JOIN_IMAGE: return "join_image";
+  case kind::SET_SINGLETON: return "set.singleton";
+  case kind::SET_INSERT: return "set.insert";
+  case kind::SET_COMPLEMENT: return "set.complement";
+  case kind::SET_CARD: return "set.card";
+  case kind::SET_COMPREHENSION: return "set.comprehension";
+  case kind::SET_CHOOSE: return "set.choose";
+  case kind::SET_IS_SINGLETON: return "set.is_singleton";
+  case kind::RELATION_JOIN: return "rel.join";
+  case kind::RELATION_PRODUCT: return "rel.product";
+  case kind::RELATION_TRANSPOSE: return "rel.transpose";
+  case kind::RELATION_TCLOSURE: return "rel.tclosure";
+  case kind::RELATION_IDEN: return "rel.iden";
+  case kind::RELATION_JOIN_IMAGE: return "rel.join_image";
 
   // bag theory
   case kind::BAG_TYPE: return "Bag";
index 4013a226c36b89a49851dd8dcdcf93faa4548b32..b02f1cbdd96bc399f6dd010235de49b19db56a99 100644 (file)
@@ -403,7 +403,7 @@ bool AletheProofPostprocessCallback::update(Node res,
               vrule = AletheRule::DIV_SIMPLIFY;
               break;
             }
-            case kind::PRODUCT:
+            case kind::RELATION_PRODUCT:
             {
               vrule = AletheRule::PROD_SIMPLIFY;
               break;
index b64506af5d94eef206a62a1cc162fef26ff9e5da..7ec0b2bd5e5261e290fc2a4295524274ba47e341 100644 (file)
@@ -306,15 +306,15 @@ Node LfscNodeConverter::postConvert(Node n)
     children.insert(children.end(), n.begin(), n.end());
     return nm->mkNode(APPLY_UF, children);
   }
-  else if (k == EMPTYSET || k == UNIVERSE_SET || k == EMPTYBAG)
+  else if (k == SET_EMPTY || k == SET_UNIVERSE || k == EMPTYBAG)
   {
     Node t = typeAsNode(convertType(tn));
     TypeNode etype = nm->mkFunctionType(d_sortType, tn);
     Node ef = getSymbolInternal(
         k,
         etype,
-        k == EMPTYSET ? "emptyset"
-                      : (k == UNIVERSE_SET ? "univset" : "emptybag"));
+        k == SET_EMPTY ? "set.empty"
+                       : (k == SET_UNIVERSE ? "set.universe" : "emptybag"));
     return nm->mkNode(APPLY_UF, ef, t);
   }
   else if (n.isClosure())
@@ -923,7 +923,7 @@ Node LfscNodeConverter::getOperatorOfTerm(Node n, bool macroApply)
       ret = maybeMkSkolemFun(op, macroApply);
       Assert(!ret.isNull());
     }
-    else if (k == SINGLETON || k == MK_BAG)
+    else if (k == SET_SINGLETON || k == MK_BAG)
     {
       if (!macroApply)
       {
index 2170175b4b38a786b83af7d1cddeecb1a5c5be2d..7f430ed6375080ea25d2dee5bf406d16e3188779 100644 (file)
@@ -461,9 +461,9 @@ BagsRewriteResponse BagsRewriter::rewriteIsSingleton(const TNode& n) const
 BagsRewriteResponse BagsRewriter::rewriteFromSet(const TNode& n) const
 {
   Assert(n.getKind() == BAG_FROM_SET);
-  if (n[0].getKind() == SINGLETON)
+  if (n[0].getKind() == SET_SINGLETON)
   {
-    // (bag.from_set (singleton (singleton_op Int) x)) = (mkBag x 1)
+    // (bag.from_set (set.singleton (singleton_op Int) x)) = (mkBag x 1)
     TypeNode type = n[0].getType().getSetElementType();
     Node bag = d_nm->mkBag(type, n[0][0], d_one);
     return BagsRewriteResponse(bag, Rewrite::FROM_SINGLETON);
index 69401b3fa0591a3cc9602e015fa9a65d7d87e5ff..60d223a711b29b0970f69a3503cd305fc00269bb 100644 (file)
@@ -633,7 +633,7 @@ Node NormalForm::evaluateFromSet(TNode n)
 
   // Examples
   // --------
-  //  - (bag.from_set (emptyset String)) = (emptybag String)
+  //  - (bag.from_set (set.empty String)) = (emptybag String)
   //  - (bag.from_set (singleton "x")) = (mkBag "x" 1)
   //  - (bag.from_set (union (singleton "x") (singleton "y"))) =
   //     (disjoint_union (mkBag "x" 1) (mkBag "y" 1))
@@ -658,7 +658,7 @@ Node NormalForm::evaluateToSet(TNode n)
 
   // Examples
   // --------
-  //  - (bag.to_set (emptybag String)) = (emptyset String)
+  //  - (bag.to_set (emptybag String)) = (set.empty String)
   //  - (bag.to_set (mkBag "x" 4)) = (singleton "x")
   //  - (bag.to_set (disjoint_union (mkBag "x" 3) (mkBag "y" 5)) =
   //     (union (singleton "x") (singleton "y")))
index 7f45b9b1add0c20441d5ce35babe4515ac3b7f2b..089038267591dabc4bf2aa52eafd9639980a3a82 100644 (file)
@@ -239,7 +239,7 @@ TypeNode ChooseTypeRule::computeType(NodeManager* nodeManager,
     if (!bagType.isBag())
     {
       throw TypeCheckingExceptionPrivate(
-          n, "CHOOSE operator expects a bag, a non-bag is found");
+          n, "BAG_CHOOSE operator expects a bag, a non-bag is found");
     }
   }
   return bagType.getBagElementType();
index f31ec088a1d1d097dd8fa80688b301c09ee010ef..75a353dbe5842e755d4f7b16776622c3e9a890f5 100644 (file)
@@ -54,10 +54,11 @@ bool TriggerTermInfo::isAtomicTriggerKind(Kind k)
   // where these two things require those kinds respectively.
   return k == APPLY_UF || k == SELECT || k == STORE || k == APPLY_CONSTRUCTOR
          || k == APPLY_SELECTOR || k == APPLY_SELECTOR_TOTAL
-         || k == APPLY_TESTER || k == UNION || k == INTERSECTION || k == SUBSET
-         || k == SETMINUS || k == MEMBER || k == SINGLETON || k == SEP_PTO
-         || k == BITVECTOR_TO_NAT || k == INT_TO_BITVECTOR || k == HO_APPLY
-         || k == STRING_LENGTH || k == SEQ_NTH;
+         || k == APPLY_TESTER || k == SET_UNION || k == SET_INTERSECTION
+         || k == SET_SUBSET || k == SET_MINUS || k == SET_MEMBER
+         || k == SET_SINGLETON || k == SEP_PTO || k == BITVECTOR_TO_NAT
+         || k == INT_TO_BITVECTOR || k == HO_APPLY || k == STRING_LENGTH
+         || k == SEQ_NTH;
 }
 
 bool TriggerTermInfo::isRelationalTrigger(Node n)
index 8ef6155c27633c3ac94d09efa3a7c3fe80f030c8..869fbcd217b725a1200e2f9bc471654a0356c428 100644 (file)
@@ -260,7 +260,9 @@ void BoundedIntegers::process( Node q, Node n, bool pol,
         }
       }
     }
-  }else if( n.getKind()==MEMBER ){
+  }
+  else if (n.getKind() == SET_MEMBER)
+  {
     if( !pol && !hasNonBoundVar( q, n[1] ) ){
       std::vector< Node > bound_vars;
       std::map< Node, bool > visited;
@@ -273,7 +275,9 @@ void BoundedIntegers::process( Node q, Node n, bool pol,
         bound_lit_pol_map[2][v] = pol;
       }
     }
-  }else{
+  }
+  else
+  {
     Assert(n.getKind() != LEQ && n.getKind() != LT && n.getKind() != GT);
   }
 }
@@ -376,7 +380,7 @@ void BoundedIntegers::checkOwnership(Node f)
             setBoundVar = true;
             d_setm_range[f][v] = bound_lit_map[2][v][1];
             d_setm_range_lit[f][v] = bound_lit_map[2][v];
-            d_range[f][v] = nm->mkNode(CARD, d_setm_range[f][v]);
+            d_range[f][v] = nm->mkNode(SET_CARD, d_setm_range[f][v]);
             Trace("bound-int") << "Variable " << v
                                << " is bound because of set membership literal "
                                << bound_lit_map[2][v] << std::endl;
@@ -650,7 +654,7 @@ Node BoundedIntegers::getSetRangeValue( Node q, Node v, RepSetIterator * rsi ) {
     return Node::null();
   }
   Trace("bound-int-rsi") << "Value is " << sr << std::endl;
-  if (sr.getKind() == EMPTYSET)
+  if (sr.getKind() == SET_EMPTY)
   {
     return sr;
   }
@@ -660,17 +664,17 @@ Node BoundedIntegers::getSetRangeValue( Node q, Node v, RepSetIterator * rsi ) {
 
   // we can use choice functions for canonical symbolic instantiations
   unsigned srCard = 0;
-  while (sr.getKind() == UNION)
+  while (sr.getKind() == SET_UNION)
   {
     srCard++;
     sr = sr[0];
   }
-  Assert(sr.getKind() == SINGLETON);
+  Assert(sr.getKind() == SET_SINGLETON);
   srCard++;
   // choices[i] stores the canonical symbolic representation of the (i+1)^th
   // element of sro
   std::vector<Node> choices;
-  Node srCardN = nm->mkNode(CARD, sro);
+  Node srCardN = nm->mkNode(SET_CARD, sro);
   Node choice_i;
   for (unsigned i = 0; i < srCard; i++)
   {
@@ -678,7 +682,7 @@ Node BoundedIntegers::getSetRangeValue( Node q, Node v, RepSetIterator * rsi ) {
     {
       choice_i = nm->mkBoundVar(tne);
       choices.push_back(choice_i);
-      Node cBody = nm->mkNode(MEMBER, choice_i, sro);
+      Node cBody = nm->mkNode(SET_MEMBER, choice_i, sro);
       if (choices.size() > 1)
       {
         cBody = nm->mkNode(AND, cBody, nm->mkNode(DISTINCT, choices));
@@ -699,7 +703,7 @@ Node BoundedIntegers::getSetRangeValue( Node q, Node v, RepSetIterator * rsi ) {
     }
     else
     {
-      nsr = nm->mkNode(UNION, nsr, sChoiceI);
+      nsr = nm->mkNode(SET_UNION, nsr, sChoiceI);
     }
   }
   // turns the concrete model value of sro into a canonical representation
@@ -837,14 +841,16 @@ bool BoundedIntegers::getBoundElements( RepSetIterator * rsi, bool initial, Node
         return false;
       }else{
         Trace("bound-int-rsi") << "Bounded by set membership : " << srv << std::endl;
-        if( srv.getKind()!=EMPTYSET ){
+        if (srv.getKind() != SET_EMPTY)
+        {
           //collect the elements
-          while( srv.getKind()==UNION ){
-            Assert(srv[1].getKind() == kind::SINGLETON);
+          while (srv.getKind() == SET_UNION)
+          {
+            Assert(srv[1].getKind() == kind::SET_SINGLETON);
             elements.push_back( srv[1][0] );
             srv = srv[0];
           }
-          Assert(srv.getKind() == kind::SINGLETON);
+          Assert(srv.getKind() == kind::SET_SINGLETON);
           elements.push_back( srv[0] );
           //check if we need to do matching, for literals like ( tuple( v ) in S )
           Node t = d_setm_range_lit[q][v][0];
index a9b5ed9c6529b30cf864a9889e0fb53294ca6230..7d4434ddd6e0a49450859ac460e884da141e2140 100644 (file)
@@ -988,7 +988,7 @@ void CegGrammarConstructor::mkSygusDefaultGrammar(
       sdts[i].addConstructor(lambda, "singleton", cargsSingleton);
 
       // add for union, difference, intersection
-      std::vector<Kind> bin_kinds = {UNION, INTERSECTION, SETMINUS};
+      std::vector<Kind> bin_kinds = {SET_UNION, SET_INTERSECTION, SET_MINUS};
       std::vector<TypeNode> cargsBinary;
       cargsBinary.push_back(unres_t);
       cargsBinary.push_back(unres_t);
@@ -1454,8 +1454,8 @@ void CegGrammarConstructor::mkSygusDefaultGrammar(
       std::vector<TypeNode> cargsMember;
       cargsMember.push_back(unresElemType);
       cargsMember.push_back(unres_types[iuse]);
-      Trace("sygus-grammar-def") << "...for MEMBER" << std::endl;
-      sdtBool.addConstructor(MEMBER, cargsMember);
+      Trace("sygus-grammar-def") << "...for SET_MEMBER" << std::endl;
+      sdtBool.addConstructor(SET_MEMBER, cargsMember);
     }
   }
   // add Boolean connectives, if not in a degenerate case of (recursively)
index 573cab7bff5adea2bf48f7acb5229fe259e3cdf2..225fe0bb195f4b51d0071e9ea5a3f8344661e467 100644 (file)
@@ -175,10 +175,11 @@ Node TermDb::getOrMakeTypeFreshVariable(TypeNode tn)
 Node TermDb::getMatchOperator( Node n ) {
   Kind k = n.getKind();
   //datatype operators may be parametric, always assume they are
-  if (k == SELECT || k == STORE || k == UNION || k == INTERSECTION
-      || k == SUBSET || k == SETMINUS || k == MEMBER || k == SINGLETON
-      || k == APPLY_SELECTOR_TOTAL || k == APPLY_SELECTOR || k == APPLY_TESTER
-      || k == SEP_PTO || k == HO_APPLY || k == SEQ_NTH || k == STRING_LENGTH)
+  if (k == SELECT || k == STORE || k == SET_UNION || k == SET_INTERSECTION
+      || k == SET_SUBSET || k == SET_MINUS || k == SET_MEMBER
+      || k == SET_SINGLETON || k == APPLY_SELECTOR_TOTAL || k == APPLY_SELECTOR
+      || k == APPLY_TESTER || k == SEP_PTO || k == HO_APPLY || k == SEQ_NTH
+      || k == STRING_LENGTH)
   {
     //since it is parametric, use a particular one as op
     TypeNode tn = n[0].getType();
index c9fced3be3005aac27abf5dbae0beb64cebc0eb9..de4c56552191154b40d06a4a791d8c6a25389288 100644 (file)
@@ -283,7 +283,7 @@ bool TermUtil::isAssoc(Kind k, bool reqNAry)
 {
   if (reqNAry)
   {
-    if (k == UNION || k == INTERSECTION)
+    if (k == SET_UNION || k == SET_INTERSECTION)
     {
       return false;
     }
@@ -292,15 +292,15 @@ bool TermUtil::isAssoc(Kind k, bool reqNAry)
          || k == XOR || k == BITVECTOR_ADD || k == BITVECTOR_MULT
          || k == BITVECTOR_AND || k == BITVECTOR_OR || k == BITVECTOR_XOR
          || k == BITVECTOR_XNOR || k == BITVECTOR_CONCAT || k == STRING_CONCAT
-         || k == UNION || k == INTERSECTION || k == JOIN || k == PRODUCT
-         || k == SEP_STAR;
+         || k == SET_UNION || k == SET_INTERSECTION || k == RELATION_JOIN
+         || k == RELATION_PRODUCT || k == SEP_STAR;
 }
 
 bool TermUtil::isComm(Kind k, bool reqNAry)
 {
   if (reqNAry)
   {
-    if (k == UNION || k == INTERSECTION)
+    if (k == SET_UNION || k == SET_INTERSECTION)
     {
       return false;
     }
@@ -308,7 +308,7 @@ bool TermUtil::isComm(Kind k, bool reqNAry)
   return k == EQUAL || k == PLUS || k == MULT || k == NONLINEAR_MULT || k == AND
          || k == OR || k == XOR || k == BITVECTOR_ADD || k == BITVECTOR_MULT
          || k == BITVECTOR_AND || k == BITVECTOR_OR || k == BITVECTOR_XOR
-         || k == BITVECTOR_XNOR || k == UNION || k == INTERSECTION
+         || k == BITVECTOR_XNOR || k == SET_UNION || k == SET_INTERSECTION
          || k == SEP_STAR;
 }
 
index ad41d832713c6420797d19acb3b2c4cc2aaf8aa0..02a368f25cc4b29d92d719294275711411f77018 100644 (file)
@@ -197,7 +197,7 @@ void TheorySep::postProcessModel( TheoryModel* m ){
     }else{
       for( unsigned j=0; j<d_label_model[it->second].d_heap_locs_model.size(); j++ ){
         Assert(d_label_model[it->second].d_heap_locs_model[j].getKind()
-               == kind::SINGLETON);
+               == kind::SET_SINGLETON);
         std::vector< Node > pto_children;
         Node l = d_label_model[it->second].d_heap_locs_model[j][0];
         Assert(l.isConst());
@@ -361,7 +361,8 @@ void TheorySep::reduceFact(TNode atom, bool polarity, TNode fact)
       TypeNode tn = getReferenceType();
       if (d_reference_bound_max.find(tn) != d_reference_bound_max.end())
       {
-        c_lems.push_back(nm->mkNode(SUBSET, slbl, d_reference_bound_max[tn]));
+        c_lems.push_back(
+            nm->mkNode(SET_SUBSET, slbl, d_reference_bound_max[tn]));
       }
       std::vector<Node> labels;
       getLabelChildren(satom, slbl, children, labels);
@@ -370,11 +371,11 @@ void TheorySep::reduceFact(TNode atom, bool polarity, TNode fact)
       if (satom.getKind() == SEP_STAR)
       {
         // reduction for heap : union, pairwise disjoint
-        Node ulem = nm->mkNode(UNION, labels[0], labels[1]);
+        Node ulem = nm->mkNode(SET_UNION, labels[0], labels[1]);
         size_t lsize = labels.size();
         for (size_t i = 2; i < lsize; i++)
         {
-          ulem = nm->mkNode(UNION, ulem, labels[i]);
+          ulem = nm->mkNode(SET_UNION, ulem, labels[i]);
         }
         ulem = slbl.eqNode(ulem);
         Trace("sep-lemma-debug")
@@ -384,7 +385,7 @@ void TheorySep::reduceFact(TNode atom, bool polarity, TNode fact)
         {
           for (size_t j = (i + 1); j < lsize; j++)
           {
-            Node s = nm->mkNode(INTERSECTION, labels[i], labels[j]);
+            Node s = nm->mkNode(SET_INTERSECTION, labels[i], labels[j]);
             Node ilem = s.eqNode(empSet);
             Trace("sep-lemma-debug")
                 << "Sep::Lemma : star reduction, disjoint : " << ilem
@@ -395,19 +396,19 @@ void TheorySep::reduceFact(TNode atom, bool polarity, TNode fact)
       }
       else
       {
-        Node ulem = nm->mkNode(UNION, slbl, labels[0]);
+        Node ulem = nm->mkNode(SET_UNION, slbl, labels[0]);
         ulem = ulem.eqNode(labels[1]);
         Trace("sep-lemma-debug")
             << "Sep::Lemma : wand reduction, union : " << ulem << std::endl;
         c_lems.push_back(ulem);
-        Node s = nm->mkNode(INTERSECTION, slbl, labels[0]);
+        Node s = nm->mkNode(SET_INTERSECTION, slbl, labels[0]);
         Node ilem = s.eqNode(empSet);
         Trace("sep-lemma-debug")
             << "Sep::Lemma : wand reduction, disjoint : " << ilem << std::endl;
         c_lems.push_back(ilem);
         // nil does not occur in labels[0]
         Node nr = getNilRef(tn);
-        Node nrlem = nm->mkNode(MEMBER, nr, labels[0]).negate();
+        Node nrlem = nm->mkNode(SET_MEMBER, nr, labels[0]).negate();
         Trace("sep-lemma")
             << "Sep::Lemma: sep.nil not in wand antecedant heap : " << nrlem
             << std::endl;
@@ -836,7 +837,7 @@ void TheorySep::postCheck(Effort level)
     std::vector<Node>& hlmodel = d_label_model[it->second].d_heap_locs_model;
     for (size_t j = 0, hsize = hlmodel.size(); j < hsize; j++)
     {
-      Assert(hlmodel[j].getKind() == SINGLETON);
+      Assert(hlmodel[j].getKind() == SET_SINGLETON);
       Node l = hlmodel[j][0];
       Trace("sep-process-debug") << "  location : " << l << std::endl;
       if (!d_pto_model[l].isNull())
@@ -862,7 +863,7 @@ void TheorySep::postCheck(Effort level)
         // if location is in the heap, then something must point to it
         Node lem = nm->mkNode(
             IMPLIES,
-            nm->mkNode(MEMBER, ll, it->second),
+            nm->mkNode(SET_MEMBER, ll, it->second),
             nm->mkNode(SEP_STAR, nm->mkNode(SEP_PTO, ll, dsk), d_true));
         Trace("sep-lemma") << "Sep::Lemma : witness finite data-pto : " << lem
                            << std::endl;
@@ -1225,7 +1226,8 @@ Node TheorySep::getBaseLabel( TypeNode tn ) {
       d_reference_bound_max[tn] = mkUnion( tn, d_type_references_all[tn] );
       Trace("sep-bound") << "overall bound for " << d_base_label[tn] << " : " << d_reference_bound_max[tn] << std::endl;
 
-      Node slem = NodeManager::currentNM()->mkNode( kind::SUBSET, d_base_label[tn], d_reference_bound_max[tn] );
+      Node slem = NodeManager::currentNM()->mkNode(
+          kind::SET_SUBSET, d_base_label[tn], d_reference_bound_max[tn]);
       Trace("sep-lemma") << "Sep::Lemma: reference bound for " << tn << " : " << slem << std::endl;
       d_im.lemma(slem, InferenceId::SEP_REF_BOUND);
 
@@ -1233,7 +1235,10 @@ Node TheorySep::getBaseLabel( TypeNode tn ) {
       if( d_type_references_card[tn].size()>1 ){
         std::map< unsigned, Node > lit_mem_map;
         for( unsigned i=0; i<d_type_references_card[tn].size(); i++ ){
-          lit_mem_map[i] = NodeManager::currentNM()->mkNode( kind::MEMBER, d_type_references_card[tn][i], d_reference_bound_max[tn]);
+          lit_mem_map[i] =
+              NodeManager::currentNM()->mkNode(kind::SET_MEMBER,
+                                               d_type_references_card[tn][i],
+                                               d_reference_bound_max[tn]);
         }
         for( unsigned i=0; i<(d_type_references_card[tn].size()-1); i++ ){
           std::vector< Node > children;
@@ -1252,7 +1257,8 @@ Node TheorySep::getBaseLabel( TypeNode tn ) {
 
     //assert that nil ref is not in base label
     Node nr = getNilRef( tn );
-    Node nrlem = NodeManager::currentNM()->mkNode( kind::MEMBER, nr, n_lbl ).negate();
+    Node nrlem =
+        NodeManager::currentNM()->mkNode(kind::SET_MEMBER, nr, n_lbl).negate();
     Trace("sep-lemma") << "Sep::Lemma: sep.nil not in base label " << tn << " : " << nrlem << std::endl;
     d_im.lemma(nrlem, InferenceId::SEP_NIL_NOT_IN_HEAP);
 
@@ -1291,7 +1297,7 @@ Node TheorySep::mkUnion( TypeNode tn, std::vector< Node >& locs ) {
       if( u.isNull() ){
         u = s;
       }else{
-        u = NodeManager::currentNM()->mkNode( kind::UNION, s, u );
+        u = NodeManager::currentNM()->mkNode(kind::SET_UNION, s, u);
       }
     }
     return u;
@@ -1387,7 +1393,8 @@ Node TheorySep::instantiateLabel(Node n,
             Node sub_lbl_0 = d_label_map[n][lbl][0];
             computeLabelModel( sub_lbl_0 );
             Assert(d_label_model.find(sub_lbl_0) != d_label_model.end());
-            lbl_mval = NodeManager::currentNM()->mkNode( kind::UNION, lbl, d_label_model[sub_lbl_0].getValue( rtn ) );
+            lbl_mval = NodeManager::currentNM()->mkNode(
+                kind::SET_UNION, lbl, d_label_model[sub_lbl_0].getValue(rtn));
           }else{
             computeLabelModel( sub_lbl );
             Assert(d_label_model.find(sub_lbl) != d_label_model.end());
@@ -1413,13 +1420,17 @@ Node TheorySep::instantiateLabel(Node n,
             Node sub_lbl = itl->second;
             Node lbl_mval = d_label_model[sub_lbl].getValue( rtn );
             for( unsigned j=0; j<vs.size(); j++ ){
-              bchildren.push_back( NodeManager::currentNM()->mkNode( kind::INTERSECTION, lbl_mval, vs[j] ).eqNode( empSet ) );
+              bchildren.push_back(
+                  NodeManager::currentNM()
+                      ->mkNode(kind::SET_INTERSECTION, lbl_mval, vs[j])
+                      .eqNode(empSet));
             }
             vs.push_back( lbl_mval );
             if( vsu.isNull() ){
               vsu = lbl_mval;
             }else{
-              vsu = NodeManager::currentNM()->mkNode( kind::UNION, vsu, lbl_mval );
+              vsu = NodeManager::currentNM()->mkNode(
+                  kind::SET_UNION, vsu, lbl_mval);
             }
           }
           bchildren.push_back( vsu.eqNode( lbl ) );
@@ -1432,8 +1443,8 @@ Node TheorySep::instantiateLabel(Node n,
             for( unsigned i=0; i<children.size(); i++ ){
               std::vector< Node > tchildren;
               Node mval = mvals[i];
-              tchildren.push_back(
-                  NodeManager::currentNM()->mkNode(kind::SUBSET, mval, lbl));
+              tchildren.push_back(NodeManager::currentNM()->mkNode(
+                  kind::SET_SUBSET, mval, lbl));
               tchildren.push_back( children[i] );
               std::vector< Node > rem_children;
               for( unsigned j=0; j<children.size(); j++ ){
@@ -1443,7 +1454,10 @@ Node TheorySep::instantiateLabel(Node n,
               }
               std::map< Node, Node > rvisited;
               Node rem = rem_children.size()==1 ? rem_children[0] : NodeManager::currentNM()->mkNode( kind::SEP_STAR, rem_children );
-              rem = applyLabel( rem, NodeManager::currentNM()->mkNode( kind::SETMINUS, lbl, mval ), rvisited );
+              rem = applyLabel(
+                  rem,
+                  NodeManager::currentNM()->mkNode(kind::SET_MINUS, lbl, mval),
+                  rvisited);
               tchildren.push_back( rem );
               conj.push_back( NodeManager::currentNM()->mkNode( kind::AND, tchildren ) );
             }
@@ -1454,7 +1468,11 @@ Node TheorySep::instantiateLabel(Node n,
           //disjoint constraints
           Node sub_lbl_0 = d_label_map[n][lbl][0];
           Node lbl_mval_0 = d_label_model[sub_lbl_0].getValue( rtn );
-          wchildren.push_back( NodeManager::currentNM()->mkNode( kind::INTERSECTION, lbl_mval_0, lbl ).eqNode( empSet ).negate() );
+          wchildren.push_back(
+              NodeManager::currentNM()
+                  ->mkNode(kind::SET_INTERSECTION, lbl_mval_0, lbl)
+                  .eqNode(empSet)
+                  .negate());
 
           //return the lemma
           wchildren.push_back( children[0].negate() );
@@ -1496,7 +1514,8 @@ Node TheorySep::instantiateLabel(Node n,
       Trace("sep-inst-debug") << "Return " << ret << std::endl;
       return ret;
     }else if( n.getKind()==kind::SEP_EMP ){
-      //return NodeManager::currentNM()->mkConst( lbl_v.getKind()==kind::EMPTYSET );
+      // return NodeManager::currentNM()->mkConst(
+      // lbl_v.getKind()==kind::SET_EMPTY );
       return lbl_v.eqNode(
           NodeManager::currentNM()->mkConst(EmptySet(lbl_v.getType())));
     }else{
@@ -1579,22 +1598,27 @@ void TheorySep::computeLabelModel( Node lbl ) {
     //Assert(...); TODO
     Node v_val = d_valuation.getModel()->getRepresentative( lbl );
     Trace("sep-process") << "Model value (from valuation) for " << lbl << " : " << v_val << std::endl;
-    if( v_val.getKind()!=kind::EMPTYSET ){
-      while( v_val.getKind()==kind::UNION ){
-        Assert(v_val[0].getKind() == kind::SINGLETON);
+    if (v_val.getKind() != kind::SET_EMPTY)
+    {
+      while (v_val.getKind() == kind::SET_UNION)
+      {
+        Assert(v_val[0].getKind() == kind::SET_SINGLETON);
         d_label_model[lbl].d_heap_locs_model.push_back(v_val[0]);
         v_val = v_val[1];
       }
-      if( v_val.getKind()==kind::SINGLETON ){
+      if (v_val.getKind() == kind::SET_SINGLETON)
+      {
         d_label_model[lbl].d_heap_locs_model.push_back( v_val );
-      }else{
+      }
+      else
+      {
         throw Exception("Could not establish value of heap in model.");
         Assert(false);
       }
     }
     for( unsigned j=0; j<d_label_model[lbl].d_heap_locs_model.size(); j++ ){
       Node u = d_label_model[lbl].d_heap_locs_model[j];
-      Assert(u.getKind() == kind::SINGLETON);
+      Assert(u.getKind() == kind::SET_SINGLETON);
       u = u[0];
       Node tt;
       std::map< Node, Node >::iterator itm = d_tmodel.find( u );
@@ -1708,7 +1732,8 @@ void TheorySep::addPto( HeapAssertInfo * ei, Node ei_n, Node p, bool polarity )
       Assert(areEqual(pb[1], p[1]));
       std::vector< Node > exp;
       if( pb[1]!=p[1] ){
-        //if( pb[1].getKind()==kind::SINGLETON && p[1].getKind()==kind::SINGLETON ){
+        // if( pb[1].getKind()==kind::SET_SINGLETON &&
+        // p[1].getKind()==kind::SET_SINGLETON ){
         //  exp.push_back( pb[1][0].eqNode( p[1][0] ) );
         //}else{
         exp.push_back( pb[1].eqNode( p[1] ) );
@@ -1805,7 +1830,8 @@ Node TheorySep::HeapInfo::getValue( TypeNode tn ) {
   Node curr = d_heap_locs[0];
   for (unsigned j = 1; j < d_heap_locs.size(); j++)
   {
-    curr = NodeManager::currentNM()->mkNode(kind::UNION, d_heap_locs[j], curr);
+    curr =
+        NodeManager::currentNM()->mkNode(kind::SET_UNION, d_heap_locs[j], curr);
   }
   return curr;
 }
index d2d7a636a33031e0f7451a1f440ff70eae1b7885..f65c41b53e81fca9d1d5967d80f2a4a6a37da7d1 100644 (file)
@@ -61,7 +61,7 @@ void CardinalityExtension::reset()
 void CardinalityExtension::registerTerm(Node n)
 {
   Trace("sets-card-debug") << "Register term : " << n << std::endl;
-  Assert(n.getKind() == CARD);
+  Assert(n.getKind() == SET_CARD);
   TypeNode tnc = n[0].getType().getSetElementType();
   d_t_card_enabled[tnc] = true;
   Node r = d_state.getRepresentative(n[0]);
@@ -134,7 +134,7 @@ void CardinalityExtension::checkCardinalityExtended(TypeNode& t)
   if (finiteType)
   {
     Node typeCardinality = nm->mkConst(Rational(card.getFiniteCardinality()));
-    Node cardUniv = nm->mkNode(kind::CARD, proxy);
+    Node cardUniv = nm->mkNode(kind::SET_CARD, proxy);
     Node leq = nm->mkNode(kind::LEQ, cardUniv, typeCardinality);
 
     // (=> true (<= (card (as univset t)) cardUniv)
@@ -159,7 +159,7 @@ void CardinalityExtension::checkCardinalityExtended(TypeNode& t)
       }
 
       // (=> true (subset representative (as univset t))
-      Node subset = nm->mkNode(kind::SUBSET, variable, proxy);
+      Node subset = nm->mkNode(kind::SET_SUBSET, variable, proxy);
       // subset terms are rewritten as union terms: (subset A B) implies (=
       // (union A B) B)
       subset = rewrite(subset);
@@ -175,9 +175,9 @@ void CardinalityExtension::checkCardinalityExtended(TypeNode& t)
 
       for (const auto& negativeMember : negativeMembers)
       {
-        Node member = nm->mkNode(MEMBER, negativeMember.first, univ);
+        Node member = nm->mkNode(SET_MEMBER, negativeMember.first, univ);
         // negativeMember.second is the reason for the negative membership and
-        // has kind MEMBER. So we specify the negation as the reason for the
+        // has kind SET_MEMBER. So we specify the negation as the reason for the
         // negative membership lemma
         Node notMember = nm->mkNode(NOT, negativeMember.second);
         // (=>
@@ -240,9 +240,9 @@ void CardinalityExtension::checkRegister()
       if (!d_state.isCongruent(n))
       {
         // if setminus, do for intersection instead
-        if (n.getKind() == SETMINUS)
+        if (n.getKind() == SET_MINUS)
         {
-          n = rewrite(nm->mkNode(INTERSECTION, n[0], n[1]));
+          n = rewrite(nm->mkNode(SET_INTERSECTION, n[0], n[1]));
         }
         registerCardinalityTerm(n);
       }
@@ -268,14 +268,14 @@ void CardinalityExtension::registerCardinalityTerm(Node n)
   NodeManager* nm = NodeManager::currentNM();
   Trace("sets-card") << "Cardinality lemmas for " << n << " : " << std::endl;
   std::vector<Node> cterms;
-  if (n.getKind() == INTERSECTION)
+  if (n.getKind() == SET_INTERSECTION)
   {
     for (unsigned e = 0; e < 2; e++)
     {
-      Node s = nm->mkNode(SETMINUS, n[e], n[1 - e]);
+      Node s = nm->mkNode(SET_MINUS, n[e], n[1 - e]);
       cterms.push_back(s);
     }
-    Node pos_lem = nm->mkNode(GEQ, nm->mkNode(CARD, n), d_zero);
+    Node pos_lem = nm->mkNode(GEQ, nm->mkNode(SET_CARD, n), d_zero);
     d_im.assertInference(
         pos_lem, InferenceId::SETS_CARD_POSITIVE, d_emp_exp, 1);
   }
@@ -287,12 +287,13 @@ void CardinalityExtension::registerCardinalityTerm(Node n)
   {
     Node nn = cterms[k];
     Node nk = d_treg.getProxy(nn);
-    Node pos_lem = nm->mkNode(GEQ, nm->mkNode(CARD, nk), d_zero);
+    Node pos_lem = nm->mkNode(GEQ, nm->mkNode(SET_CARD, nk), d_zero);
     d_im.assertInference(
         pos_lem, InferenceId::SETS_CARD_POSITIVE, d_emp_exp, 1);
     if (nn != nk)
     {
-      Node lem = nm->mkNode(EQUAL, nm->mkNode(CARD, nk), nm->mkNode(CARD, nn));
+      Node lem =
+          nm->mkNode(EQUAL, nm->mkNode(SET_CARD, nk), nm->mkNode(SET_CARD, nn));
       lem = rewrite(lem);
       Trace("sets-card") << "  " << k << " : " << lem << std::endl;
       d_im.assertInference(lem, InferenceId::SETS_CARD_EQUAL, d_emp_exp, 1);
@@ -380,7 +381,7 @@ void CardinalityExtension::checkCardCyclesRec(Node eqc,
   for (const Node& n : nvsets)
   {
     Kind nk = n.getKind();
-    if (nk != INTERSECTION && nk != SETMINUS)
+    if (nk != SET_INTERSECTION && nk != SET_MINUS)
     {
       continue;
     }
@@ -388,26 +389,26 @@ void CardinalityExtension::checkCardCyclesRec(Node eqc,
                         << std::endl;
     std::vector<Node> sib;
     unsigned true_sib = 0;
-    if (n.getKind() == INTERSECTION)
+    if (n.getKind() == SET_INTERSECTION)
     {
       d_localBase[n] = n;
       for (unsigned e = 0; e < 2; e++)
       {
-        Node sm = rewrite(nm->mkNode(SETMINUS, n[e], n[1 - e]));
+        Node sm = rewrite(nm->mkNode(SET_MINUS, n[e], n[1 - e]));
         sib.push_back(sm);
       }
       true_sib = 2;
     }
     else
     {
-      Node si = rewrite(nm->mkNode(INTERSECTION, n[0], n[1]));
+      Node si = rewrite(nm->mkNode(SET_INTERSECTION, n[0], n[1]));
       sib.push_back(si);
       d_localBase[n] = si;
-      Node osm = rewrite(nm->mkNode(SETMINUS, n[1], n[0]));
+      Node osm = rewrite(nm->mkNode(SET_MINUS, n[1], n[0]));
       sib.push_back(osm);
       true_sib = 1;
     }
-    Node u = rewrite(nm->mkNode(UNION, n[0], n[1]));
+    Node u = rewrite(nm->mkNode(SET_UNION, n[0], n[1]));
     if (!d_state.hasTerm(u))
     {
       u = Node::null();
@@ -489,7 +490,7 @@ void CardinalityExtension::checkCardCyclesRec(Node eqc,
                 << "Sibling " << sib[si] << " is already empty." << std::endl;
           }
         }
-        if (!is_union && nk == INTERSECTION && !u.isNull())
+        if (!is_union && nk == SET_INTERSECTION && !u.isNull())
         {
           // union is equal to other parent
           if (!d_state.areEqual(u, n[1 - e]))
@@ -577,7 +578,7 @@ void CardinalityExtension::checkCardCyclesRec(Node eqc,
                               << " are equal, ids = " << card_parent_ids[l]
                               << " " << card_parent_ids[k] << std::endl;
           dup = true;
-          if (n.getKind() != INTERSECTION)
+          if (n.getKind() != SET_INTERSECTION)
           {
             continue;
           }
@@ -816,7 +817,7 @@ void CardinalityExtension::checkNormalForm(Node eqc,
               Node r1 = e == 0 ? o0 : o1;
               Node r2 = e == 0 ? o1 : o0;
               // check if their intersection exists modulo equality
-              Node r1r2i = d_state.getBinaryOpTerm(INTERSECTION, r1, r2);
+              Node r1r2i = d_state.getBinaryOpTerm(SET_INTERSECTION, r1, r2);
               if (!r1r2i.isNull())
               {
                 Trace("sets-nf-debug")
@@ -837,7 +838,7 @@ void CardinalityExtension::checkNormalForm(Node eqc,
               Assert(o0 != o1);
               Node kca = d_treg.getProxy(o0);
               Node kcb = d_treg.getProxy(o1);
-              Node intro = rewrite(nm->mkNode(INTERSECTION, kca, kcb));
+              Node intro = rewrite(nm->mkNode(SET_INTERSECTION, kca, kcb));
               Trace("sets-nf") << "   Intro split : " << o0 << " against " << o1
                                << ", term is " << intro << std::endl;
               intro_sets.push_back(intro);
@@ -965,12 +966,12 @@ void CardinalityExtension::checkMinCard()
     }
     else
     {
-      cardTerm = nm->mkNode(CARD, eqc);
+      cardTerm = nm->mkNode(SET_CARD, eqc);
     }
     for (const std::pair<const Node, Node>& itmm : pmemsE)
     {
       members.push_back(itmm.first);
-      exp.push_back(nm->mkNode(MEMBER, itmm.first, cardTerm[0]));
+      exp.push_back(nm->mkNode(SET_MEMBER, itmm.first, cardTerm[0]));
     }
     if (members.size() > 1)
     {
index d3f9971d60d81d48fac41fb3f17365020310c2fe..21d5e6e37171320f196000ce146189252a45d3e2 100644 (file)
@@ -35,7 +35,7 @@ namespace sets {
  * This class implements a variant of the procedure from Bansal et al, IJCAR
  * 2016. It is used during a full effort check in the following way:
  *    reset(); { registerTerm(n,lemmas); | n in CardTerms }  check();
- * where CardTerms is the set of all applications of CARD in the current
+ * where CardTerms is the set of all applications of SET_CARD in the current
  * context.
  *
  * The remaining public methods are used during model construction, i.e.
@@ -85,7 +85,7 @@ class CardinalityExtension : protected EnvObj
   /** register term
    *
    * Register that the term n exists in the current context, where n is an
-   * application of CARD.
+   * application of SET_CARD.
    */
   void registerTerm(Node n);
   /** check
index 96705c029347173832f24fd8e88bcd9b7d4e46a5..de2acfa672de5864bfb594392fec4fe2439c7ccc 100644 (file)
@@ -86,7 +86,7 @@ bool InferenceManager::assertFactRec(Node fact, InferenceId id, Node exp, int in
     return false;
   }
   // things we can assert to equality engine
-  if (atom.getKind() == MEMBER
+  if (atom.getKind() == SET_MEMBER
       || (atom.getKind() == EQUAL && atom[0].getType().isSet()))
   {
     // send to equality engine
index 4bde524f75dfbfb6a503432f832040ebb747bd76..f5ed7cd872671437a5a815e7d512a63617798ed3 100644 (file)
@@ -15,7 +15,7 @@ properties parametric
 properties check presolve
 
 # constants
-constant EMPTYSET \
+constant SET_EMPTY\
   class \
   EmptySet \
   ::cvc5::EmptySetHashFunction \
@@ -36,25 +36,25 @@ enumerator SET_TYPE \
     "theory/sets/theory_sets_type_enumerator.h"
 
 # operators
-operator UNION          2  "set union"
-operator INTERSECTION   2  "set intersection"
-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_UNION          2  "set union"
+operator SET_INTERSECTION   2  "set intersection"
+operator SET_MINUS          2  "set subtraction"
+operator SET_SUBSET         2  "subset predicate; first parameter a subset of second"
+operator SET_MEMBER         2  "set membership predicate; first parameter a member of second"
 
-constant SINGLETON_OP \
+constant SET_SINGLETON_OP \
   class \
-  SingletonOp \
-  ::cvc5::SingletonOpHashFunction \
+  SetSingletonOp \
+  ::cvc5::SetSingletonOpHashFunction \
   "theory/sets/singleton_op.h" \
   "operator for singletons; payload is an instance of the cvc5::SingletonOp class"
-parameterized SINGLETON SINGLETON_OP 1  \
+parameterized SET_SINGLETON SET_SINGLETON_OP 1  \
 "constructs a set of a single element. First parameter is a SingletonOp. Second is a term"
 
-operator INSERT         2: "set obtained by inserting elements (first N-1 parameters) into a set (the last parameter)"
-operator CARD           1  "set cardinality operator"
-operator COMPLEMENT     1  "set COMPLEMENT (with respect to finite universe)"
-nullaryoperator UNIVERSE_SET "(finite) universe set, all set variables must be interpreted as subsets of it."
+operator SET_INSERT         2: "set obtained by inserting elements (first N-1 parameters) into a set (the last parameter)"
+operator SET_CARD           1  "set cardinality operator"
+operator SET_COMPLEMENT     1  "set complement (with respect to finite universe)"
+nullaryoperator SET_UNIVERSE "(finite) universe set, all set variables must be interpreted as subsets of it."
 
 # A set comprehension is specified by:
 # (1) a bound variable list x1 ... xn,
@@ -69,48 +69,48 @@ nullaryoperator UNIVERSE_SET "(finite) universe set, all set variables must be i
 # that there are infinitely many y that satisfy the left hand side of the
 # equivalence above. The same limitation occurs more generally when combining
 # finite sets with quantified formulas.
-operator COMPREHENSION 3 "set comprehension specified by a bound variable list, a predicate, and a term."
+operator SET_COMPREHENSION 3 "set comprehension specified by a bound variable list, a predicate, and a term."
 
 # The operator choose returns an element from a given set.
 # If set A = {x}, then the term (choose A) is equivalent to the term x.
 # If the set is empty, then (choose A) is an arbitrary value.
 # If the set has cardinality > 1, then (choose A) will deterministically return an element in A.
-operator CHOOSE        1  "return an element in the set given as a parameter"
+operator SET_CHOOSE        1  "return an element in the set given as a parameter"
 
 # The operator is_singleton returns whether the given set is a singleton
-operator IS_SINGLETON  1  "return whether the given set is a singleton"
+operator SET_IS_SINGLETON  1  "return whether the given set is a singleton"
 
-operator JOIN             2  "set join"
-operator PRODUCT          2  "set cartesian product"
-operator TRANSPOSE        1  "set transpose"
-operator TCLOSURE      1  "set transitive closure"
-operator JOIN_IMAGE       2  "set join image"
-operator IDEN             1  "set identity"
+operator RELATION_JOIN                    2  "relation join"
+operator RELATION_PRODUCT         2  "relation cartesian product"
+operator RELATION_TRANSPOSE       1  "relation transpose"
+operator RELATION_TCLOSURE      1  "relation transitive closure"
+operator RELATION_JOIN_IMAGE      2  "relation join image"
+operator RELATION_IDEN                    1  "relation identity"
 
-typerule UNION          ::cvc5::theory::sets::SetsBinaryOperatorTypeRule
-typerule INTERSECTION   ::cvc5::theory::sets::SetsBinaryOperatorTypeRule
-typerule SETMINUS       ::cvc5::theory::sets::SetsBinaryOperatorTypeRule
-typerule SUBSET         ::cvc5::theory::sets::SubsetTypeRule
-typerule MEMBER         ::cvc5::theory::sets::MemberTypeRule
-typerule SINGLETON_OP   "SimpleTypeRule<RBuiltinOperator>"
-typerule SINGLETON      ::cvc5::theory::sets::SingletonTypeRule
-typerule EMPTYSET       ::cvc5::theory::sets::EmptySetTypeRule
-typerule INSERT         ::cvc5::theory::sets::InsertTypeRule
-typerule CARD           ::cvc5::theory::sets::CardTypeRule
-typerule COMPLEMENT     ::cvc5::theory::sets::ComplementTypeRule
-typerule UNIVERSE_SET   ::cvc5::theory::sets::UniverseSetTypeRule
-typerule COMPREHENSION  ::cvc5::theory::sets::ComprehensionTypeRule
-typerule CHOOSE         ::cvc5::theory::sets::ChooseTypeRule
-typerule IS_SINGLETON   ::cvc5::theory::sets::IsSingletonTypeRule
+typerule SET_UNION          ::cvc5::theory::sets::SetsBinaryOperatorTypeRule
+typerule SET_INTERSECTION   ::cvc5::theory::sets::SetsBinaryOperatorTypeRule
+typerule SET_MINUS          ::cvc5::theory::sets::SetsBinaryOperatorTypeRule
+typerule SET_SUBSET         ::cvc5::theory::sets::SubsetTypeRule
+typerule SET_MEMBER         ::cvc5::theory::sets::MemberTypeRule
+typerule SET_SINGLETON_OP   "SimpleTypeRule<RBuiltinOperator>"
+typerule SET_SINGLETON      ::cvc5::theory::sets::SingletonTypeRule
+typerule SET_EMPTY          ::cvc5::theory::sets::EmptySetTypeRule
+typerule SET_INSERT         ::cvc5::theory::sets::InsertTypeRule
+typerule SET_CARD           ::cvc5::theory::sets::CardTypeRule
+typerule SET_COMPLEMENT     ::cvc5::theory::sets::ComplementTypeRule
+typerule SET_UNIVERSE       ::cvc5::theory::sets::UniverseSetTypeRule
+typerule SET_COMPREHENSION  ::cvc5::theory::sets::ComprehensionTypeRule
+typerule SET_CHOOSE         ::cvc5::theory::sets::ChooseTypeRule
+typerule SET_IS_SINGLETON   ::cvc5::theory::sets::IsSingletonTypeRule
 
-typerule JOIN                  ::cvc5::theory::sets::RelBinaryOperatorTypeRule
-typerule PRODUCT               ::cvc5::theory::sets::RelBinaryOperatorTypeRule
-typerule TRANSPOSE             ::cvc5::theory::sets::RelTransposeTypeRule
-typerule TCLOSURE          ::cvc5::theory::sets::RelTransClosureTypeRule
-typerule JOIN_IMAGE        ::cvc5::theory::sets::JoinImageTypeRule
-typerule IDEN                  ::cvc5::theory::sets::RelIdenTypeRule
+typerule RELATION_JOIN                         ::cvc5::theory::sets::RelBinaryOperatorTypeRule
+typerule RELATION_PRODUCT              ::cvc5::theory::sets::RelBinaryOperatorTypeRule
+typerule RELATION_TRANSPOSE            ::cvc5::theory::sets::RelTransposeTypeRule
+typerule RELATION_TCLOSURE         ::cvc5::theory::sets::RelTransClosureTypeRule
+typerule RELATION_JOIN_IMAGE       ::cvc5::theory::sets::JoinImageTypeRule
+typerule RELATION_IDEN                         ::cvc5::theory::sets::RelIdenTypeRule
 
-construle UNION         ::cvc5::theory::sets::SetsBinaryOperatorTypeRule
-construle SINGLETON     ::cvc5::theory::sets::SingletonTypeRule
+construle SET_UNION         ::cvc5::theory::sets::SetsBinaryOperatorTypeRule
+construle SET_SINGLETON     ::cvc5::theory::sets::SingletonTypeRule
 
 endtheory
index 35d06a510fe76fd70b48d708da7de694550534ac..641afde957538e4de4a3638762f55dcaf21e0ff7 100644 (file)
@@ -51,7 +51,7 @@ class NormalForm {
       while (++it != elements.end())
       {
         Node singleton = nm->mkSingleton(elementType, *it);
-        cur = nm->mkNode(kind::UNION, singleton, cur);
+        cur = nm->mkNode(kind::SET_UNION, singleton, cur);
       }
       return cur;
     }
@@ -69,19 +69,24 @@ class NormalForm {
   static bool checkNormalConstant(TNode n) {
     Debug("sets-checknormal") << "[sets-checknormal] checkNormal " << n << " :"
                               << std::endl;
-    if (n.getKind() == kind::EMPTYSET) {
+    if (n.getKind() == kind::SET_EMPTY)
+    {
       return true;
-    } else if (n.getKind() == kind::SINGLETON) {
+    }
+    else if (n.getKind() == kind::SET_SINGLETON)
+    {
       return n[0].isConst();
-    } else if (n.getKind() == kind::UNION) {
+    }
+    else if (n.getKind() == kind::SET_UNION)
+    {
       // assuming (union {SmallestNodeID} ... (union {BiggerNodeId} ...
 
       Node orig = n;
       TNode prvs;
       // check intermediate nodes
-      while (n.getKind() == kind::UNION)
+      while (n.getKind() == kind::SET_UNION)
       {
-        if (n[0].getKind() != kind::SINGLETON || !n[0][0].isConst())
+        if (n[0].getKind() != kind::SET_SINGLETON || !n[0][0].isConst())
         {
           // not a constant
           Trace("sets-isconst") << "sets::isConst: " << orig << " not due to "
@@ -103,7 +108,7 @@ class NormalForm {
       }
 
       // check SmallestNodeID is smallest
-      if (n.getKind() != kind::SINGLETON || !n[0].isConst())
+      if (n.getKind() != kind::SET_SINGLETON || !n[0].isConst())
       {
         Trace("sets-isconst") << "sets::isConst: " << orig
                               << " not due to final " << n << std::endl;
@@ -133,15 +138,17 @@ class NormalForm {
   static std::set<Node> getElementsFromNormalConstant(TNode n) {
     Assert(n.isConst());
     std::set<Node> ret;
-    if (n.getKind() == kind::EMPTYSET) {
+    if (n.getKind() == kind::SET_EMPTY)
+    {
       return ret;
     }
-    while (n.getKind() == kind::UNION) {
-      Assert(n[0].getKind() == kind::SINGLETON);
+    while (n.getKind() == kind::SET_UNION)
+    {
+      Assert(n[0].getKind() == kind::SET_SINGLETON);
       ret.insert(ret.begin(), n[0][0]);
       n = n[1];
     }
-    Assert(n.getKind() == kind::SINGLETON);
+    Assert(n.getKind() == kind::SET_SINGLETON);
     ret.insert(n[0]);
     return ret;
   }
index 06d144f725ef0c1f7480f7410253f75b25da1bed..fb64b01cdb987ed8faf92bb9c0d149a3d2f7449c 100644 (file)
 
 namespace cvc5 {
 
-std::ostream& operator<<(std::ostream& out, const SingletonOp& op)
+std::ostream& operator<<(std::ostream& out, const SetSingletonOp& op)
 {
   return out << "(singleton_op " << op.getType() << ')';
 }
 
-size_t SingletonOpHashFunction::operator()(const SingletonOp& op) const
+size_t SetSingletonOpHashFunction::operator()(const SetSingletonOp& op) const
 {
   return std::hash<TypeNode>()(op.getType());
 }
 
-SingletonOp::SingletonOp(const TypeNode& elementType)
+SetSingletonOp::SetSingletonOp(const TypeNode& elementType)
     : d_type(new TypeNode(elementType))
 {
 }
 
-SingletonOp::SingletonOp(const SingletonOp& op)
+SetSingletonOp::SetSingletonOp(const SetSingletonOp& op)
     : d_type(new TypeNode(op.getType()))
 {
 }
 
-const TypeNode& SingletonOp::getType() const { return *d_type; }
+const TypeNode& SetSingletonOp::getType() const { return *d_type; }
 
-bool SingletonOp::operator==(const SingletonOp& op) const
+bool SetSingletonOp::operator==(const SetSingletonOp& op) const
 {
   return getType() == op.getType();
 }
index 41dd7e51e399dd9937f728b9baf90b1f45098b50..cde4709d9f23560237f2d85adb015314a724b9c9 100644 (file)
@@ -25,39 +25,38 @@ namespace cvc5 {
 class TypeNode;
 
 /**
- * The class is an operator for kind SINGLETON used to construct singleton sets.
- * It specifies the type of the single element especially when it is a constant.
- * e.g. the type of rational 1 is Int, however
- * (singleton (singleton_op Real) 1) is of type (Set Real), not (Set Int).
- * Note that the type passed to the constructor is the element's type, not the
- * set type.
+ * The class is an operator for kind SET_SINGLETON used to construct singleton
+ * sets. It specifies the type of the single element especially when it is a
+ * constant. e.g. the type of rational 1 is Int, however (singleton
+ * (singleton_op Real) 1) is of type (Set Real), not (Set Int). Note that the
+ * type passed to the constructor is the element's type, not the set type.
  */
-class SingletonOp
+class SetSingletonOp
 {
  public:
-  SingletonOp(const TypeNode& elementType);
-  SingletonOp(const SingletonOp& op);
+  SetSingletonOp(const TypeNode& elementType);
+  SetSingletonOp(const SetSingletonOp& op);
 
   /** return the type of the current object */
   const TypeNode& getType() const;
 
-  bool operator==(const SingletonOp& op) const;
+  bool operator==(const SetSingletonOp& op) const;
 
  private:
-  SingletonOp();
+  SetSingletonOp();
   /** a pointer to the type of the singleton element */
   std::unique_ptr<TypeNode> d_type;
-}; /* class Singleton */
+}; /* class SetSingletonOp */
 
-std::ostream& operator<<(std::ostream& out, const SingletonOp& op);
+std::ostream& operator<<(std::ostream& out, const SetSingletonOp& op);
 
 /**
  * Hash function for the SingletonHashFunction objects.
  */
-struct SingletonOpHashFunction
+struct SetSingletonOpHashFunction
 {
-  size_t operator()(const SingletonOp& op) const;
-}; /* struct SingletonOpHashFunction */
+  size_t operator()(const SetSingletonOp& op) const;
+}; /* struct SetSingletonOpHashFunction */
 
 }  // namespace cvc5
 
index d9fb3073571f489c69ae5cba1f842fe37db79fad..023a8a6af98ab21d6b25e7d9a343995c6894a5a1 100644 (file)
@@ -63,7 +63,7 @@ void SolverState::registerEqc(TypeNode tn, Node r)
 void SolverState::registerTerm(Node r, TypeNode tnn, Node n)
 {
   Kind nk = n.getKind();
-  if (nk == MEMBER)
+  if (nk == SET_MEMBER)
   {
     if (r.isConst())
     {
@@ -81,7 +81,7 @@ void SolverState::registerTerm(Node r, TypeNode tnn, Node n)
         if (d_members_index[s].find(x) == d_members_index[s].end())
         {
           d_members_index[s][x] = n;
-          d_op_list[MEMBER].push_back(n);
+          d_op_list[SET_MEMBER].push_back(n);
         }
       }
       else
@@ -90,28 +90,28 @@ void SolverState::registerTerm(Node r, TypeNode tnn, Node n)
       }
     }
   }
-  else if (nk == SINGLETON || nk == UNION || nk == INTERSECTION
-           || nk == SETMINUS || nk == EMPTYSET || nk == UNIVERSE_SET)
+  else if (nk == SET_SINGLETON || nk == SET_UNION || nk == SET_INTERSECTION
+           || nk == SET_MINUS || nk == SET_EMPTY || nk == SET_UNIVERSE)
   {
-    if (nk == SINGLETON)
+    if (nk == SET_SINGLETON)
     {
       Node re = d_ee->getRepresentative(n[0]);
       if (d_singleton_index.find(re) == d_singleton_index.end())
       {
         d_singleton_index[re] = n;
         d_eqc_singleton[r] = n;
-        d_op_list[SINGLETON].push_back(n);
+        d_op_list[SET_SINGLETON].push_back(n);
       }
       else
       {
         d_congruent[n] = d_singleton_index[re];
       }
     }
-    else if (nk == EMPTYSET)
+    else if (nk == SET_EMPTY)
     {
       d_eqc_emptyset[tnn] = r;
     }
-    else if (nk == UNIVERSE_SET)
+    else if (nk == SET_UNIVERSE)
     {
       Assert(options().sets.setsExt);
       d_eqc_univset[tnn] = r;
@@ -135,7 +135,7 @@ void SolverState::registerTerm(Node r, TypeNode tnn, Node n)
     d_nvar_sets[r].push_back(n);
     Trace("sets-debug2") << "Non-var-set[" << r << "] : " << n << std::endl;
   }
-  else if (nk == COMPREHENSION)
+  else if (nk == SET_COMPREHENSION)
   {
     d_compSets[r].push_back(n);
     d_allCompSets.push_back(n);
@@ -235,7 +235,7 @@ bool SolverState::isEntailed(Node n, bool polarity) const
     }
     return areDisequal(n[0], n[1]);
   }
-  else if (n.getKind() == MEMBER)
+  else if (n.getKind() == SET_MEMBER)
   {
     if (areEqual(n, polarity ? d_true : d_false))
     {
@@ -533,14 +533,14 @@ bool SolverState::merge(TNode t1,
   for (size_t i = 0, nmem2 = (*mem_i2).second; i < nmem2; i++)
   {
     Assert(i < d_members_data[t2].size()
-           && d_members_data[t2][i].getKind() == MEMBER);
+           && d_members_data[t2][i].getKind() == SET_MEMBER);
     Node m2 = d_members_data[t2][i];
     // check if redundant
     bool add = true;
     for (size_t j = 0; j < n_members; j++)
     {
       Assert(j < d_members_data[t1].size()
-             && d_members_data[t1][j].getKind() == MEMBER);
+             && d_members_data[t1][j].getKind() == SET_MEMBER);
       if (areEqual(m2[0], d_members_data[t1][j][0]))
       {
         add = false;
@@ -555,7 +555,7 @@ bool SolverState::merge(TNode t1,
         NodeManager* nm = NodeManager::currentNM();
         Assert(areEqual(m2[1], cset));
         Node exp = nm->mkNode(AND, m2[1].eqNode(cset), m2);
-        if (cset.getKind() == SINGLETON)
+        if (cset.getKind() == SET_SINGLETON)
         {
           if (cset[0] != m2[0])
           {
index ff9bc8bf9c7d771c6c0049514238d3d32073b817..725e21a14abe1a78222eae5c1c0a09d7c28178e5 100644 (file)
@@ -138,8 +138,8 @@ class SolverState : public TheoryState
   bool hasMembers(Node r) const;
   /** Get binary operator index
    *
-   * This returns a mapping from binary operator kinds (INTERSECT, SETMINUS,
-   * UNION) to index of terms of that kind. Each kind k maps to a map whose
+   * This returns a mapping from binary operator kinds (INTERSECT, SET_MINUS,
+   * SET_UNION) to index of terms of that kind. Each kind k maps to a map whose
    * entries are of the form [r1 -> r2 -> t], where t is a term in the current
    * context, and t is of the form <k>(t1,t2) where t1=r1 and t2=r2 hold in the
    * current context. The term t is the representative of its congruence class.
@@ -220,7 +220,7 @@ class SolverState : public TheoryState
    */
   std::map<Node, std::map<Node, Node> > d_pol_mems[2];
   // -------------------------------- term indices
-  /** Term index for MEMBER
+  /** Term index for SET_MEMBER
    *
    * A term index maps equivalence class representatives to the representative
    * of their congruence class.
@@ -231,9 +231,9 @@ class SolverState : public TheoryState
    * class, and r1=t1 and r2=t2 hold in the current context.
    */
   std::map<Node, std::map<Node, Node> > d_members_index;
-  /** Term index for SINGLETON */
+  /** Term index for SET_SINGLETON */
   std::map<Node, Node> d_singleton_index;
-  /** Indices for the binary kinds INTERSECT, SETMINUS and UNION. */
+  /** Indices for the binary kinds INTERSECT, SET_MINUS and SET_UNION. */
   std::map<Kind, std::map<Node, std::map<Node, Node> > > d_bop_index;
   /** A list of comprehension sets */
   std::vector<Node> d_allCompSets;
index f1fe1c6b27945c7ed7d5a7848590977b17e6fc90..41fe0b4c81e1649bcb3c5ce1c9ee784e17cbd551 100644 (file)
@@ -44,8 +44,8 @@ TermRegistry::TermRegistry(Env& env,
 Node TermRegistry::getProxy(Node n)
 {
   Kind nk = n.getKind();
-  if (nk != EMPTYSET && nk != SINGLETON && nk != INTERSECTION && nk != SETMINUS
-      && nk != UNION && nk != UNIVERSE_SET)
+  if (nk != SET_EMPTY && nk != SET_SINGLETON && nk != SET_INTERSECTION
+      && nk != SET_MINUS && nk != SET_UNION && nk != SET_UNIVERSE)
   {
     return n;
   }
@@ -62,9 +62,9 @@ Node TermRegistry::getProxy(Node n)
   d_proxy_to_term[k] = n;
   Node eq = k.eqNode(n);
   sendSimpleLemmaInternal(eq, InferenceId::SETS_PROXY);
-  if (nk == SINGLETON)
+  if (nk == SET_SINGLETON)
   {
-    Node slem = nm->mkNode(MEMBER, n[0], k);
+    Node slem = nm->mkNode(SET_MEMBER, n[0], k);
     sendSimpleLemmaInternal(slem, InferenceId::SETS_PROXY_SINGLETON);
   }
   return k;
@@ -90,7 +90,7 @@ Node TermRegistry::getUnivSet(TypeNode tn)
     return it->second;
   }
   NodeManager* nm = NodeManager::currentNM();
-  Node n = nm->mkNullaryOperator(tn, UNIVERSE_SET);
+  Node n = nm->mkNullaryOperator(tn, SET_UNIVERSE);
   for (it = d_univset.begin(); it != d_univset.end(); ++it)
   {
     Node n1;
@@ -107,7 +107,7 @@ Node TermRegistry::getUnivSet(TypeNode tn)
     }
     if (!n1.isNull())
     {
-      Node ulem = nm->mkNode(SUBSET, n1, n2);
+      Node ulem = nm->mkNode(SET_SUBSET, n1, n2);
       Trace("sets-lemma") << "Sets::Lemma : " << ulem << " by univ-type"
                           << std::endl;
       d_im.lemma(ulem, InferenceId::SETS_UNIV_TYPE);
index 3cb6c853c12aadec76c3a5f7f30758da669c61a2..b2eb80f758e45b874154c30ff756789d930fb63b 100644 (file)
@@ -66,30 +66,30 @@ void TheorySets::finishInit()
 {
   Assert(d_equalityEngine != nullptr);
 
-  d_valuation.setUnevaluatedKind(COMPREHENSION);
+  d_valuation.setUnevaluatedKind(SET_COMPREHENSION);
   // choice is used to eliminate witness
   d_valuation.setUnevaluatedKind(WITNESS);
   // Universe set is not evaluated. This is moreover important for ensuring that
   // we do not eliminate terms whose value involves the universe set.
-  d_valuation.setUnevaluatedKind(UNIVERSE_SET);
+  d_valuation.setUnevaluatedKind(SET_UNIVERSE);
 
   // functions we are doing congruence over
-  d_equalityEngine->addFunctionKind(SINGLETON);
-  d_equalityEngine->addFunctionKind(UNION);
-  d_equalityEngine->addFunctionKind(INTERSECTION);
-  d_equalityEngine->addFunctionKind(SETMINUS);
-  d_equalityEngine->addFunctionKind(MEMBER);
-  d_equalityEngine->addFunctionKind(SUBSET);
+  d_equalityEngine->addFunctionKind(SET_SINGLETON);
+  d_equalityEngine->addFunctionKind(SET_UNION);
+  d_equalityEngine->addFunctionKind(SET_INTERSECTION);
+  d_equalityEngine->addFunctionKind(SET_MINUS);
+  d_equalityEngine->addFunctionKind(SET_MEMBER);
+  d_equalityEngine->addFunctionKind(SET_SUBSET);
   // relation operators
-  d_equalityEngine->addFunctionKind(PRODUCT);
-  d_equalityEngine->addFunctionKind(JOIN);
-  d_equalityEngine->addFunctionKind(TRANSPOSE);
-  d_equalityEngine->addFunctionKind(TCLOSURE);
-  d_equalityEngine->addFunctionKind(JOIN_IMAGE);
-  d_equalityEngine->addFunctionKind(IDEN);
+  d_equalityEngine->addFunctionKind(RELATION_PRODUCT);
+  d_equalityEngine->addFunctionKind(RELATION_JOIN);
+  d_equalityEngine->addFunctionKind(RELATION_TRANSPOSE);
+  d_equalityEngine->addFunctionKind(RELATION_TCLOSURE);
+  d_equalityEngine->addFunctionKind(RELATION_JOIN_IMAGE);
+  d_equalityEngine->addFunctionKind(RELATION_IDEN);
   d_equalityEngine->addFunctionKind(APPLY_CONSTRUCTOR);
   // we do congruence over cardinality
-  d_equalityEngine->addFunctionKind(CARD);
+  d_equalityEngine->addFunctionKind(SET_CARD);
 
   // finish initialization internally
   d_internal->finishInit();
@@ -133,8 +133,8 @@ void TheorySets::preRegisterTerm(TNode node)
 TrustNode TheorySets::ppRewrite(TNode n, std::vector<SkolemLemma>& lems)
 {
   Kind nk = n.getKind();
-  if (nk == UNIVERSE_SET || nk == COMPLEMENT || nk == JOIN_IMAGE
-      || nk == COMPREHENSION)
+  if (nk == SET_UNIVERSE || nk == SET_COMPLEMENT || nk == RELATION_JOIN_IMAGE
+      || nk == SET_COMPREHENSION)
   {
     if (!options().sets.setsExt)
     {
@@ -144,7 +144,7 @@ TrustNode TheorySets::ppRewrite(TNode n, std::vector<SkolemLemma>& lems)
       throw LogicException(ss.str());
     }
   }
-  if (nk == COMPREHENSION)
+  if (nk == SET_COMPREHENSION)
   {
     // set comprehension is an implicit quantifier, require it in the logic
     if (!logicInfo().isQuantified())
index a87466fabc94781bbf8d184c9b1cb0231f0a8125..2032d3ba5bfed3817f116709f58418202d6180ac 100644 (file)
@@ -78,7 +78,7 @@ void TheorySetsPrivate::finishInit()
 
 void TheorySetsPrivate::eqNotifyNewClass(TNode t)
 {
-  if (t.getKind() == kind::SINGLETON || t.getKind() == kind::EMPTYSET)
+  if (t.getKind() == kind::SET_SINGLETON || t.getKind() == kind::SET_EMPTY)
   {
     EqcInfo* e = getOrMakeEqcInfo(t, true);
     e->d_singleton = t;
@@ -283,12 +283,12 @@ void TheorySetsPrivate::fullEffortCheck()
         // register it with the state
         d_state.registerTerm(eqc, tnn, n);
         Kind nk = n.getKind();
-        if (nk == kind::SINGLETON)
+        if (nk == kind::SET_SINGLETON)
         {
           // ensure the proxy has been introduced
           d_treg.getProxy(n);
         }
-        else if (nk == kind::CARD)
+        else if (nk == kind::SET_CARD)
         {
           d_card_enabled = true;
           // register it with the cardinality solver
@@ -457,7 +457,7 @@ void TheorySetsPrivate::checkDownwardsClosure()
               if (!options().sets.setsProxyLemmas)
               {
                 Node nmem = NodeManager::currentNM()->mkNode(
-                    kind::MEMBER, mem[0], eq_set);
+                    kind::SET_MEMBER, mem[0], eq_set);
                 nmem = rewrite(nmem);
                 std::vector<Node> exp;
                 exp.push_back(mem);
@@ -472,10 +472,10 @@ void TheorySetsPrivate::checkDownwardsClosure()
               {
                 // use proxy set
                 Node k = d_treg.getProxy(eq_set);
-                Node pmem =
-                    NodeManager::currentNM()->mkNode(kind::MEMBER, mem[0], k);
+                Node pmem = NodeManager::currentNM()->mkNode(
+                    kind::SET_MEMBER, mem[0], k);
                 Node nmem = NodeManager::currentNM()->mkNode(
-                    kind::MEMBER, mem[0], eq_set);
+                    kind::SET_MEMBER, mem[0], eq_set);
                 nmem = rewrite(nmem);
                 std::vector<Node> exp;
                 if (d_state.areEqual(mem, pmem))
@@ -514,7 +514,7 @@ void TheorySetsPrivate::checkUpwardsClosure()
       Node r1 = it.first;
       // see if there are members in first argument r1
       const std::map<Node, Node>& r1mem = d_state.getMembers(r1);
-      if (!r1mem.empty() || k == kind::UNION)
+      if (!r1mem.empty() || k == kind::SET_UNION)
       {
         for (const std::pair<const Node, Node>& it2 : it.second)
         {
@@ -523,7 +523,7 @@ void TheorySetsPrivate::checkUpwardsClosure()
           // see if there are members in second argument
           const std::map<Node, Node>& r2mem = d_state.getMembers(r2);
           const std::map<Node, Node>& r2nmem = d_state.getNegativeMembers(r2);
-          if (!r2mem.empty() || k != kind::INTERSECTION)
+          if (!r2mem.empty() || k != kind::SET_INTERSECTION)
           {
             Trace("sets-debug")
                 << "Checking " << term << ", members = " << (!r1mem.empty())
@@ -542,11 +542,11 @@ void TheorySetsPrivate::checkUpwardsClosure()
                 d_state.addEqualityToExp(term[0], itm1m.second[1], exp);
                 bool valid = false;
                 int inferType = 0;
-                if (k == kind::UNION)
+                if (k == kind::SET_UNION)
                 {
                   valid = true;
                 }
-                else if (k == kind::INTERSECTION)
+                else if (k == kind::SET_INTERSECTION)
                 {
                   // conclude x is in term
                   // if also existing in members of r2
@@ -564,7 +564,7 @@ void TheorySetsPrivate::checkUpwardsClosure()
                     // unknown, split
                     if (r2nmem.find(xr) == r2nmem.end())
                     {
-                      exp.push_back(nm->mkNode(kind::MEMBER, x, term[1]));
+                      exp.push_back(nm->mkNode(kind::SET_MEMBER, x, term[1]));
                       valid = true;
                       inferType = 1;
                     }
@@ -572,14 +572,14 @@ void TheorySetsPrivate::checkUpwardsClosure()
                 }
                 else
                 {
-                  Assert(k == kind::SETMINUS);
+                  Assert(k == kind::SET_MINUS);
                   std::map<Node, Node>::const_iterator itm = r2mem.find(xr);
                   if (itm == r2mem.end())
                   {
                     // must add lemma for set minus since non-membership in this
                     // case is not explained
                     exp.push_back(
-                        nm->mkNode(kind::MEMBER, x, term[1]).negate());
+                        nm->mkNode(kind::SET_MEMBER, x, term[1]).negate());
                     valid = true;
                     inferType = 1;
                   }
@@ -590,7 +590,7 @@ void TheorySetsPrivate::checkUpwardsClosure()
                   if (!d_state.isMember(x, rr))
                   {
                     Node kk = d_treg.getProxy(term);
-                    Node fact = nm->mkNode(kind::MEMBER, x, kk);
+                    Node fact = nm->mkNode(kind::SET_MEMBER, x, kk);
                     d_im.assertInference(
                         fact, InferenceId::SETS_UP_CLOSURE, exp, inferType);
                     if (d_state.isInConflict())
@@ -603,7 +603,7 @@ void TheorySetsPrivate::checkUpwardsClosure()
                                     << itm1m.second << std::endl;
               }
             }
-            if (k == kind::UNION)
+            if (k == kind::SET_UNION)
             {
               if (!r2mem.empty())
               {
@@ -618,7 +618,7 @@ void TheorySetsPrivate::checkUpwardsClosure()
                     exp.push_back(itm2m.second);
                     d_state.addEqualityToExp(term[1], itm2m.second[1], exp);
                     Node r = d_treg.getProxy(term);
-                    Node fact = nm->mkNode(kind::MEMBER, x, r);
+                    Node fact = nm->mkNode(kind::SET_MEMBER, x, r);
                     d_im.assertInference(fact, InferenceId::SETS_UP_CLOSURE_2, exp);
                     if (d_state.isInConflict())
                     {
@@ -673,14 +673,14 @@ void TheorySetsPrivate::checkUpwardsClosure()
             }
             if (!u.isNull())
             {
-              Assert(it2.second.getKind() == kind::MEMBER);
+              Assert(it2.second.getKind() == kind::SET_MEMBER);
               std::vector<Node> exp;
               exp.push_back(it2.second);
               if (v != it2.second[1])
               {
                 exp.push_back(v.eqNode(it2.second[1]));
               }
-              Node fact = nm->mkNode(kind::MEMBER, it2.second[0], u);
+              Node fact = nm->mkNode(kind::SET_MEMBER, it2.second[0], u);
               d_im.assertInference(fact, InferenceId::SETS_UP_UNIV, exp);
               if (d_state.isInConflict())
               {
@@ -734,8 +734,8 @@ void TheorySetsPrivate::checkDisequalities()
     TypeNode elementType = deq[0].getType().getSetElementType();
     Node x = d_skCache.mkTypedSkolemCached(
         elementType, deq[0], deq[1], SkolemCache::SK_DISEQUAL, "sde");
-    Node mem1 = nm->mkNode(MEMBER, x, deq[0]);
-    Node mem2 = nm->mkNode(MEMBER, x, deq[1]);
+    Node mem1 = nm->mkNode(SET_MEMBER, x, deq[0]);
+    Node mem2 = nm->mkNode(SET_MEMBER, x, deq[1]);
     Node lem = nm->mkNode(OR, deq, nm->mkNode(EQUAL, mem1, mem2).negate());
     lem = rewrite(lem);
     d_im.assertInference(lem, InferenceId::SETS_DEQ, d_true, 1);
@@ -773,7 +773,7 @@ void TheorySetsPrivate::checkReduceComprehensions()
     body = body.substitute(vars.begin(), vars.end(), subs.begin(), subs.end());
     Node bvl = nm->mkNode(BOUND_VAR_LIST, subs);
     body = nm->mkNode(EXISTS, bvl, body);
-    Node mem = nm->mkNode(MEMBER, v, n);
+    Node mem = nm->mkNode(SET_MEMBER, v, n);
     Node lem =
         nm->mkNode(FORALL, nm->mkNode(BOUND_VAR_LIST, v), body.eqNode(mem));
     Trace("sets-comprehension")
@@ -813,7 +813,7 @@ void TheorySetsPrivate::notifyFact(TNode atom, bool polarity, TNode fact)
   {
     return;
   }
-  if (atom.getKind() == kind::MEMBER && polarity)
+  if (atom.getKind() == kind::SET_MEMBER && polarity)
   {
     // check if set has a value, if so, we can propagate
     Node r = d_equalityEngine->getRepresentative(atom[1]);
@@ -825,7 +825,7 @@ void TheorySetsPrivate::notifyFact(TNode atom, bool polarity, TNode fact)
       {
         Node pexp = NodeManager::currentNM()->mkNode(
             kind::AND, atom, atom[1].eqNode(s));
-        if (s.getKind() == kind::SINGLETON)
+        if (s.getKind() == kind::SET_SINGLETON)
         {
           if (s[0] != atom[0])
           {
@@ -870,12 +870,12 @@ void TheorySetsPrivate::addCarePairs(TNodeTrie* t1,
       // not for the shared variables x, y in the care graph.
       // However, this does not apply to the membership operator since the
       // equality or disequality between members affects the number of elements
-      // in a set. Therefore we need to split on (= x y) for kind MEMBER.
+      // in a set. Therefore we need to split on (= x y) for kind SET_MEMBER.
       // Example:
       // Suppose (= (member x S) member( y, S)) is true and there are
       // no other members in S. We would get S = {x} if (= x y) is true.
       // Otherwise we would get S = {x, y}.
-      if (f1.getKind() == MEMBER || !d_state.areEqual(f1, f2))
+      if (f1.getKind() == SET_MEMBER || !d_state.areEqual(f1, f2))
       {
         Trace("sets-cg") << "Check " << f1 << " and " << f2 << std::endl;
         vector<pair<TNode, TNode> > currentPairs;
@@ -984,7 +984,7 @@ void TheorySetsPrivate::computeCareGraph()
   for (const std::pair<const Kind, std::vector<Node> >& it : ol)
   {
     Kind k = it.first;
-    if (k == kind::SINGLETON || k == kind::MEMBER)
+    if (k == kind::SET_SINGLETON || k == kind::SET_MEMBER)
     {
       unsigned n_pairs = 0;
       Trace("sets-cg-summary") << "Compute graph for sets, op=" << k << "..."
@@ -1000,14 +1000,14 @@ void TheorySetsPrivate::computeCareGraph()
         // break into index based on operator, and the type of the element
         // type of the proper set, which notice must be safe wrt subtyping.
         TypeNode tn;
-        if (k == kind::SINGLETON)
+        if (k == kind::SET_SINGLETON)
         {
           // get the type of the singleton set (not the type of its element)
           tn = f1.getType().getSetElementType();
         }
         else
         {
-          Assert (k == kind::MEMBER);
+          Assert(k == kind::SET_MEMBER);
           // get the element type of the set (not the type of the element)
           tn = f1[1].getType().getSetElementType();
         }
@@ -1053,7 +1053,8 @@ bool TheorySetsPrivate::isCareArg(Node n, unsigned a)
   {
     return true;
   }
-  else if ((n.getKind() == kind::MEMBER || n.getKind() == kind::SINGLETON)
+  else if ((n.getKind() == kind::SET_MEMBER
+            || n.getKind() == kind::SET_SINGLETON)
            && a == 0 && n[0].getType().isSet())
   {
     return true;
@@ -1078,11 +1079,11 @@ namespace {
 void traceSetElementsRecursively(stringstream& stream, const Node& set)
 {
   Assert(set.getType().isSet());
-  if (set.getKind() == SINGLETON)
+  if (set.getKind() == SET_SINGLETON)
   {
     stream << set[0] << ", ";
   }
-  if (set.getKind() == UNION)
+  if (set.getKind() == SET_UNION)
   {
     traceSetElementsRecursively(stream, set[0]);
     traceSetElementsRecursively(stream, set[1]);
@@ -1151,7 +1152,7 @@ bool TheorySetsPrivate::collectModelValues(TheoryModel* m,
         d_cardSolver->mkModelValueElementsFor(val, eqc, els, mvals, m);
       }
 
-      Node rep = NormalForm::mkBop(kind::UNION, els, eqc.getType());
+      Node rep = NormalForm::mkBop(kind::SET_UNION, els, eqc.getType());
       rep = rewrite(rep);
       Trace("sets-model") << "* Assign representative of " << eqc << " to "
                           << rep << std::endl;
@@ -1258,7 +1259,7 @@ Node TheorySetsPrivate::explain(TNode literal)
   {
     d_equalityEngine->explainEquality(atom[0], atom[1], polarity, assumptions);
   }
-  else if (atom.getKind() == kind::MEMBER)
+  else if (atom.getKind() == kind::SET_MEMBER)
   {
     d_equalityEngine->explainPredicate(atom, polarity, assumptions);
   }
@@ -1279,13 +1280,13 @@ void TheorySetsPrivate::preRegisterTerm(TNode node)
   switch (node.getKind())
   {
     case kind::EQUAL:
-    case kind::MEMBER:
+    case kind::SET_MEMBER:
     {
       // add trigger predicate for equality and membership
       d_equalityEngine->addTriggerPredicate(node);
     }
     break;
-    case kind::JOIN_IMAGE:
+    case kind::RELATION_JOIN_IMAGE:
     {
       // these are logic exceptions, not type checking exceptions
       if (node[1].getKind() != kind::CONST_RATIONAL)
@@ -1317,8 +1318,8 @@ TrustNode TheorySetsPrivate::ppRewrite(Node node,
 
   switch (node.getKind())
   {
-    case kind::CHOOSE: return expandChooseOperator(node, lems);
-    case kind::IS_SINGLETON: return expandIsSingletonOperator(node);
+    case kind::SET_CHOOSE: return expandChooseOperator(node, lems);
+    case kind::SET_IS_SINGLETON: return expandIsSingletonOperator(node);
     default: return TrustNode::null();
   }
 }
@@ -1326,7 +1327,7 @@ TrustNode TheorySetsPrivate::ppRewrite(Node node,
 TrustNode TheorySetsPrivate::expandChooseOperator(
     const Node& node, std::vector<SkolemLemma>& lems)
 {
-  Assert(node.getKind() == CHOOSE);
+  Assert(node.getKind() == SET_CHOOSE);
 
   // (choose A) is expanded as
   // (witness ((x elementType))
@@ -1346,7 +1347,7 @@ TrustNode TheorySetsPrivate::expandChooseOperator(
   Node equal = witnessVariable.eqNode(apply);
   Node emptySet = nm->mkConst(EmptySet(setType));
   Node isEmpty = set.eqNode(emptySet);
-  Node member = nm->mkNode(MEMBER, witnessVariable, set);
+  Node member = nm->mkNode(SET_MEMBER, witnessVariable, set);
   Node memberAndEqual = member.andNode(equal);
   Node ite = nm->mkNode(ITE, isEmpty, equal, memberAndEqual);
   SkolemManager* sm = nm->getSkolemManager();
@@ -1357,12 +1358,12 @@ TrustNode TheorySetsPrivate::expandChooseOperator(
 
 TrustNode TheorySetsPrivate::expandIsSingletonOperator(const Node& node)
 {
-  Assert(node.getKind() == IS_SINGLETON);
+  Assert(node.getKind() == SET_IS_SINGLETON);
 
   // we call the rewriter here to handle the pattern
   // (is_singleton (singleton x)) because the rewriter is called after expansion
   Node rewritten = rewrite(node);
-  if (rewritten.getKind() != IS_SINGLETON)
+  if (rewritten.getKind() != SET_IS_SINGLETON)
   {
     return TrustNode::mkTrustRewrite(node, rewritten, nullptr);
   }
index 94ca86e613304707a0fa870c3e03ca0d771945c7..f464d475b9c5bc1d446e5ecccbf1eeeeea7750fd 100644 (file)
@@ -64,14 +64,14 @@ class TheorySetsPrivate : protected EnvObj
   void fullEffortReset();
   /**
    * This implements an inference schema based on the "downwards closure" of
-   * set membership. This roughly corresponds to the rules UNION DOWN I and II,
-   * INTER DOWN I and II from Bansal et al IJCAR 2016, as well as rules for set
-   * difference.
+   * set membership. This roughly corresponds to the rules SET_UNION DOWN I and
+   * II, INTER DOWN I and II from Bansal et al IJCAR 2016, as well as rules for
+   * set difference.
    */
   void checkDownwardsClosure();
   /**
    * This implements an inference schema based on the "upwards closure" of
-   * set membership. This roughly corresponds to the rules UNION UP, INTER
+   * set membership. This roughly corresponds to the rules SET_UNION UP, INTER
    * UP I and II from Bansal et al IJCAR 2016, as well as rules for set
    * difference.
    */
index 57a70f80ae10fcdf624b5ed9300563401c6b93bf..49f8f053adf5d3efdc9bcec501fdd2d86307edc1 100644 (file)
@@ -82,39 +82,45 @@ void TheorySetsRels::check(Theory::Effort level)
         std::map<kind::Kind_t, std::vector<Node> >& kind_terms =
             d_terms_cache[rel_rep];
 
-        if( kind_terms.find(kind::TRANSPOSE) != kind_terms.end() ) {
-          std::vector<Node>& tp_terms = kind_terms[TRANSPOSE];
+        if (kind_terms.find(kind::RELATION_TRANSPOSE) != kind_terms.end())
+        {
+          std::vector<Node>& tp_terms = kind_terms[RELATION_TRANSPOSE];
           if( tp_terms.size() > 0 ) {
             applyTransposeRule( tp_terms );
             applyTransposeRule( tp_terms[0], rel_rep, exp );
           }
         }
-        if( kind_terms.find(kind::JOIN) != kind_terms.end() ) {
-          std::vector<Node>& join_terms = kind_terms[JOIN];
+        if (kind_terms.find(kind::RELATION_JOIN) != kind_terms.end())
+        {
+          std::vector<Node>& join_terms = kind_terms[RELATION_JOIN];
           for( unsigned int j = 0; j < join_terms.size(); j++ ) {
             applyJoinRule( join_terms[j], rel_rep, exp );
           }
         }
-        if( kind_terms.find(kind::PRODUCT) != kind_terms.end() ) {
-          std::vector<Node>& product_terms = kind_terms[PRODUCT];
+        if (kind_terms.find(kind::RELATION_PRODUCT) != kind_terms.end())
+        {
+          std::vector<Node>& product_terms = kind_terms[RELATION_PRODUCT];
           for( unsigned int j = 0; j < product_terms.size(); j++ ) {
             applyProductRule( product_terms[j], rel_rep, exp );
           }
         }
-        if( kind_terms.find(kind::TCLOSURE) != kind_terms.end() ) {
-          std::vector<Node>& tc_terms = kind_terms[TCLOSURE];
+        if (kind_terms.find(kind::RELATION_TCLOSURE) != kind_terms.end())
+        {
+          std::vector<Node>& tc_terms = kind_terms[RELATION_TCLOSURE];
           for( unsigned int j = 0; j < tc_terms.size(); j++ ) {
             applyTCRule( mem, tc_terms[j], rel_rep, exp );
           }
         }
-        if( kind_terms.find(kind::JOIN_IMAGE) != kind_terms.end() ) {
-          std::vector<Node>& join_image_terms = kind_terms[JOIN_IMAGE];
+        if (kind_terms.find(kind::RELATION_JOIN_IMAGE) != kind_terms.end())
+        {
+          std::vector<Node>& join_image_terms = kind_terms[RELATION_JOIN_IMAGE];
           for( unsigned int j = 0; j < join_image_terms.size(); j++ ) {
             applyJoinImageRule( mem, join_image_terms[j], exp );
           }
         }
-        if( kind_terms.find(kind::IDEN) != kind_terms.end() ) {
-          std::vector<Node>& iden_terms = kind_terms[IDEN];
+        if (kind_terms.find(kind::RELATION_IDEN) != kind_terms.end())
+        {
+          std::vector<Node>& iden_terms = kind_terms[RELATION_IDEN];
           for( unsigned int j = 0; j < iden_terms.size(); j++ ) {
             applyIdenRule( mem, iden_terms[j], exp );
           }
@@ -139,7 +145,8 @@ void TheorySetsRels::check(Theory::Effort level)
         Trace("rels-debug") << "[sets-rels] Check " << k_t_it->second.size()
                             << " terms of kind " << k_t_it->first << std::endl;
         std::vector<Node>::iterator term_it = k_t_it->second.begin();
-        if (k_t_it->first == kind::JOIN || k_t_it->first == kind::PRODUCT)
+        if (k_t_it->first == kind::RELATION_JOIN
+            || k_t_it->first == kind::RELATION_PRODUCT)
         {
           while (term_it != k_t_it->second.end())
           {
@@ -147,7 +154,7 @@ void TheorySetsRels::check(Theory::Effort level)
             ++term_it;
           }
         }
-        else if (k_t_it->first == kind::TRANSPOSE)
+        else if (k_t_it->first == kind::RELATION_TRANSPOSE)
         {
           while (term_it != k_t_it->second.end())
           {
@@ -155,7 +162,7 @@ void TheorySetsRels::check(Theory::Effort level)
             ++term_it;
           }
         }
-        else if (k_t_it->first == kind::TCLOSURE)
+        else if (k_t_it->first == kind::RELATION_TCLOSURE)
         {
           while (term_it != k_t_it->second.end())
           {
@@ -163,7 +170,7 @@ void TheorySetsRels::check(Theory::Effort level)
             ++term_it;
           }
         }
-        else if (k_t_it->first == kind::JOIN_IMAGE)
+        else if (k_t_it->first == kind::RELATION_JOIN_IMAGE)
         {
           while (term_it != k_t_it->second.end())
           {
@@ -171,7 +178,7 @@ void TheorySetsRels::check(Theory::Effort level)
             ++term_it;
           }
         }
-        else if (k_t_it->first == kind::IDEN)
+        else if (k_t_it->first == kind::RELATION_IDEN)
         {
           while (term_it != k_t_it->second.end())
           {
@@ -220,7 +227,9 @@ void TheorySetsRels::check(Theory::Effort level)
         if (erType.isBoolean() && eqc_rep.isConst())
         {
           // collect membership info
-          if( eqc_node.getKind() == kind::MEMBER && eqc_node[1].getType().getSetElementType().isTuple()) {
+          if (eqc_node.getKind() == kind::SET_MEMBER
+              && eqc_node[1].getType().getSetElementType().isTuple())
+          {
             Node tup_rep = getRepresentative( eqc_node[0] );
             Node rel_rep = getRepresentative( eqc_node[1] );
 
@@ -243,9 +252,13 @@ void TheorySetsRels::check(Theory::Effort level)
         }
         else if (erType.isSet() && erType.getSetElementType().isTuple())
         {
-          if( eqc_node.getKind() == kind::TRANSPOSE || eqc_node.getKind() == kind::JOIN ||
-              eqc_node.getKind() == kind::PRODUCT || eqc_node.getKind() == kind::TCLOSURE ||
-              eqc_node.getKind() == kind::JOIN_IMAGE || eqc_node.getKind() == kind::IDEN ) {
+          if (eqc_node.getKind() == kind::RELATION_TRANSPOSE
+              || eqc_node.getKind() == kind::RELATION_JOIN
+              || eqc_node.getKind() == kind::RELATION_PRODUCT
+              || eqc_node.getKind() == kind::RELATION_TCLOSURE
+              || eqc_node.getKind() == kind::RELATION_JOIN_IMAGE
+              || eqc_node.getKind() == kind::RELATION_IDEN)
+          {
             d_terms_cache[eqc_rep][eqc_node.getKind()].push_back(eqc_node);
           }
         // need to add all tuple elements as shared terms
@@ -269,11 +282,11 @@ void TheorySetsRels::check(Theory::Effort level)
     Trace("rels-debug") << "[Theory::Rels] Done with collecting relational terms!" << std::endl;
   }
 
-  /* JOIN-IMAGE UP  :   (x, x1) IS_IN R, ..., (x, xn) IS_IN R  (R JOIN_IMAGE n)
-  *                     -------------------------------------------------------
-  *                     x IS_IN (R JOIN_IMAGE n) || NOT DISTINCT(x1, ... , xn)
-  *
-  */
+  /* RELATION_JOIN-IMAGE UP:
+   *   (x, x1) IS_IN R, ..., (x, xn) IS_IN R  (R RELATION_JOIN_IMAGE n)
+   *   ----------------------------------------------------------------
+   *   x IS_IN (R RELATION_JOIN_IMAGE n) || NOT DISTINCT(x1, ... , xn)
+   */
 
   void TheorySetsRels::computeMembersForJoinImageTerm( Node join_image_term ) {
     Trace("rels-debug") << "\n[Theory::Rels] *********** Compute members for JoinImage Term = " << join_image_term << std::endl;
@@ -305,7 +318,7 @@ void TheorySetsRels::check(Theory::Effort level)
       const DType& dt =
           join_image_term.getType().getSetElementType().getDType();
       Node new_membership = nm->mkNode(
-          MEMBER,
+          SET_MEMBER,
           nm->mkNode(APPLY_CONSTRUCTOR, dt[0].getConstructor(), fst_mem_rep),
           join_image_term);
       if (d_state.isEntailed(new_membership, true))
@@ -365,10 +378,10 @@ void TheorySetsRels::check(Theory::Effort level)
     Trace("rels-debug") << "\n[Theory::Rels] *********** Done with computing members for JoinImage Term" << join_image_term << "*********** " << std::endl;
   }
 
-  /* JOIN-IMAGE DOWN  : (x) IS_IN (R JOIN_IMAGE n)
-   *                     -------------------------------------------------------
-   *                     (x, x1) IS_IN R .... (x, xn) IS_IN R  DISTINCT(x1, ...
-   * , xn)
+  /* RELATION_JOIN-IMAGE DOWN:
+   *   (x) IS_IN (R RELATION_JOIN_IMAGE n)
+   *   ------------------------------------------------------------
+   *   (x, x1) IS_IN R .... (x, xn) IS_IN R  DISTINCT(x1, ... , xn)
    *
    */
   void TheorySetsRels::applyJoinImageRule( Node mem_rep, Node join_image_term, Node exp ) {
@@ -411,7 +424,7 @@ void TheorySetsRels::check(Theory::Effort level)
           AND,
           conclusion,
           nm->mkNode(
-              MEMBER,
+              SET_MEMBER,
               RelsUtils::constructPair(join_image_rel, fst_mem_element, skolem),
               join_image_rel));
     }
@@ -423,11 +436,11 @@ void TheorySetsRels::check(Theory::Effort level)
     Trace("rels-debug") << "\n[Theory::Rels] *********** Done with applyJoinImageRule ***********" << std::endl;
   }
 
-  /* IDENTITY-DOWN  : (x, y) IS_IN IDEN(R)
-  *               -------------------------------------------------------
-  *                   x = y,  (x IS_IN R)
-  *
-  */
+  /* IDENTITY-DOWN  : (x, y) IS_IN RELATION_IDEN(R)
+   *               -------------------------------------------------------
+   *                   x = y,  (x IS_IN R)
+   *
+   */
 
   void TheorySetsRels::applyIdenRule( Node mem_rep, Node iden_term, Node exp) {
     Trace("rels-debug") << "\n[Theory::Rels] *********** applyIdenRule on " << iden_term
@@ -442,7 +455,7 @@ void TheorySetsRels::check(Theory::Effort level)
     Node snd_mem = RelsUtils::nthElementOfTuple( exp[0], 1 );
     const DType& dt = iden_term[0].getType().getSetElementType().getDType();
     Node fact = nm->mkNode(
-        MEMBER,
+        SET_MEMBER,
         nm->mkNode(APPLY_CONSTRUCTOR, dt[0].getConstructor(), fst_mem),
         iden_term[0]);
 
@@ -455,11 +468,11 @@ void TheorySetsRels::check(Theory::Effort level)
     Trace("rels-debug") << "\n[Theory::Rels] *********** Done with applyIdenRule on " << iden_term << std::endl;
   }
 
-  /* IDEN UP  : (x) IS_IN R        IDEN(R) IN T
-  *             --------------------------------
-  *                   (x, x) IS_IN IDEN(R)
-  *
-  */
+  /* RELATION_IDEN UP  : (x) IS_IN R        RELATION_IDEN(R) IN T
+   *             --------------------------------
+   *                   (x, x) IS_IN RELATION_IDEN(R)
+   *
+   */
 
   void TheorySetsRels::computeMembersForIdenTerm( Node iden_term ) {
     Trace("rels-debug") << "\n[Theory::Rels] *********** Compute members for Iden Term = " << iden_term << std::endl;
@@ -482,8 +495,9 @@ void TheorySetsRels::check(Theory::Effort level)
       if( (*mem_rep_exp_it)[1] != iden_term_rel ) {
         reason = NodeManager::currentNM()->mkNode( kind::AND, reason, NodeManager::currentNM()->mkNode( kind::EQUAL, (*mem_rep_exp_it)[1], iden_term_rel ) );
       }
-      sendInfer(
-          nm->mkNode(MEMBER, new_mem, iden_term), InferenceId::SETS_RELS_IDENTITY_UP, reason);
+      sendInfer(nm->mkNode(SET_MEMBER, new_mem, iden_term),
+                InferenceId::SETS_RELS_IDENTITY_UP,
+                reason);
       ++mem_rep_exp_it;
     }
     Trace("rels-debug") << "\n[Theory::Rels] *********** Done with computing members for Iden Term = " << iden_term << std::endl;
@@ -495,23 +509,27 @@ void TheorySetsRels::check(Theory::Effort level)
    */
 
   /*
-   * TCLOSURE TCLOSURE(x) = x | x.x | x.x.x | ... (| is union)
+   * RELATION_TCLOSURE RELATION_TCLOSURE(x) = x | x.x | x.x.x | ... (| is union)
    *
-   * TCLOSURE-UP I:   (a, b) IS_IN x            TCLOSURE(x) in T
+   * RELATION_TCLOSURE-UP I:   (a, b) IS_IN x            RELATION_TCLOSURE(x) in
+   * T
    *              ---------------------------------------------
-   *                              (a, b) IS_IN TCLOSURE(x)
+   *                              (a, b) IS_IN RELATION_TCLOSURE(x)
    *
    *
    *
-   * TCLOSURE-UP II : (a, b) IS_IN TCLOSURE(x)  (b, c) IS_IN TCLOSURE(x)
+   * RELATION_TCLOSURE-UP II : (a, b) IS_IN RELATION_TCLOSURE(x)  (b, c) IS_IN
+   * RELATION_TCLOSURE(x)
    *              -----------------------------------------------------------
-   *                            (a, c) IS_IN TCLOSURE(x)
+   *                            (a, c) IS_IN RELATION_TCLOSURE(x)
    *
    */
   void TheorySetsRels::applyTCRule( Node mem_rep, Node tc_rel, Node tc_rel_rep, Node exp ) {
-    Trace("rels-debug") << "[Theory::Rels] *********** Applying TCLOSURE rule on a tc term = " << tc_rel
-                            << ", its representative = " << tc_rel_rep
-                            << " with member rep = " << mem_rep << " and explanation = " << exp << std::endl;
+    Trace("rels-debug") << "[Theory::Rels] *********** Applying "
+                           "RELATION_TCLOSURE rule on a tc term = "
+                        << tc_rel << ", its representative = " << tc_rel_rep
+                        << " with member rep = " << mem_rep
+                        << " and explanation = " << exp << std::endl;
     MEM_IT mem_it = d_rReps_memberReps_cache.find( tc_rel[0] );
 
     if( mem_it != d_rReps_memberReps_cache.end() && d_rel_nodes.find( tc_rel ) == d_rel_nodes.end()
@@ -574,7 +592,7 @@ void TheorySetsRels::check(Theory::Effort level)
                                               tc_rel[0],
                                               SkolemCache::SK_TCLOSURE_DOWN2,
                                               "stc2");
-    Node mem_of_r = nm->mkNode(MEMBER, exp[0], tc_rel[0]);
+    Node mem_of_r = nm->mkNode(SET_MEMBER, exp[0], tc_rel[0]);
     Node sk_eq = nm->mkNode(EQUAL, sk_1, sk_2);
     Node reason   = exp;
 
@@ -587,15 +605,15 @@ void TheorySetsRels::check(Theory::Effort level)
         mem_of_r,
         nm->mkNode(
             AND,
-            nm->mkNode(MEMBER,
+            nm->mkNode(SET_MEMBER,
                        RelsUtils::constructPair(tc_rel, fst_element, sk_1),
                        tc_rel[0]),
-            nm->mkNode(MEMBER,
+            nm->mkNode(SET_MEMBER,
                        RelsUtils::constructPair(tc_rel, sk_2, snd_element),
                        tc_rel[0]),
             nm->mkNode(OR,
                        sk_eq,
-                       nm->mkNode(MEMBER,
+                       nm->mkNode(SET_MEMBER,
                                   RelsUtils::constructPair(tc_rel, sk_1, sk_2),
                                   tc_rel))));
 
@@ -742,11 +760,11 @@ void TheorySetsRels::check(Theory::Effort level)
       all_reasons.push_back( NodeManager::currentNM()->mkNode(kind::EQUAL, tc_rel[0], reasons.back()[1]) );
     }
     if( all_reasons.size() > 1) {
-      sendInfer(nm->mkNode(MEMBER, tc_mem, tc_rel),
+      sendInfer(nm->mkNode(SET_MEMBER, tc_mem, tc_rel),
                 InferenceId::SETS_RELS_TCLOSURE_FWD,
                 nm->mkNode(AND, all_reasons));
     } else {
-      sendInfer(nm->mkNode(MEMBER, tc_mem, tc_rel),
+      sendInfer(nm->mkNode(SET_MEMBER, tc_mem, tc_rel),
                 InferenceId::SETS_RELS_TCLOSURE_FWD,
                 all_reasons.front());
     }
@@ -770,24 +788,25 @@ void TheorySetsRels::check(Theory::Effort level)
     }
   }
 
- /*  product-split rule:  (a, b) IS_IN (X PRODUCT Y)
-  *                     ----------------------------------
-  *                       a IS_IN X  && b IS_IN Y
-  *
-  *  product-compose rule: (a, b) IS_IN X    (c, d) IS_IN Y
-  *                        ---------------------------------
-  *                        (a, b, c, d) IS_IN (X PRODUCT Y)
-  */
-
+  /*  product-split rule:  (a, b) IS_IN (X RELATION_PRODUCT Y)
+   *                     ----------------------------------
+   *                       a IS_IN X  && b IS_IN Y
+   *
+   *  product-compose rule: (a, b) IS_IN X    (c, d) IS_IN Y
+   *                        ---------------------------------
+   *                        (a, b, c, d) IS_IN (X RELATION_PRODUCT Y)
+   */
 
   void TheorySetsRels::applyProductRule( Node pt_rel, Node pt_rel_rep, Node exp ) {
-    Trace("rels-debug") << "\n[Theory::Rels] *********** Applying PRODUCT rule on producted term = " << pt_rel
-                            << ", its representative = " << pt_rel_rep
-                            << " with explanation = " << exp << std::endl;
+    Trace("rels-debug") << "\n[Theory::Rels] *********** Applying "
+                           "RELATION_PRODUCT rule on producted term = "
+                        << pt_rel << ", its representative = " << pt_rel_rep
+                        << " with explanation = " << exp << std::endl;
 
     if(d_rel_nodes.find( pt_rel ) == d_rel_nodes.end()) {
-      Trace("rels-debug") <<  "\n[Theory::Rels] Apply PRODUCT-COMPOSE rule on term: " << pt_rel
-                          << " with explanation: " << exp << std::endl;
+      Trace("rels-debug")
+          << "\n[Theory::Rels] Apply RELATION_PRODUCT-COMPOSE rule on term: "
+          << pt_rel << " with explanation: " << exp << std::endl;
 
       computeMembersForBinOpRel( pt_rel );
       d_rel_nodes.insert( pt_rel );
@@ -814,8 +833,10 @@ void TheorySetsRels::check(Theory::Effort level)
     Node reason   = exp;
     Node mem1     = NodeManager::currentNM()->mkNode(kind::APPLY_CONSTRUCTOR, r1_element);
     Node mem2     = NodeManager::currentNM()->mkNode(kind::APPLY_CONSTRUCTOR, r2_element);
-    Node fact_1   = NodeManager::currentNM()->mkNode(kind::MEMBER, mem1, pt_rel[0]);
-    Node fact_2   = NodeManager::currentNM()->mkNode(kind::MEMBER, mem2, pt_rel[1]);
+    Node fact_1 =
+        NodeManager::currentNM()->mkNode(kind::SET_MEMBER, mem1, pt_rel[0]);
+    Node fact_2 =
+        NodeManager::currentNM()->mkNode(kind::SET_MEMBER, mem2, pt_rel[1]);
 
     if( pt_rel != exp[1] ) {
       reason = NodeManager::currentNM()->mkNode(kind::AND, exp, NodeManager::currentNM()->mkNode(kind::EQUAL, pt_rel, exp[1]));
@@ -824,23 +845,26 @@ void TheorySetsRels::check(Theory::Effort level)
     sendInfer(fact_2, InferenceId::SETS_RELS_PRODUCT_SPLIT, reason);
   }
 
-  /* join-split rule:           (a, b) IS_IN (X JOIN Y)
+  /* join-split rule:           (a, b) IS_IN (X RELATION_JOIN Y)
    *                  --------------------------------------------
    *                  exists z | (a, z) IS_IN X  && (z, b) IS_IN Y
    *
    *
-   * join-compose rule: (a, b) IS_IN X    (b, c) IS_IN Y  NOT (t, u) IS_IN (X JOIN Y)
+   * join-compose rule: (a, b) IS_IN X    (b, c) IS_IN Y  NOT (t, u) IS_IN (X
+   * RELATION_JOIN Y)
    *                    -------------------------------------------------------------
-   *                                      (a, c) IS_IN (X JOIN Y)
+   *                                      (a, c) IS_IN (X RELATION_JOIN Y)
    */
 
   void TheorySetsRels::applyJoinRule( Node join_rel, Node join_rel_rep, Node exp ) {
-    Trace("rels-debug") << "\n[Theory::Rels] *********** Applying JOIN rule on joined term = " << join_rel
-                            << ", its representative = " << join_rel_rep
-                            << " with explanation = " << exp << std::endl;
+    Trace("rels-debug") << "\n[Theory::Rels] *********** Applying "
+                           "RELATION_JOIN rule on joined term = "
+                        << join_rel << ", its representative = " << join_rel_rep
+                        << " with explanation = " << exp << std::endl;
     if(d_rel_nodes.find( join_rel ) == d_rel_nodes.end()) {
-      Trace("rels-debug") <<  "\n[Theory::Rels] Apply JOIN-COMPOSE rule on term: " << join_rel
-                          << " with explanation: " << exp << std::endl;
+      Trace("rels-debug")
+          << "\n[Theory::Rels] Apply RELATION_JOIN-COMPOSE rule on term: "
+          << join_rel << " with explanation: " << exp << std::endl;
 
       computeMembersForBinOpRel( join_rel );
       d_rel_nodes.insert( join_rel );
@@ -890,19 +914,21 @@ void TheorySetsRels::check(Theory::Effort level)
     if( join_rel != exp[1] ) {
       reason = NodeManager::currentNM()->mkNode(kind::AND, reason, NodeManager::currentNM()->mkNode(kind::EQUAL, join_rel, exp[1]));
     }
-    Node fact = NodeManager::currentNM()->mkNode(kind::MEMBER, mem1, join_rel[0]);
+    Node fact =
+        NodeManager::currentNM()->mkNode(kind::SET_MEMBER, mem1, join_rel[0]);
     sendInfer(fact, InferenceId::SETS_RELS_JOIN_SPLIT_1, reason);
-    fact = NodeManager::currentNM()->mkNode(kind::MEMBER, mem2, join_rel[1]);
+    fact =
+        NodeManager::currentNM()->mkNode(kind::SET_MEMBER, mem2, join_rel[1]);
     sendInfer(fact, InferenceId::SETS_RELS_JOIN_SPLIT_2, reason);
     makeSharedTerm(shared_x, shared_type);
   }
 
   /*
-   * transpose-occur rule:    (a, b) IS_IN X   (TRANSPOSE X) in T
+   * transpose-occur rule:    (a, b) IS_IN X   (RELATION_TRANSPOSE X) in T
    *                         ---------------------------------------
-   *                            (b, a) IS_IN (TRANSPOSE X)
+   *                            (b, a) IS_IN (RELATION_TRANSPOSE X)
    *
-   * transpose-reverse rule:    (a, b) IS_IN (TRANSPOSE X)
+   * transpose-reverse rule:    (a, b) IS_IN (RELATION_TRANSPOSE X)
    *                         ---------------------------------------
    *                            (b, a) IS_IN X
    *
@@ -913,7 +939,10 @@ void TheorySetsRels::check(Theory::Effort level)
     }
     NodeManager* nm = NodeManager::currentNM();
     for( unsigned int i = 1; i < tp_terms.size(); i++ ) {
-      Trace("rels-debug") << "\n[Theory::Rels] *********** Applying TRANSPOSE-Equal rule on transposed term = " << tp_terms[0] << " and " << tp_terms[i] << std::endl;
+      Trace("rels-debug")
+          << "\n[Theory::Rels] *********** Applying RELATION_TRANSPOSE-Equal "
+             "rule on transposed term = "
+          << tp_terms[0] << " and " << tp_terms[i] << std::endl;
       sendInfer(nm->mkNode(EQUAL, tp_terms[0][0], tp_terms[i][0]),
                 InferenceId::SETS_RELS_TRANSPOSE_EQ,
                 nm->mkNode(EQUAL, tp_terms[0], tp_terms[i]));
@@ -921,14 +950,16 @@ void TheorySetsRels::check(Theory::Effort level)
   }
 
   void TheorySetsRels::applyTransposeRule( Node tp_rel, Node tp_rel_rep, Node exp ) {
-    Trace("rels-debug") << "\n[Theory::Rels] *********** Applying TRANSPOSE rule on transposed term = " << tp_rel
-                        << ", its representative = " << tp_rel_rep
+    Trace("rels-debug") << "\n[Theory::Rels] *********** Applying "
+                           "RELATION_TRANSPOSE rule on transposed term = "
+                        << tp_rel << ", its representative = " << tp_rel_rep
                         << " with explanation = " << exp << std::endl;
     NodeManager* nm = NodeManager::currentNM();
 
     if(d_rel_nodes.find( tp_rel ) == d_rel_nodes.end()) {
-      Trace("rels-debug") <<  "\n[Theory::Rels] Apply TRANSPOSE-Compose rule on term: " << tp_rel
-                          << " with explanation: " << exp << std::endl;
+      Trace("rels-debug")
+          << "\n[Theory::Rels] Apply RELATION_TRANSPOSE-Compose rule on term: "
+          << tp_rel << " with explanation: " << exp << std::endl;
 
       computeMembersForUnaryOpRel( tp_rel );
       d_rel_nodes.insert( tp_rel );
@@ -940,7 +971,7 @@ void TheorySetsRels::check(Theory::Effort level)
     if( tp_rel != exp[1] ) {
       reason = NodeManager::currentNM()->mkNode(kind::AND, reason, NodeManager::currentNM()->mkNode(kind::EQUAL, tp_rel, exp[1]));
     }
-    sendInfer(nm->mkNode(MEMBER, reversed_mem, tp_rel[0]),
+    sendInfer(nm->mkNode(SET_MEMBER, reversed_mem, tp_rel[0]),
               InferenceId::SETS_RELS_TRANSPOSE_REV,
               reason);
   }
@@ -963,13 +994,15 @@ void TheorySetsRels::check(Theory::Effort level)
     Trace("rels-debug") << "\n[Theory::Rels] computeMembersForBinOpRel for relation  " << rel << std::endl;
 
     switch(rel[0].getKind()) {
-      case kind::TRANSPOSE:
-      case kind::TCLOSURE: {
+      case kind::RELATION_TRANSPOSE:
+      case kind::RELATION_TCLOSURE:
+      {
         computeMembersForUnaryOpRel(rel[0]);
         break;
       }
-      case kind::JOIN:
-      case kind::PRODUCT: {
+      case kind::RELATION_JOIN:
+      case kind::RELATION_PRODUCT:
+      {
         computeMembersForBinOpRel(rel[0]);
         break;
       }
@@ -977,12 +1010,14 @@ void TheorySetsRels::check(Theory::Effort level)
         break;
     }
     switch(rel[1].getKind()) {
-      case kind::TRANSPOSE: {
+      case kind::RELATION_TRANSPOSE:
+      {
         computeMembersForUnaryOpRel(rel[1]);
         break;
       }
-      case kind::JOIN:
-      case kind::PRODUCT: {
+      case kind::RELATION_JOIN:
+      case kind::RELATION_PRODUCT:
+      {
         computeMembersForBinOpRel(rel[1]);
         break;
       }
@@ -997,14 +1032,10 @@ void TheorySetsRels::check(Theory::Effort level)
     Trace("rels-debug") << "\n[Theory::Rels] computeMembersForUnaryOpRel for relation  " << rel << std::endl;
 
     switch(rel[0].getKind()) {
-      case kind::TRANSPOSE:
-      case kind::TCLOSURE:
-        computeMembersForUnaryOpRel(rel[0]);
-        break;
-      case kind::JOIN:
-      case kind::PRODUCT:
-        computeMembersForBinOpRel(rel[0]);
-        break;
+      case kind::RELATION_TRANSPOSE:
+      case kind::RELATION_TCLOSURE: computeMembersForUnaryOpRel(rel[0]); break;
+      case kind::RELATION_JOIN:
+      case kind::RELATION_PRODUCT: computeMembersForBinOpRel(rel[0]); break;
       default:
         break;
     }
@@ -1022,7 +1053,7 @@ void TheorySetsRels::check(Theory::Effort level)
 
     Assert(members.size() == exps.size());
 
-    if (rel.getKind() == kind::TRANSPOSE)
+    if (rel.getKind() == kind::RELATION_TRANSPOSE)
     {
       for (size_t i = 0, msize = members.size(); i < msize; i++)
       {
@@ -1031,9 +1062,10 @@ void TheorySetsRels::check(Theory::Effort level)
           reason = nm->mkNode(
               kind::AND, reason, nm->mkNode(kind::EQUAL, rel[0], exps[i][1]));
         }
-        sendInfer(nm->mkNode(MEMBER, RelsUtils::reverseTuple(exps[i][0]), rel),
-                  InferenceId::SETS_RELS_TRANSPOSE_REV,
-                  reason);
+        sendInfer(
+            nm->mkNode(SET_MEMBER, RelsUtils::reverseTuple(exps[i][0]), rel),
+            InferenceId::SETS_RELS_TRANSPOSE_REV,
+            reason);
       }
     }
   }
@@ -1042,12 +1074,12 @@ void TheorySetsRels::check(Theory::Effort level)
    * Explicitly compose the join or product relations of r1 and r2. For example,
    * consider the case that (a, b) in r1, (c, d) in r2.
    *
-   * For JOIN, we have three cases:
+   * For RELATION_JOIN, we have three cases:
    *   if b = c, we infer (a, d) in (join r1 r2)
    *   else, we mark b and c as shared terms; their equality will be split in
    *         theory combination if necessary.
    *
-   * For PRODUCT, we infer (a, b, c, d) in (product r1 r2).
+   * For RELATION_PRODUCT, we infer (a, b, c, d) in (product r1 r2).
    */
   void TheorySetsRels::composeMembersForRels( Node rel ) {
     Trace("rels-debug") << "[Theory::Rels] Start composing members for relation = " << rel << std::endl;
@@ -1074,7 +1106,7 @@ void TheorySetsRels::check(Theory::Effort level)
         std::vector<Node> tuple_elements;
         tuple_elements.push_back(tn.getDType()[0].getConstructor());
         std::vector<Node> reasons;
-        if (rk == kind::JOIN)
+        if (rk == kind::RELATION_JOIN)
         {
           Node r1_rmost =
               RelsUtils::nthElementOfTuple(r1_rep_exps[i][0], r1_tuple_len - 1);
@@ -1101,9 +1133,9 @@ void TheorySetsRels::check(Theory::Effort level)
           }
         }
 
-        if (rk == kind::PRODUCT || rk == kind::JOIN)
+        if (rk == kind::RELATION_PRODUCT || rk == kind::RELATION_JOIN)
         {
-          bool isProduct = rk == kind::PRODUCT;
+          bool isProduct = rk == kind::RELATION_PRODUCT;
           unsigned int k = 0;
           unsigned int l = 1;
 
@@ -1120,7 +1152,7 @@ void TheorySetsRels::check(Theory::Effort level)
 
           Node composed_tuple =
               nm->mkNode(kind::APPLY_CONSTRUCTOR, tuple_elements);
-          Node fact = nm->mkNode(kind::MEMBER, composed_tuple, rel);
+          Node fact = nm->mkNode(kind::SET_MEMBER, composed_tuple, rel);
           reasons.push_back( r1_rep_exps[i] );
           reasons.push_back( r2_rep_exps[j] );
 
@@ -1160,8 +1192,9 @@ void TheorySetsRels::check(Theory::Effort level)
   }
 
   bool TheorySetsRels::isRelationKind( Kind k ) {
-    return k == TRANSPOSE || k == PRODUCT || k == JOIN || k == TCLOSURE
-           || k == IDEN || k == JOIN_IMAGE;
+    return k == RELATION_TRANSPOSE || k == RELATION_PRODUCT
+           || k == RELATION_JOIN || k == RELATION_TCLOSURE || k == RELATION_IDEN
+           || k == RELATION_JOIN_IMAGE;
   }
 
   Node TheorySetsRels::getRepresentative( Node t ) {
@@ -1238,8 +1271,9 @@ void TheorySetsRels::check(Theory::Effort level)
   }
 
   /*
-   * For each tuple n, we store a mapping between n and a list of its elements representatives
-   * in d_tuple_reps. This would later be used for applying JOIN operator.
+   * For each tuple n, we store a mapping between n and a list of its elements
+   * representatives in d_tuple_reps. This would later be used for applying
+   * RELATION_JOIN operator.
    */
   void TheorySetsRels::computeTupleReps( Node n ) {
     if( d_tuple_reps.find( n ) == d_tuple_reps.end() ){
@@ -1266,7 +1300,8 @@ void TheorySetsRels::check(Theory::Effort level)
         tuple_elements.push_back(element);
       }
       Node tuple_reduct = NodeManager::currentNM()->mkNode(kind::APPLY_CONSTRUCTOR, tuple_elements);
-      tuple_reduct = NodeManager::currentNM()->mkNode(kind::MEMBER,tuple_reduct, n[1]);
+      tuple_reduct = NodeManager::currentNM()->mkNode(
+          kind::SET_MEMBER, tuple_reduct, n[1]);
       Node tuple_reduction_lemma = NodeManager::currentNM()->mkNode(kind::EQUAL, n, tuple_reduct);
       sendInfer(tuple_reduction_lemma, InferenceId::SETS_RELS_TUPLE_REDUCTION, d_trueNode);
       d_symbolic_tuples.insert(n);
index a12a28fffd91986dc07fefe50e45489fb5cf5f4a..bf1464c7b81881d1b27596c939e22dff5b0eeaa8 100644 (file)
@@ -53,8 +53,8 @@ public:
  * for handling quantifier-free constraints in the theory of relations.
  *
  * In cvc5, relations are represented as sets of tuples. The theory of
- * relations includes constraints over operators, e.g. TRANSPOSE, JOIN and so
- * on, which apply to sets of tuples.
+ * relations includes constraints over operators, e.g. RELATION_TRANSPOSE,
+ * RELATION_JOIN and so on, which apply to sets of tuples.
  *
  * Since relations are a special case of sets, this class is implemented as an
  * extension of the theory of sets. That is, it shares many components of the
index 14b5c6d524572b39c7219dc49eb2dfc2a0d3997b..181a659c5d58752f83a1a242cff8a4a28f2a8809 100644 (file)
@@ -30,16 +30,18 @@ namespace sets {
 
 bool TheorySetsRewriter::checkConstantMembership(TNode elementTerm, TNode setTerm)
 {
-  if(setTerm.getKind() == kind::EMPTYSET) {
+  if (setTerm.getKind() == kind::SET_EMPTY)
+  {
     return false;
   }
 
-  if(setTerm.getKind() == kind::SINGLETON) {
+  if (setTerm.getKind() == kind::SET_SINGLETON)
+  {
     return elementTerm == setTerm[0];
   }
 
-  Assert(setTerm.getKind() == kind::UNION
-         && setTerm[0].getKind() == kind::SINGLETON)
+  Assert(setTerm.getKind() == kind::SET_UNION
+         && setTerm[0].getKind() == kind::SET_SINGLETON)
       << "kind was " << setTerm.getKind() << ", term: " << setTerm;
 
   return elementTerm == setTerm[0][0]
@@ -60,45 +62,61 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
   }
 
   switch(kind) {
-
-  case kind::MEMBER: {
-    if(node[0].isConst() && node[1].isConst()) {
-      // both are constants
-      TNode S = preRewrite(node[1]).d_node;
-      bool isMember = checkConstantMembership(node[0], S);
-      return RewriteResponse(REWRITE_DONE, nm->mkConst(isMember));
-    }else if( node[1].getKind()==kind::EMPTYSET ){
-      return RewriteResponse(REWRITE_DONE, nm->mkConst(false));
-    }else if( node[1].getKind()==kind::SINGLETON ){
-      return RewriteResponse(REWRITE_AGAIN_FULL, nm->mkNode(kind::EQUAL, node[0], node[1][0] ) );
-    }else if( node[1].getKind()==kind::UNION || node[1].getKind()==kind::INTERSECTION || node[1].getKind()==kind::SETMINUS ){
-      std::vector< Node > children;
-      for( unsigned i=0; i<node[1].getNumChildren(); i++ ){
-        Node nc = nm->mkNode(kind::MEMBER, node[0], node[1][i] );
-        if( node[1].getKind()==kind::SETMINUS && i==1 ){
-          nc = nc.negate();
+    case kind::SET_MEMBER:
+    {
+      if (node[0].isConst() && node[1].isConst())
+      {
+        // both are constants
+        TNode S = preRewrite(node[1]).d_node;
+        bool isMember = checkConstantMembership(node[0], S);
+        return RewriteResponse(REWRITE_DONE, nm->mkConst(isMember));
+      }
+      else if (node[1].getKind() == kind::SET_EMPTY)
+      {
+        return RewriteResponse(REWRITE_DONE, nm->mkConst(false));
+      }
+      else if (node[1].getKind() == kind::SET_SINGLETON)
+      {
+        return RewriteResponse(REWRITE_AGAIN_FULL,
+                               nm->mkNode(kind::EQUAL, node[0], node[1][0]));
+      }
+      else if (node[1].getKind() == kind::SET_UNION
+               || node[1].getKind() == kind::SET_INTERSECTION
+               || node[1].getKind() == kind::SET_MINUS)
+      {
+        std::vector<Node> children;
+        for (unsigned i = 0; i < node[1].getNumChildren(); i++)
+        {
+          Node nc = nm->mkNode(kind::SET_MEMBER, node[0], node[1][i]);
+          if (node[1].getKind() == kind::SET_MINUS && i == 1)
+          {
+            nc = nc.negate();
+          }
+          children.push_back(nc);
         }
-        children.push_back( nc );
+        return RewriteResponse(
+            REWRITE_AGAIN_FULL,
+            nm->mkNode(
+                node[1].getKind() == kind::SET_UNION ? kind::OR : kind::AND,
+                children));
       }
-      return RewriteResponse(REWRITE_AGAIN_FULL, nm->mkNode( node[1].getKind()==kind::UNION ? kind::OR : kind::AND, children ) );
-    }
-    break;
-  }//kind::MEMBER
+      break;
+    }  // kind::SET_MEMBER
 
-  case kind::SUBSET: {
-    Assert(false)
-        << "TheorySets::postRrewrite(): Subset is handled in preRewrite.";
+    case kind::SET_SUBSET:
+    {
+      Assert(false)
+          << "TheorySets::postRrewrite(): Subset is handled in preRewrite.";
 
-    // but in off-chance we do end up here, let us do our best
+      // but in off-chance we do end up here, let us do our best
 
-    // rewrite (A subset-or-equal B) as (A union B = B)
-    TNode A = node[0];
-    TNode B = node[1];
-    return RewriteResponse(REWRITE_AGAIN_FULL,
-                           nm->mkNode(kind::EQUAL,
-                                      nm->mkNode(kind::UNION, A, B),
-                                      B) );
-  }//kind::SUBSET
+      // rewrite (A subset-or-equal B) as (A union B = B)
+      TNode A = node[0];
+      TNode B = node[1];
+      return RewriteResponse(
+          REWRITE_AGAIN_FULL,
+          nm->mkNode(kind::EQUAL, nm->mkNode(kind::SET_UNION, A, B), B));
+    }  // kind::SET_SUBSET
 
   case kind::EQUAL: {
     //rewrite: t = t with true (t term)
@@ -120,7 +138,7 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
     break;
   }
 
-  case kind::SETMINUS:
+  case kind::SET_MINUS:
   {
     if (node[0] == node[1])
     {
@@ -129,20 +147,20 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
           << "Sets::postRewrite returning " << newNode << std::endl;
       return RewriteResponse(REWRITE_DONE, newNode);
     }
-    else if (node[0].getKind() == kind::EMPTYSET
-             || node[1].getKind() == kind::EMPTYSET)
+    else if (node[0].getKind() == kind::SET_EMPTY
+             || node[1].getKind() == kind::SET_EMPTY)
     {
       Trace("sets-postrewrite")
           << "Sets::postRewrite returning " << node[0] << std::endl;
       return RewriteResponse(REWRITE_AGAIN, node[0]);
     }
-    else if (node[1].getKind() == kind::SETMINUS && node[1][0] == node[0])
+    else if (node[1].getKind() == kind::SET_MINUS && node[1][0] == node[0])
     {
       // (setminus A (setminus A B)) = (intersection A B)
-      Node intersection = nm->mkNode(INTERSECTION, node[0], node[1][1]);
+      Node intersection = nm->mkNode(SET_INTERSECTION, node[0], node[1][1]);
       return RewriteResponse(REWRITE_AGAIN, intersection);
     }
-    else if (node[1].getKind() == kind::UNIVERSE_SET)
+    else if (node[1].getKind() == kind::SET_UNIVERSE)
     {
       return RewriteResponse(
           REWRITE_AGAIN,
@@ -165,17 +183,26 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
       return RewriteResponse(REWRITE_DONE, newNode);
     }
     break;
-  }  // kind::SETMINUS
+  }  // kind::SET_MINUS
 
-  case kind::INTERSECTION: {
+  case kind::SET_INTERSECTION:
+  {
     if(node[0] == node[1]) {
       Trace("sets-postrewrite") << "Sets::postRewrite returning " << node[0] << std::endl;
       return RewriteResponse(REWRITE_AGAIN, node[0]);
-    } else if(node[0].getKind() == kind::EMPTYSET || node[1].getKind() == kind::UNIVERSE_SET) {
+    }
+    else if (node[0].getKind() == kind::SET_EMPTY
+             || node[1].getKind() == kind::SET_UNIVERSE)
+    {
       return RewriteResponse(REWRITE_AGAIN, node[0]);
-    } else if(node[1].getKind() == kind::EMPTYSET || node[0].getKind() == kind::UNIVERSE_SET) {
+    }
+    else if (node[1].getKind() == kind::SET_EMPTY
+             || node[0].getKind() == kind::SET_UNIVERSE)
+    {
       return RewriteResponse(REWRITE_AGAIN, node[1]);
-    } else if(node[0].isConst() && node[1].isConst()) {
+    }
+    else if (node[0].isConst() && node[1].isConst())
+    {
       std::set<Node> left = NormalForm::getElementsFromNormalConstant(node[0]);
       std::set<Node> right = NormalForm::getElementsFromNormalConstant(node[1]);
       std::set<Node> newSet;
@@ -193,18 +220,27 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
     }
     // we don't merge non-constant intersections
     break;
-  }//kind::INTERSECION
+  }  // kind::INTERSECION
 
-  case kind::UNION: {
+  case kind::SET_UNION:
+  {
     // NOTE: case where it is CONST is taken care of at the top
     if(node[0] == node[1]) {
       Trace("sets-postrewrite") << "Sets::postRewrite returning " << node[0] << std::endl;
       return RewriteResponse(REWRITE_AGAIN, node[0]);
-    } else if(node[0].getKind() == kind::EMPTYSET || node[1].getKind() == kind::UNIVERSE_SET) {
+    }
+    else if (node[0].getKind() == kind::SET_EMPTY
+             || node[1].getKind() == kind::SET_UNIVERSE)
+    {
       return RewriteResponse(REWRITE_AGAIN, node[1]);
-    } else if(node[1].getKind() == kind::EMPTYSET || node[0].getKind() == kind::UNIVERSE_SET) {
+    }
+    else if (node[1].getKind() == kind::SET_EMPTY
+             || node[0].getKind() == kind::SET_UNIVERSE)
+    {
       return RewriteResponse(REWRITE_AGAIN, node[0]);
-    } else if(node[0].isConst() && node[1].isConst()) {
+    }
+    else if (node[0].isConst() && node[1].isConst())
+    {
       std::set<Node> left = NormalForm::getElementsFromNormalConstant(node[0]);
       std::set<Node> right = NormalForm::getElementsFromNormalConstant(node[1]);
       std::set<Node> newSet;
@@ -223,49 +259,66 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
     }
     // we don't merge non-constant unions
     break;
-  }//kind::UNION
-  case kind::COMPLEMENT:
+  }  // kind::SET_UNION
+  case kind::SET_COMPLEMENT:
   {
     Node univ = NodeManager::currentNM()->mkNullaryOperator(node[0].getType(),
-                                                            kind::UNIVERSE_SET);
+                                                            kind::SET_UNIVERSE);
     return RewriteResponse(
         REWRITE_AGAIN,
-        NodeManager::currentNM()->mkNode(kind::SETMINUS, univ, node[0]));
+        NodeManager::currentNM()->mkNode(kind::SET_MINUS, univ, node[0]));
   }
-  case kind::CARD: {
+  case kind::SET_CARD:
+  {
     if(node[0].isConst()) {
       std::set<Node> elements = NormalForm::getElementsFromNormalConstant(node[0]);
       return RewriteResponse(REWRITE_DONE, nm->mkConst(Rational(elements.size())));
-    }else if( node[0].getKind()==kind::SINGLETON ){
+    }
+    else if (node[0].getKind() == kind::SET_SINGLETON)
+    {
       return RewriteResponse(REWRITE_DONE, nm->mkConst(Rational(1)));
-    }else if( node[0].getKind()==kind::UNION ){
-      Node ret = NodeManager::currentNM()->mkNode( kind::MINUS,
-                   NodeManager::currentNM()->mkNode( kind::PLUS, NodeManager::currentNM()->mkNode( kind::CARD, node[0][0] ), 
-                                                                 NodeManager::currentNM()->mkNode( kind::CARD, node[0][1] ) ),
-                   NodeManager::currentNM()->mkNode( kind::CARD, NodeManager::currentNM()->mkNode( kind::INTERSECTION, node[0][0], node[0][1] ) ) );                                      
+    }
+    else if (node[0].getKind() == kind::SET_UNION)
+    {
+      Node ret = NodeManager::currentNM()->mkNode(
+          kind::MINUS,
+          NodeManager::currentNM()->mkNode(
+              kind::PLUS,
+              NodeManager::currentNM()->mkNode(kind::SET_CARD, node[0][0]),
+              NodeManager::currentNM()->mkNode(kind::SET_CARD, node[0][1])),
+          NodeManager::currentNM()->mkNode(
+              kind::SET_CARD,
+              NodeManager::currentNM()->mkNode(
+                  kind::SET_INTERSECTION, node[0][0], node[0][1])));
       return RewriteResponse(REWRITE_DONE, ret );
-    }else if( node[0].getKind()==kind::SETMINUS ){
-      Node ret = NodeManager::currentNM()->mkNode( kind::MINUS,
-                   NodeManager::currentNM()->mkNode( kind::CARD, node[0][0] ),
-                   NodeManager::currentNM()->mkNode( kind::CARD, NodeManager::currentNM()->mkNode( kind::INTERSECTION, node[0][0], node[0][1] ) ) );                                      
+    }
+    else if (node[0].getKind() == kind::SET_MINUS)
+    {
+      Node ret = NodeManager::currentNM()->mkNode(
+          kind::MINUS,
+          NodeManager::currentNM()->mkNode(kind::SET_CARD, node[0][0]),
+          NodeManager::currentNM()->mkNode(
+              kind::SET_CARD,
+              NodeManager::currentNM()->mkNode(
+                  kind::SET_INTERSECTION, node[0][0], node[0][1])));
       return RewriteResponse(REWRITE_DONE, ret );
     }
     break;
   }
-    
-  case kind::CHOOSE:
+
+  case kind::SET_CHOOSE:
   {
-    if (node[0].getKind() == SINGLETON)
+    if (node[0].getKind() == SET_SINGLETON)
     {
       //(= (choose (singleton x)) x) is a tautology
       // we return x for (choose (singleton x))
       return RewriteResponse(REWRITE_AGAIN, node[0][0]);
     }
     break;
-  }  // kind::CHOOSE
-  case kind::IS_SINGLETON:
+  }  // kind::SET_CHOOSE
+  case kind::SET_IS_SINGLETON:
   {
-    if (node[0].getKind() == SINGLETON)
+    if (node[0].getKind() == SET_SINGLETON)
     {
       //(= (is_singleton (singleton x)) is a tautology
       // we return true for (is_singleton (singleton x))
@@ -273,17 +326,22 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
                              NodeManager::currentNM()->mkConst(true));
     }
     break;
-  } // kind::IS_SINGLETON
+  }  // kind::SET_IS_SINGLETON
 
-  case kind::TRANSPOSE: {
-    if(node[0].getKind() == kind::TRANSPOSE) {
+  case kind::RELATION_TRANSPOSE:
+  {
+    if (node[0].getKind() == kind::RELATION_TRANSPOSE)
+    {
       return RewriteResponse(REWRITE_AGAIN, node[0][0]);
     }
 
-    if(node[0].getKind() == kind::EMPTYSET) {
+    if (node[0].getKind() == kind::SET_EMPTY)
+    {
       return RewriteResponse(REWRITE_DONE,
                              nm->mkConst(EmptySet(node.getType())));
-    } else if(node[0].isConst()) {
+    }
+    else if (node[0].isConst())
+    {
       std::set<Node> new_tuple_set;
       std::set<Node> tuple_set = NormalForm::getElementsFromNormalConstant(node[0]);
       std::set<Node>::iterator tuple_it = tuple_set.begin();
@@ -296,22 +354,26 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
       Assert(new_node.isConst());
       Trace("sets-postrewrite") << "Sets::postRewrite returning " << new_node << std::endl;
       return RewriteResponse(REWRITE_DONE, new_node);
-
     }
-    if(node[0].getKind() != kind::TRANSPOSE) {
+    if (node[0].getKind() != kind::RELATION_TRANSPOSE)
+    {
       Trace("sets-postrewrite") << "Sets::postRewrite returning " << node << std::endl;
       return RewriteResponse(REWRITE_DONE, node);
     }
     break;
   }
 
-  case kind::PRODUCT: {
+  case kind::RELATION_PRODUCT:
+  {
     Trace("sets-rels-postrewrite") << "Sets::postRewrite processing " <<  node << std::endl;
-    if( node[0].getKind() == kind::EMPTYSET ||
-        node[1].getKind() == kind::EMPTYSET) {
+    if (node[0].getKind() == kind::SET_EMPTY
+        || node[1].getKind() == kind::SET_EMPTY)
+    {
       return RewriteResponse(REWRITE_DONE,
                              nm->mkConst(EmptySet(node.getType())));
-    } else if( node[0].isConst() && node[1].isConst() ) {
+    }
+    else if (node[0].isConst() && node[1].isConst())
+    {
       Trace("sets-rels-postrewrite") << "Sets::postRewrite processing **** " <<  node << std::endl;
       std::set<Node> new_tuple_set;
       std::set<Node> left = NormalForm::getElementsFromNormalConstant(node[0]);
@@ -351,12 +413,16 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
     break;
   }
 
-  case kind::JOIN: {
-    if( node[0].getKind() == kind::EMPTYSET ||
-        node[1].getKind() == kind::EMPTYSET) {
+  case kind::RELATION_JOIN:
+  {
+    if (node[0].getKind() == kind::SET_EMPTY
+        || node[1].getKind() == kind::SET_EMPTY)
+    {
       return RewriteResponse(REWRITE_DONE,
                              nm->mkConst(EmptySet(node.getType())));
-    } else if( node[0].isConst() && node[1].isConst() ) {
+    }
+    else if (node[0].isConst() && node[1].isConst())
+    {
       Trace("sets-rels-postrewrite") << "Sets::postRewrite processing " <<  node << std::endl;
       std::set<Node> new_tuple_set;
       std::set<Node> left = NormalForm::getElementsFromNormalConstant(node[0]);
@@ -397,32 +463,43 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
     break;
   }
 
-  case kind::TCLOSURE: {
-    if(node[0].getKind() == kind::EMPTYSET) {
+  case kind::RELATION_TCLOSURE:
+  {
+    if (node[0].getKind() == kind::SET_EMPTY)
+    {
       return RewriteResponse(REWRITE_DONE,
                              nm->mkConst(EmptySet(node.getType())));
-    } else if (node[0].isConst()) {
+    }
+    else if (node[0].isConst())
+    {
       std::set<Node> rel_mems = NormalForm::getElementsFromNormalConstant(node[0]);
       std::set<Node> tc_rel_mems = RelsUtils::computeTC(rel_mems, node);
       Node new_node = NormalForm::elementsToSet(tc_rel_mems, node.getType());
       Assert(new_node.isConst());
       Trace("sets-postrewrite") << "Sets::postRewrite returning " << new_node << std::endl;
       return RewriteResponse(REWRITE_DONE, new_node);
-      
-    } else if(node[0].getKind() == kind::TCLOSURE) {
+    }
+    else if (node[0].getKind() == kind::RELATION_TCLOSURE)
+    {
       return RewriteResponse(REWRITE_AGAIN, node[0]);
-    } else if(node[0].getKind() != kind::TCLOSURE) {
+    }
+    else if (node[0].getKind() != kind::RELATION_TCLOSURE)
+    {
       Trace("sets-postrewrite") << "Sets::postRewrite returning " << node << std::endl;
       return RewriteResponse(REWRITE_DONE, node);
     }
     break;
   }
-  
-  case kind::IDEN: {
-    if(node[0].getKind() == kind::EMPTYSET) {
+
+  case kind::RELATION_IDEN:
+  {
+    if (node[0].getKind() == kind::SET_EMPTY)
+    {
       return RewriteResponse(REWRITE_DONE,
                              nm->mkConst(EmptySet(node.getType())));
-    } else if (node[0].isConst()) {
+    }
+    else if (node[0].isConst())
+    {
       std::set<Node> iden_rel_mems;
       std::set<Node> rel_mems = NormalForm::getElementsFromNormalConstant(node[0]);
       std::set<Node>::iterator rel_mems_it = rel_mems.begin();
@@ -437,23 +514,31 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
       Assert(new_node.isConst());
       Trace("rels-postrewrite") << "Rels::postRewrite returning " << new_node << std::endl;
       return RewriteResponse(REWRITE_DONE, new_node);
-
-    } else {
+    }
+    else
+    {
       Trace("rels-postrewrite") << "Rels::postRewrite miss to handle term " << node << std::endl;
     }
     break;
   }
 
-  case kind::JOIN_IMAGE: {
+  case kind::RELATION_JOIN_IMAGE:
+  {
     unsigned int min_card = node[1].getConst<Rational>().getNumerator().getUnsignedInt();
     Trace("rels-postrewrite") << "Rels::postRewrite  " << node << " with min_card = " << min_card << std::endl;
 
     if( min_card == 0) {
-      return RewriteResponse(REWRITE_DONE, nm->mkNullaryOperator( node.getType(), kind::UNIVERSE_SET ));
-    } else if(node[0].getKind() == kind::EMPTYSET) {
+      return RewriteResponse(
+          REWRITE_DONE,
+          nm->mkNullaryOperator(node.getType(), kind::SET_UNIVERSE));
+    }
+    else if (node[0].getKind() == kind::SET_EMPTY)
+    {
       return RewriteResponse(REWRITE_DONE,
                              nm->mkConst(EmptySet(node.getType())));
-    } else if (node[0].isConst()) {
+    }
+    else if (node[0].isConst())
+    {
       std::set<Node> has_checked;
       std::set<Node> join_img_mems;
       std::set<Node> rel_mems = NormalForm::getElementsFromNormalConstant(node[0]);
@@ -486,7 +571,9 @@ RewriteResponse TheorySetsRewriter::postRewrite(TNode node) {
       Assert(new_node.isConst());
       Trace("rels-postrewrite") << "Rels::postRewrite returning " << new_node << std::endl;
       return RewriteResponse(REWRITE_DONE, new_node);
-    } else {
+    }
+    else
+    {
       Trace("rels-postrewrite") << "Rels::postRewrite miss to handle term " << node << std::endl;
     }
     break;
@@ -510,7 +597,7 @@ RewriteResponse TheorySetsRewriter::preRewrite(TNode node) {
       return RewriteResponse(REWRITE_DONE, nm->mkConst(true));
     }
   }
-  else if (k == kind::INSERT)
+  else if (k == kind::SET_INSERT)
   {
     size_t setNodeIndex =  node.getNumChildren()-1;
     TypeNode elementType = node[setNodeIndex].getType().getSetElementType();
@@ -519,20 +606,21 @@ RewriteResponse TheorySetsRewriter::preRewrite(TNode node) {
     for (size_t i = 1; i < setNodeIndex; ++i)
     {
       Node singleton = nm->mkSingleton(elementType, node[i]);
-      insertedElements = nm->mkNode(kind::UNION, insertedElements, singleton);
+      insertedElements =
+          nm->mkNode(kind::SET_UNION, insertedElements, singleton);
     }
-    return RewriteResponse(REWRITE_AGAIN, 
-                           nm->mkNode(kind::UNION,
-                                      insertedElements,
-                                      node[setNodeIndex]));
+    return RewriteResponse(
+        REWRITE_AGAIN,
+        nm->mkNode(kind::SET_UNION, insertedElements, node[setNodeIndex]));
   }
-  else if (k == kind::SUBSET)
+  else if (k == kind::SET_SUBSET)
   {
     // rewrite (A subset-or-equal B) as (A union B = B)
-    return RewriteResponse(REWRITE_AGAIN,
-                           nm->mkNode(kind::EQUAL,
-                                      nm->mkNode(kind::UNION, node[0], node[1]),
-                                      node[1]) );
+    return RewriteResponse(
+        REWRITE_AGAIN,
+        nm->mkNode(kind::EQUAL,
+                   nm->mkNode(kind::SET_UNION, node[0], node[1]),
+                   node[1]));
   }
 
   // could have an efficient normalizer for union here
index 91c592f186f7870219e7b10bc69733451fc3595f..0793f011b854be3a539cc7829cac5adc612eff53 100644 (file)
@@ -30,8 +30,8 @@ TypeNode SetsBinaryOperatorTypeRule::computeType(NodeManager* nodeManager,
                                                  TNode n,
                                                  bool check)
 {
-  Assert(n.getKind() == kind::UNION || n.getKind() == kind::INTERSECTION
-         || n.getKind() == kind::SETMINUS);
+  Assert(n.getKind() == kind::SET_UNION || n.getKind() == kind::SET_INTERSECTION
+         || n.getKind() == kind::SET_MINUS);
   TypeNode setType = n[0].getType(check);
   if (check)
   {
@@ -56,10 +56,10 @@ TypeNode SetsBinaryOperatorTypeRule::computeType(NodeManager* nodeManager,
 bool SetsBinaryOperatorTypeRule::computeIsConst(NodeManager* nodeManager,
                                                 TNode n)
 {
-  // only UNION has a const rule in kinds.
-  // INTERSECTION and SETMINUS are not used in the canonical representation of
-  // sets and therefore they do not have const rules in kinds
-  Assert(n.getKind() == kind::UNION);
+  // only SET_UNION has a const rule in kinds.
+  // SET_INTERSECTION and SET_MINUS are not used in the canonical representation
+  // of sets and therefore they do not have const rules in kinds
+  Assert(n.getKind() == kind::SET_UNION);
   return NormalForm::checkNormalConstant(n);
 }
 
@@ -67,7 +67,7 @@ TypeNode SubsetTypeRule::computeType(NodeManager* nodeManager,
                                      TNode n,
                                      bool check)
 {
-  Assert(n.getKind() == kind::SUBSET);
+  Assert(n.getKind() == kind::SET_SUBSET);
   TypeNode setType = n[0].getType(check);
   if (check)
   {
@@ -92,7 +92,7 @@ TypeNode MemberTypeRule::computeType(NodeManager* nodeManager,
                                      TNode n,
                                      bool check)
 {
-  Assert(n.getKind() == kind::MEMBER);
+  Assert(n.getKind() == kind::SET_MEMBER);
   TypeNode setType = n[1].getType(check);
   if (check)
   {
@@ -121,10 +121,10 @@ TypeNode SingletonTypeRule::computeType(NodeManager* nodeManager,
                                         TNode n,
                                         bool check)
 {
-  Assert(n.getKind() == kind::SINGLETON && n.hasOperator()
-         && n.getOperator().getKind() == kind::SINGLETON_OP);
+  Assert(n.getKind() == kind::SET_SINGLETON && n.hasOperator()
+         && n.getOperator().getKind() == kind::SET_SINGLETON_OP);
 
-  SingletonOp op = n.getOperator().getConst<SingletonOp>();
+  SetSingletonOp op = n.getOperator().getConst<SetSingletonOp>();
   TypeNode type1 = op.getType();
   if (check)
   {
@@ -145,7 +145,7 @@ TypeNode SingletonTypeRule::computeType(NodeManager* nodeManager,
 
 bool SingletonTypeRule::computeIsConst(NodeManager* nodeManager, TNode n)
 {
-  Assert(n.getKind() == kind::SINGLETON);
+  Assert(n.getKind() == kind::SET_SINGLETON);
   return n[0].isConst();
 }
 
@@ -153,7 +153,7 @@ TypeNode EmptySetTypeRule::computeType(NodeManager* nodeManager,
                                        TNode n,
                                        bool check)
 {
-  Assert(n.getKind() == kind::EMPTYSET);
+  Assert(n.getKind() == kind::SET_EMPTY);
   EmptySet emptySet = n.getConst<EmptySet>();
   return emptySet.getType();
 }
@@ -162,7 +162,7 @@ TypeNode CardTypeRule::computeType(NodeManager* nodeManager,
                                    TNode n,
                                    bool check)
 {
-  Assert(n.getKind() == kind::CARD);
+  Assert(n.getKind() == kind::SET_CARD);
   TypeNode setType = n[0].getType(check);
   if (check)
   {
@@ -179,14 +179,14 @@ TypeNode ComplementTypeRule::computeType(NodeManager* nodeManager,
                                          TNode n,
                                          bool check)
 {
-  Assert(n.getKind() == kind::COMPLEMENT);
+  Assert(n.getKind() == kind::SET_COMPLEMENT);
   TypeNode setType = n[0].getType(check);
   if (check)
   {
     if (!setType.isSet())
     {
       throw TypeCheckingExceptionPrivate(
-          n, "COMPLEMENT operates on a set, non-set object found");
+          n, "SET_COMPLEMENT operates on a set, non-set object found");
     }
   }
   return setType;
@@ -196,7 +196,7 @@ TypeNode UniverseSetTypeRule::computeType(NodeManager* nodeManager,
                                           TNode n,
                                           bool check)
 {
-  Assert(n.getKind() == kind::UNIVERSE_SET);
+  Assert(n.getKind() == kind::SET_UNIVERSE);
   // for nullary operators, we only computeType for check=true, since they are
   // given TypeAttr() on creation
   Assert(check);
@@ -213,7 +213,7 @@ TypeNode ComprehensionTypeRule::computeType(NodeManager* nodeManager,
                                             TNode n,
                                             bool check)
 {
-  Assert(n.getKind() == kind::COMPREHENSION);
+  Assert(n.getKind() == kind::SET_COMPREHENSION);
   if (check)
   {
     if (n[0].getType(check) != nodeManager->boundVarListType())
@@ -234,14 +234,14 @@ TypeNode ChooseTypeRule::computeType(NodeManager* nodeManager,
                                      TNode n,
                                      bool check)
 {
-  Assert(n.getKind() == kind::CHOOSE);
+  Assert(n.getKind() == kind::SET_CHOOSE);
   TypeNode setType = n[0].getType(check);
   if (check)
   {
     if (!setType.isSet())
     {
       throw TypeCheckingExceptionPrivate(
-          n, "CHOOSE operator expects a set, a non-set is found");
+          n, "SET_CHOOSE operator expects a set, a non-set is found");
     }
   }
   return setType.getSetElementType();
@@ -251,14 +251,14 @@ TypeNode IsSingletonTypeRule::computeType(NodeManager* nodeManager,
                                           TNode n,
                                           bool check)
 {
-  Assert(n.getKind() == kind::IS_SINGLETON);
+  Assert(n.getKind() == kind::SET_IS_SINGLETON);
   TypeNode setType = n[0].getType(check);
   if (check)
   {
     if (!setType.isSet())
     {
       throw TypeCheckingExceptionPrivate(
-          n, "IS_SINGLETON operator expects a set, a non-set is found");
+          n, "SET_IS_SINGLETON operator expects a set, a non-set is found");
     }
   }
   return nodeManager->booleanType();
@@ -268,7 +268,7 @@ TypeNode InsertTypeRule::computeType(NodeManager* nodeManager,
                                      TNode n,
                                      bool check)
 {
-  Assert(n.getKind() == kind::INSERT);
+  Assert(n.getKind() == kind::SET_INSERT);
   size_t numChildren = n.getNumChildren();
   Assert(numChildren >= 2);
   TypeNode setType = n[numChildren - 1].getType(check);
@@ -297,7 +297,8 @@ TypeNode RelBinaryOperatorTypeRule::computeType(NodeManager* nodeManager,
                                                 TNode n,
                                                 bool check)
 {
-  Assert(n.getKind() == kind::PRODUCT || n.getKind() == kind::JOIN);
+  Assert(n.getKind() == kind::RELATION_PRODUCT
+         || n.getKind() == kind::RELATION_JOIN);
 
   TypeNode firstRelType = n[0].getType(check);
   TypeNode secondRelType = n[1].getType(check);
@@ -318,8 +319,8 @@ TypeNode RelBinaryOperatorTypeRule::computeType(NodeManager* nodeManager,
   std::vector<TypeNode> firstTupleTypes = firstRelType[0].getTupleTypes();
   std::vector<TypeNode> secondTupleTypes = secondRelType[0].getTupleTypes();
 
-  // JOIN is not allowed to apply on two unary sets
-  if (n.getKind() == kind::JOIN)
+  // RELATION_JOIN is not allowed to apply on two unary sets
+  if (n.getKind() == kind::RELATION_JOIN)
   {
     if ((firstTupleTypes.size() == 1) && (secondTupleTypes.size() == 1))
     {
@@ -338,7 +339,7 @@ TypeNode RelBinaryOperatorTypeRule::computeType(NodeManager* nodeManager,
                          secondTupleTypes.begin() + 1,
                          secondTupleTypes.end());
   }
-  else if (n.getKind() == kind::PRODUCT)
+  else if (n.getKind() == kind::RELATION_PRODUCT)
   {
     newTupleTypes.insert(
         newTupleTypes.end(), firstTupleTypes.begin(), firstTupleTypes.end());
@@ -354,7 +355,7 @@ TypeNode RelTransposeTypeRule::computeType(NodeManager* nodeManager,
                                            TNode n,
                                            bool check)
 {
-  Assert(n.getKind() == kind::TRANSPOSE);
+  Assert(n.getKind() == kind::RELATION_TRANSPOSE);
   TypeNode setType = n[0].getType(check);
   if (check && (!setType.isSet() || !setType.getSetElementType().isTuple()))
   {
@@ -370,7 +371,7 @@ TypeNode RelTransClosureTypeRule::computeType(NodeManager* nodeManager,
                                               TNode n,
                                               bool check)
 {
-  Assert(n.getKind() == kind::TCLOSURE);
+  Assert(n.getKind() == kind::RELATION_TCLOSURE);
   TypeNode setType = n[0].getType(check);
   if (check)
   {
@@ -399,7 +400,7 @@ TypeNode JoinImageTypeRule::computeType(NodeManager* nodeManager,
                                         TNode n,
                                         bool check)
 {
-  Assert(n.getKind() == kind::JOIN_IMAGE);
+  Assert(n.getKind() == kind::RELATION_JOIN_IMAGE);
 
   TypeNode firstRelType = n[0].getType(check);
 
@@ -435,7 +436,7 @@ TypeNode RelIdenTypeRule::computeType(NodeManager* nodeManager,
                                       TNode n,
                                       bool check)
 {
-  Assert(n.getKind() == kind::IDEN);
+  Assert(n.getKind() == kind::RELATION_IDEN);
   TypeNode setType = n[0].getType(check);
   if (check)
   {
index 4a6492aaa115785297d72acf138344a3de1800e4..deffb595c9288519f1ac0905dbfd2d4f739ffcae 100644 (file)
@@ -221,8 +221,8 @@ class TheoryModel : protected EnvObj
    * kind k in getModelValue. We distinguish four categories of kinds:
    *
    * [1] "Evaluated"
-   * This includes (standard) interpreted symbols like NOT, PLUS, UNION, etc.
-   * These operators can be characterized by the invariant that they are
+   * This includes (standard) interpreted symbols like NOT, PLUS, SET_UNION,
+   * etc. These operators can be characterized by the invariant that they are
    * "evaluatable". That is, if they are applied to only constants, the rewriter
    * is guaranteed to rewrite the application to a constant. When getting
    * the model value of <k>( t1...tn ) where k is a kind of this category, we
index e6529967650177affe9bbc6b247f24f96f8b2bad..34a79d59727e19a9f2fffa4fefb39342eaedf6fb 100644 (file)
@@ -976,10 +976,11 @@ def test_get_set(solver):
     i2 = solver.mkInteger(7)
 
     s1 = solver.mkEmptySet(s)
-    s2 = solver.mkTerm(kinds.Singleton, i1)
-    s3 = solver.mkTerm(kinds.Singleton, i1)
-    s4 = solver.mkTerm(kinds.Singleton, i2)
-    s5 = solver.mkTerm(kinds.Union, s2, solver.mkTerm(kinds.Union, s3, s4))
+    s2 = solver.mkTerm(kinds.SetSingleton, i1)
+    s3 = solver.mkTerm(kinds.SetSingleton, i1)
+    s4 = solver.mkTerm(kinds.SetSingleton, i2)
+    s5 = solver.mkTerm(
+            kinds.SetUnion, s2, solver.mkTerm(kinds.SetUnion, s3, s4))
 
     assert s1.isSetValue()
     assert s2.isSetValue()
index be5feea1c203061946a993eb8327379322e43ae8..88375e3e5bc77eea82a15be5842abf1e7969a9ac 100644 (file)
@@ -7,9 +7,9 @@
 
 
 (declare-fun emptyRoleSet () (Set role))
-(assert (= emptyRoleSet (as emptyset (Set role))))
+(assert (= emptyRoleSet (as set.empty (Set role))))
 (declare-fun d () (Array role |__cvc5_record_pos_(Set role)_neg_(Set role)|))
-(assert (= (pos (select d r3)) (singleton r1)))
-(assert (= (pos (select d r2)) (union (singleton r2) (singleton r3))))
-(assert (= (neg (select d r2)) (singleton r1)))
+(assert (= (pos (select d r3)) (set.singleton r1)))
+(assert (= (pos (select d r2)) (set.union (set.singleton r2) (set.singleton r3))))
+(assert (= (neg (select d r2)) (set.singleton r1)))
 (check-sat)
index eb8b9245491075943ec6f2b56ab1ba930ec74e10..920a53158a2a61359a05327f87b98b38cfd2d5b9 100644 (file)
 
 (declare-fun a () (Array Int |__cvc5_record_s_f____cvc5_record_base____cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)__|))
 (define-fun p1 () __cvc5_record_longitude_Int_latitude_Int (__cvc5_record_longitude_Int_latitude_Int_ctor 0 0))
-(define-fun s1 () |__cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)| (|__cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)_ctor| (singleton (__cvc5_record_longitude_Int_latitude_Int_ctor 0 0))))
-(define-fun f0 () |__cvc5_record_base____cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)_| (|__cvc5_record_base____cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)__ctor| (|__cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)_ctor| (singleton (__cvc5_record_longitude_Int_latitude_Int_ctor 0 0)))))
+(define-fun s1 () |__cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)| (|__cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)_ctor| (set.singleton (__cvc5_record_longitude_Int_latitude_Int_ctor 0 0))))
+(define-fun f0 () |__cvc5_record_base____cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)_| (|__cvc5_record_base____cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)__ctor| (|__cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)_ctor| (set.singleton (__cvc5_record_longitude_Int_latitude_Int_ctor 0 0)))))
 (define-fun init ((v (Array Int |__cvc5_record_s_f____cvc5_record_base____cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)__|)) (i Int) (f |__cvc5_record_base____cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)_|)) Bool (= (s_f (select v 0)) f))
-(assert (init a 2 (|__cvc5_record_base____cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)__ctor| (|__cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)_ctor| (singleton (__cvc5_record_longitude_Int_latitude_Int_ctor 0 0))))))
+(assert (init a 2 (|__cvc5_record_base____cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)__ctor| (|__cvc5_record_geoLoc_(Set __cvc5_record_longitude_Int_latitude_Int)_ctor| (set.singleton (__cvc5_record_longitude_Int_latitude_Int_ctor 0 0))))))
 (push 1)
 
 (assert true)
index 2ac70735c025d09686efabbbdd39b5e267616784..011b7432e5e499226fca688907a1d4eb55950866 100644 (file)
@@ -8,9 +8,9 @@
 (declare-fun st4 () (Set Int))
 (declare-fun st9 () (Set Int))
 (declare-const v6 Bool)
-(assert (! (forall ((q12 Int) (q13 Bool)) (xor false true true false true true v6 (<= 5 i5 93 417 i2) true (subset st2 st4) true)) :named IP_4))
+(assert (! (forall ((q12 Int) (q13 Bool)) (xor false true true false true true v6 (<= 5 i5 93 417 i2) true (set.subset st2 st4) true)) :named IP_4))
 (declare-const i11 Int)
-(assert (< (card st9) i11))
+(assert (< (set.card st9) i11))
 (assert (! (not (<= 5 i5 93 417 i2)) :named IP_46))
 (check-sat)
 (check-sat-assuming ((! (or v6 v6 v6) :named IP_12) (! (or false v6 v6) :named IP_56)))
\ No newline at end of file
index bbc25da68124bfe867b8a6bf907692d2ba8a1ac8..c4e4b76f686111d88934d0d98416dc6953794aef 100644 (file)
 
 (declare-fun isTip!5 (ConQ!6) Bool)
 
-(assert (=> start!13 (and (not (isTip!5 (evalLazyConQ2!7 lt!14))) (member lt!14 st!3))))
+(assert (=> start!13 (and (not (isTip!5 (evalLazyConQ2!7 lt!14))) (set.member lt!14 st!3))))
 
 (assert (=> start!13 (= lt!14 e!42)))
 
-(assert (=> start!13 (= b!40 (member l!2 st!3))))
+(assert (=> start!13 (= b!40 (set.member l!2 st!3))))
 
 (assert (=> start!13 (or (not b!40) (not b!42))))
 
index 07dc0169ebe6ecb901990be7712500128817daac..07f01a1f54e2eaee5cd0f18a6c193f9140137665 100644 (file)
@@ -3,7 +3,7 @@
 (set-logic ALL)
 (set-info :status sat)
 (declare-datatypes ((IntList 0)) (
-((empty) (insert ( head Int ) ( tail IntList ) ))
+((empty) (set.insert ( head Int ) ( tail IntList ) ))
 ))
 
 (declare-fun x () IntList)
index 430b22c59b92429f414e810567cf41fb3f162e86..2dba04bb13721003e370dfeffc66169b34cd3017 100644 (file)
@@ -4,12 +4,12 @@
 (set-info :status sat)
 (declare-datatypes ( ( Tree 0) ( TreeList 0) ) (
  ( ( node ( value Int ) ( children TreeList) ))
-( ( empty ) ( insert ( head Tree) ( tail TreeList)) )
+( ( empty ) ( set.insert ( head Tree) ( tail TreeList)) )
 ))
 
 
 (declare-fun t () TreeList)
-(assert (<= 100 (match t ((empty (- 1)) ((insert x1 x2) (value x1))))))
+(assert (<= 100 (match t ((empty (- 1)) ((set.insert x1 x2) (value x1))))))
 
 
 (declare-datatypes ( ( PTree 1) ( PTreeList 1) ) (
index f6d1cd58db1dd12754b9b0a4ab46a249207cba56..010b55feb14744ad2114f1b9f3497fcf3a039957 100644 (file)
@@ -2,7 +2,7 @@
 (set-info :status sat)
 (declare-datatypes ( (Tree 1) (TreeList 1) ) (
 (par ( X ) ( ( node ( value X ) ( children ( TreeList X )) )))
-(par ( Y ) ( ( empty ) ( insert ( head ( Tree Y )) ( tail ( TreeList Y ))) ))
+(par ( Y ) ( ( empty ) ( set.insert ( head ( Tree Y )) ( tail ( TreeList Y ))) ))
 ))
 
 
@@ -13,7 +13,7 @@
 
 (assert (distinct x y z))
 (assert (= (value x) 5))
-(assert ((_ is insert) (children y)))
+(assert ((_ is set.insert) (children y)))
 (assert (= (value (head (children y))) 7))
 
 (declare-sort U 0)
@@ -23,7 +23,7 @@
 
 (assert (distinct a b c))
 
-(assert ((_ is insert) (children a)))
+(assert ((_ is set.insert) (children a)))
 
 
 (declare-fun d () (Tree (Tree Int)))
index ae290a5ba15d23d2c3ee47179f4bace72496bcf6..0fdc0547154ea5d4e0cf9db1c698e0f9c6a6c06d 100644 (file)
@@ -3,7 +3,7 @@
 (set-logic ALL)
 (set-info :status unsat)
 (declare-datatypes ((IntList 0)) (
-((empty) (insert ( head Int ) ( tail IntList ) ))
+((empty) (set.insert ( head Int ) ( tail IntList ) ))
 ))
 
 (declare-fun x () IntList)
@@ -12,7 +12,7 @@
 
 (assert (distinct x y z))
 
-(assert (not ((_ is insert) x)))
-(assert (not ((_ is insert) y)))
+(assert (not ((_ is set.insert) x)))
+(assert (not ((_ is set.insert) y)))
 
 (check-sat)
index f80a6796a0b03b4312720a417b3f0d428365289c..283fcdc2646ea38e4db612897408148dc6e10b9a 100644 (file)
@@ -4,5 +4,5 @@
 (declare-datatype ty0 ((Emp) (Container (v2 (Set ty0)))))
 (declare-fun v1 () ty0)
 (assert (not ((_ is Emp) v1)))
-(assert (= (v2 v1) (singleton v1)))
+(assert (= (v2 v1) (set.singleton v1)))
 (check-sat)
index b06c3636f07542e61640fd3371e507f4c8e4ea26..363512fa1da761f8ed01b09e0416269cd53b02e6 100644 (file)
@@ -6,13 +6,13 @@
 (declare-fun S () (Set Int))
 (declare-fun P (Int) Bool)
 (declare-fun a () Int)
-(assert (member a S))
-(assert (forall ((y Int)) (=> (member y S) (P y))))
+(assert (set.member a S))
+(assert (forall ((y Int)) (=> (set.member y S) (P y))))
 
 
 (declare-fun T () (Set Int))
 (declare-fun b () Int)
-(assert (member b T))
-(assert (forall ((y Int)) (=> (member y T) (not (P y)))))
+(assert (set.member b T))
+(assert (forall ((y Int)) (=> (set.member y T) (not (P y)))))
 
 (check-sat)
index 1e289d94fc0611fcb7c90ebd6ab73929964c67a4..e110c4e465ae24eefe68f3ad33a7d45b8f092592 100644 (file)
 (declare-fun f (U) U)
 
 (assert (forall ((x Int) (z U))
-(=> (member x (S (f z)))
+(=> (set.member x (S (f z)))
 (P x z))))
 
 ; need model of U size 2 to satisfy these
 (declare-fun a () U)
-(assert (member 77 (S a)))
+(assert (set.member 77 (S a)))
 (assert (not (P 77 a)))
 
 ; unsat
index 68fee3f210dcef5b37fad9e85d53fc1ba9ff38ad..d1c93a45b1162f24d9ef3e225adb0e6e9226248b 100644 (file)
@@ -6,8 +6,8 @@
 (declare-sort Atom 0)
 (declare-fun REAL_UNIVERSE () (Set (Tuple Real)))
 (declare-fun ATOM_UNIVERSE () (Set (Tuple Atom)))
-(assert (= REAL_UNIVERSE (as univset (Set (Tuple Real)))))
-(assert (= ATOM_UNIVERSE (as univset (Set (Tuple Atom)))))
+(assert (= REAL_UNIVERSE (as set.universe (Set (Tuple Real)))))
+(assert (= ATOM_UNIVERSE (as set.universe (Set (Tuple Atom)))))
 (declare-fun levelVal () (Set (Tuple Atom Real)))
-(assert (forall ((s Atom) (v1 Real) (v2 Real)) (=> (and (and (member (tuple s) ATOM_UNIVERSE) (member (tuple v1) REAL_UNIVERSE)) (member (tuple v2) REAL_UNIVERSE)) (=> (and (member (tuple s v1) levelVal) (member (tuple s v2) levelVal)) (= v1 v2)))))
+(assert (forall ((s Atom) (v1 Real) (v2 Real)) (=> (and (and (set.member (tuple s) ATOM_UNIVERSE) (set.member (tuple v1) REAL_UNIVERSE)) (set.member (tuple v2) REAL_UNIVERSE)) (=> (and (set.member (tuple s v1) levelVal) (set.member (tuple s v2) levelVal)) (= v1 v2)))))
 (check-sat)
index 747bfd48e9c142cc31a3df785d711b4ca94debbd..c3b0e73872a7e6d5983b8a2d4f1d3beaef21e665 100644 (file)
@@ -13,7 +13,7 @@
 (declare-fun minus$ (Complex$ Complex$) Complex$)
 (declare-fun norm$a (Real) Real)
 (declare-fun zero$a () Nat$)
-(declare-fun member$ (Real Real_set$) Bool)
+(declare-fun set.member$ (Real Real_set$) Bool)
 (declare-fun minus$a (Nat$ Nat$) Nat$)
 (declare-fun thesis$ () Bool)
 (declare-fun collect$ ((-> Real Bool)) Real_set$)
index a6e514407768b8cca94ee05dcf73384e749b621d..8f004b8f3c0c3f17d32ba3b414dcb49f6e5b56cd 100644 (file)
@@ -2,6 +2,6 @@
 (set-logic QF_UF)
 (declare-sort T 0)
 (declare-fun union () T)
-(declare-fun emptyset () T)
-(assert (= union emptyset))
+(declare-fun set.empty () T)
+(assert (= union set.empty))
 (check-sat)
index 00fc33d5601dfb5988daa2d8f6664d146df72340..70488b4eb4772ff450d399cfb307eea5fed3a20b 100644 (file)
 (declare-fun b1 () Atom)
 (declare-fun b1_tup () (Tuple Atom))
 (assert (= b1_tup (tuple b1)))
-(assert (member b1_tup Book))
+(assert (set.member b1_tup Book))
 (declare-fun b2 () Atom)
 (declare-fun b2_tup () (Tuple Atom))
 (assert (= b2_tup (tuple b2)))
-(assert (member b2_tup Book))
+(assert (set.member b2_tup Book))
 (declare-fun b3 () Atom)
 (declare-fun b3_tup () (Tuple Atom))
 (assert (= b3_tup (tuple b3)))
-(assert (member b3_tup Book))
+(assert (set.member b3_tup Book))
 (declare-fun n () Atom)
 (declare-fun n_tup () (Tuple Atom))
 (assert (= n_tup (tuple n)))
-(assert (member n_tup Name))
+(assert (set.member n_tup Name))
 (declare-fun t () Atom)
 (declare-fun t_tup () (Tuple Atom))
 (assert (= t_tup (tuple t)))
-(assert (member t_tup Target))
-(assert (subset (join (join Book addr) Target) Name))
-(assert (subset (join Book names) Name))
-(assert (= (intersection Name Addr) (as emptyset (Set (Tuple Atom)))))
-(assert (= (join (singleton n_tup) (join (singleton b1_tup) addr)) (as emptyset (Set (Tuple Atom)))))
-(assert (let ((_let_1 (singleton n_tup))) (= (join _let_1 (join (singleton b2_tup) addr)) (union (join _let_1 (join (singleton b1_tup) addr)) (singleton t_tup)))))
-(assert (let ((_let_1 (singleton n_tup))) (= (join _let_1 (join (singleton b3_tup) addr)) (setminus (join _let_1 (join (singleton b2_tup) addr)) (singleton t_tup)))))
-(assert (let ((_let_1 (singleton n_tup))) (not (= (join _let_1 (join (singleton b1_tup) addr)) (join _let_1 (join (singleton b3_tup) addr))))))
+(assert (set.member t_tup Target))
+(assert (set.subset (rel.join (rel.join Book addr) Target) Name))
+(assert (set.subset (rel.join Book names) Name))
+(assert (= (set.intersection Name Addr) (as set.empty (Set (Tuple Atom)))))
+(assert (= (rel.join (set.singleton n_tup) (rel.join (set.singleton b1_tup) addr)) (as set.empty (Set (Tuple Atom)))))
+(assert (let ((_let_1 (set.singleton n_tup))) (= (rel.join _let_1 (rel.join (set.singleton b2_tup) addr)) (set.union (rel.join _let_1 (rel.join (set.singleton b1_tup) addr)) (set.singleton t_tup)))))
+(assert (let ((_let_1 (set.singleton n_tup))) (= (rel.join _let_1 (rel.join (set.singleton b3_tup) addr)) (set.minus (rel.join _let_1 (rel.join (set.singleton b2_tup) addr)) (set.singleton t_tup)))))
+(assert (let ((_let_1 (set.singleton n_tup))) (not (= (rel.join _let_1 (rel.join (set.singleton b1_tup) addr)) (rel.join _let_1 (rel.join (set.singleton b3_tup) addr))))))
 (check-sat)
index ad7d5ec4bba8bdc1bca00e6f57476ce32dcb06cc..11799ba793d343f1f2fdf6b4eb184f3aa4046304 100644 (file)
@@ -8,10 +8,10 @@
 (declare-fun x () Atom)
 (declare-fun y () Atom)
 (assert (not (= x y)))
-(assert (member (tuple y) a))
-(assert (member (tuple x y) b))
-(assert (= (as univset (Set (Tuple Atom Atom))) (product (as univset (Set (Tuple Atom))) (as univset (Set (Tuple Atom))))))
+(assert (set.member (tuple y) a))
+(assert (set.member (tuple x y) b))
+(assert (= (as set.universe (Set (Tuple Atom Atom))) (rel.product (as set.universe (Set (Tuple Atom))) (as set.universe (Set (Tuple Atom))))))
 (declare-fun u () (Set (Tuple Atom Atom)))
-(assert (= u (as univset (Set (Tuple Atom Atom)))))
-(assert (not (member (tuple x y) u)))
+(assert (= u (as set.universe (Set (Tuple Atom Atom)))))
+(assert (not (set.member (tuple x y) u)))
 (check-sat)
index 8356eca417b3351aa5add7187382103d432ccaec..6db1e0e473e85812738d752739917e81aad3a8d0 100644 (file)
@@ -3,5 +3,5 @@
 (set-logic ALL)
 
 (declare-fun x () (Set (Tuple Int Int)))
-(assert (> (card (transpose x)) 0))
+(assert (> (set.card (rel.transpose x)) 0))
 (check-sat)
index d2d091e608856107642ea3e99d7d9c6e921ae0bf..1cdeffbfff6575810a0f7f3ec7cf4ab3c364f042 100644 (file)
 (assert (= v (tuple 1 1)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
-(assert (member (tuple 1) t))
-(assert (member (tuple 2) t))
-(assert (member z x))
-(assert (member zt x))
-(assert (member v x))
-(assert (member a x))
-(assert (= id (iden t)))
-(assert (not (member (tuple 1 1) (intersection id x))))
+(assert (set.member (tuple 1) t))
+(assert (set.member (tuple 2) t))
+(assert (set.member z x))
+(assert (set.member zt x))
+(assert (set.member v x))
+(assert (set.member a x))
+(assert (= id (rel.iden t)))
+(assert (not (set.member (tuple 1 1) (set.intersection id x))))
 (check-sat)
index c2de24558ced6d6671a1de0e0c438bb7a57a3fcc..64efc4aef47b1b69d99bc6f4d3d6bdff59059aea 100644 (file)
@@ -11,9 +11,9 @@
 (declare-fun b () Atom)
 (declare-fun c () Atom)
 (declare-fun d () Atom)
-(assert (= univ (as univset (Set (Tuple Atom)))))
-(assert (member (tuple a b) x))
-(assert (member (tuple c d) x))
+(assert (= univ (as set.universe (Set (Tuple Atom)))))
+(assert (set.member (tuple a b) x))
+(assert (set.member (tuple c d) x))
 (assert (not (= a b)))
-(assert (= (iden (join x univ)) x))
+(assert (= (rel.iden (rel.join x univ)) x))
 (check-sat)
index 37af1b41818e51cb86246687612850864e3c27be..9dd334b5e8a9ccf65e416482b90613351474ea25 100644 (file)
@@ -9,10 +9,10 @@
 
 (declare-fun w () (Set (Tuple Int unit)))
 (declare-fun z () (Set (Tuple unit Int)))
-(assert (= (join x y) (join w z)))
-(assert (member (tuple 0 1) (join x y)))
-(assert (member (tuple 0 u) w))
+(assert (= (rel.join x y) (rel.join w z)))
+(assert (set.member (tuple 0 1) (rel.join x y)))
+(assert (set.member (tuple 0 u) w))
 (declare-fun t () Int)
 (assert (and (> t 0) (< t 3)))
-(assert (not (member (tuple u t) z)))
+(assert (not (set.member (tuple u t) z)))
 (check-sat)
index 92514a3be26950752aad9eac8b6a93e01898675b..652504a1a4c29f60feec7c5390d56870550b3951 100644 (file)
@@ -9,10 +9,10 @@
 
 (declare-fun w () (Set (Tuple Int unit)))
 (declare-fun z () (Set (Tuple unit Int)))
-(assert (= (join x y) (join w z)))
-(assert (member (tuple 0 1) (join x y)))
-(assert (member (tuple 0 u) w))
+(assert (= (rel.join x y) (rel.join w z)))
+(assert (set.member (tuple 0 1) (rel.join x y)))
+(assert (set.member (tuple 0 u) w))
 (declare-fun t () Int)
 (assert (and (> t 0) (< t 2)))
-(assert (not (member (tuple u t) z)))
+(assert (not (set.member (tuple u t) z)))
 (check-sat)
index 76a13b645cdc43831ce03a8fae64a7bda1b218c2..85d9cac6f66af692cc857e78fc8bc5e3a11bd1b8 100644 (file)
 (assert (= v (tuple 1 1)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
-(assert (member (tuple 1 7) x))
-(assert (member z x))
-(assert (member (tuple 7 5) y))
-(assert (= t (join_image x 2)))
-(assert (member (tuple 3) (join_image x 2)))
-(assert (not (member (tuple 1) (join_image x 2))))
-(assert (member (tuple 4) (join_image x 2)))
-(assert (member (tuple 1) (join_image x 1)))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member z x))
+(assert (set.member (tuple 7 5) y))
+(assert (= t (rel.join_image x 2)))
+(assert (set.member (tuple 3) (rel.join_image x 2)))
+(assert (not (set.member (tuple 1) (rel.join_image x 2))))
+(assert (set.member (tuple 4) (rel.join_image x 2)))
+(assert (set.member (tuple 1) (rel.join_image x 1)))
 (check-sat)
index c04aa798515095500539913d78fde60b4dbe08e4..ee500f8edb2644fdb125857acc07e2bd7dbd20c5 100644 (file)
@@ -8,6 +8,6 @@
 (declare-fun c () Atom)
 (declare-fun J ((Set (Tuple Atom)) (Set (Tuple Atom Atom))) (Set (Tuple Atom)))
 (declare-fun T ((Set (Tuple Atom Atom))) (Set (Tuple Atom Atom)))
-(assert (let ((_let_1 (singleton (tuple a)))) (= (join _let_1 t) (J _let_1 t))))
-(assert (let ((_let_1 (singleton (tuple c)))) (not (= (join _let_1 (tclosure t)) _let_1))))
+(assert (let ((_let_1 (set.singleton (tuple a)))) (= (rel.join _let_1 t) (J _let_1 t))))
+(assert (let ((_let_1 (set.singleton (tuple c)))) (not (= (rel.join _let_1 (rel.tclosure t)) _let_1))))
 (check-sat)
index 52ee0b1c0f49ba832ab8f81e670d7f3749da7ba0..0e9a61922918d31c06d104e098c89a50c826b591 100644 (file)
@@ -1,5 +1,5 @@
 (set-logic ALL)
 (set-info :status sat)
 (declare-fun d () (Tuple Int Int))
-(assert (= (as emptyset (Set (Tuple Int Int))) (join (singleton (tuple 1 0)) (singleton d))))
+(assert (= (as set.empty (Set (Tuple Int Int))) (rel.join (set.singleton (tuple 1 0)) (set.singleton d))))
 (check-sat)
index b489ce65b52d34cca76207645d122285bb821c2c..6804a4df87e7c5ecfee72c874a3b98c059923ed8 100644 (file)
@@ -4,5 +4,5 @@
 (declare-fun b () (Set (Tuple Int Int)))
 (declare-fun c () Int)
 (declare-fun d () (Tuple Int Int))
-(assert (and (= b (singleton (tuple 1 0))) (= a (join b (transpose a))) (= a (join b (tclosure a))) (= a (join b (singleton d)))))
+(assert (and (= b (set.singleton (tuple 1 0))) (= a (rel.join b (rel.transpose a))) (= a (rel.join b (rel.tclosure a))) (= a (rel.join b (set.singleton d)))))
 (check-sat)
index 4210a548647d9bfe6519160c9160b1f0c182e2cb..5a320b1d0503e52e3714f77427c64aed6ecb51ec 100644 (file)
@@ -8,12 +8,12 @@
 (declare-fun z () (Set (Tuple Int)))
 (declare-fun b () (Tuple Int Int))
 (assert (= b (tuple 2 1)))
-(assert (member b x))
+(assert (set.member b x))
 (declare-fun a () (Tuple Int))
 (assert (= a (tuple 1)))
-(assert (member a y))
+(assert (set.member a y))
 (declare-fun c () (Tuple Int))
 (assert (= c (tuple 2)))
-(assert (= z (join x y)))
-(assert (not (member c z)))
+(assert (= z (rel.join x y)))
+(assert (not (set.member c z)))
 (check-sat)
index 2f4aea539dfa3a7dc2e9f7d5ebaecc4a5693a94e..a72a26b9b803b353d00afe8e39a687afe938e361 100644 (file)
 (declare-fun g () Int)
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 f)))
-(assert (member e x))
+(assert (set.member e x))
 (declare-fun d () (Tuple Int Int))
 (assert (= d (tuple g 3)))
-(assert (member d y))
-(assert (= z (union (singleton f) (singleton g))))
+(assert (set.member d y))
+(assert (= z (set.union (set.singleton f) (set.singleton g))))
 (assert (= 0 (- f g)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 4 3)))
-(assert (= r (join x y)))
-(assert (not (member a r)))
+(assert (= r (rel.join x y)))
+(assert (not (set.member a r)))
 (check-sat)
index e8ccfb0707724f4c8f9c540a7bd024c3b7500036..389260e17e191f9488db4dcc6d09c80bbd1cfe8d 100644 (file)
 (declare-fun r2 () (Set (Tuple Int Int)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 3 1)))
-(assert (member a x))
+(assert (set.member a x))
 (declare-fun d () (Tuple Int Int))
 (assert (= d (tuple 1 3)))
-(assert (member d y))
+(assert (set.member d y))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 3)))
-(assert (= r (join x y)))
-(assert (member (tuple 1) w))
-(assert (member (tuple 2) z))
-(assert (= r2 (product w z)))
-(assert (not (member e r)))
-(assert (subset r r2))
-(assert (not (member (tuple 3 3) r2)))
+(assert (= r (rel.join x y)))
+(assert (set.member (tuple 1) w))
+(assert (set.member (tuple 2) z))
+(assert (= r2 (rel.product w z)))
+(assert (not (set.member e r)))
+(assert (set.subset r r2))
+(assert (not (set.member (tuple 3 3) r2)))
 (check-sat)
index e074778c5d9c025ee6af6cf0de4ef5a74e6b4445..4b7fede6cd2fb69479fae361d42cd8855f12664c 100644 (file)
@@ -5,6 +5,6 @@
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 4)))
-(assert (member e x))
-(assert (not (member (tuple 4 4) x)))
+(assert (set.member e x))
+(assert (not (set.member (tuple 4 4) x)))
 (check-sat)
index 3c36d36e82cab6610c561644cb07c204f8974975..018b83e27703fe44f014ec479a15e64ef1a23108 100644 (file)
@@ -13,9 +13,9 @@
 (assert (= v (tuple 1 1)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
-(assert (member (tuple 1 7) x))
-(assert (member (tuple 7 5) y))
-(assert (member z x))
-(assert (member zt y))
-(assert (not (member a (join x y))))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member (tuple 7 5) y))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (not (set.member a (rel.join x y))))
 (check-sat)
index 6af8429d3428a51221a9be8a01a7ef89ae7ce359..4489b1a16bf4b8c92206dc71f52dff3137ec459f 100644 (file)
 (assert (= v (tuple 1 1)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
-(assert (member (tuple 1 7) x))
-(assert (member (tuple 4 3) x))
-(assert (member (tuple 7 5) y))
-(assert (member z x))
-(assert (member zt y))
-(assert (member a (join x y)))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member (tuple 4 3) x))
+(assert (set.member (tuple 7 5) y))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (set.member a (rel.join x y)))
 (check-sat)
index 88f8c73f340ccc093f9ec8f8edce5b43bf3bcd13..638964931150ba49775e03ba205a2b7d71d1604a 100644 (file)
 (assert (= v (tuple 1 1)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
-(assert (member (tuple 1 7) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 3 4) x))
-(assert (member (tuple 7 5) y))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (member z x))
-(assert (member zt y))
-(assert (not (member a (join x y))))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 3 4) x))
+(assert (set.member (tuple 7 5) y))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (not (set.member a (rel.join x y))))
 (check-sat)
index e1556149cecc6b0c3dc8f3f04c8fc921e2a179e7..357f37922f0f20c32a09d8ce9523dbb214b465e5 100644 (file)
 (assert (= v (tuple 1 1)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
-(assert (member (tuple 1 7) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 3 4) x))
-(assert (member (tuple 7 5) y))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (member z x))
-(assert (member zt y))
-(assert (= r (join x y)))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 3 4) x))
+(assert (set.member (tuple 7 5) y))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (= r (rel.join x y)))
 (check-sat)
index 5c8f0ea9130b574a0f645bb4a0b7e17588b9d125..3359f2f625d65da9d527b98e13d87c5e276cb445 100644 (file)
@@ -11,7 +11,7 @@
 (assert (= zt (tuple 2 1 3)))
 (declare-fun a () (Tuple Int Int Int))
 (assert (= a (tuple 1 1 3)))
-(assert (member z x))
-(assert (member zt y))
-(assert (not (member a (join x y))))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (not (set.member a (rel.join x y))))
 (check-sat)
index 82433cc1bbdfc914589ce57a34e6fbbfa3b47518..5c1f114a51423c213e1cfbee804a44fcc1c39495 100644 (file)
@@ -11,7 +11,7 @@
 (assert (= zt (tuple 2 1 3)))
 (declare-fun a () (Tuple Int Int Int))
 (assert (= a (tuple 1 1 3)))
-(assert (member z x))
-(assert (member zt y))
-(assert (member a (join x y)))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (set.member a (rel.join x y)))
 (check-sat)
index 4a33585268476b349cb8bce3dfbd543aea35f16f..6459b9f032abf655fae89512af9eb0338b1bc030 100644 (file)
 (assert (= v (tuple 1 1)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
-(assert (member (tuple 1 7) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 3 4) x))
-(assert (member (tuple 7 5) y))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (= r (join x y)))
-(assert (member z x))
-(assert (member zt y))
-(assert (not (member a r)))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 3 4) x))
+(assert (set.member (tuple 7 5) y))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (= r (rel.join x y)))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (not (set.member a r)))
 (check-sat)
index 7b66ab4436f539f233712fd2ee123aab4d174310..1fb714112771bd4106f453c943477acab41efaa0 100644 (file)
 (assert (= v (tuple 1 1)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
-(assert (member (tuple 1 7) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 3 4) x))
-(assert (member (tuple 7 5) y))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (= r (join x y)))
-(assert (member z x))
-(assert (member zt y))
-(assert (member a r))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 3 4) x))
+(assert (set.member (tuple 7 5) y))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (= r (rel.join x y)))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (set.member a r))
 (check-sat)
index bc4f165136c58068dc4ede74aab5216ee0b1b21e..fc9fad09bf923836e5fc5d3bc94fa7e979c1d9e8 100644 (file)
 (assert (= a (tuple 1 5)))
 (declare-fun b () (Tuple Int Int))
 (assert (= b (tuple 7 5)))
-(assert (member (tuple 1 7) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 3 4) x))
-(assert (member b y))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (= r (join x y)))
-(assert (member z x))
-(assert (member zt y))
-(assert (not (member a r)))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 3 4) x))
+(assert (set.member b y))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (= r (rel.join x y)))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (not (set.member a r)))
 (check-sat)
index 227395fe60c8b686d5f8288169a38137db1fef1e..cd256a476f431eb9e685a3c38a7f944fdd9317d2 100644 (file)
@@ -6,13 +6,13 @@
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
 (declare-fun r () (Set (Tuple Int Int)))
-(assert (member (tuple 7 1) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (member (tuple 3 4) z))
+(assert (set.member (tuple 7 1) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (set.member (tuple 3 4) z))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 4)))
-(assert (= r (join (join (transpose x) y) z)))
-(assert (not (member a r)))
+(assert (= r (rel.join (rel.join (rel.transpose x) y) z)))
+(assert (not (set.member a r)))
 (check-sat)
index 547430c19d7125f29596cc17c9724ff7c4ba2b2f..81ab335aa205bc2c55dc513973fa82ccb342cfe7 100644 (file)
@@ -5,7 +5,7 @@
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun r () (Set (Tuple Int Int)))
-(assert (= x (union (singleton (tuple 1 2)) (singleton (tuple 3 4)))))
-(assert (= y (join x (union (singleton (tuple 2 1)) (singleton (tuple 4 3))))))
-(assert (not (member (tuple 1 1) y)))
+(assert (= x (set.union (set.singleton (tuple 1 2)) (set.singleton (tuple 3 4)))))
+(assert (= y (rel.join x (set.union (set.singleton (tuple 2 1)) (set.singleton (tuple 4 3))))))
+(assert (not (set.member (tuple 1 1) y)))
 (check-sat)
index 3956af748951a5c6ee32c9187caf309282f2cef4..a8b1fd3c0246034873d46f17eb82bd53056fd77f 100644 (file)
 (assert (= v (tuple 1 1)))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
-(assert (member (tuple 1 7) x))
-(assert (member (tuple 7 5) y))
-(assert (member z x))
-(assert (member zt y))
-(assert (= w (union r (join x y))))
-(assert (not (member a w)))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member (tuple 7 5) y))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (= w (set.union r (rel.join x y))))
+(assert (not (set.member a w)))
 (check-sat)
index 890c6f5d604dae5289c7057611fdb1316c57249e..cdf3372763a4c5c5d2bd5a8a66ae3d14116b6783 100644 (file)
@@ -12,7 +12,7 @@
 (assert (= zt (tuple 2 1)))
 (declare-fun v () (Tuple Int Int Int Int))
 (assert (= v (tuple 1 2 2 1)))
-(assert (member z x))
-(assert (member zt y))
-(assert (not (member v (product x y))))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (not (set.member v (rel.product x y))))
 (check-sat)
index 1958036d2d17a46b963c9da04f53a6f236de3349..a0469b3e95b3ba955b43692573feb494901f9e13 100644 (file)
@@ -12,7 +12,7 @@
 (assert (= zt (tuple 2 1)))
 (declare-fun v () (Tuple Int Int Int Int))
 (assert (= v (tuple 1 2 2 1)))
-(assert (member z x))
-(assert (member zt y))
-(assert (member v (product x y)))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (set.member v (rel.product x y)))
 (check-sat)
index 6711cfd6ff76b8c8748b33136f6030cad8c2af45..544068b5032a2f2a7c1202fb3297df83fa125e23 100644 (file)
@@ -12,7 +12,7 @@
 (assert (= zt (tuple 3 2 1)))
 (declare-fun v () (Tuple Int Int Int Int Int Int))
 (assert (= v (tuple 1 2 3 3 2 1)))
-(assert (member z x))
-(assert (member zt y))
-(assert (not (member v (product x y))))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (not (set.member v (rel.product x y))))
 (check-sat)
index 5d8c2dbf2eafe0af03c99c87807d122ea9efa6c6..a3fb21eedbdb7b2c670b2f227a5c993ee0580f1a 100644 (file)
@@ -10,8 +10,8 @@
 (assert (= z (tuple 1 2 3)))
 (declare-fun zt () (Tuple Int Int Int))
 (assert (= zt (tuple 3 2 1)))
-(assert (member z x))
-(assert (member zt y))
-(assert (member (tuple 1 1 1 1 1 1) r))
-(assert (= r (product x y)))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (set.member (tuple 1 1 1 1 1 1) r))
+(assert (= r (rel.product x y)))
 (check-sat)
index 0c8188f1f38be0ccf12922b5a1d55d291dc41168..178208ff76cc9c150ad4596657ca264a666d5626 100644 (file)
@@ -8,12 +8,12 @@
 (declare-fun f () Int)
 (declare-fun d () (Tuple Int Int))
 (assert (= d (tuple f 3)))
-(assert (member d y))
+(assert (set.member d y))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 f)))
-(assert (member e x))
+(assert (set.member e x))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 4 3)))
-(assert (= r (join x y)))
-(assert (not (member a r)))
+(assert (= r (rel.join x y)))
+(assert (not (set.member a r)))
 (check-sat)
index 2e10e76ad94192e36c1236038df7c0f8dda61ec3..7afe4e4a9f5557790f9e7224cc4d1038f818f36a 100644 (file)
@@ -6,11 +6,11 @@
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun r () (Set (Tuple Int Int)))
 (declare-fun d () (Tuple Int Int))
-(assert (member d y))
+(assert (set.member d y))
 (declare-fun a () (Tuple Int Int))
-(assert (member a x))
+(assert (set.member a x))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 3)))
-(assert (= r (join x y)))
-(assert (not (member e r)))
+(assert (= r (rel.join x y)))
+(assert (not (set.member e r)))
 (check-sat)
index 2615112c251984d070d5e213295349b4cf0d8590..66551349856efab1bb6299a1ea570b3bec1b0064 100644 (file)
@@ -7,11 +7,11 @@
 (declare-fun r () (Set (Tuple Int Int)))
 (declare-fun d () (Tuple Int Int))
 (assert (= d (tuple 1 3)))
-(assert (member (tuple 1 3) y))
+(assert (set.member (tuple 1 3) y))
 (declare-fun a () (Tuple Int Int))
-(assert (member a x))
+(assert (set.member a x))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 3)))
-(assert (= r (join x y)))
-(assert (not (member e r)))
+(assert (= r (rel.join x y)))
+(assert (not (set.member e r)))
 (check-sat)
index c170fd7a0f011ccedd16882ebd781d727a844efb..183aff148e66cb043f05c8e5268977674e93af6c 100644 (file)
@@ -7,12 +7,12 @@
 (declare-fun r () (Set (Tuple Int Int)))
 (declare-fun f () Int)
 (declare-fun d () (Tuple Int Int))
-(assert (member d y))
+(assert (set.member d y))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 f)))
-(assert (member e x))
+(assert (set.member e x))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 4 3)))
-(assert (= r (join x y)))
-(assert (not (member a r)))
+(assert (= r (rel.join x y)))
+(assert (not (set.member a r)))
 (check-sat)
index 5398cf388d139633973588d6a815586fb48441de..8a2dc27496510d7ac153b084188914d5399a535c 100644 (file)
@@ -6,13 +6,13 @@
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int Int Int)))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 5 3) x))
-(assert (member (tuple 3 9) x))
-(assert (= z (product x y)))
-(assert (member (tuple 1 2 3 4) z))
-(assert (not (member (tuple 5 9) x)))
-(assert (member (tuple 3 8) y))
-(assert (= y (tclosure x)))
-(assert (not (member (tuple 1 2) y)))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 5 3) x))
+(assert (set.member (tuple 3 9) x))
+(assert (= z (rel.product x y)))
+(assert (set.member (tuple 1 2 3 4) z))
+(assert (not (set.member (tuple 5 9) x)))
+(assert (set.member (tuple 3 8) y))
+(assert (= y (rel.tclosure x)))
+(assert (not (set.member (tuple 1 2) y)))
 (check-sat)
index 07c60c562db9c5050de4b918cce8f77d7233833e..7940e989837fd100281fbdfd6fc57428503a9450 100644 (file)
@@ -9,15 +9,15 @@
 (assert (= a (tuple 1 e)))
 (declare-fun d () (Tuple Int Int))
 (assert (= d (tuple e 5)))
-(assert (member a x))
-(assert (member d x))
-(assert (not (member (tuple 1 1) x)))
-(assert (not (member (tuple 1 2) x)))
-(assert (not (member (tuple 1 3) x)))
-(assert (not (member (tuple 1 4) x)))
-(assert (not (member (tuple 1 5) x)))
-(assert (not (member (tuple 1 6) x)))
-(assert (not (member (tuple 1 7) x)))
-(assert (= y (tclosure x)))
-(assert (member (tuple 1 5) y))
+(assert (set.member a x))
+(assert (set.member d x))
+(assert (not (set.member (tuple 1 1) x)))
+(assert (not (set.member (tuple 1 2) x)))
+(assert (not (set.member (tuple 1 3) x)))
+(assert (not (set.member (tuple 1 4) x)))
+(assert (not (set.member (tuple 1 5) x)))
+(assert (not (set.member (tuple 1 6) x)))
+(assert (not (set.member (tuple 1 7) x)))
+(assert (= y (rel.tclosure x)))
+(assert (set.member (tuple 1 5) y))
 (check-sat)
index 9af4c2490be6ce1a6cdba0a835d53f9affecdf30..5de2d82d2b55d47d47a3f27d04ef8f4ce71de6bf 100644 (file)
@@ -8,13 +8,13 @@
 (declare-fun b () Int)
 (declare-fun c () Int)
 (declare-fun d () Int)
-(assert (member (tuple 1 a) x))
-(assert (member (tuple 1 c) x))
-(assert (member (tuple 1 d) x))
-(assert (member (tuple b 1) x))
+(assert (set.member (tuple 1 a) x))
+(assert (set.member (tuple 1 c) x))
+(assert (set.member (tuple 1 d) x))
+(assert (set.member (tuple b 1) x))
 (assert (= b d))
 (assert (> b (- d 1)))
 (assert (< b (+ d 1)))
-(assert (= y (tclosure x)))
-(assert (not (member (tuple 1 1) y)))
+(assert (= y (rel.tclosure x)))
+(assert (not (set.member (tuple 1 1) y)))
 (check-sat)
index 4041735f9ad594c34e36723a3fd6c795bee4a17c..df9764a5c2b8d5a68b9991deb73b6900a262c704 100644 (file)
@@ -8,10 +8,10 @@
 (declare-fun b () Int)
 (declare-fun c () Int)
 (declare-fun d () Int)
-(assert (member (tuple 1 a) x))
-(assert (member (tuple 1 c) x))
-(assert (member (tuple 1 d) x))
-(assert (member (tuple b 1) x))
+(assert (set.member (tuple 1 a) x))
+(assert (set.member (tuple 1 c) x))
+(assert (set.member (tuple 1 d) x))
+(assert (set.member (tuple b 1) x))
 (assert (= b d))
-(assert (= y (tclosure x)))
+(assert (= y (rel.tclosure x)))
 (check-sat)
index b7200a9eff1c6852a22c6a9e9466e0f1400feec5..620f8d3d067d403109a6c81da2ebe3c12bebf5b0 100644 (file)
@@ -4,7 +4,7 @@
 
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
-(assert (= y (join (tclosure x) x)))
-(assert (member (tuple 1 2) (join (join x x) x)))
-(assert (not (subset y (tclosure x))))
+(assert (= y (rel.join (rel.tclosure x) x)))
+(assert (set.member (tuple 1 2) (rel.join (rel.join x x) x)))
+(assert (not (set.subset y (rel.tclosure x))))
 (check-sat)
index 0485a06e91f6568bf254b787227db17705c765e2..5e359b538dafbea860c5750a8c3686bc2b3428c8 100644 (file)
@@ -4,6 +4,6 @@
 
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
-(assert (member (tuple 2 2) (tclosure x)))
-(assert (= x (as emptyset (Set (Tuple Int Int)))))
+(assert (set.member (tuple 2 2) (rel.tclosure x)))
+(assert (= x (as set.empty (Set (Tuple Int Int)))))
 (check-sat)
index 4e7a33e049f0428f3c1018972c562c45c3a735bd..9f2dd11901704f9e5fc4d1a7e1f8b5b55b1e2ed8 100644 (file)
@@ -5,9 +5,9 @@
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
-(assert (member (tuple 1 3) x))
-(assert (or (member (tuple 2 3) z) (member (tuple 2 1) z)))
-(assert (= y (transpose x)))
-(assert (not (member (tuple 1 2) y)))
+(assert (set.member (tuple 1 3) x))
+(assert (or (set.member (tuple 2 3) z) (set.member (tuple 2 1) z)))
+(assert (= y (rel.transpose x)))
+(assert (not (set.member (tuple 1 2) y)))
 (assert (= x z))
 (check-sat)
index 05761030cb7fb8f6b59de487c7c97ecff2c67767..aed2badf77c8cfaa4799d6d3cabca9cc45a02f87 100644 (file)
 (assert (= a (tuple 5 1)))
 (declare-fun b () (Tuple Int Int))
 (assert (= b (tuple 7 5)))
-(assert (member (tuple 1 7) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 3 4) x))
-(assert (member b y))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (= r (join x y)))
-(assert (member z x))
-(assert (member zt y))
-(assert (not (member a (transpose r))))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 3 4) x))
+(assert (set.member b y))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (= r (rel.join x y)))
+(assert (set.member z x))
+(assert (set.member zt y))
+(assert (not (set.member a (rel.transpose r))))
 (check-sat)
index f1faefaebeb4b50b75c5345dc8d8c1d0de516982..213d75bdcc9e04612969370ab64b7d220152d0bb 100644 (file)
 (assert (= b (tuple 1 7)))
 (declare-fun c () (Tuple Int Int))
 (assert (= c (tuple 2 3)))
-(assert (member b x))
-(assert (member c x))
+(assert (set.member b x))
+(assert (set.member c x))
 (declare-fun d () (Tuple Int Int))
 (assert (= d (tuple 7 3)))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 7)))
-(assert (member d y))
-(assert (member e y))
-(assert (member (tuple 3 4) z))
+(assert (set.member d y))
+(assert (set.member e y))
+(assert (set.member (tuple 3 4) z))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 4 1)))
-(assert (= r (join (join x y) z)))
-(assert (not (member a (transpose r))))
+(assert (= r (rel.join (rel.join x y) z)))
+(assert (not (set.member a (rel.transpose r))))
 (check-sat)
index 0f3d124aede959e187e5831e38cb22f751032dd8..b66f1c6edea378a58449639dc486772863bbe26f 100644 (file)
@@ -6,13 +6,13 @@
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
 (declare-fun r () (Set (Tuple Int Int)))
-(assert (member (tuple 7 1) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (member (tuple 3 4) z))
+(assert (set.member (tuple 7 1) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (set.member (tuple 3 4) z))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 4 1)))
-(assert (= r (join (join (transpose x) y) z)))
-(assert (not (member a (transpose r))))
+(assert (= r (rel.join (rel.join (rel.transpose x) y) z)))
+(assert (not (set.member a (rel.transpose r))))
 (check-sat)
index 1443c9ca34793e7ec3e8be9d5a11b1b503ea5df5..4ebd54b90169734d10b11e9e979682b8ecbc472c 100644 (file)
@@ -7,17 +7,17 @@
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
 (declare-fun r () (Set (Tuple Int Int)))
-(assert (member (tuple 7 1) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (member (tuple 3 4) z))
-(assert (member (tuple 3 3) w))
+(assert (set.member (tuple 7 1) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (set.member (tuple 3 4) z))
+(assert (set.member (tuple 3 3) w))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 4 1)))
-(assert (not (member a (transpose r))))
+(assert (not (set.member a (rel.transpose r))))
 (declare-fun zz () (Set (Tuple Int Int)))
-(assert (= zz (join (transpose x) y)))
-(assert (not (member (tuple 1 3) w)))
-(assert (not (member (tuple 1 3) (union w zz))))
+(assert (= zz (rel.join (rel.transpose x) y)))
+(assert (not (set.member (tuple 1 3) w)))
+(assert (not (set.member (tuple 1 3) (set.union w zz))))
 (check-sat)
index 1dcfc0eb6b0ce735a0fcb778aacfc8a8fd3de0db..e67f5d59ba976e07b94126ac56b9ee9b82ce9bd4 100644 (file)
@@ -6,16 +6,16 @@
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
 (declare-fun r () (Set (Tuple Int Int)))
-(assert (= x (union (singleton (tuple 1 7)) (singleton (tuple 2 3)))))
+(assert (= x (set.union (set.singleton (tuple 1 7)) (set.singleton (tuple 2 3)))))
 (declare-fun d () (Tuple Int Int))
 (assert (= d (tuple 7 3)))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 7)))
-(assert (member d y))
-(assert (member e y))
-(assert (member (tuple 3 4) z))
+(assert (set.member d y))
+(assert (set.member e y))
+(assert (set.member (tuple 3 4) z))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 4 1)))
-(assert (= r (join (join x y) z)))
-(assert (not (member a (transpose r))))
+(assert (= r (rel.join (rel.join x y) z)))
+(assert (not (set.member a (rel.transpose r))))
 (check-sat)
index 82f6a023805f185478231eebeaf85c11806cc127..7806c48baa9ca18be0e117f0fefd91919f2c3141 100644 (file)
@@ -11,9 +11,9 @@
 (declare-fun u () Int)
 (assert (and (< 4 t) (< t 6)))
 (assert (and (< 4 u) (< u 6)))
-(assert (member (tuple 1 u) x))
-(assert (member (tuple t 3) y))
+(assert (set.member (tuple 1 u) x))
+(assert (set.member (tuple t 3) y))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 3)))
-(assert (not (member a (join x y))))
+(assert (not (set.member a (rel.join x y))))
 (check-sat)
index d7d89d3a488f81ddc7884b4ffe3a79800db325f7..d9120c398ef3cc65915e77d392d0148be400ceb2 100644 (file)
@@ -7,13 +7,13 @@
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
 (declare-fun r () (Set (Tuple Int Int Int Int)))
-(assert (member (tuple 2 1) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 2 2) y))
-(assert (member (tuple 4 7) y))
-(assert (member (tuple 3 4) z))
+(assert (set.member (tuple 2 1) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 2 2) y))
+(assert (set.member (tuple 4 7) y))
+(assert (set.member (tuple 3 4) z))
 (declare-fun v () (Tuple Int Int Int Int))
 (assert (= v (tuple 4 3 2 1)))
-(assert (= r (product (join (transpose x) y) z)))
-(assert (not (member v (transpose r))))
+(assert (= r (rel.product (rel.join (rel.transpose x) y) z)))
+(assert (not (set.member v (rel.transpose r))))
 (check-sat)
index 80b359e8bd1c6606b984f2080f1fef1b40531a73..c4cf0b43db398163ae629649216284e757f2d818 100644 (file)
 (declare-fun u () Int)
 (assert (and (< 4 t) (< t 6)))
 (assert (and (< 4 u) (< u 6)))
-(assert (member (tuple 1 t) x))
-(assert (member (tuple u 3) y))
+(assert (set.member (tuple 1 t) x))
+(assert (set.member (tuple u 3) y))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 3)))
-(assert (not (member a (join x y))))
+(assert (not (set.member a (rel.join x y))))
 (declare-fun st () (Set Int))
 (declare-fun su () (Set Int))
-(assert (member t st))
-(assert (member u su))
+(assert (set.member t st))
+(assert (set.member u su))
 (check-sat)
index 280f78ea2bb76188d3936e348adfd1cd08815e9d..3cce80a4b22f888988fcc671fdbed45af67e1cc4 100644 (file)
@@ -9,7 +9,7 @@
 (assert (= z (tuple 1 2)))
 (declare-fun zt () (Tuple Int Int))
 (assert (= zt (tuple 2 1)))
-(assert (member z x))
-(assert (not (member zt (transpose x))))
-(assert (= y (transpose x)))
+(assert (set.member z x))
+(assert (not (set.member zt (rel.transpose x))))
+(assert (= y (rel.transpose x)))
 (check-sat)
index fb7070e82637e761c1567fab0775b6822c1a48c1..728b2b23c2c56c10c71d3040e42bbdb1c79b4c42 100644 (file)
@@ -8,6 +8,6 @@
 (assert (= z (tuple 1 2 3)))
 (declare-fun zt () (Tuple Int Int Int))
 (assert (= zt (tuple 3 2 1)))
-(assert (member z x))
-(assert (not (member zt (transpose x))))
+(assert (set.member z x))
+(assert (not (set.member zt (rel.transpose x))))
 (check-sat)
index 0d9f6d028f4052372584d198e97bb57b4ab9b782..4177d70e43b5ff2955f84281329aa582186b216f 100644 (file)
@@ -9,7 +9,7 @@
 (assert (= z (tuple 1 2 a)))
 (declare-fun zt () (Tuple Int Int Int))
 (assert (= zt (tuple 3 2 2)))
-(assert (member z x))
-(assert (member zt (transpose x)))
-(assert (= y (transpose x)))
+(assert (set.member z x))
+(assert (set.member zt (rel.transpose x)))
+(assert (= y (rel.transpose x)))
 (check-sat)
index ea737919efcd732542459937c07f6bb93336bc3f..24f1ca24c35227262efa68d2b569737b05473b31 100644 (file)
@@ -9,6 +9,6 @@
 (declare-fun zt () (Tuple Int Int))
 (assert (= zt (tuple 2 1)))
 (assert (= x y))
-(assert (member z x))
-(assert (not (member zt (transpose y))))
+(assert (set.member z x))
+(assert (not (set.member zt (rel.transpose y))))
 (check-sat)
index 5ba3cc2c69b5623b82153899fa042d58885f54e7..4013806deb9f00ea3bf70df61ebae04f6c4272a2 100644 (file)
@@ -6,6 +6,6 @@
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Tuple Int Int))
 (assert (= z (tuple 1 2)))
-(assert (member z x))
-(assert (not (member (tuple 2 1) (transpose x))))
+(assert (set.member z x))
+(assert (not (set.member (tuple 2 1) (rel.transpose x))))
 (check-sat)
index 8a58ca7636ea3fbf9cbb8c37b29beb1472e419c8..fbb1d265ca984b3ad3eedffc6df21671370434a3 100644 (file)
@@ -9,10 +9,10 @@
 (assert (= z (tuple 1 2)))
 (declare-fun zt () (Tuple Int Int))
 (assert (= zt (tuple 2 1)))
-(assert (member zt y))
+(assert (set.member zt y))
 (declare-fun w () (Tuple Int Int))
 (assert (= w (tuple 2 2)))
-(assert (member w y))
-(assert (member z x))
-(assert (not (member zt (transpose (join x y)))))
+(assert (set.member w y))
+(assert (set.member z x))
+(assert (not (set.member zt (rel.transpose (rel.join x y)))))
 (check-sat)
index 1dc932a8120cce2e469e753df715bbe4ade1b54d..5924efd37e1856da8680736429cabda628215a03 100644 (file)
@@ -8,12 +8,12 @@
 (assert (= z (tuple 1 2)))
 (declare-fun zt () (Tuple Int Int))
 (assert (= zt (tuple 2 1)))
-(assert (member z x))
-(assert (member (tuple 3 4) x))
-(assert (member (tuple 3 5) x))
-(assert (member (tuple 3 3) x))
-(assert (= x (transpose y)))
-(assert (not (member zt y)))
-(assert (member z y))
-(assert (not (member zt (transpose y))))
+(assert (set.member z x))
+(assert (set.member (tuple 3 4) x))
+(assert (set.member (tuple 3 5) x))
+(assert (set.member (tuple 3 3) x))
+(assert (= x (rel.transpose y)))
+(assert (not (set.member zt y)))
+(assert (set.member z y))
+(assert (not (set.member zt (rel.transpose y))))
 (check-sat)
index 7debeaa87d67363672600d1ee3ef37e21ee764d9..a4e0c8a76d049a1705f906561534ae558fea8c1c 100644 (file)
@@ -5,5 +5,5 @@
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
 (assert (= x y))
-(assert (not (= (transpose x) (transpose y))))
+(assert (not (= (rel.transpose x) (rel.transpose y))))
 (check-sat)
index e68eb49bb466c446d831966e2f5e387a418c7772..3e68011020ee20e1c1cdca8a48f0842c111898ea 100644 (file)
 (declare-fun lt2 () (Set (Tuple Int Int)))
 (declare-fun i () Int)
 
-(assert (= r1 (insert (tuple "a" 1) (tuple "b" 2) (tuple "c" 3) (singleton (tuple "d" 4)))))
-(assert (= r2 (insert (tuple 1 "1") (tuple 2 "2") (tuple 3 "3") (singleton (tuple 17 "17")))))
-(assert (= r (join r1 r2)))
-(assert (= s (transpose r)))
-(assert (= t (product r1 r2)))
-(assert (= lt1 (insert (tuple 1 2) (tuple 2 3) (tuple 3 4) (singleton (tuple 4 5)))))
-(assert (= lt2 (tclosure lt1)))
-(assert (= i (card t)))
+(assert (= r1 (set.insert (tuple "a" 1) (tuple "b" 2) (tuple "c" 3) (set.singleton (tuple "d" 4)))))
+(assert (= r2 (set.insert (tuple 1 "1") (tuple 2 "2") (tuple 3 "3") (set.singleton (tuple 17 "17")))))
+(assert (= r (rel.join r1 r2)))
+(assert (= s (rel.transpose r)))
+(assert (= t (rel.product r1 r2)))
+(assert (= lt1 (set.insert (tuple 1 2) (tuple 2 3) (tuple 3 4) (set.singleton (tuple 4 5)))))
+(assert (= lt2 (rel.tclosure lt1)))
+(assert (= i (set.card t)))
 
 (check-sat)
index 2ba92270a3dd1821ed8073ead6ed1ded779d9253..186374897590d44956ddcaffe0c3b0a409d600ec 100644 (file)
@@ -6,7 +6,7 @@
 (declare-fun z () (Set (Tuple Int Int)))
 (declare-fun x () Int)
 (declare-fun y () Int)
-(assert (member (tuple 1 x) w))
-(assert (member (tuple y 2) z))
-(assert (not (member (tuple 1 2) (join w z))))
+(assert (set.member (tuple 1 x) w))
+(assert (set.member (tuple y 2) z))
+(assert (not (set.member (tuple 1 2) (rel.join w z))))
 (check-sat)
index 3bf1a9b6afed272f303a16ab673a0a65ce36a023..ceb97a78163a8a43534ba6ffd5eb07d98f83c6cf 100644 (file)
 (declare-fun b2 () Atom)
 
 (assert (forall ((b Atom)) (or 
-(member v (k t0 b))
-(member v (k t1 b))
+(set.member v (k t0 b))
+(set.member v (k t1 b))
 ) ))
 
-(assert (not (member v (k t2 b2))))
+(assert (not (set.member v (k t2 b2))))
 
 (check-sat)
 
index f87429fc24116b63e27e7107a9c673ea3a7bd3e2..c4c92aa503247e05500e3bf20f13c43cb4e7f1d4 100644 (file)
@@ -7,7 +7,7 @@
 (declare-fun kk (Atom (Set Atom)) (Set Atom))
 (declare-fun n () (Set Atom))
 
-(assert (forall ((b Atom)) (= (as emptyset (Set Atom)) (kk (j (singleton b)) n))))
+(assert (forall ((b Atom)) (= (as set.empty (Set Atom)) (kk (j (set.singleton b)) n))))
 
 (check-sat)
 
index 9ff80e14cdc4d0fcf7d8fa0b388ac74d4d064a24..ebd22b83f836d306c85e7b73eb3a54525745d150 100644 (file)
@@ -14,8 +14,8 @@
 
 (assert (forall ((b Atom) (c Atom)) 
 (or 
-(member v (k (singleton n) (j (singleton b) a)))
-(= (as emptyset (Set Atom)) (d (j (singleton b) a) (singleton n)))
+(set.member v (k (set.singleton n) (j (set.singleton b) a)))
+(= (as set.empty (Set Atom)) (d (j (set.singleton b) a) (set.singleton n)))
 )
 )
 )
index bc460fb4af38bd8e9ce59c6f7d39fa913bcc8b9a..1bdfbb5ce756ddc6a45f85ee98b3b1755eb14b8f 100644 (file)
@@ -4,8 +4,8 @@
 (declare-fun s () (Set E))
 (declare-fun t () (Set E))
 (declare-fun u () (Set E))
-(assert (>= (card s) 5))
-(assert (>= (card t) 5))
-(assert (<= (card u) 6))
-(assert (= u (union s t)))
+(assert (>= (set.card s) 5))
+(assert (>= (set.card t) 5))
+(assert (<= (set.card u) 6))
+(assert (= u (set.union s t)))
 (check-sat)
index 6c4bdd8cae7ffa6f0f6526812c1d5704765c9313..9f1a6552ac31e427d72e54129d8d16206ed8e3b0 100644 (file)
@@ -4,5 +4,5 @@
 (declare-fun x () (Set Int))
 (declare-fun y () (Set Int))
 (declare-fun z () (Set Int))
-(assert (let ((_let_1 (card y))) (and (> (card x) _let_1) (> _let_1 (card z)))))
+(assert (let ((_let_1 (set.card y))) (and (> (set.card x) _let_1) (> _let_1 (set.card z)))))
 (check-sat)
index d42bf6f557a220d6ecf807352494edff9188423a..4c0fdbb56c13558e75e2a1c0ddb871b1f1f3c9a2 100644 (file)
@@ -3,7 +3,7 @@
 (declare-sort E 0)
 (declare-fun s () (Set E))
 (declare-fun t () (Set E))
-(assert (>= (card s) 5))
-(assert (>= (card t) 5))
-(assert (<= (card (union s t)) 4))
+(assert (>= (set.card s) 5))
+(assert (>= (set.card t) 5))
+(assert (<= (set.card (set.union s t)) 4))
 (check-sat)
index 7b42b8a8af505cafea0e721a810d12ff8a59ff94..b6c66c0dd6c099e8f11815213569d44a5398c9be 100644 (file)
@@ -1,6 +1,6 @@
 (set-logic ALL)
 (set-info :status sat)
 (declare-fun S () (Set Int))
-(assert (>= (card S) 3))
-(assert (not (member 1 S)))
+(assert (>= (set.card S) 3))
+(assert (not (set.member 1 S)))
 (check-sat)
index 81e4d7411aee9e30c475f8d57089fb9ecfd6e260..ae9052dd445f6282cbac712e9adf179f53e7c574 100644 (file)
@@ -9,6 +9,6 @@
 (declare-fun x () (Set U))
 
 
-(assert (subset x (comprehension ((z U)) (not (= z a)) z)))
+(assert (set.subset x (set.comprehension ((z U)) (not (= z a)) z)))
 
 (check-sat)
index e86dcf107b304899ea6679288f0a43546f6b4074..e0a5c19f08194e02877c3d3e01f77e1e7dd6f938 100644 (file)
@@ -5,5 +5,5 @@
 (declare-sort Atom 0)
 (declare-fun a () (Set (Tuple Atom)))
 (declare-fun b () (Set (Tuple Atom)))
-(assert (= a (complement b)))
+(assert (= a (set.complement b)))
 (check-sat)
index 5821560676515dfa53a0f9ff0a3f82af8ad72aaa..ecf8080db727527cdf54f6f0abc9a2290ff69995 100644 (file)
@@ -6,6 +6,6 @@
 (declare-fun a () (Set Atom))
 (declare-fun b () (Set Atom))
 (declare-fun c () Atom)
-(assert (= a (complement a)))
-(assert (member c a))
+(assert (= a (set.complement a)))
+(assert (set.member c a))
 (check-sat)
index b818438716a4f875ecc1ac6eabfcaf9b1170e5de..20cfb36f8fda7703b8258ee6850f85fd276bb60b 100644 (file)
@@ -8,9 +8,9 @@
 (declare-fun C4 () (Set (Tuple Atom)))
 (declare-fun ATOM_UNIV () (Set (Tuple Atom)))
 (declare-fun V1 () Atom)
-(assert (= C32 (intersection (complement C2) (complement C4))))
-(assert (member (tuple V1) (complement C32)))
-(assert (= ATOM_UNIV (as univset (Set (Tuple Atom)))))
-(assert (member (tuple V1) ATOM_UNIV))
-(assert (member (tuple V1) (complement C2)))
+(assert (= C32 (set.intersection (set.complement C2) (set.complement C4))))
+(assert (set.member (tuple V1) (set.complement C32)))
+(assert (= ATOM_UNIV (as set.universe (Set (Tuple Atom)))))
+(assert (set.member (tuple V1) ATOM_UNIV))
+(assert (set.member (tuple V1) (set.complement C2)))
 (check-sat)
index e0ea07a78a54267ca8dd08c18fa7648f5bdf9fc6..9ee199b43ac9d73330f236662eede1d24404f32f 100644 (file)
 (declare-fun b () (Set Int))
 (declare-fun c () (Set Int))
 (declare-fun e () Int)
-(assert (= a (singleton 5)))
-(assert (= c (union a b)))
-(assert (not (= c (intersection a b))))
-(assert (= c (setminus a b)))
-(assert (subset a b))
-(assert (member e c))
-(assert (member e a))
-(assert (member e (intersection a b)))
+(assert (= a (set.singleton 5)))
+(assert (= c (set.union a b)))
+(assert (not (= c (set.intersection a b))))
+(assert (= c (set.minus a b)))
+(assert (set.subset a b))
+(assert (set.member e c))
+(assert (set.member e a))
+(assert (set.member e (set.intersection a b)))
 (push 1)
 
 (assert true)
@@ -37,7 +37,7 @@
 (pop 1)
 (push 1)
 (assert (= x y))
-(assert (not (= (union x z) (union y z))))
+(assert (not (= (set.union x z) (set.union y z))))
 (push 1)
 
 (assert true)
@@ -50,8 +50,8 @@
 (push 1)
 (assert (= x y))
 (assert (= e1 e2))
-(assert (member e1 x))
-(assert (not (member e2 y)))
+(assert (set.member e1 x))
+(assert (not (set.member e2 y)))
 (push 1)
 
 (assert true)
@@ -64,8 +64,8 @@
 (push 1)
 (assert (= x y))
 (assert (= e1 e2))
-(assert (member e1 (union x z)))
-(assert (not (member e2 (union y z))))
+(assert (set.member e1 (set.union x z)))
+(assert (not (set.member e2 (set.union y z))))
 (push 1)
 
 (assert true)
@@ -76,8 +76,8 @@
 
 (pop 1)
 (push 1)
-(assert (member 5 (union (union (union (union (singleton 1) (singleton 2)) (singleton 3)) (singleton 4)) (singleton 5))))
-(assert (member 5 (union (union (union (union (singleton 1) (singleton 2)) (singleton 3)) (singleton 4)) (as emptyset (Set Int)))))
+(assert (set.member 5 (set.union (set.union (set.union (set.union (set.singleton 1) (set.singleton 2)) (set.singleton 3)) (set.singleton 4)) (set.singleton 5))))
+(assert (set.member 5 (set.union (set.union (set.union (set.union (set.singleton 1) (set.singleton 2)) (set.singleton 3)) (set.singleton 4)) (as set.empty (Set Int)))))
 (push 1)
 
 (assert true)
@@ -87,4 +87,4 @@
 (pop 1)
 
 (pop 1)
-(check-sat-assuming ( (not (let ((_let_1 (member e1 z))) (and _let_1 (not _let_1)))) ))
+(check-sat-assuming ( (not (let ((_let_1 (set.member e1 z))) (and _let_1 (not _let_1)))) ))
index 47bc7aa58da0ec0fa83e682d8b56af647d3abe66..c7b2a3ee4f84842baa14037b36dcbaa4876015e6 100644 (file)
@@ -4,6 +4,6 @@
 (declare-fun x1 () D)
 (declare-fun S () (Set D))
 (declare-fun P (D) Bool)
-(assert (member x1 S))
-(assert (=> (member (A 0) S) (P x1)))
+(assert (set.member x1 S))
+(assert (=> (set.member (A 0) S) (P x1)))
 (check-sat)
index 7296fcc28f920e6a3e414dcb6c3e7c0a645b9e7f..0b5b561cd05d90ce2a85e0f164f7d2324cea434c 100644 (file)
@@ -1,4 +1,4 @@
 (set-logic ALL)
 (set-info :status unsat)
-(assert (member 5 (as emptyset (Set Int) )))
+(assert (set.member 5 (as set.empty (Set Int) )))
 (check-sat)
index 06f86ae3c2213296f63120fc61a74c87b8079dd1..0ecd32bf8f72322b48ed5ab6a5835133e405d088 100644 (file)
@@ -10,9 +10,9 @@
 (declare-fun H () (Set Int) )
 (declare-fun I () (Set Int) )
 (declare-fun x () Int)
-(assert (member x (intersection (union A B) C)))
-(assert (not (member x G)))
-(assert (= (union A B) D))
-(assert (= C (intersection E F)))
+(assert (set.member x (set.intersection (set.union A B) C)))
+(assert (not (set.member x G)))
+(assert (= (set.union A B) D))
+(assert (= C (set.intersection E F)))
 (assert (and (= F H) (= G H) (= H I)))
 (check-sat)
index bf1822305cd94cc1266b385d0b51b766d8db78a4..193d6d1cf9a4d13746070c5c7590986bd544cd33 100644 (file)
@@ -7,7 +7,7 @@
 (declare-fun E () (Set Int))
 (set-info :status sat)
 
-(assert (= A (union D C)))
-(assert (not (= A (union E A))))
+(assert (= A (set.union D C)))
+(assert (not (= A (set.union E A))))
 
 (check-sat)
index 7b8f782180ccc7989a982b05844ea23ca8f96523..d41e2b3b8572de7678fa449d5049044c0350615d 100644 (file)
@@ -1,4 +1,4 @@
 (set-logic QF_ALL)
 (set-info :status unsat)
-(assert (= (as emptyset (Set Int)) (singleton 5)))
+(assert (= (as set.empty (Set Int)) (set.singleton 5)))
 (check-sat)
index b4936a32b94f59c5137cca066c696cda46c850dd..0e5f815f6c22509a5e2a4205a0415f8fc7b43749 100644 (file)
@@ -2,6 +2,6 @@
 (set-logic QF_UFLIAFS)
 (set-info :status sat)
 (declare-fun X () (Set Int))
-(assert (= X (insert 1 2 (singleton 3))))
+(assert (= X (set.insert 1 2 (set.singleton 3))))
 (check-sat)
 ;(get-model)
index 19b5850fa99057c102c4c37be71128d2ee823ea6..3267dcccf63dbaedbbfd615dd6c8cb1c654685c5 100644 (file)
@@ -7,9 +7,9 @@
 
 (declare-fun x () Real)
 
-(assert (= (as univset (Set Real)) (as univset (Set Real))))
+(assert (= (as set.universe (Set Real)) (as set.universe (Set Real))))
 
-(assert (member x a))
+(assert (set.member x a))
 
 (assert (and (<= 5.5 x) (< x 5.8)))
 
index e7d79bbf64bd2272f059ef3fc1e904e9029ea8fe..78bf88be932448c2e7ac21a3dd357fc105209ae6 100644 (file)
@@ -7,9 +7,9 @@
 
 (declare-fun x () Real)
 
-(assert (= (as univset (Set Real)) (as univset (Set Real))))
+(assert (= (as set.universe (Set Real)) (as set.universe (Set Real))))
 
-(assert (member x a))
+(assert (set.member x a))
 
 (assert (and (<= 5.5 x) (< x 6.1)))
 
index 448022a2e82152d0bead0fa7268d8fb56fb0033a..7e2f627ae76dbba9b87f1d3f5cc059f11ca6578c 100644 (file)
@@ -2,15 +2,15 @@
 (set-info :status unsat)
 (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 (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_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
 
-(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
 
-(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 (declare-fun z3v58 () Int)
 (declare-fun z3v59 () Int)
 (assert (distinct z3v58 z3v59))
index a7c2bec8df33ae9008c8e59ffdd3cd4c0ad2ad88..8fbed55725ea1cab0830915c298e669802910851 100644 (file)
@@ -7,12 +7,12 @@
 (declare-fun S () (Set Int))
 (declare-fun T () (Set Int))
 
-(assert (member x S))
+(assert (set.member x S))
 
-(assert (= S (union T (singleton y))))
+(assert (= S (set.union T (set.singleton y))))
 
 (assert (not (= x y)))
 
-(assert (not (member x T)))
+(assert (not (set.member x T)))
 
 (check-sat)
index ff83b0fb594d14eee4be757a4ad39dc1f14dc820..b93a379acddd34053cbf697094eab8f088d206ca 100644 (file)
@@ -2,13 +2,13 @@
 (set-info :status unsat)
 (define-sort Elt () Int)
 (define-sort mySet () (Set Elt ))
-(define-fun smt_set_emp () mySet (as emptyset mySet))
+(define-fun smt_set_emp () mySet (as set.empty mySet))
 
 (declare-fun S () (Set Int))
 (declare-fun T () (Set Int))
 
 (assert (not (= S T)))
-(assert (= T (union smt_set_emp S)))
+(assert (= T (set.union smt_set_emp S)))
 (check-sat)
 
 ; What was the bug?
index 90d3a6372a16e6108ce97be1206f2b825b66a7f4..f6fd4bd5332f621e65e47e11b36da7e22d1f5559 100644 (file)
@@ -2,15 +2,15 @@
 (set-info :status unsat)
 (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 (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_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
 ;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
-(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
 ;(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (= smt_set_emp (smt_set_dif s1 s2)))
-(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 (declare-fun z3v54 () Int)
 (declare-fun z3f55 (Int) Int)
 (declare-fun z3v56 () Int)
index b20fb4f3d66a0ffbce59aa16e618010a7f0d6698..882c670919e1271d03b19cee2a784a3c5e097aaf 100644 (file)
 (declare-fun T () mySet)
 
 (assert (= (f x) 
-           (union S T)))
+           (set.union S T)))
 
 (assert (= (f x) 
-           (union T (f y))))
+           (set.union T (f y))))
 
 (assert (not (= (f y) 
-                (union T (f y)))))
+                (set.union T (f y)))))
 
 (check-sat)
index 1c28759b606921ba74b7b1a9f93dd49b234d87e6..99a67f7e78461eb420e5bffd8bab78d65debe6f9 100644 (file)
@@ -7,13 +7,13 @@
 ;
 ; What was going on?
 ;
-; The solver was unable to reason that (emptyset) cannot equal
-; (singleton 0). There were no membership predicates anywhere, just
+; The solver was unable to reason that (set.empty) cannot equal
+; (set.singleton 0). There were no membership predicates anywhere, just
 ; equalities.
 ;
 ; Fix
 ;
-; Add the propagation rule: (true) => (member x (singleton x))
+; Add the propagation rule: (true) => (set.member x (set.singleton x))
 
 (declare-fun z3f70 (Int) (Set Int))
 (declare-fun z3v85 () Int)
@@ -21,7 +21,7 @@
 (declare-fun z3v87 () Int)
 (declare-fun z3v90 () Int)
 
-(assert (= (z3f70 z3v90) (union (z3f70 z3v85) (union (as emptyset (Set Int)) (singleton z3v86)))))
+(assert (= (z3f70 z3v90) (set.union (z3f70 z3v85) (set.union (as set.empty (Set Int)) (set.singleton z3v86)))))
 (assert (= (z3f70 z3v90) (z3f70 z3v87)))
-(assert (= (as emptyset (Set Int)) (z3f70 z3v87)))
+(assert (= (as set.empty (Set Int)) (z3f70 z3v87)))
 (check-sat)
index 8b879b3eca13a1bfc41496e9c16eca8bd15364cb..50f51a13f6f98a11ba2199d0ec8fdd32b67ca7ef 100644 (file)
@@ -3,16 +3,16 @@
 (define-sort Elt () Int)
 (define-sort mySet ()
   (Set Elt ))
-(define-fun smt_set_emp () mySet (as emptyset mySet))
+(define-fun smt_set_emp () mySet (as set.empty mySet))
 
 (declare-fun S () (Set Int))
 (declare-fun T () (Set Int))
 (declare-fun x () Int)
 
-(assert (or (not (= S smt_set_emp)) (member x T)))
+(assert (or (not (= S smt_set_emp)) (set.member x T)))
 
 (assert (= smt_set_emp 
-           (ite (member x T) 
-                (union (union smt_set_emp (singleton x)) S) 
+           (ite (set.member x T) 
+                (set.union (set.union smt_set_emp (set.singleton x)) S) 
                 S)))
 (check-sat)
index e3e88c65f11f1e57162780537e22343cff26669d..6655713cfae86bbf709edfd8d0c66603838cbb3c 100644 (file)
@@ -4,8 +4,8 @@
 (declare-fun b () Int)
 (declare-fun x () (Set Int))
 (declare-fun y () (Set Int))
-(assert (= x (singleton a)))
-(assert (= y (singleton b)))
+(assert (= x (set.singleton a)))
+(assert (= y (set.singleton b)))
 (assert (not (= x y)))
 (assert (and (< 1 a) (< a 3) (< 1 b) (< b 3)))
 (check-sat)
index 635c7959d5823c8b9b0fbae19f33021f73b72906..f984aca5347082b28804a6dbe38813a340ce90e6 100644 (file)
@@ -10,9 +10,9 @@
 (declare-fun z () Int)
 (declare-fun a () (Set Int))
 (declare-fun b () (Set Int))
-(assert (member x (union a b)))
-(assert (not (member y a)))
-(assert (not (member z b)))
+(assert (set.member x (set.union a b)))
+(assert (not (set.member y a)))
+(assert (not (set.member z b)))
 (assert (= z y))
 (assert (= x y))
 (check-sat)
index d6565205b33472565b939852433acc57300904c5..5a02cbe53d7b2702d9b7c3fccf1cd831f64c97ef 100644 (file)
@@ -9,7 +9,7 @@
 (declare-fun y () Int)
 (declare-fun a () (Set Int))
 (declare-fun b () (Set Int))
-(assert (member x (union a b)))
-(assert (not (member y a)))
+(assert (set.member x (set.union a b)))
+(assert (not (set.member y a)))
 (assert (= x y))
 (check-sat)
index 5c3bc567ca84537d6c9a3959f5a4a899a700c89f..695e87ec3461a16753b908afa614af876e940aa6 100644 (file)
@@ -6,8 +6,8 @@
 (declare-fun P ((Set Int)) Bool)
 
 (assert (P x))
-(assert (not (P (singleton 0))))
-(assert (member 1 x))
-(assert (not (member 0 (as univset (Set Int)))))
+(assert (not (P (set.singleton 0))))
+(assert (set.member 1 x))
+(assert (not (set.member 0 (as set.universe (Set Int)))))
 
 (check-sat)
index f184ebf9254c2250742b30578c86c92a51e1ba4f..f01ad747b373641c6c7f0623c4ab255d470a40e1 100644 (file)
@@ -4,8 +4,8 @@
 (set-info :status unsat)
 (declare-fun x () (Set Int))
 
-(assert (= x (union (singleton 0) (singleton 1))))
+(assert (= x (set.union (set.singleton 0) (set.singleton 1))))
 
-(assert (not (member 0 (as univset (Set Int)))))
+(assert (not (set.member 0 (as set.universe (Set Int)))))
 
 (check-sat)
index 61fbee11d5fd6a973c7092ddd95f21226dbff9ee..f70d59b16246d98b289143dc7cd67f1f9a57c125 100644 (file)
 (assert (! (forall ((l1 Loc))
            (or
                (and (Btwn$0 next$0 curr$0 l1 null$0)
-                    (member l1 (lseg_domain$0 next$0 curr$0 null$0))
+                    (set.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 (member l1 (lseg_domain$0 next$0 curr$0 null$0))))))
+                    (not (set.member l1 (lseg_domain$0 next$0 curr$0 null$0))))))
    :named lseg_footprint_14))
 
-(assert (! (not (member tmp_1$0 Alloc$0)) :named new_42_10))
+(assert (! (not (set.member tmp_1$0 Alloc$0)) :named new_42_10))
 
-(assert (! (not (member null$0 Alloc$0))
+(assert (! (not (set.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 (! (= sk_?X_36$0 FP$0) :named precondition_of_rec_copy_loop_34_11_18))
 
-(assert (! (= (as emptyset SetLoc) (intersection sk_?X_38$0 sk_?X_37$0))
+(assert (! (= (as set.empty SetLoc) (set.intersection sk_?X_38$0 sk_?X_37$0))
    :named precondition_of_rec_copy_loop_34_11_19))
 
 (assert (! (= old_cp_2$0 cp$0) :named assign_41_4))
 
-(assert (! (= FP_Caller_2$0 (setminus FP_Caller$0 FP$0)) :named assign_37_2_2))
+(assert (! (= FP_Caller_2$0 (set.minus FP_Caller$0 FP$0)) :named assign_37_2_2))
 
-(assert (! (= Alloc_2$0 (union Alloc$0 (singleton tmp_1$0))) :named assign_42_10))
+(assert (! (= Alloc_2$0 (set.union Alloc$0 (set.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)
-                    (member l1 (lseg_domain$0 next$0 cp$0 null$0))
+                    (set.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 (member l1 (lseg_domain$0 next$0 cp$0 null$0))))))
+                    (not (set.member l1 (lseg_domain$0 next$0 cp$0 null$0))))))
    :named lseg_footprint_15))
 
-(assert (! (not (member cp_1$0 FP_3$0)) :named check_heap_access_43_4))
+(assert (! (not (set.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 (! (lseg_struct$0 sk_?X_38$0 next$0 cp$0 null$0)
    :named precondition_of_rec_copy_loop_34_11_20))
 
-(assert (! (= FP_Caller$0 (union FP$0 FP_Caller$0))
+(assert (! (= FP_Caller$0 (set.union FP$0 FP_Caller$0))
    :named precondition_of_rec_copy_loop_34_11_21))
 
 (assert (! (= sk_?X_37$0 (lseg_domain$0 next$0 curr$0 null$0))
    :named precondition_of_rec_copy_loop_34_11_22))
 
-(assert (! (= sk_?X_36$0 (union sk_?X_37$0 sk_?X_38$0))
+(assert (! (= sk_?X_36$0 (set.union sk_?X_37$0 sk_?X_38$0))
    :named precondition_of_rec_copy_loop_34_11_23))
 
-(assert (! (= Alloc$0 (union FP_Caller$0 Alloc$0))
+(assert (! (= Alloc$0 (set.union FP_Caller$0 Alloc$0))
    :named initial_footprint_of_rec_copy_loop_34_11_5))
 
 (assert (! (= cp_1$0 tmp_1$0) :named assign_42_4))
 
-(assert (! (= FP_3$0 (union FP$0 (singleton tmp_1$0))) :named assign_42_10_1))
+(assert (! (= FP_3$0 (set.union FP$0 (set.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)))
index 35b89645ad89f0083f3f46ff0f84e299e42ab2d2..ec87568965ad8e68ffab5b379cf289f132dccee1 100644 (file)
@@ -4,7 +4,7 @@
 (declare-fun T () (Set Int))
 (declare-fun x () Int)
 (declare-fun y () Int)
-(assert (member y S))
-(assert (not (member x (union S T))))
+(assert (set.member y S))
+(assert (not (set.member x (set.union S T))))
 (assert (= x y))
 (check-sat)
index 17ca1fce2c7fb239c6f6bc24cf98a1d47b0d436c..ccb0452a46d8f7a4c25e062ad5d8945c6f796e01 100644 (file)
@@ -4,5 +4,5 @@
 (set-logic ALL)
 (set-info :status sat)
 (declare-fun S () (Set (_ BitVec 1)))
-(assert (not (= S (as emptyset (Set (_ BitVec 1))))))
+(assert (not (= S (as set.empty (Set (_ BitVec 1))))))
 (check-sat)
index adccd51c5fc9c4c9683e3de75985f88bd500af32..c643c8b78214803651810031e4bb2464ebe9364f 100644 (file)
@@ -6,9 +6,9 @@
 (assert (= x y))
 (declare-fun a () (Set Int))
 (declare-fun b () (Set Int))
-(assert (not (member x a)))
-(assert (member y (union a b)))
+(assert (not (set.member x a)))
+(assert (set.member y (set.union a b)))
 (assert (= x z))
-(assert (not (member z a)))
+(assert (not (set.member z a)))
 (assert (= a b))
 (check-sat)
index c497ff1890b62e94bdc712cfb6159f0781a9583d..1cbe0de9c8c894a75beb36fdc10ad50aa1deb3ba 100644 (file)
@@ -9,7 +9,7 @@
 (declare-fun S () (Set Atom))
 
 
-(assert (= S (union (singleton a) (union (singleton c) (singleton b)))))
+(assert (= S (set.union (set.singleton a) (set.union (set.singleton c) (set.singleton b)))))
 
 (check-sat)
 
index 2faf727683ff2d794e35de81f551704e49b174d5..6857e5147a1670b2d0a1535f4d0efa0d20ef89f2 100644 (file)
@@ -4,8 +4,8 @@
 (declare-fun a () (Set Int))
 (declare-fun b () (Set Int))
 (declare-fun x () Int)
-;(assert (not (member x a)))
-(assert (member x (intersection a b)))
-(assert (not (member x b)))
+;(assert (not (set.member x a)))
+(assert (set.member x (set.intersection a b)))
+(assert (not (set.member x b)))
 (check-sat)
 (exit)
index 8ac4148297511b65ed4f5e5dce6258801a9a9009..4a49bef0715b6128ad26ba0bc25035875e8360f6 100644 (file)
@@ -6,11 +6,11 @@
 (declare-fun A () SetInt)
 (declare-fun B () SetInt)
 (declare-fun x () Int)
-(assert (member x (union A B)))
+(assert (set.member x (set.union A 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))
+(assert (not (set.member x (set.intersection A B))))
+(assert (not (set.member x (set.minus A B))))
+;(assert (not (set.member x (set.minus B A))))
+;(assert (set.member x B))
 
 (check-sat)
index e8c98e09c9843ab437a18f58df76ec91fa9d31fe..2af676f8b6a65b872fb2ac02e967b8c687b3abf2 100644 (file)
@@ -7,8 +7,8 @@
 (declare-fun x () (Set Real))
 (declare-fun y () (Set Real))
 
-(assert (member 0.5 y))
-(assert (member y s))
-(assert (or (= s t) (= s (singleton (singleton 1.0))) (= s (singleton (singleton 0.0)))))
+(assert (set.member 0.5 y))
+(assert (set.member y s))
+(assert (or (= s t) (= s (set.singleton (set.singleton 1.0))) (= s (set.singleton (set.singleton 0.0)))))
 
 (check-sat)
index df79a39b0aa594002536e778c615a4f1a1dfe8dd..20832c573264bc59236113a13fcd69501f7e2a63 100644 (file)
@@ -7,11 +7,11 @@
 (declare-fun r1 () (Set Real))
 (declare-fun r2 () (Set Real))
 (declare-fun r3 () (Set Real))
-(assert (and (member 1.5 s) (member 0.0 s)))
-(assert (= t1 (union s (singleton 2.5))))
-(assert (= t2 (union s (singleton 2.0))))
-(assert (= t3 (union r3 (singleton 2.5))))
-(assert (= (intersection r1 r2) (intersection s (singleton 0.0))))
-(assert (not (= r1 (as emptyset (Set Real)))))
+(assert (and (set.member 1.5 s) (set.member 0.0 s)))
+(assert (= t1 (set.union s (set.singleton 2.5))))
+(assert (= t2 (set.union s (set.singleton 2.0))))
+(assert (= t3 (set.union r3 (set.singleton 2.5))))
+(assert (= (set.intersection r1 r2) (set.intersection s (set.singleton 0.0))))
+(assert (not (= r1 (as set.empty (Set Real)))))
 
 (check-sat)
index 58ff563bc6365500904493c0420ac0467555c61e..f572fafc761852f5fb606d240b0e3c7b722c77a1 100644 (file)
@@ -4,8 +4,8 @@
 (declare-fun t () (Set Real))
 (declare-fun r () (Set Real))
 (declare-fun u () (Set Real))
-(assert (member 1.5 t))
-(assert (member 2.5 r))
-(assert (member 3.5 u))
+(assert (set.member 1.5 t))
+(assert (set.member 2.5 r))
+(assert (set.member 3.5 u))
 (assert (or (= s t) (= s r) (= s u)))
 (check-sat)
index b92c4b2cf955702604d8a638aad4474558cb0601..3dcafae086fa89a6410cc28755cf0537deb481e6 100644 (file)
 (declare-fun b () (Set Int))
 (declare-fun c () (Set Int))
 (declare-fun e () Int)
-(assert (= a (singleton 5)))
-(assert (= c (union a b) ))
-(assert (not (= c (intersection a b) )))
-(assert (= c (setminus a b) ))
-(assert (subset a b))
-(assert (member e c))
-(assert (member e a))
-(assert (member e (intersection a b)))
+(assert (= a (set.singleton 5)))
+(assert (= c (set.union a b) ))
+(assert (not (= c (set.intersection a b) )))
+(assert (= c (set.minus a b) ))
+(assert (set.subset a b))
+(assert (set.member e c))
+(assert (set.member e a))
+(assert (set.member e (set.intersection a b)))
 (check-sat)
 (pop 1)
 
-; UF can tell that this is UNSAT (union)
+; UF can tell that this is UNSAT (set.union)
 (push 1)
 (declare-fun x () (Set Int))
 (declare-fun y () (Set Int))
 (declare-fun z () (Set Int))
 (assert (= x y))
-(assert (not (= (union x z) (union y z))))
+(assert (not (= (set.union x z) (set.union y z))))
 (check-sat)
 (pop 1)
 
 (declare-fun e2 () Int)
 (assert (= x y))
 (assert (= e1 e2))
-(assert (member e1 x))
-(assert (not (member e2 y)))
+(assert (set.member e1 x))
+(assert (not (set.member e2 y)))
 (check-sat)
 (pop 1)
 
-; UF can tell that this is UNSAT (merge union + containment examples)
+; UF can tell that this is UNSAT (merge set.union + containment examples)
 (push 1)
 (declare-fun x () (Set Int))
 (declare-fun y () (Set Int))
 (declare-fun e2 () Int)
 (assert (= x y))
 (assert (= e1 e2))
-(assert (member e1 (union x z)))
-(assert (not (member e2 (union y z))))
+(assert (set.member e1 (set.union x z)))
+(assert (not (set.member e2 (set.union y z))))
 (check-sat)
 (pop 1)
 
 ; test all the other kinds for completeness
 (push 1)
-(assert (member 5 (insert 1 2 3 4 (singleton 5))))
-(assert (member 5 (insert 1 2 3 4 (as emptyset (Set Int)))))
+(assert (set.member 5 (set.insert 1 2 3 4 (set.singleton 5))))
+(assert (set.member 5 (set.insert 1 2 3 4 (as set.empty (Set Int)))))
 (check-sat)
  
 (exit) 
index 1ac2e16034fe8317f58632ed581d277fa9854a06..37ad9001768bccaee2727c6c5a6bd5bc94a847e0 100644 (file)
@@ -4,8 +4,8 @@
 (declare-fun S () (Set Int))
 (declare-fun x () Int)
 
-(assert (member (+ 5 x) S))
-(assert (not (member 9 S)))
+(assert (set.member (+ 5 x) S))
+(assert (not (set.member 9 S)))
 (assert (= x 4))
 
 (check-sat)
index b794633e39acee5a9ef72576eb4e4379ce9568b9..8dbe5ffa54a33ac4be11117c67f1be7e7ac1d310 100644 (file)
@@ -6,10 +6,10 @@
 (declare-fun a () (Set Int))
 (declare-fun b () (Set Int))
 (declare-fun x () Int)
-(assert (not (member x a)))
-(assert (member x (union a b)))
+(assert (not (set.member x a)))
+(assert (set.member x (set.union a b)))
 (check-sat)
 ;(get-model)
-(assert (not (member x b)))
+(assert (not (set.member x b)))
 (check-sat)
 (exit)
index 761428fde97efb2cc57f240f16851a5022742f0f..be746be1d629b0199837ed2515b29ce05cd7e458 100644 (file)
@@ -7,9 +7,9 @@
 (declare-fun C () (Set Int))
 (declare-fun D () (Set Int))
 
-(assert (member x A))
-(assert (member y B))
-(assert (or (= C (intersection A B)) (= D (intersection A B))))
+(assert (set.member x A))
+(assert (set.member y B))
+(assert (or (= C (set.intersection A B)) (= D (set.intersection A B))))
 
 
 (check-sat)
index bb969f866a5ee5c4c85096505fabf532c4d816a3..ea936c730e51e8f5210a66fd53251b8ede038357 100644 (file)
@@ -8,9 +8,9 @@
 (declare-fun A () (Set Int))
 (declare-fun B () (Set Int))
 (declare-fun x () Int)
-(assert (member x A))
+(assert (set.member x A))
 (push 1)
-(assert (not (member x (union A B))))
+(assert (not (set.member x (set.union A B))))
 (check-sat)
 (pop 1)
 (check-sat)
index ad684070fe73427892c5827254c749271ac7b498..007d64d4e6da3bea359af4eba3fcc2ff58b71651 100644 (file)
@@ -8,9 +8,9 @@
 (declare-fun A () (Set Int))
 (declare-fun B () (Set Int))
 (declare-fun x () Int)
-(assert (not (member x (union A B))))
+(assert (not (set.member x (set.union A B))))
 (push 1)
-(assert (member x A))
+(assert (set.member x A))
 (check-sat)
 (pop 1)
 (check-sat)
index 228452f54db8c16ba3483304e45d5dbdf83b6050..92d241dd713c65bf99dba3175c6192c23b8e54bd 100644 (file)
@@ -8,9 +8,9 @@
 (declare-fun A () (Set Int))
 (declare-fun B () (Set Int))
 (declare-fun x () Int)
-(assert (member x B))
+(assert (set.member x B))
 (push 1)
-(assert (not (member x (union A B))))
+(assert (not (set.member x (set.union A B))))
 (check-sat)
 (pop 1)
 (check-sat)
index 8829b6152baef60a6e10844869b10243d6f94926..5be78507928b06162acfa207a6e1eeba921d709a 100644 (file)
@@ -8,9 +8,9 @@
 (declare-fun A () (Set Int))
 (declare-fun B () (Set Int))
 (declare-fun x () Int)
-(assert (not (member x (union A B))))
+(assert (not (set.member x (set.union A B))))
 (push 1)
-(assert (member x B))
+(assert (set.member x B))
 (check-sat)
 (pop 1)
 (check-sat)
index 52d2e7e8c576daa8830a28b1fcf6a8c5e0dda9e3..12a1fe8ffb4717f2f403049cbad20a6ee1b9e339 100644 (file)
@@ -6,7 +6,7 @@
 (declare-fun B () (Set Int))
 (declare-fun x () Int)
 (declare-fun y () Int)
-(assert (member x (union A B)))
-(assert (not (member y A)))
-(assert (not (member y B)))
+(assert (set.member x (set.union A B)))
+(assert (not (set.member y A)))
+(assert (not (set.member y B)))
 (check-sat)
index a8875cc413d782112071cc1f56c6a6a13a74d02f..04f41339979fffcc9a3267a77a5907a2fe82aa2b 100644 (file)
 
 (declare-fun x () Int)
 
-(assert (not (member 0 a)))
-(assert (member 0 b))
-(assert (not (member 1 c)))
-(assert (member 2 d))
-(assert (= e (as univset (Set Int))))
-(assert (= f (complement d)))
-(assert (not (member x (as univset (Set Int)))))
+(assert (not (set.member 0 a)))
+(assert (set.member 0 b))
+(assert (not (set.member 1 c)))
+(assert (set.member 2 d))
+(assert (= e (as set.universe (Set Int))))
+(assert (= f (set.complement d)))
+(assert (not (set.member x (as set.universe (Set Int)))))
 
 (check-sat)
index e02b4c2f8b6e50cd6784c1c7eb3a11924e87d579..7a36794df21606ed32b8bfa0e42f36d045f440d9 100644 (file)
@@ -15,7 +15,7 @@
 %            Maximal clause size  :    1 (   1 average)
 %            Number of predicates :    1 (   0 propositional; 2-2 arity)
 %            Number of functors   :    5 (   2 constant; 0-2 arity)
-%            Number of variables  :   14 (   0 singleton)
+%            Number of variables  :   14 (   0 set.singleton)
 %            Maximal term depth   :    3 (   2 average)
 % SPC      : 
 
index 24ef682b7450c7e2c1188112dd42ab69064d8b2d..136a70b3cbe43e3e333b426872f1a1cec1e114d1 100644 (file)
@@ -18,7 +18,7 @@
 %                                         (   0 <~>;   0 ~|;   0 ~&)
 %            Number of predicates  :    3 (   3 propositional; 0-0 arity)
 %            Number of functors    :    0 (   0 constant; --- arity)
-%            Number of variables   :    0 (   0 singleton;   0 !;   0 ?)
+%            Number of variables   :    0 (   0 set.singleton;   0 !;   0 ?)
 %            Maximal term depth    :    0 (   0 average)
 % SPC      : 
 
index d67e61aee9196c0ff590554eccf6ad0d444e98d4..01a6d9ba05a0d60bd4a19fffec4435d716a1f963 100644 (file)
@@ -15,7 +15,7 @@
 %            Maximal clause size   :    1 (   1 average)
 %            Number of predicates  :    3 (   3 propositional; 0-0 arity)
 %            Number of functors    :    0 (   0 constant; --- arity)
-%            Number of variables   :    0 (   0 singleton)
+%            Number of variables   :    0 (   0 set.singleton)
 %            Maximal term depth    :    0 (   0 average)
 % SPC      : 
 
index 0ea15fefc355cc41fa43345b2e10f05ef9dcaa69..5391e0689bff139cd24ce1d8d2fffc31b3cf80a1 100644 (file)
@@ -16,7 +16,7 @@
 %            Maximal clause size   :    1 (   1 average)
 %            Number of predicates  :    1 (   0 propositional; 2-2 arity)
 %            Number of functors    :    6 (   3 constant; 0-2 arity)
-%            Number of variables   :   14 (   0 singleton)
+%            Number of variables   :   14 (   0 set.singleton)
 %            Maximal term depth    :    3 (   2 average)
 % SPC      : CNF_UNS_RFO_PEQ_UEQ
 
index a3cd4224c9eca58fa99f7208c53ec36b7eb84fcd..3b5297e165cc0cb9ed044de40909f0c1c11c5f70 100644 (file)
@@ -18,7 +18,7 @@
 %            Maximal clause size   :    1 (   1 average)
 %            Number of predicates  :    1 (   0 propositional; 2-2 arity)
 %            Number of functors    :    5 (   2 constant; 0-2 arity)
-%            Number of variables   :   10 (   0 singleton)
+%            Number of variables   :   10 (   0 set.singleton)
 %            Maximal term depth    :    5 (   3 average)
 % SPC      : CNF_SAT_RFO_PEQ_UEQ
 
index 8d0bbe25c4d503bb80ef4cfee34b2018815bf749..969c1c6f4d6612d303bfce9c1f4ccdc6d5faa87a 100644 (file)
@@ -22,7 +22,7 @@
 %                                         (   0 <~>;   0 ~|;   0 ~&)
 %            Number of predicates  :    6 (   0 propositional; 1-2 arity)
 %            Number of functors    :    0 (   0 constant; --- arity)
-%            Number of variables   :    6 (   0 singleton;   4 !;   2 ?)
+%            Number of variables   :    6 (   0 set.singleton;   4 !;   2 ?)
 %            Maximal term depth    :    1 (   1 average)
 % SPC      : FOF_SAT_RFO_NEQ
 
index 737741dee041e08b80188e4a3b44d749a78bf7bf..dca3edbcaf9d639401902cdd15d240bcf580e1af 100644 (file)
@@ -20,7 +20,7 @@
 %                                         (   0 <~>;   0 ~|;   0 ~&)
 %            Number of predicates  :   11 (   0 propositional; 1-2 arity)
 %            Number of functors    :    7 (   7 constant; 0-0 arity)
-%            Number of variables   :   37 (   0 singleton;  36 !;   1 ?)
+%            Number of variables   :   37 (   0 set.singleton;  36 !;   1 ?)
 %            Maximal term depth    :    1 (   1 average)
 % SPC      : FOF_UNS_RFO_SEQ
 
index e6a2ffe74a127f2aa80b36bb8dec846df6d3c552..7bebdc095778203c2bbd33491555288f4465d19f 100644 (file)
@@ -25,7 +25,7 @@
 %                                         (   0 <~>;   0 ~|;   0 ~&)
 %            Number of predicates  :    7 (   0 propositional; 1-4 arity)
 %            Number of functors    :    5 (   2 constant; 0-2 arity)
-%            Number of variables   :   11 (   0 singleton;   9 !;   2 ?)
+%            Number of variables   :   11 (   0 set.singleton;   9 !;   2 ?)
 %            Maximal term depth    :    2 (   1 average)
 % SPC      : FOF_CSA_RFO_SEQ
 
index f5cd1937efab5ee2deced277b1247073e9922012..14fb64d6323bdf49a4d3d5026f63ecb079af0efb 100644 (file)
@@ -18,7 +18,7 @@
 %            Maximal clause size   :    5 (   3 average)
 %            Number of predicates  :    6 (   0 propositional; 1-3 arity)
 %            Number of functors    :   10 (   6 constant; 0-2 arity)
-%            Number of variables   :   23 (   0 singleton)
+%            Number of variables   :   23 (   0 set.singleton)
 %            Maximal term depth    :    3 (   1 average)
 % SPC      : CNF_SAT_RFO_EQU_NUE
 
index a10a2f42d0217f83eff4483a3fe819eac798361d..7735b39a84a1bae9645f5fdc6aadb9652dff0489 100644 (file)
@@ -19,7 +19,7 @@
 %            Maximal clause size   :    4 (   2 average)
 %            Number of predicates  :    6 (   0 propositional; 1-3 arity)
 %            Number of functors    :    4 (   4 constant; 0-0 arity)
-%            Number of variables   :    8 (   1 singleton)
+%            Number of variables   :    8 (   1 set.singleton)
 %            Maximal term depth    :    1 (   1 average)
 % SPC      : CNF_UNS_EPR
 
index cf5bd272aedce12e1fc65bb5fa10c7ec8aad4b2b..23221232a09bd5024fae208597047a104463d453 100644 (file)
@@ -19,7 +19,7 @@
 %            Maximal clause size   :   18 (   3 average)
 %            Number of predicates  :   18 (   1 propositional; 0-3 arity)
 %            Number of functors    :   11 (  11 constant; 0-0 arity)
-%            Number of variables   :   11 (   0 singleton)
+%            Number of variables   :   11 (   0 set.singleton)
 %            Maximal term depth    :    1 (   1 average)
 % SPC      : CNF_SAT_EPR
 
index b6a68ec959e6cf3ba7eb7ef0520583f55eeb14d5..f32940536b67140524cefd4d2069772fe9f6042a 100644 (file)
@@ -16,7 +16,7 @@
 %            Maximal clause size   :    5 (   2 average)
 %            Number of predicates  :   16 (  10 propositional; 0-3 arity)
 %            Number of functors    :    8 (   5 constant; 0-3 arity)
-%            Number of variables   :   11 (   5 singleton)
+%            Number of variables   :   11 (   5 set.singleton)
 %            Maximal term depth    :    4 (   2 average)
 % SPC      : CNF_UNS_RFO_SEQ_NHN
 
index 7ef40217c4c6a83d81b192df02000d71dcce3da5..20720a552612dc23bab052b20d4e5865b63543c3 100644 (file)
@@ -20,7 +20,7 @@
 %                                         (   0 <~>;   0 ~|;   0 ~&)
 %            Number of predicates  :    2 (   0 propositional; 2-2 arity)
 %            Number of functors    :    0 (   0 constant; --- arity)
-%            Number of variables   :    8 (   0 singleton;   4 !;   4 ?)
+%            Number of variables   :    8 (   0 set.singleton;   4 !;   4 ?)
 %            Maximal term depth    :    1 (   1 average)
 % SPC      : FOF_THM_RFO_SEQ
 
index 85ac2d27818acc8ba3c1b6dde2fe183e435ff936..2a1a10783007bb8276592ffa1e11db0e6334d19e 100644 (file)
@@ -18,7 +18,7 @@
 %            Maximal clause size   :    4 (   3 average)
 %            Number of predicates  :    2 (   0 propositional; 2-2 arity)
 %            Number of functors    :    5 (   2 constant; 0-2 arity)
-%            Number of variables   :   23 (   2 singleton)
+%            Number of variables   :   23 (   2 set.singleton)
 %            Maximal term depth    :    2 (   1 average)
 % SPC      : CNF_UNS_RFO_SEQ_NHN
 
index 15af936329d2ee2ee1e65775f99c743cc7dd59b3..5b9bffd6fdbab709c143d596c018be6d707e6712 100644 (file)
@@ -23,7 +23,7 @@
 (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)) (singleton (head0 l1))))) :pattern ((contents l1)))))
+(assert (forall ((l1 List0)) (! (= (contents l1) (ite ((_ is Nil) l1) (as set.empty (Set Int)) (set.union (contents (tail0 l1)) (set.singleton (head0 l1))))) :pattern ((contents l1)))))
 
 (push)
 (assert (forall ((l List0)) (not (let ((result (ite ((_ is Nil) l) 0 (+ 1 (size (tail0 l)))))) (>= result 0)))))
@@ -36,6 +36,6 @@
 (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) (singleton 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) (set.union (contents l4) (set.singleton e1))) (isSorted result2) (= (size result2) (+ (size l4) 1)))))))
 (check-sat)
 (pop)
index a6c4f6695c8755093a9734037385599d26f949b1..f346825654445fd6862d5fccd224546259053a5d 100644 (file)
@@ -6,5 +6,5 @@
 ))
 (declare-fun a () T)
 (assert (not ((_ is Emp) a)))
-(assert (= (s a) (singleton a)))
+(assert (= (s a) (set.singleton a)))
 (check-sat)
index 522609b119fb6152dc02e792fe91dddfe3738966..f2b012c864af3f7cce405fa1ab06a04b7a453966 100644 (file)
 (assert (forall ((mk_array_7_index node$type)) (= (select mk_array_7
                                                   mk_array_7_index) null_state)))
 (define-fun null_state_set () state_set$type mk_array_7)
-(declare-fun choose (Values$t$type) value$type)
+(declare-fun set.choose (Values$t$type) value$type)
 ;choosen_value :
 (assert (forall ((vals Values$t$type)) (or (= vals Values$empty) (= (Values$mem
-                                                                    (choose
+                                                                    (set.choose
                                                                     vals)
                                                                     vals)
                                                                  Truth))))
index 5e3c2952b7b58ffc0b66c2bb2027973671dc96c5..f0ff20de9804f5dfe118aab2023e99339e64f36e 100644 (file)
@@ -7,18 +7,18 @@
 (declare-fun S () (Set list))
 
 ; can use simple unification to infer bounds on x and y
-(assert (forall ((x Int) (y list)) (=> (member (cons x y) S) (P x))))
+(assert (forall ((x Int) (y list)) (=> (set.member (cons x y) S) (P x))))
 
-(assert (member (cons 4 (cons 1 nil)) S))
-(assert (member (cons 2 nil) S))
+(assert (set.member (cons 4 (cons 1 nil)) S))
+(assert (set.member (cons 2 nil) S))
 
 ; should construct instantiation involving selectors for l 
 (declare-fun l () list)
 (assert ((_ is cons) l))
-(assert (member l S))
+(assert (set.member l S))
 
 ; should not contribute to instantiations
-(assert (member nil S))
+(assert (set.member nil S))
 
 (assert (not (P 1)))
 (assert (not (P 0)))
index 20738245c3cf4f27ba58a1bca9f0b2cf377d4d6a..be9f3e13a14afbc86bd78a21b07f7223a8873497 100644 (file)
 
 (declare-fun h (U) Int)
 
-(assert (member 77 S))
+(assert (set.member 77 S))
 (assert (>= (h (f 77)) 3))
 (assert (>= (h (g 77)) 2))
 (assert (not (= (g 77) (f 77))))
 
 (assert (forall ((x Int) (z U)) (=> 
 (or (= z (f x)) (= z (g x)))
-(=> (member x S)
+(=> (set.member x S)
 (P x 0 z)))))
 
 (assert (forall ((x Int) (y Int) (z U)) (=>
index 846532c28ca8eea1686655a0d14ff7f9d146671e..80bc294e6ca914cff93eb3feda21001e8bbef0c0 100644 (file)
@@ -6,5 +6,5 @@
 (set-option :produce-models true)
 (declare-fun X () (Set Int))
 (declare-fun Y () (Set Int))
-(assert (forall ((x Int)) (=> (member x X) (> x 0))))
-(check-sat-assuming ( (=> (and (= (card X) 5) (= Y (union X (singleton 9)))) (<= (card Y) 4)) ))
+(assert (forall ((x Int)) (=> (set.member x X) (> x 0))))
+(check-sat-assuming ( (=> (and (= (set.card X) 5) (= Y (set.union X (set.singleton 9)))) (<= (set.card Y) 4)) ))
index 433c1f102752400918b644fa41777cd21c97d88b..e5cc1a503a7d5289db2f89501ca155cfc1d04551 100644 (file)
 (declare-fun or2 () |__cvc5_record_O_MOPERATION_T_TEAR_TYPE_R_ORDER_A_ATOM_B_SDBLOCK_TYPE_M_(Set BINT)_V_VALUE_TYPE|)
 (declare-fun v1 () VALUE_TYPE)
 (declare-fun v2 () VALUE_TYPE)
-(assert (and (and (and (and (and (and (= (O ow1) W) (= (T ow1) TEAR_FALSE)) (= (RR ow1) U)) (= (A ow1) NA)) (= (B ow1) m1)) (= (M ow1) (singleton I0))) (= (V ow1) v1)))
-(assert (and (and (and (and (and (and (= (O or2) R) (= (T or2) TEAR_FALSE)) (= (RR or2) U)) (= (A or2) NA)) (= (B or2) m1)) (= (M or2) (singleton I0))) (= (V or2) v2)))
+(assert (and (and (and (and (and (and (= (O ow1) W) (= (T ow1) TEAR_FALSE)) (= (RR ow1) U)) (= (A ow1) NA)) (= (B ow1) m1)) (= (M ow1) (set.singleton I0))) (= (V ow1) v1)))
+(assert (and (and (and (and (and (and (= (O or2) R) (= (T or2) TEAR_FALSE)) (= (RR or2) U)) (= (A or2) NA)) (= (B or2) m1)) (= (M or2) (set.singleton I0))) (= (V or2) v2)))
 (declare-fun ev_set () (Set |__cvc5_record_O_MOPERATION_T_TEAR_TYPE_R_ORDER_A_ATOM_B_SDBLOCK_TYPE_M_(Set BINT)_V_VALUE_TYPE|))
-(assert (= ev_set (union (singleton ow1) (singleton or2))))
+(assert (= ev_set (set.union (set.singleton ow1) (set.singleton or2))))
 (declare-fun RF () (Set (Tuple |__cvc5_record_O_MOPERATION_T_TEAR_TYPE_R_ORDER_A_ATOM_B_SDBLOCK_TYPE_M_(Set BINT)_V_VALUE_TYPE| |__cvc5_record_O_MOPERATION_T_TEAR_TYPE_R_ORDER_A_ATOM_B_SDBLOCK_TYPE_M_(Set BINT)_V_VALUE_TYPE|)))
-(assert (forall ((r |__cvc5_record_O_MOPERATION_T_TEAR_TYPE_R_ORDER_A_ATOM_B_SDBLOCK_TYPE_M_(Set BINT)_V_VALUE_TYPE|) (w |__cvc5_record_O_MOPERATION_T_TEAR_TYPE_R_ORDER_A_ATOM_B_SDBLOCK_TYPE_M_(Set BINT)_V_VALUE_TYPE|)) (=> (and (member r ev_set) (member w ev_set)) (= (member (tuple r w) RF) (and (= (O r) R) (= (O w) W))))))
+(assert (forall ((r |__cvc5_record_O_MOPERATION_T_TEAR_TYPE_R_ORDER_A_ATOM_B_SDBLOCK_TYPE_M_(Set BINT)_V_VALUE_TYPE|) (w |__cvc5_record_O_MOPERATION_T_TEAR_TYPE_R_ORDER_A_ATOM_B_SDBLOCK_TYPE_M_(Set BINT)_V_VALUE_TYPE|)) (=> (and (set.member r ev_set) (set.member w ev_set)) (= (set.member (tuple r w) RF) (and (= (O r) R) (= (O w) W))))))
 (check-sat)
index 180894ca5fc5fbb96fe52e85c95ee1f3e16545a8..423039e4627e98540946f050afcdacab72fcd882 100644 (file)
@@ -6,11 +6,11 @@
 (declare-const B (Set Int))
 
 (define-fun F () Bool
-            (exists ((i Int) (j Int)) (and (distinct i j) (member i A) (member j B)))
+            (exists ((i Int) (j Int)) (and (distinct i j) (set.member i A) (set.member j B)))
 )
 
 (define-fun G () Bool
-            (and (>= (card (union A B)) 2) (>= (card A) 1) (>= (card B) 1))
+            (and (>= (set.card (set.union A B)) 2) (>= (set.card A) 1) (>= (set.card B) 1))
 )
 
 (assert (and G (not F)))
index c5840e6a962956fa9ebdd7f9f115445e8d0f058b..cbdcf7480ea8261967132610043aedc328d92abb 100644 (file)
 (declare-fun these$ (Pname_option_set$) Pname_set$)
 (declare-fun while$ ((-> State$ Bool) Com$) Com$)
 (declare-fun finite$ (Pname_set$) Bool)
-(declare-fun insert$ (State_triple$ State_triple_set$) State_triple_set$)
+(declare-fun set.insert$ (State_triple$ State_triple_set$) State_triple_set$)
 (declare-fun map_le$ ((-> State_triple$ Com_option$) (-> State_triple$ Com_option$)) Bool)
-(declare-fun member$ (State_triple$ State_triple_set$) Bool)
+(declare-fun set.member$ (State_triple$ State_triple_set$) Bool)
 (declare-fun minus$a (State_triple_option_set$ State_triple_option_set$) State_triple_option_set$)
 (declare-fun minus$b (Com_option_set$ Com_option_set$) Com_option_set$)
 (declare-fun minus$c (State_triple_set$ State_triple_set$) State_triple_set$)
 (declare-fun collect$ ((-> Com$ Bool)) Com_set$)
 (declare-fun fun_upd$ ((-> State_triple$ Com_option$) State_triple$ Com_option$) (-> State_triple$ Com_option$))
 (declare-fun getlocs$ (State$) (-> Loc$ Nat$))
-(declare-fun insert$a (Com$ Com_set$) Com_set$)
-(declare-fun insert$b (Pname$ Pname_set$) Pname_set$)
-(declare-fun insert$c (State_triple_option$ State_triple_option_set$) State_triple_option_set$)
-(declare-fun insert$d (Com_option$ Com_option_set$) Com_option_set$)
-(declare-fun insert$e (Pname_option$ Pname_option_set$) Pname_option_set$)
-(declare-fun insert$f (State_triple_option_option$ State_triple_option_option_set$) State_triple_option_option_set$)
-(declare-fun insert$g (Com_option_option$ Com_option_option_set$) Com_option_option_set$)
+(declare-fun set.insert$a (Com$ Com_set$) Com_set$)
+(declare-fun set.insert$b (Pname$ Pname_set$) Pname_set$)
+(declare-fun set.insert$c (State_triple_option$ State_triple_option_set$) State_triple_option_set$)
+(declare-fun set.insert$d (Com_option$ Com_option_set$) Com_option_set$)
+(declare-fun set.insert$e (Pname_option$ Pname_option_set$) Pname_option_set$)
+(declare-fun set.insert$f (State_triple_option_option$ State_triple_option_option_set$) State_triple_option_option_set$)
+(declare-fun set.insert$g (Com_option_option$ Com_option_option_set$) Com_option_option_set$)
 (declare-fun map_le$a ((-> Pname$ Com_option$) (-> Pname$ Com_option$)) Bool)
-(declare-fun member$a (Pname$ Pname_set$) Bool)
-(declare-fun member$b (Com$ Com_set$) Bool)
-(declare-fun member$c (State_triple_option$ State_triple_option_set$) Bool)
-(declare-fun member$d (Com_option$ Com_option_set$) Bool)
+(declare-fun set.member$a (Pname$ Pname_set$) Bool)
+(declare-fun set.member$b (Com$ Com_set$) Bool)
+(declare-fun set.member$c (State_triple_option$ State_triple_option_set$) Bool)
+(declare-fun set.member$d (Com_option$ Com_option_set$) Bool)
 (declare-fun newlocs$ () (-> Loc$ Nat$))
 (declare-fun setlocs$ (State$ (-> Loc$ Nat$)) State$)
 (declare-fun collect$a ((-> State_triple$ Bool)) State_triple_set$)
 (declare-fun restrict_map$i ((-> State_triple$ Com_option$) State_triple_set$) (-> State_triple$ Com_option$))
 (declare-fun state_not_singleton$ () Bool)
 (assert (! (forall ((?v0 Bool)) (! (= (uut$ ?v0) (not ?v0)) :pattern ((uut$ ?v0)))) :named a0))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 State_triple$)) (! (= (uua$ ?v0 ?v1) (member$ ?v1 ?v0)) :pattern ((uua$ ?v0 ?v1)))) :named a1))
-(assert (! (forall ((?v0 Pname_set$) (?v1 Pname$)) (! (= (uub$ ?v0 ?v1) (member$a ?v1 ?v0)) :pattern ((uub$ ?v0 ?v1)))) :named a2))
-(assert (! (forall ((?v0 Com_set$) (?v1 Com$)) (! (= (uu$ ?v0 ?v1) (member$b ?v1 ?v0)) :pattern ((uu$ ?v0 ?v1)))) :named a3))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 State_triple$)) (! (= (uua$ ?v0 ?v1) (set.member$ ?v1 ?v0)) :pattern ((uua$ ?v0 ?v1)))) :named a1))
+(assert (! (forall ((?v0 Pname_set$) (?v1 Pname$)) (! (= (uub$ ?v0 ?v1) (set.member$a ?v1 ?v0)) :pattern ((uub$ ?v0 ?v1)))) :named a2))
+(assert (! (forall ((?v0 Com_set$) (?v1 Com$)) (! (= (uu$ ?v0 ?v1) (set.member$b ?v1 ?v0)) :pattern ((uu$ ?v0 ?v1)))) :named a3))
 (assert (! (forall ((?v0 State$) (?v1 State$)) (! (= (uuq$ ?v0 ?v1) (= ?v0 ?v1)) :pattern ((uuq$ ?v0 ?v1)))) :named a4))
 (assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$)) (! (= (uvh$ ?v0 ?v1) (not (= (?v0 ?v1) none$))) :pattern ((uvh$ ?v0 ?v1)))) :named a5))
 (assert (! (forall ((?v0 (-> Pname$ State_triple_option$)) (?v1 Pname$)) (! (= (uvi$ ?v0 ?v1) (not (= (?v0 ?v1) none$a))) :pattern ((uvi$ ?v0 ?v1)))) :named a6))
 (assert (! (forall ((?v0 Com$) (?v1 State$) (?v2 Nat$) (?v3 State$) (?v4 Com$) (?v5 State$)) (=> (and (evaln$ ?v0 ?v1 ?v2 ?v3) (evaln$ ?v4 ?v3 ?v2 ?v5)) (evaln$ (semi$ ?v0 ?v4) ?v1 ?v2 ?v5))) :named a76))
 (assert (! (forall ((?v0 Com$) (?v1 Com$) (?v2 State$) (?v3 Nat$) (?v4 State$)) (=> (and (evaln$ (semi$ ?v0 ?v1) ?v2 ?v3 ?v4) (forall ((?v5 State$)) (=> (and (evaln$ ?v0 ?v2 ?v3 ?v5) (evaln$ ?v1 ?v5 ?v3 ?v4)) false))) false)) :named a77))
 (assert (! (forall ((?v0 Vname$) (?v1 (-> State$ Nat$))) (not (= skip$ (ass$ ?v0 ?v1)))) :named a78))
-(assert (! (forall ((?v0 Com$) (?v1 (-> Com$ Bool))) (= (member$b ?v0 (collect$ ?v1)) (?v1 ?v0))) :named a79))
-(assert (! (forall ((?v0 State_triple$) (?v1 (-> State_triple$ Bool))) (= (member$ ?v0 (collect$a ?v1)) (?v1 ?v0))) :named a80))
-(assert (! (forall ((?v0 Pname$) (?v1 (-> Pname$ Bool))) (= (member$a ?v0 (collect$b ?v1)) (?v1 ?v0))) :named a81))
+(assert (! (forall ((?v0 Com$) (?v1 (-> Com$ Bool))) (= (set.member$b ?v0 (collect$ ?v1)) (?v1 ?v0))) :named a79))
+(assert (! (forall ((?v0 State_triple$) (?v1 (-> State_triple$ Bool))) (= (set.member$ ?v0 (collect$a ?v1)) (?v1 ?v0))) :named a80))
+(assert (! (forall ((?v0 Pname$) (?v1 (-> Pname$ Bool))) (= (set.member$a ?v0 (collect$b ?v1)) (?v1 ?v0))) :named a81))
 (assert (! (forall ((?v0 Com_set$)) (= (collect$ (uu$ ?v0)) ?v0)) :named a82))
 (assert (! (forall ((?v0 State_triple_set$)) (= (collect$a (uua$ ?v0)) ?v0)) :named a83))
 (assert (! (forall ((?v0 Pname_set$)) (= (collect$b (uub$ ?v0)) ?v0)) :named a84))
 (assert (! (forall ((?v0 Vname$)) (=> (and (forall ((?v1 Glb$)) (=> (= ?v0 (glb$ ?v1)) false)) (forall ((?v1 Loc$)) (=> (= ?v0 (loc$ ?v1)) false))) false)) :named a180))
 (assert (! (forall ((?v0 Pname$) (?v1 Com$)) (=> (and wT_bodies$ (= (body$ ?v0) (some$ ?v1))) (wt$ ?v1))) :named a181))
 (assert (! (forall ((?v0 Nat$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Pname$) (?v3 (-> State$ (-> State$ Bool)))) (= (triple_valid$ ?v0 (triple$ ?v1 (the$ (body$ ?v2)) ?v3)) (triple_valid$ (suc$ ?v0) (triple$ ?v1 (body$a ?v2) ?v3)))) :named a182))
-(assert (! (forall ((?v0 Pname_option$)) (=> (not (= ?v0 none$b)) (member$a (the$b ?v0) (set_option$ ?v0)))) :named a183))
-(assert (! (forall ((?v0 State_triple_option$)) (=> (not (= ?v0 none$a)) (member$ (the$a ?v0) (set_option$a ?v0)))) :named a184))
-(assert (! (forall ((?v0 Com_option$)) (=> (not (= ?v0 none$)) (member$b (the$ ?v0) (set_option$b ?v0)))) :named a185))
+(assert (! (forall ((?v0 Pname_option$)) (=> (not (= ?v0 none$b)) (set.member$a (the$b ?v0) (set_option$ ?v0)))) :named a183))
+(assert (! (forall ((?v0 State_triple_option$)) (=> (not (= ?v0 none$a)) (set.member$ (the$a ?v0) (set_option$a ?v0)))) :named a184))
+(assert (! (forall ((?v0 Com_option$)) (=> (not (= ?v0 none$)) (set.member$b (the$ ?v0) (set_option$b ?v0)))) :named a185))
 (assert (! (forall ((?v0 State_triple_option$) (?v1 (-> State_triple$ Com_option$))) (= (= (bind$ ?v0 ?v1) none$) (or (= ?v0 none$a) (= (?v1 (the$a ?v0)) none$)))) :named a186))
 (assert (! (forall ((?v0 Com_option$) (?v1 (-> Com$ State_triple_option$))) (= (= (bind$a ?v0 ?v1) none$a) (or (= ?v0 none$) (= (?v1 (the$ ?v0)) none$a)))) :named a187))
 (assert (! (forall ((?v0 State_triple_option$) (?v1 (-> State_triple$ State_triple_option$))) (= (= (bind$b ?v0 ?v1) none$a) (or (= ?v0 none$a) (= (?v1 (the$a ?v0)) none$a)))) :named a188))
 (assert (! (forall ((?v0 Vname$) (?v1 (-> State$ Nat$))) (! (= (size$d (ass$ ?v0 ?v1)) zero$) :pattern ((ass$ ?v0 ?v1)))) :named a241))
 (assert (! (= (size$d skip$) zero$) :named a242))
 (assert (! (forall ((?v0 (-> State$ Bool)) (?v1 Com$)) (! (= (size$d (while$ ?v0 ?v1)) (plus$ (size$d ?v1) (suc$ zero$))) :pattern ((while$ ?v0 ?v1)))) :named a243))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Pname$) (?v3 (-> State$ (-> State$ Bool))) (?v4 State$) (?v5 Vname$) (?v6 (-> State$ Nat$))) (=> (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 (body$a ?v2) (uuc$ ?v3 ?v4 ?v5)) bot$d)) (hoare_derivs$ ?v0 (insert$ (triple$ (uud$ ?v1 ?v4 ?v6) (call$ ?v5 ?v2 ?v6) ?v3) bot$d)))) :named a244))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Pname$) (?v3 (-> State$ (-> State$ Bool))) (?v4 State$) (?v5 Vname$) (?v6 (-> State$ Nat$))) (=> (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 (body$a ?v2) (uuc$ ?v3 ?v4 ?v5)) bot$d)) (hoare_derivs$ ?v0 (set.insert$ (triple$ (uud$ ?v1 ?v4 ?v6) (call$ ?v5 ?v2 ?v6) ?v3) bot$d)))) :named a244))
 (assert (! (forall ((?v0 Com_option$)) (= (bind$c ?v0 uue$) none$)) :named a245))
 (assert (! (forall ((?v0 Bool) (?v1 (-> State_triple$ Bool)) (?v2 State_triple_option$)) (=> (and (case_option$a ?v0 ?v1 ?v2) (and (=> (and (= ?v2 none$a) ?v0) false) (forall ((?v3 State_triple$)) (=> (and (= ?v2 (some$a ?v3)) (?v1 ?v3)) false)))) false)) :named a246))
 (assert (! (forall ((?v0 Bool) (?v1 (-> Com$ Bool)) (?v2 Com_option$)) (=> (and (case_option$ ?v0 ?v1 ?v2) (and (=> (and (= ?v2 none$) ?v0) false) (forall ((?v3 Com$)) (=> (and (= ?v2 (some$ ?v3)) (?v1 ?v3)) false)))) false)) :named a247))
 (assert (! (forall ((?v0 Com_option$)) (= (not (= ?v0 none$)) (case_option$ false uug$ ?v0))) :named a250))
 (assert (! (forall ((?v0 State_triple_option$)) (= (= ?v0 none$a) (case_option$a true uuh$ ?v0))) :named a251))
 (assert (! (forall ((?v0 Com_option$)) (= (= ?v0 none$) (case_option$ true uui$ ?v0))) :named a252))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 State_triple$) (?v2 State_triple_set$)) (=> (hoare_derivs$ ?v0 (insert$ ?v1 ?v2)) (and (hoare_derivs$ ?v0 (insert$ ?v1 bot$d)) (hoare_derivs$ ?v0 ?v2)))) :named a253))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 State_triple$) (?v2 State_triple_set$)) (=> (hoare_derivs$ ?v0 (set.insert$ ?v1 ?v2)) (and (hoare_derivs$ ?v0 (set.insert$ ?v1 bot$d)) (hoare_derivs$ ?v0 ?v2)))) :named a253))
 (assert (! (forall ((?v0 State_triple_set$)) (hoare_derivs$ ?v0 bot$d)) :named a254))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 State_triple$) (?v2 State_triple_set$)) (=> (and (hoare_derivs$ ?v0 (insert$ ?v1 bot$d)) (hoare_derivs$ ?v0 ?v2)) (hoare_derivs$ ?v0 (insert$ ?v1 ?v2)))) :named a255))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 Loc$) (?v5 State$) (?v6 (-> State$ Nat$))) (=> (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 ?v2 (uuj$ ?v3 ?v4 ?v5)) bot$d)) (hoare_derivs$ ?v0 (insert$ (triple$ (uuk$ ?v1 ?v4 ?v5 ?v6) (local$ ?v4 ?v6 ?v2) ?v3) bot$d)))) :named a256))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 (-> State$ Bool)) (?v3 Com$)) (hoare_derivs$ ?v0 (insert$ (triple$ (uul$ ?v1 ?v2) (while$ ?v2 ?v3) ?v1) bot$d))) :named a257))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 Com$) (?v5 (-> State$ (-> State$ Bool)))) (=> (and (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 ?v2 ?v3) bot$d)) (hoare_derivs$ ?v0 (insert$ (triple$ ?v3 ?v4 ?v5) bot$d))) (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 (semi$ ?v2 ?v4) ?v5) bot$d)))) :named a258))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool)))) (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 skip$ ?v1) bot$d))) :named a259))
-(assert (! (forall ((?v0 (-> State$ (-> State$ Bool))) (?v1 State_triple_set$) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool)))) (=> (forall ((?v4 State$) (?v5 State$)) (=> (?v0 ?v4 ?v5) (exists ((?v6 (-> State$ (-> State$ Bool))) (?v7 (-> State$ (-> State$ Bool)))) (and (hoare_derivs$ ?v1 (insert$ (triple$ ?v6 ?v2 ?v7) bot$d)) (forall ((?v8 State$)) (=> (forall ((?v9 State$)) (=> (?v6 ?v9 ?v5) (?v7 ?v9 ?v8))) (?v3 ?v4 ?v8))))))) (hoare_derivs$ ?v1 (insert$ (triple$ ?v0 ?v2 ?v3) bot$d)))) :named a260))
-(assert (! (forall ((?v0 Bool) (?v1 State_triple_set$) (?v2 (-> State$ (-> State$ Bool))) (?v3 Com$) (?v4 (-> State$ (-> State$ Bool)))) (=> (=> ?v0 (hoare_derivs$ ?v1 (insert$ (triple$ ?v2 ?v3 ?v4) bot$d))) (hoare_derivs$ ?v1 (insert$ (triple$ (uum$ ?v0 ?v2) ?v3 ?v4) bot$d)))) :named a261))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 (-> State$ (-> State$ Bool))) (?v5 (-> State$ (-> State$ Bool)))) (=> (and (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 ?v2 ?v3) bot$d)) (forall ((?v6 State$) (?v7 State$)) (=> (?v4 ?v6 ?v7) (forall ((?v8 State$)) (=> (forall ((?v9 State$)) (=> (?v1 ?v9 ?v7) (?v3 ?v9 ?v8))) (?v5 ?v6 ?v8)))))) (hoare_derivs$ ?v0 (insert$ (triple$ ?v4 ?v2 ?v5) bot$d)))) :named a262))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 (-> State$ (-> State$ Bool)))) (=> (and (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 ?v2 ?v3) bot$d)) (forall ((?v5 State$) (?v6 State$)) (=> (?v3 ?v5 ?v6) (?v4 ?v5 ?v6)))) (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 ?v2 ?v4) bot$d)))) :named a263))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 (-> State$ (-> State$ Bool)))) (=> (and (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 ?v2 ?v3) bot$d)) (forall ((?v5 State$) (?v6 State$)) (=> (?v4 ?v5 ?v6) (?v1 ?v5 ?v6)))) (hoare_derivs$ ?v0 (insert$ (triple$ ?v4 ?v2 ?v3) bot$d)))) :named a264))
-(assert (! (forall ((?v0 (-> State$ (-> State$ Bool))) (?v1 State_triple_set$) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool)))) (=> (forall ((?v4 State$) (?v5 State$)) (=> (?v0 ?v4 ?v5) (hoare_derivs$ ?v1 (insert$ (triple$ (uun$ ?v5) ?v2 (uuo$ ?v3 ?v4)) bot$d)))) (hoare_derivs$ ?v1 (insert$ (triple$ ?v0 ?v2 ?v3) bot$d)))) :named a265))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Vname$) (?v3 (-> State$ Nat$))) (hoare_derivs$ ?v0 (insert$ (triple$ (uup$ ?v1 ?v2 ?v3) (ass$ ?v2 ?v3) ?v1) bot$d))) :named a266))
-(assert (! (forall ((?v0 (-> State$ (-> State$ Bool))) (?v1 Pname$) (?v2 (-> State$ (-> State$ Bool))) (?v3 State_triple_set$)) (=> (hoare_derivs$ (insert$ (triple$ ?v0 (body$a ?v1) ?v2) ?v3) (insert$ (triple$ ?v0 (the$ (body$ ?v1)) ?v2) bot$d)) (hoare_derivs$ ?v3 (insert$ (triple$ ?v0 (body$a ?v1) ?v2) bot$d)))) :named a267))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Pname$) (?v3 (-> State$ (-> State$ Bool)))) (=> (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 (the$ (body$ ?v2)) ?v3) bot$d)) (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 (body$a ?v2) ?v3) bot$d)))) :named a268))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 State_triple$) (?v2 State_triple_set$)) (=> (and (hoare_derivs$ ?v0 (set.insert$ ?v1 bot$d)) (hoare_derivs$ ?v0 ?v2)) (hoare_derivs$ ?v0 (set.insert$ ?v1 ?v2)))) :named a255))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 Loc$) (?v5 State$) (?v6 (-> State$ Nat$))) (=> (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 ?v2 (uuj$ ?v3 ?v4 ?v5)) bot$d)) (hoare_derivs$ ?v0 (set.insert$ (triple$ (uuk$ ?v1 ?v4 ?v5 ?v6) (local$ ?v4 ?v6 ?v2) ?v3) bot$d)))) :named a256))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 (-> State$ Bool)) (?v3 Com$)) (hoare_derivs$ ?v0 (set.insert$ (triple$ (uul$ ?v1 ?v2) (while$ ?v2 ?v3) ?v1) bot$d))) :named a257))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 Com$) (?v5 (-> State$ (-> State$ Bool)))) (=> (and (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 ?v2 ?v3) bot$d)) (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v3 ?v4 ?v5) bot$d))) (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 (semi$ ?v2 ?v4) ?v5) bot$d)))) :named a258))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool)))) (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 skip$ ?v1) bot$d))) :named a259))
+(assert (! (forall ((?v0 (-> State$ (-> State$ Bool))) (?v1 State_triple_set$) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool)))) (=> (forall ((?v4 State$) (?v5 State$)) (=> (?v0 ?v4 ?v5) (exists ((?v6 (-> State$ (-> State$ Bool))) (?v7 (-> State$ (-> State$ Bool)))) (and (hoare_derivs$ ?v1 (set.insert$ (triple$ ?v6 ?v2 ?v7) bot$d)) (forall ((?v8 State$)) (=> (forall ((?v9 State$)) (=> (?v6 ?v9 ?v5) (?v7 ?v9 ?v8))) (?v3 ?v4 ?v8))))))) (hoare_derivs$ ?v1 (set.insert$ (triple$ ?v0 ?v2 ?v3) bot$d)))) :named a260))
+(assert (! (forall ((?v0 Bool) (?v1 State_triple_set$) (?v2 (-> State$ (-> State$ Bool))) (?v3 Com$) (?v4 (-> State$ (-> State$ Bool)))) (=> (=> ?v0 (hoare_derivs$ ?v1 (set.insert$ (triple$ ?v2 ?v3 ?v4) bot$d))) (hoare_derivs$ ?v1 (set.insert$ (triple$ (uum$ ?v0 ?v2) ?v3 ?v4) bot$d)))) :named a261))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 (-> State$ (-> State$ Bool))) (?v5 (-> State$ (-> State$ Bool)))) (=> (and (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 ?v2 ?v3) bot$d)) (forall ((?v6 State$) (?v7 State$)) (=> (?v4 ?v6 ?v7) (forall ((?v8 State$)) (=> (forall ((?v9 State$)) (=> (?v1 ?v9 ?v7) (?v3 ?v9 ?v8))) (?v5 ?v6 ?v8)))))) (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v4 ?v2 ?v5) bot$d)))) :named a262))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 (-> State$ (-> State$ Bool)))) (=> (and (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 ?v2 ?v3) bot$d)) (forall ((?v5 State$) (?v6 State$)) (=> (?v3 ?v5 ?v6) (?v4 ?v5 ?v6)))) (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 ?v2 ?v4) bot$d)))) :named a263))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool))) (?v4 (-> State$ (-> State$ Bool)))) (=> (and (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 ?v2 ?v3) bot$d)) (forall ((?v5 State$) (?v6 State$)) (=> (?v4 ?v5 ?v6) (?v1 ?v5 ?v6)))) (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v4 ?v2 ?v3) bot$d)))) :named a264))
+(assert (! (forall ((?v0 (-> State$ (-> State$ Bool))) (?v1 State_triple_set$) (?v2 Com$) (?v3 (-> State$ (-> State$ Bool)))) (=> (forall ((?v4 State$) (?v5 State$)) (=> (?v0 ?v4 ?v5) (hoare_derivs$ ?v1 (set.insert$ (triple$ (uun$ ?v5) ?v2 (uuo$ ?v3 ?v4)) bot$d)))) (hoare_derivs$ ?v1 (set.insert$ (triple$ ?v0 ?v2 ?v3) bot$d)))) :named a265))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Vname$) (?v3 (-> State$ Nat$))) (hoare_derivs$ ?v0 (set.insert$ (triple$ (uup$ ?v1 ?v2 ?v3) (ass$ ?v2 ?v3) ?v1) bot$d))) :named a266))
+(assert (! (forall ((?v0 (-> State$ (-> State$ Bool))) (?v1 Pname$) (?v2 (-> State$ (-> State$ Bool))) (?v3 State_triple_set$)) (=> (hoare_derivs$ (set.insert$ (triple$ ?v0 (body$a ?v1) ?v2) ?v3) (set.insert$ (triple$ ?v0 (the$ (body$ ?v1)) ?v2) bot$d)) (hoare_derivs$ ?v3 (set.insert$ (triple$ ?v0 (body$a ?v1) ?v2) bot$d)))) :named a267))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 Pname$) (?v3 (-> State$ (-> State$ Bool)))) (=> (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 (the$ (body$ ?v2)) ?v3) bot$d)) (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 (body$a ?v2) ?v3) bot$d)))) :named a268))
 (assert (! (forall ((?v0 Com$)) (! (= (mgt$ ?v0) (triple$ uuq$ ?v0 (evalc$ ?v0))) :pattern ((mgt$ ?v0)))) :named a269))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v2 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v3 Pname_set$) (?v4 Pname$)) (=> (and (hoare_derivs$ (sup$ ?v0 (image$ (uur$ ?v1 ?v2) ?v3)) (image$ (uus$ ?v1 ?v2) ?v3)) (member$a ?v4 ?v3)) (hoare_derivs$ ?v0 (insert$ (triple$ (?v1 ?v4) (body$a ?v4) (?v2 ?v4)) bot$d)))) :named a270))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 (-> State$ Bool)) (?v3 Com$) (?v4 (-> State$ (-> State$ Bool))) (?v5 Com$)) (=> (and (hoare_derivs$ ?v0 (insert$ (triple$ (peek_and$ ?v1 ?v2) ?v3 ?v4) bot$d)) (hoare_derivs$ ?v0 (insert$ (triple$ (peek_and$ ?v1 (comp$ uut$ ?v2)) ?v5 ?v4) bot$d))) (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 (cond$ ?v2 ?v3 ?v5) ?v4) bot$d)))) :named a271))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v2 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v3 Pname_set$) (?v4 Pname$)) (=> (and (hoare_derivs$ (sup$ ?v0 (image$ (uur$ ?v1 ?v2) ?v3)) (image$ (uus$ ?v1 ?v2) ?v3)) (set.member$a ?v4 ?v3)) (hoare_derivs$ ?v0 (set.insert$ (triple$ (?v1 ?v4) (body$a ?v4) (?v2 ?v4)) bot$d)))) :named a270))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 (-> State$ Bool)) (?v3 Com$) (?v4 (-> State$ (-> State$ Bool))) (?v5 Com$)) (=> (and (hoare_derivs$ ?v0 (set.insert$ (triple$ (peek_and$ ?v1 ?v2) ?v3 ?v4) bot$d)) (hoare_derivs$ ?v0 (set.insert$ (triple$ (peek_and$ ?v1 (comp$ uut$ ?v2)) ?v5 ?v4) bot$d))) (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 (cond$ ?v2 ?v3 ?v5) ?v4) bot$d)))) :named a271))
 (assert (! (forall ((?v0 (-> State$ (-> State$ Bool))) (?v1 (-> State$ Bool)) (?v2 State$) (?v3 State$)) (! (= (peek_and$ ?v0 ?v1 ?v2 ?v3) (and (?v0 ?v2 ?v3) (?v1 ?v3))) :pattern ((peek_and$ ?v0 ?v1 ?v2 ?v3)))) :named a272))
 (assert (! (forall ((?v0 State_triple_set$) (?v1 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v2 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v3 Pname_set$)) (=> (hoare_derivs$ (sup$ ?v0 (image$ (uur$ ?v1 ?v2) ?v3)) (image$ (uus$ ?v1 ?v2) ?v3)) (hoare_derivs$ ?v0 (image$ (uur$ ?v1 ?v2) ?v3)))) :named a273))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 (-> State$ Bool)) (?v3 Com$)) (=> (hoare_derivs$ ?v0 (insert$ (triple$ (peek_and$ ?v1 ?v2) ?v3 ?v1) bot$d)) (hoare_derivs$ ?v0 (insert$ (triple$ ?v1 (while$ ?v2 ?v3) (peek_and$ ?v1 (comp$ uut$ ?v2))) bot$d)))) :named a274))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 (-> State$ Bool)) (?v3 Com$)) (=> (hoare_derivs$ ?v0 (set.insert$ (triple$ (peek_and$ ?v1 ?v2) ?v3 ?v1) bot$d)) (hoare_derivs$ ?v0 (set.insert$ (triple$ ?v1 (while$ ?v2 ?v3) (peek_and$ ?v1 (comp$ uut$ ?v2))) bot$d)))) :named a274))
 (assert (! (forall ((?v0 State_triple_set$) (?v1 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v2 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v3 Pname_set$)) (=> (hoare_valids$ (sup$ ?v0 (image$ (uur$ ?v1 ?v2) ?v3)) (image$ (uus$ ?v1 ?v2) ?v3)) (hoare_valids$ ?v0 (image$ (uur$ ?v1 ?v2) ?v3)))) :named a275))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 (-> State$ Bool)) (?v3 Com$)) (=> (hoare_valids$ ?v0 (insert$ (triple$ (peek_and$ ?v1 ?v2) ?v3 ?v1) bot$d)) (hoare_valids$ ?v0 (insert$ (triple$ ?v1 (while$ ?v2 ?v3) (peek_and$ ?v1 (comp$ uut$ ?v2))) bot$d)))) :named a276))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 (-> State$ (-> State$ Bool))) (?v2 (-> State$ Bool)) (?v3 Com$)) (=> (hoare_valids$ ?v0 (set.insert$ (triple$ (peek_and$ ?v1 ?v2) ?v3 ?v1) bot$d)) (hoare_valids$ ?v0 (set.insert$ (triple$ ?v1 (while$ ?v2 ?v3) (peek_and$ ?v1 (comp$ uut$ ?v2))) bot$d)))) :named a276))
 (assert (! (forall ((?v0 State_triple_set$) (?v1 State_triple_set$)) (=> (hoare_derivs$ ?v0 ?v1) (hoare_valids$ ?v0 ?v1))) :named a277))
-(assert (! (forall ((?v0 Pname_set$) (?v1 State_triple_set$) (?v2 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v3 (-> Pname$ Com$)) (?v4 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v5 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v6 (-> Pname$ (-> State$ (-> State$ Bool))))) (=> (and (finite$ ?v0) (and (forall ((?v7 Pname$)) (=> (hoare_derivs$ ?v1 (insert$ (triple$ (?v2 ?v7) (?v3 ?v7) (?v4 ?v7)) bot$d)) (hoare_derivs$ ?v1 (insert$ (triple$ (?v5 ?v7) (?v3 ?v7) (?v6 ?v7)) bot$d)))) (hoare_derivs$ ?v1 (image$ (uuu$ ?v2 ?v3 ?v4) ?v0)))) (hoare_derivs$ ?v1 (image$ (uuv$ ?v3 ?v5 ?v6) ?v0)))) :named a278))
-(assert (! (forall ((?v0 State_triple_set$) (?v1 Com$)) (=> (hoare_derivs$ ?v0 (insert$ (mgt$ ?v1) bot$d)) (hoare_derivs$ ?v0 (insert$ (triple$ (uuw$ ?v1) ?v1 uuq$) bot$d)))) :named a279))
+(assert (! (forall ((?v0 Pname_set$) (?v1 State_triple_set$) (?v2 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v3 (-> Pname$ Com$)) (?v4 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v5 (-> Pname$ (-> State$ (-> State$ Bool)))) (?v6 (-> Pname$ (-> State$ (-> State$ Bool))))) (=> (and (finite$ ?v0) (and (forall ((?v7 Pname$)) (=> (hoare_derivs$ ?v1 (set.insert$ (triple$ (?v2 ?v7) (?v3 ?v7) (?v4 ?v7)) bot$d)) (hoare_derivs$ ?v1 (set.insert$ (triple$ (?v5 ?v7) (?v3 ?v7) (?v6 ?v7)) bot$d)))) (hoare_derivs$ ?v1 (image$ (uuu$ ?v2 ?v3 ?v4) ?v0)))) (hoare_derivs$ ?v1 (image$ (uuv$ ?v3 ?v5 ?v6) ?v0)))) :named a278))
+(assert (! (forall ((?v0 State_triple_set$) (?v1 Com$)) (=> (hoare_derivs$ ?v0 (set.insert$ (mgt$ ?v1) bot$d)) (hoare_derivs$ ?v0 (set.insert$ (triple$ (uuw$ ?v1) ?v1 uuq$) bot$d)))) :named a279))
 (assert (! (forall ((?v0 Nat$) (?v1 State_triple$)) (= (triple_valid$ ?v0 ?v1) (case_triple$ (uux$ ?v0) ?v1))) :named a280))
-(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$) (?v2 Com$)) (=> (= (?v0 ?v1) none$) (= (ran$ (fun_upd$ ?v0 ?v1 (some$ ?v2))) (insert$a ?v2 (ran$ ?v0))))) :named a281))
-(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$) (?v2 Com$)) (=> (= (?v0 ?v1) none$) (= (ran$a (fun_upd$a ?v0 ?v1 (some$ ?v2))) (insert$a ?v2 (ran$a ?v0))))) :named a282))
+(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$) (?v2 Com$)) (=> (= (?v0 ?v1) none$) (= (ran$ (fun_upd$ ?v0 ?v1 (some$ ?v2))) (set.insert$a ?v2 (ran$ ?v0))))) :named a281))
+(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$) (?v2 Com$)) (=> (= (?v0 ?v1) none$) (= (ran$a (fun_upd$a ?v0 ?v1 (some$ ?v2))) (set.insert$a ?v2 (ran$a ?v0))))) :named a282))
 (assert (! (forall ((?v0 State_triple$) (?v1 State_triple$)) (= (fun_upd$ uuy$ ?v0 none$ ?v1) none$)) :named a283))
 (assert (! (forall ((?v0 Pname$) (?v1 Pname$)) (= (fun_upd$a uuz$ ?v0 none$ ?v1) none$)) :named a284))
 (assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$) (?v2 Com$)) (not (= (fun_upd$ ?v0 ?v1 (some$ ?v2)) uuy$))) :named a285))
 (assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$) (?v2 Com$)) (not (= (fun_upd$a ?v0 ?v1 (some$ ?v2)) uuz$))) :named a286))
-(assert (! (forall ((?v0 (-> State_triple$ State_triple_option$)) (?v1 State_triple$)) (= (= (dom$ ?v0) (insert$ ?v1 bot$d)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$b uva$ ?v1 (some$a ?v2)))))) :named a287))
-(assert (! (forall ((?v0 (-> Com$ State_triple_option$)) (?v1 Com$)) (= (= (dom$a ?v0) (insert$a ?v1 bot$c)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$c uvb$ ?v1 (some$a ?v2)))))) :named a288))
-(assert (! (forall ((?v0 (-> Com$ Com_option$)) (?v1 Com$)) (= (= (dom$b ?v0) (insert$a ?v1 bot$c)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$d uue$ ?v1 (some$ ?v2)))))) :named a289))
-(assert (! (forall ((?v0 (-> Pname$ State_triple_option$)) (?v1 Pname$)) (= (= (dom$c ?v0) (insert$b ?v1 bot$)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$e uvc$ ?v1 (some$a ?v2)))))) :named a290))
-(assert (! (forall ((?v0 (-> State_triple_option$ State_triple_option$)) (?v1 State_triple_option$)) (= (= (dom$d ?v0) (insert$c ?v1 bot$a)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$f uvd$ ?v1 (some$a ?v2)))))) :named a291))
-(assert (! (forall ((?v0 (-> State_triple_option$ Com_option$)) (?v1 State_triple_option$)) (= (= (dom$e ?v0) (insert$c ?v1 bot$a)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$g uve$ ?v1 (some$ ?v2)))))) :named a292))
-(assert (! (forall ((?v0 (-> Com_option$ State_triple_option$)) (?v1 Com_option$)) (= (= (dom$f ?v0) (insert$d ?v1 bot$b)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$h uvf$ ?v1 (some$a ?v2)))))) :named a293))
-(assert (! (forall ((?v0 (-> Com_option$ Com_option$)) (?v1 Com_option$)) (= (= (dom$g ?v0) (insert$d ?v1 bot$b)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$i uvg$ ?v1 (some$ ?v2)))))) :named a294))
-(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$)) (= (= (dom$h ?v0) (insert$b ?v1 bot$)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$a uuz$ ?v1 (some$ ?v2)))))) :named a295))
-(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$)) (= (= (dom$i ?v0) (insert$ ?v1 bot$d)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$ uuy$ ?v1 (some$ ?v2)))))) :named a296))
+(assert (! (forall ((?v0 (-> State_triple$ State_triple_option$)) (?v1 State_triple$)) (= (= (dom$ ?v0) (set.insert$ ?v1 bot$d)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$b uva$ ?v1 (some$a ?v2)))))) :named a287))
+(assert (! (forall ((?v0 (-> Com$ State_triple_option$)) (?v1 Com$)) (= (= (dom$a ?v0) (set.insert$a ?v1 bot$c)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$c uvb$ ?v1 (some$a ?v2)))))) :named a288))
+(assert (! (forall ((?v0 (-> Com$ Com_option$)) (?v1 Com$)) (= (= (dom$b ?v0) (set.insert$a ?v1 bot$c)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$d uue$ ?v1 (some$ ?v2)))))) :named a289))
+(assert (! (forall ((?v0 (-> Pname$ State_triple_option$)) (?v1 Pname$)) (= (= (dom$c ?v0) (set.insert$b ?v1 bot$)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$e uvc$ ?v1 (some$a ?v2)))))) :named a290))
+(assert (! (forall ((?v0 (-> State_triple_option$ State_triple_option$)) (?v1 State_triple_option$)) (= (= (dom$d ?v0) (set.insert$c ?v1 bot$a)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$f uvd$ ?v1 (some$a ?v2)))))) :named a291))
+(assert (! (forall ((?v0 (-> State_triple_option$ Com_option$)) (?v1 State_triple_option$)) (= (= (dom$e ?v0) (set.insert$c ?v1 bot$a)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$g uve$ ?v1 (some$ ?v2)))))) :named a292))
+(assert (! (forall ((?v0 (-> Com_option$ State_triple_option$)) (?v1 Com_option$)) (= (= (dom$f ?v0) (set.insert$d ?v1 bot$b)) (exists ((?v2 State_triple$)) (= ?v0 (fun_upd$h uvf$ ?v1 (some$a ?v2)))))) :named a293))
+(assert (! (forall ((?v0 (-> Com_option$ Com_option$)) (?v1 Com_option$)) (= (= (dom$g ?v0) (set.insert$d ?v1 bot$b)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$i uvg$ ?v1 (some$ ?v2)))))) :named a294))
+(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$)) (= (= (dom$h ?v0) (set.insert$b ?v1 bot$)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$a uuz$ ?v1 (some$ ?v2)))))) :named a295))
+(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$)) (= (= (dom$i ?v0) (set.insert$ ?v1 bot$d)) (exists ((?v2 Com$)) (= ?v0 (fun_upd$ uuy$ ?v1 (some$ ?v2)))))) :named a296))
 (assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 (-> State_triple$ Com_option$)) (?v2 State_triple$) (?v3 Com$)) (=> (map_le$ ?v0 ?v1) (map_le$ (fun_upd$ ?v0 ?v2 none$) (fun_upd$ ?v1 ?v2 (some$ ?v3))))) :named a297))
 (assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 (-> Pname$ Com_option$)) (?v2 Pname$) (?v3 Com$)) (=> (map_le$a ?v0 ?v1) (map_le$a (fun_upd$a ?v0 ?v2 none$) (fun_upd$a ?v1 ?v2 (some$ ?v3))))) :named a298))
 (assert (! (forall ((?v0 (-> State_triple$ State_triple_option$))) (= (= (dom$ ?v0) bot$d) (= ?v0 uva$))) :named a299))
 (assert (! (= (dom$h uuz$) bot$) :named a317))
 (assert (! (= (dom$i uuy$) bot$d) :named a318))
 (assert (! (finite$ (dom$h body$)) :named a319))
-(assert (! (forall ((?v0 Com$) (?v1 (-> Com$ Com_option$))) (= (member$b ?v0 (dom$b ?v1)) (not (= (?v1 ?v0) none$)))) :named a320))
-(assert (! (forall ((?v0 State_triple$) (?v1 (-> State_triple$ Com_option$))) (= (member$ ?v0 (dom$i ?v1)) (not (= (?v1 ?v0) none$)))) :named a321))
-(assert (! (forall ((?v0 Com$) (?v1 (-> Com$ State_triple_option$))) (= (member$b ?v0 (dom$a ?v1)) (not (= (?v1 ?v0) none$a)))) :named a322))
-(assert (! (forall ((?v0 Pname$) (?v1 (-> Pname$ State_triple_option$))) (= (member$a ?v0 (dom$c ?v1)) (not (= (?v1 ?v0) none$a)))) :named a323))
-(assert (! (forall ((?v0 State_triple$) (?v1 (-> State_triple$ State_triple_option$))) (= (member$ ?v0 (dom$ ?v1)) (not (= (?v1 ?v0) none$a)))) :named a324))
-(assert (! (forall ((?v0 Pname$) (?v1 (-> Pname$ Com_option$))) (= (member$a ?v0 (dom$h ?v1)) (not (= (?v1 ?v0) none$)))) :named a325))
+(assert (! (forall ((?v0 Com$) (?v1 (-> Com$ Com_option$))) (= (set.member$b ?v0 (dom$b ?v1)) (not (= (?v1 ?v0) none$)))) :named a320))
+(assert (! (forall ((?v0 State_triple$) (?v1 (-> State_triple$ Com_option$))) (= (set.member$ ?v0 (dom$i ?v1)) (not (= (?v1 ?v0) none$)))) :named a321))
+(assert (! (forall ((?v0 Com$) (?v1 (-> Com$ State_triple_option$))) (= (set.member$b ?v0 (dom$a ?v1)) (not (= (?v1 ?v0) none$a)))) :named a322))
+(assert (! (forall ((?v0 Pname$) (?v1 (-> Pname$ State_triple_option$))) (= (set.member$a ?v0 (dom$c ?v1)) (not (= (?v1 ?v0) none$a)))) :named a323))
+(assert (! (forall ((?v0 State_triple$) (?v1 (-> State_triple$ State_triple_option$))) (= (set.member$ ?v0 (dom$ ?v1)) (not (= (?v1 ?v0) none$a)))) :named a324))
+(assert (! (forall ((?v0 Pname$) (?v1 (-> Pname$ Com_option$))) (= (set.member$a ?v0 (dom$h ?v1)) (not (= (?v1 ?v0) none$)))) :named a325))
 (assert (! (forall ((?v0 (-> State_triple$ Com_option$))) (= (dom$i ?v0) (collect$a (uvh$ ?v0)))) :named a326))
 (assert (! (forall ((?v0 (-> Pname$ State_triple_option$))) (= (dom$c ?v0) (collect$b (uvi$ ?v0)))) :named a327))
 (assert (! (forall ((?v0 (-> Pname$ Com_option$))) (= (dom$h ?v0) (collect$b (uvj$ ?v0)))) :named a328))
 (assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$)) (map_le$ (fun_upd$ ?v0 ?v1 none$) ?v0)) :named a329))
 (assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$)) (map_le$a (fun_upd$a ?v0 ?v1 none$) ?v0)) :named a330))
-(assert (! (forall ((?v0 (-> Com$ Com_option$)) (?v1 Com$) (?v2 Com_option$)) (= (dom$b (fun_upd$d ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$ (dom$b ?v0) (insert$a ?v1 bot$c)) (insert$a ?v1 (dom$b ?v0))))) :named a331))
-(assert (! (forall ((?v0 (-> Com$ State_triple_option$)) (?v1 Com$) (?v2 State_triple_option$)) (= (dom$a (fun_upd$c ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$ (dom$a ?v0) (insert$a ?v1 bot$c)) (insert$a ?v1 (dom$a ?v0))))) :named a332))
-(assert (! (forall ((?v0 (-> State_triple_option$ Com_option$)) (?v1 State_triple_option$) (?v2 Com_option$)) (= (dom$e (fun_upd$g ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$a (dom$e ?v0) (insert$c ?v1 bot$a)) (insert$c ?v1 (dom$e ?v0))))) :named a333))
-(assert (! (forall ((?v0 (-> State_triple_option$ State_triple_option$)) (?v1 State_triple_option$) (?v2 State_triple_option$)) (= (dom$d (fun_upd$f ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$a (dom$d ?v0) (insert$c ?v1 bot$a)) (insert$c ?v1 (dom$d ?v0))))) :named a334))
-(assert (! (forall ((?v0 (-> Com_option$ Com_option$)) (?v1 Com_option$) (?v2 Com_option$)) (= (dom$g (fun_upd$i ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$b (dom$g ?v0) (insert$d ?v1 bot$b)) (insert$d ?v1 (dom$g ?v0))))) :named a335))
-(assert (! (forall ((?v0 (-> Com_option$ State_triple_option$)) (?v1 Com_option$) (?v2 State_triple_option$)) (= (dom$f (fun_upd$h ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$b (dom$f ?v0) (insert$d ?v1 bot$b)) (insert$d ?v1 (dom$f ?v0))))) :named a336))
-(assert (! (forall ((?v0 (-> State_triple$ State_triple_option$)) (?v1 State_triple$) (?v2 State_triple_option$)) (= (dom$ (fun_upd$b ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$c (dom$ ?v0) (insert$ ?v1 bot$d)) (insert$ ?v1 (dom$ ?v0))))) :named a337))
-(assert (! (forall ((?v0 (-> Pname$ State_triple_option$)) (?v1 Pname$) (?v2 State_triple_option$)) (= (dom$c (fun_upd$e ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$d (dom$c ?v0) (insert$b ?v1 bot$)) (insert$b ?v1 (dom$c ?v0))))) :named a338))
-(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$) (?v2 Com_option$)) (= (dom$h (fun_upd$a ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$d (dom$h ?v0) (insert$b ?v1 bot$)) (insert$b ?v1 (dom$h ?v0))))) :named a339))
-(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$) (?v2 Com_option$)) (= (dom$i (fun_upd$ ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$c (dom$i ?v0) (insert$ ?v1 bot$d)) (insert$ ?v1 (dom$i ?v0))))) :named a340))
+(assert (! (forall ((?v0 (-> Com$ Com_option$)) (?v1 Com$) (?v2 Com_option$)) (= (dom$b (fun_upd$d ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$ (dom$b ?v0) (set.insert$a ?v1 bot$c)) (set.insert$a ?v1 (dom$b ?v0))))) :named a331))
+(assert (! (forall ((?v0 (-> Com$ State_triple_option$)) (?v1 Com$) (?v2 State_triple_option$)) (= (dom$a (fun_upd$c ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$ (dom$a ?v0) (set.insert$a ?v1 bot$c)) (set.insert$a ?v1 (dom$a ?v0))))) :named a332))
+(assert (! (forall ((?v0 (-> State_triple_option$ Com_option$)) (?v1 State_triple_option$) (?v2 Com_option$)) (= (dom$e (fun_upd$g ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$a (dom$e ?v0) (set.insert$c ?v1 bot$a)) (set.insert$c ?v1 (dom$e ?v0))))) :named a333))
+(assert (! (forall ((?v0 (-> State_triple_option$ State_triple_option$)) (?v1 State_triple_option$) (?v2 State_triple_option$)) (= (dom$d (fun_upd$f ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$a (dom$d ?v0) (set.insert$c ?v1 bot$a)) (set.insert$c ?v1 (dom$d ?v0))))) :named a334))
+(assert (! (forall ((?v0 (-> Com_option$ Com_option$)) (?v1 Com_option$) (?v2 Com_option$)) (= (dom$g (fun_upd$i ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$b (dom$g ?v0) (set.insert$d ?v1 bot$b)) (set.insert$d ?v1 (dom$g ?v0))))) :named a335))
+(assert (! (forall ((?v0 (-> Com_option$ State_triple_option$)) (?v1 Com_option$) (?v2 State_triple_option$)) (= (dom$f (fun_upd$h ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$b (dom$f ?v0) (set.insert$d ?v1 bot$b)) (set.insert$d ?v1 (dom$f ?v0))))) :named a336))
+(assert (! (forall ((?v0 (-> State_triple$ State_triple_option$)) (?v1 State_triple$) (?v2 State_triple_option$)) (= (dom$ (fun_upd$b ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$c (dom$ ?v0) (set.insert$ ?v1 bot$d)) (set.insert$ ?v1 (dom$ ?v0))))) :named a337))
+(assert (! (forall ((?v0 (-> Pname$ State_triple_option$)) (?v1 Pname$) (?v2 State_triple_option$)) (= (dom$c (fun_upd$e ?v0 ?v1 ?v2)) (ite (= ?v2 none$a) (minus$d (dom$c ?v0) (set.insert$b ?v1 bot$)) (set.insert$b ?v1 (dom$c ?v0))))) :named a338))
+(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$) (?v2 Com_option$)) (= (dom$h (fun_upd$a ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$d (dom$h ?v0) (set.insert$b ?v1 bot$)) (set.insert$b ?v1 (dom$h ?v0))))) :named a339))
+(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$) (?v2 Com_option$)) (= (dom$i (fun_upd$ ?v0 ?v1 ?v2)) (ite (= ?v2 none$) (minus$c (dom$i ?v0) (set.insert$ ?v1 bot$d)) (set.insert$ ?v1 (dom$i ?v0))))) :named a340))
 (assert (! (forall ((?v0 (-> Com$ Com$)) (?v1 Com_option$)) (= (map_option$ ?v0 ?v1) (case_option$b none$ (uvk$ ?v0) ?v1))) :named a341))
 (assert (! (forall ((?v0 (-> State_triple$ Com$)) (?v1 State_triple_option$)) (= (= (map_option$a ?v0 ?v1) none$) (= ?v1 none$a))) :named a342))
 (assert (! (forall ((?v0 (-> Com$ State_triple$)) (?v1 Com_option$)) (= (= (map_option$b ?v0 ?v1) none$a) (= ?v1 none$))) :named a343))
 (assert (! (forall ((?v0 (-> Com$ Com$))) (! (= (map_option$ ?v0 none$) none$) :pattern ((map_option$ ?v0)))) :named a357))
 (assert (! (forall ((?v0 State_triple_option$) (?v1 (-> State_triple$ Com$))) (=> (not (= ?v0 none$a)) (= (the$ (map_option$a ?v1 ?v0)) (?v1 (the$a ?v0))))) :named a358))
 (assert (! (forall ((?v0 Com_option$) (?v1 (-> Com$ Com$))) (=> (not (= ?v0 none$)) (= (the$ (map_option$ ?v1 ?v0)) (?v1 (the$ ?v0))))) :named a359))
-(assert (! (forall ((?v0 (-> State_triple_option$ Com_option$)) (?v1 State_triple_option$) (?v2 State_triple_option_set$)) (=> (= (?v0 ?v1) none$) (= (minus$a (dom$e ?v0) (insert$c ?v1 ?v2)) (minus$a (dom$e ?v0) ?v2)))) :named a360))
-(assert (! (forall ((?v0 (-> Com_option$ Com_option$)) (?v1 Com_option$) (?v2 Com_option_set$)) (=> (= (?v0 ?v1) none$) (= (minus$b (dom$g ?v0) (insert$d ?v1 ?v2)) (minus$b (dom$g ?v0) ?v2)))) :named a361))
-(assert (! (forall ((?v0 (-> State_triple_option$ State_triple_option$)) (?v1 State_triple_option$) (?v2 State_triple_option_set$)) (=> (= (?v0 ?v1) none$a) (= (minus$a (dom$d ?v0) (insert$c ?v1 ?v2)) (minus$a (dom$d ?v0) ?v2)))) :named a362))
-(assert (! (forall ((?v0 (-> Com_option$ State_triple_option$)) (?v1 Com_option$) (?v2 Com_option_set$)) (=> (= (?v0 ?v1) none$a) (= (minus$b (dom$f ?v0) (insert$d ?v1 ?v2)) (minus$b (dom$f ?v0) ?v2)))) :named a363))
-(assert (! (forall ((?v0 (-> State_triple$ State_triple_option$)) (?v1 State_triple$) (?v2 State_triple_set$)) (=> (= (?v0 ?v1) none$a) (= (minus$c (dom$ ?v0) (insert$ ?v1 ?v2)) (minus$c (dom$ ?v0) ?v2)))) :named a364))
-(assert (! (forall ((?v0 (-> Pname$ State_triple_option$)) (?v1 Pname$) (?v2 Pname_set$)) (=> (= (?v0 ?v1) none$a) (= (minus$d (dom$c ?v0) (insert$b ?v1 ?v2)) (minus$d (dom$c ?v0) ?v2)))) :named a365))
-(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$) (?v2 Pname_set$)) (=> (= (?v0 ?v1) none$) (= (minus$d (dom$h ?v0) (insert$b ?v1 ?v2)) (minus$d (dom$h ?v0) ?v2)))) :named a366))
-(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$) (?v2 State_triple_set$)) (=> (= (?v0 ?v1) none$) (= (minus$c (dom$i ?v0) (insert$ ?v1 ?v2)) (minus$c (dom$i ?v0) ?v2)))) :named a367))
-(assert (! (forall ((?v0 (-> Com$ Com_option$)) (?v1 Com_set$) (?v2 Com$)) (= (fun_upd$d (restrict_map$ ?v0 ?v1) ?v2 none$) (ite (member$b ?v2 ?v1) (restrict_map$ ?v0 (minus$ ?v1 (insert$a ?v2 bot$c))) (restrict_map$ ?v0 ?v1)))) :named a368))
-(assert (! (forall ((?v0 (-> Com$ State_triple_option$)) (?v1 Com_set$) (?v2 Com$)) (= (fun_upd$c (restrict_map$a ?v0 ?v1) ?v2 none$a) (ite (member$b ?v2 ?v1) (restrict_map$a ?v0 (minus$ ?v1 (insert$a ?v2 bot$c))) (restrict_map$a ?v0 ?v1)))) :named a369))
-(assert (! (forall ((?v0 (-> State_triple_option$ Com_option$)) (?v1 State_triple_option_set$) (?v2 State_triple_option$)) (= (fun_upd$g (restrict_map$b ?v0 ?v1) ?v2 none$) (ite (member$c ?v2 ?v1) (restrict_map$b ?v0 (minus$a ?v1 (insert$c ?v2 bot$a))) (restrict_map$b ?v0 ?v1)))) :named a370))
-(assert (! (forall ((?v0 (-> State_triple_option$ State_triple_option$)) (?v1 State_triple_option_set$) (?v2 State_triple_option$)) (= (fun_upd$f (restrict_map$c ?v0 ?v1) ?v2 none$a) (ite (member$c ?v2 ?v1) (restrict_map$c ?v0 (minus$a ?v1 (insert$c ?v2 bot$a))) (restrict_map$c ?v0 ?v1)))) :named a371))
-(assert (! (forall ((?v0 (-> Com_option$ Com_option$)) (?v1 Com_option_set$) (?v2 Com_option$)) (= (fun_upd$i (restrict_map$d ?v0 ?v1) ?v2 none$) (ite (member$d ?v2 ?v1) (restrict_map$d ?v0 (minus$b ?v1 (insert$d ?v2 bot$b))) (restrict_map$d ?v0 ?v1)))) :named a372))
-(assert (! (forall ((?v0 (-> Com_option$ State_triple_option$)) (?v1 Com_option_set$) (?v2 Com_option$)) (= (fun_upd$h (restrict_map$e ?v0 ?v1) ?v2 none$a) (ite (member$d ?v2 ?v1) (restrict_map$e ?v0 (minus$b ?v1 (insert$d ?v2 bot$b))) (restrict_map$e ?v0 ?v1)))) :named a373))
-(assert (! (forall ((?v0 (-> State_triple$ State_triple_option$)) (?v1 State_triple_set$) (?v2 State_triple$)) (= (fun_upd$b (restrict_map$f ?v0 ?v1) ?v2 none$a) (ite (member$ ?v2 ?v1) (restrict_map$f ?v0 (minus$c ?v1 (insert$ ?v2 bot$d))) (restrict_map$f ?v0 ?v1)))) :named a374))
-(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname_set$) (?v2 Pname$)) (= (fun_upd$a (restrict_map$g ?v0 ?v1) ?v2 none$) (ite (member$a ?v2 ?v1) (restrict_map$g ?v0 (minus$d ?v1 (insert$b ?v2 bot$))) (restrict_map$g ?v0 ?v1)))) :named a375))
-(assert (! (forall ((?v0 (-> Pname$ State_triple_option$)) (?v1 Pname_set$) (?v2 Pname$)) (= (fun_upd$e (restrict_map$h ?v0 ?v1) ?v2 none$a) (ite (member$a ?v2 ?v1) (restrict_map$h ?v0 (minus$d ?v1 (insert$b ?v2 bot$))) (restrict_map$h ?v0 ?v1)))) :named a376))
-(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple_set$) (?v2 State_triple$)) (= (fun_upd$ (restrict_map$i ?v0 ?v1) ?v2 none$) (ite (member$ ?v2 ?v1) (restrict_map$i ?v0 (minus$c ?v1 (insert$ ?v2 bot$d))) (restrict_map$i ?v0 ?v1)))) :named a377))
-(assert (! (forall ((?v0 Pname_option_set$)) (= (not (= (these$ ?v0) bot$)) (and (not (= ?v0 bot$e)) (not (= ?v0 (insert$e none$b bot$e)))))) :named a378))
-(assert (! (forall ((?v0 State_triple_option_option_set$)) (= (not (= (these$a ?v0) bot$a)) (and (not (= ?v0 bot$f)) (not (= ?v0 (insert$f none$c bot$f)))))) :named a379))
-(assert (! (forall ((?v0 Com_option_option_set$)) (= (not (= (these$b ?v0) bot$b)) (and (not (= ?v0 bot$g)) (not (= ?v0 (insert$g none$d bot$g)))))) :named a380))
-(assert (! (forall ((?v0 Com_option_set$)) (= (not (= (these$c ?v0) bot$c)) (and (not (= ?v0 bot$b)) (not (= ?v0 (insert$d none$ bot$b)))))) :named a381))
-(assert (! (forall ((?v0 State_triple_option_set$)) (= (not (= (these$d ?v0) bot$d)) (and (not (= ?v0 bot$a)) (not (= ?v0 (insert$c none$a bot$a)))))) :named a382))
-(assert (! (forall ((?v0 Com$) (?v1 Com_set$) (?v2 (-> Com$ Com_option$))) (! (=> (not (member$b ?v0 ?v1)) (= (restrict_map$ ?v2 ?v1 ?v0) none$)) :pattern ((restrict_map$ ?v2 ?v1 ?v0)))) :named a383))
-(assert (! (forall ((?v0 Pname$) (?v1 Pname_set$) (?v2 (-> Pname$ Com_option$))) (! (=> (not (member$a ?v0 ?v1)) (= (restrict_map$g ?v2 ?v1 ?v0) none$)) :pattern ((restrict_map$g ?v2 ?v1 ?v0)))) :named a384))
-(assert (! (forall ((?v0 State_triple$) (?v1 State_triple_set$) (?v2 (-> State_triple$ Com_option$))) (! (=> (not (member$ ?v0 ?v1)) (= (restrict_map$i ?v2 ?v1 ?v0) none$)) :pattern ((restrict_map$i ?v2 ?v1 ?v0)))) :named a385))
-(assert (! (forall ((?v0 Com$) (?v1 Com_set$) (?v2 (-> Com$ State_triple_option$))) (! (=> (not (member$b ?v0 ?v1)) (= (restrict_map$a ?v2 ?v1 ?v0) none$a)) :pattern ((restrict_map$a ?v2 ?v1 ?v0)))) :named a386))
-(assert (! (forall ((?v0 Pname$) (?v1 Pname_set$) (?v2 (-> Pname$ State_triple_option$))) (! (=> (not (member$a ?v0 ?v1)) (= (restrict_map$h ?v2 ?v1 ?v0) none$a)) :pattern ((restrict_map$h ?v2 ?v1 ?v0)))) :named a387))
-(assert (! (forall ((?v0 State_triple$) (?v1 State_triple_set$) (?v2 (-> State_triple$ State_triple_option$))) (! (=> (not (member$ ?v0 ?v1)) (= (restrict_map$f ?v2 ?v1 ?v0) none$a)) :pattern ((restrict_map$f ?v2 ?v1 ?v0)))) :named a388))
+(assert (! (forall ((?v0 (-> State_triple_option$ Com_option$)) (?v1 State_triple_option$) (?v2 State_triple_option_set$)) (=> (= (?v0 ?v1) none$) (= (minus$a (dom$e ?v0) (set.insert$c ?v1 ?v2)) (minus$a (dom$e ?v0) ?v2)))) :named a360))
+(assert (! (forall ((?v0 (-> Com_option$ Com_option$)) (?v1 Com_option$) (?v2 Com_option_set$)) (=> (= (?v0 ?v1) none$) (= (minus$b (dom$g ?v0) (set.insert$d ?v1 ?v2)) (minus$b (dom$g ?v0) ?v2)))) :named a361))
+(assert (! (forall ((?v0 (-> State_triple_option$ State_triple_option$)) (?v1 State_triple_option$) (?v2 State_triple_option_set$)) (=> (= (?v0 ?v1) none$a) (= (minus$a (dom$d ?v0) (set.insert$c ?v1 ?v2)) (minus$a (dom$d ?v0) ?v2)))) :named a362))
+(assert (! (forall ((?v0 (-> Com_option$ State_triple_option$)) (?v1 Com_option$) (?v2 Com_option_set$)) (=> (= (?v0 ?v1) none$a) (= (minus$b (dom$f ?v0) (set.insert$d ?v1 ?v2)) (minus$b (dom$f ?v0) ?v2)))) :named a363))
+(assert (! (forall ((?v0 (-> State_triple$ State_triple_option$)) (?v1 State_triple$) (?v2 State_triple_set$)) (=> (= (?v0 ?v1) none$a) (= (minus$c (dom$ ?v0) (set.insert$ ?v1 ?v2)) (minus$c (dom$ ?v0) ?v2)))) :named a364))
+(assert (! (forall ((?v0 (-> Pname$ State_triple_option$)) (?v1 Pname$) (?v2 Pname_set$)) (=> (= (?v0 ?v1) none$a) (= (minus$d (dom$c ?v0) (set.insert$b ?v1 ?v2)) (minus$d (dom$c ?v0) ?v2)))) :named a365))
+(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname$) (?v2 Pname_set$)) (=> (= (?v0 ?v1) none$) (= (minus$d (dom$h ?v0) (set.insert$b ?v1 ?v2)) (minus$d (dom$h ?v0) ?v2)))) :named a366))
+(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$) (?v2 State_triple_set$)) (=> (= (?v0 ?v1) none$) (= (minus$c (dom$i ?v0) (set.insert$ ?v1 ?v2)) (minus$c (dom$i ?v0) ?v2)))) :named a367))
+(assert (! (forall ((?v0 (-> Com$ Com_option$)) (?v1 Com_set$) (?v2 Com$)) (= (fun_upd$d (restrict_map$ ?v0 ?v1) ?v2 none$) (ite (set.member$b ?v2 ?v1) (restrict_map$ ?v0 (minus$ ?v1 (set.insert$a ?v2 bot$c))) (restrict_map$ ?v0 ?v1)))) :named a368))
+(assert (! (forall ((?v0 (-> Com$ State_triple_option$)) (?v1 Com_set$) (?v2 Com$)) (= (fun_upd$c (restrict_map$a ?v0 ?v1) ?v2 none$a) (ite (set.member$b ?v2 ?v1) (restrict_map$a ?v0 (minus$ ?v1 (set.insert$a ?v2 bot$c))) (restrict_map$a ?v0 ?v1)))) :named a369))
+(assert (! (forall ((?v0 (-> State_triple_option$ Com_option$)) (?v1 State_triple_option_set$) (?v2 State_triple_option$)) (= (fun_upd$g (restrict_map$b ?v0 ?v1) ?v2 none$) (ite (set.member$c ?v2 ?v1) (restrict_map$b ?v0 (minus$a ?v1 (set.insert$c ?v2 bot$a))) (restrict_map$b ?v0 ?v1)))) :named a370))
+(assert (! (forall ((?v0 (-> State_triple_option$ State_triple_option$)) (?v1 State_triple_option_set$) (?v2 State_triple_option$)) (= (fun_upd$f (restrict_map$c ?v0 ?v1) ?v2 none$a) (ite (set.member$c ?v2 ?v1) (restrict_map$c ?v0 (minus$a ?v1 (set.insert$c ?v2 bot$a))) (restrict_map$c ?v0 ?v1)))) :named a371))
+(assert (! (forall ((?v0 (-> Com_option$ Com_option$)) (?v1 Com_option_set$) (?v2 Com_option$)) (= (fun_upd$i (restrict_map$d ?v0 ?v1) ?v2 none$) (ite (set.member$d ?v2 ?v1) (restrict_map$d ?v0 (minus$b ?v1 (set.insert$d ?v2 bot$b))) (restrict_map$d ?v0 ?v1)))) :named a372))
+(assert (! (forall ((?v0 (-> Com_option$ State_triple_option$)) (?v1 Com_option_set$) (?v2 Com_option$)) (= (fun_upd$h (restrict_map$e ?v0 ?v1) ?v2 none$a) (ite (set.member$d ?v2 ?v1) (restrict_map$e ?v0 (minus$b ?v1 (set.insert$d ?v2 bot$b))) (restrict_map$e ?v0 ?v1)))) :named a373))
+(assert (! (forall ((?v0 (-> State_triple$ State_triple_option$)) (?v1 State_triple_set$) (?v2 State_triple$)) (= (fun_upd$b (restrict_map$f ?v0 ?v1) ?v2 none$a) (ite (set.member$ ?v2 ?v1) (restrict_map$f ?v0 (minus$c ?v1 (set.insert$ ?v2 bot$d))) (restrict_map$f ?v0 ?v1)))) :named a374))
+(assert (! (forall ((?v0 (-> Pname$ Com_option$)) (?v1 Pname_set$) (?v2 Pname$)) (= (fun_upd$a (restrict_map$g ?v0 ?v1) ?v2 none$) (ite (set.member$a ?v2 ?v1) (restrict_map$g ?v0 (minus$d ?v1 (set.insert$b ?v2 bot$))) (restrict_map$g ?v0 ?v1)))) :named a375))
+(assert (! (forall ((?v0 (-> Pname$ State_triple_option$)) (?v1 Pname_set$) (?v2 Pname$)) (= (fun_upd$e (restrict_map$h ?v0 ?v1) ?v2 none$a) (ite (set.member$a ?v2 ?v1) (restrict_map$h ?v0 (minus$d ?v1 (set.insert$b ?v2 bot$))) (restrict_map$h ?v0 ?v1)))) :named a376))
+(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple_set$) (?v2 State_triple$)) (= (fun_upd$ (restrict_map$i ?v0 ?v1) ?v2 none$) (ite (set.member$ ?v2 ?v1) (restrict_map$i ?v0 (minus$c ?v1 (set.insert$ ?v2 bot$d))) (restrict_map$i ?v0 ?v1)))) :named a377))
+(assert (! (forall ((?v0 Pname_option_set$)) (= (not (= (these$ ?v0) bot$)) (and (not (= ?v0 bot$e)) (not (= ?v0 (set.insert$e none$b bot$e)))))) :named a378))
+(assert (! (forall ((?v0 State_triple_option_option_set$)) (= (not (= (these$a ?v0) bot$a)) (and (not (= ?v0 bot$f)) (not (= ?v0 (set.insert$f none$c bot$f)))))) :named a379))
+(assert (! (forall ((?v0 Com_option_option_set$)) (= (not (= (these$b ?v0) bot$b)) (and (not (= ?v0 bot$g)) (not (= ?v0 (set.insert$g none$d bot$g)))))) :named a380))
+(assert (! (forall ((?v0 Com_option_set$)) (= (not (= (these$c ?v0) bot$c)) (and (not (= ?v0 bot$b)) (not (= ?v0 (set.insert$d none$ bot$b)))))) :named a381))
+(assert (! (forall ((?v0 State_triple_option_set$)) (= (not (= (these$d ?v0) bot$d)) (and (not (= ?v0 bot$a)) (not (= ?v0 (set.insert$c none$a bot$a)))))) :named a382))
+(assert (! (forall ((?v0 Com$) (?v1 Com_set$) (?v2 (-> Com$ Com_option$))) (! (=> (not (set.member$b ?v0 ?v1)) (= (restrict_map$ ?v2 ?v1 ?v0) none$)) :pattern ((restrict_map$ ?v2 ?v1 ?v0)))) :named a383))
+(assert (! (forall ((?v0 Pname$) (?v1 Pname_set$) (?v2 (-> Pname$ Com_option$))) (! (=> (not (set.member$a ?v0 ?v1)) (= (restrict_map$g ?v2 ?v1 ?v0) none$)) :pattern ((restrict_map$g ?v2 ?v1 ?v0)))) :named a384))
+(assert (! (forall ((?v0 State_triple$) (?v1 State_triple_set$) (?v2 (-> State_triple$ Com_option$))) (! (=> (not (set.member$ ?v0 ?v1)) (= (restrict_map$i ?v2 ?v1 ?v0) none$)) :pattern ((restrict_map$i ?v2 ?v1 ?v0)))) :named a385))
+(assert (! (forall ((?v0 Com$) (?v1 Com_set$) (?v2 (-> Com$ State_triple_option$))) (! (=> (not (set.member$b ?v0 ?v1)) (= (restrict_map$a ?v2 ?v1 ?v0) none$a)) :pattern ((restrict_map$a ?v2 ?v1 ?v0)))) :named a386))
+(assert (! (forall ((?v0 Pname$) (?v1 Pname_set$) (?v2 (-> Pname$ State_triple_option$))) (! (=> (not (set.member$a ?v0 ?v1)) (= (restrict_map$h ?v2 ?v1 ?v0) none$a)) :pattern ((restrict_map$h ?v2 ?v1 ?v0)))) :named a387))
+(assert (! (forall ((?v0 State_triple$) (?v1 State_triple_set$) (?v2 (-> State_triple$ State_triple_option$))) (! (=> (not (set.member$ ?v0 ?v1)) (= (restrict_map$f ?v2 ?v1 ?v0) none$a)) :pattern ((restrict_map$f ?v2 ?v1 ?v0)))) :named a388))
 (assert (! (forall ((?v0 State_triple_set$) (?v1 State_triple$)) (= (restrict_map$i uuy$ ?v0 ?v1) none$)) :named a389))
 (assert (! (forall ((?v0 (-> Com_option$ Com_option$)) (?v1 Com_option$)) (= (restrict_map$d ?v0 bot$b ?v1) none$)) :named a390))
 (assert (! (forall ((?v0 (-> Com_option$ State_triple_option$)) (?v1 Com_option$)) (= (restrict_map$e ?v0 bot$b ?v1) none$a)) :named a391))
 (assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$)) (= (restrict_map$i ?v0 bot$d ?v1) none$)) :named a392))
-(assert (! (forall ((?v0 Com_option_set$)) (= (these$c (insert$d none$ ?v0)) (these$c ?v0))) :named a393))
-(assert (! (forall ((?v0 Com_option_set$)) (= (= (these$c ?v0) bot$c) (or (= ?v0 bot$b) (= ?v0 (insert$d none$ bot$b))))) :named a394))
-(assert (! (forall ((?v0 State_triple_option_set$)) (= (= (these$d ?v0) bot$d) (or (= ?v0 bot$a) (= ?v0 (insert$c none$a bot$a))))) :named a395))
-(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$)) (= (restrict_map$i ?v0 (uminus$ (insert$ ?v1 bot$d))) (fun_upd$ ?v0 ?v1 none$))) :named a396))
+(assert (! (forall ((?v0 Com_option_set$)) (= (these$c (set.insert$d none$ ?v0)) (these$c ?v0))) :named a393))
+(assert (! (forall ((?v0 Com_option_set$)) (= (= (these$c ?v0) bot$c) (or (= ?v0 bot$b) (= ?v0 (set.insert$d none$ bot$b))))) :named a394))
+(assert (! (forall ((?v0 State_triple_option_set$)) (= (= (these$d ?v0) bot$d) (or (= ?v0 bot$a) (= ?v0 (set.insert$c none$a bot$a))))) :named a395))
+(assert (! (forall ((?v0 (-> State_triple$ Com_option$)) (?v1 State_triple$)) (= (restrict_map$i ?v0 (uminus$ (set.insert$ ?v1 bot$d))) (fun_upd$ ?v0 ?v1 none$))) :named a396))
 (check-sat)
 ;(get-proof)
index cc1b5ed50182526c3abcd74acd5df5ffa76a2ee4..8bcbb364c13c197e30e31a7a62e48a6b91e82de1 100644 (file)
@@ -482,7 +482,7 @@ Publications: "A Decision Procedure for (Co)Datatypes" by Andrew Reynolds and Ja
 (declare-fun comp$cj (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun_fun$)
 (declare-fun convol$ (B_b_fun$ B_b_fun$) B_b_b_prod_fun$)
 (declare-fun id_bnf$ (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)
-(declare-fun member$ (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) Bool)
+(declare-fun set.member$ (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) Bool)
 (declare-fun convol$a (B_b_tree_fun$ B_b_fun$ B$) B_tree_b_prod$)
 (declare-fun convol$b (B_tree_b_tree_fun$ B_tree_b_fun$) B_tree_b_tree_b_prod_fun$)
 (declare-fun convol$c (B_tree_b_fun$ B_tree_b_fun$ B_tree$) B_b_prod$)
@@ -499,7 +499,7 @@ Publications: "A Decision Procedure for (Co)Datatypes" by Andrew Reynolds and Ja
 (declare-fun id_bnf$d (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)
 (declare-fun id_bnf$e (B_tree_a_b_fun_sum$) B_tree_a_b_fun_sum$)
 (declare-fun map_sum$ (A_tree_b_tree_fun$ B_b_fun$) A_tree_b_sum_b_tree_b_sum_fun$)
-(declare-fun member$a (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) Bool)
+(declare-fun set.member$a (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) Bool)
 (declare-fun uncurry$ (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$)
 (declare-fun case_sum$ (B_tree_b_tree_fun$) A_b_fun_b_tree_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$)
 (declare-fun ctor_rec$ (A_b_fun$) A_b_fun$)
@@ -804,8 +804,8 @@ Publications: "A Decision Procedure for (Co)Datatypes" by Andrew Reynolds and Ja
 (assert (forall ((?v0 B_tree$) (?v1 B_tree_b_tree_fun$)) (! (= (fun_app$y (uuw$ ?v0) ?v1) (fun_app$x ?v1 ?v0)) :pattern ((fun_app$y (uuw$ ?v0) ?v1)))))
 (assert (forall ((?v0 B$) (?v1 B_b_fun$)) (! (= (fun_app$z (uuu$ ?v0) ?v1) (fun_app$aa ?v1 ?v0)) :pattern ((fun_app$z (uuu$ ?v0) ?v1)))))
 (assert (forall ((?v0 A$) (?v1 A_b_fun$)) (! (= (fun_app$ab (uuo$ ?v0) ?v1) (fun_app$ac ?v1 ?v0)) :pattern ((fun_app$ab (uuo$ ?v0) ?v1)))))
-(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (! (= (fun_app$ad (fun_app$ae (uuz$ ?v0) ?v1) ?v2) (member$ (pair$b ?v1 ?v2) ?v0)) :pattern ((fun_app$ad (fun_app$ae (uuz$ ?v0) ?v1) ?v2)))))
-(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$af (fun_app$ag (uuy$ ?v0) ?v1) ?v2) (member$a (pair$c ?v1 ?v2) ?v0)) :pattern ((fun_app$af (fun_app$ag (uuy$ ?v0) ?v1) ?v2)))))
+(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (! (= (fun_app$ad (fun_app$ae (uuz$ ?v0) ?v1) ?v2) (set.member$ (pair$b ?v1 ?v2) ?v0)) :pattern ((fun_app$ad (fun_app$ae (uuz$ ?v0) ?v1) ?v2)))))
+(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$af (fun_app$ag (uuy$ ?v0) ?v1) ?v2) (set.member$a (pair$c ?v1 ?v2) ?v0)) :pattern ((fun_app$af (fun_app$ag (uuy$ ?v0) ?v1) ?v2)))))
 (assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree$)) (! (= (fun_app$x (fun_app$s (uul$ ?v0) ?v1) ?v2) (fun_app$x ?v0 (fun_app$x ?v1 ?v2))) :pattern ((fun_app$x (fun_app$s (uul$ ?v0) ?v1) ?v2)))))
 (assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$) (?v2 A_b_fun$)) (! (= (fun_app$c (fun_app$ah (uum$ ?v0) ?v1) ?v2) (fun_app$x ?v0 (fun_app$c ?v1 ?v2))) :pattern ((fun_app$c (fun_app$ah (uum$ ?v0) ?v1) ?v2)))))
 (assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (! (= (fun_app$ai (fun_app$aj (uvs$ ?v0 ?v1) ?v2) ?v3) (pair$ (fun_app$w ?v0 ?v2) (fun_app$w ?v1 ?v3))) :pattern ((fun_app$ai (fun_app$aj (uvs$ ?v0 ?v1) ?v2) ?v3)))))
@@ -1158,8 +1158,8 @@ Publications: "A Decision Procedure for (Co)Datatypes" by Andrew Reynolds and Ja
 (assert (forall ((?v0 B_tree_a_b_fun_sum$)) (= (fun_app$ca (fun_app$fi (comp$ch uvd$) uvl$) ?v0) (id$z ?v0)) ))
 (assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v1 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (= ?v0 (snd$c ?v1)) (exists ((?v2 B$)) (= ?v1 (pair$c ?v2 ?v0)) )) ))
 (assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (= ?v0 (snd$b ?v1)) (exists ((?v2 B_tree_a_b_fun_sum$)) (= ?v1 (pair$b ?v2 ?v0)) )) ))
-(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v2 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (and (member$a (pair$c ?v0 ?v1) ?v2) (= ?v3 ?v1)) (member$a (pair$c ?v0 ?v3) ?v2)) ))
-(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) (?v3 B_tree_a_b_fun_sum$)) (=> (and (member$ (pair$b ?v0 ?v1) ?v2) (= ?v3 ?v1)) (member$ (pair$b ?v0 ?v3) ?v2)) ))
+(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v2 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (and (set.member$a (pair$c ?v0 ?v1) ?v2) (= ?v3 ?v1)) (set.member$a (pair$c ?v0 ?v3) ?v2)) ))
+(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) (?v3 B_tree_a_b_fun_sum$)) (=> (and (set.member$ (pair$b ?v0 ?v1) ?v2) (= ?v3 ?v1)) (set.member$ (pair$b ?v0 ?v3) ?v2)) ))
 (assert (forall ((?v0 B$) (?v1 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (= ?v0 (fst$c ?v1)) (exists ((?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= ?v1 (pair$c ?v0 ?v2)) )) ))
 (assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (= ?v0 (fst$b ?v1)) (exists ((?v2 B_tree_a_b_fun_sum$)) (= ?v1 (pair$b ?v0 ?v2)) )) ))
 (assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$)) (= (fun_app$v (comp$b (ctor_rec$ ?v0)) ?v1) (ctor_rec$ (fun_app$v (comp$b ?v0) (fun_app$bh (comp$e (fun_app$bh (comp$e id_bnf$c) ?v1)) id_bnf$c)))) ))
index 8b20cf5ca24def057b53939f3e23fabb06141ffd..e2fff8018c56aa349b4cfc0dc8ab0adf74fd081f 100644 (file)
@@ -253,13 +253,13 @@ i)))
 (+ (- i a_last) (- b_first 1)))))) :pattern ((select
   (concat1 a a_first a_last b b_first b_last) i)) )))))
 
-(declare-fun singleton (natural Int) (Array Int natural))
+(declare-fun set.singleton (natural Int) (Array Int natural))
 
 ;; singleton_def
   (assert
   (forall ((v natural))
   (forall ((i Int))
-  (! (= (select (singleton v i) i) v) :pattern ((select (singleton v i)
+  (! (= (select (set.singleton v i) i) v) :pattern ((select (set.singleton v i)
 i)) ))))
 
 (declare-fun compare ((Array Int natural) Int Int (Array Int natural) Int
index 76e747168add6539cfc356c39c262f737e699eb4..5a04e239457230395213f85c927b3e9e6a8a199f 100644 (file)
 (declare-fun image2$ (A_llist_a_llist_prod_set$ A_llist_a_llist_prod_a_llist_fun$ A_llist_a_llist_prod_a_llist_fun$) A_llist_a_llist_prod_set$)
 (declare-fun in_rel$ (A_llist_a_llist_prod_set$) A_llist_a_llist_bool_fun_fun$)
 (declare-fun lnull$a () A_llist_a_llist_prod_llist_bool_fun$)
-(declare-fun member$ (A_llist_a_llist_prod$) A_llist_a_llist_prod_set_bool_fun$)
+(declare-fun set.member$ (A_llist_a_llist_prod$) A_llist_a_llist_prod_set_bool_fun$)
 (declare-fun collect$ (A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_prod_set$)
 (declare-fun fun_app$ (A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun$ A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_llist$)
 (declare-fun lappend$ (A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun$)
 (declare-fun lfinite$ (A_llist_a_llist_prod_llist$) Bool)
 (declare-fun lmember$ (A_llist_a_llist_prod$) A_llist_a_llist_prod_llist_bool_fun$)
 (declare-fun lprefix$ (A_llist$) A_llist_bool_fun$)
-(declare-fun member$a (A_llist_a_llist_prod_a_llist_a_llist_prod_prod$ A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) Bool)
-(declare-fun member$b (A$ A_set$) Bool)
-(declare-fun member$c (A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod$ A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod_set$) Bool)
+(declare-fun set.member$a (A_llist_a_llist_prod_a_llist_a_llist_prod_prod$ A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) Bool)
+(declare-fun set.member$b (A$ A_set$) Bool)
+(declare-fun set.member$c (A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod$ A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod_set$) Bool)
 (declare-fun uncurry$ () A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$)
 (declare-fun collect$a (A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$)
 (declare-fun collect$b (A_bool_fun$) A_set$)
 (assert (! (forall ((?v0 A_llist$)) (! (= (fun_app$c uve$ ?v0) (lhd$ ?v0)) :pattern ((fun_app$c uve$ ?v0)))) :named a3))
 (assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (! (= (fun_app$d (fun_app$e uvx$ ?v0) ?v1) (pair$ ?v0 ?v1)) :pattern ((fun_app$d (fun_app$e uvx$ ?v0) ?v1)))) :named a4))
 (assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$)) (! (= (fun_app$f (fun_app$g uvw$ ?v0) ?v1) (pair$b ?v0 ?v1)) :pattern ((fun_app$f (fun_app$g uvw$ ?v0) ?v1)))) :named a5))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod$)) (! (= (fun_app$h (uui$ ?v0) ?v1) (fun_app$i (member$ ?v1) ?v0)) :pattern ((fun_app$h (uui$ ?v0) ?v1)))) :named a6))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (! (= (fun_app$j (uuh$ ?v0) ?v1) (member$a ?v1 ?v0)) :pattern ((fun_app$j (uuh$ ?v0) ?v1)))) :named a7))
-(assert (! (forall ((?v0 A_set$) (?v1 A$)) (! (= (fun_app$k (uug$ ?v0) ?v1) (member$b ?v1 ?v0)) :pattern ((fun_app$k (uug$ ?v0) ?v1)))) :named a8))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod$)) (! (= (fun_app$h (uui$ ?v0) ?v1) (fun_app$i (set.member$ ?v1) ?v0)) :pattern ((fun_app$h (uui$ ?v0) ?v1)))) :named a6))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (! (= (fun_app$j (uuh$ ?v0) ?v1) (set.member$a ?v1 ?v0)) :pattern ((fun_app$j (uuh$ ?v0) ?v1)))) :named a7))
+(assert (! (forall ((?v0 A_set$) (?v1 A$)) (! (= (fun_app$k (uug$ ?v0) ?v1) (set.member$b ?v1 ?v0)) :pattern ((fun_app$k (uug$ ?v0) ?v1)))) :named a8))
 (assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$d (fun_app$e (uwd$ ?v0) ?v1) ?v2) (fun_app$d (fun_app$e ?v0 ?v2) ?v1)) :pattern ((fun_app$d (fun_app$e (uwd$ ?v0) ?v1) ?v2)))) :named a9))
 (assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$m (uwg$ ?v0) ?v1) ?v2) (fun_app$l (fun_app$m ?v0 ?v2) ?v1)) :pattern ((fun_app$l (fun_app$m (uwg$ ?v0) ?v1) ?v2)))) :named a10))
 (assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$n (fun_app$o (uwc$ ?v0) ?v1) ?v2) (fun_app$n (fun_app$o ?v0 ?v2) ?v1)) :pattern ((fun_app$n (fun_app$o (uwc$ ?v0) ?v1) ?v2)))) :named a11))
 (assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$p (fun_app$q (uwf$ ?v0) ?v1) ?v2) (fun_app$p (fun_app$q ?v0 ?v2) ?v1)) :pattern ((fun_app$p (fun_app$q (uwf$ ?v0) ?v1) ?v2)))) :named a12))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (uwe$ ?v0) ?v1) ?v2) (fun_app$h (fun_app$r ?v0 ?v2) ?v1)) :pattern ((fun_app$h (fun_app$r (uwe$ ?v0) ?v1) ?v2)))) :named a13))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$s (uwq$ ?v0) ?v1) ?v2) (or (fun_app$i (member$ ?v2) ?v0) (fun_app$i (member$ ?v2) ?v1))) :pattern ((fun_app$h (fun_app$s (uwq$ ?v0) ?v1) ?v2)))) :named a14))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_bool_fun$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$t (uws$ ?v0) ?v1) ?v2) (and (fun_app$i (member$ ?v2) ?v0) (fun_app$h ?v1 ?v2))) :pattern ((fun_app$h (fun_app$t (uws$ ?v0) ?v1) ?v2)))) :named a15))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$m (uvz$ ?v0) ?v1) ?v2) (fun_app$i (member$ (pair$ ?v1 ?v2)) ?v0)) :pattern ((fun_app$l (fun_app$m (uvz$ ?v0) ?v1) ?v2)))) :named a16))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (uvy$ ?v0) ?v1) ?v2) (member$a (pair$b ?v1 ?v2) ?v0)) :pattern ((fun_app$h (fun_app$r (uvy$ ?v0) ?v1) ?v2)))) :named a17))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$s (uwq$ ?v0) ?v1) ?v2) (or (fun_app$i (set.member$ ?v2) ?v0) (fun_app$i (set.member$ ?v2) ?v1))) :pattern ((fun_app$h (fun_app$s (uwq$ ?v0) ?v1) ?v2)))) :named a14))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_bool_fun$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$t (uws$ ?v0) ?v1) ?v2) (and (fun_app$i (set.member$ ?v2) ?v0) (fun_app$h ?v1 ?v2))) :pattern ((fun_app$h (fun_app$t (uws$ ?v0) ?v1) ?v2)))) :named a15))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$m (uvz$ ?v0) ?v1) ?v2) (fun_app$i (set.member$ (pair$ ?v1 ?v2)) ?v0)) :pattern ((fun_app$l (fun_app$m (uvz$ ?v0) ?v1) ?v2)))) :named a16))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (uvy$ ?v0) ?v1) ?v2) (set.member$a (pair$b ?v1 ?v2) ?v0)) :pattern ((fun_app$h (fun_app$r (uvy$ ?v0) ?v1) ?v2)))) :named a17))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod_bool_fun$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$t (uwp$ ?v0) ?v1) ?v2) (or (fun_app$h ?v0 ?v2) (fun_app$h ?v1 ?v2))) :pattern ((fun_app$h (fun_app$t (uwp$ ?v0) ?v1) ?v2)))) :named a18))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod_bool_fun$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$t (uwr$ ?v0) ?v1) ?v2) (and (fun_app$h ?v0 ?v2) (fun_app$h ?v1 ?v2))) :pattern ((fun_app$h (fun_app$t (uwr$ ?v0) ?v1) ?v2)))) :named a19))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (! (= (fun_app$ (fun_app$u (uwh$ ?v0) ?v1) ?v2) (lCons$a ?v1 (fun_app$ (lappend$ ?v2) ?v0))) :pattern ((fun_app$ (fun_app$u (uwh$ ?v0) ?v1) ?v2)))) :named a20))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$p (fun_app$q (uue$ ?v0) ?v1) ?v2) (fun_app$r ?v0 (pair$ ?v1 ?v2))) :pattern ((fun_app$p (fun_app$q (uue$ ?v0) ?v1) ?v2)))) :named a26))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (uud$ ?v0) ?v1) ?v2) (fun_app$j ?v0 (pair$b ?v1 ?v2))) :pattern ((fun_app$h (fun_app$r (uud$ ?v0) ?v1) ?v2)))) :named a27))
 (assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$y (uvg$ ?v0) ?v1) ?v2) ?v3) (fun_app$h (fun_app$p (fun_app$q ?v0 ?v2) ?v3) ?v1)) :pattern ((fun_app$l (fun_app$m (fun_app$y (uvg$ ?v0) ?v1) ?v2) ?v3)))) :named a28))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$z (uwk$ ?v0) ?v1) ?v2) ?v3) (fun_app$i (member$ (pair$ (fun_app$a ?v1 ?v2) (fun_app$a ?v1 ?v3))) ?v0)) :pattern ((fun_app$l (fun_app$m (fun_app$z (uwk$ ?v0) ?v1) ?v2) ?v3)))) :named a29))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$z (uwk$ ?v0) ?v1) ?v2) ?v3) (fun_app$i (set.member$ (pair$ (fun_app$a ?v1 ?v2) (fun_app$a ?v1 ?v3))) ?v0)) :pattern ((fun_app$l (fun_app$m (fun_app$z (uwk$ ?v0) ?v1) ?v2) ?v3)))) :named a29))
 (assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$aa (uwt$ ?v0) ?v1) ?v2) ?v3) (and (= ?v0 ?v2) (= ?v1 ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$aa (uwt$ ?v0) ?v1) ?v2) ?v3)))) :named a30))
 (assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$d (fun_app$e (uuv$ ?v0 ?v1) ?v2) ?v3) (fun_app$w (fun_app$ab uncurry$ ?v0) (fun_app$d (fun_app$e ?v1 ?v2) ?v3))) :pattern ((fun_app$d (fun_app$e (uuv$ ?v0 ?v1) ?v2) ?v3)))) :named a31))
 (assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$ac (uuz$ ?v0) ?v1) ?v2) ?v3) (fun_app$h (fun_app$ad uncurry$a ?v0) (fun_app$d (fun_app$e ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$ac (uuz$ ?v0) ?v1) ?v2) ?v3)))) :named a32))
 (assert (! (forall ((?v0 A_a_fun$) (?v1 A_a_llist_a_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$c (fun_app$au (fun_app$bo (uvp$ ?v0) ?v1) ?v2) ?v3) (fun_app$bp ?v0 (fun_app$c (fun_app$au ?v1 ?v2) ?v3))) :pattern ((fun_app$c (fun_app$au (fun_app$bo (uvp$ ?v0) ?v1) ?v2) ?v3)))) :named a58))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$p (fun_app$q (fun_app$bq (uwo$ ?v0) ?v1) ?v2) ?v3) (fun_app$ad uncurry$a (fun_app$aa (fun_app$br (fun_app$bs (uwn$ ?v0) ?v1) ?v2) ?v3))) :pattern ((fun_app$p (fun_app$q (fun_app$bq (uwo$ ?v0) ?v1) ?v2) ?v3)))) :named a59))
 (assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_llist_a_llist_prod_set_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$p (fun_app$q (fun_app$bt (uwm$ ?v0) ?v1) ?v2) ?v3) (fun_app$ad uncurry$a (fun_app$aa (fun_app$br (fun_app$bu (uwl$ ?v0) ?v1) ?v2) ?v3))) :pattern ((fun_app$p (fun_app$q (fun_app$bt (uwm$ ?v0) ?v1) ?v2) ?v3)))) :named a60))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist$) (?v5 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bs (uwn$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) (or (fun_app$i (member$ (pair$ ?v2 ?v4)) ?v0) (and (= ?v2 ?v4) (fun_app$i (member$ (pair$ ?v3 ?v5)) ?v1)))) :pattern ((fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bs (uwn$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5)))) :named a61))
-(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_llist_a_llist_prod_set_fun$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist$) (?v5 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bu (uwl$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) (and (= ?v2 ?v4) (and (fun_app$l ?v0 ?v4) (fun_app$i (member$ (pair$ ?v3 ?v5)) (fun_app$n ?v1 ?v4))))) :pattern ((fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bu (uwl$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5)))) :named a62))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist$) (?v5 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bs (uwn$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) (or (fun_app$i (set.member$ (pair$ ?v2 ?v4)) ?v0) (and (= ?v2 ?v4) (fun_app$i (set.member$ (pair$ ?v3 ?v5)) ?v1)))) :pattern ((fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bs (uwn$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5)))) :named a61))
+(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_llist_a_llist_prod_set_fun$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist$) (?v5 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bu (uwl$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) (and (= ?v2 ?v4) (and (fun_app$l ?v0 ?v4) (fun_app$i (set.member$ (pair$ ?v3 ?v5)) (fun_app$n ?v1 ?v4))))) :pattern ((fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bu (uwl$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5)))) :named a62))
 (assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (! (= (fun_app$b (fun_app$bv uwa$ ?v0) ?v1) ?v0) :pattern ((fun_app$b (fun_app$bv uwa$ ?v0) ?v1)))) :named a63))
 (assert (! (forall ((?v0 A$) (?v1 A_llist$)) (! (= (fun_app$c (fun_app$au uwb$ ?v0) ?v1) ?v0) :pattern ((fun_app$c (fun_app$au uwb$ ?v0) ?v1)))) :named a64))
 (assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (! (= (fun_app$ (fun_app$u uvu$ ?v0) ?v1) ?v1) :pattern ((fun_app$ (fun_app$u uvu$ ?v0) ?v1)))) :named a65))
 (assert (! (forall ((?v0 A$) (?v1 A_llist$)) (! (= (fun_app$l (fun_app$as uvr$ ?v0) ?v1) true) :pattern ((fun_app$l (fun_app$as uvr$ ?v0) ?v1)))) :named a72))
 (assert (! (not (fun_app$l (lprefix$ xs$) ys$)) :named a73))
 (assert (! (fun_app$l (fun_app$m p$ xs$) ys$) :named a74))
-(assert (! (fun_app$i (member$ (pair$ xs$ ys$)) (collect$ (fun_app$ad uncurry$a p$))) :named a75))
+(assert (! (fun_app$i (set.member$ (pair$ xs$ ys$)) (collect$ (fun_app$ad uncurry$a p$))) :named a75))
 (assert (! (forall ((?v0 A_llist$)) (fun_app$l (lprefix$ lNil$) ?v0)) :named a76))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$bw (lprefix$a ?v0) ?v1) (fun_app$bw (lprefix$a (lCons$a ?v2 ?v0)) (lCons$a ?v2 ?v1)))) :named a77))
 (assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A$)) (=> (fun_app$l (lprefix$ ?v0) ?v1) (fun_app$l (lprefix$ (lCons$ ?v2 ?v0)) (lCons$ ?v2 ?v1)))) :named a78))
 (assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (and (fun_app$l (lprefix$ ?v0) ?v1) (and (forall ((?v2 A_llist$)) (=> (and (= ?v0 lNil$) (= ?v1 ?v2)) false)) (forall ((?v2 A_llist$) (?v3 A_llist$) (?v4 A$)) (=> (and (= ?v0 (lCons$ ?v4 ?v2)) (and (= ?v1 (lCons$ ?v4 ?v3)) (fun_app$l (lprefix$ ?v2) ?v3))) false)))) false)) :named a83))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$bw (fun_app$by ?v0 ?v1) ?v2) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod_llist$)) (=> (fun_app$bw (fun_app$by ?v0 ?v3) ?v4) (or (exists ((?v5 A_llist_a_llist_prod_llist$)) (and (= ?v3 lNil$a) (= ?v4 ?v5))) (exists ((?v5 A_llist_a_llist_prod_llist$) (?v6 A_llist_a_llist_prod_llist$) (?v7 A_llist_a_llist_prod$)) (and (= ?v3 (lCons$a ?v7 ?v5)) (and (= ?v4 (lCons$a ?v7 ?v6)) (or (fun_app$bw (fun_app$by ?v0 ?v5) ?v6) (fun_app$bw (lprefix$a ?v5) ?v6))))))))) (fun_app$bw (lprefix$a ?v1) ?v2))) :named a84))
 (assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (=> (and (fun_app$l (fun_app$m ?v0 ?v1) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (fun_app$l (fun_app$m ?v0 ?v3) ?v4) (or (exists ((?v5 A_llist$)) (and (= ?v3 lNil$) (= ?v4 ?v5))) (exists ((?v5 A_llist$) (?v6 A_llist$) (?v7 A$)) (and (= ?v3 (lCons$ ?v7 ?v5)) (and (= ?v4 (lCons$ ?v7 ?v6)) (or (fun_app$l (fun_app$m ?v0 ?v5) ?v6) (fun_app$l (lprefix$ ?v5) ?v6))))))))) (fun_app$l (lprefix$ ?v1) ?v2))) :named a85))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod_set$)) (=> (and (member$c (pair$a ?v0 ?v1) ?v2) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod_llist$)) (=> (member$c (pair$a ?v3 ?v4) ?v2) (or (fun_app$bw lnull$a ?v3) (exists ((?v5 A_llist_a_llist_prod$) (?v6 A_llist_a_llist_prod_llist$) (?v7 A_llist_a_llist_prod_llist$)) (and (= ?v3 (lCons$a ?v5 ?v6)) (and (= ?v4 (lCons$a ?v5 ?v7)) (or (member$c (pair$a ?v6 ?v7) ?v2) (fun_app$bw (lprefix$a ?v6) ?v7))))))))) (fun_app$bw (lprefix$a ?v0) ?v1))) :named a86))
-(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist_a_llist_prod_set$)) (=> (and (fun_app$i (member$ (pair$ ?v0 ?v1)) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (fun_app$i (member$ (pair$ ?v3 ?v4)) ?v2) (or (fun_app$l lnull$ ?v3) (exists ((?v5 A$) (?v6 A_llist$) (?v7 A_llist$)) (and (= ?v3 (lCons$ ?v5 ?v6)) (and (= ?v4 (lCons$ ?v5 ?v7)) (or (fun_app$i (member$ (pair$ ?v6 ?v7)) ?v2) (fun_app$l (lprefix$ ?v6) ?v7))))))))) (fun_app$l (lprefix$ ?v0) ?v1))) :named a87))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod_set$)) (=> (and (set.member$c (pair$a ?v0 ?v1) ?v2) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod_llist$)) (=> (set.member$c (pair$a ?v3 ?v4) ?v2) (or (fun_app$bw lnull$a ?v3) (exists ((?v5 A_llist_a_llist_prod$) (?v6 A_llist_a_llist_prod_llist$) (?v7 A_llist_a_llist_prod_llist$)) (and (= ?v3 (lCons$a ?v5 ?v6)) (and (= ?v4 (lCons$a ?v5 ?v7)) (or (set.member$c (pair$a ?v6 ?v7) ?v2) (fun_app$bw (lprefix$a ?v6) ?v7))))))))) (fun_app$bw (lprefix$a ?v0) ?v1))) :named a86))
+(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist_a_llist_prod_set$)) (=> (and (fun_app$i (set.member$ (pair$ ?v0 ?v1)) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (fun_app$i (set.member$ (pair$ ?v3 ?v4)) ?v2) (or (fun_app$l lnull$ ?v3) (exists ((?v5 A$) (?v6 A_llist$) (?v7 A_llist$)) (and (= ?v3 (lCons$ ?v5 ?v6)) (and (= ?v4 (lCons$ ?v5 ?v7)) (or (fun_app$i (set.member$ (pair$ ?v6 ?v7)) ?v2) (fun_app$l (lprefix$ ?v6) ?v7))))))))) (fun_app$l (lprefix$ ?v0) ?v1))) :named a87))
 (assert (! (forall ((?v0 A$) (?v1 A_llist$) (?v2 A$) (?v3 A_llist$)) (= (= (lCons$ ?v0 ?v1) (lCons$ ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3)))) :named a88))
 (assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod_llist$)) (= (= (lCons$a ?v0 ?v1) (lCons$a ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3)))) :named a89))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (not (fun_app$bw lnull$a ?v0)) (= (lCons$a (lhd$a ?v0) (ltl$a ?v0)) ?v0))) :named a90))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$)) (=> (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (= (fun_app$h (fun_app$r ?v0 ?v2) ?v3) (fun_app$j ?v1 (pair$b ?v2 ?v3)))) (= (fun_app$al uncurry$d ?v0) ?v1))) :named a162))
 (assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (= (fun_app$p (fun_app$q ?v0 ?v2) ?v3) (fun_app$r ?v1 (pair$ ?v2 ?v3)))) (= (fun_app$aj uncurry$c ?v0) ?v1))) :named a163))
 (assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod_bool_fun$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (= (fun_app$l (fun_app$m ?v0 ?v2) ?v3) (fun_app$h ?v1 (pair$ ?v2 ?v3)))) (= (fun_app$ad uncurry$a ?v0) ?v1))) :named a164))
-(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_a_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (=> (member$b ?v0 (fun_app$bz (fun_app$ca ?v1 ?v2) ?v3)) (member$b ?v0 (uncurry$e ?v1 (pair$ ?v2 ?v3))))) :named a165))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (=> (member$a ?v0 (fun_app$cb (fun_app$cc ?v1 ?v2) ?v3)) (member$a ?v0 (uncurry$f ?v1 (pair$ ?v2 ?v3))))) :named a166))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (fun_app$i (member$ ?v0) (fun_app$x (fun_app$cd ?v1 ?v2) ?v3)) (fun_app$i (member$ ?v0) (uncurry$g ?v1 (pair$b ?v2 ?v3))))) :named a167))
-(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (member$b ?v0 (fun_app$ce (fun_app$cf ?v1 ?v2) ?v3)) (member$b ?v0 (uncurry$h ?v1 (pair$b ?v2 ?v3))))) :named a168))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (member$a ?v0 (fun_app$cg (fun_app$ch ?v1 ?v2) ?v3)) (member$a ?v0 (uncurry$i ?v1 (pair$b ?v2 ?v3))))) :named a169))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (=> (fun_app$i (member$ ?v0) (fun_app$n (fun_app$o ?v1 ?v2) ?v3)) (fun_app$i (member$ ?v0) (fun_app$x (fun_app$ah uncurry$b ?v1) (pair$ ?v2 ?v3))))) :named a170))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A$) (?v2 A_llist_a_llist_a_set_fun_fun$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= ?v0 (pair$ ?v3 ?v4)) (member$b ?v1 (fun_app$bz (fun_app$ca ?v2 ?v3) ?v4)))) (member$b ?v1 (uncurry$e ?v2 ?v0)))) :named a171))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= ?v0 (pair$ ?v3 ?v4)) (member$a ?v1 (fun_app$cb (fun_app$cc ?v2 ?v3) ?v4)))) (member$a ?v1 (uncurry$f ?v2 ?v0)))) :named a172))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v3 ?v4)) (fun_app$i (member$ ?v1) (fun_app$x (fun_app$cd ?v2 ?v3) ?v4)))) (fun_app$i (member$ ?v1) (uncurry$g ?v2 ?v0)))) :named a173))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$)) (=> (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v3 ?v4)) (member$b ?v1 (fun_app$ce (fun_app$cf ?v2 ?v3) ?v4)))) (member$b ?v1 (uncurry$h ?v2 ?v0)))) :named a174))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v3 ?v4)) (member$a ?v1 (fun_app$cg (fun_app$ch ?v2 ?v3) ?v4)))) (member$a ?v1 (uncurry$i ?v2 ?v0)))) :named a175))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= ?v0 (pair$ ?v3 ?v4)) (fun_app$i (member$ ?v1) (fun_app$n (fun_app$o ?v2 ?v3) ?v4)))) (fun_app$i (member$ ?v1) (fun_app$x (fun_app$ah uncurry$b ?v2) ?v0)))) :named a176))
+(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_a_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (=> (set.member$b ?v0 (fun_app$bz (fun_app$ca ?v1 ?v2) ?v3)) (set.member$b ?v0 (uncurry$e ?v1 (pair$ ?v2 ?v3))))) :named a165))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (=> (set.member$a ?v0 (fun_app$cb (fun_app$cc ?v1 ?v2) ?v3)) (set.member$a ?v0 (uncurry$f ?v1 (pair$ ?v2 ?v3))))) :named a166))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (fun_app$i (set.member$ ?v0) (fun_app$x (fun_app$cd ?v1 ?v2) ?v3)) (fun_app$i (set.member$ ?v0) (uncurry$g ?v1 (pair$b ?v2 ?v3))))) :named a167))
+(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (set.member$b ?v0 (fun_app$ce (fun_app$cf ?v1 ?v2) ?v3)) (set.member$b ?v0 (uncurry$h ?v1 (pair$b ?v2 ?v3))))) :named a168))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (set.member$a ?v0 (fun_app$cg (fun_app$ch ?v1 ?v2) ?v3)) (set.member$a ?v0 (uncurry$i ?v1 (pair$b ?v2 ?v3))))) :named a169))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (=> (fun_app$i (set.member$ ?v0) (fun_app$n (fun_app$o ?v1 ?v2) ?v3)) (fun_app$i (set.member$ ?v0) (fun_app$x (fun_app$ah uncurry$b ?v1) (pair$ ?v2 ?v3))))) :named a170))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A$) (?v2 A_llist_a_llist_a_set_fun_fun$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= ?v0 (pair$ ?v3 ?v4)) (set.member$b ?v1 (fun_app$bz (fun_app$ca ?v2 ?v3) ?v4)))) (set.member$b ?v1 (uncurry$e ?v2 ?v0)))) :named a171))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= ?v0 (pair$ ?v3 ?v4)) (set.member$a ?v1 (fun_app$cb (fun_app$cc ?v2 ?v3) ?v4)))) (set.member$a ?v1 (uncurry$f ?v2 ?v0)))) :named a172))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v3 ?v4)) (fun_app$i (set.member$ ?v1) (fun_app$x (fun_app$cd ?v2 ?v3) ?v4)))) (fun_app$i (set.member$ ?v1) (uncurry$g ?v2 ?v0)))) :named a173))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$)) (=> (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v3 ?v4)) (set.member$b ?v1 (fun_app$ce (fun_app$cf ?v2 ?v3) ?v4)))) (set.member$b ?v1 (uncurry$h ?v2 ?v0)))) :named a174))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v3 ?v4)) (set.member$a ?v1 (fun_app$cg (fun_app$ch ?v2 ?v3) ?v4)))) (set.member$a ?v1 (uncurry$i ?v2 ?v0)))) :named a175))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= ?v0 (pair$ ?v3 ?v4)) (fun_app$i (set.member$ ?v1) (fun_app$n (fun_app$o ?v2 ?v3) ?v4)))) (fun_app$i (set.member$ ?v1) (fun_app$x (fun_app$ah uncurry$b ?v2) ?v0)))) :named a176))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$)) (=> (forall ((?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (= (fun_app$j ?v0 ?v2) (fun_app$j ?v1 ?v2))) (= (collect$a ?v0) (collect$a ?v1)))) :named a177))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod_bool_fun$)) (=> (forall ((?v2 A_llist_a_llist_prod$)) (= (fun_app$h ?v0 ?v2) (fun_app$h ?v1 ?v2))) (= (collect$ ?v0) (collect$ ?v1)))) :named a178))
 (assert (! (forall ((?v0 A_set$)) (= (collect$b (uug$ ?v0)) ?v0)) :named a179))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$)) (= (collect$a (uuh$ ?v0)) ?v0)) :named a180))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$)) (= (collect$ (uui$ ?v0)) ?v0)) :named a181))
-(assert (! (forall ((?v0 A$) (?v1 A_bool_fun$)) (= (member$b ?v0 (collect$b ?v1)) (fun_app$k ?v1 ?v0))) :named a182))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$)) (= (member$a ?v0 (collect$a ?v1)) (fun_app$j ?v1 ?v0))) :named a183))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_bool_fun$)) (= (fun_app$i (member$ ?v0) (collect$ ?v1)) (fun_app$h ?v1 ?v0))) :named a184))
+(assert (! (forall ((?v0 A$) (?v1 A_bool_fun$)) (= (set.member$b ?v0 (collect$b ?v1)) (fun_app$k ?v1 ?v0))) :named a182))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$)) (= (set.member$a ?v0 (collect$a ?v1)) (fun_app$j ?v1 ?v0))) :named a183))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_bool_fun$)) (= (fun_app$i (set.member$ ?v0) (collect$ ?v1)) (fun_app$h ?v1 ?v0))) :named a184))
 (assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= (pair$ ?v3 ?v4) ?v0) (fun_app$h (fun_app$p (fun_app$q ?v1 ?v3) ?v4) ?v2))) (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v1) ?v0) ?v2))) :named a185))
-(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_a_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (member$b ?v0 (uncurry$e ?v1 ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (member$b ?v0 (fun_app$bz (fun_app$ca ?v1 ?v3) ?v4))) false))) false)) :named a186))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (member$a ?v0 (uncurry$f ?v1 ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (member$a ?v0 (fun_app$cb (fun_app$cc ?v1 ?v3) ?v4))) false))) false)) :named a187))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (fun_app$i (member$ ?v0) (uncurry$g ?v1 ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (fun_app$i (member$ ?v0) (fun_app$x (fun_app$cd ?v1 ?v3) ?v4))) false))) false)) :named a188))
-(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (member$b ?v0 (uncurry$h ?v1 ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (member$b ?v0 (fun_app$ce (fun_app$cf ?v1 ?v3) ?v4))) false))) false)) :named a189))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (member$a ?v0 (uncurry$i ?v1 ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (member$a ?v0 (fun_app$cg (fun_app$ch ?v1 ?v3) ?v4))) false))) false)) :named a190))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$i (member$ ?v0) (fun_app$x (fun_app$ah uncurry$b ?v1) ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (fun_app$i (member$ ?v0) (fun_app$n (fun_app$o ?v1 ?v3) ?v4))) false))) false)) :named a191))
+(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_a_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (set.member$b ?v0 (uncurry$e ?v1 ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (set.member$b ?v0 (fun_app$bz (fun_app$ca ?v1 ?v3) ?v4))) false))) false)) :named a186))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (set.member$a ?v0 (uncurry$f ?v1 ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (set.member$a ?v0 (fun_app$cb (fun_app$cc ?v1 ?v3) ?v4))) false))) false)) :named a187))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (fun_app$i (set.member$ ?v0) (uncurry$g ?v1 ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (fun_app$i (set.member$ ?v0) (fun_app$x (fun_app$cd ?v1 ?v3) ?v4))) false))) false)) :named a188))
+(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (set.member$b ?v0 (uncurry$h ?v1 ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (set.member$b ?v0 (fun_app$ce (fun_app$cf ?v1 ?v3) ?v4))) false))) false)) :named a189))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (set.member$a ?v0 (uncurry$i ?v1 ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (set.member$a ?v0 (fun_app$cg (fun_app$ch ?v1 ?v3) ?v4))) false))) false)) :named a190))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$i (set.member$ ?v0) (fun_app$x (fun_app$ah uncurry$b ?v1) ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (fun_app$i (set.member$ ?v0) (fun_app$n (fun_app$o ?v1 ?v3) ?v4))) false))) false)) :named a191))
 (assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v0) ?v1) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v1 (pair$ ?v3 ?v4)) (fun_app$h (fun_app$p (fun_app$q ?v0 ?v3) ?v4) ?v2)) false))) false)) :named a192))
 (assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= (pair$ ?v3 ?v4) ?v0) (fun_app$h (fun_app$p (fun_app$q ?v1 ?v3) ?v4) ?v2))) (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v1) ?v0) ?v2))) :named a193))
 (assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v0) ?v1) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v1 (pair$ ?v3 ?v4)) (fun_app$h (fun_app$p (fun_app$q ?v0 ?v3) ?v4) ?v2)) false))) false)) :named a194))
 (assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (or (not (fun_app$l lnull$ ?v0)) (not (fun_app$l lnull$ ?v1))) (= (ltl$ (fun_app$a (lappend$a ?v0) ?v1)) (fun_app$a (fun_app$cj (case_llist$a (fun_app$a (fun_app$cj (case_llist$a undefined$) uvv$) ?v1)) (uwj$ ?v1)) ?v0)))) :named a366))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_fun$)) (= (inv_image$ ?v0 ?v1) (collect$ (fun_app$ad uncurry$a (fun_app$z (uwk$ ?v0) ?v1))))) :named a367))
 (assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_llist_a_llist_prod_set_fun$)) (= (same_fst$ ?v0 ?v1) (collect$a (fun_app$al uncurry$d (fun_app$aj uncurry$c (fun_app$bt (uwm$ ?v0) ?v1)))))) :named a368))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod_llist$)) (=> (not (fun_app$bw lnull$a ?v3)) (fun_app$bw (fun_app$bx ?v2 (lhd$a ?v3)) ?v3))) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod$)) (=> (and (not (fun_app$bw lnull$a ?v3)) (and (fun_app$i (member$ ?v4) (lset$ (ltl$a ?v3))) (fun_app$bw (fun_app$bx ?v2 ?v4) (ltl$a ?v3)))) (fun_app$bw (fun_app$bx ?v2 ?v4) ?v3))))) (fun_app$bw (fun_app$bx ?v2 ?v0) ?v1))) :named a369))
-(assert (! (forall ((?v0 A$) (?v1 A_llist$) (?v2 A_a_llist_bool_fun_fun$)) (=> (and (member$b ?v0 (lset$a ?v1)) (and (forall ((?v3 A_llist$)) (=> (not (fun_app$l lnull$ ?v3)) (fun_app$l (fun_app$as ?v2 (lhd$ ?v3)) ?v3))) (forall ((?v3 A_llist$) (?v4 A$)) (=> (and (not (fun_app$l lnull$ ?v3)) (and (member$b ?v4 (lset$a (ltl$ ?v3))) (fun_app$l (fun_app$as ?v2 ?v4) (ltl$ ?v3)))) (fun_app$l (fun_app$as ?v2 ?v4) ?v3))))) (fun_app$l (fun_app$as ?v2 ?v0) ?v1))) :named a370))
-(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist_a_llist_prod_set$) (?v3 A_llist_a_llist_fun$)) (= (fun_app$i (member$ (pair$ ?v0 ?v1)) (inv_image$ ?v2 ?v3)) (fun_app$i (member$ (pair$ (fun_app$a ?v3 ?v0) (fun_app$a ?v3 ?v1))) ?v2))) :named a371))
-(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist_a_llist_a_llist_prod_set_fun$)) (=> (and (fun_app$l ?v0 ?v1) (fun_app$i (member$ (pair$ ?v2 ?v3)) (fun_app$n ?v4 ?v1))) (member$a (pair$b (pair$ ?v1 ?v2) (pair$ ?v1 ?v3)) (same_fst$ ?v0 ?v4)))) :named a372))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (fun_app$i (member$ ?v0) (lset$ (lCons$a ?v0 ?v1)))) :named a373))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (fun_app$i (member$ ?v0) (lset$ (lCons$a ?v0 ?v1)))) :named a374))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$i (member$ ?v0) (lset$ ?v1)) (fun_app$i (member$ ?v0) (lset$ (lCons$a ?v2 ?v1))))) :named a375))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$i (member$ ?v0) (lset$ ?v1)) (fun_app$i (member$ ?v0) (lset$ (lCons$a ?v2 ?v1))))) :named a376))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v2 A_llist_a_llist_prod_llist$)) (=> (= ?v1 (lCons$a ?v0 ?v2)) false)) (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod_llist$)) (=> (and (= ?v1 (lCons$a ?v2 ?v3)) (fun_app$i (member$ ?v0) (lset$ ?v3))) false)))) false)) :named a377))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist_bool_fun$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod_llist$)) (fun_app$bw ?v2 (lCons$a ?v0 ?v3))) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v4)) (and (not (= ?v0 ?v3)) (fun_app$bw ?v2 ?v4))) (fun_app$bw ?v2 (lCons$a ?v3 ?v4)))))) (fun_app$bw ?v2 ?v1))) :named a378))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist_bool_fun$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod_llist$)) (fun_app$bw ?v2 (lCons$a ?v0 ?v3))) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v4)) (fun_app$bw ?v2 ?v4)) (fun_app$bw ?v2 (lCons$a ?v3 ?v4)))))) (fun_app$bw ?v2 ?v1))) :named a379))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v2 A_llist_a_llist_prod_llist$)) (=> (= ?v1 (lCons$a ?v0 ?v2)) false)) (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod_llist$)) (=> (and (= ?v1 (lCons$a ?v2 ?v3)) (fun_app$i (member$ ?v0) (lset$ ?v3))) false)))) false)) :named a380))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$)) (fun_app$bw (fun_app$bx ?v2 ?v3) (lCons$a ?v3 ?v4))) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$) (?v5 A_llist_a_llist_prod$)) (=> (and (fun_app$i (member$ ?v5) (lset$ ?v4)) (fun_app$bw (fun_app$bx ?v2 ?v5) ?v4)) (fun_app$bw (fun_app$bx ?v2 ?v5) (lCons$a ?v3 ?v4)))))) (fun_app$bw (fun_app$bx ?v2 ?v0) ?v1))) :named a381))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (fun_app$i (member$ ?v0) (lset$ (ltl$a ?v1))) (fun_app$i (member$ ?v0) (lset$ ?v1)))) :named a382))
-(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (=> (member$b ?v0 (lset$a (ltl$ ?v1))) (member$b ?v0 (lset$a ?v1)))) :named a383))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (= (fun_app$i (member$ ?v0) (lset$ ?v1)) (fun_app$bw (lmember$ ?v0) ?v1))) :named a384))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod$)) (=> (and (not (fun_app$bw lnull$a ?v0)) (fun_app$i (member$ ?v1) (lset$ (ltl$a ?v0)))) (fun_app$i (member$ ?v1) (lset$ ?v0)))) :named a385))
-(assert (! (forall ((?v0 A_llist$) (?v1 A$)) (=> (and (not (fun_app$l lnull$ ?v0)) (member$b ?v1 (lset$a (ltl$ ?v0)))) (member$b ?v1 (lset$a ?v0)))) :named a386))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (not (fun_app$bw lnull$a ?v0)) (fun_app$i (member$ (lhd$a ?v0)) (lset$ ?v0)))) :named a387))
-(assert (! (forall ((?v0 A_llist$)) (=> (not (fun_app$l lnull$ ?v0)) (member$b (lhd$ ?v0) (lset$a ?v0)))) :named a388))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$)) (=> (and (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod_llist$)) (=> (not (fun_app$bw lnull$a ?v3)) (fun_app$bw (fun_app$bx ?v2 (lhd$a ?v3)) ?v3))) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod$)) (=> (and (not (fun_app$bw lnull$a ?v3)) (and (fun_app$i (set.member$ ?v4) (lset$ (ltl$a ?v3))) (fun_app$bw (fun_app$bx ?v2 ?v4) (ltl$a ?v3)))) (fun_app$bw (fun_app$bx ?v2 ?v4) ?v3))))) (fun_app$bw (fun_app$bx ?v2 ?v0) ?v1))) :named a369))
+(assert (! (forall ((?v0 A$) (?v1 A_llist$) (?v2 A_a_llist_bool_fun_fun$)) (=> (and (set.member$b ?v0 (lset$a ?v1)) (and (forall ((?v3 A_llist$)) (=> (not (fun_app$l lnull$ ?v3)) (fun_app$l (fun_app$as ?v2 (lhd$ ?v3)) ?v3))) (forall ((?v3 A_llist$) (?v4 A$)) (=> (and (not (fun_app$l lnull$ ?v3)) (and (set.member$b ?v4 (lset$a (ltl$ ?v3))) (fun_app$l (fun_app$as ?v2 ?v4) (ltl$ ?v3)))) (fun_app$l (fun_app$as ?v2 ?v4) ?v3))))) (fun_app$l (fun_app$as ?v2 ?v0) ?v1))) :named a370))
+(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist_a_llist_prod_set$) (?v3 A_llist_a_llist_fun$)) (= (fun_app$i (set.member$ (pair$ ?v0 ?v1)) (inv_image$ ?v2 ?v3)) (fun_app$i (set.member$ (pair$ (fun_app$a ?v3 ?v0) (fun_app$a ?v3 ?v1))) ?v2))) :named a371))
+(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist_a_llist_a_llist_prod_set_fun$)) (=> (and (fun_app$l ?v0 ?v1) (fun_app$i (set.member$ (pair$ ?v2 ?v3)) (fun_app$n ?v4 ?v1))) (set.member$a (pair$b (pair$ ?v1 ?v2) (pair$ ?v1 ?v3)) (same_fst$ ?v0 ?v4)))) :named a372))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (fun_app$i (set.member$ ?v0) (lset$ (lCons$a ?v0 ?v1)))) :named a373))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (fun_app$i (set.member$ ?v0) (lset$ (lCons$a ?v0 ?v1)))) :named a374))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (fun_app$i (set.member$ ?v0) (lset$ (lCons$a ?v2 ?v1))))) :named a375))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (fun_app$i (set.member$ ?v0) (lset$ (lCons$a ?v2 ?v1))))) :named a376))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (and (forall ((?v2 A_llist_a_llist_prod_llist$)) (=> (= ?v1 (lCons$a ?v0 ?v2)) false)) (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod_llist$)) (=> (and (= ?v1 (lCons$a ?v2 ?v3)) (fun_app$i (set.member$ ?v0) (lset$ ?v3))) false)))) false)) :named a377))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist_bool_fun$)) (=> (and (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod_llist$)) (fun_app$bw ?v2 (lCons$a ?v0 ?v3))) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (set.member$ ?v0) (lset$ ?v4)) (and (not (= ?v0 ?v3)) (fun_app$bw ?v2 ?v4))) (fun_app$bw ?v2 (lCons$a ?v3 ?v4)))))) (fun_app$bw ?v2 ?v1))) :named a378))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist_bool_fun$)) (=> (and (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod_llist$)) (fun_app$bw ?v2 (lCons$a ?v0 ?v3))) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (set.member$ ?v0) (lset$ ?v4)) (fun_app$bw ?v2 ?v4)) (fun_app$bw ?v2 (lCons$a ?v3 ?v4)))))) (fun_app$bw ?v2 ?v1))) :named a379))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (and (forall ((?v2 A_llist_a_llist_prod_llist$)) (=> (= ?v1 (lCons$a ?v0 ?v2)) false)) (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod_llist$)) (=> (and (= ?v1 (lCons$a ?v2 ?v3)) (fun_app$i (set.member$ ?v0) (lset$ ?v3))) false)))) false)) :named a380))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$)) (=> (and (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$)) (fun_app$bw (fun_app$bx ?v2 ?v3) (lCons$a ?v3 ?v4))) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$) (?v5 A_llist_a_llist_prod$)) (=> (and (fun_app$i (set.member$ ?v5) (lset$ ?v4)) (fun_app$bw (fun_app$bx ?v2 ?v5) ?v4)) (fun_app$bw (fun_app$bx ?v2 ?v5) (lCons$a ?v3 ?v4)))))) (fun_app$bw (fun_app$bx ?v2 ?v0) ?v1))) :named a381))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (fun_app$i (set.member$ ?v0) (lset$ (ltl$a ?v1))) (fun_app$i (set.member$ ?v0) (lset$ ?v1)))) :named a382))
+(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (=> (set.member$b ?v0 (lset$a (ltl$ ?v1))) (set.member$b ?v0 (lset$a ?v1)))) :named a383))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (= (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (fun_app$bw (lmember$ ?v0) ?v1))) :named a384))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod$)) (=> (and (not (fun_app$bw lnull$a ?v0)) (fun_app$i (set.member$ ?v1) (lset$ (ltl$a ?v0)))) (fun_app$i (set.member$ ?v1) (lset$ ?v0)))) :named a385))
+(assert (! (forall ((?v0 A_llist$) (?v1 A$)) (=> (and (not (fun_app$l lnull$ ?v0)) (set.member$b ?v1 (lset$a (ltl$ ?v0)))) (set.member$b ?v1 (lset$a ?v0)))) :named a386))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (not (fun_app$bw lnull$a ?v0)) (fun_app$i (set.member$ (lhd$a ?v0)) (lset$ ?v0)))) :named a387))
+(assert (! (forall ((?v0 A_llist$)) (=> (not (fun_app$l lnull$ ?v0)) (set.member$b (lhd$ ?v0) (lset$a ?v0)))) :named a388))
 (assert (! (forall ((?v0 A_llist$)) (= (lhd$ ?v0) (fun_app$c (fun_app$ck (case_llist$b undefined$a) uwb$) ?v0))) :named a389))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (lex_prod$ ?v0 ?v1) (collect$a (fun_app$al uncurry$d (fun_app$aj uncurry$c (fun_app$bq (uwo$ ?v0) ?v1)))))) :named a390))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (fun_app$i (member$ ?v0) (lset$ ?v1)) (exists ((?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_llist$)) (and (= ?v1 (fun_app$ (lappend$ ?v2) (lCons$a ?v0 ?v3))) (and (lfinite$ ?v2) (not (fun_app$i (member$ ?v0) (lset$ ?v2)))))))) :named a391))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (fun_app$i (member$ ?v0) (lset$ ?v1)) (exists ((?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_llist$)) (and (= ?v1 (fun_app$ (lappend$ ?v2) (lCons$a ?v0 ?v3))) (lfinite$ ?v2))))) :named a392))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (exists ((?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_llist$)) (and (= ?v1 (fun_app$ (lappend$ ?v2) (lCons$a ?v0 ?v3))) (and (lfinite$ ?v2) (not (fun_app$i (set.member$ ?v0) (lset$ ?v2)))))))) :named a391))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (exists ((?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_llist$)) (and (= ?v1 (fun_app$ (lappend$ ?v2) (lCons$a ?v0 ?v3))) (lfinite$ ?v2))))) :named a392))
 (assert (! (forall ((?v0 A_llist$)) (= (lfinite$a (ltl$ ?v0)) (lfinite$a ?v0))) :named a393))
-(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist_a_llist_prod_set$) (?v5 A_llist_a_llist_prod_set$)) (= (member$a (pair$b (pair$ ?v0 ?v1) (pair$ ?v2 ?v3)) (lex_prod$ ?v4 ?v5)) (or (fun_app$i (member$ (pair$ ?v0 ?v2)) ?v4) (and (= ?v0 ?v2) (fun_app$i (member$ (pair$ ?v1 ?v3)) ?v5))))) :named a394))
+(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist_a_llist_prod_set$) (?v5 A_llist_a_llist_prod_set$)) (= (set.member$a (pair$b (pair$ ?v0 ?v1) (pair$ ?v2 ?v3)) (lex_prod$ ?v4 ?v5)) (or (fun_app$i (set.member$ (pair$ ?v0 ?v2)) ?v4) (and (= ?v0 ?v2) (fun_app$i (set.member$ (pair$ ?v1 ?v3)) ?v5))))) :named a394))
 (assert (! (forall ((?v0 A_llist$)) (=> (fun_app$l lnull$ ?v0) (lfinite$a ?v0))) :named a395))
 (assert (! (forall ((?v0 A_llist$) (?v1 A_llist_bool_fun$)) (=> (and (lfinite$a ?v0) (and (forall ((?v2 A_llist$)) (=> (fun_app$l lnull$ ?v2) (fun_app$l ?v1 ?v2))) (forall ((?v2 A_llist$)) (=> (and (lfinite$a ?v2) (and (not (fun_app$l lnull$ ?v2)) (fun_app$l ?v1 (ltl$ ?v2)))) (fun_app$l ?v1 ?v2))))) (fun_app$l ?v1 ?v0))) :named a396))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$)) (= (fun_app$i (member$ ?v0) (lset$ (fun_app$ (lappend$ ?v1) ?v2))) (or (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (lfinite$ ?v1) (fun_app$i (member$ ?v0) (lset$ ?v2)))))) :named a397))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$)) (= (fun_app$i (set.member$ ?v0) (lset$ (fun_app$ (lappend$ ?v1) ?v2))) (or (fun_app$i (set.member$ ?v0) (lset$ ?v1)) (and (lfinite$ ?v1) (fun_app$i (set.member$ ?v0) (lset$ ?v2)))))) :named a397))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod_bool_fun$)) (= (collect$ (fun_app$t (uwp$ ?v0) ?v1)) (sup$ (collect$ ?v0) (collect$ ?v1)))) :named a398))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (sup$ ?v0 ?v1) (collect$ (fun_app$s (uwq$ ?v0) ?v1)))) :named a399))
 (assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_a_bool_fun_fun$)) (=> (and (fun_app$l (fun_app$m ?v0 ?v1) ?v2) (forall ((?v4 A_llist$) (?v5 A_llist$)) (=> (fun_app$l (fun_app$m ?v0 ?v4) ?v5) (and (= (fun_app$l lnull$ ?v4) (fun_app$l lnull$ ?v5)) (=> (and (not (fun_app$l lnull$ ?v4)) (not (fun_app$l lnull$ ?v5))) (and (fun_app$k (fun_app$co ?v3 (lhd$ ?v4)) (lhd$ ?v5)) (fun_app$l (fun_app$m ?v0 (ltl$ ?v4)) (ltl$ ?v5)))))))) (fun_app$l (fun_app$m (llist_all2$ ?v3) ?v1) ?v2))) :named a400))
 (assert (! (forall ((?v0 A_a_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (= (fun_app$l (fun_app$m (llist_all2$ ?v0) ?v1) ?v2) (and (= (fun_app$l lnull$ ?v1) (fun_app$l lnull$ ?v2)) (=> (and (not (fun_app$l lnull$ ?v1)) (not (fun_app$l lnull$ ?v2))) (and (fun_app$k (fun_app$co ?v0 (lhd$ ?v1)) (lhd$ ?v2)) (fun_app$l (fun_app$m (llist_all2$ ?v0) (ltl$ ?v1)) (ltl$ ?v2))))))) :named a401))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (=> (fun_app$i (member$ (pair$ ?v2 ?v3)) ?v0) (fun_app$i (member$ (pair$ ?v2 ?v3)) ?v1))) (fun_app$i (less_eq$ ?v0) ?v1))) :named a402))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$)) (=> (and (fun_app$bw (fun_app$by (llist_all2$a ?v0) ?v1) ?v2) (forall ((?v4 A_llist_a_llist_prod$) (?v5 A_llist_a_llist_prod$)) (=> (and (fun_app$i (member$ ?v4) (lset$ ?v1)) (and (fun_app$i (member$ ?v5) (lset$ ?v2)) (fun_app$h (fun_app$r ?v0 ?v4) ?v5))) (fun_app$h (fun_app$r ?v3 ?v4) ?v5)))) (fun_app$bw (fun_app$by (llist_all2$a ?v3) ?v1) ?v2))) :named a403))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (=> (fun_app$i (set.member$ (pair$ ?v2 ?v3)) ?v0) (fun_app$i (set.member$ (pair$ ?v2 ?v3)) ?v1))) (fun_app$i (less_eq$ ?v0) ?v1))) :named a402))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$)) (=> (and (fun_app$bw (fun_app$by (llist_all2$a ?v0) ?v1) ?v2) (forall ((?v4 A_llist_a_llist_prod$) (?v5 A_llist_a_llist_prod$)) (=> (and (fun_app$i (set.member$ ?v4) (lset$ ?v1)) (and (fun_app$i (set.member$ ?v5) (lset$ ?v2)) (fun_app$h (fun_app$r ?v0 ?v4) ?v5))) (fun_app$h (fun_app$r ?v3 ?v4) ?v5)))) (fun_app$bw (fun_app$by (llist_all2$a ?v3) ?v1) ?v2))) :named a403))
 (assert (! (forall ((?v0 A_llist$)) (less_eq$a (lset$a (ltl$ ?v0)) (lset$a ?v0))) :named a404))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_bool_fun$) (?v2 A_llist_a_llist_prod_bool_fun$)) (= (fun_app$i (less_eq$ ?v0) (collect$ (fun_app$t (uwr$ ?v1) ?v2))) (and (fun_app$i (less_eq$ ?v0) (collect$ ?v1)) (fun_app$i (less_eq$ ?v0) (collect$ ?v2))))) :named a405))
-(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod_set$) (?v3 A_llist_a_llist_prod_bool_fun$)) (=> (and (fun_app$i (member$ ?v0) ?v1) (fun_app$i (less_eq$ ?v1) (collect$ (fun_app$t (uws$ ?v2) ?v3)))) (fun_app$h ?v3 ?v0))) :named a406))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod_bool_fun$) (?v3 A_llist_a_llist_prod_bool_fun$)) (=> (and (fun_app$i (less_eq$ ?v0) ?v1) (forall ((?v4 A_llist_a_llist_prod$)) (=> (and (fun_app$i (member$ ?v4) ?v0) (fun_app$h ?v2 ?v4)) (fun_app$h ?v3 ?v4)))) (fun_app$i (less_eq$ (collect$ (fun_app$t (uws$ ?v0) ?v2))) (collect$ (fun_app$t (uws$ ?v1) ?v3))))) :named a407))
+(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod_set$) (?v3 A_llist_a_llist_prod_bool_fun$)) (=> (and (fun_app$i (set.member$ ?v0) ?v1) (fun_app$i (less_eq$ ?v1) (collect$ (fun_app$t (uws$ ?v2) ?v3)))) (fun_app$h ?v3 ?v0))) :named a406))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod_bool_fun$) (?v3 A_llist_a_llist_prod_bool_fun$)) (=> (and (fun_app$i (less_eq$ ?v0) ?v1) (forall ((?v4 A_llist_a_llist_prod$)) (=> (and (fun_app$i (set.member$ ?v4) ?v0) (fun_app$h ?v2 ?v4)) (fun_app$h ?v3 ?v4)))) (fun_app$i (less_eq$ (collect$ (fun_app$t (uws$ ?v0) ?v2))) (collect$ (fun_app$t (uws$ ?v1) ?v3))))) :named a407))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (fun_app$i (less_eq$ ?v0) ?v1) (fun_app$bk (less_eq$b (uui$ ?v0)) (uui$ ?v1)))) :named a408))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (fun_app$bk (less_eq$b (uui$ ?v0)) (uui$ ?v1)) (fun_app$i (less_eq$ ?v0) ?v1))) :named a409))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (less_eq$c (uvz$ ?v0) (uvz$ ?v1)) (fun_app$i (less_eq$ ?v0) ?v1))) :named a410))
-(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist_a_llist_prod_set$) (?v3 A_llist$)) (=> (and (fun_app$i (member$ (pair$ ?v0 ?v1)) ?v2) (= ?v3 ?v1)) (fun_app$i (member$ (pair$ ?v0 ?v3)) ?v2))) :named a411))
+(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist_a_llist_prod_set$) (?v3 A_llist$)) (=> (and (fun_app$i (set.member$ (pair$ ?v0 ?v1)) ?v2) (= ?v3 ?v1)) (fun_app$i (set.member$ (pair$ ?v0 ?v3)) ?v2))) :named a411))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_bool_fun$)) (fun_app$i (less_eq$ (collect$ (fun_app$t (uws$ ?v0) ?v1))) ?v0)) :named a412))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod_bool_fun$)) (=> (fun_app$i (less_eq$ ?v0) ?v1) (= (fun_app$i (less_eq$ ?v0) (collect$ (fun_app$t (uws$ ?v1) ?v2))) (forall ((?v3 A_llist_a_llist_prod$)) (=> (fun_app$i (member$ ?v3) ?v0) (fun_app$h ?v2 ?v3)))))) :named a413))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod_bool_fun$)) (=> (fun_app$i (less_eq$ ?v0) ?v1) (= (fun_app$i (less_eq$ ?v0) (collect$ (fun_app$t (uws$ ?v1) ?v2))) (forall ((?v3 A_llist_a_llist_prod$)) (=> (fun_app$i (set.member$ ?v3) ?v0) (fun_app$h ?v2 ?v3)))))) :named a413))
 (assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_bool_fun_fun$)) (=> (less_eq$c ?v0 ?v1) (fun_app$i (less_eq$ (collect$ (fun_app$ad uncurry$a ?v0))) (collect$ (fun_app$ad uncurry$a ?v1))))) :named a414))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (=> (and (fun_app$i (less_eq$ ?v0) (collect$ (fun_app$ad uncurry$a (in_rel$ ?v1)))) (=> (fun_app$i (less_eq$ ?v0) ?v1) false)) false)) :named a415))
-(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$m (in_rel$ ?v0) ?v1) ?v2) (fun_app$i (member$ (pair$ ?v1 ?v2)) ?v0)) :pattern ((fun_app$l (fun_app$m (in_rel$ ?v0) ?v1) ?v2)))) :named a416))
+(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$m (in_rel$ ?v0) ?v1) ?v2) (fun_app$i (set.member$ (pair$ ?v1 ?v2)) ?v0)) :pattern ((fun_app$l (fun_app$m (in_rel$ ?v0) ?v1) ?v2)))) :named a416))
 (assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$)) (= (in_rel$ (collect$ (fun_app$ad uncurry$a ?v0))) ?v0)) :named a417))
 (assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (=> (fun_app$i (less_eq$ ?v0) ?v1) (fun_app$i (less_eq$ ?v0) (collect$ (fun_app$ad uncurry$a (in_rel$ ?v1)))))) :named a418))
-(assert (! (forall ((?v0 A_llist$) (?v1 A_llist_a_llist_prod_a_llist_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist$) (?v4 A_llist_a_llist_prod_a_llist_fun$) (?v5 A_llist_a_llist_prod_set$)) (=> (and (= ?v0 (fun_app$cp ?v1 ?v2)) (and (= ?v3 (fun_app$cp ?v4 ?v2)) (fun_app$i (member$ ?v2) ?v5))) (fun_app$i (member$ (pair$ ?v0 ?v3)) (image2$ ?v5 ?v1 ?v4)))) :named a419))
+(assert (! (forall ((?v0 A_llist$) (?v1 A_llist_a_llist_prod_a_llist_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist$) (?v4 A_llist_a_llist_prod_a_llist_fun$) (?v5 A_llist_a_llist_prod_set$)) (=> (and (= ?v0 (fun_app$cp ?v1 ?v2)) (and (= ?v3 (fun_app$cp ?v4 ?v2)) (fun_app$i (set.member$ ?v2) ?v5))) (fun_app$i (set.member$ (pair$ ?v0 ?v3)) (image2$ ?v5 ?v1 ?v4)))) :named a419))
 (assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (the$ (fun_app$ad uncurry$a (fun_app$aa (uwt$ ?v0) ?v1))) (pair$ ?v0 ?v1))) :named a420))
 (check-sat)
 
index d85f3d0948508ace897b649344f309e4d9c37c50..47cfae0efa563d7944bb1d5a5ce419e3c6405d23 100644 (file)
@@ -13,7 +13,7 @@
 (declare-fun grass_null$0 () (Loc Node))
 (declare-fun grass_read$0 ((Map (Loc Node) (Loc Node)) (Loc Node))
              (Loc Node))
-(declare-fun grass_emptyset$0 () (Set (Loc Node)))
+(declare-fun grass_set.empty$0 () (Set (Loc Node)))
 (declare-fun grass_singleton$0 ((Loc Node)) (Set (Loc Node)))
 (declare-fun grass_union$0 ((Set (Loc Node)) (Set (Loc Node)))
              (Set (Loc Node)))
@@ -71,7 +71,7 @@
               (not (grass_Btwn$0 next$0 res_2$0 grass_null$0 grass_null$0))
               Label$0))
           Label_2$0))
-(assert (forall ((x (Loc Node))) (not (grass_member$0 x grass_emptyset$0))))
+(assert (forall ((x (Loc Node))) (not (grass_member$0 x grass_set.empty$0))))
 (assert
         (forall ((y (Loc Node)) (x (Loc Node)))
                 (or (and (= x y) (grass_member$0 x (grass_singleton$0 y)))
 (assert (= (grass_read$0 next$0 elt$0) grass_null$0))
 (assert (= FP_Node$0 sk_?X_3$0))
 (assert (= FP_Caller_Node$0 (grass_union$0 FP_Node$0 FP_Caller_Node$0)))
-(assert (= grass_emptyset$0 (grass_intersection$0 sk_?X$0 sk_?X_2$0)))
-(assert (= grass_emptyset$0 grass_emptyset$0))
+(assert (= grass_set.empty$0 (grass_intersection$0 sk_?X$0 sk_?X_2$0)))
+(assert (= grass_set.empty$0 grass_set.empty$0))
 (assert (lseg$0 next$0 lst$0 grass_null$0 sk_?X$0))
 (assert
         (= FP_Caller_final_Node_2$0
 (assert
         (= (grass_known$1 (lseg$0 next$0 lst$0 grass_null$0 sk_?X$0))
           (grass_known$1 (lseg$0 next$0 lst$0 lst$0 sk_?X$0))))
-(assert (= (grass_intersection$0 sk_?X$0 sk_?X_2$0) grass_emptyset$0))
+(assert (= (grass_intersection$0 sk_?X$0 sk_?X_2$0) grass_set.empty$0))
 (assert
         (=
           (grass_union$0 (grass_intersection$0 Alloc_Node$0 FP_Node$0)
index 3f88dcb7286ac01c13689af6a58541449dec680b..61088eeeb646244674b69fb2db421bf3998196b1 100644 (file)
@@ -4,6 +4,6 @@
 (set-option :finite-model-find true)
 (set-option :fmf-bound-int true)
 (declare-fun X () (Set Int))
-(assert (= (card X) 3))
-(assert (forall ((z Int)) (=> (member z X) (and (> z 0) (< z 2)))))
-(check-sat-assuming ( (forall ((z Int)) (=> (member z X) (> z 0))) ))
+(assert (= (set.card X) 3))
+(assert (forall ((z Int)) (=> (set.member z X) (and (> z 0) (< z 2)))))
+(check-sat-assuming ( (forall ((z Int)) (=> (set.member z X) (> z 0))) ))
index ce5665f869655667cd76f48127014e99205b85d1..e612c2f2da791850c8feadf2bf98af4ebd17498d 100644 (file)
@@ -5,18 +5,18 @@
 (set-info :category "crafted")
 (set-info :status unsat)
 (declare-sort Set 0)
-(declare-fun member (Int Set) Bool)
-(declare-fun insert (Set Int) Set)
+(declare-fun set.member (Int Set) Bool)
+(declare-fun set.insert (Set Int) Set)
 (declare-fun delete (Set Int) Set)
 (declare-fun sup (Set) Int)
-(assert (forall ((?x Int) (?s Set)) (member ?x (insert ?s ?x))))
-(assert (forall ((?x Int) (?y Int) (?s Set)) (=> (not (= ?x ?y)) (= (member ?x (insert ?s ?y)) (member ?x ?s)))))
-(assert (forall ((?x Int) (?s Set)) (=> (not (member ?x ?s)) (= (delete ?s ?x) ?s))))
-(assert (forall ((?x Int) (?s Set)) (= (delete (insert ?s ?x) ?x) (delete ?s ?x))))
-(assert (forall ((?x Int) (?y Int) (?s Set)) (=> (not (= ?x ?y)) (= (delete (insert ?s ?y) ?x) (insert (delete ?s ?x) ?y)))))
-(assert (forall ((?s Set)) (member (sup ?s) ?s)))
-(assert (forall ((?s Set) (?x Int)) (=> (member ?x ?s) (<= ?x (sup ?s)))))
-(assert (forall ((?s Set) (?x Int)) (=> (< (sup ?s) ?x) (= (sup (insert ?s ?x)) ?x))))
+(assert (forall ((?x Int) (?s Set)) (set.member ?x (set.insert ?s ?x))))
+(assert (forall ((?x Int) (?y Int) (?s Set)) (=> (not (= ?x ?y)) (= (set.member ?x (set.insert ?s ?y)) (set.member ?x ?s)))))
+(assert (forall ((?x Int) (?s Set)) (=> (not (set.member ?x ?s)) (= (delete ?s ?x) ?s))))
+(assert (forall ((?x Int) (?s Set)) (= (delete (set.insert ?s ?x) ?x) (delete ?s ?x))))
+(assert (forall ((?x Int) (?y Int) (?s Set)) (=> (not (= ?x ?y)) (= (delete (set.insert ?s ?y) ?x) (set.insert (delete ?s ?x) ?y)))))
+(assert (forall ((?s Set)) (set.member (sup ?s) ?s)))
+(assert (forall ((?s Set) (?x Int)) (=> (set.member ?x ?s) (<= ?x (sup ?s)))))
+(assert (forall ((?s Set) (?x Int)) (=> (< (sup ?s) ?x) (= (sup (set.insert ?s ?x)) ?x))))
 (declare-fun arr () (Array Int Int))
 (declare-fun s0 () Set)
 (assert (forall ((?i Int)) (=> (> ?i 0) (< (select arr ?i) (sup s0)))))
@@ -24,7 +24,7 @@
 (declare-fun s1 () Set)
 (declare-fun g (Int) Int)
 (assert (forall ((?i Int)) (> (g ?i) 0)))
-(assert (= s1 (insert s0 (select arr (g i1)))))
+(assert (= s1 (set.insert s0 (select arr (g i1)))))
 (assert (not (= (sup s1) (sup s0))))
 (check-sat)
 (exit)
index bf0bb713099867caa0fd71e4e6161cbe58b190e9..209b213c16342e9cb56a0e13c2cbcd15e15d97a0 100644 (file)
@@ -5,22 +5,22 @@
 (set-info :status unsat)
 (declare-sort Set 0)
 (declare-sort Elem 0)
-(declare-fun member (Elem Set) Bool)
-(declare-fun subset (Set Set) Bool)
-(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (=> (and (member ?x ?s1) (subset ?s1 ?s2)) (member ?x ?s2))))
-(assert (forall ((?s1 Set) (?s2 Set)) (=> (not (subset ?s1 ?s2)) (exists ((?x Elem)) (and (member ?x ?s1) (not (member ?x ?s2)))))))
-(assert (forall ((?s1 Set) (?s2 Set)) (=> (forall ((?x Elem)) (=> (member ?x ?s1) (member ?x ?s2))) (subset ?s1 ?s2))))
+(declare-fun set.member (Elem Set) Bool)
+(declare-fun set.subset (Set Set) Bool)
+(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (=> (and (set.member ?x ?s1) (set.subset ?s1 ?s2)) (set.member ?x ?s2))))
+(assert (forall ((?s1 Set) (?s2 Set)) (=> (not (set.subset ?s1 ?s2)) (exists ((?x Elem)) (and (set.member ?x ?s1) (not (set.member ?x ?s2)))))))
+(assert (forall ((?s1 Set) (?s2 Set)) (=> (forall ((?x Elem)) (=> (set.member ?x ?s1) (set.member ?x ?s2))) (set.subset ?s1 ?s2))))
 (declare-fun seteq (Set Set) Bool)
 (assert (forall ((?s1 Set) (?s2 Set)) (= (seteq ?s1 ?s2) (= ?s1 ?s2))))
-(assert (forall ((?s1 Set) (?s2 Set)) (= (seteq ?s1 ?s2) (and (subset ?s1 ?s2) (subset ?s2 ?s1)))))
+(assert (forall ((?s1 Set) (?s2 Set)) (= (seteq ?s1 ?s2) (and (set.subset ?s1 ?s2) (set.subset ?s2 ?s1)))))
 (declare-fun union (Set Set) Set)
-(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (= (member ?x (union ?s1 ?s2)) (or (member ?x ?s1) (member ?x ?s2)))))
-(declare-fun intersection (Set Set) Set)
-(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (= (member ?x (intersection ?s1 ?s2)) (and (member ?x ?s1) (member ?x ?s2)))))
+(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (= (set.member ?x (union ?s1 ?s2)) (or (set.member ?x ?s1) (set.member ?x ?s2)))))
+(declare-fun set.intersection (Set Set) Set)
+(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (= (set.member ?x (set.intersection ?s1 ?s2)) (and (set.member ?x ?s1) (set.member ?x ?s2)))))
 (declare-fun difference (Set Set) Set)
-(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (= (member ?x (difference ?s1 ?s2)) (and (member ?x ?s1) (not (member ?x ?s2))))))
+(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (= (set.member ?x (difference ?s1 ?s2)) (and (set.member ?x ?s1) (not (set.member ?x ?s2))))))
 (declare-fun a () Set)
 (declare-fun b () Set)
-(assert (not (seteq (intersection a b) (intersection b a))))
+(assert (not (seteq (set.intersection a b) (set.intersection b a))))
 (check-sat)
 (exit)
index 08fd6025bcecff1152fa5bc63dddd7fd3059269e..0ea6faf271d622056909d750e258cdb9d9adf939 100644 (file)
@@ -4,15 +4,15 @@
 (declare-sort $$unsorted 0)
 (declare-fun in ($$unsorted $$unsorted) Bool)
 (declare-fun powerset ($$unsorted) $$unsorted)
-(declare-fun subset ($$unsorted $$unsorted) Bool)
+(declare-fun set.subset ($$unsorted $$unsorted) Bool)
 (declare-fun empty ($$unsorted) Bool)
 (declare-fun element ($$unsorted $$unsorted) Bool)
 (declare-fun empty_set () $$unsorted)
 (set-info :filename "SEU169+1")
 (assert (forall ((A $$unsorted) (B $$unsorted)) (or (not (in A B)) (not (in B A))) ))
-(assert (forall ((A $$unsorted) (B $$unsorted)) (= (= B (powerset A)) (forall ((C $$unsorted)) (= (in C B) (subset C A)) )) ))
+(assert (forall ((A $$unsorted) (B $$unsorted)) (= (= B (powerset A)) (forall ((C $$unsorted)) (= (in C B) (set.subset C A)) )) ))
 (assert (and (forall ((A $$unsorted) (B $$unsorted)) (or (empty A) (= (element B A) (in B A))) ) (forall ((A $$unsorted) (B $$unsorted)) (or (not (empty A)) (= (element B A) (empty B))) )))
-(assert (forall ((A $$unsorted) (B $$unsorted)) (= (subset A B) (forall ((C $$unsorted)) (or (not (in C A)) (in C B)) )) ))
+(assert (forall ((A $$unsorted) (B $$unsorted)) (= (set.subset A B) (forall ((C $$unsorted)) (or (not (in C A)) (in C B)) )) ))
 (assert (forall ((A $$unsorted)) (not (forall ((B $$unsorted)) (not (element B A)) )) ))
 (assert (forall ((A $$unsorted)) (not (empty (powerset A))) ))
 (assert (empty empty_set))
@@ -20,7 +20,7 @@
 (assert (forall ((A $$unsorted)) (or (empty A) (not (forall ((B $$unsorted)) (or (not (element B (powerset A))) (empty B)) ))) ))
 (assert (not (forall ((A $$unsorted)) (not (empty A)) )))
 (assert (not (forall ((A $$unsorted)) (empty A) )))
-(assert (forall ((A $$unsorted)) (subset A A) ))
+(assert (forall ((A $$unsorted)) (set.subset A A) ))
 (assert (forall ((A $$unsorted)) (or (not (empty A)) (= empty_set A)) ))
 (assert (forall ((A $$unsorted) (B $$unsorted)) (or (not (in A B)) (not (empty B))) ))
 (assert (forall ((A $$unsorted) (B $$unsorted)) (or (not (empty A)) (= A B) (not (empty B))) ))
index f810b00ffdcd786a84e5fffc4800bc03ba33f8e6..953589cc97b5928230877667b0e7180415d61604 100644 (file)
 (declare-fun snth$a (B_stream$ Nat$) B$)
 (declare-fun snth$b (A_stream_stream$ Nat$) A_stream$)
 (declare-fun snth$c (A_stream$ Nat$) A$)
-(declare-fun member$ (B_stream$ B_stream_set$) Bool)
+(declare-fun set.member$ (B_stream$ B_stream_set$) Bool)
 (declare-fun sdrop$a (Nat$ B_stream$) B_stream$)
 (declare-fun sdrop$b (Nat$ A_stream_stream$) A_stream_stream$)
 (declare-fun sdrop$c (Nat$ A_stream$) A_stream$)
 (declare-fun fun_app$ (B_b_stream_fun$ B$) B_stream$)
-(declare-fun member$a (B$ B_set$) Bool)
-(declare-fun member$b (A$ A_set$) Bool)
-(declare-fun member$c (A_stream$ A_stream_set$) Bool)
-(declare-fun member$d (B_stream_stream$ B_stream_stream_set$) Bool)
-(declare-fun member$e (A_stream_stream$ A_stream_stream_set$) Bool)
+(declare-fun set.member$a (B$ B_set$) Bool)
+(declare-fun set.member$b (A$ A_set$) Bool)
+(declare-fun set.member$c (A_stream$ A_stream_set$) Bool)
+(declare-fun set.member$d (B_stream_stream$ B_stream_stream_set$) Bool)
+(declare-fun set.member$e (A_stream_stream$ A_stream_stream_set$) Bool)
 (declare-fun streams$ (B_set$) B_stream_set$)
 (declare-fun fun_app$a (A_a_stream_fun$ A$) A_stream$)
 (declare-fun fun_app$b (B_a_fun$ B$) A$)
 (assert (! (forall ((?v0 A_a_fun$) (?v1 A_stream$) (?v2 A_stream$)) (= (= (fun_app$e (smap$b ?v0) ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$f ?v0 (snth$c ?v1 ?v3)) (snth$c ?v2 ?v3))))) :named a64))
 (assert (! (forall ((?v0 B_b_fun$) (?v1 B_stream$) (?v2 B_stream$)) (= (= (fun_app$c (smap$a ?v0) ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$d ?v0 (snth$a ?v1 ?v3)) (snth$a ?v2 ?v3))))) :named a65))
 (assert (! (forall ((?v0 B_a_fun$) (?v1 B_stream$) (?v2 A_stream$)) (= (= (smap$ ?v0 ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$b ?v0 (snth$a ?v1 ?v3)) (snth$c ?v2 ?v3))))) :named a66))
-(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_a_fun$) (?v3 A_set$)) (=> (and (member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (member$a ?v4 ?v1) (member$b (fun_app$b ?v2 ?v4) ?v3)))) (member$c (smap$ ?v2 ?v0) (streams$a ?v3)))) :named a67))
-(assert (! (forall ((?v0 A_stream$) (?v1 A_set$) (?v2 A_b_fun$) (?v3 B_set$)) (=> (and (member$c ?v0 (streams$a ?v1)) (forall ((?v4 A$)) (=> (member$b ?v4 ?v1) (member$a (fun_app$m ?v2 ?v4) ?v3)))) (member$ (smap$k ?v2 ?v0) (streams$ ?v3)))) :named a68))
-(assert (! (forall ((?v0 A_stream$) (?v1 A_set$) (?v2 A_a_fun$) (?v3 A_set$)) (=> (and (member$c ?v0 (streams$a ?v1)) (forall ((?v4 A$)) (=> (member$b ?v4 ?v1) (member$b (fun_app$f ?v2 ?v4) ?v3)))) (member$c (fun_app$e (smap$b ?v2) ?v0) (streams$a ?v3)))) :named a69))
-(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_b_fun$) (?v3 B_set$)) (=> (and (member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (member$a ?v4 ?v1) (member$a (fun_app$d ?v2 ?v4) ?v3)))) (member$ (fun_app$c (smap$a ?v2) ?v0) (streams$ ?v3)))) :named a70))
-(assert (! (forall ((?v0 B_stream_stream$) (?v1 B_stream_set$) (?v2 B_stream_b_fun$) (?v3 B_set$)) (=> (and (member$d ?v0 (streams$b ?v1)) (forall ((?v4 B_stream$)) (=> (member$ ?v4 ?v1) (member$a (fun_app$n ?v2 ?v4) ?v3)))) (member$ (smap$l ?v2 ?v0) (streams$ ?v3)))) :named a71))
-(assert (! (forall ((?v0 A_stream_stream$) (?v1 A_stream_set$) (?v2 A_stream_b_fun$) (?v3 B_set$)) (=> (and (member$e ?v0 (streams$c ?v1)) (forall ((?v4 A_stream$)) (=> (member$c ?v4 ?v1) (member$a (fun_app$o ?v2 ?v4) ?v3)))) (member$ (smap$m ?v2 ?v0) (streams$ ?v3)))) :named a72))
-(assert (! (forall ((?v0 B_stream_stream$) (?v1 B_stream_set$) (?v2 B_stream_a_fun$) (?v3 A_set$)) (=> (and (member$d ?v0 (streams$b ?v1)) (forall ((?v4 B_stream$)) (=> (member$ ?v4 ?v1) (member$b (fun_app$p ?v2 ?v4) ?v3)))) (member$c (smap$n ?v2 ?v0) (streams$a ?v3)))) :named a73))
-(assert (! (forall ((?v0 A_stream_stream$) (?v1 A_stream_set$) (?v2 A_stream_a_fun$) (?v3 A_set$)) (=> (and (member$e ?v0 (streams$c ?v1)) (forall ((?v4 A_stream$)) (=> (member$c ?v4 ?v1) (member$b (fun_app$q ?v2 ?v4) ?v3)))) (member$c (smap$o ?v2 ?v0) (streams$a ?v3)))) :named a74))
-(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_b_stream_fun$) (?v3 B_stream_set$)) (=> (and (member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (member$a ?v4 ?v1) (member$ (fun_app$ ?v2 ?v4) ?v3)))) (member$d (smap$g ?v2 ?v0) (streams$b ?v3)))) :named a75))
-(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_a_stream_fun$) (?v3 A_stream_set$)) (=> (and (member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (member$a ?v4 ?v1) (member$c (fun_app$k ?v2 ?v4) ?v3)))) (member$e (smap$h ?v2 ?v0) (streams$c ?v3)))) :named a76))
+(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_a_fun$) (?v3 A_set$)) (=> (and (set.member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (set.member$a ?v4 ?v1) (set.member$b (fun_app$b ?v2 ?v4) ?v3)))) (set.member$c (smap$ ?v2 ?v0) (streams$a ?v3)))) :named a67))
+(assert (! (forall ((?v0 A_stream$) (?v1 A_set$) (?v2 A_b_fun$) (?v3 B_set$)) (=> (and (set.member$c ?v0 (streams$a ?v1)) (forall ((?v4 A$)) (=> (set.member$b ?v4 ?v1) (set.member$a (fun_app$m ?v2 ?v4) ?v3)))) (set.member$ (smap$k ?v2 ?v0) (streams$ ?v3)))) :named a68))
+(assert (! (forall ((?v0 A_stream$) (?v1 A_set$) (?v2 A_a_fun$) (?v3 A_set$)) (=> (and (set.member$c ?v0 (streams$a ?v1)) (forall ((?v4 A$)) (=> (set.member$b ?v4 ?v1) (set.member$b (fun_app$f ?v2 ?v4) ?v3)))) (set.member$c (fun_app$e (smap$b ?v2) ?v0) (streams$a ?v3)))) :named a69))
+(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_b_fun$) (?v3 B_set$)) (=> (and (set.member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (set.member$a ?v4 ?v1) (set.member$a (fun_app$d ?v2 ?v4) ?v3)))) (set.member$ (fun_app$c (smap$a ?v2) ?v0) (streams$ ?v3)))) :named a70))
+(assert (! (forall ((?v0 B_stream_stream$) (?v1 B_stream_set$) (?v2 B_stream_b_fun$) (?v3 B_set$)) (=> (and (set.member$d ?v0 (streams$b ?v1)) (forall ((?v4 B_stream$)) (=> (set.member$ ?v4 ?v1) (set.member$a (fun_app$n ?v2 ?v4) ?v3)))) (set.member$ (smap$l ?v2 ?v0) (streams$ ?v3)))) :named a71))
+(assert (! (forall ((?v0 A_stream_stream$) (?v1 A_stream_set$) (?v2 A_stream_b_fun$) (?v3 B_set$)) (=> (and (set.member$e ?v0 (streams$c ?v1)) (forall ((?v4 A_stream$)) (=> (set.member$c ?v4 ?v1) (set.member$a (fun_app$o ?v2 ?v4) ?v3)))) (set.member$ (smap$m ?v2 ?v0) (streams$ ?v3)))) :named a72))
+(assert (! (forall ((?v0 B_stream_stream$) (?v1 B_stream_set$) (?v2 B_stream_a_fun$) (?v3 A_set$)) (=> (and (set.member$d ?v0 (streams$b ?v1)) (forall ((?v4 B_stream$)) (=> (set.member$ ?v4 ?v1) (set.member$b (fun_app$p ?v2 ?v4) ?v3)))) (set.member$c (smap$n ?v2 ?v0) (streams$a ?v3)))) :named a73))
+(assert (! (forall ((?v0 A_stream_stream$) (?v1 A_stream_set$) (?v2 A_stream_a_fun$) (?v3 A_set$)) (=> (and (set.member$e ?v0 (streams$c ?v1)) (forall ((?v4 A_stream$)) (=> (set.member$c ?v4 ?v1) (set.member$b (fun_app$q ?v2 ?v4) ?v3)))) (set.member$c (smap$o ?v2 ?v0) (streams$a ?v3)))) :named a74))
+(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_b_stream_fun$) (?v3 B_stream_set$)) (=> (and (set.member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (set.member$a ?v4 ?v1) (set.member$ (fun_app$ ?v2 ?v4) ?v3)))) (set.member$d (smap$g ?v2 ?v0) (streams$b ?v3)))) :named a75))
+(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_a_stream_fun$) (?v3 A_stream_set$)) (=> (and (set.member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (set.member$a ?v4 ?v1) (set.member$c (fun_app$k ?v2 ?v4) ?v3)))) (set.member$e (smap$h ?v2 ?v0) (streams$c ?v3)))) :named a76))
 (assert (! (forall ((?v0 B_b_fun$) (?v1 B$)) (= (shd$a (fun_app$ (siterate$ ?v0) ?v1)) ?v1)) :named a77))
 (assert (! (forall ((?v0 A_a_fun$) (?v1 A$)) (= (shd$ (fun_app$a (siterate$a ?v0) ?v1)) ?v1)) :named a78))
 (assert (! (forall ((?v0 B_b_fun$) (?v1 B$)) (= (stl$a (fun_app$ (siterate$ ?v0) ?v1)) (fun_app$ (siterate$ ?v0) (fun_app$d ?v0 ?v1)))) :named a79))
index 591303875f9a580b85ed86643d23de81251e6baf..783c90b780758467084056b06ff14732201d4df5 100644 (file)
 (declare-fun b1 () Atom)
 (declare-fun b1_tup () (Tuple Atom))
 (assert (= b1_tup (tuple b1)))
-(assert (member b1_tup Book))
+(assert (set.member b1_tup Book))
 (declare-fun b2 () Atom)
 (declare-fun b2_tup () (Tuple Atom))
 (assert (= b2_tup (tuple b2)))
-(assert (member b2_tup Book))
+(assert (set.member b2_tup Book))
 (declare-fun b3 () Atom)
 (declare-fun b3_tup () (Tuple Atom))
 (assert (= b3_tup (tuple b3)))
-(assert (member b3_tup Book))
+(assert (set.member b3_tup Book))
 (declare-fun m () Atom)
 (declare-fun m_tup () (Tuple Atom))
 (assert (= m_tup (tuple m)))
-(assert (member m_tup Name))
+(assert (set.member m_tup Name))
 (declare-fun t () Atom)
 (declare-fun t_tup () (Tuple Atom))
 (assert (= t_tup (tuple t)))
-(assert (member t_tup Target))
-(assert (= (join (singleton m_tup) (join (singleton b1_tup) addr)) (as emptyset (Set (Tuple Atom)))))
-(assert (= (join (singleton b2_tup) addr) (union (join (singleton b1_tup) addr) (singleton (tuple m t)))))
-(assert (= (join (singleton b3_tup) addr) (setminus (join (singleton b2_tup) addr) (singleton (tuple m t)))))
-(assert (not (= (join (singleton b1_tup) addr) (join (singleton b3_tup) addr))))
+(assert (set.member t_tup Target))
+(assert (= (rel.join (set.singleton m_tup) (rel.join (set.singleton b1_tup) addr)) (as set.empty (Set (Tuple Atom)))))
+(assert (= (rel.join (set.singleton b2_tup) addr) (set.union (rel.join (set.singleton b1_tup) addr) (set.singleton (tuple m t)))))
+(assert (= (rel.join (set.singleton b3_tup) addr) (set.minus (rel.join (set.singleton b2_tup) addr) (set.singleton (tuple m t)))))
+(assert (not (= (rel.join (set.singleton b1_tup) addr) (rel.join (set.singleton b3_tup) addr))))
 (check-sat)
index a7cfcaf38092903aaed84c741ef5cf576a0b72eb..3f5c39b5d37cbe034b6056f4d0da5a13c3836993 100644 (file)
 (declare-fun b1 () Atom)
 (declare-fun b1_tup () (Tuple Atom))
 (assert (= b1_tup (tuple b1)))
-(assert (member b1_tup Book))
+(assert (set.member b1_tup Book))
 (declare-fun b2 () Atom)
 (declare-fun b2_tup () (Tuple Atom))
 (assert (= b2_tup (tuple b2)))
-(assert (member b2_tup Book))
+(assert (set.member b2_tup Book))
 (declare-fun b3 () Atom)
 (declare-fun b3_tup () (Tuple Atom))
 (assert (= b3_tup (tuple b3)))
-(assert (member b3_tup Book))
+(assert (set.member b3_tup Book))
 (declare-fun m () Atom)
 (declare-fun m_tup () (Tuple Atom))
 (assert (= m_tup (tuple m)))
-(assert (member m_tup Name))
+(assert (set.member m_tup Name))
 (declare-fun t () Atom)
 (declare-fun t_tup () (Tuple Atom))
 (assert (= t_tup (tuple t)))
-(assert (member t_tup Target))
-(assert (= (join (singleton m_tup) (join (singleton b1_tup) addr)) (as emptyset (Set (Tuple Atom)))))
-(assert (= (join (singleton b2_tup) addr) (union (join (singleton b1_tup) addr) (singleton (tuple m t)))))
-(assert (= (join (singleton b3_tup) addr) (setminus (join (singleton b2_tup) addr) (singleton (tuple m t)))))
-(assert (= (join (singleton b1_tup) addr) (join (singleton b3_tup) addr)))
+(assert (set.member t_tup Target))
+(assert (= (rel.join (set.singleton m_tup) (rel.join (set.singleton b1_tup) addr)) (as set.empty (Set (Tuple Atom)))))
+(assert (= (rel.join (set.singleton b2_tup) addr) (set.union (rel.join (set.singleton b1_tup) addr) (set.singleton (tuple m t)))))
+(assert (= (rel.join (set.singleton b3_tup) addr) (set.minus (rel.join (set.singleton b2_tup) addr) (set.singleton (tuple m t)))))
+(assert (= (rel.join (set.singleton b1_tup) addr) (rel.join (set.singleton b3_tup) addr)))
 (check-sat)
index ba4dac3865b8128d375d25318fdc940fe292fe63..09858de2414695bbd0e6be41db81c72c3a0477e9 100644 (file)
@@ -11,8 +11,8 @@
 (declare-fun d () (_ BitVec 1))
 (declare-fun e () (_ BitVec 1))
 (assert (not (= b c)))
-(assert (member (tuple a u b) x))
-(assert (member (tuple a u c) x))
-(assert (member (tuple d u a) y))
-(assert (not (member (tuple a u u a) (join x y))))
+(assert (set.member (tuple a u b) x))
+(assert (set.member (tuple a u c) x))
+(assert (set.member (tuple d u a) y))
+(assert (not (set.member (tuple a u u a) (rel.join x y))))
 (check-sat)
index 696c8919e099c2c370b3f137352364cc9cf56ffb..cec025723740e00bba57ab603c96c4389f215e70 100644 (file)
@@ -12,8 +12,8 @@
 (declare-fun e () (_ BitVec 1))
 (declare-fun u () unitb)
 (assert (not (= b c)))
-(assert (member (tuple a u b) x))
-(assert (member (tuple a u c) x))
-(assert (member (tuple d u a) y))
-(assert (not (member (tuple a u u a) (join x y))))
+(assert (set.member (tuple a u b) x))
+(assert (set.member (tuple a u c) x))
+(assert (set.member (tuple d u a) y))
+(assert (not (set.member (tuple a u u a) (rel.join x y))))
 (check-sat)
index 1df5ee38b7d4b9f647253fb4a09537444c595786..c317baedf0fd793f257925f2a5994bba2ecb0c2e 100644 (file)
@@ -10,8 +10,8 @@
 (declare-fun d () (_ BitVec 1))
 (declare-fun e () (_ BitVec 1))
 (assert (not (= b c)))
-(assert (member (tuple a b) x))
-(assert (member (tuple a c) x))
-(assert (member (tuple d a) y))
-(assert (not (member (tuple a a) (join x y))))
+(assert (set.member (tuple a b) x))
+(assert (set.member (tuple a c) x))
+(assert (set.member (tuple d a) y))
+(assert (not (set.member (tuple a a) (rel.join x y))))
 (check-sat)
index a653f887b0ed0749957789baa96579b79b087c00..367a44c11f26a3c49ef104d5ed1dab588c9cd512 100644 (file)
@@ -10,9 +10,9 @@
 (declare-fun d () (Tuple (_ BitVec 1) (_ BitVec 1)))
 (assert (distinct a b))
 (assert (distinct c d))
-(assert (member a x))
-(assert (member b x))
-(assert (member a y))
-(assert (member b y))
-(assert (let ((_let_1 (join x y))) (and (not (member c _let_1)) (not (member d _let_1)))))
+(assert (set.member a x))
+(assert (set.member b x))
+(assert (set.member a y))
+(assert (set.member b y))
+(assert (let ((_let_1 (rel.join x y))) (and (not (set.member c _let_1)) (not (set.member d _let_1)))))
 (check-sat)
index d5d9aa40fd237bc0d950f9e5ee85d9c0061b46e0..262826b3cc0578dd4e52e1ac22470ca979e3cb61 100644 (file)
@@ -12,9 +12,9 @@
 (declare-fun e () (Tuple (_ BitVec 1) (_ BitVec 1)))
 (assert (distinct a b))
 (assert (distinct c d e))
-(assert (member a x))
-(assert (member b x))
-(assert (member a y))
-(assert (member b y))
-(assert (let ((_let_1 (join x y))) (and (and (not (member c _let_1)) (not (member d _let_1))) (not (member e _let_1)))))
+(assert (set.member a x))
+(assert (set.member b x))
+(assert (set.member a y))
+(assert (set.member b y))
+(assert (let ((_let_1 (rel.join x y))) (and (and (not (set.member c _let_1)) (not (set.member d _let_1))) (not (set.member e _let_1)))))
 (check-sat)
index 005737b36e60a21b778d7a75eb78480e43455e8a..9ea472819f665d5a44d5460991bf356d8730e63c 100644 (file)
@@ -10,8 +10,8 @@
 (declare-fun d () (_ BitVec 2))
 (declare-fun e () (_ BitVec 2))
 (assert (not (= b c)))
-(assert (member (tuple a b) x))
-(assert (member (tuple a c) x))
-(assert (member (tuple d a) y))
-(assert (not (member (tuple a a) (join x y))))
+(assert (set.member (tuple a b) x))
+(assert (set.member (tuple a c) x))
+(assert (set.member (tuple d a) y))
+(assert (not (set.member (tuple a a) (rel.join x y))))
 (check-sat)
index 55f181acd688dbfae69871b79a05ce1c07831f8c..8406b4ab8154b1b36960010c86601fa53ff2ee75 100644 (file)
 (declare-fun s1 () H_TYPE)
 (declare-fun s2 () H_TYPE)
 (declare-fun s3 () H_TYPE)
-(assert (= h0 (singleton (tuple s0))))
-(assert (= h1 (singleton (tuple s1))))
-(assert (= h2 (singleton (tuple s2))))
-(assert (= h3 (singleton (tuple s3))))
+(assert (= h0 (set.singleton (tuple s0))))
+(assert (= h1 (set.singleton (tuple s1))))
+(assert (= h2 (set.singleton (tuple s2))))
+(assert (= h3 (set.singleton (tuple s3))))
 (declare-fun ref () (Set (Tuple H_TYPE Obj Obj)))
 (declare-fun mark () (Set (Tuple H_TYPE Obj)))
 (declare-fun empty_obj_set () (Set (Tuple Obj)))
-(assert (= empty_obj_set (as emptyset (Set (Tuple Obj)))))
+(assert (= empty_obj_set (as set.empty (Set (Tuple Obj)))))
 (declare-fun root () Obj)
 (declare-fun live () Obj)
-(assert (= (join h1 mark) empty_obj_set))
-(assert (subset (join h0 ref) (join h1 ref)))
-(assert (forall ((n Obj)) (=> (member (tuple root n) (tclosure (join h1 ref))) (member (tuple n) (join h2 mark)))))
-(assert (subset (join h1 ref) (join h2 ref)))
-(assert (forall ((n Obj)) (let ((_let_1 (tuple n))) (=> (not (member _let_1 (join h2 mark))) (= (join (singleton _let_1) (join h3 ref)) empty_obj_set)))))
-(assert (forall ((n Obj)) (let ((_let_1 (tuple n))) (let ((_let_2 (singleton _let_1))) (=> (member _let_1 (join h2 mark)) (= (join _let_2 (join h3 ref)) (join _let_2 (join h2 ref))))))))
-(assert (member (tuple root live) (tclosure (join h0 ref))))
-(assert (let ((_let_1 (singleton (tuple live)))) (not (subset (join _let_1 (join h0 ref)) (join _let_1 (join h3 ref))))))
+(assert (= (rel.join h1 mark) empty_obj_set))
+(assert (set.subset (rel.join h0 ref) (rel.join h1 ref)))
+(assert (forall ((n Obj)) (=> (set.member (tuple root n) (rel.tclosure (rel.join h1 ref))) (set.member (tuple n) (rel.join h2 mark)))))
+(assert (set.subset (rel.join h1 ref) (rel.join h2 ref)))
+(assert (forall ((n Obj)) (let ((_let_1 (tuple n))) (=> (not (set.member _let_1 (rel.join h2 mark))) (= (rel.join (set.singleton _let_1) (rel.join h3 ref)) empty_obj_set)))))
+(assert (forall ((n Obj)) (let ((_let_1 (tuple n))) (let ((_let_2 (set.singleton _let_1))) (=> (set.member _let_1 (rel.join h2 mark)) (= (rel.join _let_2 (rel.join h3 ref)) (rel.join _let_2 (rel.join h2 ref))))))))
+(assert (set.member (tuple root live) (rel.tclosure (rel.join h0 ref))))
+(assert (let ((_let_1 (set.singleton (tuple live)))) (not (set.subset (rel.join _let_1 (rel.join h0 ref)) (rel.join _let_1 (rel.join h3 ref))))))
 (check-sat)
index 305476798b795a8c4aca1e8a417c98d4e99359c1..55daa9a41217e1bd66545e906d36d21b46f046a5 100644 (file)
 (declare-fun b () Atom)
 (declare-fun c () Atom)
 (declare-fun d () Atom)
-(assert (= univ (as univset (Set (Tuple Atom)))))
-(assert (= univ2 (as univset (Set (Tuple Atom Atom)))))
-(assert (= univ2 (product univ univ)))
-(assert (member (tuple a b) x))
-(assert (member (tuple c d) x))
+(assert (= univ (as set.universe (Set (Tuple Atom)))))
+(assert (= univ2 (as set.universe (Set (Tuple Atom Atom)))))
+(assert (= univ2 (rel.product univ univ)))
+(assert (set.member (tuple a b) x))
+(assert (set.member (tuple c d) x))
 (assert (not (= a b)))
-(assert (subset (iden univ) x))
+(assert (set.subset (rel.iden univ) x))
 (check-sat)
index 60696f7067ee3dd6574506fbe7c32a10311c8f9a..f4203e5eca40758b3d849f57ac246efb5d2bdd64 100644 (file)
@@ -9,13 +9,13 @@
 
 (declare-fun w () (Set (Tuple Int unit)))
 (declare-fun z () (Set (Tuple unit Int)))
-(assert (let ((_let_1 (join w z))) (let ((_let_2 (join x y))) (and (= _let_2 _let_1) (= _let_2 (transpose _let_1))))))
-(assert (member (tuple 0 1) (join x y)))
+(assert (let ((_let_1 (rel.join w z))) (let ((_let_2 (rel.join x y))) (and (= _let_2 _let_1) (= _let_2 (rel.transpose _let_1))))))
+(assert (set.member (tuple 0 1) (rel.join x y)))
 (declare-fun t () Int)
 (assert (and (>= t 0) (<= t 1)))
 (declare-fun s () Int)
 (assert (and (>= s 0) (<= s 1)))
 (assert (= (+ s t) 1))
-(assert (member (tuple s u) w))
-(assert (not (member (tuple u t) z)))
+(assert (set.member (tuple s u) w))
+(assert (not (set.member (tuple u t) z)))
 (check-sat)
index 0e510c77abc73ad3b7b85d9655c356ebdee1d8bb..bad15f3c88ba29e85fc801f4cab6eaa80eb8a9b0 100644 (file)
@@ -9,13 +9,13 @@
 
 (declare-fun w () (Set (Tuple Int unit)))
 (declare-fun z () (Set (Tuple unit Int)))
-(assert (let ((_let_1 (join w z))) (let ((_let_2 (join x y))) (or (= _let_2 _let_1) (= _let_2 (transpose _let_1))))))
-(assert (member (tuple 0 1) (join x y)))
+(assert (let ((_let_1 (rel.join w z))) (let ((_let_2 (rel.join x y))) (or (= _let_2 _let_1) (= _let_2 (rel.transpose _let_1))))))
+(assert (set.member (tuple 0 1) (rel.join x y)))
 (declare-fun t () Int)
 (assert (and (>= t 0) (<= t 1)))
 (declare-fun s () Int)
 (assert (and (>= s 0) (<= s 1)))
 (assert (= (+ s t) 1))
-(assert (member (tuple s u) w))
-(assert (not (member (tuple u t) z)))
+(assert (set.member (tuple s u) w))
+(assert (not (set.member (tuple u t) z)))
 (check-sat)
index ae33348bd8d2746841e5cc76b18ff514fb1a9db7..1918e2ad46c917d77b6574294377eb87c8c1ac92 100644 (file)
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
 (declare-fun b () Int)
-(assert (member (tuple 1 7) x))
-(assert (member z x))
-(assert (member (tuple 7 5) y))
-(assert (= t (join_image x 2)))
-(assert (member (tuple 3) (join_image x 2)))
-(assert (= u (join_image x 1)))
-(assert (member (tuple 4) (join_image x 2)))
-(assert (member (tuple b) (join_image x 1)))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member z x))
+(assert (set.member (tuple 7 5) y))
+(assert (= t (rel.join_image x 2)))
+(assert (set.member (tuple 3) (rel.join_image x 2)))
+(assert (= u (rel.join_image x 1)))
+(assert (set.member (tuple 4) (rel.join_image x 2)))
+(assert (set.member (tuple b) (rel.join_image x 1)))
 (check-sat)
index 86fc766705ad8a37e38d22f5ab2f2a82d77aa364..6c822db5b8c1de3533e68f3f37e835708006c04b 100644 (file)
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 1 5)))
 (declare-fun b () Int)
-(assert (member (tuple 1 7) x))
-(assert (member z x))
-(assert (member (tuple 7 5) y))
-(assert (= t (join_image x 2)))
-(assert (= univ (join_image x 0)))
-(assert (member (tuple 100) t))
-(assert (not (member (tuple 3) univ)))
-(assert (= u (join_image x 1)))
-(assert (member (tuple 4) (join_image x 2)))
-(assert (member (tuple b) (join_image x 1)))
+(assert (set.member (tuple 1 7) x))
+(assert (set.member z x))
+(assert (set.member (tuple 7 5) y))
+(assert (= t (rel.join_image x 2)))
+(assert (= univ (rel.join_image x 0)))
+(assert (set.member (tuple 100) t))
+(assert (not (set.member (tuple 3) univ)))
+(assert (= u (rel.join_image x 1)))
+(assert (set.member (tuple 4) (rel.join_image x 2)))
+(assert (set.member (tuple b) (rel.join_image x 1)))
 (check-sat)
index 4d7c560009a2d9995a93f3e7a109242530d7858f..457e66cef51d7dbf903ad3f8edb0572469050e4f 100644 (file)
@@ -12,7 +12,7 @@
 (declare-fun c () Atom)
 (declare-fun d () Atom)
 (declare-fun e () Atom)
-(assert (member (tuple a) (join_image x 2)))
-(assert (= x (union (union (singleton (tuple b c)) (singleton (tuple d e))) (singleton (tuple c e)))))
+(assert (set.member (tuple a) (rel.join_image x 2)))
+(assert (= x (set.union (set.union (set.singleton (tuple b c)) (set.singleton (tuple d e))) (set.singleton (tuple c e)))))
 (assert (not (= a b)))
 (check-sat)
index dc940a43b184ba0c762bcc277f874816659bf907..171623d194bbfa3fd48688a9bbba1289dca24e2e 100644 (file)
@@ -12,8 +12,8 @@
 (declare-fun c () Atom)
 (declare-fun d () Atom)
 (declare-fun e () Atom)
-(assert (member (tuple a) (join_image x 2)))
-(assert (= t (join_image x 2)))
-(assert (= x (union (union (singleton (tuple b c)) (singleton (tuple d e))) (singleton (tuple c e)))))
-(assert (member (tuple c) t))
+(assert (set.member (tuple a) (rel.join_image x 2)))
+(assert (= t (rel.join_image x 2)))
+(assert (= x (set.union (set.union (set.singleton (tuple b c)) (set.singleton (tuple d e))) (set.singleton (tuple c e)))))
+(assert (set.member (tuple c) t))
 (check-sat)
index 527770994f1b81aa7f20e3a034a70ba477d44a0c..56d45607f531f9df668264c2e50df0eff122bd74 100644 (file)
 (declare-fun e () Atom)
 (declare-fun f () Atom)
 (declare-fun g () Atom)
-(assert (member (tuple a) (join_image x 2)))
-(assert (member (tuple a) (join_image y 3)))
-(assert (= x (union (union (union (union (singleton (tuple f g)) (singleton (tuple b c))) (singleton (tuple d e))) (singleton (tuple c e))) (singleton (tuple f b)))))
-(assert (member (tuple a f) x))
-(assert (member (tuple a f) y))
+(assert (set.member (tuple a) (rel.join_image x 2)))
+(assert (set.member (tuple a) (rel.join_image y 3)))
+(assert (= x (set.union (set.union (set.union (set.union (set.singleton (tuple f g)) (set.singleton (tuple b c))) (set.singleton (tuple d e))) (set.singleton (tuple c e))) (set.singleton (tuple f b)))))
+(assert (set.member (tuple a f) x))
+(assert (set.member (tuple a f) y))
 (assert (= x y))
 (assert (not (= a b)))
-(assert (not (member (tuple d) (join_image x 2))))
+(assert (not (set.member (tuple d) (rel.join_image x 2))))
 (assert (= f d))
 (check-sat)
index 0d563415ba1e29bd28c4b17d1b27ed1241111f3f..a20218fc16bea9ca6ca17bb0ea5c024425c56649 100644 (file)
@@ -14,9 +14,9 @@
 (declare-fun e () Atom)
 (declare-fun f () Atom)
 (declare-fun g () Atom)
-(assert (member (tuple a) (join_image x 2)))
-(assert (member (tuple a) (join_image y 1)))
-(assert (= y (union (union (union (singleton (tuple f g)) (singleton (tuple b c))) (singleton (tuple d e))) (singleton (tuple c e)))))
-(assert (= x (union (union (union (singleton (tuple f g)) (singleton (tuple b c))) (singleton (tuple d e))) (singleton (tuple c e)))))
+(assert (set.member (tuple a) (rel.join_image x 2)))
+(assert (set.member (tuple a) (rel.join_image y 1)))
+(assert (= y (set.union (set.union (set.union (set.singleton (tuple f g)) (set.singleton (tuple b c))) (set.singleton (tuple d e))) (set.singleton (tuple c e)))))
+(assert (= x (set.union (set.union (set.union (set.singleton (tuple f g)) (set.singleton (tuple b c))) (set.singleton (tuple d e))) (set.singleton (tuple c e)))))
 (assert (or (not (= a b)) (not (= a f))))
 (check-sat)
index 088976c2bbe1ca5b59645d7c95027778a80f3de1..738ccf8e8c92ee5fd9fd6b3d5e3e10f42bd1f166 100644 (file)
 (declare-fun w1 () (Set (Tuple Int Int)))
 (declare-fun z2 () (Set (Tuple Int Int)))
 (declare-fun w2 () (Set (Tuple Int Int)))
-(assert (not (= z (product x y))))
-(assert (member (tuple 0 1 2 3) z))
-(assert (member (tuple 0 1) z1))
-(assert (member (tuple 0 1) z2))
-(assert (member (tuple 2 3) w1))
-(assert (member (tuple 2 3) w2))
+(assert (not (= z (rel.product x y))))
+(assert (set.member (tuple 0 1 2 3) z))
+(assert (set.member (tuple 0 1) z1))
+(assert (set.member (tuple 0 1) z2))
+(assert (set.member (tuple 2 3) w1))
+(assert (set.member (tuple 2 3) w2))
 (assert (or (and (= x z1) (= y w1)) (and (= x z2) (= y w2))))
 (check-sat)
index e5425977841443bc629aeebd17193d90811fc532..d9add50adbf02710462c425040cb8d628ea0c021 100644 (file)
 (declare-fun z2 () (Set (Tuple Int Int)))
 (declare-fun w2 () (Set (Tuple Int Int)))
 (declare-fun P ((Set (Tuple Int Int Int Int))) Bool)
-(assert (= z (product x y)))
+(assert (= z (rel.product x y)))
 (assert (P z))
-(assert (not (P (singleton (tuple 0 1 2 3)))))
-(assert (member (tuple 0 1) z1))
-(assert (member (tuple 0 1) z2))
-(assert (member (tuple 2 3) w1))
-(assert (member (tuple 2 3) w2))
+(assert (not (P (set.singleton (tuple 0 1 2 3)))))
+(assert (set.member (tuple 0 1) z1))
+(assert (set.member (tuple 0 1) z2))
+(assert (set.member (tuple 2 3) w1))
+(assert (set.member (tuple 2 3) w2))
 (assert (or (and (= x z1) (= y w1)) (and (= x z2) (= y w2))))
 (check-sat)
index 185c06502255ebb11a1201981af0d57d0ddcbcf0..dfb3b0750a30621b9d217e01e9764ac88f39c1d4 100644 (file)
@@ -4,5 +4,5 @@
 (declare-fun b () (Set (Tuple Int Int)))
 (declare-fun c () Int)
 (declare-fun d () (Tuple Int Int))
-(assert (and (= a (singleton (tuple (+ c 1) 1))) (= (tclosure b) (join a a))))
+(assert (and (= a (set.singleton (tuple (+ c 1) 1))) (= (rel.tclosure b) (rel.join a a))))
 (check-sat)
index 1cb91e94ca146ae509e3408fb7ccd2b4f65b2bdc..4e4f2d534554ab58b0e9baf84b6448ba197c06e3 100644 (file)
@@ -2,10 +2,10 @@
 (set-info :status sat)
 (declare-fun b () (Set (Tuple Int Int)))
 (assert 
-(= (join b (tclosure (join b b))) (as emptyset (Set (Tuple Int Int))))
+(= (rel.join b (rel.tclosure (rel.join b b))) (as set.empty (Set (Tuple Int Int))))
 )
 (assert
-(distinct b (as emptyset (Set (Tuple Int Int))))
+(distinct b (as set.empty (Set (Tuple Int Int))))
 )
-(assert (= (join b b) (as emptyset (Set (Tuple Int Int)))))
+(assert (= (rel.join b b) (as set.empty (Set (Tuple Int Int)))))
 (check-sat)
index 7955cf532eeb0fb716e3d5f344fc89e1c8eeeede..7e80fdd70a12994dd35634665ddbcf66c5b028fb 100644 (file)
@@ -9,23 +9,23 @@
 (declare-fun w () (Set (Tuple Int Int)))
 (declare-fun f () (Tuple Int Int))
 (assert (= f (tuple 3 1)))
-(assert (member f x))
+(assert (set.member f x))
 (declare-fun g () (Tuple Int Int))
 (assert (= g (tuple 1 3)))
-(assert (member g y))
+(assert (set.member g y))
 (declare-fun h () (Tuple Int Int))
 (assert (= h (tuple 3 5)))
-(assert (member h x))
-(assert (member h y))
-(assert (= r (join x y)))
+(assert (set.member h x))
+(assert (set.member h y))
+(assert (= r (rel.join x y)))
 (declare-fun e () (Tuple Int Int))
-(assert (not (member e r)))
-(assert (not (= z (intersection x y))))
-(assert (= z (setminus x y)))
-(assert (subset x y))
-(assert (member e (join r z)))
-(assert (member e x))
-(assert (member e (intersection x y)))
+(assert (not (set.member e r)))
+(assert (not (= z (set.intersection x y))))
+(assert (= z (set.minus x y)))
+(assert (set.subset x y))
+(assert (set.member e (rel.join r z)))
+(assert (set.member e x))
+(assert (set.member e (set.intersection x y)))
 (push 1)
 
 (assert true)
index 865105a1b6f893f734ce3b8107696c35b8038b47..9a35f336e3f8e26d149f8459a74cfff56655f548 100644 (file)
@@ -9,27 +9,27 @@
 (declare-fun w () (Set (Tuple Int Int)))
 (declare-fun f () (Tuple Int Int))
 (assert (= f (tuple 3 1)))
-(assert (member f x))
+(assert (set.member f x))
 (declare-fun g () (Tuple Int Int))
 (assert (= g (tuple 1 3)))
-(assert (member g y))
+(assert (set.member g y))
 (declare-fun h () (Tuple Int Int))
 (assert (= h (tuple 3 5)))
-(assert (member h x))
-(assert (member h y))
-(assert (= r (join x y)))
+(assert (set.member h x))
+(assert (set.member h y))
+(assert (= r (rel.join x y)))
 (declare-fun a () Int)
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple a a)))
-(assert (= w (singleton e)))
-(assert (subset (transpose w) y))
-(assert (not (member e r)))
-(assert (not (= z (intersection x y))))
-(assert (= z (setminus x y)))
-(assert (subset x y))
-(assert (member e (join r z)))
-(assert (member e x))
-(assert (member e (intersection x y)))
+(assert (= w (set.singleton e)))
+(assert (set.subset (rel.transpose w) y))
+(assert (not (set.member e r)))
+(assert (not (= z (set.intersection x y))))
+(assert (= z (set.minus x y)))
+(assert (set.subset x y))
+(assert (set.member e (rel.join r z)))
+(assert (set.member e x))
+(assert (set.member e (set.intersection x y)))
 (push 1)
 
 (assert true)
index 69ec8046ef6748e9213aa6e96e994d7036f2201a..fc2d73235d6e93fe48fce31cbf132301bc839fab 100644 (file)
 (declare-fun w () (Set (Tuple Int Int)))
 (declare-fun f () (Tuple Int Int))
 (assert (= f (tuple 3 1)))
-(assert (member f x))
+(assert (set.member f x))
 (declare-fun g () (Tuple Int Int))
 (assert (= g (tuple 1 3)))
-(assert (member g y))
+(assert (set.member g y))
 (declare-fun h () (Tuple Int Int))
 (assert (= h (tuple 3 5)))
-(assert (member h x))
-(assert (member h y))
-(assert (= r (join x y)))
+(assert (set.member h x))
+(assert (set.member h y))
+(assert (= r (rel.join x y)))
 (declare-fun a () (Tuple Int))
 (assert (= a (tuple 1)))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 1 1)))
-(assert (let ((_let_1 (singleton a))) (= w (product _let_1 _let_1))))
-(assert (subset (transpose w) y))
-(assert (not (member e r)))
-(assert (not (= z (intersection x y))))
-(assert (= z (setminus x y)))
-(assert (subset x y))
-(assert (member e (join r z)))
-(assert (member e x))
-(assert (member e (intersection x y)))
+(assert (let ((_let_1 (set.singleton a))) (= w (rel.product _let_1 _let_1))))
+(assert (set.subset (rel.transpose w) y))
+(assert (not (set.member e r)))
+(assert (not (= z (set.intersection x y))))
+(assert (= z (set.minus x y)))
+(assert (set.subset x y))
+(assert (set.member e (rel.join r z)))
+(assert (set.member e x))
+(assert (set.member e (set.intersection x y)))
 (push 1)
 
 (assert true)
index 79cfc078fe343f19f0f9ff0a272b5ce3c948fe27..77a5f38fde39ee73826c9441e4185de0b85f9f8e 100644 (file)
 (declare-fun r2 () (Set (Tuple Int Int)))
 (declare-fun d () (Tuple Int Int))
 (assert (= d (tuple 1 3)))
-(assert (member (tuple 1 3) y))
+(assert (set.member (tuple 1 3) y))
 (declare-fun a () (Tuple Int Int))
-(assert (member a x))
+(assert (set.member a x))
 (declare-fun e () (Tuple Int Int))
 (assert (= e (tuple 4 3)))
-(assert (= r (join x y)))
-(assert (= r2 (product w z)))
-(assert (not (member e r)))
+(assert (= r (rel.join x y)))
+(assert (= r2 (rel.product w z)))
+(assert (not (set.member e r)))
 (assert (not (= r r2)))
 (check-sat)
index d56f72e7709378bf0161bceed5e6b5fbe2b27876..e80fe01e2555ac138e34f2c5bcceeee2f52b7401 100644 (file)
 (declare-fun r () (Set (Tuple Int Int)))
 (declare-fun a11 () (Tuple Int Int))
 (assert (= a11 (tuple 1 1)))
-(assert (member a11 x))
+(assert (set.member a11 x))
 (declare-fun a12 () (Tuple Int Int))
 (assert (= a12 (tuple 1 2)))
-(assert (member a12 x))
+(assert (set.member a12 x))
 (declare-fun a13 () (Tuple Int Int))
 (assert (= a13 (tuple 1 3)))
-(assert (member a13 x))
+(assert (set.member a13 x))
 (declare-fun a14 () (Tuple Int Int))
 (assert (= a14 (tuple 1 4)))
-(assert (member a14 x))
+(assert (set.member a14 x))
 (declare-fun a15 () (Tuple Int Int))
 (assert (= a15 (tuple 1 5)))
-(assert (member a15 x))
+(assert (set.member a15 x))
 (declare-fun a16 () (Tuple Int Int))
 (assert (= a16 (tuple 1 6)))
-(assert (member a16 x))
+(assert (set.member a16 x))
 (declare-fun a17 () (Tuple Int Int))
 (assert (= a17 (tuple 1 7)))
-(assert (member a17 x))
+(assert (set.member a17 x))
 (declare-fun a18 () (Tuple Int Int))
 (assert (= a18 (tuple 1 8)))
-(assert (member a18 x))
+(assert (set.member a18 x))
 (declare-fun a19 () (Tuple Int Int))
 (assert (= a19 (tuple 1 9)))
-(assert (member a19 x))
+(assert (set.member a19 x))
 (declare-fun a110 () (Tuple Int Int))
 (assert (= a110 (tuple 1 10)))
-(assert (member a110 x))
+(assert (set.member a110 x))
 (declare-fun a21 () (Tuple Int Int))
 (assert (= a21 (tuple 2 1)))
-(assert (member a21 x))
+(assert (set.member a21 x))
 (declare-fun a22 () (Tuple Int Int))
 (assert (= a22 (tuple 2 2)))
-(assert (member a22 x))
+(assert (set.member a22 x))
 (declare-fun a23 () (Tuple Int Int))
 (assert (= a23 (tuple 2 3)))
-(assert (member a23 x))
+(assert (set.member a23 x))
 (declare-fun a24 () (Tuple Int Int))
 (assert (= a24 (tuple 2 4)))
-(assert (member a24 x))
+(assert (set.member a24 x))
 (declare-fun a25 () (Tuple Int Int))
 (assert (= a25 (tuple 2 5)))
-(assert (member a25 x))
+(assert (set.member a25 x))
 (declare-fun a26 () (Tuple Int Int))
 (assert (= a26 (tuple 2 6)))
-(assert (member a26 x))
+(assert (set.member a26 x))
 (declare-fun a27 () (Tuple Int Int))
 (assert (= a27 (tuple 2 7)))
-(assert (member a27 x))
+(assert (set.member a27 x))
 (declare-fun a28 () (Tuple Int Int))
 (assert (= a28 (tuple 2 8)))
-(assert (member a28 x))
+(assert (set.member a28 x))
 (declare-fun a29 () (Tuple Int Int))
 (assert (= a29 (tuple 2 9)))
-(assert (member a29 x))
+(assert (set.member a29 x))
 (declare-fun a210 () (Tuple Int Int))
 (assert (= a210 (tuple 2 10)))
-(assert (member a210 x))
+(assert (set.member a210 x))
 (declare-fun a31 () (Tuple Int Int))
 (assert (= a31 (tuple 3 1)))
-(assert (member a31 x))
+(assert (set.member a31 x))
 (declare-fun a32 () (Tuple Int Int))
 (assert (= a32 (tuple 3 2)))
-(assert (member a32 x))
+(assert (set.member a32 x))
 (declare-fun a33 () (Tuple Int Int))
 (assert (= a33 (tuple 3 3)))
-(assert (member a33 x))
+(assert (set.member a33 x))
 (declare-fun a34 () (Tuple Int Int))
 (assert (= a34 (tuple 3 4)))
-(assert (member a34 x))
+(assert (set.member a34 x))
 (declare-fun a35 () (Tuple Int Int))
 (assert (= a35 (tuple 3 5)))
-(assert (member a35 x))
+(assert (set.member a35 x))
 (declare-fun a36 () (Tuple Int Int))
 (assert (= a36 (tuple 3 6)))
-(assert (member a36 x))
+(assert (set.member a36 x))
 (declare-fun a37 () (Tuple Int Int))
 (assert (= a37 (tuple 3 7)))
-(assert (member a37 x))
+(assert (set.member a37 x))
 (declare-fun a38 () (Tuple Int Int))
 (assert (= a38 (tuple 3 8)))
-(assert (member a38 x))
+(assert (set.member a38 x))
 (declare-fun a39 () (Tuple Int Int))
 (assert (= a39 (tuple 3 9)))
-(assert (member a39 x))
+(assert (set.member a39 x))
 (declare-fun a310 () (Tuple Int Int))
 (assert (= a310 (tuple 3 10)))
-(assert (member a310 x))
+(assert (set.member a310 x))
 (declare-fun a41 () (Tuple Int Int))
 (assert (= a41 (tuple 4 1)))
-(assert (member a41 x))
+(assert (set.member a41 x))
 (declare-fun a42 () (Tuple Int Int))
 (assert (= a42 (tuple 4 2)))
-(assert (member a42 x))
+(assert (set.member a42 x))
 (declare-fun a43 () (Tuple Int Int))
 (assert (= a43 (tuple 4 3)))
-(assert (member a43 x))
+(assert (set.member a43 x))
 (declare-fun a44 () (Tuple Int Int))
 (assert (= a44 (tuple 4 4)))
-(assert (member a44 x))
+(assert (set.member a44 x))
 (declare-fun a45 () (Tuple Int Int))
 (assert (= a45 (tuple 4 5)))
-(assert (member a45 x))
+(assert (set.member a45 x))
 (declare-fun a46 () (Tuple Int Int))
 (assert (= a46 (tuple 4 6)))
-(assert (member a46 x))
+(assert (set.member a46 x))
 (declare-fun a47 () (Tuple Int Int))
 (assert (= a47 (tuple 4 7)))
-(assert (member a47 x))
+(assert (set.member a47 x))
 (declare-fun a48 () (Tuple Int Int))
 (assert (= a48 (tuple 4 8)))
-(assert (member a48 x))
+(assert (set.member a48 x))
 (declare-fun a49 () (Tuple Int Int))
 (assert (= a49 (tuple 4 9)))
-(assert (member a49 x))
+(assert (set.member a49 x))
 (declare-fun a410 () (Tuple Int Int))
 (assert (= a410 (tuple 4 10)))
-(assert (member a410 x))
+(assert (set.member a410 x))
 (declare-fun a51 () (Tuple Int Int))
 (assert (= a51 (tuple 5 1)))
-(assert (member a51 x))
+(assert (set.member a51 x))
 (declare-fun a52 () (Tuple Int Int))
 (assert (= a52 (tuple 5 2)))
-(assert (member a52 x))
+(assert (set.member a52 x))
 (declare-fun a53 () (Tuple Int Int))
 (assert (= a53 (tuple 5 3)))
-(assert (member a53 x))
+(assert (set.member a53 x))
 (declare-fun a54 () (Tuple Int Int))
 (assert (= a54 (tuple 5 4)))
-(assert (member a54 x))
+(assert (set.member a54 x))
 (declare-fun a55 () (Tuple Int Int))
 (assert (= a55 (tuple 5 5)))
-(assert (member a55 x))
+(assert (set.member a55 x))
 (declare-fun a56 () (Tuple Int Int))
 (assert (= a56 (tuple 5 6)))
-(assert (member a56 x))
+(assert (set.member a56 x))
 (declare-fun a57 () (Tuple Int Int))
 (assert (= a57 (tuple 5 7)))
-(assert (member a57 x))
+(assert (set.member a57 x))
 (declare-fun a58 () (Tuple Int Int))
 (assert (= a58 (tuple 5 8)))
-(assert (member a58 x))
+(assert (set.member a58 x))
 (declare-fun a59 () (Tuple Int Int))
 (assert (= a59 (tuple 5 9)))
-(assert (member a59 x))
+(assert (set.member a59 x))
 (declare-fun a510 () (Tuple Int Int))
 (assert (= a510 (tuple 5 10)))
-(assert (member a510 x))
+(assert (set.member a510 x))
 (declare-fun a61 () (Tuple Int Int))
 (assert (= a61 (tuple 6 1)))
-(assert (member a61 x))
+(assert (set.member a61 x))
 (declare-fun a62 () (Tuple Int Int))
 (assert (= a62 (tuple 6 2)))
-(assert (member a62 x))
+(assert (set.member a62 x))
 (declare-fun a63 () (Tuple Int Int))
 (assert (= a63 (tuple 6 3)))
-(assert (member a63 x))
+(assert (set.member a63 x))
 (declare-fun a64 () (Tuple Int Int))
 (assert (= a64 (tuple 6 4)))
-(assert (member a64 x))
+(assert (set.member a64 x))
 (declare-fun a65 () (Tuple Int Int))
 (assert (= a65 (tuple 6 5)))
-(assert (member a65 x))
+(assert (set.member a65 x))
 (declare-fun a66 () (Tuple Int Int))
 (assert (= a66 (tuple 6 6)))
-(assert (member a66 x))
+(assert (set.member a66 x))
 (declare-fun a67 () (Tuple Int Int))
 (assert (= a67 (tuple 6 7)))
-(assert (member a67 x))
+(assert (set.member a67 x))
 (declare-fun a68 () (Tuple Int Int))
 (assert (= a68 (tuple 6 8)))
-(assert (member a68 x))
+(assert (set.member a68 x))
 (declare-fun a69 () (Tuple Int Int))
 (assert (= a69 (tuple 6 9)))
-(assert (member a69 x))
+(assert (set.member a69 x))
 (declare-fun a610 () (Tuple Int Int))
 (assert (= a610 (tuple 6 10)))
-(assert (member a610 x))
+(assert (set.member a610 x))
 (declare-fun a71 () (Tuple Int Int))
 (assert (= a71 (tuple 7 1)))
-(assert (member a71 x))
+(assert (set.member a71 x))
 (declare-fun a72 () (Tuple Int Int))
 (assert (= a72 (tuple 7 2)))
-(assert (member a72 x))
+(assert (set.member a72 x))
 (declare-fun a73 () (Tuple Int Int))
 (assert (= a73 (tuple 7 3)))
-(assert (member a73 x))
+(assert (set.member a73 x))
 (declare-fun a74 () (Tuple Int Int))
 (assert (= a74 (tuple 7 4)))
-(assert (member a74 x))
+(assert (set.member a74 x))
 (declare-fun a75 () (Tuple Int Int))
 (assert (= a75 (tuple 7 5)))
-(assert (member a75 x))
+(assert (set.member a75 x))
 (declare-fun a76 () (Tuple Int Int))
 (assert (= a76 (tuple 7 6)))
-(assert (member a76 x))
+(assert (set.member a76 x))
 (declare-fun a77 () (Tuple Int Int))
 (assert (= a77 (tuple 7 7)))
-(assert (member a77 x))
+(assert (set.member a77 x))
 (declare-fun a78 () (Tuple Int Int))
 (assert (= a78 (tuple 7 8)))
-(assert (member a78 x))
+(assert (set.member a78 x))
 (declare-fun a79 () (Tuple Int Int))
 (assert (= a79 (tuple 7 9)))
-(assert (member a79 x))
+(assert (set.member a79 x))
 (declare-fun a710 () (Tuple Int Int))
 (assert (= a710 (tuple 7 10)))
-(assert (member a710 x))
+(assert (set.member a710 x))
 (declare-fun a81 () (Tuple Int Int))
 (assert (= a81 (tuple 8 1)))
-(assert (member a81 x))
+(assert (set.member a81 x))
 (declare-fun a82 () (Tuple Int Int))
 (assert (= a82 (tuple 8 2)))
-(assert (member a82 x))
+(assert (set.member a82 x))
 (declare-fun a83 () (Tuple Int Int))
 (assert (= a83 (tuple 8 3)))
-(assert (member a83 x))
+(assert (set.member a83 x))
 (declare-fun a84 () (Tuple Int Int))
 (assert (= a84 (tuple 8 4)))
-(assert (member a84 x))
+(assert (set.member a84 x))
 (declare-fun a85 () (Tuple Int Int))
 (assert (= a85 (tuple 8 5)))
-(assert (member a85 x))
+(assert (set.member a85 x))
 (declare-fun a86 () (Tuple Int Int))
 (assert (= a86 (tuple 8 6)))
-(assert (member a86 x))
+(assert (set.member a86 x))
 (declare-fun a87 () (Tuple Int Int))
 (assert (= a87 (tuple 8 7)))
-(assert (member a87 x))
+(assert (set.member a87 x))
 (declare-fun a88 () (Tuple Int Int))
 (assert (= a88 (tuple 8 8)))
-(assert (member a88 x))
+(assert (set.member a88 x))
 (declare-fun a89 () (Tuple Int Int))
 (assert (= a89 (tuple 8 9)))
-(assert (member a89 x))
+(assert (set.member a89 x))
 (declare-fun a810 () (Tuple Int Int))
 (assert (= a810 (tuple 8 10)))
-(assert (member a810 x))
+(assert (set.member a810 x))
 (declare-fun a91 () (Tuple Int Int))
 (assert (= a91 (tuple 9 1)))
-(assert (member a91 x))
+(assert (set.member a91 x))
 (declare-fun a92 () (Tuple Int Int))
 (assert (= a92 (tuple 9 2)))
-(assert (member a92 x))
+(assert (set.member a92 x))
 (declare-fun a93 () (Tuple Int Int))
 (assert (= a93 (tuple 9 3)))
-(assert (member a93 x))
+(assert (set.member a93 x))
 (declare-fun a94 () (Tuple Int Int))
 (assert (= a94 (tuple 9 4)))
-(assert (member a94 x))
+(assert (set.member a94 x))
 (declare-fun a95 () (Tuple Int Int))
 (assert (= a95 (tuple 9 5)))
-(assert (member a95 x))
+(assert (set.member a95 x))
 (declare-fun a96 () (Tuple Int Int))
 (assert (= a96 (tuple 9 6)))
-(assert (member a96 x))
+(assert (set.member a96 x))
 (declare-fun a97 () (Tuple Int Int))
 (assert (= a97 (tuple 9 7)))
-(assert (member a97 x))
+(assert (set.member a97 x))
 (declare-fun a98 () (Tuple Int Int))
 (assert (= a98 (tuple 9 8)))
-(assert (member a98 x))
+(assert (set.member a98 x))
 (declare-fun a99 () (Tuple Int Int))
 (assert (= a99 (tuple 9 9)))
-(assert (member a99 x))
+(assert (set.member a99 x))
 (declare-fun a910 () (Tuple Int Int))
 (assert (= a910 (tuple 9 10)))
-(assert (member a910 x))
+(assert (set.member a910 x))
 (declare-fun a101 () (Tuple Int Int))
 (assert (= a101 (tuple 10 1)))
-(assert (member a101 x))
+(assert (set.member a101 x))
 (declare-fun a102 () (Tuple Int Int))
 (assert (= a102 (tuple 10 2)))
-(assert (member a102 x))
+(assert (set.member a102 x))
 (declare-fun a103 () (Tuple Int Int))
 (assert (= a103 (tuple 10 3)))
-(assert (member a103 x))
+(assert (set.member a103 x))
 (declare-fun a104 () (Tuple Int Int))
 (assert (= a104 (tuple 10 4)))
-(assert (member a104 x))
+(assert (set.member a104 x))
 (declare-fun a105 () (Tuple Int Int))
 (assert (= a105 (tuple 10 5)))
-(assert (member a105 x))
+(assert (set.member a105 x))
 (declare-fun a106 () (Tuple Int Int))
 (assert (= a106 (tuple 10 6)))
-(assert (member a106 x))
+(assert (set.member a106 x))
 (declare-fun a107 () (Tuple Int Int))
 (assert (= a107 (tuple 10 7)))
-(assert (member a107 x))
+(assert (set.member a107 x))
 (declare-fun a108 () (Tuple Int Int))
 (assert (= a108 (tuple 10 8)))
-(assert (member a108 x))
+(assert (set.member a108 x))
 (declare-fun a109 () (Tuple Int Int))
 (assert (= a109 (tuple 10 9)))
-(assert (member a109 x))
+(assert (set.member a109 x))
 (declare-fun a1010 () (Tuple Int Int))
 (assert (= a1010 (tuple 10 10)))
-(assert (member a1010 x))
+(assert (set.member a1010 x))
 (declare-fun b11 () (Tuple Int Int))
 (assert (= b11 (tuple 1 1)))
-(assert (member b11 y))
+(assert (set.member b11 y))
 (declare-fun b12 () (Tuple Int Int))
 (assert (= b12 (tuple 1 2)))
-(assert (member b12 y))
+(assert (set.member b12 y))
 (declare-fun b13 () (Tuple Int Int))
 (assert (= b13 (tuple 1 3)))
-(assert (member b13 y))
+(assert (set.member b13 y))
 (declare-fun b14 () (Tuple Int Int))
 (assert (= b14 (tuple 1 4)))
-(assert (member b14 y))
+(assert (set.member b14 y))
 (declare-fun b15 () (Tuple Int Int))
 (assert (= b15 (tuple 1 5)))
-(assert (member b15 y))
+(assert (set.member b15 y))
 (declare-fun b16 () (Tuple Int Int))
 (assert (= b16 (tuple 1 6)))
-(assert (member b16 y))
+(assert (set.member b16 y))
 (declare-fun b17 () (Tuple Int Int))
 (assert (= b17 (tuple 1 7)))
-(assert (member b17 y))
+(assert (set.member b17 y))
 (declare-fun b18 () (Tuple Int Int))
 (assert (= b18 (tuple 1 8)))
-(assert (member b18 y))
+(assert (set.member b18 y))
 (declare-fun b19 () (Tuple Int Int))
 (assert (= b19 (tuple 1 9)))
-(assert (member b19 y))
+(assert (set.member b19 y))
 (declare-fun b110 () (Tuple Int Int))
 (assert (= b110 (tuple 1 10)))
-(assert (member b110 y))
+(assert (set.member b110 y))
 (declare-fun b21 () (Tuple Int Int))
 (assert (= b21 (tuple 2 1)))
-(assert (member b21 y))
+(assert (set.member b21 y))
 (declare-fun b22 () (Tuple Int Int))
 (assert (= b22 (tuple 2 2)))
-(assert (member b22 y))
+(assert (set.member b22 y))
 (declare-fun b23 () (Tuple Int Int))
 (assert (= b23 (tuple 2 3)))
-(assert (member b23 y))
+(assert (set.member b23 y))
 (declare-fun b24 () (Tuple Int Int))
 (assert (= b24 (tuple 2 4)))
-(assert (member b24 y))
+(assert (set.member b24 y))
 (declare-fun b25 () (Tuple Int Int))
 (assert (= b25 (tuple 2 5)))
-(assert (member b25 y))
+(assert (set.member b25 y))
 (declare-fun b26 () (Tuple Int Int))
 (assert (= b26 (tuple 2 6)))
-(assert (member b26 y))
+(assert (set.member b26 y))
 (declare-fun b27 () (Tuple Int Int))
 (assert (= b27 (tuple 2 7)))
-(assert (member b27 y))
+(assert (set.member b27 y))
 (declare-fun b28 () (Tuple Int Int))
 (assert (= b28 (tuple 2 8)))
-(assert (member b28 y))
+(assert (set.member b28 y))
 (declare-fun b29 () (Tuple Int Int))
 (assert (= b29 (tuple 2 9)))
-(assert (member b29 y))
+(assert (set.member b29 y))
 (declare-fun b210 () (Tuple Int Int))
 (assert (= b210 (tuple 2 10)))
-(assert (member b210 y))
+(assert (set.member b210 y))
 (declare-fun b31 () (Tuple Int Int))
 (assert (= b31 (tuple 3 1)))
-(assert (member b31 y))
+(assert (set.member b31 y))
 (declare-fun b32 () (Tuple Int Int))
 (assert (= b32 (tuple 3 2)))
-(assert (member b32 y))
+(assert (set.member b32 y))
 (declare-fun b33 () (Tuple Int Int))
 (assert (= b33 (tuple 3 3)))
-(assert (member b33 y))
+(assert (set.member b33 y))
 (declare-fun b34 () (Tuple Int Int))
 (assert (= b34 (tuple 3 4)))
-(assert (member b34 y))
+(assert (set.member b34 y))
 (declare-fun b35 () (Tuple Int Int))
 (assert (= b35 (tuple 3 5)))
-(assert (member b35 y))
+(assert (set.member b35 y))
 (declare-fun b36 () (Tuple Int Int))
 (assert (= b36 (tuple 3 6)))
-(assert (member b36 y))
+(assert (set.member b36 y))
 (declare-fun b37 () (Tuple Int Int))
 (assert (= b37 (tuple 3 7)))
-(assert (member b37 y))
+(assert (set.member b37 y))
 (declare-fun b38 () (Tuple Int Int))
 (assert (= b38 (tuple 3 8)))
-(assert (member b38 y))
+(assert (set.member b38 y))
 (declare-fun b39 () (Tuple Int Int))
 (assert (= b39 (tuple 3 9)))
-(assert (member b39 y))
+(assert (set.member b39 y))
 (declare-fun b310 () (Tuple Int Int))
 (assert (= b310 (tuple 3 10)))
-(assert (member b310 y))
+(assert (set.member b310 y))
 (declare-fun b41 () (Tuple Int Int))
 (assert (= b41 (tuple 4 1)))
-(assert (member b41 y))
+(assert (set.member b41 y))
 (declare-fun b42 () (Tuple Int Int))
 (assert (= b42 (tuple 4 2)))
-(assert (member b42 y))
+(assert (set.member b42 y))
 (declare-fun b43 () (Tuple Int Int))
 (assert (= b43 (tuple 4 3)))
-(assert (member b43 y))
+(assert (set.member b43 y))
 (declare-fun b44 () (Tuple Int Int))
 (assert (= b44 (tuple 4 4)))
-(assert (member b44 y))
+(assert (set.member b44 y))
 (declare-fun b45 () (Tuple Int Int))
 (assert (= b45 (tuple 4 5)))
-(assert (member b45 y))
+(assert (set.member b45 y))
 (declare-fun b46 () (Tuple Int Int))
 (assert (= b46 (tuple 4 6)))
-(assert (member b46 y))
+(assert (set.member b46 y))
 (declare-fun b47 () (Tuple Int Int))
 (assert (= b47 (tuple 4 7)))
-(assert (member b47 y))
+(assert (set.member b47 y))
 (declare-fun b48 () (Tuple Int Int))
 (assert (= b48 (tuple 4 8)))
-(assert (member b48 y))
+(assert (set.member b48 y))
 (declare-fun b49 () (Tuple Int Int))
 (assert (= b49 (tuple 4 9)))
-(assert (member b49 y))
+(assert (set.member b49 y))
 (declare-fun b410 () (Tuple Int Int))
 (assert (= b410 (tuple 4 10)))
-(assert (member b410 y))
+(assert (set.member b410 y))
 (declare-fun b51 () (Tuple Int Int))
 (assert (= b51 (tuple 5 1)))
-(assert (member b51 y))
+(assert (set.member b51 y))
 (declare-fun b52 () (Tuple Int Int))
 (assert (= b52 (tuple 5 2)))
-(assert (member b52 y))
+(assert (set.member b52 y))
 (declare-fun b53 () (Tuple Int Int))
 (assert (= b53 (tuple 5 3)))
-(assert (member b53 y))
+(assert (set.member b53 y))
 (declare-fun b54 () (Tuple Int Int))
 (assert (= b54 (tuple 5 4)))
-(assert (member b54 y))
+(assert (set.member b54 y))
 (declare-fun b55 () (Tuple Int Int))
 (assert (= b55 (tuple 5 5)))
-(assert (member b55 y))
+(assert (set.member b55 y))
 (declare-fun b56 () (Tuple Int Int))
 (assert (= b56 (tuple 5 6)))
-(assert (member b56 y))
+(assert (set.member b56 y))
 (declare-fun b57 () (Tuple Int Int))
 (assert (= b57 (tuple 5 7)))
-(assert (member b57 y))
+(assert (set.member b57 y))
 (declare-fun b58 () (Tuple Int Int))
 (assert (= b58 (tuple 5 8)))
-(assert (member b58 y))
+(assert (set.member b58 y))
 (declare-fun b59 () (Tuple Int Int))
 (assert (= b59 (tuple 5 9)))
-(assert (member b59 y))
+(assert (set.member b59 y))
 (declare-fun b510 () (Tuple Int Int))
 (assert (= b510 (tuple 5 10)))
-(assert (member b510 y))
+(assert (set.member b510 y))
 (declare-fun b61 () (Tuple Int Int))
 (assert (= b61 (tuple 6 1)))
-(assert (member b61 y))
+(assert (set.member b61 y))
 (declare-fun b62 () (Tuple Int Int))
 (assert (= b62 (tuple 6 2)))
-(assert (member b62 y))
+(assert (set.member b62 y))
 (declare-fun b63 () (Tuple Int Int))
 (assert (= b63 (tuple 6 3)))
-(assert (member b63 y))
+(assert (set.member b63 y))
 (declare-fun b64 () (Tuple Int Int))
 (assert (= b64 (tuple 6 4)))
-(assert (member b64 y))
+(assert (set.member b64 y))
 (declare-fun b65 () (Tuple Int Int))
 (assert (= b65 (tuple 6 5)))
-(assert (member b65 y))
+(assert (set.member b65 y))
 (declare-fun b66 () (Tuple Int Int))
 (assert (= b66 (tuple 6 6)))
-(assert (member b66 y))
+(assert (set.member b66 y))
 (declare-fun b67 () (Tuple Int Int))
 (assert (= b67 (tuple 6 7)))
-(assert (member b67 y))
+(assert (set.member b67 y))
 (declare-fun b68 () (Tuple Int Int))
 (assert (= b68 (tuple 6 8)))
-(assert (member b68 y))
+(assert (set.member b68 y))
 (declare-fun b69 () (Tuple Int Int))
 (assert (= b69 (tuple 6 9)))
-(assert (member b69 y))
+(assert (set.member b69 y))
 (declare-fun b610 () (Tuple Int Int))
 (assert (= b610 (tuple 6 10)))
-(assert (member b610 y))
+(assert (set.member b610 y))
 (declare-fun b71 () (Tuple Int Int))
 (assert (= b71 (tuple 7 1)))
-(assert (member b71 y))
+(assert (set.member b71 y))
 (declare-fun b72 () (Tuple Int Int))
 (assert (= b72 (tuple 7 2)))
-(assert (member b72 y))
+(assert (set.member b72 y))
 (declare-fun b73 () (Tuple Int Int))
 (assert (= b73 (tuple 7 3)))
-(assert (member b73 y))
+(assert (set.member b73 y))
 (declare-fun b74 () (Tuple Int Int))
 (assert (= b74 (tuple 7 4)))
-(assert (member b74 y))
+(assert (set.member b74 y))
 (declare-fun b75 () (Tuple Int Int))
 (assert (= b75 (tuple 7 5)))
-(assert (member b75 y))
+(assert (set.member b75 y))
 (declare-fun b76 () (Tuple Int Int))
 (assert (= b76 (tuple 7 6)))
-(assert (member b76 y))
+(assert (set.member b76 y))
 (declare-fun b77 () (Tuple Int Int))
 (assert (= b77 (tuple 7 7)))
-(assert (member b77 y))
+(assert (set.member b77 y))
 (declare-fun b78 () (Tuple Int Int))
 (assert (= b78 (tuple 7 8)))
-(assert (member b78 y))
+(assert (set.member b78 y))
 (declare-fun b79 () (Tuple Int Int))
 (assert (= b79 (tuple 7 9)))
-(assert (member b79 y))
+(assert (set.member b79 y))
 (declare-fun b710 () (Tuple Int Int))
 (assert (= b710 (tuple 7 10)))
-(assert (member b710 y))
+(assert (set.member b710 y))
 (declare-fun b81 () (Tuple Int Int))
 (assert (= b81 (tuple 8 1)))
-(assert (member b81 y))
+(assert (set.member b81 y))
 (declare-fun b82 () (Tuple Int Int))
 (assert (= b82 (tuple 8 2)))
-(assert (member b82 y))
+(assert (set.member b82 y))
 (declare-fun b83 () (Tuple Int Int))
 (assert (= b83 (tuple 8 3)))
-(assert (member b83 y))
+(assert (set.member b83 y))
 (declare-fun b84 () (Tuple Int Int))
 (assert (= b84 (tuple 8 4)))
-(assert (member b84 y))
+(assert (set.member b84 y))
 (declare-fun b85 () (Tuple Int Int))
 (assert (= b85 (tuple 8 5)))
-(assert (member b85 y))
+(assert (set.member b85 y))
 (declare-fun b86 () (Tuple Int Int))
 (assert (= b86 (tuple 8 6)))
-(assert (member b86 y))
+(assert (set.member b86 y))
 (declare-fun b87 () (Tuple Int Int))
 (assert (= b87 (tuple 8 7)))
-(assert (member b87 y))
+(assert (set.member b87 y))
 (declare-fun b88 () (Tuple Int Int))
 (assert (= b88 (tuple 8 8)))
-(assert (member b88 y))
+(assert (set.member b88 y))
 (declare-fun b89 () (Tuple Int Int))
 (assert (= b89 (tuple 8 9)))
-(assert (member b89 y))
+(assert (set.member b89 y))
 (declare-fun b810 () (Tuple Int Int))
 (assert (= b810 (tuple 8 10)))
-(assert (member b810 y))
+(assert (set.member b810 y))
 (declare-fun b91 () (Tuple Int Int))
 (assert (= b91 (tuple 9 1)))
-(assert (member b91 y))
+(assert (set.member b91 y))
 (declare-fun b92 () (Tuple Int Int))
 (assert (= b92 (tuple 9 2)))
-(assert (member b92 y))
+(assert (set.member b92 y))
 (declare-fun b93 () (Tuple Int Int))
 (assert (= b93 (tuple 9 3)))
-(assert (member b93 y))
+(assert (set.member b93 y))
 (declare-fun b94 () (Tuple Int Int))
 (assert (= b94 (tuple 9 4)))
-(assert (member b94 y))
+(assert (set.member b94 y))
 (declare-fun b95 () (Tuple Int Int))
 (assert (= b95 (tuple 9 5)))
-(assert (member b95 y))
+(assert (set.member b95 y))
 (declare-fun b96 () (Tuple Int Int))
 (assert (= b96 (tuple 9 6)))
-(assert (member b96 y))
+(assert (set.member b96 y))
 (declare-fun b97 () (Tuple Int Int))
 (assert (= b97 (tuple 9 7)))
-(assert (member b97 y))
+(assert (set.member b97 y))
 (declare-fun b98 () (Tuple Int Int))
 (assert (= b98 (tuple 9 8)))
-(assert (member b98 y))
+(assert (set.member b98 y))
 (declare-fun b99 () (Tuple Int Int))
 (assert (= b99 (tuple 9 9)))
-(assert (member b99 y))
+(assert (set.member b99 y))
 (declare-fun b910 () (Tuple Int Int))
 (assert (= b910 (tuple 9 10)))
-(assert (member b910 y))
+(assert (set.member b910 y))
 (declare-fun b101 () (Tuple Int Int))
 (assert (= b101 (tuple 10 1)))
-(assert (member b101 y))
+(assert (set.member b101 y))
 (declare-fun b102 () (Tuple Int Int))
 (assert (= b102 (tuple 10 2)))
-(assert (member b102 y))
+(assert (set.member b102 y))
 (declare-fun b103 () (Tuple Int Int))
 (assert (= b103 (tuple 10 3)))
-(assert (member b103 y))
+(assert (set.member b103 y))
 (declare-fun b104 () (Tuple Int Int))
 (assert (= b104 (tuple 10 4)))
-(assert (member b104 y))
+(assert (set.member b104 y))
 (declare-fun b105 () (Tuple Int Int))
 (assert (= b105 (tuple 10 5)))
-(assert (member b105 y))
+(assert (set.member b105 y))
 (declare-fun b106 () (Tuple Int Int))
 (assert (= b106 (tuple 10 6)))
-(assert (member b106 y))
+(assert (set.member b106 y))
 (declare-fun b107 () (Tuple Int Int))
 (assert (= b107 (tuple 10 7)))
-(assert (member b107 y))
+(assert (set.member b107 y))
 (declare-fun b108 () (Tuple Int Int))
 (assert (= b108 (tuple 10 8)))
-(assert (member b108 y))
+(assert (set.member b108 y))
 (declare-fun b109 () (Tuple Int Int))
 (assert (= b109 (tuple 10 9)))
-(assert (member b109 y))
+(assert (set.member b109 y))
 (declare-fun b1010 () (Tuple Int Int))
 (assert (= b1010 (tuple 10 10)))
-(assert (member b1010 y))
-(assert (member (tuple 1 9) z))
+(assert (set.member b1010 y))
+(assert (set.member (tuple 1 9) z))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 9 1)))
-(assert (= r (join (join (transpose x) y) z)))
-(assert (not (member a (transpose r))))
+(assert (= r (rel.join (rel.join (rel.transpose x) y) z)))
+(assert (not (set.member a (rel.transpose r))))
 (check-sat)
index af871781e2b42f01d26b1e3cdf6f771d49ea517a..9e49c27317255688e1da24410eef46e1877a4be2 100644 (file)
@@ -10,9 +10,9 @@
 (declare-fun d () Int)
 (assert (= a c))
 (assert (= a d))
-(assert (member (tuple 1 c) x))
-(assert (member (tuple 2 d) x))
-(assert (member (tuple a 5) y))
-(assert (= y (tclosure x)))
-(assert (member (tuple 2 5) y))
+(assert (set.member (tuple 1 c) x))
+(assert (set.member (tuple 2 d) x))
+(assert (set.member (tuple a 5) y))
+(assert (= y (rel.tclosure x)))
+(assert (set.member (tuple 2 5) y))
 (check-sat)
index 5de402d3b92dff4547a6e2026ea8c9f6f558d91a..1b2a6173da65165ec57106ac8c02c08a482957eb 100644 (file)
@@ -8,11 +8,11 @@
 (declare-fun b () Int)
 (declare-fun c () Int)
 (declare-fun d () Int)
-(assert (member (tuple 1 a) x))
-(assert (member (tuple 1 c) x))
-(assert (member (tuple 1 d) x))
-(assert (member (tuple b 1) x))
+(assert (set.member (tuple 1 a) x))
+(assert (set.member (tuple 1 c) x))
+(assert (set.member (tuple 1 d) x))
+(assert (set.member (tuple b 1) x))
 (assert (= b d))
-(assert (member (tuple 2 b) (join (join x x) x)))
-(assert (not (member (tuple 2 1) (tclosure x))))
+(assert (set.member (tuple 2 b) (rel.join (rel.join x x) x)))
+(assert (not (set.member (tuple 2 1) (rel.tclosure x))))
 (check-sat)
index 7e0ce99c5aa8b9de614355bec1d9fd3d1b3d2572..68ca97c2af649a7857863926f9bc4106845c3381 100644 (file)
@@ -5,6 +5,6 @@
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
-(assert (= y (join (tclosure x) x)))
-(assert (not (= y (tclosure x))))
+(assert (= y (rel.join (rel.tclosure x) x)))
+(assert (not (= y (rel.tclosure x))))
 (check-sat)
index a57fe6e81d48c293ea22f1e9ff3eb7dd5b95c836..0caa98002233ef1e7546b70a430c56a69613b717 100644 (file)
@@ -4,6 +4,6 @@
 
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
-(assert (= y (tclosure x)))
-(assert (not (= y (join (join x x) x))))
+(assert (= y (rel.tclosure x)))
+(assert (not (= y (rel.join (rel.join x x) x))))
 (check-sat)
index dd584b1222d9673f3feb17eb6f031641d3e5010c..8e2e1cae2b9c2f0c52eaa21aacc31cea3a265140 100644 (file)
@@ -4,6 +4,6 @@
 
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
-(assert (= y (tclosure x)))
-(assert (not (subset (join (join x x) x) y)))
+(assert (= y (rel.tclosure x)))
+(assert (not (set.subset (rel.join (rel.join x x) x) y)))
 (check-sat)
index 0cfacd14ae6b2ec457a0f090dc6bcc738f870177..02efe912bea02bc2575d53b46de07cf72f215577 100644 (file)
@@ -6,17 +6,17 @@
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
 (declare-fun w () (Set (Tuple Int Int)))
-(assert (= z (tclosure x)))
-(assert (= w (join x y)))
-(assert (member (tuple 2 2) z))
-(assert (member (tuple 0 3) y))
-(assert (member (tuple (- 1) 3) y))
-(assert (member (tuple 1 3) y))
-(assert (member (tuple (- 2) 3) y))
-(assert (member (tuple 2 3) y))
-(assert (member (tuple 3 3) y))
-(assert (member (tuple 4 3) y))
-(assert (member (tuple 5 3) y))
-(assert (not (member (tuple 2 3) (join x y))))
-(assert (not (member (tuple 2 1) x)))
+(assert (= z (rel.tclosure x)))
+(assert (= w (rel.join x y)))
+(assert (set.member (tuple 2 2) z))
+(assert (set.member (tuple 0 3) y))
+(assert (set.member (tuple (- 1) 3) y))
+(assert (set.member (tuple 1 3) y))
+(assert (set.member (tuple (- 2) 3) y))
+(assert (set.member (tuple 2 3) y))
+(assert (set.member (tuple 3 3) y))
+(assert (set.member (tuple 4 3) y))
+(assert (set.member (tuple 5 3) y))
+(assert (not (set.member (tuple 2 3) (rel.join x y))))
+(assert (not (set.member (tuple 2 1) x)))
 (check-sat)
index 822c1fd52b6838f02a886b06dfc39673777335d4..ca8e1ba775246885f8b332a0c6655d26f17f8d79 100644 (file)
@@ -5,7 +5,7 @@
 (declare-fun x () (Set (Tuple Int Int)))
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
-(assert (or (= z (transpose y)) (= z (transpose x))))
-(assert (not (= (transpose z) y)))
-(assert (not (= (transpose z) x)))
+(assert (or (= z (rel.transpose y)) (= z (rel.transpose x))))
+(assert (not (= (rel.transpose z) y)))
+(assert (not (= (rel.transpose z) x)))
 (check-sat)
index 698d2908139c6da629007c06b4f9a9ed2e13998f..32a520d13e6c0e4f57b8f341b431be96577c692e 100644 (file)
@@ -6,13 +6,13 @@
 (declare-fun y () (Set (Tuple Int Int)))
 (declare-fun z () (Set (Tuple Int Int)))
 (declare-fun r () (Set (Tuple Int Int)))
-(assert (member (tuple 7 1) x))
-(assert (member (tuple 2 3) x))
-(assert (member (tuple 7 3) y))
-(assert (member (tuple 4 7) y))
-(assert (member (tuple 3 4) z))
+(assert (set.member (tuple 7 1) x))
+(assert (set.member (tuple 2 3) x))
+(assert (set.member (tuple 7 3) y))
+(assert (set.member (tuple 4 7) y))
+(assert (set.member (tuple 3 4) z))
 (declare-fun a () (Tuple Int Int))
 (assert (= a (tuple 4 1)))
-(assert (= r (join (join (transpose x) y) z)))
-(assert (member a (transpose r)))
+(assert (= r (rel.join (rel.join (rel.transpose x) y) z)))
+(assert (set.member a (rel.transpose r)))
 (check-sat)
index 53e5588a973136dc39ba2de21baadef7d1260425..a509780acebd0741e9789e18ed9f2cbcbd77469d 100644 (file)
 (declare-fun a () (Tuple Int Int))
 (declare-fun b () (Tuple Int Int))
 (assert (not (= a b)))
-(assert (member a x))
-(assert (member b y))
-(assert (member b w))
-(assert (member (tuple x y) z))
-(assert (member (tuple w x) z))
-(assert (not (member (tuple x x) (join z z))))
-(assert (member (tuple x (singleton (tuple 0 0))) (join z z)))
+(assert (set.member a x))
+(assert (set.member b y))
+(assert (set.member b w))
+(assert (set.member (tuple x y) z))
+(assert (set.member (tuple w x) z))
+(assert (not (set.member (tuple x x) (rel.join z z))))
+(assert (set.member (tuple x (set.singleton (tuple 0 0))) (rel.join z z)))
 (check-sat)
index 42850d283f7b0c72db17c8c7cc5d90fc06bf1f40..b65251ca7997fa6c8f6016ae7730f57b3966085a 100644 (file)
 (declare-fun b () (Tuple Int Int))
 (declare-fun c () (Tuple (Tuple Int Int) (Tuple Int Int)))
 (assert (not (= a b)))
-(assert (member a z))
-(assert (member b z))
-(assert (member (tuple a b) x))
-(assert (member (tuple b a) x))
-(assert (member c x))
+(assert (set.member a z))
+(assert (set.member b z))
+(assert (set.member (tuple a b) x))
+(assert (set.member (tuple b a) x))
+(assert (set.member c x))
 (assert (and (not (= c (tuple a b))) (not (= c (tuple b a)))))
 (check-sat)
index 666d16367890995f67eb8e28798101bc3917c1cf..144566fc593df89ce8aada849cb4a4a9471b7523 100644 (file)
@@ -8,15 +8,15 @@
 
 (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 (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_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
 ;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
-(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
 ;(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (= smt_set_emp (smt_set_dif s1 s2)))
-(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 (declare-fun z3v56 () Int)
 (declare-fun z3v57 () Int)
 (assert (distinct z3v56 z3v57))
index 4863baa64832bdaa6780afd32a1c97cd7a974e4d..9a2521520ad2017fe24c3732980530f03abd387f 100644 (file)
@@ -3,15 +3,15 @@
 (set-info :status 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 (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_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
 ;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
-(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
 ;(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (= smt_set_emp (smt_set_dif s1 s2)))
-(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 (declare-fun z3v58 () Int)
 (declare-fun z3v59 () Int)
 (assert (distinct z3v58 z3v59))
index dcfd13521b934ea239889d79a47d5f96e47481b5..b2732dbd2cda8dbfb99965ff6a987c8a534eb9c4 100644 (file)
@@ -3,15 +3,15 @@
 (set-info :status 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 (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_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
 ;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
-(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
 ;(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (= smt_set_emp (smt_set_dif s1 s2)))
-(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 (declare-fun z3v60 () Int)
 (declare-fun z3v61 () Int)
 (assert (distinct z3v60 z3v61))
index 9e5962a24aad9f7c75a01fbe36293d1fca6a20f7..ee24367c3e1030a6e239ad5ac8bfa488b52d63be 100644 (file)
@@ -2,13 +2,13 @@
 (set-logic QF_ALL)
 (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 (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-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 
 (declare-fun z3v66 () Int)
 (declare-fun z3v67 () Int)
index 88cf21aa8f061a025335739fa888e7c791e11c82..b0cfe4888693181afa1b000244987ad0a7814bd3 100644 (file)
@@ -2,13 +2,13 @@
 (set-logic QF_ALL)
 (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 (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-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 
 (declare-fun z3f70 (Int) mySet)
 (declare-fun z3f72 (Int) mySet)
                         (z3f70 z3v270))))
 (assert (= z3v242 (z3f77 z3v271 z3v270)))
 (assert (= z3v242 z3v243))
-(assert (subset (z3f70 z3v242)
+(assert (set.subset (z3f70 z3v242)
                   (z3f70 z3v244)))
 (assert (= (z3f72 z3v243) smt_set_emp))
 (assert (= (z3f72 z3v244)
index 1967497dae6044fbda84de71a449546bca7d8d25..9ac15e9a405a26317e6bd8eadfd1340c8632b3a3 100644 (file)
@@ -2,13 +2,13 @@
 (set-info :status unsat)
 (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 (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-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 (declare-fun z3v66 () Int)
 (declare-fun z3v67 () Int)
 (assert (distinct z3v66 z3v67))
index cb1dfc842bbca1d4c4cf12a3b24082a1709bd0d3..68ed72a93874d06e86ee9a5bad6b5a1807182814 100644 (file)
@@ -2,15 +2,15 @@
 (set-info :status unsat)
 (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 (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_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
 ;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
-(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
 ;(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (= smt_set_emp (smt_set_dif s1 s2)))
-(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 (declare-fun z3v66 () Int)
 (declare-fun z3v67 () Int)
 (assert (distinct z3v66 z3v67))
index b76b48f2d0c1b70f54cf0162ca1bf660c8e40630..8e851bb7fb56f75c15d13f043ffc9e247a0a77bb 100644 (file)
@@ -6,11 +6,11 @@
 (declare-fun x () (Set Bool))
 (declare-fun y () (Set Bool))
 (declare-fun z () (Set Bool))
-(assert (= x (singleton true)))
-(assert (= y (singleton false)))
+(assert (= x (set.singleton true)))
+(assert (= y (set.singleton false)))
 (push 1)
 
-(assert (= z (complement y)))
+(assert (= z (set.complement y)))
 
 (check-sat)
 
index 0e96b0231db5277fae26b4a127c74501f1f11764..383395b0d831104f2da5be9756985ca3626f9517 100644 (file)
@@ -4,9 +4,9 @@
 (declare-fun s () (Set E))
 (declare-fun t () (Set E))
 (declare-fun u () (Set E))
-(assert (>= (card (union s t)) 8))
-(assert (>= (card (union s u)) 8))
-(assert (<= (card (union t u)) 5))
-(assert (<= (card s) 5))
-(assert (= (as emptyset (Set E)) (intersection t u)))
+(assert (>= (set.card (set.union s t)) 8))
+(assert (>= (set.card (set.union s u)) 8))
+(assert (<= (set.card (set.union t u)) 5))
+(assert (<= (set.card s) 5))
+(assert (= (as set.empty (Set E)) (set.intersection t u)))
 (check-sat)
index 456e24ca7c47b3332034614d308979bf437e6804..019b16a097b0c8aa4ffee0c67b763cf3f2aafe77 100644 (file)
@@ -4,21 +4,21 @@
 (declare-fun s () (Set E))
 (declare-fun t () (Set E))
 (declare-fun u () (Set E))
-(assert (>= (card (union s t)) 8))
-(assert (>= (card (union s u)) 8))
-;(assert (<= (card (union t u)) 5))
-(assert (<= (card s) 5))
-(assert (= (as emptyset (Set E)) (intersection t u)))
+(assert (>= (set.card (set.union s t)) 8))
+(assert (>= (set.card (set.union s u)) 8))
+;(assert (<= (set.card (set.union t u)) 5))
+(assert (<= (set.card s) 5))
+(assert (= (as set.empty (Set E)) (set.intersection t u)))
 (declare-fun x1 () E)
 (declare-fun x2 () E)
 (declare-fun x3 () E)
 (declare-fun x4 () E)
 (declare-fun x5 () E)
 (declare-fun x6 () E)
-(assert (member x1 s))
-(assert (member x2 s))
-(assert (member x3 s))
-(assert (member x4 s))
-(assert (member x5 s))
-(assert (member x6 s))
+(assert (set.member x1 s))
+(assert (set.member x2 s))
+(assert (set.member x3 s))
+(assert (set.member x4 s))
+(assert (set.member x5 s))
+(assert (set.member x6 s))
 (check-sat)
index 4135a0c16b768edd46cf35384e3ea5cec857bb2e..c24ca974a1918e544012e291809854cc4ec53dc5 100644 (file)
@@ -4,22 +4,22 @@
 (declare-fun s () (Set E))
 (declare-fun t () (Set E))
 (declare-fun u () (Set E))
-(assert (>= (card (union s t)) 8))
-(assert (>= (card (union s u)) 8))
-;(assert (<= (card (union t u)) 5))
-(assert (<= (card s) 5))
-(assert (= (as emptyset (Set E)) (intersection t u)))
+(assert (>= (set.card (set.union s t)) 8))
+(assert (>= (set.card (set.union s u)) 8))
+;(assert (<= (set.card (set.union t u)) 5))
+(assert (<= (set.card s) 5))
+(assert (= (as set.empty (Set E)) (set.intersection t u)))
 (declare-fun x1 () E)
 (declare-fun x2 () E)
 (declare-fun x3 () E)
 (declare-fun x4 () E)
 (declare-fun x5 () E)
 (declare-fun x6 () E)
-(assert (member x1 s))
-(assert (member x2 s))
-(assert (member x3 s))
-(assert (member x4 s))
-(assert (member x5 s))
-(assert (member x6 s))
+(assert (set.member x1 s))
+(assert (set.member x2 s))
+(assert (set.member x3 s))
+(assert (set.member x4 s))
+(assert (set.member x5 s))
+(assert (set.member x6 s))
 (assert (distinct x1 x2 x3 x4 x5 x6))
 (check-sat)
index 87d87c03b42a1faa5023b4dfe0d67a4b3cbe0b54..b0ef3a3b9c074f0fd1e7e79f44f08743662f09f1 100644 (file)
@@ -6,12 +6,12 @@
 (declare-fun C () (Set E))
 (assert
   (and
-    (= (as emptyset (Set E))
-       (intersection A B))
-    (subset C (union A B))
-    (>= (card C) 5)
-    (<= (card A) 2)
-    (<= (card B) 2)
+    (= (as set.empty (Set E))
+       (set.intersection A B))
+    (set.subset C (set.union A B))
+    (>= (set.card C) 5)
+    (<= (set.card A) 2)
+    (<= (set.card B) 2)
   )
 )
 (check-sat)
index df1867c634d597cffe9ae70434d4b9a8050b6424..30595218c0adcc11fac88b24bcbeab6e95c6e466 100644 (file)
 (declare-fun A19 () (Set E))
 (declare-fun A20 () (Set E))
 (assert (and
-  (= (card A1) 1)
-  (= (card A2) 1)
-  (= (card A3) 1)
-  (= (card A4) 1)
-  (= (card A5) 1)
-  (= (card A6) 1)
-  (= (card A7) 1)
-  (= (card A8) 1)
-  (= (card A9) 1)
-  (= (card A10) 1)
-  (= (card A11) 1)
-  (= (card A12) 1)
-  (= (card A13) 1)
-  (= (card A14) 1)
-  (= (card A15) 1)
-  (= (card A16) 1)
-  (= (card A17) 1)
-  (= (card A18) 1)
-  (= (card A19) 1)
-  (= (card A20) 1)
+  (= (set.card A1) 1)
+  (= (set.card A2) 1)
+  (= (set.card A3) 1)
+  (= (set.card A4) 1)
+  (= (set.card A5) 1)
+  (= (set.card A6) 1)
+  (= (set.card A7) 1)
+  (= (set.card A8) 1)
+  (= (set.card A9) 1)
+  (= (set.card A10) 1)
+  (= (set.card A11) 1)
+  (= (set.card A12) 1)
+  (= (set.card A13) 1)
+  (= (set.card A14) 1)
+  (= (set.card A15) 1)
+  (= (set.card A16) 1)
+  (= (set.card A17) 1)
+  (= (set.card A18) 1)
+  (= (set.card A19) 1)
+  (= (set.card A20) 1)
 ))
-(assert (= 20 (+ (card A1) (card A2) (card A3) (card A4) (card A5) (card A6) (card A7) (card A8) (card A9) (card A10) (card A11) (card A12) (card A13) (card A14) (card A15) (card A16) (card A17) (card A18) (card A19) (card A20))))
+(assert (= 20 (+ (set.card A1) (set.card A2) (set.card A3) (set.card A4) (set.card A5) (set.card A6) (set.card A7) (set.card A8) (set.card A9) (set.card A10) (set.card A11) (set.card A12) (set.card A13) (set.card A14) (set.card A15) (set.card A16) (set.card A17) (set.card A18) (set.card A19) (set.card A20))))
 (check-sat)
index d7f4bdf1e35f02a76b2f0edb13066073fdd47a2a..4f589cad7e3f2feac76a1c142778fe8ebe12a1e8 100644 (file)
@@ -6,10 +6,10 @@
 (declare-fun alloc1 () (Set Int))
 (declare-fun alloc2 () (Set Int))
 (assert
-(and (member x c)
-      (<= (card (setminus alloc1 alloc0)) 1)
-      (<= (card (setminus alloc2 alloc1))
-          (card (setminus c (singleton x))))
-      (> (card (setminus alloc2 alloc0)) (card c))
+(and (set.member x c)
+      (<= (set.card (set.minus alloc1 alloc0)) 1)
+      (<= (set.card (set.minus alloc2 alloc1))
+          (set.card (set.minus c (set.singleton x))))
+      (> (set.card (set.minus alloc2 alloc0)) (set.card c))
 ))
 (check-sat)
index 8c3be2f99c383e4e47b5fe3be9b14b9b1bbdef33..18a89334f8c8de09fc57b6be4eccedcb32a82934 100644 (file)
@@ -4,7 +4,7 @@
 (set-option :incremental false)
 (declare-fun A () (Set Int))
 (declare-fun a () Int)
-(assert (not (= A (as emptyset (Set Int)))))
-(assert (= (choose A) 10))
-(assert (= (choose A) a))
+(assert (not (= A (as set.empty (Set Int)))))
+(assert (= (set.choose A) 10))
+(assert (= (set.choose A) a))
 (check-sat)
index 0e937169eaba01547b3096834eef331eb3d71809..a96daa9d5f678fa2c9ed2d430e8fa04e35a42313 100644 (file)
@@ -4,8 +4,8 @@
 (set-option :produce-models true)
 (declare-fun A () (Set Int))
 (declare-fun a () Int)
-(assert (not (= A (as emptyset (Set Int)))))
-(assert (= (choose A) 10))
-(assert (= a (choose A)))
-(assert (exists ((x Int)) (and (= x (choose A)) (= x a))))
+(assert (not (= A (as set.empty (Set Int)))))
+(assert (= (set.choose A) 10))
+(assert (= a (set.choose A)))
+(assert (exists ((x Int)) (and (= x (set.choose A)) (= x a))))
 (check-sat)
index 85a5d18d3e2c334fe766b89eca3e4b0ed56e9d35..494a74f0bafb18fc01da5ebc5734d5995f86130c 100644 (file)
@@ -2,5 +2,5 @@
 (set-info :status unsat)
 (set-option :produce-models true)
 (declare-fun A () (Set Int))
-(assert (distinct (choose A) (choose A)))
+(assert (distinct (set.choose A) (set.choose A)))
 (check-sat)
\ No newline at end of file
index 2a844efeb59e65b6ede0807012ff4e9ed0db4b46..284d3c9e95988decf26fe6b4d6a2f1d585a0ccf6 100644 (file)
@@ -4,6 +4,6 @@
 (set-info :status sat)
 (set-option :produce-models true)
 (declare-fun A () (Set Int))
-(assert (= (choose A) 10))
-(assert (= A (as emptyset (Set Int))))
+(assert (= (set.choose A) 10))
+(assert (= A (as set.empty (Set Int))))
 (check-sat)
index 6cb97c3e31b7fa65c60a66ed47de61686ad7b400..5590a0d5fcbfd630da43eb57412ef7769fab0c0f 100644 (file)
@@ -4,8 +4,8 @@
 (set-option :produce-models true)
 (declare-fun A () (Set Int))
 (declare-fun a () Int)
-(assert (not (= A (as emptyset (Set Int)))))
-(assert (member 10 A))
-(assert (= a (choose A)))
-;(assert (exists ((x Int)) (and (= x (choose A)) (= x a))))
+(assert (not (= A (as set.empty (Set Int)))))
+(assert (set.member 10 A))
+(assert (= a (set.choose A)))
+;(assert (exists ((x Int)) (and (= x (set.choose A)) (= x a))))
 (check-sat)
index ab3206343ed70e8f7b0e333de46321145b9a36fc..60d9046bd1832e3e4b75507b9d1bd9edb01de34b 100644 (file)
@@ -6,9 +6,9 @@
 (declare-fun x () (Set Int))
 (declare-fun y () (Set Int))
 
-(assert (= x (comprehension ((z Int)) (> z 4) (* 5 z))))
-(assert (= y (comprehension ((z Int)) (< z 10) (+ (* 5 z) 1))))
+(assert (= x (set.comprehension ((z Int)) (> z 4) (* 5 z))))
+(assert (= y (set.comprehension ((z Int)) (< z 10) (+ (* 5 z) 1))))
 
-(assert (not (= (intersection x y) (as emptyset (Set Int)))))
+(assert (not (= (set.intersection x y) (as set.empty (Set Int)))))
 
 (check-sat)
index 1b1a13b345fba7991e297d9b5e41cdc7f7fcc6e7..5d2a656196883178a3392c309f6b213392040db6 100644 (file)
@@ -5,12 +5,12 @@
 
 (declare-fun x () (Set Int))
 
-(assert (subset x (comprehension ((z Int)) true (* 2 z))))
+(assert (set.subset x (set.comprehension ((z Int)) true (* 2 z))))
 
 (declare-fun a () Int)
 (declare-fun b () Int)
 
 (assert (= a (+ (* 8 b) 1)))
-(assert (member a x))
+(assert (set.member a x))
 
 (check-sat)
index aeba4cadc9f35089070b8ba46f99cafa67888566..fdd5926b6826028c1c80e3b2f9dadb0aa2103323 100644 (file)
@@ -5,15 +5,15 @@
 
 (declare-fun x () (Set Int))
 
-(assert (subset (comprehension ((z Int)) (>= z 0) (* 3 z)) x))
+(assert (set.subset (set.comprehension ((z Int)) (>= z 0) (* 3 z)) x))
 
 (declare-fun a () Int)
 (declare-fun b () Int)
 (declare-fun c () Int)
 
-(assert (not (member a x)))
-(assert (not (member b x)))
-(assert (not (member c x)))
+(assert (not (set.member a x)))
+(assert (not (set.member b x)))
+(assert (not (set.member c x)))
 (assert (<= 0 a))
 (assert (<= a b))
 (assert (<= b c))
index af75230b36872baae4140630c3a9bdd1cfa0a09b..6f8e3e1abaa67bf7c36abdc4e661b3b0b08e7400 100644 (file)
@@ -5,8 +5,8 @@
 
 (declare-fun x () (Set Int))
 
-(assert (subset x (comprehension ((z Int)) (> z 0) z)))
+(assert (set.subset x (set.comprehension ((z Int)) (> z 0) z)))
 
-(assert (member 0 x))
+(assert (set.member 0 x))
 
 (check-sat)
index 9af45c2ddd7df16b340fbbd2cae4a492e8b8144a..991470d30575e332ba42436c0a8daa6ed8be1574 100644 (file)
 (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 (member l1 sk_?X_4$0))
-                   (not (member l2 sk_?X_4$0)))))
+                   (not (Btwn$0 next$0 l1 l2 null$0)) (not (set.member l1 sk_?X_4$0))
+                   (not (set.member l2 sk_?X_4$0)))))
    :named sortedness_3))
 
 (assert (! (= (read$1 next$0 null$0) null$0) :named read_null_1))
 
-(assert (! (not (member tmp_2$0 Alloc$0)) :named new_31_11))
+(assert (! (not (set.member tmp_2$0 Alloc$0)) :named new_31_11))
 
-(assert (! (not (member null$0 Alloc$0)) :named initial_footprint_of_copy_23_11_2))
+(assert (! (not (set.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 (! (= FP_Caller$0 (union FP$0 FP_Caller$0))
+(assert (! (= FP_Caller$0 (set.union FP$0 FP_Caller$0))
    :named precondition_of_copy_23_11_4))
 
 (assert (! (= sk_?X_4$0 FP$0) :named precondition_of_copy_23_11_5))
@@ -67,7 +67,7 @@
 
 (assert (! (= cp_2$0 res_1$0) :named assign_32_4))
 
-(assert (! (= FP_1$0 (union FP$0 (singleton tmp_2$0))) :named assign_31_11))
+(assert (! (= FP_1$0 (set.union FP$0 (set.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)
-                    (member l1 (slseg_domain$0 data$0 next$0 lst$0 null$0))
+                    (set.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 (member l1 (slseg_domain$0 data$0 next$0 lst$0 null$0))))))
+                    (not (set.member l1 (slseg_domain$0 data$0 next$0 lst$0 null$0))))))
    :named slseg_footprint_2))
 
-(assert (! (not (member curr_2$0 FP_1$0)) :named check_heap_access_33_4))
+(assert (! (not (set.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 (! (= sk_?X_4$0 (slseg_domain$0 data$0 next$0 lst$0 null$0))
    :named precondition_of_copy_23_11_7))
 
-(assert (! (= Alloc$0 (union FP_Caller$0 Alloc$0))
+(assert (! (= Alloc$0 (set.union FP_Caller$0 Alloc$0))
    :named initial_footprint_of_copy_23_11_3))
 
 (assert (! (= curr_2$0 lst$0) :named assign_30_4))
 
-(assert (! (= FP_Caller_1$0 (setminus FP_Caller$0 FP$0)) :named assign_26_2_1))
+(assert (! (= FP_Caller_1$0 (set.minus FP_Caller$0 FP$0)) :named assign_26_2_1))
 
-(assert (! (= Alloc_1$0 (union Alloc$0 (singleton tmp_2$0))) :named assign_31_11_1))
+(assert (! (= Alloc_1$0 (set.union Alloc$0 (set.singleton tmp_2$0))) :named assign_31_11_1))
 
 (assert (! (forall ((?x Loc)) (Btwn$0 next$0 ?x ?x ?x)) :named btwn_refl_1))
 
index 426661ba27c725f8ba0b42d1726391e1a93a9b7d..7c5e09b5af6abe4c53dafb2e49c658dd7f7e55de 100644 (file)
@@ -3,15 +3,15 @@
 (set-info :status 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 (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_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
 ;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
-(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
 ;(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (= smt_set_emp (smt_set_dif s1 s2)))
-(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 (declare-fun z3v58 () Int)
 (declare-fun z3v59 () Int)
 (assert (distinct z3v58 z3v59))
index 5aef5d15d4eca3de82d13fbd6650d4501044d76e..8a696e12961e9f06a2cabb946afdbe1eeeff1ead 100644 (file)
@@ -4,5 +4,5 @@
 (set-option :fmf-fun true)
 (declare-sort a 0)
 (declare-const b (Set a))
-(assert (= (card b) 0))
+(assert (= (set.card b) 0))
 (check-sat)
index 2c7acf2821ea193a1f68abb130c5669487aaddcd..25724a31e5cec5a6a193effc751a0e02bd35867f 100644 (file)
@@ -5,7 +5,7 @@
 (declare-datatype Color ((Red) (Green) (Blue)))
 (declare-fun A () (Set (Array Color Color)))
 (declare-fun B () (Set (Array Color Color)))
-(assert (> (card A) 25))
-(assert (> (card B) 25))
+(assert (> (set.card A) 25))
+(assert (> (set.card B) 25))
 (assert (distinct A B))
 (check-sat)
index 95d36339701cc68a5cdde9386ba96c29d897593c..d774e3b8ed267dd5954ab5a13cd578178b94490f 100644 (file)
@@ -5,6 +5,6 @@
 
 (declare-fun S () (Set (Array Int Unit)))
 
-(assert (> (card S) 1))
+(assert (> (set.card S) 1))
 
 (check-sat)
index eded56674eca673a33587bb30d94f386b82d7152..aa5b62d09534f915d76ce5d0dc010f4411211151 100644 (file)
@@ -5,8 +5,8 @@
 (declare-fun A () (Set Bool))
 (declare-fun B () (Set Bool))
 (declare-fun universe () (Set Bool))
-(assert (= (card A) 2))
-(assert (= (card B) 2))
-(assert (= (intersection A B) (as emptyset (Set Bool))))
-(assert (= universe (as univset (Set Bool))))
+(assert (= (set.card A) 2))
+(assert (= (set.card B) 2))
+(assert (= (set.intersection A B) (as set.empty (Set Bool))))
+(assert (= universe (as set.universe (Set Bool))))
 (check-sat)
index 7d3421463738fb1b4c92d5bb71aac48a4d22905b..161312cab8688eb1ea53242f7dff8f1f2da8e68d 100644 (file)
@@ -4,7 +4,7 @@
 (set-option :sets-ext true)
 (declare-fun A () (Set Bool))
 (declare-fun universe () (Set Bool))
-(assert (= (card A) 2))
-(assert (= universe (as univset (Set Bool))))
+(assert (= (set.card A) 2))
+(assert (= universe (as set.universe (Set Bool))))
 (check-sat)
 
index 4c83655edcbebd1d05320fa87ad5ff51713a0f09..89daac5c7806ce611c8d89ac2c81643d3959090b 100644 (file)
@@ -5,8 +5,8 @@
 (declare-fun A () (Set Bool))
 (declare-fun B () (Set Bool))
 (declare-fun universe () (Set Bool))
-(assert (= (card A) 2))
-(assert (= (card B) 2))
-(assert (= universe (as univset (Set Bool))))
+(assert (= (set.card A) 2))
+(assert (= (set.card B) 2))
+(assert (= universe (as set.universe (Set Bool))))
 (check-sat)
 
index 1e18597dc974f56fafbea091768d89e38199e234..90bd422b5c5548445526ebece5851680e1162c06 100644 (file)
@@ -4,6 +4,6 @@
 (set-option :produce-models true)
 (declare-fun A () (Set Bool))
 (declare-fun x () Bool)
-(assert (member (member x A) A))
-(assert (> (card A) 1))
+(assert (set.member (set.member x A) A))
+(assert (> (set.card A) 1))
 (check-sat)
index 150dd5cffde17ef6195e7898c997b75527aad108..9849ea2118a3248a23181dd6005a78c4d17ce8db 100644 (file)
@@ -3,8 +3,8 @@
 (set-option :sets-ext true)
 (declare-fun A () (Set Bool))
 (declare-fun x () Bool)
-(assert (member (member x A) A))
-(assert (> (card A) 1))
+(assert (set.member (set.member x A) A))
+(assert (> (set.card A) 1))
 (declare-fun U () (Set Bool))
-(assert (= U (as univset (Set Bool))))
+(assert (= U (as set.universe (Set Bool))))
 (check-sat)
index 535646c7b7d9b0d98f173cff82579bb647a93fc5..9ecc6a3aaa972730678bbb4d013d8960be70d0ef 100644 (file)
@@ -4,7 +4,7 @@
 (set-option :sets-ext true)
 (declare-fun A () (Set (_ BitVec 3)))
 (declare-fun universe () (Set (_ BitVec 3)))
-(assert (= (card A) 3))
-(assert (= universe (as univset (Set (_ BitVec 3)))))
+(assert (= (set.card A) 3))
+(assert (= universe (as set.universe (Set (_ BitVec 3)))))
 (check-sat)
 
index 4eb8fc2692bd7c493a8a6c70821833a737733dd5..91bf1905a0129d91c52477e32b839c6ba39f45b3 100644 (file)
@@ -5,12 +5,12 @@
 (declare-fun A () (Set (_ BitVec 3)))
 (declare-fun B () (Set (_ BitVec 3)))
 (declare-fun universe () (Set (_ BitVec 3)))
-(assert (= (card A) 5))
-(assert (= (card B) 5))
+(assert (= (set.card A) 5))
+(assert (= (set.card B) 5))
 (assert (not (= A B)))
-(assert (= (card (intersection A B)) 2))
-(assert (= (card (setminus A B)) 3))
-(assert (= (card (setminus B A)) 3))
-(assert (= universe (as univset (Set (_ BitVec 3)))))
+(assert (= (set.card (set.intersection A B)) 2))
+(assert (= (set.card (set.minus A B)) 3))
+(assert (= (set.card (set.minus B A)) 3))
+(assert (= universe (as set.universe (Set (_ BitVec 3)))))
 (check-sat)
 
index 6e26ef4c71a1012afd6343ce964cddab2ae7e84f..adbe515077551713c34d1292c29df7b07f05e102 100644 (file)
@@ -6,14 +6,14 @@
 (declare-fun B () (Set (_ BitVec 3)))
 (declare-fun universe () (Set (_ BitVec 3)))
 (declare-fun x () (_ BitVec 3))
-(assert (= (card A) 3))
-(assert (= (card B) 3))
+(assert (= (set.card A) 3))
+(assert (= (set.card B) 3))
 (assert (not (= A B)))
-(assert (= (card (intersection A B)) 1))
-(assert (= (card (setminus A B)) 2))
-(assert (= (card (setminus B A)) 2))
-(assert (not (member x A)))
-(assert (not (member x B)))
-(assert (= universe (as univset (Set (_ BitVec 3)))))
+(assert (= (set.card (set.intersection A B)) 1))
+(assert (= (set.card (set.minus A B)) 2))
+(assert (= (set.card (set.minus B A)) 2))
+(assert (not (set.member x A)))
+(assert (not (set.member x B)))
+(assert (= universe (as set.universe (Set (_ BitVec 3)))))
 (check-sat)
 
index 4fc6b734704b5ce0a681c1d235c87c4f99cdf63a..2ccbc8a58fe23554404e8aab75e938a9909094d8 100644 (file)
@@ -6,13 +6,13 @@
 (declare-fun B () (Set (_ BitVec 3)))
 (declare-fun universe () (Set (_ BitVec 3)))
 (declare-fun x () (_ BitVec 3))
-(assert (= (card A) 5))
-(assert (= (card B) 5))
+(assert (= (set.card A) 5))
+(assert (= (set.card B) 5))
 (assert (not (= A B)))
-(assert (= (card (intersection A B)) 2))
-(assert (= (card (setminus A B)) 3))
-(assert (= (card (setminus B A)) 3))
-(assert (= universe (as univset (Set (_ BitVec 3)))))
-(assert (not (member x A)))
-(assert (not (member x B)))
+(assert (= (set.card (set.intersection A B)) 2))
+(assert (= (set.card (set.minus A B)) 3))
+(assert (= (set.card (set.minus B A)) 3))
+(assert (= universe (as set.universe (Set (_ BitVec 3)))))
+(assert (not (set.member x A)))
+(assert (not (set.member x B)))
 (check-sat)
index ca8015622f5b1789070b3bda795a114bb6b375ba..c2d2e0724f72106032b81643a77766e8e393a03a 100644 (file)
@@ -5,10 +5,10 @@
 (declare-datatype Color ((Red) (Green) (Blue) (Purple)))
 (declare-fun A () (Set Color))
 (declare-fun B () (Set Color))
-(assert (> (card A) (card B) ))
-(assert (member Red B))
+(assert (> (set.card A) (set.card B) ))
+(assert (set.member Red B))
 (declare-fun d () Color)
 (assert (not (= d Red)))
-(assert (member d B))
-(assert (not (member Green A)))
+(assert (set.member d B))
+(assert (not (set.member Green A)))
 (check-sat)
index 4fe3f042886432389b15822168619b94f93131c2..73db8105d9963c06d260ce07f7926a3f7e7a3c1a 100644 (file)
@@ -5,10 +5,10 @@
 (declare-datatype Color ((Red) (Green) (Blue)))
 (declare-fun A () (Set Color))
 (declare-fun B () (Set Color))
-(assert (> (card A) (card B) ))
-(assert (member Red B))
+(assert (> (set.card A) (set.card B) ))
+(assert (set.member Red B))
 (declare-fun d () Color)
 (assert (not (= d Red)))
-(assert (member d B))
-(assert (not (member Green A)))
+(assert (set.member d B))
+(assert (not (set.member Green A)))
 (check-sat)
index 681033794a0efe493587a23b8edbcfc0c59afb99..4c113c84b7ef010b37c47f97cabd045366495629 100644 (file)
@@ -7,8 +7,8 @@
 (declare-fun B () (Set Rec))
 (declare-fun universe () (Set Rec))
 (declare-fun x () Rec)
-(assert (= (card A) 5))
-(assert (= (card B) 5))
-(assert (= (card (intersection A B)) 1))
-(assert (= universe (as univset (Set Rec))))
+(assert (= (set.card A) 5))
+(assert (= (set.card B) 5))
+(assert (= (set.card (set.intersection A B)) 1))
+(assert (= universe (as set.universe (Set Rec))))
 (check-sat)
index eb45d9ef9052954085d0549f40073bf72f98ac37..4c9bdadd58ae7c06935c53ba6ff05c04b51d1692 100644 (file)
@@ -6,8 +6,8 @@
 (declare-fun A () (Set Rec))
 (declare-fun B () (Set Rec))
 (declare-fun universe () (Set Rec))
-(assert (= (card A) 9))
-(assert (= (card B) 9))
-(assert (= (card (intersection A B)) 1))
-(assert (= universe (as univset (Set Rec))))
+(assert (= (set.card A) 9))
+(assert (= (set.card B) 9))
+(assert (= (set.card (set.intersection A B)) 1))
+(assert (= universe (as set.universe (Set Rec))))
 (check-sat)
index b4bd97f1d1ebaa3c0229541daa7b0779c89bb0af..0999c6569cf2798f46ca5359671d1a17f00d7eee 100644 (file)
@@ -8,23 +8,23 @@
 (declare-fun D () (Set (_ BitVec 2)))
 
 (declare-fun x () (_ BitVec 2))
-(assert (not (member x A)))
-(assert (not (member x B)))
-(assert (not (member x C)))
-(assert (not (member x D)))
+(assert (not (set.member x A)))
+(assert (not (set.member x B)))
+(assert (not (set.member x C)))
+(assert (not (set.member x D)))
 (declare-fun y () (_ BitVec 2))
-(assert (not (member y A)))
-(assert (not (member y B)))
-(assert (not (member y C)))
-(assert (not (member y D)))
+(assert (not (set.member y A)))
+(assert (not (set.member y B)))
+(assert (not (set.member y C)))
+(assert (not (set.member y D)))
 (declare-fun z () (_ BitVec 2))
-(assert (not (member z A)))
-(assert (not (member z B)))
-(assert (not (member z C)))
-(assert (not (member z D)))
+(assert (not (set.member z A)))
+(assert (not (set.member z B)))
+(assert (not (set.member z C)))
+(assert (not (set.member z D)))
 
 (assert (distinct x y z))
 
-(assert (= (card (union A (union B (union C D)))) 2))
+(assert (= (set.card (set.union A (set.union B (set.union C D)))) 2))
 
 (check-sat)
index 88825a600aed5df0b8e6ae7e983f3899e220901d..73781a91ae9d1343a723a33d44e83011684bb863 100644 (file)
@@ -8,23 +8,23 @@
 (declare-fun D () (Set (_ BitVec 3)))
 
 (declare-fun x () (_ BitVec 3))
-(assert (not (member x A)))
-(assert (not (member x B)))
-(assert (not (member x C)))
-(assert (not (member x D)))
+(assert (not (set.member x A)))
+(assert (not (set.member x B)))
+(assert (not (set.member x C)))
+(assert (not (set.member x D)))
 (declare-fun y () (_ BitVec 3))
-(assert (not (member y A)))
-(assert (not (member y B)))
-(assert (not (member y C)))
-(assert (not (member y D)))
+(assert (not (set.member y A)))
+(assert (not (set.member y B)))
+(assert (not (set.member y C)))
+(assert (not (set.member y D)))
 (declare-fun z () (_ BitVec 3))
-(assert (not (member z A)))
-(assert (not (member z B)))
-(assert (not (member z C)))
-(assert (not (member z D)))
+(assert (not (set.member z A)))
+(assert (not (set.member z B)))
+(assert (not (set.member z C)))
+(assert (not (set.member z D)))
 
 (assert (distinct x y z))
 
-(assert (= (card (union A (union B (union C D)))) 6))
+(assert (= (set.card (set.union A (set.union B (set.union C D)))) 6))
 
 (check-sat)
index 9b65102a643d61f1598fdf2536eb563c44bf64dc..2fb60cb7237eff6496a85bffc681a2b8dc490250 100644 (file)
 (let ((e10 (f0 v0)))
 (let ((e11 (* (- e5) e10)))
 (let ((e12 (ite (p0 e7 e6) 1 0)))
-(let ((e13 (union v3 v4)))
-(let ((e14 (setminus v2 v2)))
+(let ((e13 (set.union v3 v4)))
+(let ((e14 (set.minus v2 v2)))
 (let ((e15 (f1 v1 v4 v1)))
 (let ((e16 (f1 e14 v1 v4)))
-(let ((e17 (intersection e16 e15)))
+(let ((e17 (set.intersection e16 e15)))
 (let ((e18 (f1 v4 e15 v2)))
-(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 ((e19 (ite (p1 e13) (set.singleton 1) (set.singleton 0))))
+(let ((e20 (set.member v0 e17)))
+(let ((e21 (set.member e7 e16)))
+(let ((e22 (set.member e10 e16)))
+(let ((e23 (set.member e8 e17)))
+(let ((e24 (set.member e9 e14)))
+(let ((e25 (set.member e8 e16)))
+(let ((e26 (set.member v0 e13)))
+(let ((e27 (set.member e12 v4)))
+(let ((e28 (set.member e8 e14)))
+(let ((e29 (set.member e8 v1)))
+(let ((e30 (set.member e10 e13)))
+(let ((e31 (set.member e7 e13)))
 (let ((e32 (f1 e13 e13 e13)))
 (let ((e33 (f1 e18 v4 e17)))
 (let ((e34 (f1 v2 v2 e15)))
index f9dbaeb75cdc9c0b4094531d3856bf5f8ce4f141..3094a8d8400ce2dbfaada24847f04f1a30ace846 100644 (file)
@@ -1,5 +1,5 @@
 ; symptom: unsat instead of sat
-; issue/fix: buggy rewriter for setminus
+; issue/fix: buggy rewriter for set.minus
 (set-info :source |fuzzsmt|)
 (set-info :smt-lib-version 2.6)
 (set-info :category "random")
 (let ((e13 (* e7 (- e3))))
 (let ((e14 (f0 e7)))
 (let ((e15 (ite (p0 e9) 1 0)))
-(let ((e16 (setminus v2 v1)))
-(let ((e17 (setminus v1 v2)))
-(let ((e18 (union e17 e17)))
-(let ((e19 (intersection e17 v1)))
-(let ((e20 (intersection e17 e18)))
-(let ((e21 (intersection v1 e16)))
-(let ((e22 (setminus e20 e16)))
-(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) (singleton 1) (singleton 0))))
+(let ((e16 (set.minus v2 v1)))
+(let ((e17 (set.minus v1 v2)))
+(let ((e18 (set.union e17 e17)))
+(let ((e19 (set.intersection e17 v1)))
+(let ((e20 (set.intersection e17 e18)))
+(let ((e21 (set.intersection v1 e16)))
+(let ((e22 (set.minus e20 e16)))
+(let ((e23 (ite (p1 v2 e18 e21) (set.singleton 1) (set.singleton 0))))
+(let ((e24 (set.minus e17 e23)))
+(let ((e25 (set.union v2 e22)))
+(let ((e26 (set.union e24 e18)))
+(let ((e27 (ite (p1 e20 e19 e25) (set.singleton 1) (set.singleton 0))))
 (let ((e28 (f1 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 ((e29 (set.member e14 e17)))
+(let ((e30 (set.member e13 e23)))
+(let ((e31 (set.member e11 e25)))
+(let ((e32 (set.member e6 v1)))
+(let ((e33 (set.member e9 v1)))
+(let ((e34 (set.member v0 e28)))
+(let ((e35 (set.member e9 e16)))
+(let ((e36 (set.member e4 e17)))
+(let ((e37 (set.member e9 e18)))
+(let ((e38 (set.member e14 e25)))
+(let ((e39 (set.member e14 v2)))
+(let ((e40 (set.member v0 v1)))
+(let ((e41 (set.member e4 e16)))
+(let ((e42 (set.member e15 e21)))
+(let ((e43 (set.member e7 e22)))
+(let ((e44 (set.member e11 v2)))
+(let ((e45 (set.member e14 e22)))
+(let ((e46 (set.member e11 e16)))
+(let ((e47 (set.member e15 e22)))
+(let ((e48 (set.member e10 e23)))
+(let ((e49 (set.member e4 e21)))
+(let ((e50 (set.member e5 e28)))
+(let ((e51 (set.member e6 e28)))
+(let ((e52 (set.member v0 e22)))
+(let ((e53 (set.member e14 e20)))
 (let ((e54 (f1 e21)))
 (let ((e55 (f1 e28)))
 (let ((e56 (f1 e27)))
index 9a7a7510a78cc904c8dea111d233b84250e4a0bc..e86901f9a42fceeea58a02393df26b71d290c1e3 100644 (file)
 (let ((e8 (* e6 (- e5))))
 (let ((e9 (ite (p0 e7 v0 e6) 1 0)))
 (let ((e10 (f0 v0 e8 e8)))
-(let ((e11 (ite (p1 v1) (singleton 1) (singleton 0))))
-(let ((e12 (union v3 v3)))
-(let ((e13 (intersection v3 v1)))
-(let ((e14 (ite (p1 v3) (singleton 1) (singleton 0))))
-(let ((e15 (intersection v2 e14)))
-(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) (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) (singleton 1) (singleton 0))))
-(let ((e27 (setminus e17 e15)))
+(let ((e11 (ite (p1 v1) (set.singleton 1) (set.singleton 0))))
+(let ((e12 (set.union v3 v3)))
+(let ((e13 (set.intersection v3 v1)))
+(let ((e14 (ite (p1 v3) (set.singleton 1) (set.singleton 0))))
+(let ((e15 (set.intersection v2 e14)))
+(let ((e16 (ite (p1 e11) (set.singleton 1) (set.singleton 0))))
+(let ((e17 (ite (p1 v4) (set.singleton 1) (set.singleton 0))))
+(let ((e18 (set.union e15 v2)))
+(let ((e19 (ite (p1 e16) (set.singleton 1) (set.singleton 0))))
+(let ((e20 (set.intersection e18 v3)))
+(let ((e21 (set.minus v4 e12)))
+(let ((e22 (set.union v3 v2)))
+(let ((e23 (set.minus e12 v4)))
+(let ((e24 (set.minus v3 e16)))
+(let ((e25 (set.intersection e19 e20)))
+(let ((e26 (ite (p1 e15) (set.singleton 1) (set.singleton 0))))
+(let ((e27 (set.minus e17 e15)))
 (let ((e28 (f1 e23 e12)))
-(let ((e29 (member e10 e16)))
-(let ((e30 (member e10 v1)))
-(let ((e31 (member e7 e19)))
+(let ((e29 (set.member e10 e16)))
+(let ((e30 (set.member e10 v1)))
+(let ((e31 (set.member e7 e19)))
 (let ((e32 (f1 e12 e12)))
 (let ((e33 (f1 e16 e25)))
 (let ((e34 (f1 v1 e27)))
index ee697065fd12a9be68ec295293aaf66e525c557b..f6d032f113dfe3e6ffa5413e8625f0e28f17a418 100644 (file)
@@ -4,9 +4,9 @@
 (declare-const universe (Set (Array Int Int)))
 (declare-const A (Set (Array Int Int)))
 (declare-const B (Set (Array Int Int)))
-(assert (= (card universe) 3))
-(assert (= (card A) 2))
-(assert (= (card B) 2))
-(assert (= (intersection A B) (as emptyset (Set (Array Int Int)))))
-(assert (= universe (as univset (Set (Array Int Int)))))
+(assert (= (set.card universe) 3))
+(assert (= (set.card A) 2))
+(assert (= (set.card B) 2))
+(assert (= (set.intersection A B) (as set.empty (Set (Array Int Int)))))
+(assert (= universe (as set.universe (Set (Array Int Int)))))
 (check-sat)
index fe8ce9142ffc5269387980fcab378b4ba12e73b4..d7e6a758cff0f878a241e7477c87a442b1612f00 100644 (file)
@@ -4,9 +4,9 @@
 (declare-const universe (Set (Array Int Int)))
 (declare-const A (Set (Array Int Int)))
 (declare-const B (Set (Array Int Int)))
-(assert (= (card universe) 3))
-(assert (= (card A) 1))
-(assert (= (card B) 2))
-(assert (= (intersection A B) (as emptyset (Set (Array Int Int)))))
-(assert (= universe (as univset (Set (Array Int Int)))))
+(assert (= (set.card universe) 3))
+(assert (= (set.card A) 1))
+(assert (= (set.card B) 2))
+(assert (= (set.intersection A B) (as set.empty (Set (Array Int Int)))))
+(assert (= universe (as set.universe (Set (Array Int Int)))))
 (check-sat)
index 573ff56daf773c690ea7fdcca8108d32aa80ad76..c649c9be20eb0b6e7f5a7cc6f0fc5166ae395e15 100644 (file)
@@ -1,12 +1,12 @@
 (set-logic QF_ALL)
 (set-option :sets-ext true)
 (set-info :status unsat)
-(assert (= (card (as univset (Set Int))) 10))
+(assert (= (set.card (as set.universe (Set Int))) 10))
 (declare-const universe (Set Int))
 (declare-const A (Set Int))
 (declare-const B (Set Int))
-(assert (= (card A) 6))
-(assert (= (card B) 5))
-(assert (= (intersection A B) (as emptyset (Set Int))))
-(assert (= universe (as univset (Set Int))))
+(assert (= (set.card A) 6))
+(assert (= (set.card B) 5))
+(assert (= (set.intersection A B) (as set.empty (Set Int))))
+(assert (= universe (as set.universe (Set Int))))
 (check-sat)
index 9d8fee7c39a240fa123c365db2abdf5e1167bc65..b3958e79e7efe2f2e0c592d2e038b3864a3ec29a 100644 (file)
@@ -1,12 +1,12 @@
 (set-logic QF_ALL)
 (set-option :sets-ext true)
 (set-info :status sat)
-(assert (= (card (as univset (Set Int))) 10))
+(assert (= (set.card (as set.universe (Set Int))) 10))
 (declare-const universe (Set Int))
 (declare-const A (Set Int))
 (declare-const B (Set Int))
-(assert (= (card A) 5))
-(assert (= (card B) 5))
-(assert (= (intersection A B) (as emptyset (Set Int))))
-(assert (= universe (as univset (Set Int))))
+(assert (= (set.card A) 5))
+(assert (= (set.card B) 5))
+(assert (= (set.intersection A B) (as set.empty (Set Int))))
+(assert (= universe (as set.universe (Set Int))))
 (check-sat)
index 2ef07f9200d635ae768982ec16ed4103b742ffc6..cac805531c3a67d4bf73972335a9ff879d6fbdad 100644 (file)
 (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 (member l1 sk_?X$0))
-                   (not (member l2 sk_?X$0)))))
+                   (not (Btwn$0 next$0 l1 l2 null$0)) (not (set.member l1 sk_?X$0))
+                   (not (set.member l2 sk_?X$0)))))
    :named strict_sortedness))
 
 (assert (! (forall ((l1 Loc))
            (or (= l1 null$0)
-               (member (read$0 data$0 l1)
+               (set.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))
@@ -78,7 +78,7 @@
               (witness$0 (read$0 data$0 curr_2$0)
                 (sorted_set_c$0 data$0 next$0 lst$0 null$0))
               null$0)
-            (member (read$0 data$0 curr_2$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 curr_2$0)
+                 (set.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)
-            (member (read$0 data$0 prev_2$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 prev_2$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l1$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l1$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l1_1$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l1_1$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l2$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l2$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l2_1$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l2_1$0)
+                 (set.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)
-            (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))
+            (set.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))))
-                 (member
+                 (set.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 (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
+            (not (set.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)
-            (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))
+            (set.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))))
-                 (member
+                 (set.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 (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 null$0)))))
+            (not (set.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)
-               (member (read$0 data$0 l1)
+               (set.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)
-               (member (read$0 data$0 l1)
+               (set.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)
-            (member (read$0 data$0 curr_2$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 curr_2$0)
+                 (set.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)
-            (member (read$0 data$0 prev_2$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 prev_2$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l1$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l1$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l1_1$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l1_1$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l2$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l2$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l2_1$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l2_1$0)
+                 (set.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)
-            (member sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
+            (set.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))))
-                 (member
+                 (set.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 (member sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))))
+            (not (set.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)
-            (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0)))
+            (set.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))))
-                 (member
+                 (set.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
-                 (member sk_?e_3$0
+                 (set.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)
-            (member (read$0 data$0 curr_2$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 curr_2$0)
+                 (set.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)
-            (member (read$0 data$0 prev_2$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 prev_2$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l1$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l1$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l1_1$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l1_1$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l2$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l2$0)
+                 (set.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)
-            (member (read$0 data$0 sk_l2_1$0)
+            (set.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))))
-                 (member
+                 (set.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
-                 (member (read$0 data$0 sk_l2_1$0)
+                 (set.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)
-            (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
+            (set.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))))
-                 (member
+                 (set.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 (member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
+            (not (set.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)
-            (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))
+            (set.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))))
-                 (member
+                 (set.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
-                 (member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0)))))
+                 (set.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)
-                    (member l1 (sorted_set_domain$0 data$0 next$0 lst$0 null$0))
+                    (set.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
-                         (member l1
+                         (set.member l1
                            (sorted_set_domain$0 data$0 next$0 lst$0 null$0))))))
    :named sorted_set_footprint))
 
-(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)
+(assert (! (or (set.member sk_?e_3$0 c2_2$0)
+       (and (set.member sk_?e_2$0 sk_FP_1$0) (not (set.member sk_?e_2$0 FP$0)))
+       (and (set.member sk_?e_3$0 (set.union c1_2$0 c2_2$0))
+            (not (set.member sk_?e_3$0 content$0)))
+       (and (set.member sk_?e_3$0 c1_2$0)
             (not
-                 (member sk_?e_3$0
+                 (set.member sk_?e_3$0
                    (sorted_set_c$0 data$0 next$0 curr_2$0 null$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 (set.member sk_?e_3$0 content$0)
+            (not (set.member sk_?e_3$0 (set.union c1_2$0 c2_2$0))))
+       (and (set.member sk_?e_3$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
+            (not (set.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 (! (= sk_?X_3$0 (sorted_set_domain$0 data$0 next$0 curr_2$0 null$0))
    :named invariant_37_2_3))
 
-(assert (! (= sk_?X_1$0 (union sk_?X_3$0 sk_?X_4$0)) :named invariant_37_2_4))
+(assert (! (= sk_?X_1$0 (set.union sk_?X_3$0 sk_?X_4$0)) :named invariant_37_2_4))
 
-(assert (! (= FP_Caller$0 (union FP$0 FP_Caller$0))
+(assert (! (= FP_Caller$0 (set.union FP$0 FP_Caller$0))
    :named precondition_of_insert_27_11))
 
 (assert (! (= sk_?X$0 FP$0) :named precondition_of_insert_27_11_1))
 
-(assert (! (= Alloc$0 (union FP_Caller$0 Alloc$0))
+(assert (! (= Alloc$0 (set.union FP_Caller$0 Alloc$0))
    :named initial_footprint_of_insert_27_11))
 
 (assert (! (= curr_2$0 lst$0) :named assign_31_2))
 
 (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) (member sk_l1$0 sk_?X_3$0)
-               (member 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) (set.member sk_l1$0 sk_?X_3$0)
+               (set.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)
-                    (member l1
+                    (set.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
-                         (member l1
+                         (set.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)
-                    (member l1
+                    (set.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
-                         (member l1
+                         (set.member l1
                            (sorted_set_domain$0 data$0 next$0 curr_2$0
                              null$0))))))
    :named sorted_set_footprint_2))
 
-(assert (! (not (member null$0 Alloc$0)) :named initial_footprint_of_insert_27_11_1))
+(assert (! (not (set.member null$0 Alloc$0)) :named initial_footprint_of_insert_27_11_1))
 
 (assert (! (or (= prev_2$0 curr_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)))
+       (set.member sk_?e_1$0 (set.intersection sk_?X_4$0 sk_?X_3$0))
+       (and (set.member sk_?e_1$0 sk_FP$0) (not (set.member sk_?e_1$0 FP$0)))
+       (and (set.member sk_?e$0 (set.union c1_2$0 c2_2$0)) (not (set.member sk_?e$0 content$0)))
+       (and (set.member sk_?e$0 c1_2$0)
+            (not (set.member sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0))))
+       (and (set.member sk_?e$0 c2_2$0)
+            (not (set.member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))))
+       (and (set.member sk_?e$0 content$0) (not (set.member sk_?e$0 (set.union c1_2$0 c2_2$0))))
+       (and (set.member sk_?e$0 (sorted_set_c$0 data$0 next$0 curr_2$0 null$0))
+            (not (set.member sk_?e$0 c1_2$0)))
+       (and (set.member sk_?e$0 (sorted_set_c$0 data$0 next$0 lst$0 curr_2$0))
+            (not (set.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 (! (= prev_2$0 null$0) :named assign_32_2))
 
-(assert (! (= c2_2$0 (as emptyset SetInt)) :named assign_35_2))
+(assert (! (= c2_2$0 (as set.empty SetInt)) :named assign_35_2))
 
-(assert (! (= FP_Caller_1$0 (setminus FP_Caller$0 FP$0)) :named assign_29_0))
+(assert (! (= FP_Caller_1$0 (set.minus FP_Caller$0 FP$0)) :named assign_29_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)
-               (member sk_l1_1$0 sk_?X_5$0) (member sk_l2_1$0 sk_?X_5$0)
+               (set.member sk_l1_1$0 sk_?X_5$0) (set.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))
index a6f1961cd6b7c0ad7977c5dcac8e81c45f76cda1..b641e8ef9adaa6183dbfc56bc0d5fa5f6a5e0936 100644 (file)
@@ -4,8 +4,8 @@
 (set-info :status sat)
 (declare-fun S () (Set Int))
 (declare-fun x () Int)
-(assert (= (choose (singleton x)) 5))
-(assert (= (singleton x) S))
-(assert (is_singleton S))
-(assert (is_singleton (singleton 3)))
+(assert (= (set.choose (set.singleton x)) 5))
+(assert (= (set.singleton x) S))
+(assert (set.is_singleton S))
+(assert (set.is_singleton (set.singleton 3)))
 (check-sat)
index 17a05c8769c0c7bc7cc15aa9791effa73bb837f8..80bcf1619ab3dd76792efd46cc318614ae2522f4 100644 (file)
@@ -10,7 +10,7 @@
 (declare-fun s () (Set Int))
 (declare-fun u () Unit)
 
-(assert (= s (insert y s)))
+(assert (= s (set.insert y s)))
 (assert (=> b (= uu u)))
 
 (push 1)
index 49268953dd23ebce1ad23136a52ccb0c48094b06..c39ea09ba2ba691f3edd3792f7b00a316c636442 100644 (file)
@@ -9,18 +9,18 @@
 (declare-fun b () (Set Int))
 (declare-fun c () (Set Int))
 (declare-fun UNIVERALSET () (Set Int))
-(assert (subset b UNIVERALSET))
-(assert (subset c UNIVERALSET))
+(assert (set.subset b UNIVERALSET))
+(assert (set.subset c UNIVERALSET))
 
 (assert (> n 0))
-(assert (= (card UNIVERALSET) n))
-(assert (= (card b) m))
-(assert (= (card c) (- f m)))
+(assert (= (set.card UNIVERALSET) n))
+(assert (= (set.card b) m))
+(assert (= (set.card c) (- f m)))
 (assert (>= m 0))
 (assert (>= f m))
 (assert (> n (+ (* 2 f) m)))
 
 
-(assert (>= (card (setminus UNIVERALSET (intersection (setminus UNIVERALSET b) (setminus UNIVERALSET c)))) n))
+(assert (>= (set.card (set.minus UNIVERALSET (set.intersection (set.minus UNIVERALSET b) (set.minus UNIVERALSET c)))) n))
 
 (check-sat)
index 46507df2a04a7bfefcd2a59b4cf48a713d8b4e9c..c06a753e1087726fc07442a82bc5a409f0d0ec68 100644 (file)
@@ -6,8 +6,8 @@
 (declare-fun d () (Set (Tuple String String))) 
 (declare-fun f () (Set Int)) 
 (declare-fun e () Int) 
-(assert (= b (insert (tuple "" 1)  (tuple "" 2) (singleton (tuple "" 4))))) 
-(assert (= c (insert (tuple 1 "1") (tuple 2 "2") (singleton (tuple 7 ""))))) 
-(assert (= d (join b c)))    
-(assert (= e (card f))) 
+(assert (= b (set.insert (tuple "" 1)  (tuple "" 2) (set.singleton (tuple "" 4))))) 
+(assert (= c (set.insert (tuple 1 "1") (tuple 2 "2") (set.singleton (tuple 7 ""))))) 
+(assert (= d (rel.join b c)))    
+(assert (= e (set.card f))) 
 (check-sat)
index aa7349261c0b62934397a101711a141190cf9853..fd3bd62eb09ff379d446cc0db66fedf616904cec 100644 (file)
@@ -2,6 +2,6 @@
 (set-info :status unsat)
 (declare-fun st1 () (Set Int))
 (declare-fun st7 () (Set Int))
-(assert (> 0 (card (intersection st1 (union st7 st1)))))
-(assert (subset st1 st7))
+(assert (> 0 (set.card (set.intersection st1 (set.union st7 st1)))))
+(assert (set.subset st1 st7))
 (check-sat)
index 95425709dcd14e0819941621862ee6b2dbb7acb5..bc2f103d2ee7f0ce643aaaeddc2413fa5c0c95e2 100644 (file)
@@ -2,7 +2,7 @@
 (set-info :status unsat)
 (declare-fun st3 () (Set String))
 (declare-fun st9 () (Set String))
-(assert (is_singleton (intersection st3 st9)))
-(assert (< 1 (card (intersection st3 st9))))
-(assert (is_singleton st9))
+(assert (set.is_singleton (set.intersection st3 st9)))
+(assert (< 1 (set.card (set.intersection st3 st9))))
+(assert (set.is_singleton st9))
 (check-sat)
index a8a0cb62d7535902fa121e493c91fa3e55a2855f..f7a720436319a822e75dbd521ba5255c36a7a015 100644 (file)
@@ -7,10 +7,10 @@
 (declare-fun c () (Set Int))
 (declare-fun e () (Set Int))
 
-(assert (= e (union b e)))
-(assert (= (card b) d))
-(assert (= (card c) 0))
+(assert (= e (set.union b e)))
+(assert (= (set.card b) d))
+(assert (= (set.card c) 0))
 (assert (= 0 (mod 0 d)))
-(assert (> (card (setminus e (intersection (intersection e b) (setminus e c)))) 1))
+(assert (> (set.card (set.minus e (set.intersection (set.intersection e b) (set.minus e c)))) 1))
 
 (check-sat)
index 3c64e1d30dd8d6b2b83adfac73905eb4823f52a9..b8f4f3e8545cf3f3d55f786743165e9b5bddedd7 100644 (file)
@@ -3,6 +3,6 @@
 (set-logic ALL)
 (set-info :status sat)
 (declare-fun s () (Set Int))
-(assert (> (card s) 1))
-(assert (and (member 0 s) (exists ((x Int)) (member (mod x 1) s))))
+(assert (> (set.card s) 1))
+(assert (and (set.member 0 s) (exists ((x Int)) (set.member (mod x 1) s))))
 (check-sat)
index 383b1263e049c25a9f00573264631ce0ce65d1bd..f9f8efbc9826a57213547d2c8444a68149e50e12 100644 (file)
@@ -2,6 +2,6 @@
 (set-info :status sat)
 (declare-const zero Int)
 (declare-fun A () (Set Int))
-(assert (exists ((x Int)) (= A (singleton x))))
-(assert (member (- zero) A))
+(assert (exists ((x Int)) (= A (set.singleton x))))
+(assert (set.member (- zero) A))
 (check-sat)
index e5e7ed65ddf5205e5233d9d673c35836c8d9e56e..1b4943535c54a697ba836d9e9d0c1b8e956183ca 100644 (file)
@@ -2,6 +2,6 @@
 (set-logic ALL)
 (set-info :status unsat)
 (declare-fun S () (Set Int))
-(assert (is_singleton (complement (complement S))))
-(assert (= 2 (card S)))
+(assert (set.is_singleton (set.complement (set.complement S))))
+(assert (= 2 (set.card S)))
 (check-sat)
\ No newline at end of file
index 143ac56c2b086cfc4559812e1ceae2db01e9e3a7..31b28824cc8f32e73ff10e4238f353eafa68ad80 100644 (file)
@@ -2,6 +2,6 @@
 (set-logic ALL)
 (set-info :status unsat)
 (declare-fun S () (Set Int))
-(assert (is_singleton (setminus (as univset (Set Int)) (setminus (as univset (Set Int)) S))))
-(assert (= 2 (card S)))
+(assert (set.is_singleton (set.minus (as set.universe (Set Int)) (set.minus (as set.universe (Set Int)) S))))
+(assert (= 2 (set.card S)))
 (check-sat)
\ No newline at end of file
index df5b2246c2e8dc0f5cdb71b85b6ad74ea706c843..27d014e5344b479df0da24d54713dc3c2b516940 100644 (file)
@@ -2,6 +2,6 @@
 (set-info :status sat)
 (declare-fun s () (Set Real))
 (declare-fun t3 () (Set Real))
-(assert (or (member 1.0 t3) (member 0.0 s)))
-(assert (not (= t3 (setminus s (singleton 1.0)))))
+(assert (or (set.member 1.0 t3) (set.member 0.0 s)))
+(assert (not (= t3 (set.minus s (set.singleton 1.0)))))
 (check-sat)
index 901f60edb9d13c62eb3cd7b90bc65cdc74e501bf..efe02117f24dc9d6c8ec0b1ba420afb730dcc145 100644 (file)
@@ -5,5 +5,5 @@
 (declare-fun r1 () Real)
 (declare-fun st9 () (Set String))
 (declare-fun str2 () String)
-(assert (is_singleton (ite (= str2 (str.substr str2 0 (to_int r1))) st9 (as emptyset (Set String)))))
+(assert (set.is_singleton (ite (= str2 (str.substr str2 0 (to_int r1))) st9 (as set.empty (Set String)))))
 (check-sat)
index be1e36a975d70931a7abb12a7800d212922f08e3..ae71a1edb6962add18946b15829ba6810e0c06bd 100644 (file)
@@ -1,7 +1,7 @@
 ; EXPECT: sat
 
 ; Observed behavior:
-;   --check-model failed for set-term (union (z3f69 z3v151) (singleton z3v143))
+;   --check-model failed for set-term (set.union (z3f69 z3v151) (set.singleton z3v143))
 ; with different set of elements in the model for representative and the node
 ; itself.
 ;
 (set-info :status 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 (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_emp () mySet (as set.empty mySet))
+(define-fun smt_set_mem ((x Elt) (s mySet)) Bool (set.member x s))
+(define-fun smt_set_add ((s mySet) (x Elt)) mySet (set.union s (set.singleton x)))
+(define-fun smt_set_cup ((s1 mySet) (s2 mySet)) mySet (set.union s1 s2))
+(define-fun smt_set_cap ((s1 mySet) (s2 mySet)) mySet (set.intersection s1 s2))
 ;(define-fun smt_set_com ((s mySet)) mySet ((_ map not) s))
-(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (setminus s1 s2))
+(define-fun smt_set_dif ((s1 mySet) (s2 mySet)) mySet (set.minus s1 s2))
 ;(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (= smt_set_emp (smt_set_dif s1 s2)))
-(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (subset s1 s2))
+(define-fun smt_set_sub ((s1 mySet) (s2 mySet)) Bool (set.subset s1 s2))
 
 (declare-fun z3v58 () Int)
 (declare-fun z3v59 () Int)
                         (z3f69 z3v140))))
 
 (assert (= (z3f69 z3v152)
-           (smt_set_cup (singleton z3v143) (z3f69 z3v151))))
+           (smt_set_cup (set.singleton z3v143) (z3f69 z3v151))))
 
 (assert (= (z3f70 z3v152)
-           (smt_set_cup (singleton z3v143) (z3f70 z3v151))))
+           (smt_set_cup (set.singleton z3v143) (z3f70 z3v151))))
 
 (assert (and
         (= (z3f69 z3v142)
-           (smt_set_cup (singleton z3v143) (z3f69 z3v141)))
+           (smt_set_cup (set.singleton z3v143) (z3f69 z3v141)))
         (= (z3f70 z3v142)
-           (smt_set_cup (singleton z3v143) (z3f70 z3v141)))
+           (smt_set_cup (set.singleton z3v143) (z3f70 z3v141)))
          (= z3v142 (z3f92 z3v143 z3v141))
          (= z3v142 z3v144)
          (= (z3f62 z3v61) z3v61)
index 2bf2d4c62a921b22a3389bf4213b018741832d38..c2ff1da2389c4052d0f3a86fbdb41962da7be46a 100644 (file)
    :named btwn_step_10))
 
 (assert (! (forall ((?f FldLoc))
-           (or (member (ep$0 ?f sk_?X_30$0 null$0) sk_?X_30$0)
+           (or (set.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 (member (ep$0 ?f sk_?X_30$0 lst_1$0) sk_?X_30$0)
+           (or (set.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 (member (ep$0 ?f sk_?X_30$0 curr_3$0) sk_?X_30$0)
+           (or (set.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 (member (ep$0 ?f sk_?X_30$0 tmp_2$0) sk_?X_30$0)
+           (or (set.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 (member ?y sk_?X_30$0))))
+               (not (Btwn$0 ?f null$0 ?y ?y)) (not (set.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 (member ?y sk_?X_30$0))))
+               (not (Btwn$0 ?f lst_1$0 ?y ?y)) (not (set.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 (member ?y sk_?X_30$0))))
+               (not (Btwn$0 ?f curr_3$0 ?y ?y)) (not (set.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 (member ?y sk_?X_30$0))))
+               (not (Btwn$0 ?f tmp_2$0 ?y ?y)) (not (set.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 (member ?y sk_?X_30$0))
-               (member (ep$0 ?f sk_?X_30$0 null$0) sk_?X_30$0)))
+           (or (not (Btwn$0 ?f null$0 ?y ?y)) (not (set.member ?y sk_?X_30$0))
+               (set.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 (member ?y sk_?X_30$0))
-               (member (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 (set.member ?y sk_?X_30$0))
+               (set.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 (member ?y sk_?X_30$0))
-               (member (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 (set.member ?y sk_?X_30$0))
+               (set.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 (member ?y sk_?X_30$0))
-               (member (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 (set.member ?y sk_?X_30$0))
+               (set.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)
-                    (member l1 (lseg_domain$0 next$0 lst$0 curr_2$0))
+                    (set.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 (member l1 (lseg_domain$0 next$0 lst$0 curr_2$0))))))
+                    (not (set.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)
-                    (member l1 (lseg_domain$0 next$0 curr_3$0 null$0))
+                    (set.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 (member l1 (lseg_domain$0 next$0 curr_3$0 null$0))))))
+                    (not (set.member l1 (lseg_domain$0 next$0 curr_3$0 null$0))))))
    :named lseg_footprint_21))
 
-(assert (! (not (member tmp_2$0 FP_2$0)) :named check_free_31_6))
+(assert (! (not (set.member tmp_2$0 FP_2$0)) :named check_free_31_6))
 
-(assert (! (not (member null$0 Alloc$0)) :named framecondition_of_remove_loop_18_4_15))
+(assert (! (not (set.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 (! (= FP_Caller$0 (union FP$0 FP_Caller$0))
+(assert (! (= FP_Caller$0 (set.union FP$0 FP_Caller$0))
    :named precondition_of_remove_10_11_20))
 
 (assert (! (= sk_?X_33$0 FP$0) :named precondition_of_remove_10_11_21))
 
 (assert (! (lseg_struct$0 sk_?X_32$0 next$0 lst$0 curr_2$0) :named invariant_18_4_62))
 
-(assert (! (= FP$0 (union FP_1$0 FP$0)) :named invariant_18_4_63))
+(assert (! (= FP$0 (set.union FP_1$0 FP$0)) :named invariant_18_4_63))
 
 (assert (! (= sk_?X_31$0 (lseg_domain$0 next$0 curr_2$0 null$0))
    :named invariant_18_4_64))
 
-(assert (! (= sk_?X_30$0 (union sk_?X_31$0 sk_?X_32$0)) :named invariant_18_4_65))
+(assert (! (= sk_?X_30$0 (set.union sk_?X_31$0 sk_?X_32$0)) :named invariant_18_4_65))
 
-(assert (! (= (as emptyset SetLoc) (as emptyset SetLoc)) :named invariant_18_4_66))
+(assert (! (= (as set.empty SetLoc) (as set.empty SetLoc)) :named invariant_18_4_66))
 
 (assert (! (lseg_struct$0 sk_?X_28$0 next$0 curr_3$0 null$0)
    :named invariant_18_4_67))
 
-(assert (! (= sk_?X_29$0 (union sk_?X_28$0 sk_?X_27$0)) :named invariant_18_4_68))
+(assert (! (= sk_?X_29$0 (set.union sk_?X_28$0 sk_?X_27$0)) :named invariant_18_4_68))
 
 (assert (! (= sk_?X_28$0 (lseg_domain$0 next$0 curr_3$0 null$0))
    :named invariant_18_4_69))
 
-(assert (! (= (as emptyset SetLoc) (intersection sk_?X_27$0 sk_?X_28$0))
+(assert (! (= (as set.empty SetLoc) (set.intersection sk_?X_27$0 sk_?X_28$0))
    :named invariant_18_4_70))
 
-(assert (! (= Alloc$0 (union FP_Caller$0 Alloc$0))
+(assert (! (= Alloc$0 (set.union FP_Caller$0 Alloc$0))
    :named initial_footprint_of_remove_10_11_10))
 
 (assert (! (Frame$0 FP_1$0 Alloc$0 next$0 next$0)
 (assert (! (= curr_2$0 lst$0) :named assign_17_4_4))
 
 (assert (! (= FP_2$0
-     (union (setminus FP$0 FP_1$0)
-       (union (intersection Alloc$0 FP_1$0) (setminus Alloc$0 Alloc$0))))
+     (set.union (set.minus FP$0 FP_1$0)
+       (set.union (set.intersection Alloc$0 FP_1$0) (set.minus Alloc$0 Alloc$0))))
    :named framecondition_of_remove_loop_18_4_17))
 
 (assert (! (or (Btwn$0 next$0 lst$0 curr_2$0 curr_2$0)
 (assert (! (forall ((l1 Loc))
            (or
                (and (Btwn$0 next$0 lst_1$0 l1 curr_3$0)
-                    (member l1 (lseg_domain$0 next$0 lst_1$0 curr_3$0))
+                    (set.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 (member l1 (lseg_domain$0 next$0 lst_1$0 curr_3$0))))))
+                    (not (set.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)
-                    (member l1 (lseg_domain$0 next$0 lst$0 null$0))
+                    (set.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 (member l1 (lseg_domain$0 next$0 lst$0 null$0))))))
+                    (not (set.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)
-                    (member l1 (lseg_domain$0 next$0 curr_2$0 null$0))
+                    (set.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 (member l1 (lseg_domain$0 next$0 curr_2$0 null$0))))))
+                    (not (set.member l1 (lseg_domain$0 next$0 curr_2$0 null$0))))))
    :named lseg_footprint_24))
 
-(assert (! (not (member null$0 Alloc$0)) :named initial_footprint_of_remove_10_11_11))
+(assert (! (not (set.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))
 
 
 (assert (! (= sk_?X_30$0 FP_1$0) :named invariant_18_4_74))
 
-(assert (! (= (as emptyset SetLoc) (intersection sk_?X_32$0 sk_?X_31$0))
+(assert (! (= (as set.empty SetLoc) (set.intersection sk_?X_32$0 sk_?X_31$0))
    :named invariant_18_4_75))
 
 (assert (! (not (= curr_3$0 null$0)) :named invariant_18_4_76))
    :named invariant_18_4_77))
 
 (assert (! (= sk_?X_29$0
-     (union (intersection Alloc$0 FP_1$0) (setminus Alloc$0 Alloc$0)))
+     (set.union (set.intersection Alloc$0 FP_1$0) (set.minus Alloc$0 Alloc$0)))
    :named invariant_18_4_78))
 
 (assert (! (= sk_?X_27$0 (lseg_domain$0 next$0 lst_1$0 curr_3$0))
    :named invariant_18_4_79))
 
-(assert (! (= (as emptyset SetLoc) (as emptyset SetLoc)) :named invariant_18_4_80))
+(assert (! (= (as set.empty SetLoc) (as set.empty SetLoc)) :named invariant_18_4_80))
 
-(assert (! (= Alloc$0 (union FP_2$0 Alloc$0))
+(assert (! (= Alloc$0 (set.union FP_2$0 Alloc$0))
    :named framecondition_of_remove_loop_18_4_18))
 
 (assert (! (= tmp_2$0 (read$0 next$0 curr_3$0)) :named assign_27_4_2))
 
 (assert (! (= lst_1$0 lst$0) :named framecondition_of_remove_loop_18_4_19))
 
-(assert (! (= FP_Caller_1$0 (setminus FP_Caller$0 FP$0)) :named assign_13_2_5))
+(assert (! (= FP_Caller_1$0 (set.minus FP_Caller$0 FP$0)) :named assign_13_2_5))
 
 (assert (! (or (Btwn$0 next$0 lst_1$0 curr_3$0 curr_3$0)
        (not (lseg_struct$0 sk_?X_27$0 next$0 lst_1$0 curr_3$0)))
index d6a64c36e931cb20992449a2baf1e4db61a7fd87..b8c2c1cfd8f379b431dc86e2b488c9f586d10bdc 100644 (file)
@@ -10,9 +10,9 @@
 (declare-fun x () (Set U))
 
 
-(assert (subset x (comprehension ((z U)) (not (= z a)) z)))
+(assert (set.subset x (set.comprehension ((z U)) (not (= z a)) z)))
 
-(assert (not (member b x)))
-(assert (member c x))
+(assert (not (set.member b x)))
+(assert (set.member c x))
 
 (check-sat)
index 1702aab2789feefea25532105c27d1cf916ab13f..f137ed7ddb6c00bcd5f29074a84045f245d721f0 100644 (file)
@@ -8,55 +8,55 @@
 (declare-fun S () myset)
 
 ; 0 elements
-(assert (not (= S (as emptyset myset))))
+(assert (not (= S (as set.empty myset))))
 
 ; 1 element is S
-(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)))))))
+(assert (not (= S (set.singleton (as set.empty (Set (_ BitVec 1)))))))
+(assert (not (= S (set.singleton (set.singleton (_ bv0 1)) ))))
+(assert (not (= S (set.singleton (set.singleton (_ bv1 1)) ))))
+(assert (not (= S (set.singleton (set.union (set.singleton (_ bv0 1))
+                                  (set.singleton (_ bv1 1)))))))
 
 ; 2 elements in S
-(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)))))))
+(assert (not (= S (set.union (set.singleton (as set.empty (Set (_ BitVec 1))))
+                         (set.singleton (set.singleton (_ bv0 1)))) )))
+(assert (not (= S (set.union (set.singleton (as set.empty (Set (_ BitVec 1))))
+                         (set.singleton (set.singleton (_ bv1 1)))))))
+(assert (not (= S (set.union (set.singleton (as set.empty (Set (_ BitVec 1))))
+                         (set.singleton (set.union (set.singleton (_ bv0 1))
+                                         (set.singleton (_ bv1 1))))))))
+(assert (not (= S (set.union (set.singleton (set.union (set.singleton (_ bv0 1))
+                                         (set.singleton (_ bv1 1))))
+                         (set.singleton (set.singleton (_ bv0 1)))) )))
+(assert (not (= S (set.union (set.singleton (set.singleton (_ bv0 1)))
+                         (set.singleton (set.singleton (_ bv1 1))))   )))
+(assert (not (= S (set.union (set.singleton (set.union (set.singleton (_ bv0 1))
+                                         (set.singleton (_ bv1 1))))
+                         (set.singleton (set.singleton (_ bv1 1)))))))
 
 ; 3 elements in S
-(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)))))  )))
+(assert (not (= S (set.union (set.singleton (set.singleton (_ bv1 1)))
+                         (set.union (set.singleton (as set.empty (Set (_ BitVec 1))))
+                                (set.singleton (set.singleton (_ bv0 1)))))  )))
+(assert (not (= S (set.union (set.singleton (set.union (set.singleton (_ bv0 1))
+                                         (set.singleton (_ bv1 1))))
+                         (set.union (set.singleton (as set.empty (Set (_ BitVec 1))))
+                                (set.singleton (set.singleton (_ bv1 1)))))  )))
+(assert (not (= S (set.union (set.singleton (set.union (set.singleton (_ bv0 1))
+                                         (set.singleton (_ bv1 1))))
+                         (set.union (set.singleton (set.singleton (_ bv0 1)))
+                                (set.singleton (set.singleton (_ bv1 1)))))  )))
+(assert (not (= S (set.union (set.singleton (set.union (set.singleton (_ bv0 1))
+                                         (set.singleton (_ bv1 1))))
+                         (set.union (set.singleton (as set.empty (Set (_ BitVec 1))))
+                                (set.singleton (set.singleton (_ bv0 1)))))  )))
 
 ; 4 elements in S
-(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))))))  )))
+(assert (not (= S (set.union (set.singleton (set.union (set.singleton (_ bv0 1))
+                                         (set.singleton (_ bv1 1))))
+                         (set.union (set.singleton (set.singleton (_ bv1 1)))
+                                (set.union (set.singleton (as set.empty (Set (_ BitVec 1))))
+                                       (set.singleton (set.singleton (_ bv0 1))))))  )))
 
 (check-sat)
 
index d75b9c3ae6dfae718faac97810e04bb9d9933e51..64a2306c46a57e89759e81f4c7068b9e2e85b560 100644 (file)
@@ -7,7 +7,7 @@
 (declare-fun b () (Set (Tuple Int Real)))
 (declare-fun x () (Tuple Real Real))
 (assert (let ((_let_1 0.0)) (not (= x (tuple _let_1 _let_1)))))
-(assert (member (tuple ((_ tuple_select 0) x) (to_int ((_ tuple_select 1) x))) a))
-(assert (member (tuple (to_int ((_ tuple_select 0) x)) ((_ tuple_select 1) x)) b))
+(assert (set.member (tuple ((_ tuple_select 0) x) (to_int ((_ tuple_select 1) x))) a))
+(assert (set.member (tuple (to_int ((_ tuple_select 0) x)) ((_ tuple_select 1) x)) b))
 (assert (not (= ((_ tuple_select 0) x) ((_ tuple_select 1) x))))
 (check-sat)
index e8b768d3629927a24915b0ca8bb48d8a23ccb4b2..73588db4d62e7d871d3497e5ff99723110c06741 100644 (file)
@@ -5,8 +5,8 @@
 (declare-fun t () (Set Int))
 (declare-fun s () (Set Int))
 (declare-const v Bool)
-(assert (forall ((q Bool)) (distinct v (subset s t))))
-(assert (= 1 (card t)))
+(assert (forall ((q Bool)) (distinct v (set.subset s t))))
+(assert (= 1 (set.card t)))
 (check-sat)
 (assert v)
 (check-sat)
index 82c6eb8f088c0b338033f0ecda158776a48d5d51..a050e9d0e4763d53bf7812111e8f7ee7d433fe1c 100644 (file)
@@ -23,9 +23,9 @@
 (let ((e12 (* (- e4) e7)))
 (let ((e13 (- e10)))
 (let ((e14 (f0 e5 e7 e6)))
-(let ((e15 (member v0 v1)))
-(let ((e16 (member e12 v2)))
-(let ((e17 (member e14 v1)))
+(let ((e15 (set.member v0 v1)))
+(let ((e16 (set.member e12 v2)))
+(let ((e17 (set.member e14 v1)))
 (let ((e18 (f1 v3)))
 (let ((e19 (f1 v2)))
 (let ((e20 (f1 v1)))
index f02788a72afcbc9f46e1fb3488d8d2155276b3b8..548deca0507cdde8f53fa2417eaa6cc82f41b84f 100644 (file)
@@ -6,12 +6,12 @@
 (declare-fun f ((Set Bool)) Int)
 (declare-fun s () (Set Bool))
 
-(assert (member true s))
-(assert (member false s))
-(assert (= a (f (as univset (Set Bool)))))
+(assert (set.member true s))
+(assert (set.member false s))
+(assert (= a (f (as set.universe (Set Bool)))))
 
-(assert (= (f (as emptyset (Set Bool))) 1))
-(assert (= (f (singleton true)) 2))
-(assert (= (f (singleton false)) 3))
-(assert (= (f (union (singleton true) (singleton false))) 4))
+(assert (= (f (as set.empty (Set Bool))) 1))
+(assert (= (f (set.singleton true)) 2))
+(assert (= (f (set.singleton false)) 3))
+(assert (= (f (set.union (set.singleton true) (set.singleton false))) 4))
 (check-sat)
index 6673dc3b9725e2363e562274f8027a9b0aa5bf7b..5e257da0088091a9203c5725a7332334618a6365 100644 (file)
@@ -8,8 +8,8 @@
 (declare-fun st8 () (Set String))
 (declare-fun str6 () String)
 (declare-fun str7 () String)
-(assert (= 0 (card st8)))
+(assert (= 0 (set.card st8)))
 (assert (str.in_re str6 (re.opt re.none)))
 (assert (str.in_re (str.substr str7 0 i8) re.allchar))
-(assert (xor true (subset st8 st6) (not (= str7 str6)) true))
+(assert (xor true (set.subset st8 st6) (not (= str7 str6)) true))
 (check-sat)
index f45329b2707b91758600f35f1cb59395c6096de3..18e78302727f8f1a58a1bf113d07cf276b5fd9c6 100644 (file)
@@ -3,10 +3,10 @@
 (set-logic ALL)
 (synth-fun P ((x (Set Int))) Bool)
 
-(constraint (not (P (as emptyset (Set Int)))))
-(constraint (not (P (insert 1 2 (as emptyset (Set Int))))))
-(constraint (P (insert 0 (as emptyset (Set Int)))))
-(constraint (P (insert 0 4 5 (as emptyset (Set Int)))))
-(constraint (not (P (singleton 45))))
+(constraint (not (P (as set.empty (Set Int)))))
+(constraint (not (P (set.insert 1 2 (as set.empty (Set Int))))))
+(constraint (P (set.insert 0 (as set.empty (Set Int)))))
+(constraint (P (set.insert 0 4 5 (as set.empty (Set Int)))))
+(constraint (not (P (set.singleton 45))))
 
 (check-synth)
index 0fdf90bfb645b7d98a4a940a9302eea650d1472c..7304844563f1f5610c6030ad7f61723428d43541 100644 (file)
@@ -6,6 +6,6 @@
 (declare-fun B () (Set Int))
 (declare-fun C () (Set Int))
 
-(assert (and (member x A) (member x B) (member x C)))
-(assert (member y C))
+(assert (and (set.member x A) (set.member x B) (set.member x C)))
+(assert (set.member y C))
 (check-sat)
index 987b6c1f47a54d472e8612d6053fc7b8bb08114a..a468d6c87834b928a51091562b0201f8a885c598 100644 (file)
@@ -11,8 +11,8 @@
 
 
 
-(assert (= F (insert x y (singleton z))))
-(assert (subset F A))
+(assert (= F (set.insert x y (set.singleton z))))
+(assert (set.subset F A))
 (assert (= x y))
 
 
index 50ba55c427136600a4800b06b4090fbf783d16d6..4f942ce8d931518642305354a26c587cbd97129c 100644 (file)
@@ -12,7 +12,7 @@
 
 
 (assert (or (> (+ x y z) 3) (< (p x (+ (* 3 y) (* 3 z))) 5)))
-(assert (subset A (insert y (singleton z))))
+(assert (set.subset A (set.insert y (set.singleton z))))
 
 
 
index c13497acd0962dae9381893c3b37c503ad5544c3..cf9cbe09282fb9ab62519e4de708ff1d16a67175 100644 (file)
@@ -10,9 +10,9 @@
 (declare-fun i () Int)
 (declare-fun j () Int)
 
-(assert (subset A (insert g h i (singleton f))))
-(assert (= C (setminus A B) ))
-(assert (subset B A))
-(assert (= C (intersection A B)))
-(assert (member j C))
+(assert (set.subset A (set.insert g h i (set.singleton f))))
+(assert (= C (set.minus A B) ))
+(assert (set.subset B A))
+(assert (= C (set.intersection A B)))
+(assert (set.member j C))
 (check-sat)
index 31dc96ca36a9b81de83501dd84dc63d27419d212..f05e085727cea8ae28c8830068d8dd6e8ce80694 100644 (file)
@@ -9,18 +9,18 @@
 
 
 (declare-fun emptymyTypeSet () (Set myType))
-(assert (= emptymyTypeSet (as emptyset (Set myType))))
+(assert (= emptymyTypeSet (as set.empty (Set myType))))
 (declare-fun d () (Array myType |__cvc5_record_pos_(Set myType)_neg_(Set myType)|))
 (declare-fun l () (Array myType (Set String)))
-(assert (= (select l A) (union (singleton "L") (singleton "H"))))
-(assert (= (select l B) (singleton "L")))
+(assert (= (select l A) (set.union (set.singleton "L") (set.singleton "H"))))
+(assert (= (select l B) (set.singleton "L")))
 (declare-fun ic0_i () (Set myType))
 (declare-fun ic0_c () (Set myType))
-(assert (forall ((r myType)) (=> (member r ic0_i) (forall ((r2 myType)) (=> (member r2 (neg (select d r))) (member r2 ic0_c))))))
-(assert (subset (singleton A) ic0_i))
-(assert (or (exists ((e0 myType)) (=> (member e0 ic0_i) (subset (select l A) (select l e0)))) (subset (intersection ic0_i ic0_c) emptymyTypeSet)))
+(assert (forall ((r myType)) (=> (set.member r ic0_i) (forall ((r2 myType)) (=> (set.member r2 (neg (select d r))) (set.member r2 ic0_c))))))
+(assert (set.subset (set.singleton A) ic0_i))
+(assert (or (exists ((e0 myType)) (=> (set.member e0 ic0_i) (set.subset (select l A) (select l e0)))) (set.subset (set.intersection ic0_i ic0_c) emptymyTypeSet)))
 (declare-fun ic1_i () (Set myType))
 (declare-fun ic1_c () (Set myType))
-(assert (forall ((r myType)) (=> (member r (pos (select d B))) (member r ic1_i))))
-(assert (or (exists ((e1 myType)) (=> (member e1 ic1_i) (subset (select l B) (select l e1)))) (subset (intersection ic1_i ic1_c) emptymyTypeSet)))
+(assert (forall ((r myType)) (=> (set.member r (pos (select d B))) (set.member r ic1_i))))
+(assert (or (exists ((e1 myType)) (=> (set.member e1 ic1_i) (set.subset (select l B) (select l e1)))) (set.subset (set.intersection ic1_i ic1_c) emptymyTypeSet)))
 (check-sat)
index 79eb1c72ca6d5dfee0034bbe0a943b4732e419d1..43ace7b312565f1579d3c61dce803cc25497a686 100644 (file)
@@ -28,7 +28,7 @@
 (declare-fun LIFT (Int) Int)
 (declare-fun BIT_BAND (Int Int) Int)
 (declare-fun POW2 (Int) Int)
-(declare-fun choose (Int Int Int) Int)
+(declare-fun set.choose (Int Int Int) Int)
 (declare-fun DIV (Int Int) Int)
 (declare-fun MULT (Int Int) Int)
 (declare-fun PLUS (Int Int Int) Int)
 (declare-fun i () Int)
 (declare-fun head () Int)
 (assert (not (or (not (forall ((?A Int) (?i Int) (?v Int)) (= (select1 (store1 ?A ?i ?v) ?i) ?v))) (not (forall ((?A Int) (?i Int) (?j Int) (?v Int)) (=> (not (= ?i ?j)) (= (select1 (store1 ?A ?i ?v) ?j) (select1 ?A ?j))))) (not (forall ((?A Int) (?o Int) (?f Int) (?v Int)) (= (select2 (store2 ?A ?o ?f ?v) ?o ?f) ?v))) (not (forall ((?A Int) (?o Int) (?f Int) (?p Int) (?g Int) (?v Int)) (=> (not (= ?o ?p)) (= (select2 (store2 ?A ?o ?f ?v) ?p ?g) (select2 ?A ?p ?g))))) (not (forall ((?A Int) (?o Int) (?f Int) (?p Int) (?g Int) (?v Int)) (=> (not (= ?f ?g)) (= (select2 (store2 ?A ?o ?f ?v) ?p ?g) (select2 ?A ?p ?g))))) (not (forall ((?x_1 Int) (?y Int)) (= (= (boolIff ?x_1 ?y) true_1) (= (= ?x_1 true_1) (= ?y true_1))))) (not (forall ((?x_1 Int) (?y Int)) (= (= (boolImplies ?x_1 ?y) true_1) (=> (= ?x_1 true_1) (= ?y true_1))))) (not (forall ((?x_1 Int) (?y Int)) (= (= (boolAnd ?x_1 ?y) true_1) (not (or (not (= ?x_1 true_1)) (not (= ?y true_1))))))) (not (forall ((?x_1 Int) (?y Int)) (= (= (boolOr ?x_1 ?y) true_1) (or (= ?x_1 true_1) (= ?y true_1))))) (not (forall ((?x_1 Int)) (! (= (= (boolNot ?x_1) true_1) (not (= ?x_1 true_1))) :pattern ((boolNot ?x_1)) ))) (not (forall ((?x_1 Int) (?y Int)) (= (= (anyEqual ?x_1 ?y) true_1) (= ?x_1 ?y)))) (not (forall ((?x_1 Int) (?y Int)) (! (= (= (anyNeq ?x_1 ?y) true_1) (not (= ?x_1 ?y))) :pattern ((anyNeq ?x_1 ?y)) ))) (not (forall ((?x_1 Int) (?y Int)) (= (= (intLess ?x_1 ?y) true_1) (< ?x_1 ?y)))) (not (forall ((?x_1 Int) (?y Int)) (= (= (intAtMost ?x_1 ?y) true_1) (<= ?x_1 ?y)))) (not (forall ((?x_1 Int) (?y Int)) (= (= (intAtLeast ?x_1 ?y) true_1) (>= ?x_1 ?y)))) (not (forall ((?x_1 Int) (?y Int)) (= (= (intGreater ?x_1 ?y) true_1) (> ?x_1 ?y)))) (not (distinct false_1 true_1)) (not (forall ((?t Int)) (! (= (x ?t ?t) true_1) :pattern ((x ?t ?t)) ))) (not (forall ((?t Int) (?u Int) (?v Int)) (! (=> (not (or (not (= (x ?t ?u) true_1)) (not (= (x ?u ?v) true_1)))) (= (x ?t ?v) true_1)) :pattern ((x ?t ?u) (x ?u ?v)) ))) (not (forall ((?t Int) (?u Int)) (! (=> (not (or (not (= (x ?t ?u) true_1)) (not (= (x ?u ?t) true_1)))) (= ?t ?u)) :pattern ((x ?t ?u) (x ?u ?t)) ))))))
-(assert (not (or (not (distinct UNALLOCATED ALLOCATED FREED BYTE next_foo_name p_foo_name n_foo_name INT4_name PINT4_name PPINT4_name PPfoo_name Pfoo_name foo_name)) (not (forall ((?b0 Int) (?c0 Int)) (! (=> (= (OneByteToInt ?b0) (OneByteToInt ?c0)) (= ?b0 ?c0)) :pattern ((OneByteToInt ?b0) (OneByteToInt ?c0)) ))) (not (forall ((?b0 Int) (?b1 Int) (?c0 Int) (?c1 Int)) (! (=> (= (TwoBytesToInt ?b0 ?b1) (TwoBytesToInt ?c0 ?c1)) (not (or (not (= ?b0 ?c0)) (not (= ?b1 ?c1))))) :pattern ((TwoBytesToInt ?b0 ?b1) (TwoBytesToInt ?c0 ?c1)) ))) (not (forall ((?b0 Int) (?b1 Int) (?b2 Int) (?b3 Int) (?c0 Int) (?c1 Int) (?c2 Int) (?c3 Int)) (! (=> (= (FourBytesToInt ?b0 ?b1 ?b2 ?b3) (FourBytesToInt ?c0 ?c1 ?c2 ?c3)) (not (or (not (= ?b0 ?c0)) (not (= ?b1 ?c1)) (not (= ?b2 ?c2)) (not (= ?b3 ?c3))))) :pattern ((FourBytesToInt ?b0 ?b1 ?b2 ?b3) (FourBytesToInt ?c0 ?c1 ?c2 ?c3)) ))) (not (forall ((?n Int) (?x_1 Int) (?y Int)) (! (=> (= (select1 (AtLeast ?n ?x_1) ?y) true_1) (not (or (not (<= ?x_1 ?y)) (not (= (Rep ?n ?x_1) (Rep ?n ?y)))))) :pattern ((select1 (AtLeast ?n ?x_1) ?y)) ))) (not (forall ((?n Int) (?x_1 Int) (?y Int)) (! (=> (not (or (not (<= ?x_1 ?y)) (not (= (Rep ?n ?x_1) (Rep ?n ?y))))) (= (select1 (AtLeast ?n ?x_1) ?y) true_1)) :pattern ((AtLeast ?n ?x_1) (Rep ?n ?x_1) (Rep ?n ?y)) ))) (not (forall ((?n Int) (?x_1 Int)) (! (= (select1 (AtLeast ?n ?x_1) ?x_1) true_1) :pattern ((AtLeast ?n ?x_1)) ))) (not (forall ((?n Int) (?x_1 Int) (?z Int)) (! (= (Rep ?n ?x_1) (Rep ?n (PLUS ?x_1 ?n ?z))) :pattern ((PLUS ?x_1 ?n ?z)) ))) (not (forall ((?n Int) (?x_1 Int)) (! (exists ((?k Int)) (= (- (Rep ?n ?x_1) ?x_1) (* ?n ?k))) :pattern ((Rep ?n ?x_1)) ))) (not (forall ((?x_1 Int) (?n Int) (?z Int)) (! (=> (<= ?z 0) (= (Equal (HavocArray ?x_1 ?n ?z) Empty) true_1)) :pattern ((HavocArray ?x_1 ?n ?z)) ))) (not (forall ((?x_1 Int) (?n Int) (?z Int)) (! (=> (> ?z 0) (= (Equal (HavocArray ?x_1 ?n ?z) (Difference (AtLeast ?n ?x_1) (AtLeast ?n (PLUS ?x_1 ?n ?z)))) true_1)) :pattern ((HavocArray ?x_1 ?n ?z)) ))) (not (forall ((?x_1 Int)) (not (= (select1 Empty ?x_1) true_1)))) (not (forall ((?x_1 Int) (?y Int)) (! (= (= (select1 (Singleton ?y) ?x_1) true_1) (= ?x_1 ?y)) :pattern ((select1 (Singleton ?y) ?x_1)) ))) (not (forall ((?y Int)) (! (= (select1 (Singleton ?y) ?y) true_1) :pattern ((Singleton ?y)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (= (= (select1 (Union ?S ?T) ?x_1) true_1) (or (= (select1 ?S ?x_1) true_1) (= (select1 ?T ?x_1) true_1))) :pattern ((select1 (Union ?S ?T) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (Union ?S ?T) ?x_1) true_1)) :pattern ((Union ?S ?T) (select1 ?S ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (= (select1 ?T ?x_1) true_1) (= (select1 (Union ?S ?T) ?x_1) true_1)) :pattern ((Union ?S ?T) (select1 ?T ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (= (= (select1 (Intersection ?S ?T) ?x_1) true_1) (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (select1 ?T ?x_1) true_1))))) :pattern ((select1 (Intersection ?S ?T) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (select1 ?T ?x_1) true_1)))) (= (select1 (Intersection ?S ?T) ?x_1) true_1)) :pattern ((Intersection ?S ?T) (select1 ?S ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (select1 ?T ?x_1) true_1)))) (= (select1 (Intersection ?S ?T) ?x_1) true_1)) :pattern ((Intersection ?S ?T) (select1 ?T ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (= (= (select1 (Difference ?S ?T) ?x_1) true_1) (not (or (not (= (select1 ?S ?x_1) true_1)) (not (not (= (select1 ?T ?x_1) true_1)))))) :pattern ((select1 (Difference ?S ?T) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (= (select1 ?S ?x_1) true_1) (or (= (select1 (Difference ?S ?T) ?x_1) true_1) (= (select1 ?T ?x_1) true_1))) :pattern ((Difference ?S ?T) (select1 ?S ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?M Int)) (! (=> (= (select1 (Dereference ?S ?M) ?x_1) true_1) (exists ((?y Int)) (not (or (not (= ?x_1 (select1 ?M ?y))) (not (= (select1 ?S ?y) true_1)))))) :pattern ((select1 (Dereference ?S ?M) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?M Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (Dereference ?S ?M) (select1 ?M ?x_1)) true_1)) :pattern ((select1 ?M ?x_1) (select1 ?S ?x_1) (Dereference ?S ?M)) ))) (not (forall ((?x_1 Int) (?y Int) (?S Int) (?M Int)) (! (=> (not (= (select1 ?S ?x_1) true_1)) (= (Equal (Dereference ?S (store1 ?M ?x_1 ?y)) (Dereference ?S ?M)) true_1)) :pattern ((Dereference ?S (store1 ?M ?x_1 ?y))) ))) (not (forall ((?x_1 Int) (?y Int) (?S Int) (?M Int)) (! (let ((?v_0 (select1 ?M ?x_1))) (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (Equal (Intersection (Inverse ?M ?v_0) ?S) (Singleton ?x_1)) true_1)))) (= (Equal (Dereference ?S (store1 ?M ?x_1 ?y)) (Union (Difference (Dereference ?S ?M) (Singleton ?v_0)) (Singleton ?y))) true_1))) :pattern ((Dereference ?S (store1 ?M ?x_1 ?y))) ))) (not (forall ((?x_1 Int) (?y Int) (?S Int) (?M Int)) (! (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (not (= (Equal (Intersection (Inverse ?M (select1 ?M ?x_1)) ?S) (Singleton ?x_1)) true_1))))) (= (Equal (Dereference ?S (store1 ?M ?x_1 ?y)) (Union (Dereference ?S ?M) (Singleton ?y))) true_1)) :pattern ((Dereference ?S (store1 ?M ?x_1 ?y))) ))) (not (forall ((?f Int) (?x_1 Int)) (! (= (select1 (Inverse ?f (select1 ?f ?x_1)) ?x_1) true_1) :pattern ((Inverse ?f (select1 ?f ?x_1))) ))) (not (forall ((?f Int) (?x_1 Int) (?y Int)) (! (= (Equal (Inverse (store1 ?f ?x_1 ?y) ?y) (Union (Inverse ?f ?y) (Singleton ?x_1))) true_1) :pattern ((Inverse (store1 ?f ?x_1 ?y) ?y)) ))) (not (forall ((?f Int) (?x_1 Int) (?y Int) (?z Int)) (! (or (= ?y ?z) (= (Equal (Inverse (store1 ?f ?x_1 ?y) ?z) (Difference (Inverse ?f ?z) (Singleton ?x_1))) true_1)) :pattern ((Inverse (store1 ?f ?x_1 ?y) ?z)) ))) (not (forall ((?S Int) (?T Int)) (! (= (= (Equal ?S ?T) true_1) (not (or (not (= (Subset ?S ?T) true_1)) (not (= (Subset ?T ?S) true_1))))) :pattern ((Equal ?S ?T)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (Subset ?S ?T) true_1)))) (= (select1 ?T ?x_1) true_1)) :pattern ((select1 ?S ?x_1) (Subset ?S ?T)) ))) (not (forall ((?S Int) (?T Int)) (! (or (= (Subset ?S ?T) true_1) (exists ((?x_1 Int)) (not (or (not (= (select1 ?S ?x_1) true_1)) (not (not (= (select1 ?T ?x_1) true_1))))))) :pattern ((Subset ?S ?T)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (not (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (Disjoint ?S ?T) true_1)) (not (= (select1 ?T ?x_1) true_1))))) :pattern ((select1 ?S ?x_1) (Disjoint ?S ?T) (select1 ?T ?x_1)) ))) (not (forall ((?S Int) (?T Int)) (! (or (= (Disjoint ?S ?T) true_1) (exists ((?x_1 Int)) (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (select1 ?T ?x_1) true_1)))))) :pattern ((Disjoint ?S ?T)) ))) (not (forall ((?M Int) (?x_1 Int)) (! (= (select1 (Unified ?M) ?x_1) (select1 (select1 ?M (Field ?x_1)) ?x_1)) :pattern ((select1 (Unified ?M) ?x_1)) ))) (not (forall ((?M Int) (?x_1 Int) (?y Int)) (! (let ((?v_1 (Field ?x_1))) (= (Unified (store1 ?M ?v_1 (store1 (select1 ?M ?v_1) ?x_1 ?y))) (store1 (Unified ?M) ?x_1 ?y))) :pattern ((Unified (store1 ?M (Field ?x_1) (store1 (select1 ?M (Field ?x_1)) ?x_1 ?y)))) ))) (not (forall ((?v Int) (?t Int)) (! (=> (= (select1 (Values ?t) ?v) true_1) (= (HasType ?v ?t) true_1)) :pattern ((select1 (Values ?t) ?v)) ))) (not (forall ((?v Int) (?t Int)) (! (=> (= (HasType ?v ?t) true_1) (= (select1 (Values ?t) ?v) true_1)) :pattern ((HasType ?v ?t) (Values ?t)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a next_foo_name) true_1) (= (Field ?a) next_foo_name)) :pattern ((Match ?a next_foo_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v next_foo_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v foo_name) true_1)))))) :pattern ((HasType ?v next_foo_name))  :pattern ((Match ?v foo_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a p_foo_name) true_1) (= (Field ?a) p_foo_name)) :pattern ((Match ?a p_foo_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v p_foo_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v INT4_name) true_1)))))) :pattern ((HasType ?v p_foo_name))  :pattern ((Match ?v INT4_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a n_foo_name) true_1) (= (Field ?a) n_foo_name)) :pattern ((Match ?a n_foo_name)) ))) (not (forall ((?v Int)) (= (HasType ?v n_foo_name) true_1))) (not (forall ((?a Int)) (! (= (= (Match ?a INT4_name) true_1) (= (Field ?a) INT4_name)) :pattern ((Match ?a INT4_name)) ))) (not (forall ((?v Int)) (= (HasType ?v INT4_name) true_1))) (not (forall ((?a Int)) (! (= (= (Match ?a PINT4_name) true_1) (= (Field ?a) PINT4_name)) :pattern ((Match ?a PINT4_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v PINT4_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v INT4_name) true_1)))))) :pattern ((HasType ?v PINT4_name))  :pattern ((Match ?v INT4_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a PPINT4_name) true_1) (= (Field ?a) PPINT4_name)) :pattern ((Match ?a PPINT4_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v PPINT4_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v PINT4_name) true_1)))))) :pattern ((HasType ?v PPINT4_name))  :pattern ((Match ?v PINT4_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a PPfoo_name) true_1) (= (Field ?a) PPfoo_name)) :pattern ((Match ?a PPfoo_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v PPfoo_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v Pfoo_name) true_1)))))) :pattern ((HasType ?v PPfoo_name))  :pattern ((Match ?v Pfoo_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a Pfoo_name) true_1) (= (Field ?a) Pfoo_name)) :pattern ((Match ?a Pfoo_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v Pfoo_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v foo_name) true_1)))))) :pattern ((HasType ?v Pfoo_name))  :pattern ((Match ?v foo_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a foo_name) true_1) (not (or (not true) (not (= (Match (next_foo ?a) next_foo_name) true_1)) (not (= (Match (p_foo ?a) p_foo_name) true_1)) (not (= (Match (n_foo ?a) n_foo_name) true_1))))) :pattern ((Match ?a foo_name)) ))) (not (forall ((?x_1 Int)) (! (= (next_fooInv (next_foo ?x_1)) ?x_1) :pattern ((next_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (next_foo (next_fooInv ?x_1)) ?x_1) :pattern ((next_fooInv ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_next_foo ?S) ?x_1) true_1) (= (select1 ?S (next_fooInv ?x_1)) true_1)) :pattern ((select1 (S_next_foo ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_next_fooInv ?S) ?x_1) true_1) (= (select1 ?S (next_foo ?x_1)) true_1)) :pattern ((select1 (S_next_fooInv ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_next_foo ?S) (next_foo ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_next_foo ?S)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_next_fooInv ?S) (next_fooInv ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_next_fooInv ?S)) ))) (not (forall ((?x_1 Int)) (! (= (next_foo ?x_1) (+ ?x_1 0)) :pattern ((next_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (next_fooInv ?x_1) (- ?x_1 0)) :pattern ((next_fooInv ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 0 1) (next_fooInv ?x_1)) :pattern ((MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 0 1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_LEFT_PTR ?x_1 1 0) (next_fooInv ?x_1)) :pattern ((MINUS_LEFT_PTR ?x_1 1 0)) ))) (not (forall ((?x_1 Int)) (! (= (p_fooInv (p_foo ?x_1)) ?x_1) :pattern ((p_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (p_foo (p_fooInv ?x_1)) ?x_1) :pattern ((p_fooInv ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_p_foo ?S) ?x_1) true_1) (= (select1 ?S (p_fooInv ?x_1)) true_1)) :pattern ((select1 (S_p_foo ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_p_fooInv ?S) ?x_1) true_1) (= (select1 ?S (p_foo ?x_1)) true_1)) :pattern ((select1 (S_p_fooInv ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_p_foo ?S) (p_foo ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_p_foo ?S)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_p_fooInv ?S) (p_fooInv ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_p_fooInv ?S)) ))) (not (forall ((?x_1 Int)) (! (= (p_foo ?x_1) (+ ?x_1 4)) :pattern ((p_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (p_fooInv ?x_1) (- ?x_1 4)) :pattern ((p_fooInv ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 4 1) (p_fooInv ?x_1)) :pattern ((MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 4 1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_LEFT_PTR ?x_1 1 4) (p_fooInv ?x_1)) :pattern ((MINUS_LEFT_PTR ?x_1 1 4)) ))) (not (forall ((?x_1 Int)) (! (= (n_fooInv (n_foo ?x_1)) ?x_1) :pattern ((n_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (n_foo (n_fooInv ?x_1)) ?x_1) :pattern ((n_fooInv ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_n_foo ?S) ?x_1) true_1) (= (select1 ?S (n_fooInv ?x_1)) true_1)) :pattern ((select1 (S_n_foo ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_n_fooInv ?S) ?x_1) true_1) (= (select1 ?S (n_foo ?x_1)) true_1)) :pattern ((select1 (S_n_fooInv ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_n_foo ?S) (n_foo ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_n_foo ?S)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_n_fooInv ?S) (n_fooInv ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_n_fooInv ?S)) ))) (not (forall ((?x_1 Int)) (! (= (n_foo ?x_1) (+ ?x_1 8)) :pattern ((n_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (n_fooInv ?x_1) (- ?x_1 8)) :pattern ((n_fooInv ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 8 1) (n_fooInv ?x_1)) :pattern ((MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 8 1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_LEFT_PTR ?x_1 1 8) (n_fooInv ?x_1)) :pattern ((MINUS_LEFT_PTR ?x_1 1 8)) ))) (not (forall ((?a Int) (?b Int) (?size Int)) (! (let ((?v_3 (MINUS_BOTH_PTR_OR_BOTH_INT ?a ?b ?size)) (?v_2 (- ?a ?b))) (not (or (not (<= (* ?size ?v_3) ?v_2)) (not (< ?v_2 (* ?size (+ ?v_3 1))))))) :pattern ((MINUS_BOTH_PTR_OR_BOTH_INT ?a ?b ?size)) ))) (not (forall ((?a Int) (?a_size Int) (?b Int)) (! (= (MINUS_LEFT_PTR ?a ?a_size ?b) (- ?a (* ?a_size ?b))) :pattern ((MINUS_LEFT_PTR ?a ?a_size ?b)) ))) (not (forall ((?a Int) (?a_size Int) (?b Int)) (! (= (PLUS ?a ?a_size ?b) (+ ?a (* ?a_size ?b))) :pattern ((PLUS ?a ?a_size ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (= (MULT ?a ?b) (* ?a ?b)) :pattern ((MULT ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (let ((?v_4 (DIV ?a ?b))) (=> (not (or (not (>= ?a 0)) (not (> ?b 0)))) (not (or (not (<= (* ?b ?v_4) ?a)) (not (< ?a (* ?b (+ ?v_4 1)))))))) :pattern ((DIV ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (let ((?v_5 (DIV ?a ?b))) (=> (not (or (not (>= ?a 0)) (not (< ?b 0)))) (not (or (not (<= (* ?b ?v_5) ?a)) (not (< ?a (* ?b (- ?v_5 1)))))))) :pattern ((DIV ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (let ((?v_6 (DIV ?a ?b))) (=> (not (or (not (< ?a 0)) (not (> ?b 0)))) (not (or (not (>= (* ?b ?v_6) ?a)) (not (> ?a (* ?b (- ?v_6 1)))))))) :pattern ((DIV ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (let ((?v_7 (DIV ?a ?b))) (=> (not (or (not (< ?a 0)) (not (< ?b 0)))) (not (or (not (>= (* ?b ?v_7) ?a)) (not (> ?a (* ?b (+ ?v_7 1)))))))) :pattern ((DIV ?a ?b)) ))) (not (= (POW2 1) true_1)) (not (= (POW2 2) true_1)) (not (= (POW2 4) true_1)) (not (= (POW2 8) true_1)) (not (= (POW2 16) true_1)) (not (= (POW2 32) true_1)) (not (= (POW2 64) true_1)) (not (= (POW2 128) true_1)) (not (= (POW2 256) true_1)) (not (= (POW2 512) true_1)) (not (= (POW2 1024) true_1)) (not (= (POW2 2048) true_1)) (not (= (POW2 4096) true_1)) (not (= (POW2 8192) true_1)) (not (= (POW2 16384) true_1)) (not (= (POW2 32768) true_1)) (not (= (POW2 65536) true_1)) (not (= (POW2 131072) true_1)) (not (= (POW2 262144) true_1)) (not (= (POW2 524288) true_1)) (not (= (POW2 1048576) true_1)) (not (= (POW2 2097152) true_1)) (not (= (POW2 4194304) true_1)) (not (= (POW2 8388608) true_1)) (not (= (POW2 16777216) true_1)) (not (= (POW2 33554432) true_1)) (not (forall ((?a Int) (?b Int) (?c Int)) (! (=> (= ?a true_1) (= (choose ?a ?b ?c) ?b)) :pattern ((choose ?a ?b ?c)) ))) (not (forall ((?a Int) (?b Int) (?c Int)) (! (=> (not (= ?a true_1)) (= (choose ?a ?b ?c) ?c)) :pattern ((choose ?a ?b ?c)) ))) (not (forall ((?a Int) (?b Int)) (! (=> (= ?a ?b) (= (BIT_BAND ?a ?b) ?a)) :pattern ((BIT_BAND ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (=> (not (or (not (= (POW2 ?a) true_1)) (not (= (POW2 ?b) true_1)) (not (not (= ?a ?b))))) (= (BIT_BAND ?a ?b) 0)) :pattern ((BIT_BAND ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (=> (or (= ?a 0) (= ?b 0)) (= (BIT_BAND ?a ?b) 0)) :pattern ((BIT_BAND ?a ?b)) ))) (not (forall ((?a Int)) (! (= (= ?a true_1) (not (= (LIFT ?a) 0))) :pattern ((LIFT ?a)) ))) (not (forall ((?a Int)) (! (=> (= ?a 0) (not (= (boolNot ?a) 0))) :pattern ((boolNot ?a)) ))) (not (forall ((?a Int)) (! (=> (not (= ?a 0)) (= (boolNot ?a) 0)) :pattern ((boolNot ?a)) ))) (not (forall ((?a Int)) (! (=> (= ?a 0) (not (= (NULL_CHECK ?a) 0))) :pattern ((NULL_CHECK ?a)) ))) (not (forall ((?a Int)) (! (=> (not (= ?a 0)) (= (NULL_CHECK ?a) 0)) :pattern ((NULL_CHECK ?a)) ))))))
+(assert (not (or (not (distinct UNALLOCATED ALLOCATED FREED BYTE next_foo_name p_foo_name n_foo_name INT4_name PINT4_name PPINT4_name PPfoo_name Pfoo_name foo_name)) (not (forall ((?b0 Int) (?c0 Int)) (! (=> (= (OneByteToInt ?b0) (OneByteToInt ?c0)) (= ?b0 ?c0)) :pattern ((OneByteToInt ?b0) (OneByteToInt ?c0)) ))) (not (forall ((?b0 Int) (?b1 Int) (?c0 Int) (?c1 Int)) (! (=> (= (TwoBytesToInt ?b0 ?b1) (TwoBytesToInt ?c0 ?c1)) (not (or (not (= ?b0 ?c0)) (not (= ?b1 ?c1))))) :pattern ((TwoBytesToInt ?b0 ?b1) (TwoBytesToInt ?c0 ?c1)) ))) (not (forall ((?b0 Int) (?b1 Int) (?b2 Int) (?b3 Int) (?c0 Int) (?c1 Int) (?c2 Int) (?c3 Int)) (! (=> (= (FourBytesToInt ?b0 ?b1 ?b2 ?b3) (FourBytesToInt ?c0 ?c1 ?c2 ?c3)) (not (or (not (= ?b0 ?c0)) (not (= ?b1 ?c1)) (not (= ?b2 ?c2)) (not (= ?b3 ?c3))))) :pattern ((FourBytesToInt ?b0 ?b1 ?b2 ?b3) (FourBytesToInt ?c0 ?c1 ?c2 ?c3)) ))) (not (forall ((?n Int) (?x_1 Int) (?y Int)) (! (=> (= (select1 (AtLeast ?n ?x_1) ?y) true_1) (not (or (not (<= ?x_1 ?y)) (not (= (Rep ?n ?x_1) (Rep ?n ?y)))))) :pattern ((select1 (AtLeast ?n ?x_1) ?y)) ))) (not (forall ((?n Int) (?x_1 Int) (?y Int)) (! (=> (not (or (not (<= ?x_1 ?y)) (not (= (Rep ?n ?x_1) (Rep ?n ?y))))) (= (select1 (AtLeast ?n ?x_1) ?y) true_1)) :pattern ((AtLeast ?n ?x_1) (Rep ?n ?x_1) (Rep ?n ?y)) ))) (not (forall ((?n Int) (?x_1 Int)) (! (= (select1 (AtLeast ?n ?x_1) ?x_1) true_1) :pattern ((AtLeast ?n ?x_1)) ))) (not (forall ((?n Int) (?x_1 Int) (?z Int)) (! (= (Rep ?n ?x_1) (Rep ?n (PLUS ?x_1 ?n ?z))) :pattern ((PLUS ?x_1 ?n ?z)) ))) (not (forall ((?n Int) (?x_1 Int)) (! (exists ((?k Int)) (= (- (Rep ?n ?x_1) ?x_1) (* ?n ?k))) :pattern ((Rep ?n ?x_1)) ))) (not (forall ((?x_1 Int) (?n Int) (?z Int)) (! (=> (<= ?z 0) (= (Equal (HavocArray ?x_1 ?n ?z) Empty) true_1)) :pattern ((HavocArray ?x_1 ?n ?z)) ))) (not (forall ((?x_1 Int) (?n Int) (?z Int)) (! (=> (> ?z 0) (= (Equal (HavocArray ?x_1 ?n ?z) (Difference (AtLeast ?n ?x_1) (AtLeast ?n (PLUS ?x_1 ?n ?z)))) true_1)) :pattern ((HavocArray ?x_1 ?n ?z)) ))) (not (forall ((?x_1 Int)) (not (= (select1 Empty ?x_1) true_1)))) (not (forall ((?x_1 Int) (?y Int)) (! (= (= (select1 (Singleton ?y) ?x_1) true_1) (= ?x_1 ?y)) :pattern ((select1 (Singleton ?y) ?x_1)) ))) (not (forall ((?y Int)) (! (= (select1 (Singleton ?y) ?y) true_1) :pattern ((Singleton ?y)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (= (= (select1 (Union ?S ?T) ?x_1) true_1) (or (= (select1 ?S ?x_1) true_1) (= (select1 ?T ?x_1) true_1))) :pattern ((select1 (Union ?S ?T) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (Union ?S ?T) ?x_1) true_1)) :pattern ((Union ?S ?T) (select1 ?S ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (= (select1 ?T ?x_1) true_1) (= (select1 (Union ?S ?T) ?x_1) true_1)) :pattern ((Union ?S ?T) (select1 ?T ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (= (= (select1 (Intersection ?S ?T) ?x_1) true_1) (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (select1 ?T ?x_1) true_1))))) :pattern ((select1 (Intersection ?S ?T) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (select1 ?T ?x_1) true_1)))) (= (select1 (Intersection ?S ?T) ?x_1) true_1)) :pattern ((Intersection ?S ?T) (select1 ?S ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (select1 ?T ?x_1) true_1)))) (= (select1 (Intersection ?S ?T) ?x_1) true_1)) :pattern ((Intersection ?S ?T) (select1 ?T ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (= (= (select1 (Difference ?S ?T) ?x_1) true_1) (not (or (not (= (select1 ?S ?x_1) true_1)) (not (not (= (select1 ?T ?x_1) true_1)))))) :pattern ((select1 (Difference ?S ?T) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (= (select1 ?S ?x_1) true_1) (or (= (select1 (Difference ?S ?T) ?x_1) true_1) (= (select1 ?T ?x_1) true_1))) :pattern ((Difference ?S ?T) (select1 ?S ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?M Int)) (! (=> (= (select1 (Dereference ?S ?M) ?x_1) true_1) (exists ((?y Int)) (not (or (not (= ?x_1 (select1 ?M ?y))) (not (= (select1 ?S ?y) true_1)))))) :pattern ((select1 (Dereference ?S ?M) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int) (?M Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (Dereference ?S ?M) (select1 ?M ?x_1)) true_1)) :pattern ((select1 ?M ?x_1) (select1 ?S ?x_1) (Dereference ?S ?M)) ))) (not (forall ((?x_1 Int) (?y Int) (?S Int) (?M Int)) (! (=> (not (= (select1 ?S ?x_1) true_1)) (= (Equal (Dereference ?S (store1 ?M ?x_1 ?y)) (Dereference ?S ?M)) true_1)) :pattern ((Dereference ?S (store1 ?M ?x_1 ?y))) ))) (not (forall ((?x_1 Int) (?y Int) (?S Int) (?M Int)) (! (let ((?v_0 (select1 ?M ?x_1))) (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (Equal (Intersection (Inverse ?M ?v_0) ?S) (Singleton ?x_1)) true_1)))) (= (Equal (Dereference ?S (store1 ?M ?x_1 ?y)) (Union (Difference (Dereference ?S ?M) (Singleton ?v_0)) (Singleton ?y))) true_1))) :pattern ((Dereference ?S (store1 ?M ?x_1 ?y))) ))) (not (forall ((?x_1 Int) (?y Int) (?S Int) (?M Int)) (! (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (not (= (Equal (Intersection (Inverse ?M (select1 ?M ?x_1)) ?S) (Singleton ?x_1)) true_1))))) (= (Equal (Dereference ?S (store1 ?M ?x_1 ?y)) (Union (Dereference ?S ?M) (Singleton ?y))) true_1)) :pattern ((Dereference ?S (store1 ?M ?x_1 ?y))) ))) (not (forall ((?f Int) (?x_1 Int)) (! (= (select1 (Inverse ?f (select1 ?f ?x_1)) ?x_1) true_1) :pattern ((Inverse ?f (select1 ?f ?x_1))) ))) (not (forall ((?f Int) (?x_1 Int) (?y Int)) (! (= (Equal (Inverse (store1 ?f ?x_1 ?y) ?y) (Union (Inverse ?f ?y) (Singleton ?x_1))) true_1) :pattern ((Inverse (store1 ?f ?x_1 ?y) ?y)) ))) (not (forall ((?f Int) (?x_1 Int) (?y Int) (?z Int)) (! (or (= ?y ?z) (= (Equal (Inverse (store1 ?f ?x_1 ?y) ?z) (Difference (Inverse ?f ?z) (Singleton ?x_1))) true_1)) :pattern ((Inverse (store1 ?f ?x_1 ?y) ?z)) ))) (not (forall ((?S Int) (?T Int)) (! (= (= (Equal ?S ?T) true_1) (not (or (not (= (Subset ?S ?T) true_1)) (not (= (Subset ?T ?S) true_1))))) :pattern ((Equal ?S ?T)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (=> (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (Subset ?S ?T) true_1)))) (= (select1 ?T ?x_1) true_1)) :pattern ((select1 ?S ?x_1) (Subset ?S ?T)) ))) (not (forall ((?S Int) (?T Int)) (! (or (= (Subset ?S ?T) true_1) (exists ((?x_1 Int)) (not (or (not (= (select1 ?S ?x_1) true_1)) (not (not (= (select1 ?T ?x_1) true_1))))))) :pattern ((Subset ?S ?T)) ))) (not (forall ((?x_1 Int) (?S Int) (?T Int)) (! (not (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (Disjoint ?S ?T) true_1)) (not (= (select1 ?T ?x_1) true_1))))) :pattern ((select1 ?S ?x_1) (Disjoint ?S ?T) (select1 ?T ?x_1)) ))) (not (forall ((?S Int) (?T Int)) (! (or (= (Disjoint ?S ?T) true_1) (exists ((?x_1 Int)) (not (or (not (= (select1 ?S ?x_1) true_1)) (not (= (select1 ?T ?x_1) true_1)))))) :pattern ((Disjoint ?S ?T)) ))) (not (forall ((?M Int) (?x_1 Int)) (! (= (select1 (Unified ?M) ?x_1) (select1 (select1 ?M (Field ?x_1)) ?x_1)) :pattern ((select1 (Unified ?M) ?x_1)) ))) (not (forall ((?M Int) (?x_1 Int) (?y Int)) (! (let ((?v_1 (Field ?x_1))) (= (Unified (store1 ?M ?v_1 (store1 (select1 ?M ?v_1) ?x_1 ?y))) (store1 (Unified ?M) ?x_1 ?y))) :pattern ((Unified (store1 ?M (Field ?x_1) (store1 (select1 ?M (Field ?x_1)) ?x_1 ?y)))) ))) (not (forall ((?v Int) (?t Int)) (! (=> (= (select1 (Values ?t) ?v) true_1) (= (HasType ?v ?t) true_1)) :pattern ((select1 (Values ?t) ?v)) ))) (not (forall ((?v Int) (?t Int)) (! (=> (= (HasType ?v ?t) true_1) (= (select1 (Values ?t) ?v) true_1)) :pattern ((HasType ?v ?t) (Values ?t)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a next_foo_name) true_1) (= (Field ?a) next_foo_name)) :pattern ((Match ?a next_foo_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v next_foo_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v foo_name) true_1)))))) :pattern ((HasType ?v next_foo_name))  :pattern ((Match ?v foo_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a p_foo_name) true_1) (= (Field ?a) p_foo_name)) :pattern ((Match ?a p_foo_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v p_foo_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v INT4_name) true_1)))))) :pattern ((HasType ?v p_foo_name))  :pattern ((Match ?v INT4_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a n_foo_name) true_1) (= (Field ?a) n_foo_name)) :pattern ((Match ?a n_foo_name)) ))) (not (forall ((?v Int)) (= (HasType ?v n_foo_name) true_1))) (not (forall ((?a Int)) (! (= (= (Match ?a INT4_name) true_1) (= (Field ?a) INT4_name)) :pattern ((Match ?a INT4_name)) ))) (not (forall ((?v Int)) (= (HasType ?v INT4_name) true_1))) (not (forall ((?a Int)) (! (= (= (Match ?a PINT4_name) true_1) (= (Field ?a) PINT4_name)) :pattern ((Match ?a PINT4_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v PINT4_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v INT4_name) true_1)))))) :pattern ((HasType ?v PINT4_name))  :pattern ((Match ?v INT4_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a PPINT4_name) true_1) (= (Field ?a) PPINT4_name)) :pattern ((Match ?a PPINT4_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v PPINT4_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v PINT4_name) true_1)))))) :pattern ((HasType ?v PPINT4_name))  :pattern ((Match ?v PINT4_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a PPfoo_name) true_1) (= (Field ?a) PPfoo_name)) :pattern ((Match ?a PPfoo_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v PPfoo_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v Pfoo_name) true_1)))))) :pattern ((HasType ?v PPfoo_name))  :pattern ((Match ?v Pfoo_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a Pfoo_name) true_1) (= (Field ?a) Pfoo_name)) :pattern ((Match ?a Pfoo_name)) ))) (not (forall ((?v Int)) (! (= (= (HasType ?v Pfoo_name) true_1) (or (= ?v 0) (not (or (not (> ?v 0)) (not (= (Match ?v foo_name) true_1)))))) :pattern ((HasType ?v Pfoo_name))  :pattern ((Match ?v foo_name)) ))) (not (forall ((?a Int)) (! (= (= (Match ?a foo_name) true_1) (not (or (not true) (not (= (Match (next_foo ?a) next_foo_name) true_1)) (not (= (Match (p_foo ?a) p_foo_name) true_1)) (not (= (Match (n_foo ?a) n_foo_name) true_1))))) :pattern ((Match ?a foo_name)) ))) (not (forall ((?x_1 Int)) (! (= (next_fooInv (next_foo ?x_1)) ?x_1) :pattern ((next_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (next_foo (next_fooInv ?x_1)) ?x_1) :pattern ((next_fooInv ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_next_foo ?S) ?x_1) true_1) (= (select1 ?S (next_fooInv ?x_1)) true_1)) :pattern ((select1 (S_next_foo ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_next_fooInv ?S) ?x_1) true_1) (= (select1 ?S (next_foo ?x_1)) true_1)) :pattern ((select1 (S_next_fooInv ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_next_foo ?S) (next_foo ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_next_foo ?S)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_next_fooInv ?S) (next_fooInv ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_next_fooInv ?S)) ))) (not (forall ((?x_1 Int)) (! (= (next_foo ?x_1) (+ ?x_1 0)) :pattern ((next_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (next_fooInv ?x_1) (- ?x_1 0)) :pattern ((next_fooInv ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 0 1) (next_fooInv ?x_1)) :pattern ((MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 0 1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_LEFT_PTR ?x_1 1 0) (next_fooInv ?x_1)) :pattern ((MINUS_LEFT_PTR ?x_1 1 0)) ))) (not (forall ((?x_1 Int)) (! (= (p_fooInv (p_foo ?x_1)) ?x_1) :pattern ((p_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (p_foo (p_fooInv ?x_1)) ?x_1) :pattern ((p_fooInv ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_p_foo ?S) ?x_1) true_1) (= (select1 ?S (p_fooInv ?x_1)) true_1)) :pattern ((select1 (S_p_foo ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_p_fooInv ?S) ?x_1) true_1) (= (select1 ?S (p_foo ?x_1)) true_1)) :pattern ((select1 (S_p_fooInv ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_p_foo ?S) (p_foo ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_p_foo ?S)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_p_fooInv ?S) (p_fooInv ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_p_fooInv ?S)) ))) (not (forall ((?x_1 Int)) (! (= (p_foo ?x_1) (+ ?x_1 4)) :pattern ((p_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (p_fooInv ?x_1) (- ?x_1 4)) :pattern ((p_fooInv ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 4 1) (p_fooInv ?x_1)) :pattern ((MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 4 1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_LEFT_PTR ?x_1 1 4) (p_fooInv ?x_1)) :pattern ((MINUS_LEFT_PTR ?x_1 1 4)) ))) (not (forall ((?x_1 Int)) (! (= (n_fooInv (n_foo ?x_1)) ?x_1) :pattern ((n_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (n_foo (n_fooInv ?x_1)) ?x_1) :pattern ((n_fooInv ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_n_foo ?S) ?x_1) true_1) (= (select1 ?S (n_fooInv ?x_1)) true_1)) :pattern ((select1 (S_n_foo ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (= (= (select1 (S_n_fooInv ?S) ?x_1) true_1) (= (select1 ?S (n_foo ?x_1)) true_1)) :pattern ((select1 (S_n_fooInv ?S) ?x_1)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_n_foo ?S) (n_foo ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_n_foo ?S)) ))) (not (forall ((?x_1 Int) (?S Int)) (! (=> (= (select1 ?S ?x_1) true_1) (= (select1 (S_n_fooInv ?S) (n_fooInv ?x_1)) true_1)) :pattern ((select1 ?S ?x_1) (S_n_fooInv ?S)) ))) (not (forall ((?x_1 Int)) (! (= (n_foo ?x_1) (+ ?x_1 8)) :pattern ((n_foo ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (n_fooInv ?x_1) (- ?x_1 8)) :pattern ((n_fooInv ?x_1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 8 1) (n_fooInv ?x_1)) :pattern ((MINUS_BOTH_PTR_OR_BOTH_INT ?x_1 8 1)) ))) (not (forall ((?x_1 Int)) (! (= (MINUS_LEFT_PTR ?x_1 1 8) (n_fooInv ?x_1)) :pattern ((MINUS_LEFT_PTR ?x_1 1 8)) ))) (not (forall ((?a Int) (?b Int) (?size Int)) (! (let ((?v_3 (MINUS_BOTH_PTR_OR_BOTH_INT ?a ?b ?size)) (?v_2 (- ?a ?b))) (not (or (not (<= (* ?size ?v_3) ?v_2)) (not (< ?v_2 (* ?size (+ ?v_3 1))))))) :pattern ((MINUS_BOTH_PTR_OR_BOTH_INT ?a ?b ?size)) ))) (not (forall ((?a Int) (?a_size Int) (?b Int)) (! (= (MINUS_LEFT_PTR ?a ?a_size ?b) (- ?a (* ?a_size ?b))) :pattern ((MINUS_LEFT_PTR ?a ?a_size ?b)) ))) (not (forall ((?a Int) (?a_size Int) (?b Int)) (! (= (PLUS ?a ?a_size ?b) (+ ?a (* ?a_size ?b))) :pattern ((PLUS ?a ?a_size ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (= (MULT ?a ?b) (* ?a ?b)) :pattern ((MULT ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (let ((?v_4 (DIV ?a ?b))) (=> (not (or (not (>= ?a 0)) (not (> ?b 0)))) (not (or (not (<= (* ?b ?v_4) ?a)) (not (< ?a (* ?b (+ ?v_4 1)))))))) :pattern ((DIV ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (let ((?v_5 (DIV ?a ?b))) (=> (not (or (not (>= ?a 0)) (not (< ?b 0)))) (not (or (not (<= (* ?b ?v_5) ?a)) (not (< ?a (* ?b (- ?v_5 1)))))))) :pattern ((DIV ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (let ((?v_6 (DIV ?a ?b))) (=> (not (or (not (< ?a 0)) (not (> ?b 0)))) (not (or (not (>= (* ?b ?v_6) ?a)) (not (> ?a (* ?b (- ?v_6 1)))))))) :pattern ((DIV ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (let ((?v_7 (DIV ?a ?b))) (=> (not (or (not (< ?a 0)) (not (< ?b 0)))) (not (or (not (>= (* ?b ?v_7) ?a)) (not (> ?a (* ?b (+ ?v_7 1)))))))) :pattern ((DIV ?a ?b)) ))) (not (= (POW2 1) true_1)) (not (= (POW2 2) true_1)) (not (= (POW2 4) true_1)) (not (= (POW2 8) true_1)) (not (= (POW2 16) true_1)) (not (= (POW2 32) true_1)) (not (= (POW2 64) true_1)) (not (= (POW2 128) true_1)) (not (= (POW2 256) true_1)) (not (= (POW2 512) true_1)) (not (= (POW2 1024) true_1)) (not (= (POW2 2048) true_1)) (not (= (POW2 4096) true_1)) (not (= (POW2 8192) true_1)) (not (= (POW2 16384) true_1)) (not (= (POW2 32768) true_1)) (not (= (POW2 65536) true_1)) (not (= (POW2 131072) true_1)) (not (= (POW2 262144) true_1)) (not (= (POW2 524288) true_1)) (not (= (POW2 1048576) true_1)) (not (= (POW2 2097152) true_1)) (not (= (POW2 4194304) true_1)) (not (= (POW2 8388608) true_1)) (not (= (POW2 16777216) true_1)) (not (= (POW2 33554432) true_1)) (not (forall ((?a Int) (?b Int) (?c Int)) (! (=> (= ?a true_1) (= (set.choose ?a ?b ?c) ?b)) :pattern ((set.choose ?a ?b ?c)) ))) (not (forall ((?a Int) (?b Int) (?c Int)) (! (=> (not (= ?a true_1)) (= (set.choose ?a ?b ?c) ?c)) :pattern ((set.choose ?a ?b ?c)) ))) (not (forall ((?a Int) (?b Int)) (! (=> (= ?a ?b) (= (BIT_BAND ?a ?b) ?a)) :pattern ((BIT_BAND ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (=> (not (or (not (= (POW2 ?a) true_1)) (not (= (POW2 ?b) true_1)) (not (not (= ?a ?b))))) (= (BIT_BAND ?a ?b) 0)) :pattern ((BIT_BAND ?a ?b)) ))) (not (forall ((?a Int) (?b Int)) (! (=> (or (= ?a 0) (= ?b 0)) (= (BIT_BAND ?a ?b) 0)) :pattern ((BIT_BAND ?a ?b)) ))) (not (forall ((?a Int)) (! (= (= ?a true_1) (not (= (LIFT ?a) 0))) :pattern ((LIFT ?a)) ))) (not (forall ((?a Int)) (! (=> (= ?a 0) (not (= (boolNot ?a) 0))) :pattern ((boolNot ?a)) ))) (not (forall ((?a Int)) (! (=> (not (= ?a 0)) (= (boolNot ?a) 0)) :pattern ((boolNot ?a)) ))) (not (forall ((?a Int)) (! (=> (= ?a 0) (not (= (NULL_CHECK ?a) 0))) :pattern ((NULL_CHECK ?a)) ))) (not (forall ((?a Int)) (! (=> (not (= ?a 0)) (= (NULL_CHECK ?a) 0)) :pattern ((NULL_CHECK ?a)) ))))))
 (assert (let ((?v_52 (forall ((?a Int)) (! (let ((?v_53 (Field ?a))) (= (HasType (select1 (select1 Mem_3 ?v_53) ?a) ?v_53) true_1)) :pattern ((select1 (select1 Mem_3 (Field ?a)) ?a)) ))) (?v_51 (= (HasType result_bar_24_4_1__0 INT4_name) true_1)) (?v_50 (not (or (not (<= 0 head_0)) (not (<= head_0 0))))) (?v_49 (= head_0 0)) (?v_48 (=> true (=> false true))) (?v_44 (= (HasType sum_1 INT4_name) true_1))) (let ((?v_47 (not ?v_44)) (?v_29 (= (HasType i_1 INT4_name) true_1))) (let ((?v_35 (not ?v_29)) (?v_43 (= (HasType head_1 Pfoo_name) true_1))) (let ((?v_46 (not ?v_43)) (?v_28 (forall ((?a Int)) (! (let ((?v_54 (Field ?a))) (= (HasType (select1 (select1 Mem_1 ?v_54) ?a) ?v_54) true_1)) :pattern ((select1 (select1 Mem_1 (Field ?a)) ?a)) )))) (let ((?v_42 (not ?v_28)) (?v_12 (Field 0))) (let ((?v_10 (select1 (select1 Mem ?v_12) 0)) (?v_45 (select1 (select1 Mem_1 ?v_12) 0)) (?v_11 (forall ((?f Int)) (! (let ((?v_55 (select1 alloc (Base ?f)))) (or (= ?v_55 UNALLOCATED) (= ?v_55 ?v_55))) :pattern ((select1 alloc (Base ?f))) ))) (?v_41 (next_foo head_0)) (?v_22 (not ?v_49)) (?v_19 (n_foo head_0))) (let ((?v_23 (Field ?v_19))) (let ((?v_24 (select1 (select1 Mem_1 ?v_23) ?v_19))) (let ((?v_40 (< i_1 ?v_24)) (?v_30 (= (HasType tempBoogie0_2 INT4_name) true_1))) (let ((?v_36 (not ?v_30)) (?v_39 (= (HasType i_2 INT4_name) true_1)) (?v_14 (= (HasType head_0 Pfoo_name) true_1))) (let ((?v_17 (not ?v_14)) (?v_34 (forall ((?a Int)) (! (let ((?v_56 (Field ?a))) (= (HasType (select1 (select1 Mem_2 ?v_56) ?a) ?v_56) true_1)) :pattern ((select1 (select1 Mem_2 (Field ?a)) ?a)) )))) (let ((?v_38 (not ?v_34)) (?v_21 (select1 (select1 Mem_0 ?v_12) 0)) (?v_37 (not (or (not (<= 0 i_2)) (not (<= i_2 (select1 (select1 Mem_2 ?v_23) ?v_19)))))) (?v_25 (p_foo head_0))) (let ((?v_26 (select1 (select1 Mem_1 (Field ?v_25)) ?v_25))) (let ((?v_27 (PLUS ?v_26 4 i_1))) (let ((?v_32 (Field ?v_27))) (let ((?v_33 (select1 Mem_1 ?v_32)) (?v_31 (not (= ?v_26 0))) (?v_15 (= (HasType sum_0 INT4_name) true_1))) (let ((?v_18 (not ?v_15)) (?v_2 (= (HasType 0 INT4_name) true_1))) (let ((?v_8 (not ?v_2)) (?v_13 (forall ((?a Int)) (! (let ((?v_57 (Field ?a))) (= (HasType (select1 (select1 Mem_0 ?v_57) ?a) ?v_57) true_1)) :pattern ((select1 (select1 Mem_0 (Field ?a)) ?a)) )))) (let ((?v_16 (not ?v_13)) (?v_4 (not (<= 0 0)))) (let ((?v_20 (not (or ?v_4 (not (<= 0 (select1 (select1 Mem_0 ?v_23) ?v_19)))))) (?v_5 (not (or ?v_4 ?v_4))) (?v_0 (= (HasType head1 Pfoo_name) true_1))) (let ((?v_7 (not ?v_0)) (?v_1 (forall ((?a Int)) (! (let ((?v_58 (Field ?a))) (= (HasType (select1 (select1 Mem ?v_58) ?a) ?v_58) true_1)) :pattern ((select1 (select1 Mem (Field ?a)) ?a)) )))) (let ((?v_6 (not ?v_1)) (?v_9 (not (or ?v_4 ?v_4 ?v_4 ?v_4))) (?v_3 (= (HasType sum INT4_name) true_1))) (not (=> true (=> ?v_0 (=> ?v_1 (=> (forall ((?H_pfoo Int)) (let ((?v_59 (n_foo ?H_pfoo))) (let ((?v_61 (select1 (select1 Mem (Field ?v_59)) ?v_59)) (?v_60 (p_foo ?H_pfoo))) (=> (= (HasType ?H_pfoo Pfoo_name) true_1) (not (or (not (>= ?v_61 0)) (not (= (Subset Empty (HavocArray (select1 (select1 Mem (Field ?v_60)) ?v_60) 4 ?v_61)) true_1)) (not (forall ((?H_pint Int)) (! (=> (= (select1 (HavocArray (select1 (select1 Mem (Field ?v_60)) ?v_60) 4 ?v_61) ?H_pint) true_1) (= (HasType ?H_pint PINT4_name) true_1)) :pattern ((select1 (HavocArray (select1 (select1 Mem (Field ?v_60)) ?v_60) 4 ?v_61) ?H_pint)) ))))))))) (=> true (=> (not (= (select1 alloc head1) UNALLOCATED)) (=> (= (HasType head Pfoo_name) true_1) (=> ?v_0 (=> (= (HasType i INT4_name) true_1) (=> ?v_3 (=> (= (HasType result_bar_24_4_1_ INT4_name) true_1) (=> true (=> true (=> true (=> true (=> true (=> true (not (or ?v_6 (not (=> ?v_1 (not (or ?v_7 (not (=> ?v_0 (not (or ?v_8 (not (=> ?v_2 (not (or (not ?v_3) (not (=> ?v_3 (=> ?v_5 (=> true (=> ?v_5 (=> ?v_5 (=> true (=> ?v_5 (not (or ?v_6 (not (=> ?v_1 (not (or ?v_7 (not (=> ?v_0 (not (or ?v_8 (not (=> ?v_2 (not (or ?v_8 (not (=> ?v_2 (=> ?v_9 (=> true (=> ?v_9 (=> ?v_9 (=> true (=> ?v_11 (=> (forall ((?f Int) (?m Int)) (! (let ((?v_62 (select1 (select1 Mem ?f) ?m))) (= ?v_62 ?v_62)) :pattern ((select1 (select1 Mem ?f) ?m)) )) (=> (= ?v_10 ?v_10) (not (or ?v_6 (not (=> ?v_1 (not (or ?v_7 (not (=> ?v_0 (not (or ?v_8 (not (=> ?v_2 (not (or ?v_8 (not (=> ?v_2 (=> true (=> true (=> true (=> ?v_11 (=> (forall ((?f Int) (?m Int)) (! (= (select1 (select1 Mem_0 ?f) ?m) (select1 (select1 Mem ?f) ?m)) :pattern ((select1 (select1 Mem_0 ?f) ?m)) )) (=> (= ?v_21 ?v_10) (=> ?v_13 (=> ?v_14 (=> (= (HasType i_0 INT4_name) true_1) (=> ?v_15 (=> true (not (or (not (=> true (=> true (=> ?v_22 (=> true (=> true (=> true (not (or ?v_16 (not (=> ?v_13 (not (or ?v_17 (not (=> ?v_14 (not (or ?v_8 (not (=> ?v_2 (not (or ?v_18 (not (=> ?v_15 (=> ?v_5 (=> true (=> ?v_5 (=> ?v_5 (=> true (=> ?v_5 (not (or ?v_16 (not (=> ?v_13 (not (or ?v_17 (not (=> ?v_14 (not (or ?v_8 (not (=> ?v_2 (not (or ?v_18 (not (=> ?v_15 (=> ?v_5 (=> true (=> ?v_5 (=> ?v_5 (=> true (not (or (not ?v_20) (not (=> ?v_20 (=> ?v_11 (=> (forall ((?f Int) (?m Int)) (! (let ((?v_63 (select1 (select1 Mem_0 ?f) ?m))) (= ?v_63 ?v_63)) :pattern ((select1 (select1 Mem_0 ?f) ?m)) )) (=> (= ?v_21 ?v_21) (not (or ?v_16 (not (=> ?v_13 (not (or ?v_17 (not (=> ?v_14 (not (or ?v_8 (not (=> ?v_2 (not (or ?v_18 (not (=> ?v_15 (=> ?v_22 (=> true (=> true (=> true (=> (not (or (not (<= 0 i_1)) (not (<= i_1 ?v_24)))) (=> ?v_11 (=> (forall ((?f Int) (?m Int)) (! (= (select1 (select1 Mem_1 ?f) ?m) (select1 (select1 Mem_0 ?f) ?m)) :pattern ((select1 (select1 Mem_1 ?f) ?m)) )) (=> (= ?v_45 ?v_21) (=> ?v_28 (=> ?v_14 (=> ?v_29 (=> ?v_44 (=> ?v_22 (=> true (not (or (not (=> true (=> true (=> ?v_40 (=> true (=> true (=> true (=> ?v_22 (=> ?v_31 (=> (= tempBoogie0_2 (PLUS sum_1 1 (select1 ?v_33 ?v_27))) (not (or ?v_42 (not (=> ?v_28 (not (or ?v_17 (not (=> ?v_14 (not (or ?v_35 (not (=> ?v_29 (not (or ?v_36 (not (=> ?v_30 (=> true (=> true (=> true (=> ?v_22 (=> ?v_31 (=> (= Mem_2 (store1 Mem_1 ?v_32 (store1 ?v_33 ?v_27 42))) (not (or ?v_38 (not (=> ?v_34 (not (or ?v_17 (not (=> ?v_14 (not (or ?v_35 (not (=> ?v_29 (not (or ?v_36 (not (=> ?v_30 (=> true (=> true (=> true (=> (= i_2 (PLUS i_1 1 1)) (=> true (=> true (=> true (not (or (not ?v_37) (not (=> ?v_37 (=> ?v_11 (=> (forall ((?f Int) (?m Int)) (! (= (select1 (select1 Mem_2 ?f) ?m) (select1 (select1 Mem_0 ?f) ?m)) :pattern ((select1 (select1 Mem_2 ?f) ?m)) )) (=> (= (select1 (select1 Mem_2 ?v_12) 0) ?v_21) (not (or ?v_38 (not (=> ?v_34 (not (or ?v_17 (not (=> ?v_14 (not (or (not ?v_39) (not (=> ?v_39 (not (or ?v_36 (not (=> ?v_30 (=> ?v_22 ?v_48))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (not (=> true (=> true (=> (not ?v_40) (=> true (=> true (=> true (=> ?v_22 (=> (= head_1 (select1 (select1 Mem_1 (Field ?v_41)) ?v_41)) (not (or ?v_42 (not (=> ?v_28 (not (or ?v_46 (not (=> ?v_43 (not (or ?v_35 (not (=> ?v_29 (not (or ?v_47 (not (=> ?v_44 (=> true (=> true (=> true (=> ?v_11 (=> (forall ((?f Int) (?m Int)) (! (= (select1 (select1 Mem_1 ?f) ?m) (select1 (select1 Mem ?f) ?m)) :pattern ((select1 (select1 Mem_1 ?f) ?m)) )) (=> (= ?v_45 ?v_10) (not (or ?v_42 (not (=> ?v_28 (not (or ?v_46 (not (=> ?v_43 (not (or ?v_35 (not (=> ?v_29 (not (or ?v_47 (not (=> ?v_44 ?v_48)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (not (=> true (=> true (=> ?v_49 (=> ?v_50 (=> true (=> ?v_50 (=> ?v_50 (=> true (=> ?v_50 (=> (forall ((?m Int)) (! (let ((?v_65 (Field ?m)) (?v_64 (not (not (= (select1 alloc (Base ?m)) ALLOCATED))))) (=> (not (or ?v_64 ?v_64)) (= (select1 (select1 Mem_0 ?v_65) ?m) (select1 (select1 Mem ?v_65) ?m)))) :pattern ((select1 (select1 Mem_0 (Field ?m)) ?m)) )) (=> ?v_50 (=> true (=> (= LOOP_12_alloc_1 LOOP_12_alloc_0) (=> (= i_3 i_0) (=> (= sum_2 sum_0) (=> (= tempBoogie0_3 tempBoogie0_0) (=> (= head_2 head_0) (=> (= result_bar_24_4_1__0 sum_0) (=> (= LOOP_12_Mem_1 LOOP_12_Mem_0) (=> (= Mem_3 Mem_0) (=> true (=> true (not (or (not ?v_51) (not (=> ?v_51 (not (or (not ?v_52) (not (=> ?v_52 true)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 (check-sat)
 (exit)
index fc788a15cf365c22a96c2b87e436f00b195637c5..9a5137bef6dc403f41b7e4ad21a9ae0a405ed221 100644 (file)
 (declare-fun succ$a (Msg_list_set$ Msg_list$) Msg_set$)
 (declare-fun succ$b (Agent_list_set$ Agent_list$) Agent_set$)
 (declare-fun append$ (Event_list$ Event_list$) Event_list$)
-(declare-fun insert$ (Msg$ Msg_set$) Msg_set$)
-(declare-fun member$ (Agent$ Agent_set$) Bool)
+(declare-fun set.insert$ (Msg$ Msg_set$) Msg_set$)
+(declare-fun set.member$ (Agent$ Agent_set$) Bool)
 (declare-fun splice$ (Event_list$) (-> Event_list$ Event_list$))
 (declare-fun append$a (Msg_list$ Msg_list$) Msg_list$)
 (declare-fun append$b (Agent_list$ Agent_list$) Agent_list$)
 (declare-fun collect$ ((-> Msg$ Bool)) Msg_set$)
-(declare-fun insert$a (Event$) (-> Event_list$ Event_list$))
-(declare-fun insert$b (Event$ Event_set$) Event_set$)
-(declare-fun insert$c (Agent$ Agent_set$) Agent_set$)
-(declare-fun insert$d (Msg$ Msg_list$) Msg_list$)
-(declare-fun insert$e (Agent$ Agent_list$) Agent_list$)
+(declare-fun set.insert$a (Event$) (-> Event_list$ Event_list$))
+(declare-fun set.insert$b (Event$ Event_set$) Event_set$)
+(declare-fun set.insert$c (Agent$ Agent_set$) Agent_set$)
+(declare-fun set.insert$d (Msg$ Msg_list$) Msg_list$)
+(declare-fun set.insert$e (Agent$ Agent_list$) Agent_list$)
 (declare-fun less_eq$ (Msg_set$ Msg_set$) Bool)
 (declare-fun list_ex$ ((-> Event$ Bool)) (-> Event_list$ Bool))
-(declare-fun member$a (Msg$ Msg_set$) Bool)
-(declare-fun member$b (Event$ Event_set$) Bool)
-(declare-fun member$c (Event_list$ Event_list_set$) Bool)
-(declare-fun member$d (Event_list$ Event$) Bool)
-(declare-fun member$e (Msg_list$ Msg_list_set$) Bool)
-(declare-fun member$f (Agent_list$ Agent_list_set$) Bool)
-(declare-fun member$g (Msg_list$ Msg$) Bool)
-(declare-fun member$h (Agent_list$ Agent$) Bool)
+(declare-fun set.member$a (Msg$ Msg_set$) Bool)
+(declare-fun set.member$b (Event$ Event_set$) Bool)
+(declare-fun set.member$c (Event_list$ Event_list_set$) Bool)
+(declare-fun set.member$d (Event_list$ Event$) Bool)
+(declare-fun set.member$e (Msg_list$ Msg_list_set$) Bool)
+(declare-fun set.member$f (Agent_list$ Agent_list_set$) Bool)
+(declare-fun set.member$g (Msg_list$ Msg$) Bool)
+(declare-fun set.member$h (Agent_list$ Agent$) Bool)
 (declare-fun rotate1$ (Event_list$) Event_list$)
 (declare-fun subseqs$ (Event_list$) Event_list_list$)
 (declare-fun antimono$ ((-> Msg_set$ Msg_set$)) Bool)
 (declare-fun takeWhile$a ((-> Msg$ Bool) Msg_list$) Msg_list$)
 (declare-fun takeWhile$b ((-> Agent$ Bool) Agent_list$) Agent_list$)
 (declare-fun product_lists$ (Event_list_list$) Event_list_list$)
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent$)) (! (= (uue$ ?v0 ?v1) (member$ ?v1 ?v0)) :pattern ((uue$ ?v0 ?v1)))) :named a0))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg$)) (! (= (uuf$ ?v0 ?v1) (member$a ?v1 ?v0)) :pattern ((uuf$ ?v0 ?v1)))) :named a1))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event$)) (! (= (uud$ ?v0 ?v1) (member$b ?v1 ?v0)) :pattern ((uud$ ?v0 ?v1)))) :named a2))
-(assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Msg$)) (! (= (uuq$ ?v0 ?v1 ?v2) (ite (member$ ?v1 bad$) (insert$ ?v2 (knows$ spy$ ?v0)) (knows$ spy$ ?v0))) :pattern ((uuq$ ?v0 ?v1 ?v2)))) :named a3))
-(assert (! (forall ((?v0 Event_list_set$) (?v1 Event_list$) (?v2 Event$)) (! (= (uuj$ ?v0 ?v1 ?v2) (member$c (append$ ?v1 (cons$ ?v2 nil$)) ?v0)) :pattern ((uuj$ ?v0 ?v1 ?v2)))) :named a4))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent$)) (! (= (uun$ ?v0 ?v1 ?v2) (or (= ?v2 ?v0) (member$ ?v2 ?v1))) :pattern ((uun$ ?v0 ?v1 ?v2)))) :named a5))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg$)) (! (= (uul$ ?v0 ?v1 ?v2) (or (= ?v2 ?v0) (member$a ?v2 ?v1))) :pattern ((uul$ ?v0 ?v1 ?v2)))) :named a6))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event$)) (! (= (uum$ ?v0 ?v1 ?v2) (or (= ?v2 ?v0) (member$b ?v2 ?v1))) :pattern ((uum$ ?v0 ?v1 ?v2)))) :named a7))
-(assert (! (forall ((?v0 Agent_set$) (?v1 (-> Agent$ Bool)) (?v2 Agent$)) (! (= (uub$ ?v0 ?v1 ?v2) (and (member$ ?v2 ?v0) (?v1 ?v2))) :pattern ((uub$ ?v0 ?v1 ?v2)))) :named a8))
-(assert (! (forall ((?v0 Msg_set$) (?v1 (-> Msg$ Bool)) (?v2 Msg$)) (! (= (uuc$ ?v0 ?v1 ?v2) (and (member$a ?v2 ?v0) (?v1 ?v2))) :pattern ((uuc$ ?v0 ?v1 ?v2)))) :named a9))
-(assert (! (forall ((?v0 Event_set$) (?v1 (-> Event$ Bool)) (?v2 Event$)) (! (= (uua$ ?v0 ?v1 ?v2) (and (member$b ?v2 ?v0) (?v1 ?v2))) :pattern ((uua$ ?v0 ?v1 ?v2)))) :named a10))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent$)) (! (= (uue$ ?v0 ?v1) (set.member$ ?v1 ?v0)) :pattern ((uue$ ?v0 ?v1)))) :named a0))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg$)) (! (= (uuf$ ?v0 ?v1) (set.member$a ?v1 ?v0)) :pattern ((uuf$ ?v0 ?v1)))) :named a1))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event$)) (! (= (uud$ ?v0 ?v1) (set.member$b ?v1 ?v0)) :pattern ((uud$ ?v0 ?v1)))) :named a2))
+(assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Msg$)) (! (= (uuq$ ?v0 ?v1 ?v2) (ite (set.member$ ?v1 bad$) (set.insert$ ?v2 (knows$ spy$ ?v0)) (knows$ spy$ ?v0))) :pattern ((uuq$ ?v0 ?v1 ?v2)))) :named a3))
+(assert (! (forall ((?v0 Event_list_set$) (?v1 Event_list$) (?v2 Event$)) (! (= (uuj$ ?v0 ?v1 ?v2) (set.member$c (append$ ?v1 (cons$ ?v2 nil$)) ?v0)) :pattern ((uuj$ ?v0 ?v1 ?v2)))) :named a4))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent$)) (! (= (uun$ ?v0 ?v1 ?v2) (or (= ?v2 ?v0) (set.member$ ?v2 ?v1))) :pattern ((uun$ ?v0 ?v1 ?v2)))) :named a5))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg$)) (! (= (uul$ ?v0 ?v1 ?v2) (or (= ?v2 ?v0) (set.member$a ?v2 ?v1))) :pattern ((uul$ ?v0 ?v1 ?v2)))) :named a6))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event$)) (! (= (uum$ ?v0 ?v1 ?v2) (or (= ?v2 ?v0) (set.member$b ?v2 ?v1))) :pattern ((uum$ ?v0 ?v1 ?v2)))) :named a7))
+(assert (! (forall ((?v0 Agent_set$) (?v1 (-> Agent$ Bool)) (?v2 Agent$)) (! (= (uub$ ?v0 ?v1 ?v2) (and (set.member$ ?v2 ?v0) (?v1 ?v2))) :pattern ((uub$ ?v0 ?v1 ?v2)))) :named a8))
+(assert (! (forall ((?v0 Msg_set$) (?v1 (-> Msg$ Bool)) (?v2 Msg$)) (! (= (uuc$ ?v0 ?v1 ?v2) (and (set.member$a ?v2 ?v0) (?v1 ?v2))) :pattern ((uuc$ ?v0 ?v1 ?v2)))) :named a9))
+(assert (! (forall ((?v0 Event_set$) (?v1 (-> Event$ Bool)) (?v2 Event$)) (! (= (uua$ ?v0 ?v1 ?v2) (and (set.member$b ?v2 ?v0) (?v1 ?v2))) :pattern ((uua$ ?v0 ?v1 ?v2)))) :named a10))
 (assert (! (forall ((?v0 (-> Msg$ Bool)) (?v1 (-> Msg$ Bool)) (?v2 Msg$)) (! (= (uu$ ?v0 ?v1 ?v2) (and (?v0 ?v2) (?v1 ?v2))) :pattern ((uu$ ?v0 ?v1 ?v2)))) :named a11))
 (assert (! (forall ((?v0 Msg$) (?v1 (-> Msg$ Bool)) (?v2 Msg$)) (! (= (uuk$ ?v0 ?v1 ?v2) (=> (not (= ?v2 ?v0)) (?v1 ?v2))) :pattern ((uuk$ ?v0 ?v1 ?v2)))) :named a12))
 (assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event$) (?v2 Event$)) (! (= (uui$ ?v0 ?v1 ?v2) (or (not (?v0 ?v2)) (= ?v1 ?v2))) :pattern ((uui$ ?v0 ?v1 ?v2)))) :named a13))
 (assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Msg$)) (! (= (uup$ ?v0 ?v1 ?v2) (knows$ spy$ ?v0)) :pattern ((uup$ ?v0 ?v1 ?v2)))) :named a14))
-(assert (! (forall ((?v0 Agent$) (?v1 Event_list$) (?v2 Agent$) (?v3 Msg$)) (! (= (uus$ ?v0 ?v1 ?v2 ?v3) (ite (= ?v2 ?v0) (insert$ ?v3 (knows$ ?v0 ?v1)) (knows$ ?v0 ?v1))) :pattern ((uus$ ?v0 ?v1 ?v2 ?v3)))) :named a15))
-(assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Agent$) (?v3 Msg$)) (! (= (uuo$ ?v0 ?v1 ?v2 ?v3) (insert$ ?v3 (knows$ spy$ ?v0))) :pattern ((uuo$ ?v0 ?v1 ?v2 ?v3)))) :named a16))
-(assert (! (forall ((?v0 Agent$) (?v1 Event_list$) (?v2 Agent$) (?v3 Agent$) (?v4 Msg$)) (! (= (uur$ ?v0 ?v1 ?v2 ?v3 ?v4) (ite (= ?v2 ?v0) (insert$ ?v4 (knows$ ?v0 ?v1)) (knows$ ?v0 ?v1))) :pattern ((uur$ ?v0 ?v1 ?v2 ?v3 ?v4)))) :named a17))
+(assert (! (forall ((?v0 Agent$) (?v1 Event_list$) (?v2 Agent$) (?v3 Msg$)) (! (= (uus$ ?v0 ?v1 ?v2 ?v3) (ite (= ?v2 ?v0) (set.insert$ ?v3 (knows$ ?v0 ?v1)) (knows$ ?v0 ?v1))) :pattern ((uus$ ?v0 ?v1 ?v2 ?v3)))) :named a15))
+(assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Agent$) (?v3 Msg$)) (! (= (uuo$ ?v0 ?v1 ?v2 ?v3) (set.insert$ ?v3 (knows$ spy$ ?v0))) :pattern ((uuo$ ?v0 ?v1 ?v2 ?v3)))) :named a16))
+(assert (! (forall ((?v0 Agent$) (?v1 Event_list$) (?v2 Agent$) (?v3 Agent$) (?v4 Msg$)) (! (= (uur$ ?v0 ?v1 ?v2 ?v3 ?v4) (ite (= ?v2 ?v0) (set.insert$ ?v4 (knows$ ?v0 ?v1)) (knows$ ?v0 ?v1))) :pattern ((uur$ ?v0 ?v1 ?v2 ?v3 ?v4)))) :named a17))
 (assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (= (uug$ ?v0 ?v1) false) :pattern ((uug$ ?v0 ?v1)))) :named a18))
 (assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (= (uuh$ ?v0 ?v1) true) :pattern ((uuh$ ?v0 ?v1)))) :named a19))
 (assert (! (not (less_eq$ (knows$ spy$ (takeWhile$ p$ nil$)) (knows$ spy$ nil$))) :named a20))
 (assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event_list$)) (= (takeWhile$ ?v0 (takeWhile$ ?v0 ?v1)) (takeWhile$ ?v0 ?v1))) :named a21))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$)) (=> (forall ((?v2 Event$)) (=> (member$b ?v2 ?v0) (member$b ?v2 ?v1))) (less_eq$a ?v0 ?v1))) :named a22))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$)) (=> (forall ((?v2 Agent$)) (=> (member$ ?v2 ?v0) (member$ ?v2 ?v1))) (less_eq$b ?v0 ?v1))) :named a23))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (=> (forall ((?v2 Msg$)) (=> (member$a ?v2 ?v0) (member$a ?v2 ?v1))) (less_eq$ ?v0 ?v1))) :named a24))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$)) (=> (forall ((?v2 Event$)) (=> (set.member$b ?v2 ?v0) (set.member$b ?v2 ?v1))) (less_eq$a ?v0 ?v1))) :named a22))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$)) (=> (forall ((?v2 Agent$)) (=> (set.member$ ?v2 ?v0) (set.member$ ?v2 ?v1))) (less_eq$b ?v0 ?v1))) :named a23))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (=> (forall ((?v2 Msg$)) (=> (set.member$a ?v2 ?v0) (set.member$a ?v2 ?v1))) (less_eq$ ?v0 ?v1))) :named a24))
 (assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (=> (and (less_eq$ ?v0 ?v1) (less_eq$ ?v1 ?v0)) (= ?v0 ?v1))) :named a25))
 (assert (! (forall ((?v0 Msg_set$)) (less_eq$ ?v0 ?v0)) :named a26))
 (assert (! (forall ((?v0 (-> Event$ Bool))) (! (= (takeWhile$ ?v0 nil$) nil$) :pattern ((takeWhile$ ?v0)))) :named a27))
 (assert (! (forall ((?v0 Msg_set$) (?v1 (-> Msg$ Bool)) (?v2 (-> Msg$ Bool))) (= (less_eq$ ?v0 (collect$ (uu$ ?v1 ?v2))) (and (less_eq$ ?v0 (collect$ ?v1)) (less_eq$ ?v0 (collect$ ?v2))))) :named a28))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$) (?v3 (-> Event$ Bool))) (=> (and (member$b ?v0 ?v1) (less_eq$a ?v1 (collect$a (uua$ ?v2 ?v3)))) (?v3 ?v0))) :named a29))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$) (?v3 (-> Agent$ Bool))) (=> (and (member$ ?v0 ?v1) (less_eq$b ?v1 (collect$b (uub$ ?v2 ?v3)))) (?v3 ?v0))) :named a30))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$) (?v3 (-> Msg$ Bool))) (=> (and (member$a ?v0 ?v1) (less_eq$ ?v1 (collect$ (uuc$ ?v2 ?v3)))) (?v3 ?v0))) :named a31))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$) (?v3 (-> Event$ Bool))) (=> (and (set.member$b ?v0 ?v1) (less_eq$a ?v1 (collect$a (uua$ ?v2 ?v3)))) (?v3 ?v0))) :named a29))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$) (?v3 (-> Agent$ Bool))) (=> (and (set.member$ ?v0 ?v1) (less_eq$b ?v1 (collect$b (uub$ ?v2 ?v3)))) (?v3 ?v0))) :named a30))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$) (?v3 (-> Msg$ Bool))) (=> (and (set.member$a ?v0 ?v1) (less_eq$ ?v1 (collect$ (uuc$ ?v2 ?v3)))) (?v3 ?v0))) :named a31))
 (assert (! (forall ((?v0 Event_set$) (?v1 (-> Event$ Bool))) (less_eq$a (collect$a (uua$ ?v0 ?v1)) ?v0)) :named a32))
 (assert (! (forall ((?v0 Agent_set$) (?v1 (-> Agent$ Bool))) (less_eq$b (collect$b (uub$ ?v0 ?v1)) ?v0)) :named a33))
 (assert (! (forall ((?v0 Msg_set$) (?v1 (-> Msg$ Bool))) (less_eq$ (collect$ (uuc$ ?v0 ?v1)) ?v0)) :named a34))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 (-> Event$ Bool)) (?v3 (-> Event$ Bool))) (=> (and (less_eq$a ?v0 ?v1) (forall ((?v4 Event$)) (=> (and (member$b ?v4 ?v0) (?v2 ?v4)) (?v3 ?v4)))) (less_eq$a (collect$a (uua$ ?v0 ?v2)) (collect$a (uua$ ?v1 ?v3))))) :named a35))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 (-> Agent$ Bool)) (?v3 (-> Agent$ Bool))) (=> (and (less_eq$b ?v0 ?v1) (forall ((?v4 Agent$)) (=> (and (member$ ?v4 ?v0) (?v2 ?v4)) (?v3 ?v4)))) (less_eq$b (collect$b (uub$ ?v0 ?v2)) (collect$b (uub$ ?v1 ?v3))))) :named a36))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 (-> Msg$ Bool)) (?v3 (-> Msg$ Bool))) (=> (and (less_eq$ ?v0 ?v1) (forall ((?v4 Msg$)) (=> (and (member$a ?v4 ?v0) (?v2 ?v4)) (?v3 ?v4)))) (less_eq$ (collect$ (uuc$ ?v0 ?v2)) (collect$ (uuc$ ?v1 ?v3))))) :named a37))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 (-> Event$ Bool))) (=> (less_eq$a ?v0 ?v1) (= (less_eq$a ?v0 (collect$a (uua$ ?v1 ?v2))) (forall ((?v3 Event$)) (=> (member$b ?v3 ?v0) (?v2 ?v3)))))) :named a38))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 (-> Agent$ Bool))) (=> (less_eq$b ?v0 ?v1) (= (less_eq$b ?v0 (collect$b (uub$ ?v1 ?v2))) (forall ((?v3 Agent$)) (=> (member$ ?v3 ?v0) (?v2 ?v3)))))) :named a39))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 (-> Msg$ Bool))) (=> (less_eq$ ?v0 ?v1) (= (less_eq$ ?v0 (collect$ (uuc$ ?v1 ?v2))) (forall ((?v3 Msg$)) (=> (member$a ?v3 ?v0) (?v2 ?v3)))))) :named a40))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 (-> Event$ Bool)) (?v3 (-> Event$ Bool))) (=> (and (less_eq$a ?v0 ?v1) (forall ((?v4 Event$)) (=> (and (set.member$b ?v4 ?v0) (?v2 ?v4)) (?v3 ?v4)))) (less_eq$a (collect$a (uua$ ?v0 ?v2)) (collect$a (uua$ ?v1 ?v3))))) :named a35))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 (-> Agent$ Bool)) (?v3 (-> Agent$ Bool))) (=> (and (less_eq$b ?v0 ?v1) (forall ((?v4 Agent$)) (=> (and (set.member$ ?v4 ?v0) (?v2 ?v4)) (?v3 ?v4)))) (less_eq$b (collect$b (uub$ ?v0 ?v2)) (collect$b (uub$ ?v1 ?v3))))) :named a36))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 (-> Msg$ Bool)) (?v3 (-> Msg$ Bool))) (=> (and (less_eq$ ?v0 ?v1) (forall ((?v4 Msg$)) (=> (and (set.member$a ?v4 ?v0) (?v2 ?v4)) (?v3 ?v4)))) (less_eq$ (collect$ (uuc$ ?v0 ?v2)) (collect$ (uuc$ ?v1 ?v3))))) :named a37))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 (-> Event$ Bool))) (=> (less_eq$a ?v0 ?v1) (= (less_eq$a ?v0 (collect$a (uua$ ?v1 ?v2))) (forall ((?v3 Event$)) (=> (set.member$b ?v3 ?v0) (?v2 ?v3)))))) :named a38))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 (-> Agent$ Bool))) (=> (less_eq$b ?v0 ?v1) (= (less_eq$b ?v0 (collect$b (uub$ ?v1 ?v2))) (forall ((?v3 Agent$)) (=> (set.member$ ?v3 ?v0) (?v2 ?v3)))))) :named a39))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 (-> Msg$ Bool))) (=> (less_eq$ ?v0 ?v1) (= (less_eq$ ?v0 (collect$ (uuc$ ?v1 ?v2))) (forall ((?v3 Msg$)) (=> (set.member$a ?v3 ?v0) (?v2 ?v3)))))) :named a40))
 (assert (! (forall ((?v0 Event_list$)) (=> (and (=> (= ?v0 nil$) false) (=> (not (= ?v0 nil$)) false)) false)) :named a41))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (member$b ?v2 ?v0)) (member$b ?v2 ?v1))) :named a42))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (member$ ?v2 ?v0)) (member$ ?v2 ?v1))) :named a43))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (member$a ?v2 ?v0)) (member$a ?v2 ?v1))) :named a44))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (set.member$b ?v2 ?v0)) (set.member$b ?v2 ?v1))) :named a42))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (set.member$ ?v2 ?v0)) (set.member$ ?v2 ?v1))) :named a43))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (set.member$a ?v2 ?v0)) (set.member$a ?v2 ?v1))) :named a44))
 (assert (! (forall ((?v0 Event_set$) (?v1 Event_set$)) (= (less_eq$a ?v0 ?v1) (less_eq$c (uud$ ?v0) (uud$ ?v1)))) :named a45))
 (assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$)) (= (less_eq$b ?v0 ?v1) (less_eq$d (uue$ ?v0) (uue$ ?v1)))) :named a46))
 (assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (= (less_eq$ ?v0 ?v1) (less_eq$e (uuf$ ?v0) (uuf$ ?v1)))) :named a47))
 (assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 (-> Msg_set$ Msg_set$)) (?v3 Msg_set$)) (=> (and (less_eq$ ?v0 ?v1) (and (less_eq$ (?v2 ?v1) ?v3) (forall ((?v4 Msg_set$) (?v5 Msg_set$)) (=> (less_eq$ ?v4 ?v5) (less_eq$ (?v2 ?v4) (?v2 ?v5)))))) (less_eq$ (?v2 ?v0) ?v3))) :named a62))
 (assert (! (forall ((?v0 Msg_set$) (?v1 (-> Msg_set$ Msg_set$)) (?v2 Msg_set$) (?v3 Msg_set$)) (=> (and (less_eq$ ?v0 (?v1 ?v2)) (and (less_eq$ ?v2 ?v3) (forall ((?v4 Msg_set$) (?v5 Msg_set$)) (=> (less_eq$ ?v4 ?v5) (less_eq$ (?v1 ?v4) (?v1 ?v5)))))) (less_eq$ ?v0 (?v1 ?v3)))) :named a63))
 (assert (! (forall ((?v0 (-> Msg$ Bool)) (?v1 (-> Msg$ Bool))) (= (less_eq$ (collect$ ?v0) (collect$ ?v1)) (forall ((?v2 Msg$)) (=> (?v0 ?v2) (?v1 ?v2))))) :named a64))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (not (member$b ?v2 ?v1))) (not (member$b ?v2 ?v0)))) :named a65))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (not (member$ ?v2 ?v1))) (not (member$ ?v2 ?v0)))) :named a66))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (not (member$a ?v2 ?v1))) (not (member$a ?v2 ?v0)))) :named a67))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (not (set.member$b ?v2 ?v1))) (not (set.member$b ?v2 ?v0)))) :named a65))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (not (set.member$ ?v2 ?v1))) (not (set.member$ ?v2 ?v0)))) :named a66))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (not (set.member$a ?v2 ?v1))) (not (set.member$a ?v2 ?v0)))) :named a67))
 (assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (= (= ?v0 ?v1) (and (less_eq$ ?v0 ?v1) (less_eq$ ?v1 ?v0)))) :named a68))
 (assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (and (less_eq$ ?v0 ?v1) (less_eq$ ?v1 ?v2)) (less_eq$ ?v0 ?v2))) :named a69))
 (assert (! (forall ((?v0 (-> Msg$ Bool)) (?v1 (-> Msg$ Bool))) (=> (forall ((?v2 Msg$)) (=> (?v0 ?v2) (?v1 ?v2))) (less_eq$ (collect$ ?v0) (collect$ ?v1)))) :named a70))
 (assert (! (forall ((?v0 Msg_set$)) (less_eq$ ?v0 ?v0)) :named a71))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (and (member$b ?v0 ?v1) (less_eq$a ?v1 ?v2)) (member$b ?v0 ?v2))) :named a72))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (and (member$ ?v0 ?v1) (less_eq$b ?v1 ?v2)) (member$ ?v0 ?v2))) :named a73))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (and (member$a ?v0 ?v1) (less_eq$ ?v1 ?v2)) (member$a ?v0 ?v2))) :named a74))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$)) (= (less_eq$a ?v0 ?v1) (forall ((?v2 Event$)) (=> (member$b ?v2 ?v0) (member$b ?v2 ?v1))))) :named a75))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$)) (= (less_eq$b ?v0 ?v1) (forall ((?v2 Agent$)) (=> (member$ ?v2 ?v0) (member$ ?v2 ?v1))))) :named a76))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (= (less_eq$ ?v0 ?v1) (forall ((?v2 Msg$)) (=> (member$a ?v2 ?v0) (member$a ?v2 ?v1))))) :named a77))
-(assert (! (forall ((?v0 Msg$) (?v1 (-> Msg$ Bool))) (= (member$a ?v0 (collect$ ?v1)) (?v1 ?v0))) :named a78))
-(assert (! (forall ((?v0 Event$) (?v1 (-> Event$ Bool))) (= (member$b ?v0 (collect$a ?v1)) (?v1 ?v0))) :named a79))
-(assert (! (forall ((?v0 Agent$) (?v1 (-> Agent$ Bool))) (= (member$ ?v0 (collect$b ?v1)) (?v1 ?v0))) :named a80))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (and (set.member$b ?v0 ?v1) (less_eq$a ?v1 ?v2)) (set.member$b ?v0 ?v2))) :named a72))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (and (set.member$ ?v0 ?v1) (less_eq$b ?v1 ?v2)) (set.member$ ?v0 ?v2))) :named a73))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (and (set.member$a ?v0 ?v1) (less_eq$ ?v1 ?v2)) (set.member$a ?v0 ?v2))) :named a74))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$)) (= (less_eq$a ?v0 ?v1) (forall ((?v2 Event$)) (=> (set.member$b ?v2 ?v0) (set.member$b ?v2 ?v1))))) :named a75))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$)) (= (less_eq$b ?v0 ?v1) (forall ((?v2 Agent$)) (=> (set.member$ ?v2 ?v0) (set.member$ ?v2 ?v1))))) :named a76))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (= (less_eq$ ?v0 ?v1) (forall ((?v2 Msg$)) (=> (set.member$a ?v2 ?v0) (set.member$a ?v2 ?v1))))) :named a77))
+(assert (! (forall ((?v0 Msg$) (?v1 (-> Msg$ Bool))) (= (set.member$a ?v0 (collect$ ?v1)) (?v1 ?v0))) :named a78))
+(assert (! (forall ((?v0 Event$) (?v1 (-> Event$ Bool))) (= (set.member$b ?v0 (collect$a ?v1)) (?v1 ?v0))) :named a79))
+(assert (! (forall ((?v0 Agent$) (?v1 (-> Agent$ Bool))) (= (set.member$ ?v0 (collect$b ?v1)) (?v1 ?v0))) :named a80))
 (assert (! (forall ((?v0 Msg_set$)) (= (collect$ (uuf$ ?v0)) ?v0)) :named a81))
 (assert (! (forall ((?v0 Event_set$)) (= (collect$a (uud$ ?v0)) ?v0)) :named a82))
 (assert (! (forall ((?v0 Agent_set$)) (= (collect$b (uue$ ?v0)) ?v0)) :named a83))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (and (member$b ?v0 ?v1) (less_eq$a ?v1 ?v2)) (member$b ?v0 ?v2))) :named a84))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (and (member$ ?v0 ?v1) (less_eq$b ?v1 ?v2)) (member$ ?v0 ?v2))) :named a85))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (and (member$a ?v0 ?v1) (less_eq$ ?v1 ?v2)) (member$a ?v0 ?v2))) :named a86))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (and (set.member$b ?v0 ?v1) (less_eq$a ?v1 ?v2)) (set.member$b ?v0 ?v2))) :named a84))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (and (set.member$ ?v0 ?v1) (less_eq$b ?v1 ?v2)) (set.member$ ?v0 ?v2))) :named a85))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (and (set.member$a ?v0 ?v1) (less_eq$ ?v1 ?v2)) (set.member$a ?v0 ?v2))) :named a86))
 (assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (=> (= ?v0 ?v1) (less_eq$ ?v1 ?v0))) :named a87))
 (assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (=> (= ?v0 ?v1) (less_eq$ ?v0 ?v1))) :named a88))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$)) (= (less_eq$a ?v0 ?v1) (forall ((?v2 Event$)) (=> (member$b ?v2 ?v0) (member$b ?v2 ?v1))))) :named a89))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$)) (= (less_eq$b ?v0 ?v1) (forall ((?v2 Agent$)) (=> (member$ ?v2 ?v0) (member$ ?v2 ?v1))))) :named a90))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (= (less_eq$ ?v0 ?v1) (forall ((?v2 Msg$)) (=> (member$a ?v2 ?v0) (member$a ?v2 ?v1))))) :named a91))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$)) (= (less_eq$a ?v0 ?v1) (forall ((?v2 Event$)) (=> (set.member$b ?v2 ?v0) (set.member$b ?v2 ?v1))))) :named a89))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$)) (= (less_eq$b ?v0 ?v1) (forall ((?v2 Agent$)) (=> (set.member$ ?v2 ?v0) (set.member$ ?v2 ?v1))))) :named a90))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (= (less_eq$ ?v0 ?v1) (forall ((?v2 Msg$)) (=> (set.member$a ?v2 ?v0) (set.member$a ?v2 ?v1))))) :named a91))
 (assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (=> (and (= ?v0 ?v1) (=> (and (less_eq$ ?v0 ?v1) (less_eq$ ?v1 ?v0)) false)) false)) :named a92))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (and (=> (not (member$b ?v2 ?v0)) false) (=> (member$b ?v2 ?v1) false))) false)) :named a93))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (and (=> (not (member$ ?v2 ?v0)) false) (=> (member$ ?v2 ?v1) false))) false)) :named a94))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (and (=> (not (member$a ?v2 ?v0)) false) (=> (member$a ?v2 ?v1) false))) false)) :named a95))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (member$b ?v2 ?v0)) (member$b ?v2 ?v1))) :named a96))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (member$ ?v2 ?v0)) (member$ ?v2 ?v1))) :named a97))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (member$a ?v2 ?v0)) (member$a ?v2 ?v1))) :named a98))
-(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (member$b ?v2 ?v0)) (member$b ?v2 ?v1))) :named a99))
-(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (member$ ?v2 ?v0)) (member$ ?v2 ?v1))) :named a100))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (member$a ?v2 ?v0)) (member$a ?v2 ?v1))) :named a101))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (and (=> (not (set.member$b ?v2 ?v0)) false) (=> (set.member$b ?v2 ?v1) false))) false)) :named a93))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (and (=> (not (set.member$ ?v2 ?v0)) false) (=> (set.member$ ?v2 ?v1) false))) false)) :named a94))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (and (=> (not (set.member$a ?v2 ?v0)) false) (=> (set.member$a ?v2 ?v1) false))) false)) :named a95))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (set.member$b ?v2 ?v0)) (set.member$b ?v2 ?v1))) :named a96))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (set.member$ ?v2 ?v0)) (set.member$ ?v2 ?v1))) :named a97))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (set.member$a ?v2 ?v0)) (set.member$a ?v2 ?v1))) :named a98))
+(assert (! (forall ((?v0 Event_set$) (?v1 Event_set$) (?v2 Event$)) (=> (and (less_eq$a ?v0 ?v1) (set.member$b ?v2 ?v0)) (set.member$b ?v2 ?v1))) :named a99))
+(assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$) (?v2 Agent$)) (=> (and (less_eq$b ?v0 ?v1) (set.member$ ?v2 ?v0)) (set.member$ ?v2 ?v1))) :named a100))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (and (less_eq$ ?v0 ?v1) (set.member$a ?v2 ?v0)) (set.member$a ?v2 ?v1))) :named a101))
 (assert (! (forall ((?v0 Event_set$) (?v1 Event_set$)) (= (less_eq$c (uud$ ?v0) (uud$ ?v1)) (less_eq$a ?v0 ?v1))) :named a102))
 (assert (! (forall ((?v0 Agent_set$) (?v1 Agent_set$)) (= (less_eq$d (uue$ ?v0) (uue$ ?v1)) (less_eq$b ?v0 ?v1))) :named a103))
 (assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$)) (= (less_eq$e (uuf$ ?v0) (uuf$ ?v1)) (less_eq$ ?v0 ?v1))) :named a104))
 (assert (! (forall ((?v0 (-> Event$ Event_list$))) (! (= (bind$ nil$ ?v0) nil$) :pattern ((bind$ nil$ ?v0)))) :named a106))
 (assert (! (forall ((?v0 (-> Msg_set$ Bool)) (?v1 Msg_set$)) (=> (and (?v0 ?v1) (forall ((?v2 Msg_set$)) (=> (?v0 ?v2) (less_eq$ ?v2 ?v1)))) (= (greatest$ ?v0) ?v1))) :named a107))
 (assert (! (forall ((?v0 (-> Msg_set$ Bool)) (?v1 Msg_set$) (?v2 (-> Msg_set$ Bool))) (=> (and (?v0 ?v1) (and (forall ((?v3 Msg_set$)) (=> (?v0 ?v3) (less_eq$ ?v3 ?v1))) (forall ((?v3 Msg_set$)) (=> (and (?v0 ?v3) (forall ((?v4 Msg_set$)) (=> (?v0 ?v4) (less_eq$ ?v4 ?v3)))) (?v2 ?v3))))) (?v2 (greatest$ ?v0)))) :named a108))
-(assert (! (forall ((?v0 Event$)) (! (= (member$d nil$ ?v0) false) :pattern ((member$d nil$ ?v0)))) :named a109))
+(assert (! (forall ((?v0 Event$)) (! (= (set.member$d nil$ ?v0) false) :pattern ((set.member$d nil$ ?v0)))) :named a109))
 (assert (! (forall ((?v0 (-> Bool Msg_set$)) (?v1 (-> Bool Msg_set$))) (! (= (less_eq$f ?v0 ?v1) (and (less_eq$ (?v0 false) (?v1 false)) (less_eq$ (?v0 true) (?v1 true)))) :pattern ((less_eq$f ?v0 ?v1)))) :named a110))
 (assert (! (forall ((?v0 Nat$)) (! (= (gen_length$ ?v0 nil$) ?v0) :pattern ((gen_length$ ?v0)))) :named a111))
 (assert (! (forall ((?v0 (-> Event$ Event_list$))) (! (= (maps$ ?v0 nil$) nil$) :pattern ((maps$ ?v0)))) :named a112))
 (assert (! (forall ((?v0 Event$) (?v1 Event_list$) (?v2 Event$) (?v3 Event_list$)) (! (= (splice$ (cons$ ?v0 ?v1) (cons$ ?v2 ?v3)) (cons$ ?v0 (cons$ ?v2 (splice$ ?v1 ?v3)))) :pattern ((splice$ (cons$ ?v0 ?v1) (cons$ ?v2 ?v3))))) :named a142))
 (assert (! (forall ((?v0 Agent$) (?v1 Event_list$) (?v2 Event$)) (less_eq$ (knows$ ?v0 ?v1) (knows$ ?v0 (cons$ ?v2 ?v1)))) :named a143))
 (assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (= (null$ (cons$ ?v0 ?v1)) false) :pattern ((cons$ ?v0 ?v1)))) :named a144))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$) (?v2 Event$)) (! (= (member$d (cons$ ?v0 ?v1) ?v2) (or (= ?v0 ?v2) (member$d ?v1 ?v2))) :pattern ((member$d (cons$ ?v0 ?v1) ?v2)))) :named a145))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$) (?v2 Event$)) (! (= (set.member$d (cons$ ?v0 ?v1) ?v2) (or (= ?v0 ?v2) (set.member$d ?v1 ?v2))) :pattern ((set.member$d (cons$ ?v0 ?v1) ?v2)))) :named a145))
 (assert (! (forall ((?v0 Agent$) (?v1 Event_list$)) (less_eq$ (initState$ ?v0) (knows$ ?v0 ?v1))) :named a146))
 (assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event$) (?v2 Event_list$)) (! (= (takeWhile$ ?v0 (cons$ ?v1 ?v2)) (ite (?v0 ?v1) (cons$ ?v1 (takeWhile$ ?v0 ?v2)) nil$)) :pattern ((takeWhile$ ?v0 (cons$ ?v1 ?v2))))) :named a147))
 (assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Msg$)) (less_eq$ (knows$ spy$ ?v0) (knows$ spy$ (cons$ (gets$ ?v1 ?v2) ?v0)))) :named a148))
-(assert (! (forall ((?v0 Event$)) (! (= (insert$a ?v0 nil$) (cons$ ?v0 nil$)) :pattern ((insert$a ?v0)))) :named a149))
+(assert (! (forall ((?v0 Event$)) (! (= (set.insert$a ?v0 nil$) (cons$ ?v0 nil$)) :pattern ((set.insert$a ?v0)))) :named a149))
 (assert (! (forall ((?v0 Agent$) (?v1 Msg$) (?v2 Event_list$)) (! (= (knows$ spy$ (cons$ (gets$ ?v0 ?v1) ?v2)) (knows$ spy$ ?v2)) :pattern ((cons$ (gets$ ?v0 ?v1) ?v2)))) :named a150))
 (assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Msg$)) (less_eq$ (knows$ spy$ ?v0) (knows$ spy$ (cons$ (notes$ ?v1 ?v2) ?v0)))) :named a151))
 (assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event$) (?v2 Event_list$)) (= (list_ex1$ ?v0 (cons$ ?v1 ?v2)) (ite (?v0 ?v1) (list_all$ (uui$ ?v0 ?v1) ?v2) (list_ex1$ ?v0 ?v2)))) :named a152))
 (assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (rotate1$ (cons$ ?v0 ?v1)) (append$ ?v1 (cons$ ?v0 nil$)))) :named a200))
 (assert (! (forall ((?v0 Agent$) (?v1 Event_list$) (?v2 Agent$) (?v3 Agent$) (?v4 Msg$)) (less_eq$ (knows$ ?v0 ?v1) (knows$ ?v0 (cons$ (says$ ?v2 ?v3 ?v4) ?v1)))) :named a201))
 (assert (! (forall ((?v0 Event_list_set$) (?v1 Event_list$)) (= (succ$ ?v0 ?v1) (collect$a (uuj$ ?v0 ?v1)))) :named a202))
-(assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Agent$) (?v3 Msg$)) (= (knows$ spy$ (append$ ?v0 (cons$ (says$ ?v1 ?v2 ?v3) nil$))) (insert$ ?v3 (knows$ spy$ ?v0)))) :named a203))
-(assert (! (forall ((?v0 Msg$) (?v1 Agent$) (?v2 Event_list$)) (=> (and (member$a ?v0 (knows$ ?v1 ?v2)) (not (= ?v1 spy$))) (exists ((?v3 Agent$)) (or (member$b (says$ ?v1 ?v3 ?v0) (set$ ?v2)) (or (member$b (gets$ ?v1 ?v0) (set$ ?v2)) (or (member$b (notes$ ?v1 ?v0) (set$ ?v2)) (member$a ?v0 (initState$ ?v1)))))))) :named a204))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list_set$) (?v2 Msg_list$)) (=> (member$a ?v0 (succ$a ?v1 ?v2)) (member$e (append$a ?v2 (cons$b ?v0 nil$b)) ?v1))) :named a205))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list_set$) (?v2 Agent_list$)) (=> (member$ ?v0 (succ$b ?v1 ?v2)) (member$f (append$b ?v2 (cons$c ?v0 nil$c)) ?v1))) :named a206))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list_set$) (?v2 Event_list$)) (=> (member$b ?v0 (succ$ ?v1 ?v2)) (member$c (append$ ?v2 (cons$ ?v0 nil$)) ?v1))) :named a207))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (= (insert$ ?v0 (insert$ ?v0 ?v1)) (insert$ ?v0 ?v1))) :named a208))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg$) (?v2 Msg_set$)) (= (member$a ?v0 (insert$ ?v1 ?v2)) (or (= ?v0 ?v1) (member$a ?v0 ?v2)))) :named a209))
-(assert (! (forall ((?v0 Event$) (?v1 Event$) (?v2 Event_set$)) (= (member$b ?v0 (insert$b ?v1 ?v2)) (or (= ?v0 ?v1) (member$b ?v0 ?v2)))) :named a210))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Agent_set$)) (= (member$ ?v0 (insert$c ?v1 ?v2)) (or (= ?v0 ?v1) (member$ ?v0 ?v2)))) :named a211))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg$)) (=> (=> (not (member$a ?v0 ?v1)) (= ?v0 ?v2)) (member$a ?v0 (insert$ ?v2 ?v1)))) :named a212))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event$)) (=> (=> (not (member$b ?v0 ?v1)) (= ?v0 ?v2)) (member$b ?v0 (insert$b ?v2 ?v1)))) :named a213))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent$)) (=> (=> (not (member$ ?v0 ?v1)) (= ?v0 ?v2)) (member$ ?v0 (insert$c ?v2 ?v1)))) :named a214))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (= (less_eq$a (insert$b ?v0 ?v1) ?v2) (and (member$b ?v0 ?v2) (less_eq$a ?v1 ?v2)))) :named a215))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (= (less_eq$b (insert$c ?v0 ?v1) ?v2) (and (member$ ?v0 ?v2) (less_eq$b ?v1 ?v2)))) :named a216))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (= (less_eq$ (insert$ ?v0 ?v1) ?v2) (and (member$a ?v0 ?v2) (less_eq$ ?v1 ?v2)))) :named a217))
-(assert (! (forall ((?v0 (-> Msg$ Bool)) (?v1 Msg_list$)) (= (= (takeWhile$a ?v0 ?v1) ?v1) (forall ((?v2 Msg$)) (=> (member$a ?v2 (set$a ?v1)) (?v0 ?v2))))) :named a218))
-(assert (! (forall ((?v0 (-> Agent$ Bool)) (?v1 Agent_list$)) (= (= (takeWhile$b ?v0 ?v1) ?v1) (forall ((?v2 Agent$)) (=> (member$ ?v2 (set$b ?v1)) (?v0 ?v2))))) :named a219))
-(assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event_list$)) (= (= (takeWhile$ ?v0 ?v1) ?v1) (forall ((?v2 Event$)) (=> (member$b ?v2 (set$ ?v1)) (?v0 ?v2))))) :named a220))
+(assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Agent$) (?v3 Msg$)) (= (knows$ spy$ (append$ ?v0 (cons$ (says$ ?v1 ?v2 ?v3) nil$))) (set.insert$ ?v3 (knows$ spy$ ?v0)))) :named a203))
+(assert (! (forall ((?v0 Msg$) (?v1 Agent$) (?v2 Event_list$)) (=> (and (set.member$a ?v0 (knows$ ?v1 ?v2)) (not (= ?v1 spy$))) (exists ((?v3 Agent$)) (or (set.member$b (says$ ?v1 ?v3 ?v0) (set$ ?v2)) (or (set.member$b (gets$ ?v1 ?v0) (set$ ?v2)) (or (set.member$b (notes$ ?v1 ?v0) (set$ ?v2)) (set.member$a ?v0 (initState$ ?v1)))))))) :named a204))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list_set$) (?v2 Msg_list$)) (=> (set.member$a ?v0 (succ$a ?v1 ?v2)) (set.member$e (append$a ?v2 (cons$b ?v0 nil$b)) ?v1))) :named a205))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list_set$) (?v2 Agent_list$)) (=> (set.member$ ?v0 (succ$b ?v1 ?v2)) (set.member$f (append$b ?v2 (cons$c ?v0 nil$c)) ?v1))) :named a206))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list_set$) (?v2 Event_list$)) (=> (set.member$b ?v0 (succ$ ?v1 ?v2)) (set.member$c (append$ ?v2 (cons$ ?v0 nil$)) ?v1))) :named a207))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (= (set.insert$ ?v0 (set.insert$ ?v0 ?v1)) (set.insert$ ?v0 ?v1))) :named a208))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg$) (?v2 Msg_set$)) (= (set.member$a ?v0 (set.insert$ ?v1 ?v2)) (or (= ?v0 ?v1) (set.member$a ?v0 ?v2)))) :named a209))
+(assert (! (forall ((?v0 Event$) (?v1 Event$) (?v2 Event_set$)) (= (set.member$b ?v0 (set.insert$b ?v1 ?v2)) (or (= ?v0 ?v1) (set.member$b ?v0 ?v2)))) :named a210))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Agent_set$)) (= (set.member$ ?v0 (set.insert$c ?v1 ?v2)) (or (= ?v0 ?v1) (set.member$ ?v0 ?v2)))) :named a211))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg$)) (=> (=> (not (set.member$a ?v0 ?v1)) (= ?v0 ?v2)) (set.member$a ?v0 (set.insert$ ?v2 ?v1)))) :named a212))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event$)) (=> (=> (not (set.member$b ?v0 ?v1)) (= ?v0 ?v2)) (set.member$b ?v0 (set.insert$b ?v2 ?v1)))) :named a213))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent$)) (=> (=> (not (set.member$ ?v0 ?v1)) (= ?v0 ?v2)) (set.member$ ?v0 (set.insert$c ?v2 ?v1)))) :named a214))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (= (less_eq$a (set.insert$b ?v0 ?v1) ?v2) (and (set.member$b ?v0 ?v2) (less_eq$a ?v1 ?v2)))) :named a215))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (= (less_eq$b (set.insert$c ?v0 ?v1) ?v2) (and (set.member$ ?v0 ?v2) (less_eq$b ?v1 ?v2)))) :named a216))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (= (less_eq$ (set.insert$ ?v0 ?v1) ?v2) (and (set.member$a ?v0 ?v2) (less_eq$ ?v1 ?v2)))) :named a217))
+(assert (! (forall ((?v0 (-> Msg$ Bool)) (?v1 Msg_list$)) (= (= (takeWhile$a ?v0 ?v1) ?v1) (forall ((?v2 Msg$)) (=> (set.member$a ?v2 (set$a ?v1)) (?v0 ?v2))))) :named a218))
+(assert (! (forall ((?v0 (-> Agent$ Bool)) (?v1 Agent_list$)) (= (= (takeWhile$b ?v0 ?v1) ?v1) (forall ((?v2 Agent$)) (=> (set.member$ ?v2 (set$b ?v1)) (?v0 ?v2))))) :named a219))
+(assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event_list$)) (= (= (takeWhile$ ?v0 ?v1) ?v1) (forall ((?v2 Event$)) (=> (set.member$b ?v2 (set$ ?v1)) (?v0 ?v2))))) :named a220))
 (assert (! (forall ((?v0 Event_list$)) (= (set$ (rotate1$ ?v0)) (set$ ?v0))) :named a221))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (! (=> (member$a ?v0 (set$a ?v1)) (= (insert$d ?v0 ?v1) ?v1)) :pattern ((insert$d ?v0 ?v1)))) :named a222))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (! (=> (member$ ?v0 (set$b ?v1)) (= (insert$e ?v0 ?v1) ?v1)) :pattern ((insert$e ?v0 ?v1)))) :named a223))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (=> (member$b ?v0 (set$ ?v1)) (= (insert$a ?v0 ?v1) ?v1)) :pattern ((insert$a ?v0 ?v1)))) :named a224))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (! (= (set$a (cons$b ?v0 ?v1)) (insert$ ?v0 (set$a ?v1))) :pattern ((cons$b ?v0 ?v1)))) :named a225))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (= (set$ (cons$ ?v0 ?v1)) (insert$b ?v0 (set$ ?v1))) :pattern ((cons$ ?v0 ?v1)))) :named a226))
-(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool)) (?v2 Msg_list$)) (=> (forall ((?v3 Msg$)) (=> (member$a ?v3 (set$a ?v0)) (?v1 ?v3))) (= (takeWhile$a ?v1 (append$a ?v0 ?v2)) (append$a ?v0 (takeWhile$a ?v1 ?v2))))) :named a227))
-(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool)) (?v2 Agent_list$)) (=> (forall ((?v3 Agent$)) (=> (member$ ?v3 (set$b ?v0)) (?v1 ?v3))) (= (takeWhile$b ?v1 (append$b ?v0 ?v2)) (append$b ?v0 (takeWhile$b ?v1 ?v2))))) :named a228))
-(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool)) (?v2 Event_list$)) (=> (forall ((?v3 Event$)) (=> (member$b ?v3 (set$ ?v0)) (?v1 ?v3))) (= (takeWhile$ ?v1 (append$ ?v0 ?v2)) (append$ ?v0 (takeWhile$ ?v1 ?v2))))) :named a229))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$) (?v2 (-> Msg$ Bool)) (?v3 Msg_list$)) (=> (and (member$a ?v0 (set$a ?v1)) (not (?v2 ?v0))) (= (takeWhile$a ?v2 (append$a ?v1 ?v3)) (takeWhile$a ?v2 ?v1)))) :named a230))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$) (?v2 (-> Agent$ Bool)) (?v3 Agent_list$)) (=> (and (member$ ?v0 (set$b ?v1)) (not (?v2 ?v0))) (= (takeWhile$b ?v2 (append$b ?v1 ?v3)) (takeWhile$b ?v2 ?v1)))) :named a231))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$) (?v2 (-> Event$ Bool)) (?v3 Event_list$)) (=> (and (member$b ?v0 (set$ ?v1)) (not (?v2 ?v0))) (= (takeWhile$ ?v2 (append$ ?v1 ?v3)) (takeWhile$ ?v2 ?v1)))) :named a232))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (set$a (insert$d ?v0 ?v1)) (insert$ ?v0 (set$a ?v1)))) :named a233))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (set$ (insert$a ?v0 ?v1)) (insert$b ?v0 (set$ ?v1)))) :named a234))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (! (=> (not (member$a ?v0 (set$a ?v1))) (= (insert$d ?v0 ?v1) (cons$b ?v0 ?v1))) :pattern ((insert$d ?v0 ?v1)))) :named a235))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (! (=> (not (member$ ?v0 (set$b ?v1))) (= (insert$e ?v0 ?v1) (cons$c ?v0 ?v1))) :pattern ((insert$e ?v0 ?v1)))) :named a236))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (=> (not (member$b ?v0 (set$ ?v1))) (= (insert$a ?v0 ?v1) (cons$ ?v0 ?v1))) :pattern ((insert$a ?v0 ?v1)))) :named a237))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Msg$) (?v3 Event_list$)) (! (= (knows$ spy$ (cons$ (says$ ?v0 ?v1 ?v2) ?v3)) (insert$ ?v2 (knows$ spy$ ?v3))) :pattern ((cons$ (says$ ?v0 ?v1 ?v2) ?v3)))) :named a238))
-(assert (! (forall ((?v0 Agent_list$) (?v1 Agent_set$)) (= (less_eq$b (set$b ?v0) ?v1) (forall ((?v2 Agent$)) (=> (member$ ?v2 (set$b ?v0)) (member$ ?v2 ?v1))))) :named a239))
-(assert (! (forall ((?v0 Event_list$) (?v1 Event_set$)) (= (less_eq$a (set$ ?v0) ?v1) (forall ((?v2 Event$)) (=> (member$b ?v2 (set$ ?v0)) (member$b ?v2 ?v1))))) :named a240))
-(assert (! (forall ((?v0 Msg_list$) (?v1 Msg_set$)) (= (less_eq$ (set$a ?v0) ?v1) (forall ((?v2 Msg$)) (=> (member$a ?v2 (set$a ?v0)) (member$a ?v2 ?v1))))) :named a241))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (and (member$b ?v0 ?v1) (less_eq$a ?v2 ?v1)) (less_eq$a (insert$b ?v0 ?v2) ?v1))) :named a242))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (and (member$ ?v0 ?v1) (less_eq$b ?v2 ?v1)) (less_eq$b (insert$c ?v0 ?v2) ?v1))) :named a243))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (and (member$a ?v0 ?v1) (less_eq$ ?v2 ?v1)) (less_eq$ (insert$ ?v0 ?v2) ?v1))) :named a244))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (less_eq$ ?v0 ?v1) (less_eq$ ?v0 (insert$ ?v2 ?v1)))) :named a245))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg$)) (less_eq$ ?v0 (insert$ ?v1 ?v0))) :named a246))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (not (member$b ?v0 ?v1)) (= (less_eq$a ?v1 (insert$b ?v0 ?v2)) (less_eq$a ?v1 ?v2)))) :named a247))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (not (member$ ?v0 ?v1)) (= (less_eq$b ?v1 (insert$c ?v0 ?v2)) (less_eq$b ?v1 ?v2)))) :named a248))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (not (member$a ?v0 ?v1)) (= (less_eq$ ?v1 (insert$ ?v0 ?v2)) (less_eq$ ?v1 ?v2)))) :named a249))
-(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (less_eq$ ?v0 ?v1) (less_eq$ (insert$ ?v2 ?v0) (insert$ ?v2 ?v1)))) :named a250))
-(assert (! (forall ((?v0 Msg_list$) (?v1 Msg_list$) (?v2 (-> Msg$ Bool)) (?v3 (-> Msg$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Msg$)) (=> (member$a ?v4 (set$a ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_ex$a ?v2 ?v0) (list_ex$a ?v3 ?v1)))) :named a251))
-(assert (! (forall ((?v0 Agent_list$) (?v1 Agent_list$) (?v2 (-> Agent$ Bool)) (?v3 (-> Agent$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Agent$)) (=> (member$ ?v4 (set$b ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_ex$b ?v2 ?v0) (list_ex$b ?v3 ?v1)))) :named a252))
-(assert (! (forall ((?v0 Event_list$) (?v1 Event_list$) (?v2 (-> Event$ Bool)) (?v3 (-> Event$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Event$)) (=> (member$b ?v4 (set$ ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_ex$ ?v2 ?v0) (list_ex$ ?v3 ?v1)))) :named a253))
-(assert (! (forall ((?v0 Msg$) (?v1 (-> Msg$ Bool))) (= (insert$ ?v0 (collect$ ?v1)) (collect$ (uuk$ ?v0 ?v1)))) :named a254))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (= (insert$ ?v0 ?v1) (collect$ (uul$ ?v0 ?v1)))) :named a255))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (= (insert$b ?v0 ?v1) (collect$a (uum$ ?v0 ?v1)))) :named a256))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (= (insert$c ?v0 ?v1) (collect$b (uun$ ?v0 ?v1)))) :named a257))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (=> (member$a ?v0 ?v1) (exists ((?v2 Msg_set$)) (and (= ?v1 (insert$ ?v0 ?v2)) (not (member$a ?v0 ?v2)))))) :named a258))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (=> (member$b ?v0 ?v1) (exists ((?v2 Event_set$)) (and (= ?v1 (insert$b ?v0 ?v2)) (not (member$b ?v0 ?v2)))))) :named a259))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (=> (member$ ?v0 ?v1) (exists ((?v2 Agent_set$)) (and (= ?v1 (insert$c ?v0 ?v2)) (not (member$ ?v0 ?v2)))))) :named a260))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg$) (?v2 Msg_set$)) (= (insert$ ?v0 (insert$ ?v1 ?v2)) (insert$ ?v1 (insert$ ?v0 ?v2)))) :named a261))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg$) (?v3 Msg_set$)) (=> (and (not (member$a ?v0 ?v1)) (not (member$a ?v2 ?v3))) (= (= (insert$ ?v0 ?v1) (insert$ ?v2 ?v3)) (ite (= ?v0 ?v2) (= ?v1 ?v3) (exists ((?v4 Msg_set$)) (and (= ?v1 (insert$ ?v2 ?v4)) (and (not (member$a ?v2 ?v4)) (and (= ?v3 (insert$ ?v0 ?v4)) (not (member$a ?v0 ?v4)))))))))) :named a262))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event$) (?v3 Event_set$)) (=> (and (not (member$b ?v0 ?v1)) (not (member$b ?v2 ?v3))) (= (= (insert$b ?v0 ?v1) (insert$b ?v2 ?v3)) (ite (= ?v0 ?v2) (= ?v1 ?v3) (exists ((?v4 Event_set$)) (and (= ?v1 (insert$b ?v2 ?v4)) (and (not (member$b ?v2 ?v4)) (and (= ?v3 (insert$b ?v0 ?v4)) (not (member$b ?v0 ?v4)))))))))) :named a263))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent$) (?v3 Agent_set$)) (=> (and (not (member$ ?v0 ?v1)) (not (member$ ?v2 ?v3))) (= (= (insert$c ?v0 ?v1) (insert$c ?v2 ?v3)) (ite (= ?v0 ?v2) (= ?v1 ?v3) (exists ((?v4 Agent_set$)) (and (= ?v1 (insert$c ?v2 ?v4)) (and (not (member$ ?v2 ?v4)) (and (= ?v3 (insert$c ?v0 ?v4)) (not (member$ ?v0 ?v4)))))))))) :named a264))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (! (=> (member$a ?v0 ?v1) (= (insert$ ?v0 ?v1) ?v1)) :pattern ((insert$ ?v0 ?v1)))) :named a265))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (! (=> (member$b ?v0 ?v1) (= (insert$b ?v0 ?v1) ?v1)) :pattern ((insert$b ?v0 ?v1)))) :named a266))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (! (=> (member$ ?v0 ?v1) (= (insert$c ?v0 ?v1) ?v1)) :pattern ((insert$c ?v0 ?v1)))) :named a267))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (and (not (member$a ?v0 ?v1)) (not (member$a ?v0 ?v2))) (= (= (insert$ ?v0 ?v1) (insert$ ?v0 ?v2)) (= ?v1 ?v2)))) :named a268))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (and (not (member$b ?v0 ?v1)) (not (member$b ?v0 ?v2))) (= (= (insert$b ?v0 ?v1) (insert$b ?v0 ?v2)) (= ?v1 ?v2)))) :named a269))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (and (not (member$ ?v0 ?v1)) (not (member$ ?v0 ?v2))) (= (= (insert$c ?v0 ?v1) (insert$c ?v0 ?v2)) (= ?v1 ?v2)))) :named a270))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (=> (and (member$a ?v0 ?v1) (forall ((?v2 Msg_set$)) (=> (and (= ?v1 (insert$ ?v0 ?v2)) (not (member$a ?v0 ?v2))) false))) false)) :named a271))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (=> (and (member$b ?v0 ?v1) (forall ((?v2 Event_set$)) (=> (and (= ?v1 (insert$b ?v0 ?v2)) (not (member$b ?v0 ?v2))) false))) false)) :named a272))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (=> (and (member$ ?v0 ?v1) (forall ((?v2 Agent_set$)) (=> (and (= ?v1 (insert$c ?v0 ?v2)) (not (member$ ?v0 ?v2))) false))) false)) :named a273))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg$)) (=> (member$a ?v0 ?v1) (member$a ?v0 (insert$ ?v2 ?v1)))) :named a274))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event$)) (=> (member$b ?v0 ?v1) (member$b ?v0 (insert$b ?v2 ?v1)))) :named a275))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent$)) (=> (member$ ?v0 ?v1) (member$ ?v0 (insert$c ?v2 ?v1)))) :named a276))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (member$a ?v0 (insert$ ?v0 ?v1))) :named a277))
-(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (member$b ?v0 (insert$b ?v0 ?v1))) :named a278))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (member$ ?v0 (insert$c ?v0 ?v1))) :named a279))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg$) (?v2 Msg_set$)) (=> (and (member$a ?v0 (insert$ ?v1 ?v2)) (and (=> (= ?v0 ?v1) false) (=> (member$a ?v0 ?v2) false))) false)) :named a280))
-(assert (! (forall ((?v0 Event$) (?v1 Event$) (?v2 Event_set$)) (=> (and (member$b ?v0 (insert$b ?v1 ?v2)) (and (=> (= ?v0 ?v1) false) (=> (member$b ?v0 ?v2) false))) false)) :named a281))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Agent_set$)) (=> (and (member$ ?v0 (insert$c ?v1 ?v2)) (and (=> (= ?v0 ?v1) false) (=> (member$ ?v0 ?v2) false))) false)) :named a282))
-(assert (! (forall ((?v0 Msg$) (?v1 (-> Msg$ Bool)) (?v2 Msg_list$)) (=> (member$a ?v0 (set$a (takeWhile$a ?v1 ?v2))) (and (member$a ?v0 (set$a ?v2)) (?v1 ?v0)))) :named a283))
-(assert (! (forall ((?v0 Agent$) (?v1 (-> Agent$ Bool)) (?v2 Agent_list$)) (=> (member$ ?v0 (set$b (takeWhile$b ?v1 ?v2))) (and (member$ ?v0 (set$b ?v2)) (?v1 ?v0)))) :named a284))
-(assert (! (forall ((?v0 Event$) (?v1 (-> Event$ Bool)) (?v2 Event_list$)) (=> (member$b ?v0 (set$ (takeWhile$ ?v1 ?v2))) (and (member$b ?v0 (set$ ?v2)) (?v1 ?v0)))) :named a285))
-(assert (! (forall ((?v0 Msg_list$) (?v1 Msg_list$) (?v2 (-> Msg$ Bool)) (?v3 (-> Msg$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Msg$)) (=> (member$a ?v4 (set$a ?v0)) (= (?v2 ?v4) (?v3 ?v4))))) (= (takeWhile$a ?v2 ?v0) (takeWhile$a ?v3 ?v1)))) :named a286))
-(assert (! (forall ((?v0 Agent_list$) (?v1 Agent_list$) (?v2 (-> Agent$ Bool)) (?v3 (-> Agent$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Agent$)) (=> (member$ ?v4 (set$b ?v0)) (= (?v2 ?v4) (?v3 ?v4))))) (= (takeWhile$b ?v2 ?v0) (takeWhile$b ?v3 ?v1)))) :named a287))
-(assert (! (forall ((?v0 Event_list$) (?v1 Event_list$) (?v2 (-> Event$ Bool)) (?v3 (-> Event$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Event$)) (=> (member$b ?v4 (set$ ?v0)) (= (?v2 ?v4) (?v3 ?v4))))) (= (takeWhile$ ?v2 ?v0) (takeWhile$ ?v3 ?v1)))) :named a288))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$) (?v2 Msg$)) (=> (member$a ?v0 (set$a ?v1)) (member$a ?v0 (set$a (cons$b ?v2 ?v1))))) :named a289))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$) (?v2 Agent$)) (=> (member$ ?v0 (set$b ?v1)) (member$ ?v0 (set$b (cons$c ?v2 ?v1))))) :named a290))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$) (?v2 Event$)) (=> (member$b ?v0 (set$ ?v1)) (member$b ?v0 (set$ (cons$ ?v2 ?v1))))) :named a291))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (member$a ?v0 (set$a (cons$b ?v0 ?v1)))) :named a292))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (member$ ?v0 (set$b (cons$c ?v0 ?v1)))) :named a293))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (member$b ?v0 (set$ (cons$ ?v0 ?v1)))) :named a294))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg$) (?v2 Msg_list$)) (=> (member$a ?v0 (set$a (cons$b ?v1 ?v2))) (or (= ?v0 ?v1) (member$a ?v0 (set$a ?v2))))) :named a295))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Agent_list$)) (=> (member$ ?v0 (set$b (cons$c ?v1 ?v2))) (or (= ?v0 ?v1) (member$ ?v0 (set$b ?v2))))) :named a296))
-(assert (! (forall ((?v0 Event$) (?v1 Event$) (?v2 Event_list$)) (=> (member$b ?v0 (set$ (cons$ ?v1 ?v2))) (or (= ?v0 ?v1) (member$b ?v0 (set$ ?v2))))) :named a297))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (=> (and (member$a ?v0 (set$a ?v1)) (and (forall ((?v2 Msg_list$)) (=> (= ?v1 (cons$b ?v0 ?v2)) false)) (forall ((?v2 Msg$) (?v3 Msg_list$)) (=> (and (= ?v1 (cons$b ?v2 ?v3)) (member$a ?v0 (set$a ?v3))) false)))) false)) :named a298))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (=> (and (member$ ?v0 (set$b ?v1)) (and (forall ((?v2 Agent_list$)) (=> (= ?v1 (cons$c ?v0 ?v2)) false)) (forall ((?v2 Agent$) (?v3 Agent_list$)) (=> (and (= ?v1 (cons$c ?v2 ?v3)) (member$ ?v0 (set$b ?v3))) false)))) false)) :named a299))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (=> (and (member$b ?v0 (set$ ?v1)) (and (forall ((?v2 Event_list$)) (=> (= ?v1 (cons$ ?v0 ?v2)) false)) (forall ((?v2 Event$) (?v3 Event_list$)) (=> (and (= ?v1 (cons$ ?v2 ?v3)) (member$b ?v0 (set$ ?v3))) false)))) false)) :named a300))
-(assert (! (forall ((?v0 Msg_list$) (?v1 Msg_list$) (?v2 (-> Msg$ Bool)) (?v3 (-> Msg$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Msg$)) (=> (member$a ?v4 (set$a ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_all$a ?v2 ?v0) (list_all$a ?v3 ?v1)))) :named a301))
-(assert (! (forall ((?v0 Agent_list$) (?v1 Agent_list$) (?v2 (-> Agent$ Bool)) (?v3 (-> Agent$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Agent$)) (=> (member$ ?v4 (set$b ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_all$b ?v2 ?v0) (list_all$b ?v3 ?v1)))) :named a302))
-(assert (! (forall ((?v0 Event_list$) (?v1 Event_list$) (?v2 (-> Event$ Bool)) (?v3 (-> Event$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Event$)) (=> (member$b ?v4 (set$ ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_all$ ?v2 ?v0) (list_all$ ?v3 ?v1)))) :named a303))
-(assert (! (forall ((?v0 (-> Msg$ Bool)) (?v1 Msg_list$) (?v2 (-> Msg$ Bool))) (=> (and (list_all$a ?v0 ?v1) (forall ((?v3 Msg$)) (=> (and (member$a ?v3 (set$a ?v1)) (?v0 ?v3)) (?v2 ?v3)))) (list_all$a ?v2 ?v1))) :named a304))
-(assert (! (forall ((?v0 (-> Agent$ Bool)) (?v1 Agent_list$) (?v2 (-> Agent$ Bool))) (=> (and (list_all$b ?v0 ?v1) (forall ((?v3 Agent$)) (=> (and (member$ ?v3 (set$b ?v1)) (?v0 ?v3)) (?v2 ?v3)))) (list_all$b ?v2 ?v1))) :named a305))
-(assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event_list$) (?v2 (-> Event$ Bool))) (=> (and (list_all$ ?v0 ?v1) (forall ((?v3 Event$)) (=> (and (member$b ?v3 (set$ ?v1)) (?v0 ?v3)) (?v2 ?v3)))) (list_all$ ?v2 ?v1))) :named a306))
-(assert (! (forall ((?v0 (-> Msg$ Bool)) (?v1 Msg_list$)) (= (list_ex1$a ?v0 ?v1) (exists ((?v2 Msg$)) (and (and (member$a ?v2 (set$a ?v1)) (?v0 ?v2)) (forall ((?v3 Msg$)) (=> (and (member$a ?v3 (set$a ?v1)) (?v0 ?v3)) (= ?v3 ?v2))))))) :named a307))
-(assert (! (forall ((?v0 (-> Agent$ Bool)) (?v1 Agent_list$)) (= (list_ex1$b ?v0 ?v1) (exists ((?v2 Agent$)) (and (and (member$ ?v2 (set$b ?v1)) (?v0 ?v2)) (forall ((?v3 Agent$)) (=> (and (member$ ?v3 (set$b ?v1)) (?v0 ?v3)) (= ?v3 ?v2))))))) :named a308))
-(assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event_list$)) (= (list_ex1$ ?v0 ?v1) (exists ((?v2 Event$)) (and (and (member$b ?v2 (set$ ?v1)) (?v0 ?v2)) (forall ((?v3 Event$)) (=> (and (member$b ?v3 (set$ ?v1)) (?v0 ?v3)) (= ?v3 ?v2))))))) :named a309))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (member$a ?v0 (set$a ?v1)) (member$g ?v1 ?v0))) :named a310))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (= (member$ ?v0 (set$b ?v1)) (member$h ?v1 ?v0))) :named a311))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (member$b ?v0 (set$ ?v1)) (member$d ?v1 ?v0))) :named a312))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (! (=> (set.member$a ?v0 (set$a ?v1)) (= (set.insert$d ?v0 ?v1) ?v1)) :pattern ((set.insert$d ?v0 ?v1)))) :named a222))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (! (=> (set.member$ ?v0 (set$b ?v1)) (= (set.insert$e ?v0 ?v1) ?v1)) :pattern ((set.insert$e ?v0 ?v1)))) :named a223))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (=> (set.member$b ?v0 (set$ ?v1)) (= (set.insert$a ?v0 ?v1) ?v1)) :pattern ((set.insert$a ?v0 ?v1)))) :named a224))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (! (= (set$a (cons$b ?v0 ?v1)) (set.insert$ ?v0 (set$a ?v1))) :pattern ((cons$b ?v0 ?v1)))) :named a225))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (= (set$ (cons$ ?v0 ?v1)) (set.insert$b ?v0 (set$ ?v1))) :pattern ((cons$ ?v0 ?v1)))) :named a226))
+(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool)) (?v2 Msg_list$)) (=> (forall ((?v3 Msg$)) (=> (set.member$a ?v3 (set$a ?v0)) (?v1 ?v3))) (= (takeWhile$a ?v1 (append$a ?v0 ?v2)) (append$a ?v0 (takeWhile$a ?v1 ?v2))))) :named a227))
+(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool)) (?v2 Agent_list$)) (=> (forall ((?v3 Agent$)) (=> (set.member$ ?v3 (set$b ?v0)) (?v1 ?v3))) (= (takeWhile$b ?v1 (append$b ?v0 ?v2)) (append$b ?v0 (takeWhile$b ?v1 ?v2))))) :named a228))
+(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool)) (?v2 Event_list$)) (=> (forall ((?v3 Event$)) (=> (set.member$b ?v3 (set$ ?v0)) (?v1 ?v3))) (= (takeWhile$ ?v1 (append$ ?v0 ?v2)) (append$ ?v0 (takeWhile$ ?v1 ?v2))))) :named a229))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$) (?v2 (-> Msg$ Bool)) (?v3 Msg_list$)) (=> (and (set.member$a ?v0 (set$a ?v1)) (not (?v2 ?v0))) (= (takeWhile$a ?v2 (append$a ?v1 ?v3)) (takeWhile$a ?v2 ?v1)))) :named a230))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$) (?v2 (-> Agent$ Bool)) (?v3 Agent_list$)) (=> (and (set.member$ ?v0 (set$b ?v1)) (not (?v2 ?v0))) (= (takeWhile$b ?v2 (append$b ?v1 ?v3)) (takeWhile$b ?v2 ?v1)))) :named a231))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$) (?v2 (-> Event$ Bool)) (?v3 Event_list$)) (=> (and (set.member$b ?v0 (set$ ?v1)) (not (?v2 ?v0))) (= (takeWhile$ ?v2 (append$ ?v1 ?v3)) (takeWhile$ ?v2 ?v1)))) :named a232))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (set$a (set.insert$d ?v0 ?v1)) (set.insert$ ?v0 (set$a ?v1)))) :named a233))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (set$ (set.insert$a ?v0 ?v1)) (set.insert$b ?v0 (set$ ?v1)))) :named a234))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (! (=> (not (set.member$a ?v0 (set$a ?v1))) (= (set.insert$d ?v0 ?v1) (cons$b ?v0 ?v1))) :pattern ((set.insert$d ?v0 ?v1)))) :named a235))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (! (=> (not (set.member$ ?v0 (set$b ?v1))) (= (set.insert$e ?v0 ?v1) (cons$c ?v0 ?v1))) :pattern ((set.insert$e ?v0 ?v1)))) :named a236))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (=> (not (set.member$b ?v0 (set$ ?v1))) (= (set.insert$a ?v0 ?v1) (cons$ ?v0 ?v1))) :pattern ((set.insert$a ?v0 ?v1)))) :named a237))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Msg$) (?v3 Event_list$)) (! (= (knows$ spy$ (cons$ (says$ ?v0 ?v1 ?v2) ?v3)) (set.insert$ ?v2 (knows$ spy$ ?v3))) :pattern ((cons$ (says$ ?v0 ?v1 ?v2) ?v3)))) :named a238))
+(assert (! (forall ((?v0 Agent_list$) (?v1 Agent_set$)) (= (less_eq$b (set$b ?v0) ?v1) (forall ((?v2 Agent$)) (=> (set.member$ ?v2 (set$b ?v0)) (set.member$ ?v2 ?v1))))) :named a239))
+(assert (! (forall ((?v0 Event_list$) (?v1 Event_set$)) (= (less_eq$a (set$ ?v0) ?v1) (forall ((?v2 Event$)) (=> (set.member$b ?v2 (set$ ?v0)) (set.member$b ?v2 ?v1))))) :named a240))
+(assert (! (forall ((?v0 Msg_list$) (?v1 Msg_set$)) (= (less_eq$ (set$a ?v0) ?v1) (forall ((?v2 Msg$)) (=> (set.member$a ?v2 (set$a ?v0)) (set.member$a ?v2 ?v1))))) :named a241))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (and (set.member$b ?v0 ?v1) (less_eq$a ?v2 ?v1)) (less_eq$a (set.insert$b ?v0 ?v2) ?v1))) :named a242))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (and (set.member$ ?v0 ?v1) (less_eq$b ?v2 ?v1)) (less_eq$b (set.insert$c ?v0 ?v2) ?v1))) :named a243))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (and (set.member$a ?v0 ?v1) (less_eq$ ?v2 ?v1)) (less_eq$ (set.insert$ ?v0 ?v2) ?v1))) :named a244))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (less_eq$ ?v0 ?v1) (less_eq$ ?v0 (set.insert$ ?v2 ?v1)))) :named a245))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg$)) (less_eq$ ?v0 (set.insert$ ?v1 ?v0))) :named a246))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (not (set.member$b ?v0 ?v1)) (= (less_eq$a ?v1 (set.insert$b ?v0 ?v2)) (less_eq$a ?v1 ?v2)))) :named a247))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (not (set.member$ ?v0 ?v1)) (= (less_eq$b ?v1 (set.insert$c ?v0 ?v2)) (less_eq$b ?v1 ?v2)))) :named a248))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (not (set.member$a ?v0 ?v1)) (= (less_eq$ ?v1 (set.insert$ ?v0 ?v2)) (less_eq$ ?v1 ?v2)))) :named a249))
+(assert (! (forall ((?v0 Msg_set$) (?v1 Msg_set$) (?v2 Msg$)) (=> (less_eq$ ?v0 ?v1) (less_eq$ (set.insert$ ?v2 ?v0) (set.insert$ ?v2 ?v1)))) :named a250))
+(assert (! (forall ((?v0 Msg_list$) (?v1 Msg_list$) (?v2 (-> Msg$ Bool)) (?v3 (-> Msg$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Msg$)) (=> (set.member$a ?v4 (set$a ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_ex$a ?v2 ?v0) (list_ex$a ?v3 ?v1)))) :named a251))
+(assert (! (forall ((?v0 Agent_list$) (?v1 Agent_list$) (?v2 (-> Agent$ Bool)) (?v3 (-> Agent$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Agent$)) (=> (set.member$ ?v4 (set$b ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_ex$b ?v2 ?v0) (list_ex$b ?v3 ?v1)))) :named a252))
+(assert (! (forall ((?v0 Event_list$) (?v1 Event_list$) (?v2 (-> Event$ Bool)) (?v3 (-> Event$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Event$)) (=> (set.member$b ?v4 (set$ ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_ex$ ?v2 ?v0) (list_ex$ ?v3 ?v1)))) :named a253))
+(assert (! (forall ((?v0 Msg$) (?v1 (-> Msg$ Bool))) (= (set.insert$ ?v0 (collect$ ?v1)) (collect$ (uuk$ ?v0 ?v1)))) :named a254))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (= (set.insert$ ?v0 ?v1) (collect$ (uul$ ?v0 ?v1)))) :named a255))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (= (set.insert$b ?v0 ?v1) (collect$a (uum$ ?v0 ?v1)))) :named a256))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (= (set.insert$c ?v0 ?v1) (collect$b (uun$ ?v0 ?v1)))) :named a257))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (=> (set.member$a ?v0 ?v1) (exists ((?v2 Msg_set$)) (and (= ?v1 (set.insert$ ?v0 ?v2)) (not (set.member$a ?v0 ?v2)))))) :named a258))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (=> (set.member$b ?v0 ?v1) (exists ((?v2 Event_set$)) (and (= ?v1 (set.insert$b ?v0 ?v2)) (not (set.member$b ?v0 ?v2)))))) :named a259))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (=> (set.member$ ?v0 ?v1) (exists ((?v2 Agent_set$)) (and (= ?v1 (set.insert$c ?v0 ?v2)) (not (set.member$ ?v0 ?v2)))))) :named a260))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg$) (?v2 Msg_set$)) (= (set.insert$ ?v0 (set.insert$ ?v1 ?v2)) (set.insert$ ?v1 (set.insert$ ?v0 ?v2)))) :named a261))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg$) (?v3 Msg_set$)) (=> (and (not (set.member$a ?v0 ?v1)) (not (set.member$a ?v2 ?v3))) (= (= (set.insert$ ?v0 ?v1) (set.insert$ ?v2 ?v3)) (ite (= ?v0 ?v2) (= ?v1 ?v3) (exists ((?v4 Msg_set$)) (and (= ?v1 (set.insert$ ?v2 ?v4)) (and (not (set.member$a ?v2 ?v4)) (and (= ?v3 (set.insert$ ?v0 ?v4)) (not (set.member$a ?v0 ?v4)))))))))) :named a262))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event$) (?v3 Event_set$)) (=> (and (not (set.member$b ?v0 ?v1)) (not (set.member$b ?v2 ?v3))) (= (= (set.insert$b ?v0 ?v1) (set.insert$b ?v2 ?v3)) (ite (= ?v0 ?v2) (= ?v1 ?v3) (exists ((?v4 Event_set$)) (and (= ?v1 (set.insert$b ?v2 ?v4)) (and (not (set.member$b ?v2 ?v4)) (and (= ?v3 (set.insert$b ?v0 ?v4)) (not (set.member$b ?v0 ?v4)))))))))) :named a263))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent$) (?v3 Agent_set$)) (=> (and (not (set.member$ ?v0 ?v1)) (not (set.member$ ?v2 ?v3))) (= (= (set.insert$c ?v0 ?v1) (set.insert$c ?v2 ?v3)) (ite (= ?v0 ?v2) (= ?v1 ?v3) (exists ((?v4 Agent_set$)) (and (= ?v1 (set.insert$c ?v2 ?v4)) (and (not (set.member$ ?v2 ?v4)) (and (= ?v3 (set.insert$c ?v0 ?v4)) (not (set.member$ ?v0 ?v4)))))))))) :named a264))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (! (=> (set.member$a ?v0 ?v1) (= (set.insert$ ?v0 ?v1) ?v1)) :pattern ((set.insert$ ?v0 ?v1)))) :named a265))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (! (=> (set.member$b ?v0 ?v1) (= (set.insert$b ?v0 ?v1) ?v1)) :pattern ((set.insert$b ?v0 ?v1)))) :named a266))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (! (=> (set.member$ ?v0 ?v1) (= (set.insert$c ?v0 ?v1) ?v1)) :pattern ((set.insert$c ?v0 ?v1)))) :named a267))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg_set$)) (=> (and (not (set.member$a ?v0 ?v1)) (not (set.member$a ?v0 ?v2))) (= (= (set.insert$ ?v0 ?v1) (set.insert$ ?v0 ?v2)) (= ?v1 ?v2)))) :named a268))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event_set$)) (=> (and (not (set.member$b ?v0 ?v1)) (not (set.member$b ?v0 ?v2))) (= (= (set.insert$b ?v0 ?v1) (set.insert$b ?v0 ?v2)) (= ?v1 ?v2)))) :named a269))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent_set$)) (=> (and (not (set.member$ ?v0 ?v1)) (not (set.member$ ?v0 ?v2))) (= (= (set.insert$c ?v0 ?v1) (set.insert$c ?v0 ?v2)) (= ?v1 ?v2)))) :named a270))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (=> (and (set.member$a ?v0 ?v1) (forall ((?v2 Msg_set$)) (=> (and (= ?v1 (set.insert$ ?v0 ?v2)) (not (set.member$a ?v0 ?v2))) false))) false)) :named a271))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (=> (and (set.member$b ?v0 ?v1) (forall ((?v2 Event_set$)) (=> (and (= ?v1 (set.insert$b ?v0 ?v2)) (not (set.member$b ?v0 ?v2))) false))) false)) :named a272))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (=> (and (set.member$ ?v0 ?v1) (forall ((?v2 Agent_set$)) (=> (and (= ?v1 (set.insert$c ?v0 ?v2)) (not (set.member$ ?v0 ?v2))) false))) false)) :named a273))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$) (?v2 Msg$)) (=> (set.member$a ?v0 ?v1) (set.member$a ?v0 (set.insert$ ?v2 ?v1)))) :named a274))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$) (?v2 Event$)) (=> (set.member$b ?v0 ?v1) (set.member$b ?v0 (set.insert$b ?v2 ?v1)))) :named a275))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$) (?v2 Agent$)) (=> (set.member$ ?v0 ?v1) (set.member$ ?v0 (set.insert$c ?v2 ?v1)))) :named a276))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_set$)) (set.member$a ?v0 (set.insert$ ?v0 ?v1))) :named a277))
+(assert (! (forall ((?v0 Event$) (?v1 Event_set$)) (set.member$b ?v0 (set.insert$b ?v0 ?v1))) :named a278))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_set$)) (set.member$ ?v0 (set.insert$c ?v0 ?v1))) :named a279))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg$) (?v2 Msg_set$)) (=> (and (set.member$a ?v0 (set.insert$ ?v1 ?v2)) (and (=> (= ?v0 ?v1) false) (=> (set.member$a ?v0 ?v2) false))) false)) :named a280))
+(assert (! (forall ((?v0 Event$) (?v1 Event$) (?v2 Event_set$)) (=> (and (set.member$b ?v0 (set.insert$b ?v1 ?v2)) (and (=> (= ?v0 ?v1) false) (=> (set.member$b ?v0 ?v2) false))) false)) :named a281))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Agent_set$)) (=> (and (set.member$ ?v0 (set.insert$c ?v1 ?v2)) (and (=> (= ?v0 ?v1) false) (=> (set.member$ ?v0 ?v2) false))) false)) :named a282))
+(assert (! (forall ((?v0 Msg$) (?v1 (-> Msg$ Bool)) (?v2 Msg_list$)) (=> (set.member$a ?v0 (set$a (takeWhile$a ?v1 ?v2))) (and (set.member$a ?v0 (set$a ?v2)) (?v1 ?v0)))) :named a283))
+(assert (! (forall ((?v0 Agent$) (?v1 (-> Agent$ Bool)) (?v2 Agent_list$)) (=> (set.member$ ?v0 (set$b (takeWhile$b ?v1 ?v2))) (and (set.member$ ?v0 (set$b ?v2)) (?v1 ?v0)))) :named a284))
+(assert (! (forall ((?v0 Event$) (?v1 (-> Event$ Bool)) (?v2 Event_list$)) (=> (set.member$b ?v0 (set$ (takeWhile$ ?v1 ?v2))) (and (set.member$b ?v0 (set$ ?v2)) (?v1 ?v0)))) :named a285))
+(assert (! (forall ((?v0 Msg_list$) (?v1 Msg_list$) (?v2 (-> Msg$ Bool)) (?v3 (-> Msg$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Msg$)) (=> (set.member$a ?v4 (set$a ?v0)) (= (?v2 ?v4) (?v3 ?v4))))) (= (takeWhile$a ?v2 ?v0) (takeWhile$a ?v3 ?v1)))) :named a286))
+(assert (! (forall ((?v0 Agent_list$) (?v1 Agent_list$) (?v2 (-> Agent$ Bool)) (?v3 (-> Agent$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Agent$)) (=> (set.member$ ?v4 (set$b ?v0)) (= (?v2 ?v4) (?v3 ?v4))))) (= (takeWhile$b ?v2 ?v0) (takeWhile$b ?v3 ?v1)))) :named a287))
+(assert (! (forall ((?v0 Event_list$) (?v1 Event_list$) (?v2 (-> Event$ Bool)) (?v3 (-> Event$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Event$)) (=> (set.member$b ?v4 (set$ ?v0)) (= (?v2 ?v4) (?v3 ?v4))))) (= (takeWhile$ ?v2 ?v0) (takeWhile$ ?v3 ?v1)))) :named a288))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$) (?v2 Msg$)) (=> (set.member$a ?v0 (set$a ?v1)) (set.member$a ?v0 (set$a (cons$b ?v2 ?v1))))) :named a289))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$) (?v2 Agent$)) (=> (set.member$ ?v0 (set$b ?v1)) (set.member$ ?v0 (set$b (cons$c ?v2 ?v1))))) :named a290))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$) (?v2 Event$)) (=> (set.member$b ?v0 (set$ ?v1)) (set.member$b ?v0 (set$ (cons$ ?v2 ?v1))))) :named a291))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (set.member$a ?v0 (set$a (cons$b ?v0 ?v1)))) :named a292))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (set.member$ ?v0 (set$b (cons$c ?v0 ?v1)))) :named a293))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (set.member$b ?v0 (set$ (cons$ ?v0 ?v1)))) :named a294))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg$) (?v2 Msg_list$)) (=> (set.member$a ?v0 (set$a (cons$b ?v1 ?v2))) (or (= ?v0 ?v1) (set.member$a ?v0 (set$a ?v2))))) :named a295))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Agent_list$)) (=> (set.member$ ?v0 (set$b (cons$c ?v1 ?v2))) (or (= ?v0 ?v1) (set.member$ ?v0 (set$b ?v2))))) :named a296))
+(assert (! (forall ((?v0 Event$) (?v1 Event$) (?v2 Event_list$)) (=> (set.member$b ?v0 (set$ (cons$ ?v1 ?v2))) (or (= ?v0 ?v1) (set.member$b ?v0 (set$ ?v2))))) :named a297))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (=> (and (set.member$a ?v0 (set$a ?v1)) (and (forall ((?v2 Msg_list$)) (=> (= ?v1 (cons$b ?v0 ?v2)) false)) (forall ((?v2 Msg$) (?v3 Msg_list$)) (=> (and (= ?v1 (cons$b ?v2 ?v3)) (set.member$a ?v0 (set$a ?v3))) false)))) false)) :named a298))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (=> (and (set.member$ ?v0 (set$b ?v1)) (and (forall ((?v2 Agent_list$)) (=> (= ?v1 (cons$c ?v0 ?v2)) false)) (forall ((?v2 Agent$) (?v3 Agent_list$)) (=> (and (= ?v1 (cons$c ?v2 ?v3)) (set.member$ ?v0 (set$b ?v3))) false)))) false)) :named a299))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (=> (and (set.member$b ?v0 (set$ ?v1)) (and (forall ((?v2 Event_list$)) (=> (= ?v1 (cons$ ?v0 ?v2)) false)) (forall ((?v2 Event$) (?v3 Event_list$)) (=> (and (= ?v1 (cons$ ?v2 ?v3)) (set.member$b ?v0 (set$ ?v3))) false)))) false)) :named a300))
+(assert (! (forall ((?v0 Msg_list$) (?v1 Msg_list$) (?v2 (-> Msg$ Bool)) (?v3 (-> Msg$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Msg$)) (=> (set.member$a ?v4 (set$a ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_all$a ?v2 ?v0) (list_all$a ?v3 ?v1)))) :named a301))
+(assert (! (forall ((?v0 Agent_list$) (?v1 Agent_list$) (?v2 (-> Agent$ Bool)) (?v3 (-> Agent$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Agent$)) (=> (set.member$ ?v4 (set$b ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_all$b ?v2 ?v0) (list_all$b ?v3 ?v1)))) :named a302))
+(assert (! (forall ((?v0 Event_list$) (?v1 Event_list$) (?v2 (-> Event$ Bool)) (?v3 (-> Event$ Bool))) (=> (and (= ?v0 ?v1) (forall ((?v4 Event$)) (=> (set.member$b ?v4 (set$ ?v1)) (= (?v2 ?v4) (?v3 ?v4))))) (= (list_all$ ?v2 ?v0) (list_all$ ?v3 ?v1)))) :named a303))
+(assert (! (forall ((?v0 (-> Msg$ Bool)) (?v1 Msg_list$) (?v2 (-> Msg$ Bool))) (=> (and (list_all$a ?v0 ?v1) (forall ((?v3 Msg$)) (=> (and (set.member$a ?v3 (set$a ?v1)) (?v0 ?v3)) (?v2 ?v3)))) (list_all$a ?v2 ?v1))) :named a304))
+(assert (! (forall ((?v0 (-> Agent$ Bool)) (?v1 Agent_list$) (?v2 (-> Agent$ Bool))) (=> (and (list_all$b ?v0 ?v1) (forall ((?v3 Agent$)) (=> (and (set.member$ ?v3 (set$b ?v1)) (?v0 ?v3)) (?v2 ?v3)))) (list_all$b ?v2 ?v1))) :named a305))
+(assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event_list$) (?v2 (-> Event$ Bool))) (=> (and (list_all$ ?v0 ?v1) (forall ((?v3 Event$)) (=> (and (set.member$b ?v3 (set$ ?v1)) (?v0 ?v3)) (?v2 ?v3)))) (list_all$ ?v2 ?v1))) :named a306))
+(assert (! (forall ((?v0 (-> Msg$ Bool)) (?v1 Msg_list$)) (= (list_ex1$a ?v0 ?v1) (exists ((?v2 Msg$)) (and (and (set.member$a ?v2 (set$a ?v1)) (?v0 ?v2)) (forall ((?v3 Msg$)) (=> (and (set.member$a ?v3 (set$a ?v1)) (?v0 ?v3)) (= ?v3 ?v2))))))) :named a307))
+(assert (! (forall ((?v0 (-> Agent$ Bool)) (?v1 Agent_list$)) (= (list_ex1$b ?v0 ?v1) (exists ((?v2 Agent$)) (and (and (set.member$ ?v2 (set$b ?v1)) (?v0 ?v2)) (forall ((?v3 Agent$)) (=> (and (set.member$ ?v3 (set$b ?v1)) (?v0 ?v3)) (= ?v3 ?v2))))))) :named a308))
+(assert (! (forall ((?v0 (-> Event$ Bool)) (?v1 Event_list$)) (= (list_ex1$ ?v0 ?v1) (exists ((?v2 Event$)) (and (and (set.member$b ?v2 (set$ ?v1)) (?v0 ?v2)) (forall ((?v3 Event$)) (=> (and (set.member$b ?v3 (set$ ?v1)) (?v0 ?v3)) (= ?v3 ?v2))))))) :named a309))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (set.member$a ?v0 (set$a ?v1)) (set.member$g ?v1 ?v0))) :named a310))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (= (set.member$ ?v0 (set$b ?v1)) (set.member$h ?v1 ?v0))) :named a311))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (set.member$b ?v0 (set$ ?v1)) (set.member$d ?v1 ?v0))) :named a312))
 (assert (! (forall ((?v0 Event_list$) (?v1 Event$)) (less_eq$a (set$ ?v0) (set$ (cons$ ?v1 ?v0)))) :named a313))
 (assert (! (forall ((?v0 Msg_list$) (?v1 Msg$)) (less_eq$ (set$a ?v0) (set$a (cons$b ?v1 ?v0)))) :named a314))
-(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (= (exists ((?v2 Msg$)) (and (member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (member$a ?v5 (set$a ?v2)) (not (?v1 ?v5))))))))) :named a315))
-(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (= (exists ((?v2 Agent$)) (and (member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (member$ ?v5 (set$b ?v2)) (not (?v1 ?v5))))))))) :named a316))
-(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (= (exists ((?v2 Event$)) (and (member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (member$b ?v5 (set$ ?v2)) (not (?v1 ?v5))))))))) :named a317))
-(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (= (exists ((?v2 Msg$)) (and (member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (member$a ?v5 (set$a ?v4)) (not (?v1 ?v5))))))))) :named a318))
-(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (= (exists ((?v2 Agent$)) (and (member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (member$ ?v5 (set$b ?v4)) (not (?v1 ?v5))))))))) :named a319))
-(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (= (exists ((?v2 Event$)) (and (member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (member$b ?v5 (set$ ?v4)) (not (?v1 ?v5))))))))) :named a320))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (and (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3))) (not (member$a ?v0 (set$a ?v2))))))) :named a321))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (= (member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (and (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3))) (not (member$ ?v0 (set$b ?v2))))))) :named a322))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (and (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3))) (not (member$b ?v0 (set$ ?v2))))))) :named a323))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (and (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3))) (not (member$a ?v0 (set$a ?v3))))))) :named a324))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (= (member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (and (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3))) (not (member$ ?v0 (set$b ?v3))))))) :named a325))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (and (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3))) (not (member$b ?v0 (set$ ?v3))))))) :named a326))
-(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (and (exists ((?v2 Msg$)) (and (member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (forall ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (=> (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (member$a ?v5 (set$a ?v2)) (not (?v1 ?v5)))))) false))) false)) :named a327))
-(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (and (exists ((?v2 Agent$)) (and (member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (forall ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (=> (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (member$ ?v5 (set$b ?v2)) (not (?v1 ?v5)))))) false))) false)) :named a328))
-(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (and (exists ((?v2 Event$)) (and (member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (forall ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (=> (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (member$b ?v5 (set$ ?v2)) (not (?v1 ?v5)))))) false))) false)) :named a329))
-(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (and (exists ((?v2 Msg$)) (and (member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (forall ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (=> (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (member$a ?v5 (set$a ?v4)) (not (?v1 ?v5)))))) false))) false)) :named a330))
-(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (and (exists ((?v2 Agent$)) (and (member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (forall ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (=> (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (member$ ?v5 (set$b ?v4)) (not (?v1 ?v5)))))) false))) false)) :named a331))
-(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (and (exists ((?v2 Event$)) (and (member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (forall ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (=> (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (member$b ?v5 (set$ ?v4)) (not (?v1 ?v5)))))) false))) false)) :named a332))
-(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (exists ((?v2 Msg$)) (and (member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (member$a ?v5 (set$a ?v2)) (not (?v1 ?v5))))))))) :named a333))
-(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (exists ((?v2 Agent$)) (and (member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (member$ ?v5 (set$b ?v2)) (not (?v1 ?v5))))))))) :named a334))
-(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (exists ((?v2 Event$)) (and (member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (member$b ?v5 (set$ ?v2)) (not (?v1 ?v5))))))))) :named a335))
-(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (exists ((?v2 Msg$)) (and (member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (member$a ?v5 (set$a ?v4)) (not (?v1 ?v5))))))))) :named a336))
-(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (exists ((?v2 Agent$)) (and (member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (member$ ?v5 (set$b ?v4)) (not (?v1 ?v5))))))))) :named a337))
-(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (exists ((?v2 Event$)) (and (member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (member$b ?v5 (set$ ?v4)) (not (?v1 ?v5))))))))) :named a338))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3)))))) :named a339))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (= (member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3)))))) :named a340))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3)))))) :named a341))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$) (?v2 Msg_list$) (?v3 Msg_list$) (?v4 Msg_list$)) (=> (and (not (member$a ?v0 (set$a ?v1))) (not (member$a ?v0 (set$a ?v2)))) (= (= (append$a ?v1 (cons$b ?v0 ?v2)) (append$a ?v3 (cons$b ?v0 ?v4))) (and (= ?v1 ?v3) (= ?v2 ?v4))))) :named a342))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$) (?v2 Agent_list$) (?v3 Agent_list$) (?v4 Agent_list$)) (=> (and (not (member$ ?v0 (set$b ?v1))) (not (member$ ?v0 (set$b ?v2)))) (= (= (append$b ?v1 (cons$c ?v0 ?v2)) (append$b ?v3 (cons$c ?v0 ?v4))) (and (= ?v1 ?v3) (= ?v2 ?v4))))) :named a343))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$) (?v2 Event_list$) (?v3 Event_list$) (?v4 Event_list$)) (=> (and (not (member$b ?v0 (set$ ?v1))) (not (member$b ?v0 (set$ ?v2)))) (= (= (append$ ?v1 (cons$ ?v0 ?v2)) (append$ ?v3 (cons$ ?v0 ?v4))) (and (= ?v1 ?v3) (= ?v2 ?v4))))) :named a344))
-(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (and (exists ((?v2 Msg$)) (and (member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (forall ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (=> (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (?v1 ?v3)) false))) false)) :named a345))
-(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (and (exists ((?v2 Agent$)) (and (member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (forall ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (=> (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (?v1 ?v3)) false))) false)) :named a346))
-(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (and (exists ((?v2 Event$)) (and (member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (forall ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (=> (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (?v1 ?v3)) false))) false)) :named a347))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (=> (member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (and (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3))) (not (member$a ?v0 (set$a ?v2))))))) :named a348))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (=> (member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (and (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3))) (not (member$ ?v0 (set$b ?v2))))))) :named a349))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (=> (member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (and (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3))) (not (member$b ?v0 (set$ ?v2))))))) :named a350))
-(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (exists ((?v2 Msg$)) (and (member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (?v1 ?v3))))) :named a351))
-(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (exists ((?v2 Agent$)) (and (member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (?v1 ?v3))))) :named a352))
-(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (exists ((?v2 Event$)) (and (member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (?v1 ?v3))))) :named a353))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (=> (member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (and (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3))) (not (member$a ?v0 (set$a ?v3))))))) :named a354))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (=> (member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (and (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3))) (not (member$ ?v0 (set$b ?v3))))))) :named a355))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (=> (member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (and (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3))) (not (member$b ?v0 (set$ ?v3))))))) :named a356))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (=> (member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3)))))) :named a357))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (=> (member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3)))))) :named a358))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (=> (member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3)))))) :named a359))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Msg$) (?v3 Event_list$)) (=> (member$b (says$ ?v0 ?v1 ?v2) (set$ ?v3)) (member$a ?v2 (knows$ ?v0 ?v3)))) :named a360))
-(assert (! (forall ((?v0 Agent$) (?v1 Msg$) (?v2 Event_list$)) (=> (member$b (notes$ ?v0 ?v1) (set$ ?v2)) (member$a ?v1 (knows$ ?v0 ?v2)))) :named a361))
-(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (! (= (insert$d ?v0 ?v1) (ite (member$a ?v0 (set$a ?v1)) ?v1 (cons$b ?v0 ?v1))) :pattern ((insert$d ?v0 ?v1)))) :named a362))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (! (= (insert$e ?v0 ?v1) (ite (member$ ?v0 (set$b ?v1)) ?v1 (cons$c ?v0 ?v1))) :pattern ((insert$e ?v0 ?v1)))) :named a363))
-(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (= (insert$a ?v0 ?v1) (ite (member$b ?v0 (set$ ?v1)) ?v1 (cons$ ?v0 ?v1))) :pattern ((insert$a ?v0 ?v1)))) :named a364))
-(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Msg$) (?v3 Event_list$)) (=> (member$b (says$ ?v0 ?v1 ?v2) (set$ ?v3)) (member$a ?v2 (knows$ spy$ ?v3)))) :named a365))
-(assert (! (forall ((?v0 Agent$) (?v1 Msg$) (?v2 Event_list$)) (=> (and (not (= ?v0 spy$)) (member$b (gets$ ?v0 ?v1) (set$ ?v2))) (member$a ?v1 (knows$ ?v0 ?v2)))) :named a366))
-(assert (! (forall ((?v0 Msg$) (?v1 Event_list$)) (=> (member$a ?v0 (knows$ spy$ ?v1)) (exists ((?v2 Agent$) (?v3 Agent$)) (or (member$b (says$ ?v2 ?v3 ?v0) (set$ ?v1)) (or (member$b (notes$ ?v2 ?v0) (set$ ?v1)) (member$a ?v0 (initState$ spy$))))))) :named a367))
-(assert (! (forall ((?v0 Msg_list$) (?v1 Msg$) (?v2 Msg_list_set$)) (=> (member$e (append$a ?v0 (cons$b ?v1 nil$b)) ?v2) (member$a ?v1 (succ$a ?v2 ?v0)))) :named a368))
-(assert (! (forall ((?v0 Agent_list$) (?v1 Agent$) (?v2 Agent_list_set$)) (=> (member$f (append$b ?v0 (cons$c ?v1 nil$c)) ?v2) (member$ ?v1 (succ$b ?v2 ?v0)))) :named a369))
-(assert (! (forall ((?v0 Event_list$) (?v1 Event$) (?v2 Event_list_set$)) (=> (member$c (append$ ?v0 (cons$ ?v1 nil$)) ?v2) (member$b ?v1 (succ$ ?v2 ?v0)))) :named a370))
-(assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Msg$)) (= (knows$ spy$ (append$ ?v0 (cons$ (notes$ ?v1 ?v2) nil$))) (ite (member$ ?v1 bad$) (insert$ ?v2 (knows$ spy$ ?v0)) (knows$ spy$ ?v0)))) :named a371))
-(assert (! (member$ spy$ bad$) :named a372))
-(assert (! (forall ((?v0 Agent$) (?v1 Msg$) (?v2 Event_list$)) (! (= (knows$ spy$ (cons$ (notes$ ?v0 ?v1) ?v2)) (ite (member$ ?v0 bad$) (insert$ ?v1 (knows$ spy$ ?v2)) (knows$ spy$ ?v2))) :pattern ((cons$ (notes$ ?v0 ?v1) ?v2)))) :named a373))
-(assert (! (forall ((?v0 Agent$) (?v1 Msg$) (?v2 Event_list$)) (=> (and (member$b (notes$ ?v0 ?v1) (set$ ?v2)) (member$ ?v0 bad$)) (member$a ?v1 (knows$ spy$ ?v2)))) :named a374))
+(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (= (exists ((?v2 Msg$)) (and (set.member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (set.member$a ?v5 (set$a ?v2)) (not (?v1 ?v5))))))))) :named a315))
+(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (= (exists ((?v2 Agent$)) (and (set.member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (set.member$ ?v5 (set$b ?v2)) (not (?v1 ?v5))))))))) :named a316))
+(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (= (exists ((?v2 Event$)) (and (set.member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (set.member$b ?v5 (set$ ?v2)) (not (?v1 ?v5))))))))) :named a317))
+(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (= (exists ((?v2 Msg$)) (and (set.member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (set.member$a ?v5 (set$a ?v4)) (not (?v1 ?v5))))))))) :named a318))
+(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (= (exists ((?v2 Agent$)) (and (set.member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (set.member$ ?v5 (set$b ?v4)) (not (?v1 ?v5))))))))) :named a319))
+(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (= (exists ((?v2 Event$)) (and (set.member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (set.member$b ?v5 (set$ ?v4)) (not (?v1 ?v5))))))))) :named a320))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (set.member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (and (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3))) (not (set.member$a ?v0 (set$a ?v2))))))) :named a321))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (= (set.member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (and (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3))) (not (set.member$ ?v0 (set$b ?v2))))))) :named a322))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (set.member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (and (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3))) (not (set.member$b ?v0 (set$ ?v2))))))) :named a323))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (set.member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (and (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3))) (not (set.member$a ?v0 (set$a ?v3))))))) :named a324))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (= (set.member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (and (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3))) (not (set.member$ ?v0 (set$b ?v3))))))) :named a325))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (set.member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (and (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3))) (not (set.member$b ?v0 (set$ ?v3))))))) :named a326))
+(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (and (exists ((?v2 Msg$)) (and (set.member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (forall ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (=> (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (set.member$a ?v5 (set$a ?v2)) (not (?v1 ?v5)))))) false))) false)) :named a327))
+(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (and (exists ((?v2 Agent$)) (and (set.member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (forall ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (=> (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (set.member$ ?v5 (set$b ?v2)) (not (?v1 ?v5)))))) false))) false)) :named a328))
+(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (and (exists ((?v2 Event$)) (and (set.member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (forall ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (=> (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (set.member$b ?v5 (set$ ?v2)) (not (?v1 ?v5)))))) false))) false)) :named a329))
+(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (and (exists ((?v2 Msg$)) (and (set.member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (forall ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (=> (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (set.member$a ?v5 (set$a ?v4)) (not (?v1 ?v5)))))) false))) false)) :named a330))
+(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (and (exists ((?v2 Agent$)) (and (set.member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (forall ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (=> (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (set.member$ ?v5 (set$b ?v4)) (not (?v1 ?v5)))))) false))) false)) :named a331))
+(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (and (exists ((?v2 Event$)) (and (set.member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (forall ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (=> (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (set.member$b ?v5 (set$ ?v4)) (not (?v1 ?v5)))))) false))) false)) :named a332))
+(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (exists ((?v2 Msg$)) (and (set.member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (set.member$a ?v5 (set$a ?v2)) (not (?v1 ?v5))))))))) :named a333))
+(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (exists ((?v2 Agent$)) (and (set.member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (set.member$ ?v5 (set$b ?v2)) (not (?v1 ?v5))))))))) :named a334))
+(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (exists ((?v2 Event$)) (and (set.member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (set.member$b ?v5 (set$ ?v2)) (not (?v1 ?v5))))))))) :named a335))
+(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (exists ((?v2 Msg$)) (and (set.member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Msg$)) (=> (set.member$a ?v5 (set$a ?v4)) (not (?v1 ?v5))))))))) :named a336))
+(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (exists ((?v2 Agent$)) (and (set.member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Agent$)) (=> (set.member$ ?v5 (set$b ?v4)) (not (?v1 ?v5))))))))) :named a337))
+(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (exists ((?v2 Event$)) (and (set.member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (and (?v1 ?v3) (forall ((?v5 Event$)) (=> (set.member$b ?v5 (set$ ?v4)) (not (?v1 ?v5))))))))) :named a338))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (= (set.member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3)))))) :named a339))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (= (set.member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3)))))) :named a340))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (= (set.member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3)))))) :named a341))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$) (?v2 Msg_list$) (?v3 Msg_list$) (?v4 Msg_list$)) (=> (and (not (set.member$a ?v0 (set$a ?v1))) (not (set.member$a ?v0 (set$a ?v2)))) (= (= (append$a ?v1 (cons$b ?v0 ?v2)) (append$a ?v3 (cons$b ?v0 ?v4))) (and (= ?v1 ?v3) (= ?v2 ?v4))))) :named a342))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$) (?v2 Agent_list$) (?v3 Agent_list$) (?v4 Agent_list$)) (=> (and (not (set.member$ ?v0 (set$b ?v1))) (not (set.member$ ?v0 (set$b ?v2)))) (= (= (append$b ?v1 (cons$c ?v0 ?v2)) (append$b ?v3 (cons$c ?v0 ?v4))) (and (= ?v1 ?v3) (= ?v2 ?v4))))) :named a343))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$) (?v2 Event_list$) (?v3 Event_list$) (?v4 Event_list$)) (=> (and (not (set.member$b ?v0 (set$ ?v1))) (not (set.member$b ?v0 (set$ ?v2)))) (= (= (append$ ?v1 (cons$ ?v0 ?v2)) (append$ ?v3 (cons$ ?v0 ?v4))) (and (= ?v1 ?v3) (= ?v2 ?v4))))) :named a344))
+(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (and (exists ((?v2 Msg$)) (and (set.member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (forall ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (=> (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (?v1 ?v3)) false))) false)) :named a345))
+(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (and (exists ((?v2 Agent$)) (and (set.member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (forall ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (=> (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (?v1 ?v3)) false))) false)) :named a346))
+(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (and (exists ((?v2 Event$)) (and (set.member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (forall ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (=> (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (?v1 ?v3)) false))) false)) :named a347))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (=> (set.member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (and (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3))) (not (set.member$a ?v0 (set$a ?v2))))))) :named a348))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (=> (set.member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (and (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3))) (not (set.member$ ?v0 (set$b ?v2))))))) :named a349))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (=> (set.member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (and (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3))) (not (set.member$b ?v0 (set$ ?v2))))))) :named a350))
+(assert (! (forall ((?v0 Msg_list$) (?v1 (-> Msg$ Bool))) (=> (exists ((?v2 Msg$)) (and (set.member$a ?v2 (set$a ?v0)) (?v1 ?v2))) (exists ((?v2 Msg_list$) (?v3 Msg$) (?v4 Msg_list$)) (and (= ?v0 (append$a ?v2 (cons$b ?v3 ?v4))) (?v1 ?v3))))) :named a351))
+(assert (! (forall ((?v0 Agent_list$) (?v1 (-> Agent$ Bool))) (=> (exists ((?v2 Agent$)) (and (set.member$ ?v2 (set$b ?v0)) (?v1 ?v2))) (exists ((?v2 Agent_list$) (?v3 Agent$) (?v4 Agent_list$)) (and (= ?v0 (append$b ?v2 (cons$c ?v3 ?v4))) (?v1 ?v3))))) :named a352))
+(assert (! (forall ((?v0 Event_list$) (?v1 (-> Event$ Bool))) (=> (exists ((?v2 Event$)) (and (set.member$b ?v2 (set$ ?v0)) (?v1 ?v2))) (exists ((?v2 Event_list$) (?v3 Event$) (?v4 Event_list$)) (and (= ?v0 (append$ ?v2 (cons$ ?v3 ?v4))) (?v1 ?v3))))) :named a353))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (=> (set.member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (and (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3))) (not (set.member$a ?v0 (set$a ?v3))))))) :named a354))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (=> (set.member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (and (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3))) (not (set.member$ ?v0 (set$b ?v3))))))) :named a355))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (=> (set.member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (and (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3))) (not (set.member$b ?v0 (set$ ?v3))))))) :named a356))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (=> (set.member$a ?v0 (set$a ?v1)) (exists ((?v2 Msg_list$) (?v3 Msg_list$)) (= ?v1 (append$a ?v2 (cons$b ?v0 ?v3)))))) :named a357))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (=> (set.member$ ?v0 (set$b ?v1)) (exists ((?v2 Agent_list$) (?v3 Agent_list$)) (= ?v1 (append$b ?v2 (cons$c ?v0 ?v3)))))) :named a358))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (=> (set.member$b ?v0 (set$ ?v1)) (exists ((?v2 Event_list$) (?v3 Event_list$)) (= ?v1 (append$ ?v2 (cons$ ?v0 ?v3)))))) :named a359))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Msg$) (?v3 Event_list$)) (=> (set.member$b (says$ ?v0 ?v1 ?v2) (set$ ?v3)) (set.member$a ?v2 (knows$ ?v0 ?v3)))) :named a360))
+(assert (! (forall ((?v0 Agent$) (?v1 Msg$) (?v2 Event_list$)) (=> (set.member$b (notes$ ?v0 ?v1) (set$ ?v2)) (set.member$a ?v1 (knows$ ?v0 ?v2)))) :named a361))
+(assert (! (forall ((?v0 Msg$) (?v1 Msg_list$)) (! (= (set.insert$d ?v0 ?v1) (ite (set.member$a ?v0 (set$a ?v1)) ?v1 (cons$b ?v0 ?v1))) :pattern ((set.insert$d ?v0 ?v1)))) :named a362))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent_list$)) (! (= (set.insert$e ?v0 ?v1) (ite (set.member$ ?v0 (set$b ?v1)) ?v1 (cons$c ?v0 ?v1))) :pattern ((set.insert$e ?v0 ?v1)))) :named a363))
+(assert (! (forall ((?v0 Event$) (?v1 Event_list$)) (! (= (set.insert$a ?v0 ?v1) (ite (set.member$b ?v0 (set$ ?v1)) ?v1 (cons$ ?v0 ?v1))) :pattern ((set.insert$a ?v0 ?v1)))) :named a364))
+(assert (! (forall ((?v0 Agent$) (?v1 Agent$) (?v2 Msg$) (?v3 Event_list$)) (=> (set.member$b (says$ ?v0 ?v1 ?v2) (set$ ?v3)) (set.member$a ?v2 (knows$ spy$ ?v3)))) :named a365))
+(assert (! (forall ((?v0 Agent$) (?v1 Msg$) (?v2 Event_list$)) (=> (and (not (= ?v0 spy$)) (set.member$b (gets$ ?v0 ?v1) (set$ ?v2))) (set.member$a ?v1 (knows$ ?v0 ?v2)))) :named a366))
+(assert (! (forall ((?v0 Msg$) (?v1 Event_list$)) (=> (set.member$a ?v0 (knows$ spy$ ?v1)) (exists ((?v2 Agent$) (?v3 Agent$)) (or (set.member$b (says$ ?v2 ?v3 ?v0) (set$ ?v1)) (or (set.member$b (notes$ ?v2 ?v0) (set$ ?v1)) (set.member$a ?v0 (initState$ spy$))))))) :named a367))
+(assert (! (forall ((?v0 Msg_list$) (?v1 Msg$) (?v2 Msg_list_set$)) (=> (set.member$e (append$a ?v0 (cons$b ?v1 nil$b)) ?v2) (set.member$a ?v1 (succ$a ?v2 ?v0)))) :named a368))
+(assert (! (forall ((?v0 Agent_list$) (?v1 Agent$) (?v2 Agent_list_set$)) (=> (set.member$f (append$b ?v0 (cons$c ?v1 nil$c)) ?v2) (set.member$ ?v1 (succ$b ?v2 ?v0)))) :named a369))
+(assert (! (forall ((?v0 Event_list$) (?v1 Event$) (?v2 Event_list_set$)) (=> (set.member$c (append$ ?v0 (cons$ ?v1 nil$)) ?v2) (set.member$b ?v1 (succ$ ?v2 ?v0)))) :named a370))
+(assert (! (forall ((?v0 Event_list$) (?v1 Agent$) (?v2 Msg$)) (= (knows$ spy$ (append$ ?v0 (cons$ (notes$ ?v1 ?v2) nil$))) (ite (set.member$ ?v1 bad$) (set.insert$ ?v2 (knows$ spy$ ?v0)) (knows$ spy$ ?v0)))) :named a371))
+(assert (! (set.member$ spy$ bad$) :named a372))
+(assert (! (forall ((?v0 Agent$) (?v1 Msg$) (?v2 Event_list$)) (! (= (knows$ spy$ (cons$ (notes$ ?v0 ?v1) ?v2)) (ite (set.member$ ?v0 bad$) (set.insert$ ?v1 (knows$ spy$ ?v2)) (knows$ spy$ ?v2))) :pattern ((cons$ (notes$ ?v0 ?v1) ?v2)))) :named a373))
+(assert (! (forall ((?v0 Agent$) (?v1 Msg$) (?v2 Event_list$)) (=> (and (set.member$b (notes$ ?v0 ?v1) (set$ ?v2)) (set.member$ ?v0 bad$)) (set.member$a ?v1 (knows$ spy$ ?v2)))) :named a374))
 (assert (! (forall ((?v0 Agent$) (?v1 Event$) (?v2 Event_list$)) (= (knows$ ?v0 (cons$ ?v1 ?v2)) (ite (= ?v0 spy$) (case_event$ (uuo$ ?v2) (uup$ ?v2) (uuq$ ?v2) ?v1) (case_event$ (uur$ ?v0 ?v2) (uus$ ?v0 ?v2) (uus$ ?v0 ?v2) ?v1)))) :named a375))
 (check-sat)
index fdcaaefa96a6fe075e94c84a583d459e2eb3ccbd..43a8b36a9eee39a2df00d7552ab6997371dee4e9 100644 (file)
@@ -3,8 +3,8 @@
 (set-logic ALL)
 (synth-fun f ((x Int)) (Set Int))
 
-(constraint (member 45 (f 45)))
-(constraint (member 8 (f 8)))
-(constraint (member 0 (f 3)))
+(constraint (set.member 45 (f 45)))
+(constraint (set.member 8 (f 8)))
+(constraint (set.member 0 (f 3)))
 
 (check-synth)
index baeb1387a8381317fa36cb63da11655f664f841c..ffc495655c6d7bb2ceb11b244c61df7b9ec4b9a5 100644 (file)
@@ -8,25 +8,25 @@
 (declare-fun D () (Set Int))
 
 (declare-fun x () Int)
-(assert (not (member x A)))
-(assert (not (member x B)))
-(assert (not (member x C)))
-(assert (not (member x D)))
+(assert (not (set.member x A)))
+(assert (not (set.member x B)))
+(assert (not (set.member x C)))
+(assert (not (set.member x D)))
 (declare-fun y () Int)
-(assert (not (member y A)))
-(assert (not (member y B)))
-(assert (not (member y C)))
-(assert (not (member y D)))
+(assert (not (set.member y A)))
+(assert (not (set.member y B)))
+(assert (not (set.member y C)))
+(assert (not (set.member y D)))
 (declare-fun z () Int)
-(assert (not (member z A)))
-(assert (not (member z B)))
-(assert (not (member z C)))
-(assert (not (member z D)))
+(assert (not (set.member z A)))
+(assert (not (set.member z B)))
+(assert (not (set.member z C)))
+(assert (not (set.member z D)))
 
 (assert (distinct x y z))
 
-(assert (= (card (union A (union B (union C D)))) 6))
+(assert (= (set.card (union A (union B (union C D)))) 6))
 
-(assert (= (card (as univset (Set Int))) 8))
+(assert (= (set.card (as set.universe (Set Int))) 8))
 
 (check-sat)
index f89ecfffd5a009e7692fe1c8da9f4e2f0ba2bcdb..2f134b6bf56f7acc5f1ded53d76108e1d27562bc 100644 (file)
@@ -2557,7 +2557,7 @@ class SolverTest
     Term[] elements = new Term[] {d_solver.mkBoolean(true),
         d_solver.mkInteger(3),
         d_solver.mkString("C"),
-        d_solver.mkTerm(SINGLETON, d_solver.mkString("Z"))};
+        d_solver.mkTerm(SET_SINGLETON, d_solver.mkString("Z"))};
 
     Term tuple = d_solver.mkTuple(sorts, elements);
 
@@ -2594,8 +2594,8 @@ class SolverTest
       assertEquals(elements[indices[i]], simplifiedTerm);
     }
 
-    assertEquals("((_ tuple_project 0 3 2 0 1 2) (tuple true 3 \"C\" (singleton "
-            + "\"Z\")))",
+    assertEquals("((_ tuple_project 0 3 2 0 1 2) (tuple true 3 \"C\" "
+            + "(set.singleton \"Z\")))",
         projection.toString());
   }
 }
index 94f35e97f1d2035f2d2e4bb68ae8320e6c3526fc..bf0beb024486b556f331f87ebef7470b06257c98 100644 (file)
@@ -895,10 +895,10 @@ class TermTest
     Term i2 = d_solver.mkInteger(7);
 
     Term s1 = d_solver.mkEmptySet(s);
-    Term s2 = d_solver.mkTerm(Kind.SINGLETON, i1);
-    Term s3 = d_solver.mkTerm(Kind.SINGLETON, i1);
-    Term s4 = d_solver.mkTerm(Kind.SINGLETON, i2);
-    Term s5 = d_solver.mkTerm(Kind.UNION, s2, d_solver.mkTerm(Kind.UNION, s3, s4));
+    Term s2 = d_solver.mkTerm(Kind.SET_SINGLETON, i1);
+    Term s3 = d_solver.mkTerm(Kind.SET_SINGLETON, i1);
+    Term s4 = d_solver.mkTerm(Kind.SET_SINGLETON, i2);
+    Term s5 = d_solver.mkTerm(Kind.SET_UNION, s2, d_solver.mkTerm(Kind.SET_UNION, s3, s4));
 
     assertTrue(s1.isSetValue());
     assertTrue(s2.isSetValue());
index eca6683ba26e1570c71d8966c3bf191058da13f3..ab47ae90b32c8256e1eeca97f37ba8a562983278 100644 (file)
@@ -2482,7 +2482,7 @@ TEST_F(TestApiBlackSolver, tupleProject)
       d_solver.mkBoolean(true),
       d_solver.mkInteger(3),
       d_solver.mkString("C"),
-      d_solver.mkTerm(SINGLETON, d_solver.mkString("Z"))};
+      d_solver.mkTerm(SET_SINGLETON, d_solver.mkString("Z"))};
 
   Term tuple = d_solver.mkTuple(sorts, elements);
 
@@ -2524,7 +2524,7 @@ TEST_F(TestApiBlackSolver, tupleProject)
   }
 
   ASSERT_EQ(
-      "((_ tuple_project 0 3 2 0 1 2) (tuple true 3 \"C\" (singleton "
+      "((_ tuple_project 0 3 2 0 1 2) (tuple true 3 \"C\" (set.singleton "
       "\"Z\")))",
       projection.toString());
 }
index 7cfbe25272b0bc40a8cd711452e6652662006715..9e52174b49704f441d1cd3da50966e366347e359 100644 (file)
@@ -941,11 +941,11 @@ TEST_F(TestApiBlackTerm, getSet)
   Term i2 = d_solver.mkInteger(7);
 
   Term s1 = d_solver.mkEmptySet(s);
-  Term s2 = d_solver.mkTerm(Kind::SINGLETON, i1);
-  Term s3 = d_solver.mkTerm(Kind::SINGLETON, i1);
-  Term s4 = d_solver.mkTerm(Kind::SINGLETON, i2);
-  Term s5 =
-      d_solver.mkTerm(Kind::UNION, s2, d_solver.mkTerm(Kind::UNION, s3, s4));
+  Term s2 = d_solver.mkTerm(Kind::SET_SINGLETON, i1);
+  Term s3 = d_solver.mkTerm(Kind::SET_SINGLETON, i1);
+  Term s4 = d_solver.mkTerm(Kind::SET_SINGLETON, i2);
+  Term s5 = d_solver.mkTerm(
+      Kind::SET_UNION, s2, d_solver.mkTerm(Kind::SET_UNION, s3, s4));
 
   ASSERT_TRUE(s1.isSetValue());
   ASSERT_TRUE(s2.isSetValue());
index 556a84d459a0117f9144d804544ee4e00b12595c..e0a5577b4bad123c3a7f2e496a1fcf7aa345568d 100644 (file)
@@ -546,7 +546,7 @@ TEST_F(TestTheoryWhiteBagsNormalForm, from_set)
   ASSERT_EQ(output2, NormalForm::evaluate(input2));
 
   // for normal sets, the first node is the largest, not smallest
-  Node normalSet = d_nodeManager->mkNode(UNION, ySingleton, xSingleton);
+  Node normalSet = d_nodeManager->mkNode(SET_UNION, ySingleton, xSingleton);
   Node input3 = d_nodeManager->mkNode(BAG_FROM_SET, normalSet);
   Node output3 = d_nodeManager->mkNode(UNION_DISJOINT, x_1, y_1);
   ASSERT_EQ(output3, NormalForm::evaluate(input3));
@@ -587,7 +587,7 @@ TEST_F(TestTheoryWhiteBagsNormalForm, to_set)
   // for normal sets, the first node is the largest, not smallest
   Node normalBag = d_nodeManager->mkNode(UNION_DISJOINT, x_4, y_5);
   Node input3 = d_nodeManager->mkNode(BAG_TO_SET, normalBag);
-  Node output3 = d_nodeManager->mkNode(UNION, ySingleton, xSingleton);
+  Node output3 = d_nodeManager->mkNode(SET_UNION, ySingleton, xSingleton);
   ASSERT_EQ(output3, NormalForm::evaluate(input3));
 }
 }  // namespace test
index 81884732a4421b7d45abccb86db18136f2970bdf..2fcd626e31ddd6307f066c7696264b44485f5198 100644 (file)
@@ -49,25 +49,25 @@ TEST_F(TestTheoryWhiteSetsTypeRuleApi, singleton_term)
   Term emptyReal = d_solver.mkEmptySet(d_solver.mkSetSort(realSort));
   Term integerOne = d_solver.mkInteger(1);
   Term realOne = d_solver.mkReal(1);
-  Term singletonInt = d_solver.mkTerm(api::SINGLETON, integerOne);
-  Term singletonReal = d_solver.mkTerm(api::SINGLETON, realOne);
+  Term singletonInt = d_solver.mkTerm(api::SET_SINGLETON, integerOne);
+  Term singletonReal = d_solver.mkTerm(api::SET_SINGLETON, realOne);
   // (union
   //    (singleton (singleton_op Int) 1)
   //    (as emptyset (Set Real)))
-  ASSERT_THROW(d_solver.mkTerm(UNION, singletonInt, emptyReal),
+  ASSERT_THROW(d_solver.mkTerm(SET_UNION, singletonInt, emptyReal),
                CVC5ApiException);
   // (union
   //    (singleton (singleton_op Real) 1)
   //    (as emptyset (Set Real)))
-  ASSERT_NO_THROW(d_solver.mkTerm(UNION, singletonReal, emptyReal));
+  ASSERT_NO_THROW(d_solver.mkTerm(SET_UNION, singletonReal, emptyReal));
 }
 
 TEST_F(TestTheoryWhiteSetsTypeRuleInternal, singleton_node)
 {
   Node singletonInt =
-      d_nodeManager->mkConst(SingletonOp(d_nodeManager->integerType()));
+      d_nodeManager->mkConst(SetSingletonOp(d_nodeManager->integerType()));
   Node singletonReal =
-      d_nodeManager->mkConst(SingletonOp(d_nodeManager->realType()));
+      d_nodeManager->mkConst(SetSingletonOp(d_nodeManager->realType()));
   Node intConstant = d_nodeManager->mkConst(Rational(1));
   Node realConstant = d_nodeManager->mkConst(Rational(1, 5));
   // (singleton (singleton_op Real) 1)