From f2fb0be98861642e0e33ff3c5dc763e8aa5fe769 Mon Sep 17 00:00:00 2001 From: Aina Niemetz Date: Mon, 8 Nov 2021 12:49:14 -0800 Subject: [PATCH] sets: Rename kinds with a more consistent naming scheme. (#7595) 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.'. --- examples/api/cpp/sets.cpp | 26 +- examples/api/python/sets.py | 26 +- .../sets-translate-example-input.smt2 | 6 +- examples/sets-translate/sets_translate.cpp | 48 +- src/api/cpp/cvc5.cpp | 96 ++-- src/api/cpp/cvc5.h | 2 +- src/api/cpp/cvc5_kind.h | 125 ++--- src/api/parsekinds.py | 2 +- src/expr/node.h | 2 +- src/expr/node_manager.cpp | 4 +- src/parser/parser.cpp | 4 +- src/parser/parser.h | 6 +- src/parser/smt2/Smt2.g | 8 +- src/parser/smt2/smt2.cpp | 48 +- src/printer/smt2/smt2_printer.cpp | 44 +- src/proof/alethe/alethe_post_processor.cpp | 2 +- src/proof/lfsc/lfsc_node_converter.cpp | 8 +- src/theory/bags/bags_rewriter.cpp | 4 +- src/theory/bags/normal_form.cpp | 4 +- src/theory/bags/theory_bags_type_rules.cpp | 2 +- .../ematching/trigger_term_info.cpp | 9 +- .../quantifiers/fmf/bounded_integers.cpp | 32 +- .../quantifiers/sygus/sygus_grammar_cons.cpp | 6 +- src/theory/quantifiers/term_database.cpp | 9 +- src/theory/quantifiers/term_util.cpp | 10 +- src/theory/sep/theory_sep.cpp | 86 ++-- src/theory/sets/cardinality_extension.cpp | 49 +- src/theory/sets/cardinality_extension.h | 4 +- src/theory/sets/inference_manager.cpp | 2 +- src/theory/sets/kinds | 92 ++-- src/theory/sets/normal_form.h | 29 +- src/theory/sets/singleton_op.cpp | 12 +- src/theory/sets/singleton_op.h | 31 +- src/theory/sets/solver_state.cpp | 26 +- src/theory/sets/solver_state.h | 10 +- src/theory/sets/term_registry.cpp | 12 +- src/theory/sets/theory_sets.cpp | 36 +- src/theory/sets/theory_sets_private.cpp | 85 +-- src/theory/sets/theory_sets_private.h | 8 +- src/theory/sets/theory_sets_rels.cpp | 283 +++++----- src/theory/sets/theory_sets_rels.h | 4 +- src/theory/sets/theory_sets_rewriter.cpp | 324 +++++++----- src/theory/sets/theory_sets_type_rules.cpp | 63 +-- src/theory/theory_model.h | 4 +- test/python/unit/api/test_term.py | 9 +- test/regress/regress0/bug586.cvc.smt2 | 8 +- test/regress/regress0/bug605.cvc.smt2 | 6 +- test/regress/regress0/cores/issue4971-1.smt2 | 4 +- .../datatypes/conqueue-dt-enum-iloop.smt2 | 4 +- test/regress/regress0/datatypes/dt-2.6.smt2 | 2 +- .../datatypes/dt-match-pat-param-2.6.smt2 | 4 +- .../regress0/datatypes/dt-param-2.6.smt2 | 6 +- .../regress0/datatypes/dt-sel-2.6.smt2 | 6 +- .../regress0/datatypes/issue5280-no-nrec.smt2 | 2 +- test/regress/regress0/fmf/bounded_sets.smt2 | 8 +- .../regress0/fmf/fmf-strange-bounds-2.smt2 | 4 +- .../regress0/fmf/quant_real_univ.cvc.smt2 | 6 +- .../regress/regress0/ho/fta0144-alpha-eq.smt2 | 2 +- .../parser/declarefun-emptyset-uf.smt2 | 4 +- .../regress0/rels/addr_book_0.cvc.smt2 | 24 +- .../regress/regress0/rels/atom_univ2.cvc.smt2 | 10 +- .../regress0/rels/card_transpose.cvc.smt2 | 2 +- test/regress/regress0/rels/iden_0.cvc.smt2 | 16 +- test/regress/regress0/rels/iden_1.cvc.smt2 | 8 +- .../regress0/rels/join-eq-u-sat.cvc.smt2 | 8 +- test/regress/regress0/rels/join-eq-u.cvc.smt2 | 8 +- test/regress/regress0/rels/joinImg_0.cvc.smt2 | 16 +- .../rels/oneLoc_no_quant-int_0_1.cvc.smt2 | 4 +- .../rels/qgu-fuzz-relations-1-dd.smt2 | 2 +- .../regress0/rels/qgu-fuzz-relations-1.smt2 | 2 +- .../regress/regress0/rels/rel_1tup_0.cvc.smt2 | 8 +- .../regress0/rels/rel_complex_0.cvc.smt2 | 10 +- .../regress0/rels/rel_complex_1.cvc.smt2 | 18 +- .../regress0/rels/rel_conflict_0.cvc.smt2 | 4 +- .../regress/regress0/rels/rel_join_0.cvc.smt2 | 10 +- .../regress0/rels/rel_join_0_1.cvc.smt2 | 12 +- .../regress/regress0/rels/rel_join_1.cvc.smt2 | 18 +- .../regress0/rels/rel_join_1_1.cvc.smt2 | 18 +- .../regress/regress0/rels/rel_join_2.cvc.smt2 | 6 +- .../regress0/rels/rel_join_2_1.cvc.smt2 | 6 +- .../regress/regress0/rels/rel_join_3.cvc.smt2 | 20 +- .../regress0/rels/rel_join_3_1.cvc.smt2 | 20 +- .../regress/regress0/rels/rel_join_4.cvc.smt2 | 20 +- .../regress/regress0/rels/rel_join_5.cvc.smt2 | 14 +- .../regress/regress0/rels/rel_join_6.cvc.smt2 | 6 +- .../regress/regress0/rels/rel_join_7.cvc.smt2 | 12 +- .../regress0/rels/rel_product_0.cvc.smt2 | 6 +- .../regress0/rels/rel_product_0_1.cvc.smt2 | 6 +- .../regress0/rels/rel_product_1.cvc.smt2 | 6 +- .../regress0/rels/rel_product_1_1.cvc.smt2 | 8 +- .../regress0/rels/rel_symbolic_1.cvc.smt2 | 8 +- .../regress0/rels/rel_symbolic_1_1.cvc.smt2 | 8 +- .../regress0/rels/rel_symbolic_2_1.cvc.smt2 | 8 +- .../regress0/rels/rel_symbolic_3_1.cvc.smt2 | 8 +- test/regress/regress0/rels/rel_tc_11.cvc.smt2 | 18 +- .../regress/regress0/rels/rel_tc_2_1.cvc.smt2 | 22 +- test/regress/regress0/rels/rel_tc_3.cvc.smt2 | 12 +- .../regress/regress0/rels/rel_tc_3_1.cvc.smt2 | 10 +- test/regress/regress0/rels/rel_tc_7.cvc.smt2 | 6 +- test/regress/regress0/rels/rel_tc_8.cvc.smt2 | 4 +- .../regress/regress0/rels/rel_tp_3_1.cvc.smt2 | 8 +- .../regress0/rels/rel_tp_join_0.cvc.smt2 | 20 +- .../regress0/rels/rel_tp_join_1.cvc.smt2 | 14 +- .../regress0/rels/rel_tp_join_2.cvc.smt2 | 14 +- .../regress0/rels/rel_tp_join_3.cvc.smt2 | 20 +- .../regress0/rels/rel_tp_join_eq_0.cvc.smt2 | 12 +- .../regress0/rels/rel_tp_join_int_0.cvc.smt2 | 6 +- .../regress0/rels/rel_tp_join_pro_0.cvc.smt2 | 14 +- .../regress0/rels/rel_tp_join_var_0.cvc.smt2 | 10 +- .../regress0/rels/rel_transpose_0.cvc.smt2 | 6 +- .../regress0/rels/rel_transpose_1.cvc.smt2 | 4 +- .../regress0/rels/rel_transpose_1_1.cvc.smt2 | 6 +- .../regress0/rels/rel_transpose_3.cvc.smt2 | 4 +- .../regress0/rels/rel_transpose_4.cvc.smt2 | 4 +- .../regress0/rels/rel_transpose_5.cvc.smt2 | 8 +- .../regress0/rels/rel_transpose_6.cvc.smt2 | 16 +- .../regress0/rels/rel_transpose_7.cvc.smt2 | 2 +- test/regress/regress0/rels/relations-ops.smt2 | 16 +- .../regress0/rels/rels-sharing-simp.cvc.smt2 | 6 +- test/regress/regress0/sets/abt-min.smt2 | 6 +- test/regress/regress0/sets/abt-te-exh.smt2 | 2 +- test/regress/regress0/sets/abt-te-exh2.smt2 | 4 +- test/regress/regress0/sets/card-2.smt2 | 8 +- .../regress/regress0/sets/card-3sets.cvc.smt2 | 2 +- test/regress/regress0/sets/card.smt2 | 6 +- test/regress/regress0/sets/card3-ground.smt2 | 4 +- test/regress/regress0/sets/comp-qf-error.smt2 | 2 +- .../regress/regress0/sets/complement.cvc.smt2 | 2 +- .../regress0/sets/complement2.cvc.smt2 | 4 +- .../regress0/sets/complement3.cvc.smt2 | 10 +- .../regress/regress0/sets/cvc-sample.cvc.smt2 | 32 +- test/regress/regress0/sets/dt-simp-mem.smt2 | 4 +- test/regress/regress0/sets/emptyset.smt2 | 2 +- test/regress/regress0/sets/eqtest.smt2 | 8 +- test/regress/regress0/sets/error1.smt2 | 4 +- test/regress/regress0/sets/error2.smt2 | 2 +- test/regress/regress0/sets/insert.smt2 | 2 +- .../regress0/sets/int-real-univ-unsat.smt2 | 4 +- test/regress/regress0/sets/int-real-univ.smt2 | 4 +- .../jan24/deepmeas0.hs.fqout.cvc4.47.smt2 | 14 +- .../sets/jan24/deepmeas0.hs.fqout.small.smt2 | 6 +- .../ListConcat.hs.fqout.177minimized.smt2 | 4 +- .../jan27/ListConcat.hs.fqout.cvc4.177.smt2 | 14 +- ...lkingAboutSets.hs.fqout.3577minimized.smt2 | 6 +- .../UniqueZipper.hs.fqout.minimized10.smt2 | 10 +- .../UniqueZipper.hs.fqout.minimized1832.smt2 | 8 +- .../sets/mar2014/sharing-preregister.smt2 | 4 +- test/regress/regress0/sets/mar2014/small.smt2 | 6 +- .../regress0/sets/mar2014/smaller.smt2 | 4 +- test/regress/regress0/sets/nonvar-univ.smt2 | 6 +- test/regress/regress0/sets/pre-proc-univ.smt2 | 4 +- .../rec_copy_loop_check_heap_access_43_4.smt2 | 28 +- test/regress/regress0/sets/setel-eq.smt2 | 4 +- test/regress/regress0/sets/sets-deq-dd.smt2 | 2 +- test/regress/regress0/sets/sets-equal.smt2 | 6 +- test/regress/regress0/sets/sets-extr.smt2 | 2 +- test/regress/regress0/sets/sets-inter.smt2 | 6 +- test/regress/regress0/sets/sets-new.smt2 | 10 +- .../regress0/sets/sets-of-sets-subtypes.smt2 | 6 +- .../regress0/sets/sets-poly-int-real.smt2 | 12 +- .../regress0/sets/sets-poly-nonint.smt2 | 6 +- test/regress/regress0/sets/sets-sample.smt2 | 34 +- test/regress/regress0/sets/sets-sharing.smt2 | 4 +- test/regress/regress0/sets/sets-union.smt2 | 6 +- test/regress/regress0/sets/sharing-simp.smt2 | 6 +- test/regress/regress0/sets/union-1a-flip.smt2 | 4 +- test/regress/regress0/sets/union-1a.smt2 | 4 +- test/regress/regress0/sets/union-1b-flip.smt2 | 4 +- test/regress/regress0/sets/union-1b.smt2 | 4 +- test/regress/regress0/sets/union-2.smt2 | 6 +- test/regress/regress0/sets/univset-simp.smt2 | 14 +- test/regress/regress0/tptp/Axioms/BOO004-0.ax | 2 +- test/regress/regress0/tptp/Axioms/SYN000+0.ax | 2 +- test/regress/regress0/tptp/Axioms/SYN000-0.ax | 2 +- test/regress/regress0/tptp/BOO003-4.p | 2 +- test/regress/regress0/tptp/BOO027-1.p | 2 +- test/regress/regress0/tptp/KRS018+1.p | 2 +- test/regress/regress0/tptp/KRS063+1.p | 2 +- test/regress/regress0/tptp/MGT019+2.p | 2 +- test/regress/regress0/tptp/MGT031-1.p | 2 +- test/regress/regress0/tptp/MGT041-2.p | 2 +- test/regress/regress0/tptp/NLP114-1.p | 2 +- test/regress/regress0/tptp/SYN000-1.p | 2 +- test/regress/regress0/tptp/SYN075+1.p | 2 +- test/regress/regress0/tptp/SYN075-1.p | 2 +- test/regress/regress1/bug567.smt2 | 4 +- .../datatypes/non-simple-rec-set.smt2 | 2 +- test/regress/regress1/fmf/agree467.smt2 | 4 +- .../regress1/fmf/cons-sets-bounds.smt2 | 10 +- .../regress1/fmf/fmf-strange-bounds.smt2 | 4 +- .../regress1/fmf/ko-bound-set.cvc.smt2 | 4 +- .../fmf/memory_model-R_cpp-dd.cvc.smt2 | 8 +- test/regress/regress1/fmf/radu-quant-set.smt2 | 4 +- test/regress/regress1/ho/hoa0102.smt2 | 210 ++++---- test/regress/regress1/quantifiers/bug822.smt2 | 12 +- .../regress/regress1/quantifiers/bug_743.smt2 | 4 +- .../regress1/quantifiers/cdt-0208-to.smt2 | 140 ++--- .../quantifiers/inst-max-level-segf.smt2 | 10 +- .../set-choice-koikonomou.cvc.smt2 | 6 +- test/regress/regress1/quantifiers/set3.smt2 | 22 +- test/regress/regress1/quantifiers/set8.smt2 | 22 +- .../regress1/quantifiers/seu169+1.smt2 | 8 +- .../quantifiers/stream-x2014-09-18-unsat.smt2 | 32 +- .../regress1/rels/addr_book_1.cvc.smt2 | 18 +- .../regress1/rels/addr_book_1_1.cvc.smt2 | 18 +- test/regress/regress1/rels/bv1-unit.cvc.smt2 | 8 +- test/regress/regress1/rels/bv1-unitb.cvc.smt2 | 8 +- test/regress/regress1/rels/bv1.cvc.smt2 | 8 +- test/regress/regress1/rels/bv1p-sat.cvc.smt2 | 10 +- test/regress/regress1/rels/bv1p.cvc.smt2 | 10 +- test/regress/regress1/rels/bv2.cvc.smt2 | 8 +- .../regress1/rels/garbage_collect.cvc.smt2 | 26 +- test/regress/regress1/rels/iden_1_1.cvc.smt2 | 12 +- .../rels/join-eq-structure-and.cvc.smt2 | 8 +- .../regress1/rels/join-eq-structure.cvc.smt2 | 8 +- .../regress1/rels/joinImg_0_1.cvc.smt2 | 16 +- .../regress1/rels/joinImg_0_2.cvc.smt2 | 20 +- test/regress/regress1/rels/joinImg_1.cvc.smt2 | 4 +- .../regress1/rels/joinImg_1_1.cvc.smt2 | 8 +- test/regress/regress1/rels/joinImg_2.cvc.smt2 | 12 +- .../regress1/rels/joinImg_2_1.cvc.smt2 | 8 +- .../regress1/rels/prod-mod-eq.cvc.smt2 | 12 +- .../regress1/rels/prod-mod-eq2.cvc.smt2 | 12 +- .../regress1/rels/qgu-fuzz-relations-2.smt2 | 2 +- .../rels/qgu-fuzz-relations-3-upwards.smt2 | 6 +- .../regress1/rels/rel_complex_3.cvc.smt2 | 24 +- .../regress1/rels/rel_complex_4.cvc.smt2 | 28 +- .../regress1/rels/rel_complex_5.cvc.smt2 | 28 +- .../regress1/rels/rel_mix_0_1.cvc.smt2 | 10 +- .../regress1/rels/rel_pressure_0.cvc.smt2 | 406 +++++++-------- .../regress1/rels/rel_tc_10_1.cvc.smt2 | 10 +- test/regress/regress1/rels/rel_tc_4.cvc.smt2 | 12 +- .../regress/regress1/rels/rel_tc_4_1.cvc.smt2 | 4 +- .../regress/regress1/rels/rel_tc_5_1.cvc.smt2 | 4 +- test/regress/regress1/rels/rel_tc_6.cvc.smt2 | 4 +- .../regress/regress1/rels/rel_tc_9_1.cvc.smt2 | 26 +- test/regress/regress1/rels/rel_tp_2.cvc.smt2 | 6 +- .../regress1/rels/rel_tp_join_2_1.cvc.smt2 | 14 +- test/regress/regress1/rels/set-strat.cvc.smt2 | 14 +- test/regress/regress1/rels/strat.cvc.smt2 | 10 +- .../sets/ListElem.hs.fqout.cvc4.38.smt2 | 14 +- .../sets/ListElts.hs.fqout.cvc4.317.smt2 | 14 +- .../TalkingAboutSets.hs.fqout.cvc4.3577.smt2 | 14 +- .../UniqueZipper.hs.1030minimized.cvc4.smt2 | 14 +- .../UniqueZipper.hs.1030minimized2.cvc4.smt2 | 16 +- .../sets/UniqueZipper.hs.fqout.cvc4.10.smt2 | 14 +- .../sets/UniqueZipper.hs.fqout.cvc4.1832.smt2 | 14 +- .../regress1/sets/arjun-set-univ.cvc.smt2 | 6 +- test/regress/regress1/sets/card-3.smt2 | 10 +- test/regress/regress1/sets/card-4.smt2 | 22 +- test/regress/regress1/sets/card-5.smt2 | 22 +- test/regress/regress1/sets/card-6.smt2 | 12 +- test/regress/regress1/sets/card-7.smt2 | 42 +- .../regress1/sets/card-vc6-minimized.smt2 | 10 +- test/regress/regress1/sets/choose.cvc.smt2 | 6 +- test/regress/regress1/sets/choose1.smt2 | 8 +- test/regress/regress1/sets/choose2.smt2 | 2 +- test/regress/regress1/sets/choose3.smt2 | 4 +- test/regress/regress1/sets/choose4.smt2 | 8 +- .../regress/regress1/sets/comp-intersect.smt2 | 6 +- test/regress/regress1/sets/comp-odd.smt2 | 4 +- .../regress1/sets/comp-pos-member.smt2 | 8 +- test/regress/regress1/sets/comp-positive.smt2 | 4 +- .../sets/copy_check_heap_access_33_4.smt2 | 24 +- .../sets/deepmeas0.hs.fqout.cvc4.41.smt2 | 14 +- .../regress1/sets/finite-type/bug3663.smt2 | 2 +- .../sets/finite-type/sets-card-arrcolor.smt2 | 4 +- .../sets/finite-type/sets-card-arrunit.smt2 | 2 +- .../sets/finite-type/sets-card-bool-1.smt2 | 8 +- .../sets/finite-type/sets-card-bool-2.smt2 | 4 +- .../sets/finite-type/sets-card-bool-3.smt2 | 6 +- .../sets/finite-type/sets-card-bool-4.smt2 | 4 +- .../sets/finite-type/sets-card-bool-rec.smt2 | 6 +- .../sets/finite-type/sets-card-bv-1.smt2 | 4 +- .../sets/finite-type/sets-card-bv-2.smt2 | 12 +- .../sets/finite-type/sets-card-bv-3.smt2 | 16 +- .../sets/finite-type/sets-card-bv-4.smt2 | 16 +- .../sets/finite-type/sets-card-color-sat.smt2 | 8 +- .../sets/finite-type/sets-card-color.smt2 | 8 +- .../finite-type/sets-card-datatype-1.smt2 | 8 +- .../finite-type/sets-card-datatype-2.smt2 | 8 +- .../sets-card-neg-mem-union-1.smt2 | 26 +- .../sets-card-neg-mem-union-2.smt2 | 26 +- test/regress/regress1/sets/fuzz14418.smt2 | 32 +- test/regress/regress1/sets/fuzz15201.smt2 | 76 +-- test/regress/regress1/sets/fuzz31811.smt2 | 40 +- .../infinite-type/sets-card-array-int-1.smt2 | 10 +- .../infinite-type/sets-card-array-int-2.smt2 | 10 +- .../sets/infinite-type/sets-card-int-1.smt2 | 10 +- .../sets/infinite-type/sets-card-int-2.smt2 | 10 +- .../regress1/sets/insert_invariant_37_2.smt2 | 228 ++++---- test/regress/regress1/sets/is_singleton1.smt2 | 8 +- test/regress/regress1/sets/issue2568.smt2 | 2 +- test/regress/regress1/sets/issue2904.smt2 | 12 +- .../regress1/sets/issue4124-need-check.smt2 | 8 +- .../sets/issue4370-2-lemma-ee-iter.smt2 | 4 +- .../sets/issue4370-4-lemma-ee-iter.smt2 | 6 +- .../regress1/sets/issue4391-card-lasso.smt2 | 8 +- test/regress/regress1/sets/issue5271.smt2 | 4 +- test/regress/regress1/sets/issue5309.smt2 | 4 +- test/regress/regress1/sets/issue5342.smt2 | 4 +- .../sets/issue5342_difference_version.smt2 | 4 +- .../regress1/sets/issue5705-cg-subtyping.smt2 | 4 +- .../regress1/sets/issue5942-witness.smt2 | 2 +- .../sets/lemmabug-ListElts317minimized.smt2 | 24 +- .../regress1/sets/remove_check_free_31_6.smt2 | 86 ++-- test/regress/regress1/sets/set-comp-sat.smt2 | 6 +- .../regress1/sets/setofsets-disequal.smt2 | 82 +-- .../regress1/sets/sets-tuple-poly.cvc.smt2 | 4 +- test/regress/regress1/sets/sets-uc-wrong.smt2 | 4 +- test/regress/regress1/sets/sharingbug.smt2 | 6 +- .../regress1/sets/univ-set-uf-elim.smt2 | 14 +- .../strings/issue6184-unsat-core.smt2 | 4 +- test/regress/regress1/sygus/sets-pred-test.sy | 10 +- test/regress/regress1/sym/sym-setAB.smt2 | 4 +- test/regress/regress1/sym/sym1.smt2 | 4 +- test/regress/regress1/sym/sym3.smt2 | 2 +- test/regress/regress1/sym/sym5.smt2 | 10 +- test/regress/regress1/trim.cvc.smt2 | 16 +- test/regress/regress2/bug812.smt2 | 4 +- test/regress/regress2/ho/auth0068.smt2 | 486 +++++++++--------- test/regress/regress2/sygus/sets-fun-test.sy | 6 +- .../regress4/sets-card-neg-mem-union-2.smt2 | 28 +- test/unit/api/java/SolverTest.java | 6 +- test/unit/api/java/TermTest.java | 8 +- test/unit/api/solver_black.cpp | 4 +- test/unit/api/term_black.cpp | 10 +- .../theory/theory_bags_normal_form_white.cpp | 4 +- .../theory/theory_sets_type_rules_white.cpp | 12 +- 329 files changed, 3060 insertions(+), 2882 deletions(-) diff --git a/examples/api/cpp/sets.cpp b/examples/api/cpp/sets.cpp index 1f3a1683c..a4bc12ec8 100644 --- a/examples/api/cpp/sets.cpp +++ b/examples/api/cpp/sets.cpp @@ -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; diff --git a/examples/api/python/sets.py b/examples/api/python/sets.py index b41b2ad5a..bf487c617 100644 --- a/examples/api/python/sets.py +++ b/examples/api/python/sets.py @@ -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) diff --git a/examples/sets-translate/sets-translate-example-input.smt2 b/examples/sets-translate/sets-translate-example-input.smt2 index be230b113..1dfb50803 100644 --- a/examples/sets-translate/sets-translate-example-input.smt2 +++ b/examples/sets-translate/sets-translate-example-input.smt2 @@ -10,11 +10,11 @@ (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) diff --git a/examples/sets-translate/sets_translate.cpp b/examples/sets-translate/sets_translate.cpp index 661ab94b5..69fc07837 100644 --- a/examples/sets-translate/sets_translate.cpp +++ b/examples/sets-translate/sets_translate.cpp @@ -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 children = e.getChildren(); children.insert(children.begin(), setoperators[ make_pair(t, e.getKind()) ]); ret = em->mkExpr(kind::APPLY_UF, children); diff --git a/src/api/cpp/cvc5.cpp b/src/api/cpp/cvc5.cpp index f587bbfc0..9684c29c5 100644 --- a/src/api/cpp/cvc5.cpp +++ b/src/api/cpp/cvc5.cpp @@ -273,26 +273,27 @@ const static std::unordered_map 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::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::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& 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& 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); diff --git a/src/api/cpp/cvc5.h b/src/api/cpp/cvc5.h index b73c1ce27..1ecf8715b 100644 --- a/src/api/cpp/cvc5.h +++ b/src/api/cpp/cvc5.h @@ -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; diff --git a/src/api/cpp/cvc5_kind.h b/src/api/cpp/cvc5_kind.h index bece49098..57941aa5f 100644 --- a/src/api/cpp/cvc5_kind.h +++ b/src/api/cpp/cvc5_kind.h @@ -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& 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& 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& 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& 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& 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& 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& 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& 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& 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& 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& 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& 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. * diff --git a/src/api/parsekinds.py b/src/api/parsekinds.py index 0dcc7be68..14762c24c 100644 --- a/src/api/parsekinds.py +++ b/src/api/parsekinds.py @@ -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 ''' diff --git a/src/expr/node.h b/src/expr/node.h index 13885a0f2..048a05e46 100644 --- a/src/expr/node.h +++ b/src/expr/node.h @@ -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; } diff --git a/src/expr/node_manager.cpp b/src/expr/node_manager.cpp index b8e22c6f7..6f614e927 100644 --- a/src/expr/node_manager.cpp +++ b/src/expr/node_manager.cpp @@ -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; } diff --git a/src/parser/parser.cpp b/src/parser/parser.cpp index 9f34b5647..83b1f5025 100644 --- a/src/parser/parser.cpp +++ b/src/parser/parser.cpp @@ -531,7 +531,7 @@ api::Term Parser::mkHoApply(api::Term expr, const std::vector& 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); } diff --git a/src/parser/parser.h b/src/parser/parser.h index 19e5b8531..1d9eb97ae 100644 --- a/src/parser/parser.h +++ b/src/parser/parser.h @@ -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 diff --git a/src/parser/smt2/Smt2.g b/src/parser/smt2/Smt2.g index daf148100..e60494b7d 100644 --- a/src/parser/smt2/Smt2.g +++ b/src/parser/smt2/Smt2.g @@ -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'; diff --git a/src/parser/smt2/smt2.cpp b/src/parser/smt2/smt2.cpp index 2fd91e495..b86c564d0 100644 --- a/src/parser/smt2/smt2.cpp +++ b/src/parser/smt2/smt2.cpp @@ -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& 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) diff --git a/src/printer/smt2/smt2_printer.cpp b/src/printer/smt2/smt2_printer.cpp index e68570919..231390504 100644 --- a/src/printer/smt2/smt2_printer.cpp +++ b/src/printer/smt2/smt2_printer.cpp @@ -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().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"; diff --git a/src/proof/alethe/alethe_post_processor.cpp b/src/proof/alethe/alethe_post_processor.cpp index 4013a226c..b02f1cbdd 100644 --- a/src/proof/alethe/alethe_post_processor.cpp +++ b/src/proof/alethe/alethe_post_processor.cpp @@ -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; diff --git a/src/proof/lfsc/lfsc_node_converter.cpp b/src/proof/lfsc/lfsc_node_converter.cpp index b64506af5..7ec0b2bd5 100644 --- a/src/proof/lfsc/lfsc_node_converter.cpp +++ b/src/proof/lfsc/lfsc_node_converter.cpp @@ -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) { diff --git a/src/theory/bags/bags_rewriter.cpp b/src/theory/bags/bags_rewriter.cpp index 2170175b4..7f430ed63 100644 --- a/src/theory/bags/bags_rewriter.cpp +++ b/src/theory/bags/bags_rewriter.cpp @@ -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); diff --git a/src/theory/bags/normal_form.cpp b/src/theory/bags/normal_form.cpp index 69401b3fa..60d223a71 100644 --- a/src/theory/bags/normal_form.cpp +++ b/src/theory/bags/normal_form.cpp @@ -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"))) diff --git a/src/theory/bags/theory_bags_type_rules.cpp b/src/theory/bags/theory_bags_type_rules.cpp index 7f45b9b1a..089038267 100644 --- a/src/theory/bags/theory_bags_type_rules.cpp +++ b/src/theory/bags/theory_bags_type_rules.cpp @@ -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(); diff --git a/src/theory/quantifiers/ematching/trigger_term_info.cpp b/src/theory/quantifiers/ematching/trigger_term_info.cpp index f31ec088a..75a353dbe 100644 --- a/src/theory/quantifiers/ematching/trigger_term_info.cpp +++ b/src/theory/quantifiers/ematching/trigger_term_info.cpp @@ -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) diff --git a/src/theory/quantifiers/fmf/bounded_integers.cpp b/src/theory/quantifiers/fmf/bounded_integers.cpp index 8ef6155c2..869fbcd21 100644 --- a/src/theory/quantifiers/fmf/bounded_integers.cpp +++ b/src/theory/quantifiers/fmf/bounded_integers.cpp @@ -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 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]; diff --git a/src/theory/quantifiers/sygus/sygus_grammar_cons.cpp b/src/theory/quantifiers/sygus/sygus_grammar_cons.cpp index a9b5ed9c6..7d4434ddd 100644 --- a/src/theory/quantifiers/sygus/sygus_grammar_cons.cpp +++ b/src/theory/quantifiers/sygus/sygus_grammar_cons.cpp @@ -988,7 +988,7 @@ void CegGrammarConstructor::mkSygusDefaultGrammar( sdts[i].addConstructor(lambda, "singleton", cargsSingleton); // add for union, difference, intersection - std::vector bin_kinds = {UNION, INTERSECTION, SETMINUS}; + std::vector bin_kinds = {SET_UNION, SET_INTERSECTION, SET_MINUS}; std::vector cargsBinary; cargsBinary.push_back(unres_t); cargsBinary.push_back(unres_t); @@ -1454,8 +1454,8 @@ void CegGrammarConstructor::mkSygusDefaultGrammar( std::vector 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) diff --git a/src/theory/quantifiers/term_database.cpp b/src/theory/quantifiers/term_database.cpp index 573cab7bf..225fe0bb1 100644 --- a/src/theory/quantifiers/term_database.cpp +++ b/src/theory/quantifiers/term_database.cpp @@ -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(); diff --git a/src/theory/quantifiers/term_util.cpp b/src/theory/quantifiers/term_util.cpp index c9fced3be..de4c56552 100644 --- a/src/theory/quantifiers/term_util.cpp +++ b/src/theory/quantifiers/term_util.cpp @@ -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; } diff --git a/src/theory/sep/theory_sep.cpp b/src/theory/sep/theory_sep.cpp index ad41d8327..02a368f25 100644 --- a/src/theory/sep/theory_sep.cpp +++ b/src/theory/sep/theory_sep.cpp @@ -197,7 +197,7 @@ void TheorySep::postProcessModel( TheoryModel* m ){ }else{ for( unsigned j=0; jsecond].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 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& 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; imkNode( 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; jmkNode( 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 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 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::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; } diff --git a/src/theory/sets/cardinality_extension.cpp b/src/theory/sets/cardinality_extension.cpp index d2d7a636a..f65c41b53 100644 --- a/src/theory/sets/cardinality_extension.cpp +++ b/src/theory/sets/cardinality_extension.cpp @@ -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 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 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& 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) { diff --git a/src/theory/sets/cardinality_extension.h b/src/theory/sets/cardinality_extension.h index d3f9971d6..21d5e6e37 100644 --- a/src/theory/sets/cardinality_extension.h +++ b/src/theory/sets/cardinality_extension.h @@ -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 diff --git a/src/theory/sets/inference_manager.cpp b/src/theory/sets/inference_manager.cpp index 96705c029..de2acfa67 100644 --- a/src/theory/sets/inference_manager.cpp +++ b/src/theory/sets/inference_manager.cpp @@ -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 diff --git a/src/theory/sets/kinds b/src/theory/sets/kinds index 4bde524f7..f5ed7cd87 100644 --- a/src/theory/sets/kinds +++ b/src/theory/sets/kinds @@ -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" -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" +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 diff --git a/src/theory/sets/normal_form.h b/src/theory/sets/normal_form.h index 35d06a510..641afde95 100644 --- a/src/theory/sets/normal_form.h +++ b/src/theory/sets/normal_form.h @@ -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 getElementsFromNormalConstant(TNode n) { Assert(n.isConst()); std::set 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; } diff --git a/src/theory/sets/singleton_op.cpp b/src/theory/sets/singleton_op.cpp index 06d144f72..fb64b01cd 100644 --- a/src/theory/sets/singleton_op.cpp +++ b/src/theory/sets/singleton_op.cpp @@ -21,29 +21,29 @@ 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()(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(); } diff --git a/src/theory/sets/singleton_op.h b/src/theory/sets/singleton_op.h index 41dd7e51e..cde4709d9 100644 --- a/src/theory/sets/singleton_op.h +++ b/src/theory/sets/singleton_op.h @@ -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 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 diff --git a/src/theory/sets/solver_state.cpp b/src/theory/sets/solver_state.cpp index d9fb30735..023a8a6af 100644 --- a/src/theory/sets/solver_state.cpp +++ b/src/theory/sets/solver_state.cpp @@ -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]) { diff --git a/src/theory/sets/solver_state.h b/src/theory/sets/solver_state.h index ff9bc8bf9..725e21a14 100644 --- a/src/theory/sets/solver_state.h +++ b/src/theory/sets/solver_state.h @@ -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 (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 > 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 > d_members_index; - /** Term index for SINGLETON */ + /** Term index for SET_SINGLETON */ std::map 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 > > d_bop_index; /** A list of comprehension sets */ std::vector d_allCompSets; diff --git a/src/theory/sets/term_registry.cpp b/src/theory/sets/term_registry.cpp index f1fe1c6b2..41fe0b4c8 100644 --- a/src/theory/sets/term_registry.cpp +++ b/src/theory/sets/term_registry.cpp @@ -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); diff --git a/src/theory/sets/theory_sets.cpp b/src/theory/sets/theory_sets.cpp index 3cb6c853c..b2eb80f75 100644 --- a/src/theory/sets/theory_sets.cpp +++ b/src/theory/sets/theory_sets.cpp @@ -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& 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& 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()) diff --git a/src/theory/sets/theory_sets_private.cpp b/src/theory/sets/theory_sets_private.cpp index a87466fab..2032d3ba5 100644 --- a/src/theory/sets/theory_sets_private.cpp +++ b/src/theory/sets/theory_sets_private.cpp @@ -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 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 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& r1mem = d_state.getMembers(r1); - if (!r1mem.empty() || k == kind::UNION) + if (!r1mem.empty() || k == kind::SET_UNION) { for (const std::pair& it2 : it.second) { @@ -523,7 +523,7 @@ void TheorySetsPrivate::checkUpwardsClosure() // see if there are members in second argument const std::map& r2mem = d_state.getMembers(r2); const std::map& 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::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 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 > currentPairs; @@ -984,7 +984,7 @@ void TheorySetsPrivate::computeCareGraph() for (const std::pair >& 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& 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); } diff --git a/src/theory/sets/theory_sets_private.h b/src/theory/sets/theory_sets_private.h index 94ca86e61..f464d475b 100644 --- a/src/theory/sets/theory_sets_private.h +++ b/src/theory/sets/theory_sets_private.h @@ -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. */ diff --git a/src/theory/sets/theory_sets_rels.cpp b/src/theory/sets/theory_sets_rels.cpp index 57a70f80a..49f8f053a 100644 --- a/src/theory/sets/theory_sets_rels.cpp +++ b/src/theory/sets/theory_sets_rels.cpp @@ -82,39 +82,45 @@ void TheorySetsRels::check(Theory::Effort level) std::map >& kind_terms = d_terms_cache[rel_rep]; - if( kind_terms.find(kind::TRANSPOSE) != kind_terms.end() ) { - std::vector& tp_terms = kind_terms[TRANSPOSE]; + if (kind_terms.find(kind::RELATION_TRANSPOSE) != kind_terms.end()) + { + std::vector& 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& join_terms = kind_terms[JOIN]; + if (kind_terms.find(kind::RELATION_JOIN) != kind_terms.end()) + { + std::vector& 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& product_terms = kind_terms[PRODUCT]; + if (kind_terms.find(kind::RELATION_PRODUCT) != kind_terms.end()) + { + std::vector& 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& tc_terms = kind_terms[TCLOSURE]; + if (kind_terms.find(kind::RELATION_TCLOSURE) != kind_terms.end()) + { + std::vector& 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& join_image_terms = kind_terms[JOIN_IMAGE]; + if (kind_terms.find(kind::RELATION_JOIN_IMAGE) != kind_terms.end()) + { + std::vector& 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& iden_terms = kind_terms[IDEN]; + if (kind_terms.find(kind::RELATION_IDEN) != kind_terms.end()) + { + std::vector& 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::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 tuple_elements; tuple_elements.push_back(tn.getDType()[0].getConstructor()); std::vector 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); diff --git a/src/theory/sets/theory_sets_rels.h b/src/theory/sets/theory_sets_rels.h index a12a28fff..bf1464c7b 100644 --- a/src/theory/sets/theory_sets_rels.h +++ b/src/theory/sets/theory_sets_rels.h @@ -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 diff --git a/src/theory/sets/theory_sets_rewriter.cpp b/src/theory/sets/theory_sets_rewriter.cpp index 14b5c6d52..181a659c5 100644 --- a/src/theory/sets/theory_sets_rewriter.cpp +++ b/src/theory/sets/theory_sets_rewriter.cpp @@ -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; imkNode(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 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 left = NormalForm::getElementsFromNormalConstant(node[0]); std::set right = NormalForm::getElementsFromNormalConstant(node[1]); std::set 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 left = NormalForm::getElementsFromNormalConstant(node[0]); std::set right = NormalForm::getElementsFromNormalConstant(node[1]); std::set 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 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 new_tuple_set; std::set tuple_set = NormalForm::getElementsFromNormalConstant(node[0]); std::set::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 new_tuple_set; std::set 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 new_tuple_set; std::set 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 rel_mems = NormalForm::getElementsFromNormalConstant(node[0]); std::set 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 iden_rel_mems; std::set rel_mems = NormalForm::getElementsFromNormalConstant(node[0]); std::set::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().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 has_checked; std::set join_img_mems; std::set 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 diff --git a/src/theory/sets/theory_sets_type_rules.cpp b/src/theory/sets/theory_sets_type_rules.cpp index 91c592f18..0793f011b 100644 --- a/src/theory/sets/theory_sets_type_rules.cpp +++ b/src/theory/sets/theory_sets_type_rules.cpp @@ -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(); + SetSingletonOp op = n.getOperator().getConst(); 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(); 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 firstTupleTypes = firstRelType[0].getTupleTypes(); std::vector 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) { diff --git a/src/theory/theory_model.h b/src/theory/theory_model.h index 4a6492aaa..deffb595c 100644 --- a/src/theory/theory_model.h +++ b/src/theory/theory_model.h @@ -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 ( t1...tn ) where k is a kind of this category, we diff --git a/test/python/unit/api/test_term.py b/test/python/unit/api/test_term.py index e65299676..34a79d597 100644 --- a/test/python/unit/api/test_term.py +++ b/test/python/unit/api/test_term.py @@ -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() diff --git a/test/regress/regress0/bug586.cvc.smt2 b/test/regress/regress0/bug586.cvc.smt2 index be5feea1c..88375e3e5 100644 --- a/test/regress/regress0/bug586.cvc.smt2 +++ b/test/regress/regress0/bug586.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/bug605.cvc.smt2 b/test/regress/regress0/bug605.cvc.smt2 index eb8b92454..920a53158 100644 --- a/test/regress/regress0/bug605.cvc.smt2 +++ b/test/regress/regress0/bug605.cvc.smt2 @@ -13,10 +13,10 @@ (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) diff --git a/test/regress/regress0/cores/issue4971-1.smt2 b/test/regress/regress0/cores/issue4971-1.smt2 index 2ac70735c..011b7432e 100644 --- a/test/regress/regress0/cores/issue4971-1.smt2 +++ b/test/regress/regress0/cores/issue4971-1.smt2 @@ -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 diff --git a/test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2 b/test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2 index bbc25da68..c4e4b76f6 100644 --- a/test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2 +++ b/test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2 @@ -63,11 +63,11 @@ (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)))) diff --git a/test/regress/regress0/datatypes/dt-2.6.smt2 b/test/regress/regress0/datatypes/dt-2.6.smt2 index 07dc0169e..07f01a1f5 100644 --- a/test/regress/regress0/datatypes/dt-2.6.smt2 +++ b/test/regress/regress0/datatypes/dt-2.6.smt2 @@ -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) diff --git a/test/regress/regress0/datatypes/dt-match-pat-param-2.6.smt2 b/test/regress/regress0/datatypes/dt-match-pat-param-2.6.smt2 index 430b22c59..2dba04bb1 100644 --- a/test/regress/regress0/datatypes/dt-match-pat-param-2.6.smt2 +++ b/test/regress/regress0/datatypes/dt-match-pat-param-2.6.smt2 @@ -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) ) ( diff --git a/test/regress/regress0/datatypes/dt-param-2.6.smt2 b/test/regress/regress0/datatypes/dt-param-2.6.smt2 index f6d1cd58d..010b55feb 100644 --- a/test/regress/regress0/datatypes/dt-param-2.6.smt2 +++ b/test/regress/regress0/datatypes/dt-param-2.6.smt2 @@ -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))) diff --git a/test/regress/regress0/datatypes/dt-sel-2.6.smt2 b/test/regress/regress0/datatypes/dt-sel-2.6.smt2 index ae290a5ba..0fdc05471 100644 --- a/test/regress/regress0/datatypes/dt-sel-2.6.smt2 +++ b/test/regress/regress0/datatypes/dt-sel-2.6.smt2 @@ -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) diff --git a/test/regress/regress0/datatypes/issue5280-no-nrec.smt2 b/test/regress/regress0/datatypes/issue5280-no-nrec.smt2 index f80a6796a..283fcdc26 100644 --- a/test/regress/regress0/datatypes/issue5280-no-nrec.smt2 +++ b/test/regress/regress0/datatypes/issue5280-no-nrec.smt2 @@ -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) diff --git a/test/regress/regress0/fmf/bounded_sets.smt2 b/test/regress/regress0/fmf/bounded_sets.smt2 index b06c3636f..363512fa1 100644 --- a/test/regress/regress0/fmf/bounded_sets.smt2 +++ b/test/regress/regress0/fmf/bounded_sets.smt2 @@ -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) diff --git a/test/regress/regress0/fmf/fmf-strange-bounds-2.smt2 b/test/regress/regress0/fmf/fmf-strange-bounds-2.smt2 index 1e289d94f..e110c4e46 100644 --- a/test/regress/regress0/fmf/fmf-strange-bounds-2.smt2 +++ b/test/regress/regress0/fmf/fmf-strange-bounds-2.smt2 @@ -10,12 +10,12 @@ (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 diff --git a/test/regress/regress0/fmf/quant_real_univ.cvc.smt2 b/test/regress/regress0/fmf/quant_real_univ.cvc.smt2 index 68fee3f21..d1c93a45b 100644 --- a/test/regress/regress0/fmf/quant_real_univ.cvc.smt2 +++ b/test/regress/regress0/fmf/quant_real_univ.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/ho/fta0144-alpha-eq.smt2 b/test/regress/regress0/ho/fta0144-alpha-eq.smt2 index 747bfd48e..c3b0e7387 100644 --- a/test/regress/regress0/ho/fta0144-alpha-eq.smt2 +++ b/test/regress/regress0/ho/fta0144-alpha-eq.smt2 @@ -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$) diff --git a/test/regress/regress0/parser/declarefun-emptyset-uf.smt2 b/test/regress/regress0/parser/declarefun-emptyset-uf.smt2 index a6e514407..8f004b8f3 100644 --- a/test/regress/regress0/parser/declarefun-emptyset-uf.smt2 +++ b/test/regress/regress0/parser/declarefun-emptyset-uf.smt2 @@ -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) diff --git a/test/regress/regress0/rels/addr_book_0.cvc.smt2 b/test/regress/regress0/rels/addr_book_0.cvc.smt2 index 00fc33d56..70488b4eb 100644 --- a/test/regress/regress0/rels/addr_book_0.cvc.smt2 +++ b/test/regress/regress0/rels/addr_book_0.cvc.smt2 @@ -14,28 +14,28 @@ (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) diff --git a/test/regress/regress0/rels/atom_univ2.cvc.smt2 b/test/regress/regress0/rels/atom_univ2.cvc.smt2 index ad7d5ec4b..11799ba79 100644 --- a/test/regress/regress0/rels/atom_univ2.cvc.smt2 +++ b/test/regress/regress0/rels/atom_univ2.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/card_transpose.cvc.smt2 b/test/regress/regress0/rels/card_transpose.cvc.smt2 index 8356eca41..6db1e0e47 100644 --- a/test/regress/regress0/rels/card_transpose.cvc.smt2 +++ b/test/regress/regress0/rels/card_transpose.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/iden_0.cvc.smt2 b/test/regress/regress0/rels/iden_0.cvc.smt2 index d2d091e60..1cdeffbff 100644 --- a/test/regress/regress0/rels/iden_0.cvc.smt2 +++ b/test/regress/regress0/rels/iden_0.cvc.smt2 @@ -14,12 +14,12 @@ (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) diff --git a/test/regress/regress0/rels/iden_1.cvc.smt2 b/test/regress/regress0/rels/iden_1.cvc.smt2 index c2de24558..64efc4aef 100644 --- a/test/regress/regress0/rels/iden_1.cvc.smt2 +++ b/test/regress/regress0/rels/iden_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/join-eq-u-sat.cvc.smt2 b/test/regress/regress0/rels/join-eq-u-sat.cvc.smt2 index 37af1b418..9dd334b5e 100644 --- a/test/regress/regress0/rels/join-eq-u-sat.cvc.smt2 +++ b/test/regress/regress0/rels/join-eq-u-sat.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/join-eq-u.cvc.smt2 b/test/regress/regress0/rels/join-eq-u.cvc.smt2 index 92514a3be..652504a1a 100644 --- a/test/regress/regress0/rels/join-eq-u.cvc.smt2 +++ b/test/regress/regress0/rels/join-eq-u.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/joinImg_0.cvc.smt2 b/test/regress/regress0/rels/joinImg_0.cvc.smt2 index 76a13b645..85d9cac6f 100644 --- a/test/regress/regress0/rels/joinImg_0.cvc.smt2 +++ b/test/regress/regress0/rels/joinImg_0.cvc.smt2 @@ -15,12 +15,12 @@ (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) diff --git a/test/regress/regress0/rels/oneLoc_no_quant-int_0_1.cvc.smt2 b/test/regress/regress0/rels/oneLoc_no_quant-int_0_1.cvc.smt2 index c04aa7985..ee500f8ed 100644 --- a/test/regress/regress0/rels/oneLoc_no_quant-int_0_1.cvc.smt2 +++ b/test/regress/regress0/rels/oneLoc_no_quant-int_0_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/qgu-fuzz-relations-1-dd.smt2 b/test/regress/regress0/rels/qgu-fuzz-relations-1-dd.smt2 index 52ee0b1c0..0e9a61922 100644 --- a/test/regress/regress0/rels/qgu-fuzz-relations-1-dd.smt2 +++ b/test/regress/regress0/rels/qgu-fuzz-relations-1-dd.smt2 @@ -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) diff --git a/test/regress/regress0/rels/qgu-fuzz-relations-1.smt2 b/test/regress/regress0/rels/qgu-fuzz-relations-1.smt2 index b489ce65b..6804a4df8 100644 --- a/test/regress/regress0/rels/qgu-fuzz-relations-1.smt2 +++ b/test/regress/regress0/rels/qgu-fuzz-relations-1.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_1tup_0.cvc.smt2 b/test/regress/regress0/rels/rel_1tup_0.cvc.smt2 index 4210a5486..5a320b1d0 100644 --- a/test/regress/regress0/rels/rel_1tup_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_1tup_0.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_complex_0.cvc.smt2 b/test/regress/regress0/rels/rel_complex_0.cvc.smt2 index 2f4aea539..a72a26b9b 100644 --- a/test/regress/regress0/rels/rel_complex_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_complex_0.cvc.smt2 @@ -10,14 +10,14 @@ (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) diff --git a/test/regress/regress0/rels/rel_complex_1.cvc.smt2 b/test/regress/regress0/rels/rel_complex_1.cvc.smt2 index e8ccfb070..389260e17 100644 --- a/test/regress/regress0/rels/rel_complex_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_complex_1.cvc.smt2 @@ -11,17 +11,17 @@ (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) diff --git a/test/regress/regress0/rels/rel_conflict_0.cvc.smt2 b/test/regress/regress0/rels/rel_conflict_0.cvc.smt2 index e074778c5..4b7fede6c 100644 --- a/test/regress/regress0/rels/rel_conflict_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_conflict_0.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_join_0.cvc.smt2 b/test/regress/regress0/rels/rel_join_0.cvc.smt2 index 3c36d36e8..018b83e27 100644 --- a/test/regress/regress0/rels/rel_join_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_0.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_join_0_1.cvc.smt2 b/test/regress/regress0/rels/rel_join_0_1.cvc.smt2 index 6af8429d3..4489b1a16 100644 --- a/test/regress/regress0/rels/rel_join_0_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_0_1.cvc.smt2 @@ -13,10 +13,10 @@ (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) diff --git a/test/regress/regress0/rels/rel_join_1.cvc.smt2 b/test/regress/regress0/rels/rel_join_1.cvc.smt2 index 88f8c73f3..638964931 100644 --- a/test/regress/regress0/rels/rel_join_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_1.cvc.smt2 @@ -13,13 +13,13 @@ (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) diff --git a/test/regress/regress0/rels/rel_join_1_1.cvc.smt2 b/test/regress/regress0/rels/rel_join_1_1.cvc.smt2 index e1556149c..357f37922 100644 --- a/test/regress/regress0/rels/rel_join_1_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_1_1.cvc.smt2 @@ -13,13 +13,13 @@ (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) diff --git a/test/regress/regress0/rels/rel_join_2.cvc.smt2 b/test/regress/regress0/rels/rel_join_2.cvc.smt2 index 5c8f0ea91..3359f2f62 100644 --- a/test/regress/regress0/rels/rel_join_2.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_2.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_join_2_1.cvc.smt2 b/test/regress/regress0/rels/rel_join_2_1.cvc.smt2 index 82433cc1b..5c1f114a5 100644 --- a/test/regress/regress0/rels/rel_join_2_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_2_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_join_3.cvc.smt2 b/test/regress/regress0/rels/rel_join_3.cvc.smt2 index 4a3358526..6459b9f03 100644 --- a/test/regress/regress0/rels/rel_join_3.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_3.cvc.smt2 @@ -13,14 +13,14 @@ (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) diff --git a/test/regress/regress0/rels/rel_join_3_1.cvc.smt2 b/test/regress/regress0/rels/rel_join_3_1.cvc.smt2 index 7b66ab443..1fb714112 100644 --- a/test/regress/regress0/rels/rel_join_3_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_3_1.cvc.smt2 @@ -13,14 +13,14 @@ (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) diff --git a/test/regress/regress0/rels/rel_join_4.cvc.smt2 b/test/regress/regress0/rels/rel_join_4.cvc.smt2 index bc4f16513..fc9fad09b 100644 --- a/test/regress/regress0/rels/rel_join_4.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_4.cvc.smt2 @@ -15,14 +15,14 @@ (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) diff --git a/test/regress/regress0/rels/rel_join_5.cvc.smt2 b/test/regress/regress0/rels/rel_join_5.cvc.smt2 index 227395fe6..cd256a476 100644 --- a/test/regress/regress0/rels/rel_join_5.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_5.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_join_6.cvc.smt2 b/test/regress/regress0/rels/rel_join_6.cvc.smt2 index 547430c19..81ab335aa 100644 --- a/test/regress/regress0/rels/rel_join_6.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_6.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_join_7.cvc.smt2 b/test/regress/regress0/rels/rel_join_7.cvc.smt2 index 3956af748..a8b1fd3c0 100644 --- a/test/regress/regress0/rels/rel_join_7.cvc.smt2 +++ b/test/regress/regress0/rels/rel_join_7.cvc.smt2 @@ -14,10 +14,10 @@ (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) diff --git a/test/regress/regress0/rels/rel_product_0.cvc.smt2 b/test/regress/regress0/rels/rel_product_0.cvc.smt2 index 890c6f5d6..cdf337276 100644 --- a/test/regress/regress0/rels/rel_product_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_product_0.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_product_0_1.cvc.smt2 b/test/regress/regress0/rels/rel_product_0_1.cvc.smt2 index 1958036d2..a0469b3e9 100644 --- a/test/regress/regress0/rels/rel_product_0_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_product_0_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_product_1.cvc.smt2 b/test/regress/regress0/rels/rel_product_1.cvc.smt2 index 6711cfd6f..544068b50 100644 --- a/test/regress/regress0/rels/rel_product_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_product_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_product_1_1.cvc.smt2 b/test/regress/regress0/rels/rel_product_1_1.cvc.smt2 index 5d8c2dbf2..a3fb21eed 100644 --- a/test/regress/regress0/rels/rel_product_1_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_product_1_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_symbolic_1.cvc.smt2 b/test/regress/regress0/rels/rel_symbolic_1.cvc.smt2 index 0c8188f1f..178208ff7 100644 --- a/test/regress/regress0/rels/rel_symbolic_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_symbolic_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_symbolic_1_1.cvc.smt2 b/test/regress/regress0/rels/rel_symbolic_1_1.cvc.smt2 index 2e10e76ad..7afe4e4a9 100644 --- a/test/regress/regress0/rels/rel_symbolic_1_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_symbolic_1_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_symbolic_2_1.cvc.smt2 b/test/regress/regress0/rels/rel_symbolic_2_1.cvc.smt2 index 2615112c2..665513498 100644 --- a/test/regress/regress0/rels/rel_symbolic_2_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_symbolic_2_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_symbolic_3_1.cvc.smt2 b/test/regress/regress0/rels/rel_symbolic_3_1.cvc.smt2 index c170fd7a0..183aff148 100644 --- a/test/regress/regress0/rels/rel_symbolic_3_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_symbolic_3_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tc_11.cvc.smt2 b/test/regress/regress0/rels/rel_tc_11.cvc.smt2 index 5398cf388..8a2dc2749 100644 --- a/test/regress/regress0/rels/rel_tc_11.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tc_11.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tc_2_1.cvc.smt2 b/test/regress/regress0/rels/rel_tc_2_1.cvc.smt2 index 07c60c562..7940e9898 100644 --- a/test/regress/regress0/rels/rel_tc_2_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tc_2_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tc_3.cvc.smt2 b/test/regress/regress0/rels/rel_tc_3.cvc.smt2 index 9af4c2490..5de2d82d2 100644 --- a/test/regress/regress0/rels/rel_tc_3.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tc_3.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tc_3_1.cvc.smt2 b/test/regress/regress0/rels/rel_tc_3_1.cvc.smt2 index 4041735f9..df9764a5c 100644 --- a/test/regress/regress0/rels/rel_tc_3_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tc_3_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tc_7.cvc.smt2 b/test/regress/regress0/rels/rel_tc_7.cvc.smt2 index b7200a9ef..620f8d3d0 100644 --- a/test/regress/regress0/rels/rel_tc_7.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tc_7.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tc_8.cvc.smt2 b/test/regress/regress0/rels/rel_tc_8.cvc.smt2 index 0485a06e9..5e359b538 100644 --- a/test/regress/regress0/rels/rel_tc_8.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tc_8.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tp_3_1.cvc.smt2 b/test/regress/regress0/rels/rel_tp_3_1.cvc.smt2 index 4e7a33e04..9f2dd1190 100644 --- a/test/regress/regress0/rels/rel_tp_3_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tp_3_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tp_join_0.cvc.smt2 b/test/regress/regress0/rels/rel_tp_join_0.cvc.smt2 index 05761030c..aed2badf7 100644 --- a/test/regress/regress0/rels/rel_tp_join_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tp_join_0.cvc.smt2 @@ -15,14 +15,14 @@ (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) diff --git a/test/regress/regress0/rels/rel_tp_join_1.cvc.smt2 b/test/regress/regress0/rels/rel_tp_join_1.cvc.smt2 index f1faefaeb..213d75bdc 100644 --- a/test/regress/regress0/rels/rel_tp_join_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tp_join_1.cvc.smt2 @@ -10,17 +10,17 @@ (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) diff --git a/test/regress/regress0/rels/rel_tp_join_2.cvc.smt2 b/test/regress/regress0/rels/rel_tp_join_2.cvc.smt2 index 0f3d124ae..b66f1c6ed 100644 --- a/test/regress/regress0/rels/rel_tp_join_2.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tp_join_2.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tp_join_3.cvc.smt2 b/test/regress/regress0/rels/rel_tp_join_3.cvc.smt2 index 1443c9ca3..4ebd54b90 100644 --- a/test/regress/regress0/rels/rel_tp_join_3.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tp_join_3.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tp_join_eq_0.cvc.smt2 b/test/regress/regress0/rels/rel_tp_join_eq_0.cvc.smt2 index 1dcfc0eb6..e67f5d59b 100644 --- a/test/regress/regress0/rels/rel_tp_join_eq_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tp_join_eq_0.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tp_join_int_0.cvc.smt2 b/test/regress/regress0/rels/rel_tp_join_int_0.cvc.smt2 index 82f6a0238..7806c48ba 100644 --- a/test/regress/regress0/rels/rel_tp_join_int_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tp_join_int_0.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tp_join_pro_0.cvc.smt2 b/test/regress/regress0/rels/rel_tp_join_pro_0.cvc.smt2 index d7d89d3a4..d9120c398 100644 --- a/test/regress/regress0/rels/rel_tp_join_pro_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tp_join_pro_0.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_tp_join_var_0.cvc.smt2 b/test/regress/regress0/rels/rel_tp_join_var_0.cvc.smt2 index 80b359e8b..c4cf0b43d 100644 --- a/test/regress/regress0/rels/rel_tp_join_var_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_tp_join_var_0.cvc.smt2 @@ -11,13 +11,13 @@ (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) diff --git a/test/regress/regress0/rels/rel_transpose_0.cvc.smt2 b/test/regress/regress0/rels/rel_transpose_0.cvc.smt2 index 280f78ea2..3cce80a4b 100644 --- a/test/regress/regress0/rels/rel_transpose_0.cvc.smt2 +++ b/test/regress/regress0/rels/rel_transpose_0.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_transpose_1.cvc.smt2 b/test/regress/regress0/rels/rel_transpose_1.cvc.smt2 index fb7070e82..728b2b23c 100644 --- a/test/regress/regress0/rels/rel_transpose_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_transpose_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_transpose_1_1.cvc.smt2 b/test/regress/regress0/rels/rel_transpose_1_1.cvc.smt2 index 0d9f6d028..4177d70e4 100644 --- a/test/regress/regress0/rels/rel_transpose_1_1.cvc.smt2 +++ b/test/regress/regress0/rels/rel_transpose_1_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_transpose_3.cvc.smt2 b/test/regress/regress0/rels/rel_transpose_3.cvc.smt2 index ea737919e..24f1ca24c 100644 --- a/test/regress/regress0/rels/rel_transpose_3.cvc.smt2 +++ b/test/regress/regress0/rels/rel_transpose_3.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_transpose_4.cvc.smt2 b/test/regress/regress0/rels/rel_transpose_4.cvc.smt2 index 5ba3cc2c6..4013806de 100644 --- a/test/regress/regress0/rels/rel_transpose_4.cvc.smt2 +++ b/test/regress/regress0/rels/rel_transpose_4.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_transpose_5.cvc.smt2 b/test/regress/regress0/rels/rel_transpose_5.cvc.smt2 index 8a58ca763..fbb1d265c 100644 --- a/test/regress/regress0/rels/rel_transpose_5.cvc.smt2 +++ b/test/regress/regress0/rels/rel_transpose_5.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_transpose_6.cvc.smt2 b/test/regress/regress0/rels/rel_transpose_6.cvc.smt2 index 1dc932a81..5924efd37 100644 --- a/test/regress/regress0/rels/rel_transpose_6.cvc.smt2 +++ b/test/regress/regress0/rels/rel_transpose_6.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/rel_transpose_7.cvc.smt2 b/test/regress/regress0/rels/rel_transpose_7.cvc.smt2 index 7debeaa87..a4e0c8a76 100644 --- a/test/regress/regress0/rels/rel_transpose_7.cvc.smt2 +++ b/test/regress/regress0/rels/rel_transpose_7.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/rels/relations-ops.smt2 b/test/regress/regress0/rels/relations-ops.smt2 index e68eb49bb..3e6801102 100644 --- a/test/regress/regress0/rels/relations-ops.smt2 +++ b/test/regress/regress0/rels/relations-ops.smt2 @@ -11,13 +11,13 @@ (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) diff --git a/test/regress/regress0/rels/rels-sharing-simp.cvc.smt2 b/test/regress/regress0/rels/rels-sharing-simp.cvc.smt2 index 2ba92270a..186374897 100644 --- a/test/regress/regress0/rels/rels-sharing-simp.cvc.smt2 +++ b/test/regress/regress0/rels/rels-sharing-simp.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/sets/abt-min.smt2 b/test/regress/regress0/sets/abt-min.smt2 index 3bf1a9b6a..ceb97a781 100644 --- a/test/regress/regress0/sets/abt-min.smt2 +++ b/test/regress/regress0/sets/abt-min.smt2 @@ -12,11 +12,11 @@ (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) diff --git a/test/regress/regress0/sets/abt-te-exh.smt2 b/test/regress/regress0/sets/abt-te-exh.smt2 index f87429fc2..c4c92aa50 100644 --- a/test/regress/regress0/sets/abt-te-exh.smt2 +++ b/test/regress/regress0/sets/abt-te-exh.smt2 @@ -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) diff --git a/test/regress/regress0/sets/abt-te-exh2.smt2 b/test/regress/regress0/sets/abt-te-exh2.smt2 index 9ff80e14c..ebd22b83f 100644 --- a/test/regress/regress0/sets/abt-te-exh2.smt2 +++ b/test/regress/regress0/sets/abt-te-exh2.smt2 @@ -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))) ) ) ) diff --git a/test/regress/regress0/sets/card-2.smt2 b/test/regress/regress0/sets/card-2.smt2 index bc460fb4a..1bdfbb5ce 100644 --- a/test/regress/regress0/sets/card-2.smt2 +++ b/test/regress/regress0/sets/card-2.smt2 @@ -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) diff --git a/test/regress/regress0/sets/card-3sets.cvc.smt2 b/test/regress/regress0/sets/card-3sets.cvc.smt2 index 6c4bdd8ca..9f1a6552a 100644 --- a/test/regress/regress0/sets/card-3sets.cvc.smt2 +++ b/test/regress/regress0/sets/card-3sets.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/sets/card.smt2 b/test/regress/regress0/sets/card.smt2 index d42bf6f55..4c0fdbb56 100644 --- a/test/regress/regress0/sets/card.smt2 +++ b/test/regress/regress0/sets/card.smt2 @@ -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) diff --git a/test/regress/regress0/sets/card3-ground.smt2 b/test/regress/regress0/sets/card3-ground.smt2 index 7b42b8a8a..b6c66c0dd 100644 --- a/test/regress/regress0/sets/card3-ground.smt2 +++ b/test/regress/regress0/sets/card3-ground.smt2 @@ -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) diff --git a/test/regress/regress0/sets/comp-qf-error.smt2 b/test/regress/regress0/sets/comp-qf-error.smt2 index 81e4d7411..ae9052dd4 100644 --- a/test/regress/regress0/sets/comp-qf-error.smt2 +++ b/test/regress/regress0/sets/comp-qf-error.smt2 @@ -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) diff --git a/test/regress/regress0/sets/complement.cvc.smt2 b/test/regress/regress0/sets/complement.cvc.smt2 index e86dcf107..e0a5c19f0 100644 --- a/test/regress/regress0/sets/complement.cvc.smt2 +++ b/test/regress/regress0/sets/complement.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/sets/complement2.cvc.smt2 b/test/regress/regress0/sets/complement2.cvc.smt2 index 582156067..ecf8080db 100644 --- a/test/regress/regress0/sets/complement2.cvc.smt2 +++ b/test/regress/regress0/sets/complement2.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/sets/complement3.cvc.smt2 b/test/regress/regress0/sets/complement3.cvc.smt2 index b81843871..20cfb36f8 100644 --- a/test/regress/regress0/sets/complement3.cvc.smt2 +++ b/test/regress/regress0/sets/complement3.cvc.smt2 @@ -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) diff --git a/test/regress/regress0/sets/cvc-sample.cvc.smt2 b/test/regress/regress0/sets/cvc-sample.cvc.smt2 index e0ea07a78..9ee199b43 100644 --- a/test/regress/regress0/sets/cvc-sample.cvc.smt2 +++ b/test/regress/regress0/sets/cvc-sample.cvc.smt2 @@ -18,14 +18,14 @@ (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)))) )) diff --git a/test/regress/regress0/sets/dt-simp-mem.smt2 b/test/regress/regress0/sets/dt-simp-mem.smt2 index 47bc7aa58..c7b2a3ee4 100644 --- a/test/regress/regress0/sets/dt-simp-mem.smt2 +++ b/test/regress/regress0/sets/dt-simp-mem.smt2 @@ -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) diff --git a/test/regress/regress0/sets/emptyset.smt2 b/test/regress/regress0/sets/emptyset.smt2 index 7296fcc28..0b5b561cd 100644 --- a/test/regress/regress0/sets/emptyset.smt2 +++ b/test/regress/regress0/sets/emptyset.smt2 @@ -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) diff --git a/test/regress/regress0/sets/eqtest.smt2 b/test/regress/regress0/sets/eqtest.smt2 index 06f86ae3c..0ecd32bf8 100644 --- a/test/regress/regress0/sets/eqtest.smt2 +++ b/test/regress/regress0/sets/eqtest.smt2 @@ -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) diff --git a/test/regress/regress0/sets/error1.smt2 b/test/regress/regress0/sets/error1.smt2 index bf1822305..193d6d1cf 100644 --- a/test/regress/regress0/sets/error1.smt2 +++ b/test/regress/regress0/sets/error1.smt2 @@ -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) diff --git a/test/regress/regress0/sets/error2.smt2 b/test/regress/regress0/sets/error2.smt2 index 7b8f78218..d41e2b3b8 100644 --- a/test/regress/regress0/sets/error2.smt2 +++ b/test/regress/regress0/sets/error2.smt2 @@ -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) diff --git a/test/regress/regress0/sets/insert.smt2 b/test/regress/regress0/sets/insert.smt2 index b4936a32b..0e5f815f6 100644 --- a/test/regress/regress0/sets/insert.smt2 +++ b/test/regress/regress0/sets/insert.smt2 @@ -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) diff --git a/test/regress/regress0/sets/int-real-univ-unsat.smt2 b/test/regress/regress0/sets/int-real-univ-unsat.smt2 index 19b5850fa..3267dcccf 100644 --- a/test/regress/regress0/sets/int-real-univ-unsat.smt2 +++ b/test/regress/regress0/sets/int-real-univ-unsat.smt2 @@ -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))) diff --git a/test/regress/regress0/sets/int-real-univ.smt2 b/test/regress/regress0/sets/int-real-univ.smt2 index e7d79bbf6..78bf88be9 100644 --- a/test/regress/regress0/sets/int-real-univ.smt2 +++ b/test/regress/regress0/sets/int-real-univ.smt2 @@ -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))) diff --git a/test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.cvc4.47.smt2 b/test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.cvc4.47.smt2 index 448022a2e..7e2f627ae 100644 --- a/test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.cvc4.47.smt2 +++ b/test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.cvc4.47.smt2 @@ -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)) diff --git a/test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.small.smt2 b/test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.small.smt2 index a7c2bec8d..8fbed5572 100644 --- a/test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.small.smt2 +++ b/test/regress/regress0/sets/jan24/deepmeas0.hs.fqout.small.smt2 @@ -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) diff --git a/test/regress/regress0/sets/jan27/ListConcat.hs.fqout.177minimized.smt2 b/test/regress/regress0/sets/jan27/ListConcat.hs.fqout.177minimized.smt2 index ff83b0fb5..b93a379ac 100644 --- a/test/regress/regress0/sets/jan27/ListConcat.hs.fqout.177minimized.smt2 +++ b/test/regress/regress0/sets/jan27/ListConcat.hs.fqout.177minimized.smt2 @@ -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? diff --git a/test/regress/regress0/sets/jan27/ListConcat.hs.fqout.cvc4.177.smt2 b/test/regress/regress0/sets/jan27/ListConcat.hs.fqout.cvc4.177.smt2 index 90d3a6372..f6fd4bd53 100644 --- a/test/regress/regress0/sets/jan27/ListConcat.hs.fqout.cvc4.177.smt2 +++ b/test/regress/regress0/sets/jan27/ListConcat.hs.fqout.cvc4.177.smt2 @@ -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) diff --git a/test/regress/regress0/sets/jan28/TalkingAboutSets.hs.fqout.3577minimized.smt2 b/test/regress/regress0/sets/jan28/TalkingAboutSets.hs.fqout.3577minimized.smt2 index b20fb4f3d..882c67091 100644 --- a/test/regress/regress0/sets/jan28/TalkingAboutSets.hs.fqout.3577minimized.smt2 +++ b/test/regress/regress0/sets/jan28/TalkingAboutSets.hs.fqout.3577minimized.smt2 @@ -22,12 +22,12 @@ (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) diff --git a/test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized10.smt2 b/test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized10.smt2 index 1c28759b6..99a67f7e7 100644 --- a/test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized10.smt2 +++ b/test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized10.smt2 @@ -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) diff --git a/test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized1832.smt2 b/test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized1832.smt2 index 8b879b3ec..50f51a13f 100644 --- a/test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized1832.smt2 +++ b/test/regress/regress0/sets/jan30/UniqueZipper.hs.fqout.minimized1832.smt2 @@ -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) diff --git a/test/regress/regress0/sets/mar2014/sharing-preregister.smt2 b/test/regress/regress0/sets/mar2014/sharing-preregister.smt2 index e3e88c65f..6655713cf 100644 --- a/test/regress/regress0/sets/mar2014/sharing-preregister.smt2 +++ b/test/regress/regress0/sets/mar2014/sharing-preregister.smt2 @@ -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) diff --git a/test/regress/regress0/sets/mar2014/small.smt2 b/test/regress/regress0/sets/mar2014/small.smt2 index 635c7959d..f984aca53 100644 --- a/test/regress/regress0/sets/mar2014/small.smt2 +++ b/test/regress/regress0/sets/mar2014/small.smt2 @@ -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) diff --git a/test/regress/regress0/sets/mar2014/smaller.smt2 b/test/regress/regress0/sets/mar2014/smaller.smt2 index d6565205b..5a02cbe53 100644 --- a/test/regress/regress0/sets/mar2014/smaller.smt2 +++ b/test/regress/regress0/sets/mar2014/smaller.smt2 @@ -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) diff --git a/test/regress/regress0/sets/nonvar-univ.smt2 b/test/regress/regress0/sets/nonvar-univ.smt2 index 5c3bc567c..695e87ec3 100644 --- a/test/regress/regress0/sets/nonvar-univ.smt2 +++ b/test/regress/regress0/sets/nonvar-univ.smt2 @@ -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) diff --git a/test/regress/regress0/sets/pre-proc-univ.smt2 b/test/regress/regress0/sets/pre-proc-univ.smt2 index f184ebf92..f01ad747b 100644 --- a/test/regress/regress0/sets/pre-proc-univ.smt2 +++ b/test/regress/regress0/sets/pre-proc-univ.smt2 @@ -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) diff --git a/test/regress/regress0/sets/rec_copy_loop_check_heap_access_43_4.smt2 b/test/regress/regress0/sets/rec_copy_loop_check_heap_access_43_4.smt2 index 61fbee11d..f70d59b16 100644 --- a/test/regress/regress0/sets/rec_copy_loop_check_heap_access_43_4.smt2 +++ b/test/regress/regress0/sets/rec_copy_loop_check_heap_access_43_4.smt2 @@ -45,15 +45,15 @@ (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)) @@ -66,14 +66,14 @@ (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))) @@ -82,34 +82,34 @@ (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))) diff --git a/test/regress/regress0/sets/setel-eq.smt2 b/test/regress/regress0/sets/setel-eq.smt2 index 35b89645a..ec8756896 100644 --- a/test/regress/regress0/sets/setel-eq.smt2 +++ b/test/regress/regress0/sets/setel-eq.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-deq-dd.smt2 b/test/regress/regress0/sets/sets-deq-dd.smt2 index 17ca1fce2..ccb0452a4 100644 --- a/test/regress/regress0/sets/sets-deq-dd.smt2 +++ b/test/regress/regress0/sets/sets-deq-dd.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-equal.smt2 b/test/regress/regress0/sets/sets-equal.smt2 index adccd51c5..c643c8b78 100644 --- a/test/regress/regress0/sets/sets-equal.smt2 +++ b/test/regress/regress0/sets/sets-equal.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-extr.smt2 b/test/regress/regress0/sets/sets-extr.smt2 index c497ff189..1cbe0de9c 100644 --- a/test/regress/regress0/sets/sets-extr.smt2 +++ b/test/regress/regress0/sets/sets-extr.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-inter.smt2 b/test/regress/regress0/sets/sets-inter.smt2 index 2faf72768..6857e5147 100644 --- a/test/regress/regress0/sets/sets-inter.smt2 +++ b/test/regress/regress0/sets/sets-inter.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-new.smt2 b/test/regress/regress0/sets/sets-new.smt2 index 8ac414829..4a49bef07 100644 --- a/test/regress/regress0/sets/sets-new.smt2 +++ b/test/regress/regress0/sets/sets-new.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-of-sets-subtypes.smt2 b/test/regress/regress0/sets/sets-of-sets-subtypes.smt2 index e8c98e09c..2af676f8b 100644 --- a/test/regress/regress0/sets/sets-of-sets-subtypes.smt2 +++ b/test/regress/regress0/sets/sets-of-sets-subtypes.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-poly-int-real.smt2 b/test/regress/regress0/sets/sets-poly-int-real.smt2 index df79a39b0..20832c573 100644 --- a/test/regress/regress0/sets/sets-poly-int-real.smt2 +++ b/test/regress/regress0/sets/sets-poly-int-real.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-poly-nonint.smt2 b/test/regress/regress0/sets/sets-poly-nonint.smt2 index 58ff563bc..f572fafc7 100644 --- a/test/regress/regress0/sets/sets-poly-nonint.smt2 +++ b/test/regress/regress0/sets/sets-poly-nonint.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-sample.smt2 b/test/regress/regress0/sets/sets-sample.smt2 index b92c4b2cf..3dcafae08 100644 --- a/test/regress/regress0/sets/sets-sample.smt2 +++ b/test/regress/regress0/sets/sets-sample.smt2 @@ -13,24 +13,24 @@ (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) @@ -42,12 +42,12 @@ (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)) @@ -56,15 +56,15 @@ (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) diff --git a/test/regress/regress0/sets/sets-sharing.smt2 b/test/regress/regress0/sets/sets-sharing.smt2 index 1ac2e1603..37ad90017 100644 --- a/test/regress/regress0/sets/sets-sharing.smt2 +++ b/test/regress/regress0/sets/sets-sharing.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sets-union.smt2 b/test/regress/regress0/sets/sets-union.smt2 index b794633e3..8dbe5ffa5 100644 --- a/test/regress/regress0/sets/sets-union.smt2 +++ b/test/regress/regress0/sets/sets-union.smt2 @@ -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) diff --git a/test/regress/regress0/sets/sharing-simp.smt2 b/test/regress/regress0/sets/sharing-simp.smt2 index 761428fde..be746be1d 100644 --- a/test/regress/regress0/sets/sharing-simp.smt2 +++ b/test/regress/regress0/sets/sharing-simp.smt2 @@ -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) diff --git a/test/regress/regress0/sets/union-1a-flip.smt2 b/test/regress/regress0/sets/union-1a-flip.smt2 index bb969f866..ea936c730 100644 --- a/test/regress/regress0/sets/union-1a-flip.smt2 +++ b/test/regress/regress0/sets/union-1a-flip.smt2 @@ -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) diff --git a/test/regress/regress0/sets/union-1a.smt2 b/test/regress/regress0/sets/union-1a.smt2 index ad684070f..007d64d4e 100644 --- a/test/regress/regress0/sets/union-1a.smt2 +++ b/test/regress/regress0/sets/union-1a.smt2 @@ -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) diff --git a/test/regress/regress0/sets/union-1b-flip.smt2 b/test/regress/regress0/sets/union-1b-flip.smt2 index 228452f54..92d241dd7 100644 --- a/test/regress/regress0/sets/union-1b-flip.smt2 +++ b/test/regress/regress0/sets/union-1b-flip.smt2 @@ -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) diff --git a/test/regress/regress0/sets/union-1b.smt2 b/test/regress/regress0/sets/union-1b.smt2 index 8829b6152..5be785079 100644 --- a/test/regress/regress0/sets/union-1b.smt2 +++ b/test/regress/regress0/sets/union-1b.smt2 @@ -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) diff --git a/test/regress/regress0/sets/union-2.smt2 b/test/regress/regress0/sets/union-2.smt2 index 52d2e7e8c..12a1fe8ff 100644 --- a/test/regress/regress0/sets/union-2.smt2 +++ b/test/regress/regress0/sets/union-2.smt2 @@ -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) diff --git a/test/regress/regress0/sets/univset-simp.smt2 b/test/regress/regress0/sets/univset-simp.smt2 index a8875cc41..04f413399 100644 --- a/test/regress/regress0/sets/univset-simp.smt2 +++ b/test/regress/regress0/sets/univset-simp.smt2 @@ -12,12 +12,12 @@ (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) diff --git a/test/regress/regress0/tptp/Axioms/BOO004-0.ax b/test/regress/regress0/tptp/Axioms/BOO004-0.ax index e02b4c2f8..7a36794df 100644 --- a/test/regress/regress0/tptp/Axioms/BOO004-0.ax +++ b/test/regress/regress0/tptp/Axioms/BOO004-0.ax @@ -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 : diff --git a/test/regress/regress0/tptp/Axioms/SYN000+0.ax b/test/regress/regress0/tptp/Axioms/SYN000+0.ax index 24ef682b7..136a70b3c 100644 --- a/test/regress/regress0/tptp/Axioms/SYN000+0.ax +++ b/test/regress/regress0/tptp/Axioms/SYN000+0.ax @@ -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 : diff --git a/test/regress/regress0/tptp/Axioms/SYN000-0.ax b/test/regress/regress0/tptp/Axioms/SYN000-0.ax index d67e61aee..01a6d9ba0 100644 --- a/test/regress/regress0/tptp/Axioms/SYN000-0.ax +++ b/test/regress/regress0/tptp/Axioms/SYN000-0.ax @@ -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 : diff --git a/test/regress/regress0/tptp/BOO003-4.p b/test/regress/regress0/tptp/BOO003-4.p index 0ea15fefc..5391e0689 100644 --- a/test/regress/regress0/tptp/BOO003-4.p +++ b/test/regress/regress0/tptp/BOO003-4.p @@ -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 diff --git a/test/regress/regress0/tptp/BOO027-1.p b/test/regress/regress0/tptp/BOO027-1.p index a3cd4224c..3b5297e16 100644 --- a/test/regress/regress0/tptp/BOO027-1.p +++ b/test/regress/regress0/tptp/BOO027-1.p @@ -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 diff --git a/test/regress/regress0/tptp/KRS018+1.p b/test/regress/regress0/tptp/KRS018+1.p index 8d0bbe25c..969c1c6f4 100644 --- a/test/regress/regress0/tptp/KRS018+1.p +++ b/test/regress/regress0/tptp/KRS018+1.p @@ -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 diff --git a/test/regress/regress0/tptp/KRS063+1.p b/test/regress/regress0/tptp/KRS063+1.p index 737741dee..dca3edbca 100644 --- a/test/regress/regress0/tptp/KRS063+1.p +++ b/test/regress/regress0/tptp/KRS063+1.p @@ -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 diff --git a/test/regress/regress0/tptp/MGT019+2.p b/test/regress/regress0/tptp/MGT019+2.p index e6a2ffe74..7bebdc095 100644 --- a/test/regress/regress0/tptp/MGT019+2.p +++ b/test/regress/regress0/tptp/MGT019+2.p @@ -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 diff --git a/test/regress/regress0/tptp/MGT031-1.p b/test/regress/regress0/tptp/MGT031-1.p index f5cd1937e..14fb64d63 100644 --- a/test/regress/regress0/tptp/MGT031-1.p +++ b/test/regress/regress0/tptp/MGT031-1.p @@ -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 diff --git a/test/regress/regress0/tptp/MGT041-2.p b/test/regress/regress0/tptp/MGT041-2.p index a10a2f42d..7735b39a8 100644 --- a/test/regress/regress0/tptp/MGT041-2.p +++ b/test/regress/regress0/tptp/MGT041-2.p @@ -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 diff --git a/test/regress/regress0/tptp/NLP114-1.p b/test/regress/regress0/tptp/NLP114-1.p index cf5bd272a..23221232a 100644 --- a/test/regress/regress0/tptp/NLP114-1.p +++ b/test/regress/regress0/tptp/NLP114-1.p @@ -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 diff --git a/test/regress/regress0/tptp/SYN000-1.p b/test/regress/regress0/tptp/SYN000-1.p index b6a68ec95..f32940536 100644 --- a/test/regress/regress0/tptp/SYN000-1.p +++ b/test/regress/regress0/tptp/SYN000-1.p @@ -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 diff --git a/test/regress/regress0/tptp/SYN075+1.p b/test/regress/regress0/tptp/SYN075+1.p index 7ef40217c..20720a552 100644 --- a/test/regress/regress0/tptp/SYN075+1.p +++ b/test/regress/regress0/tptp/SYN075+1.p @@ -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 diff --git a/test/regress/regress0/tptp/SYN075-1.p b/test/regress/regress0/tptp/SYN075-1.p index 85ac2d278..2a1a10783 100644 --- a/test/regress/regress0/tptp/SYN075-1.p +++ b/test/regress/regress0/tptp/SYN075-1.p @@ -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 diff --git a/test/regress/regress1/bug567.smt2 b/test/regress/regress1/bug567.smt2 index 15af93632..5b9bffd6f 100644 --- a/test/regress/regress1/bug567.smt2 +++ b/test/regress/regress1/bug567.smt2 @@ -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) diff --git a/test/regress/regress1/datatypes/non-simple-rec-set.smt2 b/test/regress/regress1/datatypes/non-simple-rec-set.smt2 index a6c4f6695..f34682565 100644 --- a/test/regress/regress1/datatypes/non-simple-rec-set.smt2 +++ b/test/regress/regress1/datatypes/non-simple-rec-set.smt2 @@ -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) diff --git a/test/regress/regress1/fmf/agree467.smt2 b/test/regress/regress1/fmf/agree467.smt2 index 522609b11..f2b012c86 100644 --- a/test/regress/regress1/fmf/agree467.smt2 +++ b/test/regress/regress1/fmf/agree467.smt2 @@ -258,10 +258,10 @@ (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)))) diff --git a/test/regress/regress1/fmf/cons-sets-bounds.smt2 b/test/regress/regress1/fmf/cons-sets-bounds.smt2 index 5e3c2952b..f0ff20de9 100644 --- a/test/regress/regress1/fmf/cons-sets-bounds.smt2 +++ b/test/regress/regress1/fmf/cons-sets-bounds.smt2 @@ -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))) diff --git a/test/regress/regress1/fmf/fmf-strange-bounds.smt2 b/test/regress/regress1/fmf/fmf-strange-bounds.smt2 index 20738245c..be9f3e13a 100644 --- a/test/regress/regress1/fmf/fmf-strange-bounds.smt2 +++ b/test/regress/regress1/fmf/fmf-strange-bounds.smt2 @@ -12,14 +12,14 @@ (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)) (=> diff --git a/test/regress/regress1/fmf/ko-bound-set.cvc.smt2 b/test/regress/regress1/fmf/ko-bound-set.cvc.smt2 index 846532c28..80bc294e6 100644 --- a/test/regress/regress1/fmf/ko-bound-set.cvc.smt2 +++ b/test/regress/regress1/fmf/ko-bound-set.cvc.smt2 @@ -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)) )) diff --git a/test/regress/regress1/fmf/memory_model-R_cpp-dd.cvc.smt2 b/test/regress/regress1/fmf/memory_model-R_cpp-dd.cvc.smt2 index 433c1f102..e5cc1a503 100644 --- a/test/regress/regress1/fmf/memory_model-R_cpp-dd.cvc.smt2 +++ b/test/regress/regress1/fmf/memory_model-R_cpp-dd.cvc.smt2 @@ -22,10 +22,10 @@ (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) diff --git a/test/regress/regress1/fmf/radu-quant-set.smt2 b/test/regress/regress1/fmf/radu-quant-set.smt2 index 180894ca5..423039e46 100644 --- a/test/regress/regress1/fmf/radu-quant-set.smt2 +++ b/test/regress/regress1/fmf/radu-quant-set.smt2 @@ -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))) diff --git a/test/regress/regress1/ho/hoa0102.smt2 b/test/regress/regress1/ho/hoa0102.smt2 index c5840e6a9..cbdcf7480 100644 --- a/test/regress/regress1/ho/hoa0102.smt2 +++ b/test/regress/regress1/ho/hoa0102.smt2 @@ -129,9 +129,9 @@ (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$) @@ -146,18 +146,18 @@ (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$) @@ -206,9 +206,9 @@ (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)) @@ -284,9 +284,9 @@ (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)) @@ -388,9 +388,9 @@ (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)) @@ -449,7 +449,7 @@ (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)) @@ -458,50 +458,50 @@ (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)) @@ -525,27 +525,27 @@ (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)) @@ -565,42 +565,42 @@ (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) diff --git a/test/regress/regress1/quantifiers/bug822.smt2 b/test/regress/regress1/quantifiers/bug822.smt2 index cc1b5ed50..8bcbb364c 100644 --- a/test/regress/regress1/quantifiers/bug822.smt2 +++ b/test/regress/regress1/quantifiers/bug822.smt2 @@ -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)))) )) diff --git a/test/regress/regress1/quantifiers/bug_743.smt2 b/test/regress/regress1/quantifiers/bug_743.smt2 index 8b20cf5ca..e2fff8018 100644 --- a/test/regress/regress1/quantifiers/bug_743.smt2 +++ b/test/regress/regress1/quantifiers/bug_743.smt2 @@ -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 diff --git a/test/regress/regress1/quantifiers/cdt-0208-to.smt2 b/test/regress/regress1/quantifiers/cdt-0208-to.smt2 index 76e747168..5a04e2394 100644 --- a/test/regress/regress1/quantifiers/cdt-0208-to.smt2 +++ b/test/regress/regress1/quantifiers/cdt-0208-to.smt2 @@ -194,7 +194,7 @@ (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$) @@ -202,9 +202,9 @@ (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$) @@ -349,18 +349,18 @@ (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)) @@ -372,7 +372,7 @@ (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)) @@ -404,8 +404,8 @@ (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)) @@ -418,7 +418,7 @@ (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)) @@ -429,8 +429,8 @@ (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)) @@ -508,33 +508,33 @@ (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)) @@ -712,57 +712,57 @@ (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) diff --git a/test/regress/regress1/quantifiers/inst-max-level-segf.smt2 b/test/regress/regress1/quantifiers/inst-max-level-segf.smt2 index d85f3d094..47cfae0ef 100644 --- a/test/regress/regress1/quantifiers/inst-max-level-segf.smt2 +++ b/test/regress/regress1/quantifiers/inst-max-level-segf.smt2 @@ -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))) @@ -291,8 +291,8 @@ (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 @@ -305,7 +305,7 @@ (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) diff --git a/test/regress/regress1/quantifiers/set-choice-koikonomou.cvc.smt2 b/test/regress/regress1/quantifiers/set-choice-koikonomou.cvc.smt2 index 3f88dcb72..61088eeeb 100644 --- a/test/regress/regress1/quantifiers/set-choice-koikonomou.cvc.smt2 +++ b/test/regress/regress1/quantifiers/set-choice-koikonomou.cvc.smt2 @@ -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))) )) diff --git a/test/regress/regress1/quantifiers/set3.smt2 b/test/regress/regress1/quantifiers/set3.smt2 index ce5665f86..e612c2f2d 100644 --- a/test/regress/regress1/quantifiers/set3.smt2 +++ b/test/regress/regress1/quantifiers/set3.smt2 @@ -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) diff --git a/test/regress/regress1/quantifiers/set8.smt2 b/test/regress/regress1/quantifiers/set8.smt2 index bf0bb7130..209b213c1 100644 --- a/test/regress/regress1/quantifiers/set8.smt2 +++ b/test/regress/regress1/quantifiers/set8.smt2 @@ -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) diff --git a/test/regress/regress1/quantifiers/seu169+1.smt2 b/test/regress/regress1/quantifiers/seu169+1.smt2 index 08fd6025b..0ea6faf27 100644 --- a/test/regress/regress1/quantifiers/seu169+1.smt2 +++ b/test/regress/regress1/quantifiers/seu169+1.smt2 @@ -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))) )) diff --git a/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 b/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 index f810b00ff..953589cc9 100644 --- a/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 +++ b/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 @@ -66,16 +66,16 @@ (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$) @@ -166,16 +166,16 @@ (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)) diff --git a/test/regress/regress1/rels/addr_book_1.cvc.smt2 b/test/regress/regress1/rels/addr_book_1.cvc.smt2 index 591303875..783c90b78 100644 --- a/test/regress/regress1/rels/addr_book_1.cvc.smt2 +++ b/test/regress/regress1/rels/addr_book_1.cvc.smt2 @@ -14,25 +14,25 @@ (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) diff --git a/test/regress/regress1/rels/addr_book_1_1.cvc.smt2 b/test/regress/regress1/rels/addr_book_1_1.cvc.smt2 index a7cfcaf38..3f5c39b5d 100644 --- a/test/regress/regress1/rels/addr_book_1_1.cvc.smt2 +++ b/test/regress/regress1/rels/addr_book_1_1.cvc.smt2 @@ -14,25 +14,25 @@ (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) diff --git a/test/regress/regress1/rels/bv1-unit.cvc.smt2 b/test/regress/regress1/rels/bv1-unit.cvc.smt2 index ba4dac386..09858de24 100644 --- a/test/regress/regress1/rels/bv1-unit.cvc.smt2 +++ b/test/regress/regress1/rels/bv1-unit.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/bv1-unitb.cvc.smt2 b/test/regress/regress1/rels/bv1-unitb.cvc.smt2 index 696c8919e..cec025723 100644 --- a/test/regress/regress1/rels/bv1-unitb.cvc.smt2 +++ b/test/regress/regress1/rels/bv1-unitb.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/bv1.cvc.smt2 b/test/regress/regress1/rels/bv1.cvc.smt2 index 1df5ee38b..c317baedf 100644 --- a/test/regress/regress1/rels/bv1.cvc.smt2 +++ b/test/regress/regress1/rels/bv1.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/bv1p-sat.cvc.smt2 b/test/regress/regress1/rels/bv1p-sat.cvc.smt2 index a653f887b..367a44c11 100644 --- a/test/regress/regress1/rels/bv1p-sat.cvc.smt2 +++ b/test/regress/regress1/rels/bv1p-sat.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/bv1p.cvc.smt2 b/test/regress/regress1/rels/bv1p.cvc.smt2 index d5d9aa40f..262826b3c 100644 --- a/test/regress/regress1/rels/bv1p.cvc.smt2 +++ b/test/regress/regress1/rels/bv1p.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/bv2.cvc.smt2 b/test/regress/regress1/rels/bv2.cvc.smt2 index 005737b36..9ea472819 100644 --- a/test/regress/regress1/rels/bv2.cvc.smt2 +++ b/test/regress/regress1/rels/bv2.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/garbage_collect.cvc.smt2 b/test/regress/regress1/rels/garbage_collect.cvc.smt2 index 55f181acd..8406b4ab8 100644 --- a/test/regress/regress1/rels/garbage_collect.cvc.smt2 +++ b/test/regress/regress1/rels/garbage_collect.cvc.smt2 @@ -16,22 +16,22 @@ (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) diff --git a/test/regress/regress1/rels/iden_1_1.cvc.smt2 b/test/regress/regress1/rels/iden_1_1.cvc.smt2 index 305476798..55daa9a41 100644 --- a/test/regress/regress1/rels/iden_1_1.cvc.smt2 +++ b/test/regress/regress1/rels/iden_1_1.cvc.smt2 @@ -12,11 +12,11 @@ (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) diff --git a/test/regress/regress1/rels/join-eq-structure-and.cvc.smt2 b/test/regress/regress1/rels/join-eq-structure-and.cvc.smt2 index 60696f706..f4203e5ec 100644 --- a/test/regress/regress1/rels/join-eq-structure-and.cvc.smt2 +++ b/test/regress/regress1/rels/join-eq-structure-and.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/join-eq-structure.cvc.smt2 b/test/regress/regress1/rels/join-eq-structure.cvc.smt2 index 0e510c77a..bad15f3c8 100644 --- a/test/regress/regress1/rels/join-eq-structure.cvc.smt2 +++ b/test/regress/regress1/rels/join-eq-structure.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/joinImg_0_1.cvc.smt2 b/test/regress/regress1/rels/joinImg_0_1.cvc.smt2 index ae33348bd..1918e2ad4 100644 --- a/test/regress/regress1/rels/joinImg_0_1.cvc.smt2 +++ b/test/regress/regress1/rels/joinImg_0_1.cvc.smt2 @@ -17,12 +17,12 @@ (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) diff --git a/test/regress/regress1/rels/joinImg_0_2.cvc.smt2 b/test/regress/regress1/rels/joinImg_0_2.cvc.smt2 index 86fc76670..6c822db5b 100644 --- a/test/regress/regress1/rels/joinImg_0_2.cvc.smt2 +++ b/test/regress/regress1/rels/joinImg_0_2.cvc.smt2 @@ -18,14 +18,14 @@ (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) diff --git a/test/regress/regress1/rels/joinImg_1.cvc.smt2 b/test/regress/regress1/rels/joinImg_1.cvc.smt2 index 4d7c56000..457e66cef 100644 --- a/test/regress/regress1/rels/joinImg_1.cvc.smt2 +++ b/test/regress/regress1/rels/joinImg_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/joinImg_1_1.cvc.smt2 b/test/regress/regress1/rels/joinImg_1_1.cvc.smt2 index dc940a43b..171623d19 100644 --- a/test/regress/regress1/rels/joinImg_1_1.cvc.smt2 +++ b/test/regress/regress1/rels/joinImg_1_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/joinImg_2.cvc.smt2 b/test/regress/regress1/rels/joinImg_2.cvc.smt2 index 527770994..56d45607f 100644 --- a/test/regress/regress1/rels/joinImg_2.cvc.smt2 +++ b/test/regress/regress1/rels/joinImg_2.cvc.smt2 @@ -14,13 +14,13 @@ (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) diff --git a/test/regress/regress1/rels/joinImg_2_1.cvc.smt2 b/test/regress/regress1/rels/joinImg_2_1.cvc.smt2 index 0d563415b..a20218fc1 100644 --- a/test/regress/regress1/rels/joinImg_2_1.cvc.smt2 +++ b/test/regress/regress1/rels/joinImg_2_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/prod-mod-eq.cvc.smt2 b/test/regress/regress1/rels/prod-mod-eq.cvc.smt2 index 088976c2b..738ccf8e8 100644 --- a/test/regress/regress1/rels/prod-mod-eq.cvc.smt2 +++ b/test/regress/regress1/rels/prod-mod-eq.cvc.smt2 @@ -10,11 +10,11 @@ (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) diff --git a/test/regress/regress1/rels/prod-mod-eq2.cvc.smt2 b/test/regress/regress1/rels/prod-mod-eq2.cvc.smt2 index e54259778..d9add50ad 100644 --- a/test/regress/regress1/rels/prod-mod-eq2.cvc.smt2 +++ b/test/regress/regress1/rels/prod-mod-eq2.cvc.smt2 @@ -11,12 +11,12 @@ (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) diff --git a/test/regress/regress1/rels/qgu-fuzz-relations-2.smt2 b/test/regress/regress1/rels/qgu-fuzz-relations-2.smt2 index 185c06502..dfb3b0750 100644 --- a/test/regress/regress1/rels/qgu-fuzz-relations-2.smt2 +++ b/test/regress/regress1/rels/qgu-fuzz-relations-2.smt2 @@ -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) diff --git a/test/regress/regress1/rels/qgu-fuzz-relations-3-upwards.smt2 b/test/regress/regress1/rels/qgu-fuzz-relations-3-upwards.smt2 index 1cb91e94c..4e4f2d534 100644 --- a/test/regress/regress1/rels/qgu-fuzz-relations-3-upwards.smt2 +++ b/test/regress/regress1/rels/qgu-fuzz-relations-3-upwards.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_complex_3.cvc.smt2 b/test/regress/regress1/rels/rel_complex_3.cvc.smt2 index 7955cf532..7e80fdd70 100644 --- a/test/regress/regress1/rels/rel_complex_3.cvc.smt2 +++ b/test/regress/regress1/rels/rel_complex_3.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_complex_4.cvc.smt2 b/test/regress/regress1/rels/rel_complex_4.cvc.smt2 index 865105a1b..9a35f336e 100644 --- a/test/regress/regress1/rels/rel_complex_4.cvc.smt2 +++ b/test/regress/regress1/rels/rel_complex_4.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_complex_5.cvc.smt2 b/test/regress/regress1/rels/rel_complex_5.cvc.smt2 index 69ec8046e..fc2d73235 100644 --- a/test/regress/regress1/rels/rel_complex_5.cvc.smt2 +++ b/test/regress/regress1/rels/rel_complex_5.cvc.smt2 @@ -10,28 +10,28 @@ (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) diff --git a/test/regress/regress1/rels/rel_mix_0_1.cvc.smt2 b/test/regress/regress1/rels/rel_mix_0_1.cvc.smt2 index 79cfc078f..77a5f38fd 100644 --- a/test/regress/regress1/rels/rel_mix_0_1.cvc.smt2 +++ b/test/regress/regress1/rels/rel_mix_0_1.cvc.smt2 @@ -11,13 +11,13 @@ (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) diff --git a/test/regress/regress1/rels/rel_pressure_0.cvc.smt2 b/test/regress/regress1/rels/rel_pressure_0.cvc.smt2 index d56f72e77..e80fe01e2 100644 --- a/test/regress/regress1/rels/rel_pressure_0.cvc.smt2 +++ b/test/regress/regress1/rels/rel_pressure_0.cvc.smt2 @@ -8,607 +8,607 @@ (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) diff --git a/test/regress/regress1/rels/rel_tc_10_1.cvc.smt2 b/test/regress/regress1/rels/rel_tc_10_1.cvc.smt2 index af871781e..9e49c2731 100644 --- a/test/regress/regress1/rels/rel_tc_10_1.cvc.smt2 +++ b/test/regress/regress1/rels/rel_tc_10_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_tc_4.cvc.smt2 b/test/regress/regress1/rels/rel_tc_4.cvc.smt2 index 5de402d3b..1b2a6173d 100644 --- a/test/regress/regress1/rels/rel_tc_4.cvc.smt2 +++ b/test/regress/regress1/rels/rel_tc_4.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_tc_4_1.cvc.smt2 b/test/regress/regress1/rels/rel_tc_4_1.cvc.smt2 index 7e0ce99c5..68ca97c2a 100644 --- a/test/regress/regress1/rels/rel_tc_4_1.cvc.smt2 +++ b/test/regress/regress1/rels/rel_tc_4_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_tc_5_1.cvc.smt2 b/test/regress/regress1/rels/rel_tc_5_1.cvc.smt2 index a57fe6e81..0caa98002 100644 --- a/test/regress/regress1/rels/rel_tc_5_1.cvc.smt2 +++ b/test/regress/regress1/rels/rel_tc_5_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_tc_6.cvc.smt2 b/test/regress/regress1/rels/rel_tc_6.cvc.smt2 index dd584b122..8e2e1cae2 100644 --- a/test/regress/regress1/rels/rel_tc_6.cvc.smt2 +++ b/test/regress/regress1/rels/rel_tc_6.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_tc_9_1.cvc.smt2 b/test/regress/regress1/rels/rel_tc_9_1.cvc.smt2 index 0cfacd14a..02efe912b 100644 --- a/test/regress/regress1/rels/rel_tc_9_1.cvc.smt2 +++ b/test/regress/regress1/rels/rel_tc_9_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_tp_2.cvc.smt2 b/test/regress/regress1/rels/rel_tp_2.cvc.smt2 index 822c1fd52..ca8e1ba77 100644 --- a/test/regress/regress1/rels/rel_tp_2.cvc.smt2 +++ b/test/regress/regress1/rels/rel_tp_2.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/rel_tp_join_2_1.cvc.smt2 b/test/regress/regress1/rels/rel_tp_join_2_1.cvc.smt2 index 698d29081..32a520d13 100644 --- a/test/regress/regress1/rels/rel_tp_join_2_1.cvc.smt2 +++ b/test/regress/regress1/rels/rel_tp_join_2_1.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/rels/set-strat.cvc.smt2 b/test/regress/regress1/rels/set-strat.cvc.smt2 index 53e5588a9..a509780ac 100644 --- a/test/regress/regress1/rels/set-strat.cvc.smt2 +++ b/test/regress/regress1/rels/set-strat.cvc.smt2 @@ -10,11 +10,11 @@ (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) diff --git a/test/regress/regress1/rels/strat.cvc.smt2 b/test/regress/regress1/rels/strat.cvc.smt2 index 42850d283..b65251ca7 100644 --- a/test/regress/regress1/rels/strat.cvc.smt2 +++ b/test/regress/regress1/rels/strat.cvc.smt2 @@ -11,10 +11,10 @@ (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) diff --git a/test/regress/regress1/sets/ListElem.hs.fqout.cvc4.38.smt2 b/test/regress/regress1/sets/ListElem.hs.fqout.cvc4.38.smt2 index 666d16367..144566fc5 100644 --- a/test/regress/regress1/sets/ListElem.hs.fqout.cvc4.38.smt2 +++ b/test/regress/regress1/sets/ListElem.hs.fqout.cvc4.38.smt2 @@ -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)) diff --git a/test/regress/regress1/sets/ListElts.hs.fqout.cvc4.317.smt2 b/test/regress/regress1/sets/ListElts.hs.fqout.cvc4.317.smt2 index 4863baa64..9a2521520 100644 --- a/test/regress/regress1/sets/ListElts.hs.fqout.cvc4.317.smt2 +++ b/test/regress/regress1/sets/ListElts.hs.fqout.cvc4.317.smt2 @@ -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)) diff --git a/test/regress/regress1/sets/TalkingAboutSets.hs.fqout.cvc4.3577.smt2 b/test/regress/regress1/sets/TalkingAboutSets.hs.fqout.cvc4.3577.smt2 index dcfd13521..b2732dbd2 100644 --- a/test/regress/regress1/sets/TalkingAboutSets.hs.fqout.cvc4.3577.smt2 +++ b/test/regress/regress1/sets/TalkingAboutSets.hs.fqout.cvc4.3577.smt2 @@ -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)) diff --git a/test/regress/regress1/sets/UniqueZipper.hs.1030minimized.cvc4.smt2 b/test/regress/regress1/sets/UniqueZipper.hs.1030minimized.cvc4.smt2 index 9e5962a24..ee24367c3 100644 --- a/test/regress/regress1/sets/UniqueZipper.hs.1030minimized.cvc4.smt2 +++ b/test/regress/regress1/sets/UniqueZipper.hs.1030minimized.cvc4.smt2 @@ -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) diff --git a/test/regress/regress1/sets/UniqueZipper.hs.1030minimized2.cvc4.smt2 b/test/regress/regress1/sets/UniqueZipper.hs.1030minimized2.cvc4.smt2 index 88cf21aa8..b0cfe4888 100644 --- a/test/regress/regress1/sets/UniqueZipper.hs.1030minimized2.cvc4.smt2 +++ b/test/regress/regress1/sets/UniqueZipper.hs.1030minimized2.cvc4.smt2 @@ -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) @@ -177,7 +177,7 @@ (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) diff --git a/test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.10.smt2 b/test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.10.smt2 index 1967497da..9ac15e9a4 100644 --- a/test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.10.smt2 +++ b/test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.10.smt2 @@ -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)) diff --git a/test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.1832.smt2 b/test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.1832.smt2 index cb1dfc842..68ed72a93 100644 --- a/test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.1832.smt2 +++ b/test/regress/regress1/sets/UniqueZipper.hs.fqout.cvc4.1832.smt2 @@ -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)) diff --git a/test/regress/regress1/sets/arjun-set-univ.cvc.smt2 b/test/regress/regress1/sets/arjun-set-univ.cvc.smt2 index b76b48f2d..8e851bb7f 100644 --- a/test/regress/regress1/sets/arjun-set-univ.cvc.smt2 +++ b/test/regress/regress1/sets/arjun-set-univ.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/sets/card-3.smt2 b/test/regress/regress1/sets/card-3.smt2 index 0e96b0231..383395b0d 100644 --- a/test/regress/regress1/sets/card-3.smt2 +++ b/test/regress/regress1/sets/card-3.smt2 @@ -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) diff --git a/test/regress/regress1/sets/card-4.smt2 b/test/regress/regress1/sets/card-4.smt2 index 456e24ca7..019b16a09 100644 --- a/test/regress/regress1/sets/card-4.smt2 +++ b/test/regress/regress1/sets/card-4.smt2 @@ -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) diff --git a/test/regress/regress1/sets/card-5.smt2 b/test/regress/regress1/sets/card-5.smt2 index 4135a0c16..c24ca974a 100644 --- a/test/regress/regress1/sets/card-5.smt2 +++ b/test/regress/regress1/sets/card-5.smt2 @@ -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) diff --git a/test/regress/regress1/sets/card-6.smt2 b/test/regress/regress1/sets/card-6.smt2 index 87d87c03b..b0ef3a3b9 100644 --- a/test/regress/regress1/sets/card-6.smt2 +++ b/test/regress/regress1/sets/card-6.smt2 @@ -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) diff --git a/test/regress/regress1/sets/card-7.smt2 b/test/regress/regress1/sets/card-7.smt2 index df1867c63..30595218c 100644 --- a/test/regress/regress1/sets/card-7.smt2 +++ b/test/regress/regress1/sets/card-7.smt2 @@ -22,26 +22,26 @@ (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) diff --git a/test/regress/regress1/sets/card-vc6-minimized.smt2 b/test/regress/regress1/sets/card-vc6-minimized.smt2 index d7f4bdf1e..4f589cad7 100644 --- a/test/regress/regress1/sets/card-vc6-minimized.smt2 +++ b/test/regress/regress1/sets/card-vc6-minimized.smt2 @@ -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) diff --git a/test/regress/regress1/sets/choose.cvc.smt2 b/test/regress/regress1/sets/choose.cvc.smt2 index 8c3be2f99..18a89334f 100644 --- a/test/regress/regress1/sets/choose.cvc.smt2 +++ b/test/regress/regress1/sets/choose.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/sets/choose1.smt2 b/test/regress/regress1/sets/choose1.smt2 index 0e937169e..a96daa9d5 100644 --- a/test/regress/regress1/sets/choose1.smt2 +++ b/test/regress/regress1/sets/choose1.smt2 @@ -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) diff --git a/test/regress/regress1/sets/choose2.smt2 b/test/regress/regress1/sets/choose2.smt2 index 85a5d18d3..494a74f0b 100644 --- a/test/regress/regress1/sets/choose2.smt2 +++ b/test/regress/regress1/sets/choose2.smt2 @@ -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 diff --git a/test/regress/regress1/sets/choose3.smt2 b/test/regress/regress1/sets/choose3.smt2 index 2a844efeb..284d3c9e9 100644 --- a/test/regress/regress1/sets/choose3.smt2 +++ b/test/regress/regress1/sets/choose3.smt2 @@ -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) diff --git a/test/regress/regress1/sets/choose4.smt2 b/test/regress/regress1/sets/choose4.smt2 index 6cb97c3e3..5590a0d5f 100644 --- a/test/regress/regress1/sets/choose4.smt2 +++ b/test/regress/regress1/sets/choose4.smt2 @@ -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) diff --git a/test/regress/regress1/sets/comp-intersect.smt2 b/test/regress/regress1/sets/comp-intersect.smt2 index ab3206343..60d9046bd 100644 --- a/test/regress/regress1/sets/comp-intersect.smt2 +++ b/test/regress/regress1/sets/comp-intersect.smt2 @@ -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) diff --git a/test/regress/regress1/sets/comp-odd.smt2 b/test/regress/regress1/sets/comp-odd.smt2 index 1b1a13b34..5d2a65619 100644 --- a/test/regress/regress1/sets/comp-odd.smt2 +++ b/test/regress/regress1/sets/comp-odd.smt2 @@ -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) diff --git a/test/regress/regress1/sets/comp-pos-member.smt2 b/test/regress/regress1/sets/comp-pos-member.smt2 index aeba4cadc..fdd5926b6 100644 --- a/test/regress/regress1/sets/comp-pos-member.smt2 +++ b/test/regress/regress1/sets/comp-pos-member.smt2 @@ -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)) diff --git a/test/regress/regress1/sets/comp-positive.smt2 b/test/regress/regress1/sets/comp-positive.smt2 index af75230b3..6f8e3e1ab 100644 --- a/test/regress/regress1/sets/comp-positive.smt2 +++ b/test/regress/regress1/sets/comp-positive.smt2 @@ -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) diff --git a/test/regress/regress1/sets/copy_check_heap_access_33_4.smt2 b/test/regress/regress1/sets/copy_check_heap_access_33_4.smt2 index 9af45c2dd..991470d30 100644 --- a/test/regress/regress1/sets/copy_check_heap_access_33_4.smt2 +++ b/test/regress/regress1/sets/copy_check_heap_access_33_4.smt2 @@ -46,19 +46,19 @@ (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))) @@ -76,13 +76,13 @@ (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)) @@ -92,14 +92,14 @@ (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)) diff --git a/test/regress/regress1/sets/deepmeas0.hs.fqout.cvc4.41.smt2 b/test/regress/regress1/sets/deepmeas0.hs.fqout.cvc4.41.smt2 index 426661ba2..7c5e09b5a 100644 --- a/test/regress/regress1/sets/deepmeas0.hs.fqout.cvc4.41.smt2 +++ b/test/regress/regress1/sets/deepmeas0.hs.fqout.cvc4.41.smt2 @@ -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)) diff --git a/test/regress/regress1/sets/finite-type/bug3663.smt2 b/test/regress/regress1/sets/finite-type/bug3663.smt2 index 5aef5d15d..8a696e129 100644 --- a/test/regress/regress1/sets/finite-type/bug3663.smt2 +++ b/test/regress/regress1/sets/finite-type/bug3663.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-arrcolor.smt2 b/test/regress/regress1/sets/finite-type/sets-card-arrcolor.smt2 index 2c7acf282..25724a31e 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-arrcolor.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-arrcolor.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-arrunit.smt2 b/test/regress/regress1/sets/finite-type/sets-card-arrunit.smt2 index 95d363397..d774e3b8e 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-arrunit.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-arrunit.smt2 @@ -5,6 +5,6 @@ (declare-fun S () (Set (Array Int Unit))) -(assert (> (card S) 1)) +(assert (> (set.card S) 1)) (check-sat) diff --git a/test/regress/regress1/sets/finite-type/sets-card-bool-1.smt2 b/test/regress/regress1/sets/finite-type/sets-card-bool-1.smt2 index eded56674..aa5b62d09 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-bool-1.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-bool-1.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-bool-2.smt2 b/test/regress/regress1/sets/finite-type/sets-card-bool-2.smt2 index 7d3421463..161312cab 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-bool-2.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-bool-2.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-bool-3.smt2 b/test/regress/regress1/sets/finite-type/sets-card-bool-3.smt2 index 4c83655ed..89daac5c7 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-bool-3.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-bool-3.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-bool-4.smt2 b/test/regress/regress1/sets/finite-type/sets-card-bool-4.smt2 index 1e18597dc..90bd422b5 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-bool-4.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-bool-4.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-bool-rec.smt2 b/test/regress/regress1/sets/finite-type/sets-card-bool-rec.smt2 index 150dd5cff..9849ea211 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-bool-rec.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-bool-rec.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-bv-1.smt2 b/test/regress/regress1/sets/finite-type/sets-card-bv-1.smt2 index 535646c7b..9ecc6a3aa 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-bv-1.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-bv-1.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-bv-2.smt2 b/test/regress/regress1/sets/finite-type/sets-card-bv-2.smt2 index 4eb8fc269..91bf1905a 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-bv-2.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-bv-2.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-bv-3.smt2 b/test/regress/regress1/sets/finite-type/sets-card-bv-3.smt2 index 6e26ef4c7..adbe51507 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-bv-3.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-bv-3.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-bv-4.smt2 b/test/regress/regress1/sets/finite-type/sets-card-bv-4.smt2 index 4fc6b7347..2ccbc8a58 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-bv-4.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-bv-4.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-color-sat.smt2 b/test/regress/regress1/sets/finite-type/sets-card-color-sat.smt2 index ca8015622..c2d2e0724 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-color-sat.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-color-sat.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-color.smt2 b/test/regress/regress1/sets/finite-type/sets-card-color.smt2 index 4fe3f0428..73db8105d 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-color.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-color.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-datatype-1.smt2 b/test/regress/regress1/sets/finite-type/sets-card-datatype-1.smt2 index 681033794..4c113c84b 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-datatype-1.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-datatype-1.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-datatype-2.smt2 b/test/regress/regress1/sets/finite-type/sets-card-datatype-2.smt2 index eb45d9ef9..4c9bdadd5 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-datatype-2.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-datatype-2.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-1.smt2 b/test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-1.smt2 index b4bd97f1d..0999c6569 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-1.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-1.smt2 @@ -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) diff --git a/test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-2.smt2 b/test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-2.smt2 index 88825a600..73781a91a 100644 --- a/test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-2.smt2 +++ b/test/regress/regress1/sets/finite-type/sets-card-neg-mem-union-2.smt2 @@ -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) diff --git a/test/regress/regress1/sets/fuzz14418.smt2 b/test/regress/regress1/sets/fuzz14418.smt2 index 9b65102a6..2fb60cb72 100644 --- a/test/regress/regress1/sets/fuzz14418.smt2 +++ b/test/regress/regress1/sets/fuzz14418.smt2 @@ -30,25 +30,25 @@ (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))) diff --git a/test/regress/regress1/sets/fuzz15201.smt2 b/test/regress/regress1/sets/fuzz15201.smt2 index f9dbaeb75..3094a8d84 100644 --- a/test/regress/regress1/sets/fuzz15201.smt2 +++ b/test/regress/regress1/sets/fuzz15201.smt2 @@ -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") @@ -26,44 +26,44 @@ (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))) diff --git a/test/regress/regress1/sets/fuzz31811.smt2 b/test/regress/regress1/sets/fuzz31811.smt2 index 9a7a7510a..e86901f9a 100644 --- a/test/regress/regress1/sets/fuzz31811.smt2 +++ b/test/regress/regress1/sets/fuzz31811.smt2 @@ -26,27 +26,27 @@ (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))) diff --git a/test/regress/regress1/sets/infinite-type/sets-card-array-int-1.smt2 b/test/regress/regress1/sets/infinite-type/sets-card-array-int-1.smt2 index ee697065f..f6d032f11 100644 --- a/test/regress/regress1/sets/infinite-type/sets-card-array-int-1.smt2 +++ b/test/regress/regress1/sets/infinite-type/sets-card-array-int-1.smt2 @@ -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) diff --git a/test/regress/regress1/sets/infinite-type/sets-card-array-int-2.smt2 b/test/regress/regress1/sets/infinite-type/sets-card-array-int-2.smt2 index fe8ce9142..d7e6a758c 100644 --- a/test/regress/regress1/sets/infinite-type/sets-card-array-int-2.smt2 +++ b/test/regress/regress1/sets/infinite-type/sets-card-array-int-2.smt2 @@ -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) diff --git a/test/regress/regress1/sets/infinite-type/sets-card-int-1.smt2 b/test/regress/regress1/sets/infinite-type/sets-card-int-1.smt2 index 573ff56da..c649c9be2 100644 --- a/test/regress/regress1/sets/infinite-type/sets-card-int-1.smt2 +++ b/test/regress/regress1/sets/infinite-type/sets-card-int-1.smt2 @@ -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) diff --git a/test/regress/regress1/sets/infinite-type/sets-card-int-2.smt2 b/test/regress/regress1/sets/infinite-type/sets-card-int-2.smt2 index 9d8fee7c3..b3958e79e 100644 --- a/test/regress/regress1/sets/infinite-type/sets-card-int-2.smt2 +++ b/test/regress/regress1/sets/infinite-type/sets-card-int-2.smt2 @@ -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) diff --git a/test/regress/regress1/sets/insert_invariant_37_2.smt2 b/test/regress/regress1/sets/insert_invariant_37_2.smt2 index 2ef07f920..cac805531 100644 --- a/test/regress/regress1/sets/insert_invariant_37_2.smt2 +++ b/test/regress/regress1/sets/insert_invariant_37_2.smt2 @@ -61,13 +61,13 @@ (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 @@ -86,12 +86,12 @@ (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)) @@ -101,7 +101,7 @@ (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 @@ -109,12 +109,12 @@ (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)) @@ -124,7 +124,7 @@ (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 @@ -132,12 +132,12 @@ (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)) @@ -147,7 +147,7 @@ (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 @@ -155,12 +155,12 @@ (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)) @@ -170,7 +170,7 @@ (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 @@ -178,12 +178,12 @@ (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)) @@ -193,7 +193,7 @@ (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 @@ -201,12 +201,12 @@ (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)) @@ -215,18 +215,18 @@ (= (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 @@ -235,30 +235,30 @@ (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)) @@ -269,7 +269,7 @@ (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 @@ -277,12 +277,12 @@ (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)) @@ -292,7 +292,7 @@ (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 @@ -300,12 +300,12 @@ (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)) @@ -315,7 +315,7 @@ (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 @@ -323,12 +323,12 @@ (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)) @@ -338,7 +338,7 @@ (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 @@ -346,12 +346,12 @@ (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)) @@ -361,7 +361,7 @@ (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 @@ -369,12 +369,12 @@ (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)) @@ -384,7 +384,7 @@ (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 @@ -392,12 +392,12 @@ (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)) @@ -407,18 +407,18 @@ (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 @@ -427,19 +427,19 @@ (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)) @@ -449,7 +449,7 @@ (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 @@ -457,12 +457,12 @@ (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)) @@ -472,7 +472,7 @@ (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 @@ -480,12 +480,12 @@ (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)) @@ -495,7 +495,7 @@ (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 @@ -503,12 +503,12 @@ (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)) @@ -518,7 +518,7 @@ (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 @@ -526,12 +526,12 @@ (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)) @@ -541,7 +541,7 @@ (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 @@ -549,12 +549,12 @@ (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)) @@ -564,7 +564,7 @@ (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 @@ -572,12 +572,12 @@ (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)) @@ -587,18 +587,18 @@ (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 @@ -607,19 +607,19 @@ (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)) @@ -627,26 +627,26 @@ (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)) @@ -663,14 +663,14 @@ (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)) @@ -685,8 +685,8 @@ (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)) @@ -694,47 +694,47 @@ (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)) @@ -765,14 +765,14 @@ (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)) diff --git a/test/regress/regress1/sets/is_singleton1.smt2 b/test/regress/regress1/sets/is_singleton1.smt2 index a6f1961cd..b641e8ef9 100644 --- a/test/regress/regress1/sets/is_singleton1.smt2 +++ b/test/regress/regress1/sets/is_singleton1.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue2568.smt2 b/test/regress/regress1/sets/issue2568.smt2 index 17a05c876..80bcf1619 100644 --- a/test/regress/regress1/sets/issue2568.smt2 +++ b/test/regress/regress1/sets/issue2568.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue2904.smt2 b/test/regress/regress1/sets/issue2904.smt2 index 49268953d..c39ea09ba 100644 --- a/test/regress/regress1/sets/issue2904.smt2 +++ b/test/regress/regress1/sets/issue2904.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue4124-need-check.smt2 b/test/regress/regress1/sets/issue4124-need-check.smt2 index 46507df2a..c06a753e1 100644 --- a/test/regress/regress1/sets/issue4124-need-check.smt2 +++ b/test/regress/regress1/sets/issue4124-need-check.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue4370-2-lemma-ee-iter.smt2 b/test/regress/regress1/sets/issue4370-2-lemma-ee-iter.smt2 index aa7349261..fd3bd62eb 100644 --- a/test/regress/regress1/sets/issue4370-2-lemma-ee-iter.smt2 +++ b/test/regress/regress1/sets/issue4370-2-lemma-ee-iter.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue4370-4-lemma-ee-iter.smt2 b/test/regress/regress1/sets/issue4370-4-lemma-ee-iter.smt2 index 95425709d..bc2f103d2 100644 --- a/test/regress/regress1/sets/issue4370-4-lemma-ee-iter.smt2 +++ b/test/regress/regress1/sets/issue4370-4-lemma-ee-iter.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue4391-card-lasso.smt2 b/test/regress/regress1/sets/issue4391-card-lasso.smt2 index a8a0cb62d..f7a720436 100644 --- a/test/regress/regress1/sets/issue4391-card-lasso.smt2 +++ b/test/regress/regress1/sets/issue4391-card-lasso.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue5271.smt2 b/test/regress/regress1/sets/issue5271.smt2 index 3c64e1d30..b8f4f3e85 100644 --- a/test/regress/regress1/sets/issue5271.smt2 +++ b/test/regress/regress1/sets/issue5271.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue5309.smt2 b/test/regress/regress1/sets/issue5309.smt2 index 383b1263e..f9f8efbc9 100644 --- a/test/regress/regress1/sets/issue5309.smt2 +++ b/test/regress/regress1/sets/issue5309.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue5342.smt2 b/test/regress/regress1/sets/issue5342.smt2 index e5e7ed65d..1b4943535 100644 --- a/test/regress/regress1/sets/issue5342.smt2 +++ b/test/regress/regress1/sets/issue5342.smt2 @@ -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 diff --git a/test/regress/regress1/sets/issue5342_difference_version.smt2 b/test/regress/regress1/sets/issue5342_difference_version.smt2 index 143ac56c2..31b28824c 100644 --- a/test/regress/regress1/sets/issue5342_difference_version.smt2 +++ b/test/regress/regress1/sets/issue5342_difference_version.smt2 @@ -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 diff --git a/test/regress/regress1/sets/issue5705-cg-subtyping.smt2 b/test/regress/regress1/sets/issue5705-cg-subtyping.smt2 index df5b2246c..27d014e53 100644 --- a/test/regress/regress1/sets/issue5705-cg-subtyping.smt2 +++ b/test/regress/regress1/sets/issue5705-cg-subtyping.smt2 @@ -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) diff --git a/test/regress/regress1/sets/issue5942-witness.smt2 b/test/regress/regress1/sets/issue5942-witness.smt2 index 901f60edb..efe02117f 100644 --- a/test/regress/regress1/sets/issue5942-witness.smt2 +++ b/test/regress/regress1/sets/issue5942-witness.smt2 @@ -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) diff --git a/test/regress/regress1/sets/lemmabug-ListElts317minimized.smt2 b/test/regress/regress1/sets/lemmabug-ListElts317minimized.smt2 index be1e36a97..ae71a1edb 100644 --- a/test/regress/regress1/sets/lemmabug-ListElts317minimized.smt2 +++ b/test/regress/regress1/sets/lemmabug-ListElts317minimized.smt2 @@ -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. ; @@ -23,15 +23,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) @@ -69,16 +69,16 @@ (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) diff --git a/test/regress/regress1/sets/remove_check_free_31_6.smt2 b/test/regress/regress1/sets/remove_check_free_31_6.smt2 index 2bf2d4c62..c2ff1da23 100644 --- a/test/regress/regress1/sets/remove_check_free_31_6.smt2 +++ b/test/regress/regress1/sets/remove_check_free_31_6.smt2 @@ -76,22 +76,22 @@ :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)) @@ -117,42 +117,42 @@ (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) @@ -181,59 +181,59 @@ (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) @@ -245,8 +245,8 @@ (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) @@ -263,35 +263,35 @@ (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)) @@ -311,7 +311,7 @@ (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)) @@ -320,22 +320,22 @@ :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))) diff --git a/test/regress/regress1/sets/set-comp-sat.smt2 b/test/regress/regress1/sets/set-comp-sat.smt2 index d6a64c36e..b8c2c1cfd 100644 --- a/test/regress/regress1/sets/set-comp-sat.smt2 +++ b/test/regress/regress1/sets/set-comp-sat.smt2 @@ -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) diff --git a/test/regress/regress1/sets/setofsets-disequal.smt2 b/test/regress/regress1/sets/setofsets-disequal.smt2 index 1702aab27..f137ed7dd 100644 --- a/test/regress/regress1/sets/setofsets-disequal.smt2 +++ b/test/regress/regress1/sets/setofsets-disequal.smt2 @@ -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) diff --git a/test/regress/regress1/sets/sets-tuple-poly.cvc.smt2 b/test/regress/regress1/sets/sets-tuple-poly.cvc.smt2 index d75b9c3ae..64a2306c4 100644 --- a/test/regress/regress1/sets/sets-tuple-poly.cvc.smt2 +++ b/test/regress/regress1/sets/sets-tuple-poly.cvc.smt2 @@ -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) diff --git a/test/regress/regress1/sets/sets-uc-wrong.smt2 b/test/regress/regress1/sets/sets-uc-wrong.smt2 index e8b768d36..73588db4d 100644 --- a/test/regress/regress1/sets/sets-uc-wrong.smt2 +++ b/test/regress/regress1/sets/sets-uc-wrong.smt2 @@ -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) diff --git a/test/regress/regress1/sets/sharingbug.smt2 b/test/regress/regress1/sets/sharingbug.smt2 index 82c6eb8f0..a050e9d0e 100644 --- a/test/regress/regress1/sets/sharingbug.smt2 +++ b/test/regress/regress1/sets/sharingbug.smt2 @@ -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))) diff --git a/test/regress/regress1/sets/univ-set-uf-elim.smt2 b/test/regress/regress1/sets/univ-set-uf-elim.smt2 index f02788a72..548deca05 100644 --- a/test/regress/regress1/sets/univ-set-uf-elim.smt2 +++ b/test/regress/regress1/sets/univ-set-uf-elim.smt2 @@ -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) diff --git a/test/regress/regress1/strings/issue6184-unsat-core.smt2 b/test/regress/regress1/strings/issue6184-unsat-core.smt2 index 6673dc3b9..5e257da00 100644 --- a/test/regress/regress1/strings/issue6184-unsat-core.smt2 +++ b/test/regress/regress1/strings/issue6184-unsat-core.smt2 @@ -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) diff --git a/test/regress/regress1/sygus/sets-pred-test.sy b/test/regress/regress1/sygus/sets-pred-test.sy index f45329b27..18e783027 100644 --- a/test/regress/regress1/sygus/sets-pred-test.sy +++ b/test/regress/regress1/sygus/sets-pred-test.sy @@ -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) diff --git a/test/regress/regress1/sym/sym-setAB.smt2 b/test/regress/regress1/sym/sym-setAB.smt2 index 0fdf90bfb..730484456 100644 --- a/test/regress/regress1/sym/sym-setAB.smt2 +++ b/test/regress/regress1/sym/sym-setAB.smt2 @@ -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) diff --git a/test/regress/regress1/sym/sym1.smt2 b/test/regress/regress1/sym/sym1.smt2 index 987b6c1f4..a468d6c87 100644 --- a/test/regress/regress1/sym/sym1.smt2 +++ b/test/regress/regress1/sym/sym1.smt2 @@ -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)) diff --git a/test/regress/regress1/sym/sym3.smt2 b/test/regress/regress1/sym/sym3.smt2 index 50ba55c42..4f942ce8d 100644 --- a/test/regress/regress1/sym/sym3.smt2 +++ b/test/regress/regress1/sym/sym3.smt2 @@ -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)))) diff --git a/test/regress/regress1/sym/sym5.smt2 b/test/regress/regress1/sym/sym5.smt2 index c13497acd..cf9cbe092 100644 --- a/test/regress/regress1/sym/sym5.smt2 +++ b/test/regress/regress1/sym/sym5.smt2 @@ -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) diff --git a/test/regress/regress1/trim.cvc.smt2 b/test/regress/regress1/trim.cvc.smt2 index 31dc96ca3..f05e08572 100644 --- a/test/regress/regress1/trim.cvc.smt2 +++ b/test/regress/regress1/trim.cvc.smt2 @@ -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) diff --git a/test/regress/regress2/bug812.smt2 b/test/regress/regress2/bug812.smt2 index 79eb1c72c..43ace7b31 100644 --- a/test/regress/regress2/bug812.smt2 +++ b/test/regress/regress2/bug812.smt2 @@ -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) @@ -111,7 +111,7 @@ (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) diff --git a/test/regress/regress2/ho/auth0068.smt2 b/test/regress/regress2/ho/auth0068.smt2 index fc788a15c..9a5137bef 100644 --- a/test/regress/regress2/ho/auth0068.smt2 +++ b/test/regress/regress2/ho/auth0068.smt2 @@ -61,27 +61,27 @@ (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) @@ -111,51 +111,51 @@ (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)) @@ -176,43 +176,43 @@ (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)) @@ -220,7 +220,7 @@ (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)) @@ -256,11 +256,11 @@ (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)) @@ -314,177 +314,177 @@ (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) diff --git a/test/regress/regress2/sygus/sets-fun-test.sy b/test/regress/regress2/sygus/sets-fun-test.sy index fdcaaefa9..43a8b36a9 100644 --- a/test/regress/regress2/sygus/sets-fun-test.sy +++ b/test/regress/regress2/sygus/sets-fun-test.sy @@ -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) diff --git a/test/regress/regress4/sets-card-neg-mem-union-2.smt2 b/test/regress/regress4/sets-card-neg-mem-union-2.smt2 index baeb1387a..ffc495655 100644 --- a/test/regress/regress4/sets-card-neg-mem-union-2.smt2 +++ b/test/regress/regress4/sets-card-neg-mem-union-2.smt2 @@ -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) diff --git a/test/unit/api/java/SolverTest.java b/test/unit/api/java/SolverTest.java index f89ecfffd..2f134b6bf 100644 --- a/test/unit/api/java/SolverTest.java +++ b/test/unit/api/java/SolverTest.java @@ -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()); } } diff --git a/test/unit/api/java/TermTest.java b/test/unit/api/java/TermTest.java index 94f35e97f..bf0beb024 100644 --- a/test/unit/api/java/TermTest.java +++ b/test/unit/api/java/TermTest.java @@ -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()); diff --git a/test/unit/api/solver_black.cpp b/test/unit/api/solver_black.cpp index eca6683ba..ab47ae90b 100644 --- a/test/unit/api/solver_black.cpp +++ b/test/unit/api/solver_black.cpp @@ -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()); } diff --git a/test/unit/api/term_black.cpp b/test/unit/api/term_black.cpp index 7cfbe2527..9e52174b4 100644 --- a/test/unit/api/term_black.cpp +++ b/test/unit/api/term_black.cpp @@ -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()); diff --git a/test/unit/theory/theory_bags_normal_form_white.cpp b/test/unit/theory/theory_bags_normal_form_white.cpp index 556a84d45..e0a5577b4 100644 --- a/test/unit/theory/theory_bags_normal_form_white.cpp +++ b/test/unit/theory/theory_bags_normal_form_white.cpp @@ -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 diff --git a/test/unit/theory/theory_sets_type_rules_white.cpp b/test/unit/theory/theory_sets_type_rules_white.cpp index 81884732a..2fcd626e3 100644 --- a/test/unit/theory/theory_sets_type_rules_white.cpp +++ b/test/unit/theory/theory_sets_type_rules_white.cpp @@ -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) -- 2.30.2