author | Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> |
Mon, 22 Aug 2022 06:27:28 +0200 | |
changeset 75956 | 1e2a9d2251b0 |
parent 75955 | 5305c65dcbb2 |
child 75957 | 515b17021c91 |
--- a/src/HOL/SMT.thy Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/SMT.thy Mon Aug 22 06:27:28 2022 +0200 @@ -627,7 +627,6 @@ ML_file \<open>Tools/SMT/lethe_isar.ML\<close> ML_file \<open>Tools/SMT/lethe_proof_parse.ML\<close> ML_file \<open>Tools/SMT/cvc_proof_parse.ML\<close> -ML_file \<open>Tools/SMT/verit_proof.ML\<close> ML_file \<open>Tools/SMT/conj_disj_perm.ML\<close> ML_file \<open>Tools/SMT/smt_replay_methods.ML\<close> ML_file \<open>Tools/SMT/smt_replay.ML\<close> @@ -638,6 +637,7 @@ ML_file \<open>Tools/SMT/z3_replay.ML\<close> ML_file \<open>Tools/SMT/lethe_replay_methods.ML\<close> ML_file \<open>Tools/SMT/verit_replay_methods.ML\<close> +ML_file \<open>Tools/SMT/verit_strategies.ML\<close> ML_file \<open>Tools/SMT/verit_replay.ML\<close> ML_file \<open>Tools/SMT/smt_systems.ML\<close>
--- a/src/HOL/SMT_Examples/SMT_Examples_Verit.certs Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/SMT_Examples/SMT_Examples_Verit.certs Mon Aug 22 06:27:28 2022 +0200 @@ -8866,3 +8866,3566 @@ (step t354 (cl @p_704 @p_705 @p_588 @p_625 @p_626 @p_413) :rule th_resolution :premises (t353 t261)) (step t355 (cl @p_705 @p_588 @p_625 @p_626 @p_413 @p_661 @p_693 @p_689 @p_595) :rule th_resolution :premises (t354 t337)) (step t356 (cl) :rule resolution :premises (t355 t350 t168 t266 t352 t200 t207 t232 t234 t329)) +eae55ce4deb2476399eb5222073e987ca2cc4536 3015 0 +unsat +(define-fun veriT_sk0 () A_b_c_M_state_fun$ (! (choice ((veriT_vr57 A_b_c_M_state_fun$)) (not (forall ((veriT_vr58 A_b_c_M_state_fun$)) (! (=> (! (forall ((veriT_vr59 A$) (veriT_vr60 C$)) (! (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_vr57 veriT_vr59) :named @p_552) veriT_vr60) :named @p_544)) :named @p_542) (! (and (! (= (! (is_fail$ (! (run$ (! (fun_app$ veriT_vr58 veriT_vr59) :named @p_554) veriT_vr60) :named @p_543)) :named @p_556) @p_542) :named @p_561) (! (forall ((veriT_vr61 B$) (veriT_vr62 C$)) (! (= (! (is_res$ @p_543 (! (pair$ veriT_vr61 veriT_vr62) :named @p_545)) :named @p_566) (! (is_res$ @p_544 @p_545) :named @p_570)) :named @p_571)) :named @p_562)) :named @p_572)) :named @p_573)) :named @p_551) (! (forall ((veriT_vr63 D$)) (! (or (! (is_fail$a (! (run$a (! (b$ veriT_vr57) :named @p_575) veriT_vr63) :named @p_546)) :named @p_548) (! (exists ((veriT_vr64 E$) (veriT_vr65 D$)) (! (and (! (is_res$a @p_546 (! (pair$a veriT_vr64 veriT_vr65) :named @p_580)) :named @p_581) (! (is_fail$b (! (run$b (! (c$ veriT_vr64 veriT_vr57) :named @p_583) veriT_vr65) :named @p_585)) :named @p_586)) :named @p_587)) :named @p_576) (! (and (! (and (! (=> (! (or (! (is_fail$a (! (run$a (! (b$ veriT_vr58) :named @p_588) veriT_vr63) :named @p_547)) :named @p_549) (! (exists ((veriT_vr66 E$) (veriT_vr67 D$)) (! (and (! (is_res$a @p_547 (! (pair$a veriT_vr66 veriT_vr67) :named @p_592)) :named @p_593) (! (is_fail$b (! (run$b (! (c$ veriT_vr66 veriT_vr58) :named @p_595) veriT_vr67) :named @p_597)) :named @p_598)) :named @p_599)) :named @p_589)) :named @p_600) (! (or @p_548 (! (exists ((veriT_vr68 E$) (veriT_vr69 D$)) (! (and (! (is_res$a @p_546 (! (pair$a veriT_vr68 veriT_vr69) :named @p_603)) :named @p_604) (! (is_fail$b (! (run$b (! (c$ veriT_vr68 veriT_vr57) :named @p_606) veriT_vr69) :named @p_608)) :named @p_609)) :named @p_610)) :named @p_602)) :named @p_611)) :named @p_613) (! (=> (! (or @p_548 (! (exists ((veriT_vr70 E$) (veriT_vr71 D$)) (! (and (! (is_res$a @p_546 (! (pair$a veriT_vr70 veriT_vr71) :named @p_615)) :named @p_616) (! (is_fail$b (! (run$b (! (c$ veriT_vr70 veriT_vr57) :named @p_618) veriT_vr71) :named @p_620)) :named @p_621)) :named @p_622)) :named @p_614)) :named @p_623) (! (or @p_549 (! (exists ((veriT_vr72 E$) (veriT_vr73 D$)) (! (and (! (is_res$a @p_547 (! (pair$a veriT_vr72 veriT_vr73) :named @p_626)) :named @p_627) (! (is_fail$b (! (run$b (! (c$ veriT_vr72 veriT_vr58) :named @p_629) veriT_vr73) :named @p_631)) :named @p_632)) :named @p_633)) :named @p_625)) :named @p_634)) :named @p_636)) :named @p_637) (! (forall ((veriT_vr74 F$) (veriT_vr75 D$)) (! (and (! (=> (! (or @p_549 (! (exists ((veriT_vr76 E$) (veriT_vr77 D$)) (! (and (! (is_res$a @p_547 (! (pair$a veriT_vr76 veriT_vr77) :named @p_640)) :named @p_641) (! (is_res$b (! (run$b (! (c$ veriT_vr76 veriT_vr58) :named @p_643) veriT_vr77) :named @p_645) (! (pair$b veriT_vr74 veriT_vr75) :named @p_550)) :named @p_646)) :named @p_647)) :named @p_639)) :named @p_648) (! (or @p_548 (! (exists ((veriT_vr78 E$) (veriT_vr79 D$)) (! (and (! (is_res$a @p_546 (! (pair$a veriT_vr78 veriT_vr79) :named @p_650)) :named @p_651) (! (is_res$b (! (run$b (! (c$ veriT_vr78 veriT_vr57) :named @p_653) veriT_vr79) :named @p_655) @p_550) :named @p_659)) :named @p_660)) :named @p_649)) :named @p_661)) :named @p_663) (! (=> (! (or @p_548 (! (exists ((veriT_vr80 E$) (veriT_vr81 D$)) (! (and (! (is_res$a @p_546 (! (pair$a veriT_vr80 veriT_vr81) :named @p_665)) :named @p_666) (! (is_res$b (! (run$b (! (c$ veriT_vr80 veriT_vr57) :named @p_668) veriT_vr81) :named @p_670) @p_550) :named @p_671)) :named @p_672)) :named @p_664)) :named @p_673) (! (or @p_549 (! (exists ((veriT_vr82 E$) (veriT_vr83 D$)) (! (and (! (is_res$a @p_547 (! (pair$a veriT_vr82 veriT_vr83) :named @p_675)) :named @p_676) (! (is_res$b (! (run$b (! (c$ veriT_vr82 veriT_vr58) :named @p_678) veriT_vr83) :named @p_680) @p_550) :named @p_681)) :named @p_682)) :named @p_674)) :named @p_683)) :named @p_685)) :named @p_686)) :named @p_638)) :named @p_687)) :named @p_688)) :named @p_574)) :named @p_689)))) :named @p_696)) +(define-fun veriT_sk1 () A_b_c_M_state_fun$ (! (choice ((veriT_vr58 A_b_c_M_state_fun$)) (not (=> (forall ((veriT_vr59 A$) (veriT_vr60 C$)) (or (! (is_fail$ (! (run$ (fun_app$ @p_696 veriT_vr59) veriT_vr60) :named @p_698)) :named @p_697) (and (= @p_556 @p_697) (forall ((veriT_vr61 B$) (veriT_vr62 C$)) (= @p_566 (is_res$ @p_698 @p_545)))))) (forall ((veriT_vr63 D$)) (or (! (is_fail$a (! (run$a (! (b$ @p_696) :named @p_721) veriT_vr63) :named @p_699)) :named @p_700) (! (exists ((veriT_vr64 E$) (veriT_vr65 D$)) (and (is_res$a @p_699 @p_580) (is_fail$b (run$b (c$ veriT_vr64 @p_696) veriT_vr65)))) :named @p_704) (and (and (=> @p_600 (! (or @p_700 (exists ((veriT_vr68 E$) (veriT_vr69 D$)) (and (is_res$a @p_699 @p_603) (is_fail$b (run$b (c$ veriT_vr68 @p_696) veriT_vr69))))) :named @p_707)) (=> (! (or @p_700 (exists ((veriT_vr70 E$) (veriT_vr71 D$)) (and (is_res$a @p_699 @p_615) (! (is_fail$b (run$b (c$ veriT_vr70 @p_696) veriT_vr71)) :named @p_722)))) :named @p_708) @p_634)) (forall ((veriT_vr74 F$) (veriT_vr75 D$)) (and (=> @p_648 (! (or @p_700 (exists ((veriT_vr78 E$) (veriT_vr79 D$)) (and (is_res$a @p_699 @p_650) (! (is_res$b (! (run$b (c$ veriT_vr78 @p_696) veriT_vr79) :named @p_737) @p_550) :named @p_730)))) :named @p_710)) (=> (! (or @p_700 (exists ((veriT_vr80 E$) (veriT_vr81 D$)) (and (is_res$a @p_699 @p_665) (! (is_res$b (! (run$b (c$ veriT_vr80 @p_696) veriT_vr81) :named @p_740) @p_550) :named @p_732)))) :named @p_711) @p_683))))))))) :named @p_705)) +(define-fun veriT_sk2 () D$ (! (choice ((veriT_vr63 D$)) (not (or @p_700 @p_704 (and (and (=> (or (! (is_fail$a (! (run$a (! (b$ @p_705) :named @p_715) veriT_vr63) :named @p_706)) :named @p_709) (exists ((veriT_vr66 E$) (veriT_vr67 D$)) (and (is_res$a @p_706 @p_592) (! (is_fail$b (run$b (c$ veriT_vr66 @p_705) veriT_vr67)) :named @p_716)))) @p_707) (=> @p_708 (or @p_709 (exists ((veriT_vr72 E$) (veriT_vr73 D$)) (and (is_res$a @p_706 @p_626) (is_fail$b (run$b (c$ veriT_vr72 @p_705) veriT_vr73))))))) (forall ((veriT_vr74 F$) (veriT_vr75 D$)) (and (=> (or @p_709 (exists ((veriT_vr76 E$) (veriT_vr77 D$)) (and (is_res$a @p_706 @p_640) (! (is_res$b (! (run$b (c$ veriT_vr76 @p_705) veriT_vr77) :named @p_727) @p_550) :named @p_729)))) @p_710) (=> @p_711 (or @p_709 (exists ((veriT_vr82 E$) (veriT_vr83 D$)) (and (is_res$a @p_706 @p_675) (! (is_res$b (! (run$b (c$ veriT_vr82 @p_705) veriT_vr83) :named @p_742) @p_550) :named @p_734))))))))))) :named @p_713)) +(define-fun veriT_sk3 () E$ (! (choice ((veriT_vr66 E$)) (exists ((veriT_vr67 D$)) (and (is_res$a (! (run$a @p_715 @p_713) :named @p_717) @p_592) @p_716))) :named @p_718)) +(define-fun veriT_sk4 () D$ (! (choice ((veriT_vr67 D$)) (and (is_res$a @p_717 (pair$a @p_718 veriT_vr67)) (is_fail$b (run$b (c$ @p_718 @p_705) veriT_vr67)))) :named @p_719)) +(define-fun veriT_sk5 () E$ (! (choice ((veriT_vr70 E$)) (exists ((veriT_vr71 D$)) (and (is_res$a (! (run$a @p_721 @p_713) :named @p_723) @p_615) @p_722))) :named @p_724)) +(define-fun veriT_sk6 () D$ (! (choice ((veriT_vr71 D$)) (and (is_res$a @p_723 (pair$a @p_724 veriT_vr71)) (is_fail$b (run$b (c$ @p_724 @p_696) veriT_vr71)))) :named @p_725)) +(define-fun veriT_sk7 () F$ (! (choice ((veriT_vr74 F$)) (not (forall ((veriT_vr75 D$)) (and (=> (or (! (is_fail$a @p_717) :named @p_733) (exists ((veriT_vr76 E$) (veriT_vr77 D$)) (and (! (is_res$a @p_717 @p_640) :named @p_728) @p_729))) (or (! (is_fail$a @p_723) :named @p_731) (exists ((veriT_vr78 E$) (veriT_vr79 D$)) (and (! (is_res$a @p_723 @p_650) :named @p_736) @p_730)))) (=> (or @p_731 (exists ((veriT_vr80 E$) (veriT_vr81 D$)) (and (! (is_res$a @p_723 @p_665) :named @p_739) @p_732))) (or @p_733 (exists ((veriT_vr82 E$) (veriT_vr83 D$)) (and (! (is_res$a @p_717 @p_675) :named @p_741) @p_734)))))))) :named @p_735)) +(define-fun veriT_sk8 () D$ (! (choice ((veriT_vr75 D$)) (not (and (=> (or @p_733 (exists ((veriT_vr76 E$) (veriT_vr77 D$)) (and @p_728 (is_res$b @p_727 (! (pair$b @p_735 veriT_vr75) :named @p_738))))) (or @p_731 (exists ((veriT_vr78 E$) (veriT_vr79 D$)) (and @p_736 (is_res$b @p_737 @p_738))))) (=> (or @p_731 (exists ((veriT_vr80 E$) (veriT_vr81 D$)) (and @p_739 (is_res$b @p_740 @p_738)))) (or @p_733 (exists ((veriT_vr82 E$) (veriT_vr83 D$)) (and @p_741 (is_res$b @p_742 @p_738)))))))) :named @p_746)) +(define-fun veriT_sk9 () E$ (! (choice ((veriT_vr76 E$)) (exists ((veriT_vr77 D$)) (and @p_728 (is_res$b @p_727 (! (pair$b @p_735 @p_746) :named @p_744))))) :named @p_743)) +(define-fun veriT_sk10 () D$ (! (choice ((veriT_vr77 D$)) (and (is_res$a @p_717 (pair$a @p_743 veriT_vr77)) (is_res$b (run$b (c$ @p_743 @p_705) veriT_vr77) @p_744))) :named @p_745)) +(define-fun veriT_sk11 () E$ (! (choice ((veriT_vr80 E$)) (exists ((veriT_vr81 D$)) (and @p_739 (is_res$b @p_740 @p_744)))) :named @p_748)) +(define-fun veriT_sk12 () D$ (! (choice ((veriT_vr81 D$)) (and (is_res$a @p_723 (pair$a @p_748 veriT_vr81)) (is_res$b (run$b (c$ @p_748 @p_696) veriT_vr81) @p_744))) :named @p_749)) +(define-fun veriT_sk13 () A$ (! (choice ((veriT_vr122 A$)) (not (forall ((veriT_vr123 C$)) (! (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk0 veriT_vr122) :named @p_1255) veriT_vr123) :named @p_1191)) :named @p_1189) (! (and (! (= (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk1 veriT_vr122) :named @p_1257) veriT_vr123) :named @p_1190)) :named @p_1259) @p_1189) :named @p_1263) (! (forall ((veriT_vr124 B$) (veriT_vr125 C$)) (! (= (! (is_res$ @p_1190 (! (pair$ veriT_vr124 veriT_vr125) :named @p_1192)) :named @p_1267) (! (is_res$ @p_1191 @p_1192) :named @p_1271)) :named @p_1272)) :named @p_1264)) :named @p_1273)) :named @p_1254)))) :named @p_1193)) +(define-fun veriT_sk14 () C$ (! (choice ((veriT_vr123 C$)) (not (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk0 @p_1193) :named @p_1201) veriT_vr123) :named @p_1196)) :named @p_1194) (and (= (is_fail$ (! (run$ (! (fun_app$ veriT_sk1 @p_1193) :named @p_1200) veriT_vr123) :named @p_1195)) @p_1194) (forall ((veriT_vr124 B$) (veriT_vr125 C$)) (= (is_res$ @p_1195 @p_1192) (is_res$ @p_1196 @p_1192))))))) :named @p_1197)) +(define-fun veriT_sk15 () B$ (! (choice ((veriT_vr124 B$)) (not (forall ((veriT_vr125 C$)) (= (is_res$ (! (run$ @p_1200 @p_1197) :named @p_1202) @p_1192) (is_res$ (! (run$ @p_1201 @p_1197) :named @p_1204) @p_1192))))) :named @p_1203)) +(define-fun veriT_sk16 () C$ (! (choice ((veriT_vr125 C$)) (not (= (is_res$ @p_1202 (! (pair$ @p_1203 veriT_vr125) :named @p_1205)) (is_res$ @p_1204 @p_1205)))) :named @p_1300)) +(define-fun veriT_sk25 () A$ (! (choice ((veriT_vr171 A$)) (not (forall ((veriT_vr172 C$)) (! (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk0 veriT_vr171) :named @p_1468) veriT_vr172) :named @p_1393)) :named @p_1391) (! (and (! (= (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk1 veriT_vr171) :named @p_1470) veriT_vr172) :named @p_1392)) :named @p_1472) @p_1391) :named @p_1476) (! (forall ((veriT_vr173 B$) (veriT_vr174 C$)) (! (= (! (is_res$ @p_1392 (! (pair$ veriT_vr173 veriT_vr174) :named @p_1394)) :named @p_1480) (! (is_res$ @p_1393 @p_1394) :named @p_1484)) :named @p_1485)) :named @p_1477)) :named @p_1486)) :named @p_1467)))) :named @p_1395)) +(define-fun veriT_sk26 () C$ (! (choice ((veriT_vr172 C$)) (not (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk0 @p_1395) :named @p_1403) veriT_vr172) :named @p_1398)) :named @p_1396) (and (= (is_fail$ (! (run$ (! (fun_app$ veriT_sk1 @p_1395) :named @p_1402) veriT_vr172) :named @p_1397)) @p_1396) (forall ((veriT_vr173 B$) (veriT_vr174 C$)) (= (is_res$ @p_1397 @p_1394) (is_res$ @p_1398 @p_1394))))))) :named @p_1399)) +(define-fun veriT_sk27 () B$ (! (choice ((veriT_vr173 B$)) (not (forall ((veriT_vr174 C$)) (= (is_res$ (! (run$ @p_1402 @p_1399) :named @p_1404) @p_1394) (is_res$ (! (run$ @p_1403 @p_1399) :named @p_1406) @p_1394))))) :named @p_1405)) +(define-fun veriT_sk28 () C$ (! (choice ((veriT_vr174 C$)) (not (= (is_res$ @p_1404 (! (pair$ @p_1405 veriT_vr174) :named @p_1407)) (is_res$ @p_1406 @p_1407)))) :named @p_1513)) +(define-fun veriT_sk29 () A$ (! (choice ((veriT_vr185 A$)) (not (forall ((veriT_vr186 C$)) (! (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk0 veriT_vr185) :named @p_1602) veriT_vr186) :named @p_1538)) :named @p_1536) (! (and (! (= (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk1 veriT_vr185) :named @p_1604) veriT_vr186) :named @p_1537)) :named @p_1606) @p_1536) :named @p_1610) (! (forall ((veriT_vr187 B$) (veriT_vr188 C$)) (! (= (! (is_res$ @p_1537 (! (pair$ veriT_vr187 veriT_vr188) :named @p_1539)) :named @p_1614) (! (is_res$ @p_1538 @p_1539) :named @p_1618)) :named @p_1619)) :named @p_1611)) :named @p_1620)) :named @p_1601)))) :named @p_1540)) +(define-fun veriT_sk30 () C$ (! (choice ((veriT_vr186 C$)) (not (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk0 @p_1540) :named @p_1548) veriT_vr186) :named @p_1543)) :named @p_1541) (and (= (is_fail$ (! (run$ (! (fun_app$ veriT_sk1 @p_1540) :named @p_1547) veriT_vr186) :named @p_1542)) @p_1541) (forall ((veriT_vr187 B$) (veriT_vr188 C$)) (= (is_res$ @p_1542 @p_1539) (is_res$ @p_1543 @p_1539))))))) :named @p_1544)) +(define-fun veriT_sk31 () B$ (! (choice ((veriT_vr187 B$)) (not (forall ((veriT_vr188 C$)) (= (is_res$ (! (run$ @p_1547 @p_1544) :named @p_1549) @p_1539) (is_res$ (! (run$ @p_1548 @p_1544) :named @p_1551) @p_1539))))) :named @p_1550)) +(define-fun veriT_sk32 () C$ (! (choice ((veriT_vr188 C$)) (not (= (is_res$ @p_1549 (! (pair$ @p_1550 veriT_vr188) :named @p_1552)) (is_res$ @p_1551 @p_1552)))) :named @p_1647)) +(define-fun veriT_sk41 () A$ (! (choice ((veriT_vr243 A$)) (not (forall ((veriT_vr244 C$)) (! (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk0 veriT_vr243) :named @p_1825) veriT_vr244) :named @p_1761)) :named @p_1759) (! (and (! (= (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk1 veriT_vr243) :named @p_1827) veriT_vr244) :named @p_1760)) :named @p_1829) @p_1759) :named @p_1833) (! (forall ((veriT_vr245 B$) (veriT_vr246 C$)) (! (= (! (is_res$ @p_1760 (! (pair$ veriT_vr245 veriT_vr246) :named @p_1762)) :named @p_1837) (! (is_res$ @p_1761 @p_1762) :named @p_1841)) :named @p_1842)) :named @p_1834)) :named @p_1843)) :named @p_1824)))) :named @p_1763)) +(define-fun veriT_sk42 () C$ (! (choice ((veriT_vr244 C$)) (not (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk0 @p_1763) :named @p_1771) veriT_vr244) :named @p_1766)) :named @p_1764) (and (= (is_fail$ (! (run$ (! (fun_app$ veriT_sk1 @p_1763) :named @p_1770) veriT_vr244) :named @p_1765)) @p_1764) (forall ((veriT_vr245 B$) (veriT_vr246 C$)) (= (is_res$ @p_1765 @p_1762) (is_res$ @p_1766 @p_1762))))))) :named @p_1767)) +(define-fun veriT_sk43 () B$ (! (choice ((veriT_vr245 B$)) (not (forall ((veriT_vr246 C$)) (= (is_res$ (! (run$ @p_1770 @p_1767) :named @p_1772) @p_1762) (is_res$ (! (run$ @p_1771 @p_1767) :named @p_1774) @p_1762))))) :named @p_1773)) +(define-fun veriT_sk44 () C$ (! (choice ((veriT_vr246 C$)) (not (= (is_res$ @p_1772 (! (pair$ @p_1773 veriT_vr246) :named @p_1775)) (is_res$ @p_1774 @p_1775)))) :named @p_1870)) +(assume axiom0 (! (not (! (=> (! (and (! (forall ((?v0 A_b_c_M_state_fun$) (?v1 A_b_c_M_state_fun$)) (! (=> (! (forall ((?v2 A$) (?v3 C$)) (! (or (! (is_fail$ (! (run$ (! (fun_app$ ?v0 ?v2) :named @p_34) ?v3) :named @p_3)) :named @p_1) (! (and (! (= (! (is_fail$ (! (run$ (! (fun_app$ ?v1 ?v2) :named @p_37) ?v3) :named @p_2)) :named @p_40) @p_1) :named @p_46) (! (forall ((?v4 B$) (?v5 C$)) (! (= (! (is_res$ @p_2 (! (pair$ ?v4 ?v5) :named @p_4)) :named @p_53) (! (is_res$ @p_3 @p_4) :named @p_58)) :named @p_60)) :named @p_48)) :named @p_62)) :named @p_64)) :named @p_17) (! (forall ((?v2 D$)) (! (or (! (is_fail$a (! (run$a (! (b$ ?v0) :named @p_68) ?v2) :named @p_7)) :named @p_5) (! (and (! (= (! (is_fail$a (! (run$a (! (b$ ?v1) :named @p_70) ?v2) :named @p_6)) :named @p_19) @p_5) :named @p_77) (! (forall ((?v3 E$) (?v4 D$)) (! (= (! (is_res$a @p_6 (! (pair$a ?v3 ?v4) :named @p_8)) :named @p_20) (! (is_res$a @p_7 @p_8) :named @p_18)) :named @p_88)) :named @p_79)) :named @p_90)) :named @p_92)) :named @p_66)) :named @p_94)) :named @p_24) (! (forall ((?v0 E$) (?v1 A_b_c_M_state_fun$) (?v2 A_b_c_M_state_fun$)) (! (=> (! (forall ((?v3 A$) (?v4 C$)) (! (or (! (is_fail$ (! (run$ (! (fun_app$ ?v1 ?v3) :named @p_102) ?v4) :named @p_11)) :named @p_9) (! (and (! (= (! (is_fail$ (! (run$ (! (fun_app$ ?v2 ?v3) :named @p_104) ?v4) :named @p_10)) :named @p_106) @p_9) :named @p_111) (! (forall ((?v5 B$) (?v6 C$)) (! (= (! (is_res$ @p_10 (! (pair$ ?v5 ?v6) :named @p_12)) :named @p_116) (! (is_res$ @p_11 @p_12) :named @p_120)) :named @p_121)) :named @p_112)) :named @p_122)) :named @p_123)) :named @p_101) (! (forall ((?v3 D$)) (! (or (! (is_fail$b (! (run$b (! (c$ ?v0 ?v1) :named @p_126) ?v3) :named @p_15)) :named @p_13) (! (and (! (= (! (is_fail$b (! (run$b (! (c$ ?v0 ?v2) :named @p_129) ?v3) :named @p_14)) :named @p_132) @p_13) :named @p_137) (! (forall ((?v4 F$) (?v5 D$)) (! (= (! (is_res$b @p_14 (! (pair$b ?v4 ?v5) :named @p_16)) :named @p_143) (! (is_res$b @p_15 @p_16) :named @p_148)) :named @p_150)) :named @p_139)) :named @p_152)) :named @p_154)) :named @p_124)) :named @p_156)) :named @p_96)) :named @p_158) (! (forall ((?v0 A_b_c_M_state_fun$) (?v1 A_b_c_M_state_fun$)) (! (=> @p_17 (! (forall ((?v2 D$)) (! (or @p_5 (! (or (! (exists ((?v3 E$) (?v4 D$)) (! (and @p_18 (! (is_fail$b (! (run$b (! (c$ ?v3 ?v0) :named @p_176) ?v4) :named @p_177)) :named @p_179)) :named @p_181)) :named @p_21) (! (and (! (= (! (or @p_19 (! (exists ((?v3 E$) (?v4 D$)) (! (and @p_20 (! (is_fail$b (! (run$b (! (c$ ?v3 ?v1) :named @p_187) ?v4) :named @p_188)) :named @p_190)) :named @p_192)) :named @p_184)) :named @p_194) (! (or @p_5 @p_21) :named @p_201)) :named @p_203) (! (forall ((?v3 F$) (?v4 D$)) (! (= (! (or @p_19 (! (exists ((?v5 E$) (?v6 D$)) (! (and (! (is_res$a @p_6 (! (pair$a ?v5 ?v6) :named @p_22)) :named @p_209) (! (is_res$b (! (run$b (! (c$ ?v5 ?v1) :named @p_212) ?v6) :named @p_214) (! (pair$b ?v3 ?v4) :named @p_23)) :named @p_216)) :named @p_218)) :named @p_207)) :named @p_220) (! (or @p_5 (! (exists ((?v5 E$) (?v6 D$)) (! (and (! (is_res$a @p_7 @p_22) :named @p_225) (! (is_res$b (! (run$b (! (c$ ?v5 ?v0) :named @p_227) ?v6) :named @p_228) @p_23) :named @p_232)) :named @p_234)) :named @p_222)) :named @p_236)) :named @p_238)) :named @p_205)) :named @p_240)) :named @p_242)) :named @p_244)) :named @p_173)) :named @p_246)) :named @p_161)) :named @p_248)) :named @p_251)) +(anchor :step t2 :args ((:= (?v0 A_b_c_M_state_fun$) veriT_vr0) (:= (?v1 A_b_c_M_state_fun$) veriT_vr1))) +(anchor :step t2.t1 :args ((:= (?v2 A$) veriT_vr2) (:= (?v3 C$) veriT_vr3))) +(step t2.t1.t1 (cl (! (= ?v0 veriT_vr0) :named @p_42)) :rule refl) +(step t2.t1.t2 (cl (! (= ?v2 veriT_vr2) :named @p_36)) :rule refl) +(step t2.t1.t3 (cl (! (= @p_34 (! (fun_app$ veriT_vr0 veriT_vr2) :named @p_35)) :named @p_43)) :rule cong :premises (t2.t1.t1 t2.t1.t2)) +(step t2.t1.t4 (cl (! (= ?v3 veriT_vr3) :named @p_39)) :rule refl) +(step t2.t1.t5 (cl (! (= @p_3 (! (run$ @p_35 veriT_vr3) :named @p_27)) :named @p_44)) :rule cong :premises (t2.t1.t3 t2.t1.t4)) +(step t2.t1.t6 (cl (! (= @p_1 (! (is_fail$ @p_27) :named @p_25)) :named @p_45)) :rule cong :premises (t2.t1.t5)) +(step t2.t1.t7 (cl (! (= ?v1 veriT_vr1) :named @p_50)) :rule refl) +(step t2.t1.t8 (cl @p_36) :rule refl) +(step t2.t1.t9 (cl (! (= @p_37 (! (fun_app$ veriT_vr1 veriT_vr2) :named @p_38)) :named @p_51)) :rule cong :premises (t2.t1.t7 t2.t1.t8)) +(step t2.t1.t10 (cl @p_39) :rule refl) +(step t2.t1.t11 (cl (! (= @p_2 (! (run$ @p_38 veriT_vr3) :named @p_26)) :named @p_52)) :rule cong :premises (t2.t1.t9 t2.t1.t10)) +(step t2.t1.t12 (cl (! (= @p_40 (! (is_fail$ @p_26) :named @p_41)) :named @p_165)) :rule cong :premises (t2.t1.t11)) +(step t2.t1.t13 (cl @p_42) :rule refl) +(step t2.t1.t14 (cl @p_36) :rule refl) +(step t2.t1.t15 (cl @p_43) :rule cong :premises (t2.t1.t13 t2.t1.t14)) +(step t2.t1.t16 (cl @p_39) :rule refl) +(step t2.t1.t17 (cl @p_44) :rule cong :premises (t2.t1.t15 t2.t1.t16)) +(step t2.t1.t18 (cl @p_45) :rule cong :premises (t2.t1.t17)) +(step t2.t1.t19 (cl (! (= @p_46 (! (= @p_41 @p_25) :named @p_47)) :named @p_166)) :rule cong :premises (t2.t1.t12 t2.t1.t18)) +(anchor :step t2.t1.t20 :args ((:= (?v4 B$) veriT_vr4) (:= (?v5 C$) veriT_vr5))) +(step t2.t1.t20.t1 (cl @p_50) :rule refl) +(step t2.t1.t20.t2 (cl @p_36) :rule refl) +(step t2.t1.t20.t3 (cl @p_51) :rule cong :premises (t2.t1.t20.t1 t2.t1.t20.t2)) +(step t2.t1.t20.t4 (cl @p_39) :rule refl) +(step t2.t1.t20.t5 (cl @p_52) :rule cong :premises (t2.t1.t20.t3 t2.t1.t20.t4)) +(step t2.t1.t20.t6 (cl (! (= ?v4 veriT_vr4) :named @p_55)) :rule refl) +(step t2.t1.t20.t7 (cl (! (= ?v5 veriT_vr5) :named @p_56)) :rule refl) +(step t2.t1.t20.t8 (cl (! (= @p_4 (! (pair$ veriT_vr4 veriT_vr5) :named @p_28)) :named @p_57)) :rule cong :premises (t2.t1.t20.t6 t2.t1.t20.t7)) +(step t2.t1.t20.t9 (cl (! (= @p_53 (! (is_res$ @p_26 @p_28) :named @p_54)) :named @p_168)) :rule cong :premises (t2.t1.t20.t5 t2.t1.t20.t8)) +(step t2.t1.t20.t10 (cl @p_42) :rule refl) +(step t2.t1.t20.t11 (cl @p_36) :rule refl) +(step t2.t1.t20.t12 (cl @p_43) :rule cong :premises (t2.t1.t20.t10 t2.t1.t20.t11)) +(step t2.t1.t20.t13 (cl @p_39) :rule refl) +(step t2.t1.t20.t14 (cl @p_44) :rule cong :premises (t2.t1.t20.t12 t2.t1.t20.t13)) +(step t2.t1.t20.t15 (cl @p_55) :rule refl) +(step t2.t1.t20.t16 (cl @p_56) :rule refl) +(step t2.t1.t20.t17 (cl @p_57) :rule cong :premises (t2.t1.t20.t15 t2.t1.t20.t16)) +(step t2.t1.t20.t18 (cl (! (= @p_58 (! (is_res$ @p_27 @p_28) :named @p_59)) :named @p_169)) :rule cong :premises (t2.t1.t20.t14 t2.t1.t20.t17)) +(step t2.t1.t20.t19 (cl (! (= @p_60 (! (= @p_54 @p_59) :named @p_61)) :named @p_170)) :rule cong :premises (t2.t1.t20.t9 t2.t1.t20.t18)) +(step t2.t1.t20 (cl (! (= @p_48 (! (forall ((veriT_vr4 B$) (veriT_vr5 C$)) @p_61) :named @p_49)) :named @p_167)) :rule bind) +(step t2.t1.t21 (cl (! (= @p_62 (! (and @p_47 @p_49) :named @p_63)) :named @p_171)) :rule cong :premises (t2.t1.t19 t2.t1.t20)) +(step t2.t1.t22 (cl (! (= @p_64 (! (or @p_25 @p_63) :named @p_65)) :named @p_172)) :rule cong :premises (t2.t1.t6 t2.t1.t21)) +(step t2.t1 (cl (! (= @p_17 (! (forall ((veriT_vr2 A$) (veriT_vr3 C$)) @p_65) :named @p_33)) :named @p_164)) :rule bind) +(anchor :step t2.t2 :args ((:= (?v2 D$) veriT_vr6))) +(step t2.t2.t1 (cl @p_42) :rule refl) +(step t2.t2.t2 (cl (! (= @p_68 (! (b$ veriT_vr0) :named @p_69)) :named @p_74)) :rule cong :premises (t2.t2.t1)) +(step t2.t2.t3 (cl (! (= ?v2 veriT_vr6) :named @p_72)) :rule refl) +(step t2.t2.t4 (cl (! (= @p_7 (! (run$a @p_69 veriT_vr6) :named @p_31)) :named @p_75)) :rule cong :premises (t2.t2.t2 t2.t2.t3)) +(step t2.t2.t5 (cl (! (= @p_5 (! (is_fail$a @p_31) :named @p_29)) :named @p_76)) :rule cong :premises (t2.t2.t4)) +(step t2.t2.t6 (cl @p_50) :rule refl) +(step t2.t2.t7 (cl (! (= @p_70 (! (b$ veriT_vr1) :named @p_71)) :named @p_81)) :rule cong :premises (t2.t2.t6)) +(step t2.t2.t8 (cl @p_72) :rule refl) +(step t2.t2.t9 (cl (! (= @p_6 (! (run$a @p_71 veriT_vr6) :named @p_30)) :named @p_82)) :rule cong :premises (t2.t2.t7 t2.t2.t8)) +(step t2.t2.t10 (cl (! (= @p_19 (! (is_fail$a @p_30) :named @p_73)) :named @p_183)) :rule cong :premises (t2.t2.t9)) +(step t2.t2.t11 (cl @p_42) :rule refl) +(step t2.t2.t12 (cl @p_74) :rule cong :premises (t2.t2.t11)) +(step t2.t2.t13 (cl @p_72) :rule refl) +(step t2.t2.t14 (cl @p_75) :rule cong :premises (t2.t2.t12 t2.t2.t13)) +(step t2.t2.t15 (cl @p_76) :rule cong :premises (t2.t2.t14)) +(step t2.t2.t16 (cl (= @p_77 (! (= @p_73 @p_29) :named @p_78))) :rule cong :premises (t2.t2.t10 t2.t2.t15)) +(anchor :step t2.t2.t17 :args ((:= (?v3 E$) veriT_vr7) (:= (?v4 D$) veriT_vr8))) +(step t2.t2.t17.t1 (cl @p_50) :rule refl) +(step t2.t2.t17.t2 (cl @p_81) :rule cong :premises (t2.t2.t17.t1)) +(step t2.t2.t17.t3 (cl @p_72) :rule refl) +(step t2.t2.t17.t4 (cl @p_82) :rule cong :premises (t2.t2.t17.t2 t2.t2.t17.t3)) +(step t2.t2.t17.t5 (cl (! (= ?v3 veriT_vr7) :named @p_84)) :rule refl) +(step t2.t2.t17.t6 (cl (! (= ?v4 veriT_vr8) :named @p_85)) :rule refl) +(step t2.t2.t17.t7 (cl (! (= @p_8 (! (pair$a veriT_vr7 veriT_vr8) :named @p_32)) :named @p_86)) :rule cong :premises (t2.t2.t17.t5 t2.t2.t17.t6)) +(step t2.t2.t17.t8 (cl (! (= @p_20 (! (is_res$a @p_30 @p_32) :named @p_83)) :named @p_186)) :rule cong :premises (t2.t2.t17.t4 t2.t2.t17.t7)) +(step t2.t2.t17.t9 (cl @p_42) :rule refl) +(step t2.t2.t17.t10 (cl @p_74) :rule cong :premises (t2.t2.t17.t9)) +(step t2.t2.t17.t11 (cl @p_72) :rule refl) +(step t2.t2.t17.t12 (cl @p_75) :rule cong :premises (t2.t2.t17.t10 t2.t2.t17.t11)) +(step t2.t2.t17.t13 (cl @p_84) :rule refl) +(step t2.t2.t17.t14 (cl @p_85) :rule refl) +(step t2.t2.t17.t15 (cl @p_86) :rule cong :premises (t2.t2.t17.t13 t2.t2.t17.t14)) +(step t2.t2.t17.t16 (cl (! (= @p_18 (! (is_res$a @p_31 @p_32) :named @p_87)) :named @p_175)) :rule cong :premises (t2.t2.t17.t12 t2.t2.t17.t15)) +(step t2.t2.t17.t17 (cl (= @p_88 (! (= @p_83 @p_87) :named @p_89))) :rule cong :premises (t2.t2.t17.t8 t2.t2.t17.t16)) +(step t2.t2.t17 (cl (= @p_79 (! (forall ((veriT_vr7 E$) (veriT_vr8 D$)) @p_89) :named @p_80))) :rule bind) +(step t2.t2.t18 (cl (= @p_90 (! (and @p_78 @p_80) :named @p_91))) :rule cong :premises (t2.t2.t16 t2.t2.t17)) +(step t2.t2.t19 (cl (= @p_92 (! (or @p_29 @p_91) :named @p_93))) :rule cong :premises (t2.t2.t5 t2.t2.t18)) +(step t2.t2 (cl (= @p_66 (! (forall ((veriT_vr6 D$)) @p_93) :named @p_67))) :rule bind) +(step t2.t3 (cl (= @p_94 (! (=> @p_33 @p_67) :named @p_95))) :rule cong :premises (t2.t1 t2.t2)) +(step t2 (cl (= @p_24 (! (forall ((veriT_vr0 A_b_c_M_state_fun$) (veriT_vr1 A_b_c_M_state_fun$)) @p_95) :named @p_159))) :rule bind) +(anchor :step t3 :args ((:= (?v0 E$) veriT_vr7) (:= (?v1 A_b_c_M_state_fun$) veriT_vr0) (:= (?v2 A_b_c_M_state_fun$) veriT_vr1))) +(anchor :step t3.t1 :args ((:= (?v3 A$) veriT_vr2) (:= (?v4 C$) veriT_vr3))) +(step t3.t1.t1 (cl (! (= ?v1 veriT_vr0) :named @p_107)) :rule refl) +(step t3.t1.t2 (cl (! (= ?v3 veriT_vr2) :named @p_103)) :rule refl) +(step t3.t1.t3 (cl (! (= @p_102 @p_35) :named @p_108)) :rule cong :premises (t3.t1.t1 t3.t1.t2)) +(step t3.t1.t4 (cl (! (= ?v4 veriT_vr3) :named @p_105)) :rule refl) +(step t3.t1.t5 (cl (! (= @p_11 @p_27) :named @p_109)) :rule cong :premises (t3.t1.t3 t3.t1.t4)) +(step t3.t1.t6 (cl (! (= @p_9 @p_25) :named @p_110)) :rule cong :premises (t3.t1.t5)) +(step t3.t1.t7 (cl (! (= ?v2 veriT_vr1) :named @p_113)) :rule refl) +(step t3.t1.t8 (cl @p_103) :rule refl) +(step t3.t1.t9 (cl (! (= @p_104 @p_38) :named @p_114)) :rule cong :premises (t3.t1.t7 t3.t1.t8)) +(step t3.t1.t10 (cl @p_105) :rule refl) +(step t3.t1.t11 (cl (! (= @p_10 @p_26) :named @p_115)) :rule cong :premises (t3.t1.t9 t3.t1.t10)) +(step t3.t1.t12 (cl (= @p_106 @p_41)) :rule cong :premises (t3.t1.t11)) +(step t3.t1.t13 (cl @p_107) :rule refl) +(step t3.t1.t14 (cl @p_103) :rule refl) +(step t3.t1.t15 (cl @p_108) :rule cong :premises (t3.t1.t13 t3.t1.t14)) +(step t3.t1.t16 (cl @p_105) :rule refl) +(step t3.t1.t17 (cl @p_109) :rule cong :premises (t3.t1.t15 t3.t1.t16)) +(step t3.t1.t18 (cl @p_110) :rule cong :premises (t3.t1.t17)) +(step t3.t1.t19 (cl (= @p_111 @p_47)) :rule cong :premises (t3.t1.t12 t3.t1.t18)) +(anchor :step t3.t1.t20 :args ((:= (?v5 B$) veriT_vr4) (:= (?v6 C$) veriT_vr5))) +(step t3.t1.t20.t1 (cl @p_113) :rule refl) +(step t3.t1.t20.t2 (cl @p_103) :rule refl) +(step t3.t1.t20.t3 (cl @p_114) :rule cong :premises (t3.t1.t20.t1 t3.t1.t20.t2)) +(step t3.t1.t20.t4 (cl @p_105) :rule refl) +(step t3.t1.t20.t5 (cl @p_115) :rule cong :premises (t3.t1.t20.t3 t3.t1.t20.t4)) +(step t3.t1.t20.t6 (cl (! (= ?v5 veriT_vr4) :named @p_117)) :rule refl) +(step t3.t1.t20.t7 (cl (! (= ?v6 veriT_vr5) :named @p_118)) :rule refl) +(step t3.t1.t20.t8 (cl (! (= @p_12 @p_28) :named @p_119)) :rule cong :premises (t3.t1.t20.t6 t3.t1.t20.t7)) +(step t3.t1.t20.t9 (cl (= @p_116 @p_54)) :rule cong :premises (t3.t1.t20.t5 t3.t1.t20.t8)) +(step t3.t1.t20.t10 (cl @p_107) :rule refl) +(step t3.t1.t20.t11 (cl @p_103) :rule refl) +(step t3.t1.t20.t12 (cl @p_108) :rule cong :premises (t3.t1.t20.t10 t3.t1.t20.t11)) +(step t3.t1.t20.t13 (cl @p_105) :rule refl) +(step t3.t1.t20.t14 (cl @p_109) :rule cong :premises (t3.t1.t20.t12 t3.t1.t20.t13)) +(step t3.t1.t20.t15 (cl @p_117) :rule refl) +(step t3.t1.t20.t16 (cl @p_118) :rule refl) +(step t3.t1.t20.t17 (cl @p_119) :rule cong :premises (t3.t1.t20.t15 t3.t1.t20.t16)) +(step t3.t1.t20.t18 (cl (= @p_120 @p_59)) :rule cong :premises (t3.t1.t20.t14 t3.t1.t20.t17)) +(step t3.t1.t20.t19 (cl (= @p_121 @p_61)) :rule cong :premises (t3.t1.t20.t9 t3.t1.t20.t18)) +(step t3.t1.t20 (cl (= @p_112 @p_49)) :rule bind) +(step t3.t1.t21 (cl (= @p_122 @p_63)) :rule cong :premises (t3.t1.t19 t3.t1.t20)) +(step t3.t1.t22 (cl (= @p_123 @p_65)) :rule cong :premises (t3.t1.t6 t3.t1.t21)) +(step t3.t1 (cl (= @p_101 @p_33)) :rule bind) +(anchor :step t3.t2 :args ((:= (?v3 D$) veriT_vr6))) +(step t3.t2.t1 (cl (! (= ?v0 veriT_vr7) :named @p_128)) :rule refl) +(step t3.t2.t2 (cl @p_107) :rule refl) +(step t3.t2.t3 (cl (! (= @p_126 (! (c$ veriT_vr7 veriT_vr0) :named @p_127)) :named @p_134)) :rule cong :premises (t3.t2.t1 t3.t2.t2)) +(step t3.t2.t4 (cl (! (= ?v3 veriT_vr6) :named @p_131)) :rule refl) +(step t3.t2.t5 (cl (! (= @p_15 (! (run$b @p_127 veriT_vr6) :named @p_99)) :named @p_135)) :rule cong :premises (t3.t2.t3 t3.t2.t4)) +(step t3.t2.t6 (cl (! (= @p_13 (! (is_fail$b @p_99) :named @p_97)) :named @p_136)) :rule cong :premises (t3.t2.t5)) +(step t3.t2.t7 (cl @p_128) :rule refl) +(step t3.t2.t8 (cl @p_113) :rule refl) +(step t3.t2.t9 (cl (! (= @p_129 (! (c$ veriT_vr7 veriT_vr1) :named @p_130)) :named @p_141)) :rule cong :premises (t3.t2.t7 t3.t2.t8)) +(step t3.t2.t10 (cl @p_131) :rule refl) +(step t3.t2.t11 (cl (! (= @p_14 (! (run$b @p_130 veriT_vr6) :named @p_98)) :named @p_142)) :rule cong :premises (t3.t2.t9 t3.t2.t10)) +(step t3.t2.t12 (cl (= @p_132 (! (is_fail$b @p_98) :named @p_133))) :rule cong :premises (t3.t2.t11)) +(step t3.t2.t13 (cl @p_128) :rule refl) +(step t3.t2.t14 (cl @p_107) :rule refl) +(step t3.t2.t15 (cl @p_134) :rule cong :premises (t3.t2.t13 t3.t2.t14)) +(step t3.t2.t16 (cl @p_131) :rule refl) +(step t3.t2.t17 (cl @p_135) :rule cong :premises (t3.t2.t15 t3.t2.t16)) +(step t3.t2.t18 (cl @p_136) :rule cong :premises (t3.t2.t17)) +(step t3.t2.t19 (cl (= @p_137 (! (= @p_133 @p_97) :named @p_138))) :rule cong :premises (t3.t2.t12 t3.t2.t18)) +(anchor :step t3.t2.t20 :args ((:= (?v4 F$) veriT_vr9) (:= (?v5 D$) veriT_vr8))) +(step t3.t2.t20.t1 (cl @p_128) :rule refl) +(step t3.t2.t20.t2 (cl @p_113) :rule refl) +(step t3.t2.t20.t3 (cl @p_141) :rule cong :premises (t3.t2.t20.t1 t3.t2.t20.t2)) +(step t3.t2.t20.t4 (cl @p_131) :rule refl) +(step t3.t2.t20.t5 (cl @p_142) :rule cong :premises (t3.t2.t20.t3 t3.t2.t20.t4)) +(step t3.t2.t20.t6 (cl (! (= ?v4 veriT_vr9) :named @p_145)) :rule refl) +(step t3.t2.t20.t7 (cl (! (= ?v5 veriT_vr8) :named @p_146)) :rule refl) +(step t3.t2.t20.t8 (cl (! (= @p_16 (! (pair$b veriT_vr9 veriT_vr8) :named @p_100)) :named @p_147)) :rule cong :premises (t3.t2.t20.t6 t3.t2.t20.t7)) +(step t3.t2.t20.t9 (cl (= @p_143 (! (is_res$b @p_98 @p_100) :named @p_144))) :rule cong :premises (t3.t2.t20.t5 t3.t2.t20.t8)) +(step t3.t2.t20.t10 (cl @p_128) :rule refl) +(step t3.t2.t20.t11 (cl @p_107) :rule refl) +(step t3.t2.t20.t12 (cl @p_134) :rule cong :premises (t3.t2.t20.t10 t3.t2.t20.t11)) +(step t3.t2.t20.t13 (cl @p_131) :rule refl) +(step t3.t2.t20.t14 (cl @p_135) :rule cong :premises (t3.t2.t20.t12 t3.t2.t20.t13)) +(step t3.t2.t20.t15 (cl @p_145) :rule refl) +(step t3.t2.t20.t16 (cl @p_146) :rule refl) +(step t3.t2.t20.t17 (cl @p_147) :rule cong :premises (t3.t2.t20.t15 t3.t2.t20.t16)) +(step t3.t2.t20.t18 (cl (= @p_148 (! (is_res$b @p_99 @p_100) :named @p_149))) :rule cong :premises (t3.t2.t20.t14 t3.t2.t20.t17)) +(step t3.t2.t20.t19 (cl (= @p_150 (! (= @p_144 @p_149) :named @p_151))) :rule cong :premises (t3.t2.t20.t9 t3.t2.t20.t18)) +(step t3.t2.t20 (cl (= @p_139 (! (forall ((veriT_vr9 F$) (veriT_vr8 D$)) @p_151) :named @p_140))) :rule bind) +(step t3.t2.t21 (cl (= @p_152 (! (and @p_138 @p_140) :named @p_153))) :rule cong :premises (t3.t2.t19 t3.t2.t20)) +(step t3.t2.t22 (cl (= @p_154 (! (or @p_97 @p_153) :named @p_155))) :rule cong :premises (t3.t2.t6 t3.t2.t21)) +(step t3.t2 (cl (= @p_124 (! (forall ((veriT_vr6 D$)) @p_155) :named @p_125))) :rule bind) +(step t3.t3 (cl (= @p_156 (! (=> @p_33 @p_125) :named @p_157))) :rule cong :premises (t3.t1 t3.t2)) +(step t3 (cl (= @p_96 (! (forall ((veriT_vr7 E$) (veriT_vr0 A_b_c_M_state_fun$) (veriT_vr1 A_b_c_M_state_fun$)) @p_157) :named @p_160))) :rule bind) +(step t4 (cl (= @p_158 (! (and @p_159 @p_160) :named @p_249))) :rule cong :premises (t2 t3)) +(anchor :step t5 :args ((:= (?v0 A_b_c_M_state_fun$) veriT_vr0) (:= (?v1 A_b_c_M_state_fun$) veriT_vr1))) +(anchor :step t5.t1 :args ((:= (?v2 A$) veriT_vr2) (:= (?v3 C$) veriT_vr3))) +(step t5.t1.t1 (cl @p_42) :rule refl) +(step t5.t1.t2 (cl @p_36) :rule refl) +(step t5.t1.t3 (cl @p_43) :rule cong :premises (t5.t1.t1 t5.t1.t2)) +(step t5.t1.t4 (cl @p_39) :rule refl) +(step t5.t1.t5 (cl @p_44) :rule cong :premises (t5.t1.t3 t5.t1.t4)) +(step t5.t1.t6 (cl @p_45) :rule cong :premises (t5.t1.t5)) +(step t5.t1.t7 (cl @p_50) :rule refl) +(step t5.t1.t8 (cl @p_36) :rule refl) +(step t5.t1.t9 (cl @p_51) :rule cong :premises (t5.t1.t7 t5.t1.t8)) +(step t5.t1.t10 (cl @p_39) :rule refl) +(step t5.t1.t11 (cl @p_52) :rule cong :premises (t5.t1.t9 t5.t1.t10)) +(step t5.t1.t12 (cl @p_165) :rule cong :premises (t5.t1.t11)) +(step t5.t1.t13 (cl @p_42) :rule refl) +(step t5.t1.t14 (cl @p_36) :rule refl) +(step t5.t1.t15 (cl @p_43) :rule cong :premises (t5.t1.t13 t5.t1.t14)) +(step t5.t1.t16 (cl @p_39) :rule refl) +(step t5.t1.t17 (cl @p_44) :rule cong :premises (t5.t1.t15 t5.t1.t16)) +(step t5.t1.t18 (cl @p_45) :rule cong :premises (t5.t1.t17)) +(step t5.t1.t19 (cl @p_166) :rule cong :premises (t5.t1.t12 t5.t1.t18)) +(anchor :step t5.t1.t20 :args ((:= (?v4 B$) veriT_vr4) (:= (?v5 C$) veriT_vr5))) +(step t5.t1.t20.t1 (cl @p_50) :rule refl) +(step t5.t1.t20.t2 (cl @p_36) :rule refl) +(step t5.t1.t20.t3 (cl @p_51) :rule cong :premises (t5.t1.t20.t1 t5.t1.t20.t2)) +(step t5.t1.t20.t4 (cl @p_39) :rule refl) +(step t5.t1.t20.t5 (cl @p_52) :rule cong :premises (t5.t1.t20.t3 t5.t1.t20.t4)) +(step t5.t1.t20.t6 (cl @p_55) :rule refl) +(step t5.t1.t20.t7 (cl @p_56) :rule refl) +(step t5.t1.t20.t8 (cl @p_57) :rule cong :premises (t5.t1.t20.t6 t5.t1.t20.t7)) +(step t5.t1.t20.t9 (cl @p_168) :rule cong :premises (t5.t1.t20.t5 t5.t1.t20.t8)) +(step t5.t1.t20.t10 (cl @p_42) :rule refl) +(step t5.t1.t20.t11 (cl @p_36) :rule refl) +(step t5.t1.t20.t12 (cl @p_43) :rule cong :premises (t5.t1.t20.t10 t5.t1.t20.t11)) +(step t5.t1.t20.t13 (cl @p_39) :rule refl) +(step t5.t1.t20.t14 (cl @p_44) :rule cong :premises (t5.t1.t20.t12 t5.t1.t20.t13)) +(step t5.t1.t20.t15 (cl @p_55) :rule refl) +(step t5.t1.t20.t16 (cl @p_56) :rule refl) +(step t5.t1.t20.t17 (cl @p_57) :rule cong :premises (t5.t1.t20.t15 t5.t1.t20.t16)) +(step t5.t1.t20.t18 (cl @p_169) :rule cong :premises (t5.t1.t20.t14 t5.t1.t20.t17)) +(step t5.t1.t20.t19 (cl @p_170) :rule cong :premises (t5.t1.t20.t9 t5.t1.t20.t18)) +(step t5.t1.t20 (cl @p_167) :rule bind) +(step t5.t1.t21 (cl @p_171) :rule cong :premises (t5.t1.t19 t5.t1.t20)) +(step t5.t1.t22 (cl @p_172) :rule cong :premises (t5.t1.t6 t5.t1.t21)) +(step t5.t1 (cl @p_164) :rule bind) +(anchor :step t5.t2 :args ((:= (?v2 D$) veriT_vr6))) +(step t5.t2.t1 (cl @p_42) :rule refl) +(step t5.t2.t2 (cl @p_74) :rule cong :premises (t5.t2.t1)) +(step t5.t2.t3 (cl @p_72) :rule refl) +(step t5.t2.t4 (cl @p_75) :rule cong :premises (t5.t2.t2 t5.t2.t3)) +(step t5.t2.t5 (cl @p_76) :rule cong :premises (t5.t2.t4)) +(anchor :step t5.t2.t6 :args ((:= (?v3 E$) veriT_vr7) (:= (?v4 D$) veriT_vr8))) +(step t5.t2.t6.t1 (cl @p_42) :rule refl) +(step t5.t2.t6.t2 (cl @p_74) :rule cong :premises (t5.t2.t6.t1)) +(step t5.t2.t6.t3 (cl @p_72) :rule refl) +(step t5.t2.t6.t4 (cl @p_75) :rule cong :premises (t5.t2.t6.t2 t5.t2.t6.t3)) +(step t5.t2.t6.t5 (cl @p_84) :rule refl) +(step t5.t2.t6.t6 (cl @p_85) :rule refl) +(step t5.t2.t6.t7 (cl @p_86) :rule cong :premises (t5.t2.t6.t5 t5.t2.t6.t6)) +(step t5.t2.t6.t8 (cl @p_175) :rule cong :premises (t5.t2.t6.t4 t5.t2.t6.t7)) +(step t5.t2.t6.t9 (cl @p_84) :rule refl) +(step t5.t2.t6.t10 (cl @p_42) :rule refl) +(step t5.t2.t6.t11 (cl (! (= @p_176 @p_127) :named @p_197)) :rule cong :premises (t5.t2.t6.t9 t5.t2.t6.t10)) +(step t5.t2.t6.t12 (cl @p_85) :rule refl) +(step t5.t2.t6.t13 (cl (! (= @p_177 (! (run$b @p_127 veriT_vr8) :named @p_178)) :named @p_198)) :rule cong :premises (t5.t2.t6.t11 t5.t2.t6.t12)) +(step t5.t2.t6.t14 (cl (! (= @p_179 (! (is_fail$b @p_178) :named @p_180)) :named @p_199)) :rule cong :premises (t5.t2.t6.t13)) +(step t5.t2.t6.t15 (cl (! (= @p_181 (! (and @p_87 @p_180) :named @p_182)) :named @p_200)) :rule cong :premises (t5.t2.t6.t8 t5.t2.t6.t14)) +(step t5.t2.t6 (cl (! (= @p_21 (! (exists ((veriT_vr7 E$) (veriT_vr8 D$)) @p_182) :named @p_162)) :named @p_196)) :rule bind) +(step t5.t2.t7 (cl @p_50) :rule refl) +(step t5.t2.t8 (cl @p_81) :rule cong :premises (t5.t2.t7)) +(step t5.t2.t9 (cl @p_72) :rule refl) +(step t5.t2.t10 (cl @p_82) :rule cong :premises (t5.t2.t8 t5.t2.t9)) +(step t5.t2.t11 (cl @p_183) :rule cong :premises (t5.t2.t10)) +(anchor :step t5.t2.t12 :args ((:= (?v3 E$) veriT_vr7) (:= (?v4 D$) veriT_vr8))) +(step t5.t2.t12.t1 (cl @p_50) :rule refl) +(step t5.t2.t12.t2 (cl @p_81) :rule cong :premises (t5.t2.t12.t1)) +(step t5.t2.t12.t3 (cl @p_72) :rule refl) +(step t5.t2.t12.t4 (cl @p_82) :rule cong :premises (t5.t2.t12.t2 t5.t2.t12.t3)) +(step t5.t2.t12.t5 (cl @p_84) :rule refl) +(step t5.t2.t12.t6 (cl @p_85) :rule refl) +(step t5.t2.t12.t7 (cl @p_86) :rule cong :premises (t5.t2.t12.t5 t5.t2.t12.t6)) +(step t5.t2.t12.t8 (cl @p_186) :rule cong :premises (t5.t2.t12.t4 t5.t2.t12.t7)) +(step t5.t2.t12.t9 (cl @p_84) :rule refl) +(step t5.t2.t12.t10 (cl @p_50) :rule refl) +(step t5.t2.t12.t11 (cl (= @p_187 @p_130)) :rule cong :premises (t5.t2.t12.t9 t5.t2.t12.t10)) +(step t5.t2.t12.t12 (cl @p_85) :rule refl) +(step t5.t2.t12.t13 (cl (= @p_188 (! (run$b @p_130 veriT_vr8) :named @p_189))) :rule cong :premises (t5.t2.t12.t11 t5.t2.t12.t12)) +(step t5.t2.t12.t14 (cl (= @p_190 (! (is_fail$b @p_189) :named @p_191))) :rule cong :premises (t5.t2.t12.t13)) +(step t5.t2.t12.t15 (cl (= @p_192 (! (and @p_83 @p_191) :named @p_193))) :rule cong :premises (t5.t2.t12.t8 t5.t2.t12.t14)) +(step t5.t2.t12 (cl (= @p_184 (! (exists ((veriT_vr7 E$) (veriT_vr8 D$)) @p_193) :named @p_185))) :rule bind) +(step t5.t2.t13 (cl (= @p_194 (! (or @p_73 @p_185) :named @p_195))) :rule cong :premises (t5.t2.t11 t5.t2.t12)) +(step t5.t2.t14 (cl @p_42) :rule refl) +(step t5.t2.t15 (cl @p_74) :rule cong :premises (t5.t2.t14)) +(step t5.t2.t16 (cl @p_72) :rule refl) +(step t5.t2.t17 (cl @p_75) :rule cong :premises (t5.t2.t15 t5.t2.t16)) +(step t5.t2.t18 (cl @p_76) :rule cong :premises (t5.t2.t17)) +(anchor :step t5.t2.t19 :args ((:= (?v3 E$) veriT_vr7) (:= (?v4 D$) veriT_vr8))) +(step t5.t2.t19.t1 (cl @p_42) :rule refl) +(step t5.t2.t19.t2 (cl @p_74) :rule cong :premises (t5.t2.t19.t1)) +(step t5.t2.t19.t3 (cl @p_72) :rule refl) +(step t5.t2.t19.t4 (cl @p_75) :rule cong :premises (t5.t2.t19.t2 t5.t2.t19.t3)) +(step t5.t2.t19.t5 (cl @p_84) :rule refl) +(step t5.t2.t19.t6 (cl @p_85) :rule refl) +(step t5.t2.t19.t7 (cl @p_86) :rule cong :premises (t5.t2.t19.t5 t5.t2.t19.t6)) +(step t5.t2.t19.t8 (cl @p_175) :rule cong :premises (t5.t2.t19.t4 t5.t2.t19.t7)) +(step t5.t2.t19.t9 (cl @p_84) :rule refl) +(step t5.t2.t19.t10 (cl @p_42) :rule refl) +(step t5.t2.t19.t11 (cl @p_197) :rule cong :premises (t5.t2.t19.t9 t5.t2.t19.t10)) +(step t5.t2.t19.t12 (cl @p_85) :rule refl) +(step t5.t2.t19.t13 (cl @p_198) :rule cong :premises (t5.t2.t19.t11 t5.t2.t19.t12)) +(step t5.t2.t19.t14 (cl @p_199) :rule cong :premises (t5.t2.t19.t13)) +(step t5.t2.t19.t15 (cl @p_200) :rule cong :premises (t5.t2.t19.t8 t5.t2.t19.t14)) +(step t5.t2.t19 (cl @p_196) :rule bind) +(step t5.t2.t20 (cl (= @p_201 (! (or @p_29 @p_162) :named @p_202))) :rule cong :premises (t5.t2.t18 t5.t2.t19)) +(step t5.t2.t21 (cl (= @p_203 (! (= @p_195 @p_202) :named @p_204))) :rule cong :premises (t5.t2.t13 t5.t2.t20)) +(anchor :step t5.t2.t22 :args ((:= (?v3 F$) veriT_vr9) (:= (?v4 D$) veriT_vr8))) +(step t5.t2.t22.t1 (cl @p_50) :rule refl) +(step t5.t2.t22.t2 (cl @p_81) :rule cong :premises (t5.t2.t22.t1)) +(step t5.t2.t22.t3 (cl @p_72) :rule refl) +(step t5.t2.t22.t4 (cl @p_82) :rule cong :premises (t5.t2.t22.t2 t5.t2.t22.t3)) +(step t5.t2.t22.t5 (cl @p_183) :rule cong :premises (t5.t2.t22.t4)) +(anchor :step t5.t2.t22.t6 :args ((:= (?v5 E$) veriT_vr7) (:= (?v6 D$) veriT_vr10))) +(step t5.t2.t22.t6.t1 (cl @p_50) :rule refl) +(step t5.t2.t22.t6.t2 (cl @p_81) :rule cong :premises (t5.t2.t22.t6.t1)) +(step t5.t2.t22.t6.t3 (cl @p_72) :rule refl) +(step t5.t2.t22.t6.t4 (cl @p_82) :rule cong :premises (t5.t2.t22.t6.t2 t5.t2.t22.t6.t3)) +(step t5.t2.t22.t6.t5 (cl (! (= ?v5 veriT_vr7) :named @p_211)) :rule refl) +(step t5.t2.t22.t6.t6 (cl (! (= ?v6 veriT_vr10) :named @p_213)) :rule refl) +(step t5.t2.t22.t6.t7 (cl (! (= @p_22 (! (pair$a veriT_vr7 veriT_vr10) :named @p_163)) :named @p_224)) :rule cong :premises (t5.t2.t22.t6.t5 t5.t2.t22.t6.t6)) +(step t5.t2.t22.t6.t8 (cl (= @p_209 (! (is_res$a @p_30 @p_163) :named @p_210))) :rule cong :premises (t5.t2.t22.t6.t4 t5.t2.t22.t6.t7)) +(step t5.t2.t22.t6.t9 (cl @p_211) :rule refl) +(step t5.t2.t22.t6.t10 (cl @p_50) :rule refl) +(step t5.t2.t22.t6.t11 (cl (= @p_212 @p_130)) :rule cong :premises (t5.t2.t22.t6.t9 t5.t2.t22.t6.t10)) +(step t5.t2.t22.t6.t12 (cl @p_213) :rule refl) +(step t5.t2.t22.t6.t13 (cl (= @p_214 (! (run$b @p_130 veriT_vr10) :named @p_215))) :rule cong :premises (t5.t2.t22.t6.t11 t5.t2.t22.t6.t12)) +(step t5.t2.t22.t6.t14 (cl (! (= ?v3 veriT_vr9) :named @p_230)) :rule refl) +(step t5.t2.t22.t6.t15 (cl @p_85) :rule refl) +(step t5.t2.t22.t6.t16 (cl (! (= @p_23 @p_100) :named @p_231)) :rule cong :premises (t5.t2.t22.t6.t14 t5.t2.t22.t6.t15)) +(step t5.t2.t22.t6.t17 (cl (= @p_216 (! (is_res$b @p_215 @p_100) :named @p_217))) :rule cong :premises (t5.t2.t22.t6.t13 t5.t2.t22.t6.t16)) +(step t5.t2.t22.t6.t18 (cl (= @p_218 (! (and @p_210 @p_217) :named @p_219))) :rule cong :premises (t5.t2.t22.t6.t8 t5.t2.t22.t6.t17)) +(step t5.t2.t22.t6 (cl (= @p_207 (! (exists ((veriT_vr7 E$) (veriT_vr10 D$)) @p_219) :named @p_208))) :rule bind) +(step t5.t2.t22.t7 (cl (= @p_220 (! (or @p_73 @p_208) :named @p_221))) :rule cong :premises (t5.t2.t22.t5 t5.t2.t22.t6)) +(step t5.t2.t22.t8 (cl @p_42) :rule refl) +(step t5.t2.t22.t9 (cl @p_74) :rule cong :premises (t5.t2.t22.t8)) +(step t5.t2.t22.t10 (cl @p_72) :rule refl) +(step t5.t2.t22.t11 (cl @p_75) :rule cong :premises (t5.t2.t22.t9 t5.t2.t22.t10)) +(step t5.t2.t22.t12 (cl @p_76) :rule cong :premises (t5.t2.t22.t11)) +(anchor :step t5.t2.t22.t13 :args ((:= (?v5 E$) veriT_vr7) (:= (?v6 D$) veriT_vr10))) +(step t5.t2.t22.t13.t1 (cl @p_42) :rule refl) +(step t5.t2.t22.t13.t2 (cl @p_74) :rule cong :premises (t5.t2.t22.t13.t1)) +(step t5.t2.t22.t13.t3 (cl @p_72) :rule refl) +(step t5.t2.t22.t13.t4 (cl @p_75) :rule cong :premises (t5.t2.t22.t13.t2 t5.t2.t22.t13.t3)) +(step t5.t2.t22.t13.t5 (cl @p_211) :rule refl) +(step t5.t2.t22.t13.t6 (cl @p_213) :rule refl) +(step t5.t2.t22.t13.t7 (cl @p_224) :rule cong :premises (t5.t2.t22.t13.t5 t5.t2.t22.t13.t6)) +(step t5.t2.t22.t13.t8 (cl (= @p_225 (! (is_res$a @p_31 @p_163) :named @p_226))) :rule cong :premises (t5.t2.t22.t13.t4 t5.t2.t22.t13.t7)) +(step t5.t2.t22.t13.t9 (cl @p_211) :rule refl) +(step t5.t2.t22.t13.t10 (cl @p_42) :rule refl) +(step t5.t2.t22.t13.t11 (cl (= @p_227 @p_127)) :rule cong :premises (t5.t2.t22.t13.t9 t5.t2.t22.t13.t10)) +(step t5.t2.t22.t13.t12 (cl @p_213) :rule refl) +(step t5.t2.t22.t13.t13 (cl (= @p_228 (! (run$b @p_127 veriT_vr10) :named @p_229))) :rule cong :premises (t5.t2.t22.t13.t11 t5.t2.t22.t13.t12)) +(step t5.t2.t22.t13.t14 (cl @p_230) :rule refl) +(step t5.t2.t22.t13.t15 (cl @p_85) :rule refl) +(step t5.t2.t22.t13.t16 (cl @p_231) :rule cong :premises (t5.t2.t22.t13.t14 t5.t2.t22.t13.t15)) +(step t5.t2.t22.t13.t17 (cl (= @p_232 (! (is_res$b @p_229 @p_100) :named @p_233))) :rule cong :premises (t5.t2.t22.t13.t13 t5.t2.t22.t13.t16)) +(step t5.t2.t22.t13.t18 (cl (= @p_234 (! (and @p_226 @p_233) :named @p_235))) :rule cong :premises (t5.t2.t22.t13.t8 t5.t2.t22.t13.t17)) +(step t5.t2.t22.t13 (cl (= @p_222 (! (exists ((veriT_vr7 E$) (veriT_vr10 D$)) @p_235) :named @p_223))) :rule bind) +(step t5.t2.t22.t14 (cl (= @p_236 (! (or @p_29 @p_223) :named @p_237))) :rule cong :premises (t5.t2.t22.t12 t5.t2.t22.t13)) +(step t5.t2.t22.t15 (cl (= @p_238 (! (= @p_221 @p_237) :named @p_239))) :rule cong :premises (t5.t2.t22.t7 t5.t2.t22.t14)) +(step t5.t2.t22 (cl (= @p_205 (! (forall ((veriT_vr9 F$) (veriT_vr8 D$)) @p_239) :named @p_206))) :rule bind) +(step t5.t2.t23 (cl (= @p_240 (! (and @p_204 @p_206) :named @p_241))) :rule cong :premises (t5.t2.t21 t5.t2.t22)) +(step t5.t2.t24 (cl (= @p_242 (! (or @p_162 @p_241) :named @p_243))) :rule cong :premises (t5.t2.t6 t5.t2.t23)) +(step t5.t2.t25 (cl (= @p_244 (! (or @p_29 @p_243) :named @p_245))) :rule cong :premises (t5.t2.t5 t5.t2.t24)) +(step t5.t2 (cl (= @p_173 (! (forall ((veriT_vr6 D$)) @p_245) :named @p_174))) :rule bind) +(step t5.t3 (cl (= @p_246 (! (=> @p_33 @p_174) :named @p_247))) :rule cong :premises (t5.t1 t5.t2)) +(step t5 (cl (= @p_161 (! (forall ((veriT_vr0 A_b_c_M_state_fun$) (veriT_vr1 A_b_c_M_state_fun$)) @p_247) :named @p_250))) :rule bind) +(step t6 (cl (= @p_248 (! (=> @p_249 @p_250) :named @p_252))) :rule cong :premises (t4 t5)) +(step t7 (cl (! (= @p_251 (! (not @p_252) :named @p_254)) :named @p_253)) :rule cong :premises (t6)) +(step t8 (cl (! (not @p_253) :named @p_256) (! (not @p_251) :named @p_255) @p_254) :rule equiv_pos2) +(step t9 (cl (not @p_255) @p_248) :rule not_not) +(step t10 (cl @p_256 @p_248 @p_254) :rule th_resolution :premises (t9 t8)) +(step t11 (cl @p_254) :rule th_resolution :premises (axiom0 t7 t10)) +(step t12 (cl (! (= @p_254 (! (and @p_249 (! (not @p_250) :named @p_264)) :named @p_258)) :named @p_257)) :rule bool_simplify) +(step t13 (cl (! (not @p_257) :named @p_260) (! (not @p_254) :named @p_259) @p_258) :rule equiv_pos2) +(step t14 (cl (not @p_259) @p_252) :rule not_not) +(step t15 (cl @p_260 @p_252 @p_258) :rule th_resolution :premises (t14 t13)) +(step t16 (cl @p_258) :rule th_resolution :premises (t11 t12 t15)) +(anchor :step t17 :args ((veriT_vr0 A_b_c_M_state_fun$) (veriT_vr1 A_b_c_M_state_fun$))) +(anchor :step t17.t1 :args ((veriT_vr6 D$))) +(step t17.t1.t1 (cl (= @p_245 (! (or @p_29 @p_162 @p_241) :named @p_262))) :rule ac_simp) +(step t17.t1 (cl (= @p_174 (! (forall ((veriT_vr6 D$)) @p_262) :named @p_261))) :rule bind) +(step t17.t2 (cl (= @p_247 (! (=> @p_33 @p_261) :named @p_263))) :rule cong :premises (t17.t1)) +(step t17 (cl (= @p_250 (! (forall ((veriT_vr0 A_b_c_M_state_fun$) (veriT_vr1 A_b_c_M_state_fun$)) @p_263) :named @p_265))) :rule bind) +(step t18 (cl (= @p_264 (! (not @p_265) :named @p_266))) :rule cong :premises (t17)) +(step t19 (cl (! (= @p_258 (! (and @p_159 @p_160 @p_266) :named @p_268)) :named @p_267)) :rule ac_simp :premises (t18)) +(step t20 (cl (not @p_267) (not @p_258) @p_268) :rule equiv_pos2) +(step t21 (cl @p_268) :rule th_resolution :premises (t16 t19 t20)) +(anchor :step t22 :args ((:= (veriT_vr7 E$) veriT_vr11) (:= (veriT_vr0 A_b_c_M_state_fun$) veriT_vr12) (:= (veriT_vr1 A_b_c_M_state_fun$) veriT_vr13))) +(anchor :step t22.t1 :args ((:= (veriT_vr2 A$) veriT_vr14) (:= (veriT_vr3 C$) veriT_vr15))) +(step t22.t1.t1 (cl (! (= veriT_vr0 veriT_vr12) :named @p_283)) :rule refl) +(step t22.t1.t2 (cl (! (= veriT_vr2 veriT_vr14) :named @p_279)) :rule refl) +(step t22.t1.t3 (cl (! (= @p_35 (! (fun_app$ veriT_vr12 veriT_vr14) :named @p_278)) :named @p_284)) :rule cong :premises (t22.t1.t1 t22.t1.t2)) +(step t22.t1.t4 (cl (! (= veriT_vr3 veriT_vr15) :named @p_281)) :rule refl) +(step t22.t1.t5 (cl (! (= @p_27 (! (run$ @p_278 veriT_vr15) :named @p_271)) :named @p_285)) :rule cong :premises (t22.t1.t3 t22.t1.t4)) +(step t22.t1.t6 (cl (! (= @p_25 (! (is_fail$ @p_271) :named @p_269)) :named @p_286)) :rule cong :premises (t22.t1.t5)) +(step t22.t1.t7 (cl (! (= veriT_vr1 veriT_vr13) :named @p_289)) :rule refl) +(step t22.t1.t8 (cl @p_279) :rule refl) +(step t22.t1.t9 (cl (! (= @p_38 (! (fun_app$ veriT_vr13 veriT_vr14) :named @p_280)) :named @p_290)) :rule cong :premises (t22.t1.t7 t22.t1.t8)) +(step t22.t1.t10 (cl @p_281) :rule refl) +(step t22.t1.t11 (cl (! (= @p_26 (! (run$ @p_280 veriT_vr15) :named @p_270)) :named @p_291)) :rule cong :premises (t22.t1.t9 t22.t1.t10)) +(step t22.t1.t12 (cl (= @p_41 (! (is_fail$ @p_270) :named @p_282))) :rule cong :premises (t22.t1.t11)) +(step t22.t1.t13 (cl @p_283) :rule refl) +(step t22.t1.t14 (cl @p_279) :rule refl) +(step t22.t1.t15 (cl @p_284) :rule cong :premises (t22.t1.t13 t22.t1.t14)) +(step t22.t1.t16 (cl @p_281) :rule refl) +(step t22.t1.t17 (cl @p_285) :rule cong :premises (t22.t1.t15 t22.t1.t16)) +(step t22.t1.t18 (cl @p_286) :rule cong :premises (t22.t1.t17)) +(step t22.t1.t19 (cl (= @p_47 (! (= @p_282 @p_269) :named @p_287))) :rule cong :premises (t22.t1.t12 t22.t1.t18)) +(anchor :step t22.t1.t20 :args ((:= (veriT_vr4 B$) veriT_vr16) (:= (veriT_vr5 C$) veriT_vr17))) +(step t22.t1.t20.t1 (cl @p_289) :rule refl) +(step t22.t1.t20.t2 (cl @p_279) :rule refl) +(step t22.t1.t20.t3 (cl @p_290) :rule cong :premises (t22.t1.t20.t1 t22.t1.t20.t2)) +(step t22.t1.t20.t4 (cl @p_281) :rule refl) +(step t22.t1.t20.t5 (cl @p_291) :rule cong :premises (t22.t1.t20.t3 t22.t1.t20.t4)) +(step t22.t1.t20.t6 (cl (! (= veriT_vr4 veriT_vr16) :named @p_293)) :rule refl) +(step t22.t1.t20.t7 (cl (! (= veriT_vr5 veriT_vr17) :named @p_294)) :rule refl) +(step t22.t1.t20.t8 (cl (! (= @p_28 (! (pair$ veriT_vr16 veriT_vr17) :named @p_272)) :named @p_295)) :rule cong :premises (t22.t1.t20.t6 t22.t1.t20.t7)) +(step t22.t1.t20.t9 (cl (= @p_54 (! (is_res$ @p_270 @p_272) :named @p_292))) :rule cong :premises (t22.t1.t20.t5 t22.t1.t20.t8)) +(step t22.t1.t20.t10 (cl @p_283) :rule refl) +(step t22.t1.t20.t11 (cl @p_279) :rule refl) +(step t22.t1.t20.t12 (cl @p_284) :rule cong :premises (t22.t1.t20.t10 t22.t1.t20.t11)) +(step t22.t1.t20.t13 (cl @p_281) :rule refl) +(step t22.t1.t20.t14 (cl @p_285) :rule cong :premises (t22.t1.t20.t12 t22.t1.t20.t13)) +(step t22.t1.t20.t15 (cl @p_293) :rule refl) +(step t22.t1.t20.t16 (cl @p_294) :rule refl) +(step t22.t1.t20.t17 (cl @p_295) :rule cong :premises (t22.t1.t20.t15 t22.t1.t20.t16)) +(step t22.t1.t20.t18 (cl (= @p_59 (! (is_res$ @p_271 @p_272) :named @p_296))) :rule cong :premises (t22.t1.t20.t14 t22.t1.t20.t17)) +(step t22.t1.t20.t19 (cl (= @p_61 (! (= @p_292 @p_296) :named @p_297))) :rule cong :premises (t22.t1.t20.t9 t22.t1.t20.t18)) +(step t22.t1.t20 (cl (= @p_49 (! (forall ((veriT_vr16 B$) (veriT_vr17 C$)) @p_297) :named @p_288))) :rule bind) +(step t22.t1.t21 (cl (= @p_63 (! (and @p_287 @p_288) :named @p_298))) :rule cong :premises (t22.t1.t19 t22.t1.t20)) +(step t22.t1.t22 (cl (= @p_65 (! (or @p_269 @p_298) :named @p_299))) :rule cong :premises (t22.t1.t6 t22.t1.t21)) +(step t22.t1 (cl (= @p_33 (! (forall ((veriT_vr14 A$) (veriT_vr15 C$)) @p_299) :named @p_277))) :rule bind) +(anchor :step t22.t2 :args ((:= (veriT_vr6 D$) veriT_vr10))) +(step t22.t2.t1 (cl (! (= veriT_vr7 veriT_vr11) :named @p_302)) :rule refl) +(step t22.t2.t2 (cl @p_283) :rule refl) +(step t22.t2.t3 (cl (! (= @p_127 (! (c$ veriT_vr11 veriT_vr12) :named @p_301)) :named @p_306)) :rule cong :premises (t22.t2.t1 t22.t2.t2)) +(step t22.t2.t4 (cl (! (= veriT_vr6 veriT_vr10) :named @p_304)) :rule refl) +(step t22.t2.t5 (cl (! (= @p_99 (! (run$b @p_301 veriT_vr10) :named @p_275)) :named @p_307)) :rule cong :premises (t22.t2.t3 t22.t2.t4)) +(step t22.t2.t6 (cl (! (= @p_97 (! (is_fail$b @p_275) :named @p_273)) :named @p_308)) :rule cong :premises (t22.t2.t5)) +(step t22.t2.t7 (cl @p_302) :rule refl) +(step t22.t2.t8 (cl @p_289) :rule refl) +(step t22.t2.t9 (cl (! (= @p_130 (! (c$ veriT_vr11 veriT_vr13) :named @p_303)) :named @p_311)) :rule cong :premises (t22.t2.t7 t22.t2.t8)) +(step t22.t2.t10 (cl @p_304) :rule refl) +(step t22.t2.t11 (cl (! (= @p_98 (! (run$b @p_303 veriT_vr10) :named @p_274)) :named @p_312)) :rule cong :premises (t22.t2.t9 t22.t2.t10)) +(step t22.t2.t12 (cl (= @p_133 (! (is_fail$b @p_274) :named @p_305))) :rule cong :premises (t22.t2.t11)) +(step t22.t2.t13 (cl @p_302) :rule refl) +(step t22.t2.t14 (cl @p_283) :rule refl) +(step t22.t2.t15 (cl @p_306) :rule cong :premises (t22.t2.t13 t22.t2.t14)) +(step t22.t2.t16 (cl @p_304) :rule refl) +(step t22.t2.t17 (cl @p_307) :rule cong :premises (t22.t2.t15 t22.t2.t16)) +(step t22.t2.t18 (cl @p_308) :rule cong :premises (t22.t2.t17)) +(step t22.t2.t19 (cl (= @p_138 (! (= @p_305 @p_273) :named @p_309))) :rule cong :premises (t22.t2.t12 t22.t2.t18)) +(anchor :step t22.t2.t20 :args ((:= (veriT_vr9 F$) veriT_vr9) (:= (veriT_vr8 D$) veriT_vr18))) +(step t22.t2.t20.t1 (cl @p_302) :rule refl) +(step t22.t2.t20.t2 (cl @p_289) :rule refl) +(step t22.t2.t20.t3 (cl @p_311) :rule cong :premises (t22.t2.t20.t1 t22.t2.t20.t2)) +(step t22.t2.t20.t4 (cl @p_304) :rule refl) +(step t22.t2.t20.t5 (cl @p_312) :rule cong :premises (t22.t2.t20.t3 t22.t2.t20.t4)) +(step t22.t2.t20.t6 (cl (! (= veriT_vr8 veriT_vr18) :named @p_314)) :rule refl) +(step t22.t2.t20.t7 (cl (! (= @p_100 (! (pair$b veriT_vr9 veriT_vr18) :named @p_276)) :named @p_315)) :rule cong :premises (t22.t2.t20.t6)) +(step t22.t2.t20.t8 (cl (= @p_144 (! (is_res$b @p_274 @p_276) :named @p_313))) :rule cong :premises (t22.t2.t20.t5 t22.t2.t20.t7)) +(step t22.t2.t20.t9 (cl @p_302) :rule refl) +(step t22.t2.t20.t10 (cl @p_283) :rule refl) +(step t22.t2.t20.t11 (cl @p_306) :rule cong :premises (t22.t2.t20.t9 t22.t2.t20.t10)) +(step t22.t2.t20.t12 (cl @p_304) :rule refl) +(step t22.t2.t20.t13 (cl @p_307) :rule cong :premises (t22.t2.t20.t11 t22.t2.t20.t12)) +(step t22.t2.t20.t14 (cl @p_314) :rule refl) +(step t22.t2.t20.t15 (cl @p_315) :rule cong :premises (t22.t2.t20.t14)) +(step t22.t2.t20.t16 (cl (= @p_149 (! (is_res$b @p_275 @p_276) :named @p_316))) :rule cong :premises (t22.t2.t20.t13 t22.t2.t20.t15)) +(step t22.t2.t20.t17 (cl (= @p_151 (! (= @p_313 @p_316) :named @p_317))) :rule cong :premises (t22.t2.t20.t8 t22.t2.t20.t16)) +(step t22.t2.t20 (cl (= @p_140 (! (forall ((veriT_vr9 F$) (veriT_vr18 D$)) @p_317) :named @p_310))) :rule bind) +(step t22.t2.t21 (cl (= @p_153 (! (and @p_309 @p_310) :named @p_318))) :rule cong :premises (t22.t2.t19 t22.t2.t20)) +(step t22.t2.t22 (cl (= @p_155 (! (or @p_273 @p_318) :named @p_319))) :rule cong :premises (t22.t2.t6 t22.t2.t21)) +(step t22.t2 (cl (= @p_125 (! (forall ((veriT_vr10 D$)) @p_319) :named @p_300))) :rule bind) +(step t22.t3 (cl (= @p_157 (! (=> @p_277 @p_300) :named @p_320))) :rule cong :premises (t22.t1 t22.t2)) +(step t22 (cl (= @p_160 (! (forall ((veriT_vr11 E$) (veriT_vr12 A_b_c_M_state_fun$) (veriT_vr13 A_b_c_M_state_fun$)) @p_320) :named @p_422))) :rule bind) +(anchor :step t23 :args ((:= (veriT_vr0 A_b_c_M_state_fun$) veriT_vr19) (:= (veriT_vr1 A_b_c_M_state_fun$) veriT_vr20))) +(anchor :step t23.t1 :args ((:= (veriT_vr2 A$) veriT_vr21) (:= (veriT_vr3 C$) veriT_vr22))) +(step t23.t1.t1 (cl (! (= veriT_vr0 veriT_vr19) :named @p_336)) :rule refl) +(step t23.t1.t2 (cl (! (= veriT_vr2 veriT_vr21) :named @p_332)) :rule refl) +(step t23.t1.t3 (cl (! (= @p_35 (! (fun_app$ veriT_vr19 veriT_vr21) :named @p_331)) :named @p_337)) :rule cong :premises (t23.t1.t1 t23.t1.t2)) +(step t23.t1.t4 (cl (! (= veriT_vr3 veriT_vr22) :named @p_334)) :rule refl) +(step t23.t1.t5 (cl (! (= @p_27 (! (run$ @p_331 veriT_vr22) :named @p_323)) :named @p_338)) :rule cong :premises (t23.t1.t3 t23.t1.t4)) +(step t23.t1.t6 (cl (! (= @p_25 (! (is_fail$ @p_323) :named @p_321)) :named @p_339)) :rule cong :premises (t23.t1.t5)) +(step t23.t1.t7 (cl (! (= veriT_vr1 veriT_vr20) :named @p_342)) :rule refl) +(step t23.t1.t8 (cl @p_332) :rule refl) +(step t23.t1.t9 (cl (! (= @p_38 (! (fun_app$ veriT_vr20 veriT_vr21) :named @p_333)) :named @p_343)) :rule cong :premises (t23.t1.t7 t23.t1.t8)) +(step t23.t1.t10 (cl @p_334) :rule refl) +(step t23.t1.t11 (cl (! (= @p_26 (! (run$ @p_333 veriT_vr22) :named @p_322)) :named @p_344)) :rule cong :premises (t23.t1.t9 t23.t1.t10)) +(step t23.t1.t12 (cl (= @p_41 (! (is_fail$ @p_322) :named @p_335))) :rule cong :premises (t23.t1.t11)) +(step t23.t1.t13 (cl @p_336) :rule refl) +(step t23.t1.t14 (cl @p_332) :rule refl) +(step t23.t1.t15 (cl @p_337) :rule cong :premises (t23.t1.t13 t23.t1.t14)) +(step t23.t1.t16 (cl @p_334) :rule refl) +(step t23.t1.t17 (cl @p_338) :rule cong :premises (t23.t1.t15 t23.t1.t16)) +(step t23.t1.t18 (cl @p_339) :rule cong :premises (t23.t1.t17)) +(step t23.t1.t19 (cl (= @p_47 (! (= @p_335 @p_321) :named @p_340))) :rule cong :premises (t23.t1.t12 t23.t1.t18)) +(anchor :step t23.t1.t20 :args ((:= (veriT_vr4 B$) veriT_vr23) (:= (veriT_vr5 C$) veriT_vr24))) +(step t23.t1.t20.t1 (cl @p_342) :rule refl) +(step t23.t1.t20.t2 (cl @p_332) :rule refl) +(step t23.t1.t20.t3 (cl @p_343) :rule cong :premises (t23.t1.t20.t1 t23.t1.t20.t2)) +(step t23.t1.t20.t4 (cl @p_334) :rule refl) +(step t23.t1.t20.t5 (cl @p_344) :rule cong :premises (t23.t1.t20.t3 t23.t1.t20.t4)) +(step t23.t1.t20.t6 (cl (! (= veriT_vr4 veriT_vr23) :named @p_346)) :rule refl) +(step t23.t1.t20.t7 (cl (! (= veriT_vr5 veriT_vr24) :named @p_347)) :rule refl) +(step t23.t1.t20.t8 (cl (! (= @p_28 (! (pair$ veriT_vr23 veriT_vr24) :named @p_324)) :named @p_348)) :rule cong :premises (t23.t1.t20.t6 t23.t1.t20.t7)) +(step t23.t1.t20.t9 (cl (= @p_54 (! (is_res$ @p_322 @p_324) :named @p_345))) :rule cong :premises (t23.t1.t20.t5 t23.t1.t20.t8)) +(step t23.t1.t20.t10 (cl @p_336) :rule refl) +(step t23.t1.t20.t11 (cl @p_332) :rule refl) +(step t23.t1.t20.t12 (cl @p_337) :rule cong :premises (t23.t1.t20.t10 t23.t1.t20.t11)) +(step t23.t1.t20.t13 (cl @p_334) :rule refl) +(step t23.t1.t20.t14 (cl @p_338) :rule cong :premises (t23.t1.t20.t12 t23.t1.t20.t13)) +(step t23.t1.t20.t15 (cl @p_346) :rule refl) +(step t23.t1.t20.t16 (cl @p_347) :rule refl) +(step t23.t1.t20.t17 (cl @p_348) :rule cong :premises (t23.t1.t20.t15 t23.t1.t20.t16)) +(step t23.t1.t20.t18 (cl (= @p_59 (! (is_res$ @p_323 @p_324) :named @p_349))) :rule cong :premises (t23.t1.t20.t14 t23.t1.t20.t17)) +(step t23.t1.t20.t19 (cl (= @p_61 (! (= @p_345 @p_349) :named @p_350))) :rule cong :premises (t23.t1.t20.t9 t23.t1.t20.t18)) +(step t23.t1.t20 (cl (= @p_49 (! (forall ((veriT_vr23 B$) (veriT_vr24 C$)) @p_350) :named @p_341))) :rule bind) +(step t23.t1.t21 (cl (= @p_63 (! (and @p_340 @p_341) :named @p_351))) :rule cong :premises (t23.t1.t19 t23.t1.t20)) +(step t23.t1.t22 (cl (= @p_65 (! (or @p_321 @p_351) :named @p_352))) :rule cong :premises (t23.t1.t6 t23.t1.t21)) +(step t23.t1 (cl (= @p_33 (! (forall ((veriT_vr21 A$) (veriT_vr22 C$)) @p_352) :named @p_330))) :rule bind) +(anchor :step t23.t2 :args ((:= (veriT_vr6 D$) veriT_vr25))) +(step t23.t2.t1 (cl @p_336) :rule refl) +(step t23.t2.t2 (cl (! (= @p_69 (! (b$ veriT_vr19) :named @p_354)) :named @p_356)) :rule cong :premises (t23.t2.t1)) +(step t23.t2.t3 (cl (! (= veriT_vr6 veriT_vr25) :named @p_357)) :rule refl) +(step t23.t2.t4 (cl (! (= @p_31 (! (run$a @p_354 veriT_vr25) :named @p_325)) :named @p_358)) :rule cong :premises (t23.t2.t2 t23.t2.t3)) +(step t23.t2.t5 (cl (! (= @p_29 (! (is_fail$a @p_325) :named @p_327)) :named @p_380)) :rule cong :premises (t23.t2.t4)) +(anchor :step t23.t2.t6 :args ((:= (veriT_vr7 E$) veriT_vr26) (:= (veriT_vr8 D$) veriT_vr27))) +(step t23.t2.t6.t1 (cl @p_336) :rule refl) +(step t23.t2.t6.t2 (cl @p_356) :rule cong :premises (t23.t2.t6.t1)) +(step t23.t2.t6.t3 (cl @p_357) :rule refl) +(step t23.t2.t6.t4 (cl @p_358) :rule cong :premises (t23.t2.t6.t2 t23.t2.t6.t3)) +(step t23.t2.t6.t5 (cl (! (= veriT_vr7 veriT_vr26) :named @p_361)) :rule refl) +(step t23.t2.t6.t6 (cl (! (= veriT_vr8 veriT_vr27) :named @p_363)) :rule refl) +(step t23.t2.t6.t7 (cl (= @p_32 (! (pair$a veriT_vr26 veriT_vr27) :named @p_359))) :rule cong :premises (t23.t2.t6.t5 t23.t2.t6.t6)) +(step t23.t2.t6.t8 (cl (= @p_87 (! (is_res$a @p_325 @p_359) :named @p_360))) :rule cong :premises (t23.t2.t6.t4 t23.t2.t6.t7)) +(step t23.t2.t6.t9 (cl @p_361) :rule refl) +(step t23.t2.t6.t10 (cl @p_336) :rule refl) +(step t23.t2.t6.t11 (cl (= @p_127 (! (c$ veriT_vr26 veriT_vr19) :named @p_362))) :rule cong :premises (t23.t2.t6.t9 t23.t2.t6.t10)) +(step t23.t2.t6.t12 (cl @p_363) :rule refl) +(step t23.t2.t6.t13 (cl (= @p_178 (! (run$b @p_362 veriT_vr27) :named @p_364))) :rule cong :premises (t23.t2.t6.t11 t23.t2.t6.t12)) +(step t23.t2.t6.t14 (cl (= @p_180 (! (is_fail$b @p_364) :named @p_365))) :rule cong :premises (t23.t2.t6.t13)) +(step t23.t2.t6.t15 (cl (= @p_182 (! (and @p_360 @p_365) :named @p_366))) :rule cong :premises (t23.t2.t6.t8 t23.t2.t6.t14)) +(step t23.t2.t6 (cl (= @p_162 (! (exists ((veriT_vr26 E$) (veriT_vr27 D$)) @p_366) :named @p_355))) :rule bind) +(step t23.t2.t7 (cl @p_342) :rule refl) +(step t23.t2.t8 (cl (! (= @p_71 (! (b$ veriT_vr20) :named @p_367)) :named @p_369)) :rule cong :premises (t23.t2.t7)) +(step t23.t2.t9 (cl @p_357) :rule refl) +(step t23.t2.t10 (cl (! (= @p_30 (! (run$a @p_367 veriT_vr25) :named @p_326)) :named @p_370)) :rule cong :premises (t23.t2.t8 t23.t2.t9)) +(step t23.t2.t11 (cl (! (= @p_73 (! (is_fail$a @p_326) :named @p_328)) :named @p_393)) :rule cong :premises (t23.t2.t10)) +(anchor :step t23.t2.t12 :args ((:= (veriT_vr7 E$) veriT_vr28) (:= (veriT_vr8 D$) veriT_vr29))) +(step t23.t2.t12.t1 (cl @p_342) :rule refl) +(step t23.t2.t12.t2 (cl @p_369) :rule cong :premises (t23.t2.t12.t1)) +(step t23.t2.t12.t3 (cl @p_357) :rule refl) +(step t23.t2.t12.t4 (cl @p_370) :rule cong :premises (t23.t2.t12.t2 t23.t2.t12.t3)) +(step t23.t2.t12.t5 (cl (! (= veriT_vr7 veriT_vr28) :named @p_373)) :rule refl) +(step t23.t2.t12.t6 (cl (! (= veriT_vr8 veriT_vr29) :named @p_375)) :rule refl) +(step t23.t2.t12.t7 (cl (= @p_32 (! (pair$a veriT_vr28 veriT_vr29) :named @p_371))) :rule cong :premises (t23.t2.t12.t5 t23.t2.t12.t6)) +(step t23.t2.t12.t8 (cl (= @p_83 (! (is_res$a @p_326 @p_371) :named @p_372))) :rule cong :premises (t23.t2.t12.t4 t23.t2.t12.t7)) +(step t23.t2.t12.t9 (cl @p_373) :rule refl) +(step t23.t2.t12.t10 (cl @p_342) :rule refl) +(step t23.t2.t12.t11 (cl (= @p_130 (! (c$ veriT_vr28 veriT_vr20) :named @p_374))) :rule cong :premises (t23.t2.t12.t9 t23.t2.t12.t10)) +(step t23.t2.t12.t12 (cl @p_375) :rule refl) +(step t23.t2.t12.t13 (cl (= @p_189 (! (run$b @p_374 veriT_vr29) :named @p_376))) :rule cong :premises (t23.t2.t12.t11 t23.t2.t12.t12)) +(step t23.t2.t12.t14 (cl (= @p_191 (! (is_fail$b @p_376) :named @p_377))) :rule cong :premises (t23.t2.t12.t13)) +(step t23.t2.t12.t15 (cl (= @p_193 (! (and @p_372 @p_377) :named @p_378))) :rule cong :premises (t23.t2.t12.t8 t23.t2.t12.t14)) +(step t23.t2.t12 (cl (= @p_185 (! (exists ((veriT_vr28 E$) (veriT_vr29 D$)) @p_378) :named @p_368))) :rule bind) +(step t23.t2.t13 (cl (= @p_195 (! (or @p_328 @p_368) :named @p_379))) :rule cong :premises (t23.t2.t11 t23.t2.t12)) +(step t23.t2.t14 (cl @p_336) :rule refl) +(step t23.t2.t15 (cl @p_356) :rule cong :premises (t23.t2.t14)) +(step t23.t2.t16 (cl @p_357) :rule refl) +(step t23.t2.t17 (cl @p_358) :rule cong :premises (t23.t2.t15 t23.t2.t16)) +(step t23.t2.t18 (cl @p_380) :rule cong :premises (t23.t2.t17)) +(anchor :step t23.t2.t19 :args ((:= (veriT_vr7 E$) veriT_vr30) (:= (veriT_vr8 D$) veriT_vr31))) +(step t23.t2.t19.t1 (cl @p_336) :rule refl) +(step t23.t2.t19.t2 (cl @p_356) :rule cong :premises (t23.t2.t19.t1)) +(step t23.t2.t19.t3 (cl @p_357) :rule refl) +(step t23.t2.t19.t4 (cl @p_358) :rule cong :premises (t23.t2.t19.t2 t23.t2.t19.t3)) +(step t23.t2.t19.t5 (cl (! (= veriT_vr7 veriT_vr30) :named @p_384)) :rule refl) +(step t23.t2.t19.t6 (cl (! (= veriT_vr8 veriT_vr31) :named @p_386)) :rule refl) +(step t23.t2.t19.t7 (cl (= @p_32 (! (pair$a veriT_vr30 veriT_vr31) :named @p_382))) :rule cong :premises (t23.t2.t19.t5 t23.t2.t19.t6)) +(step t23.t2.t19.t8 (cl (= @p_87 (! (is_res$a @p_325 @p_382) :named @p_383))) :rule cong :premises (t23.t2.t19.t4 t23.t2.t19.t7)) +(step t23.t2.t19.t9 (cl @p_384) :rule refl) +(step t23.t2.t19.t10 (cl @p_336) :rule refl) +(step t23.t2.t19.t11 (cl (= @p_127 (! (c$ veriT_vr30 veriT_vr19) :named @p_385))) :rule cong :premises (t23.t2.t19.t9 t23.t2.t19.t10)) +(step t23.t2.t19.t12 (cl @p_386) :rule refl) +(step t23.t2.t19.t13 (cl (= @p_178 (! (run$b @p_385 veriT_vr31) :named @p_387))) :rule cong :premises (t23.t2.t19.t11 t23.t2.t19.t12)) +(step t23.t2.t19.t14 (cl (= @p_180 (! (is_fail$b @p_387) :named @p_388))) :rule cong :premises (t23.t2.t19.t13)) +(step t23.t2.t19.t15 (cl (= @p_182 (! (and @p_383 @p_388) :named @p_389))) :rule cong :premises (t23.t2.t19.t8 t23.t2.t19.t14)) +(step t23.t2.t19 (cl (= @p_162 (! (exists ((veriT_vr30 E$) (veriT_vr31 D$)) @p_389) :named @p_381))) :rule bind) +(step t23.t2.t20 (cl (= @p_202 (! (or @p_327 @p_381) :named @p_390))) :rule cong :premises (t23.t2.t18 t23.t2.t19)) +(step t23.t2.t21 (cl (= @p_204 (! (= @p_379 @p_390) :named @p_391))) :rule cong :premises (t23.t2.t13 t23.t2.t20)) +(anchor :step t23.t2.t22 :args ((:= (veriT_vr9 F$) veriT_vr32) (:= (veriT_vr8 D$) veriT_vr33))) +(step t23.t2.t22.t1 (cl @p_342) :rule refl) +(step t23.t2.t22.t2 (cl @p_369) :rule cong :premises (t23.t2.t22.t1)) +(step t23.t2.t22.t3 (cl @p_357) :rule refl) +(step t23.t2.t22.t4 (cl @p_370) :rule cong :premises (t23.t2.t22.t2 t23.t2.t22.t3)) +(step t23.t2.t22.t5 (cl @p_393) :rule cong :premises (t23.t2.t22.t4)) +(anchor :step t23.t2.t22.t6 :args ((:= (veriT_vr7 E$) veriT_vr34) (:= (veriT_vr10 D$) veriT_vr35))) +(step t23.t2.t22.t6.t1 (cl @p_342) :rule refl) +(step t23.t2.t22.t6.t2 (cl @p_369) :rule cong :premises (t23.t2.t22.t6.t1)) +(step t23.t2.t22.t6.t3 (cl @p_357) :rule refl) +(step t23.t2.t22.t6.t4 (cl @p_370) :rule cong :premises (t23.t2.t22.t6.t2 t23.t2.t22.t6.t3)) +(step t23.t2.t22.t6.t5 (cl (! (= veriT_vr7 veriT_vr34) :named @p_397)) :rule refl) +(step t23.t2.t22.t6.t6 (cl (! (= veriT_vr10 veriT_vr35) :named @p_399)) :rule refl) +(step t23.t2.t22.t6.t7 (cl (= @p_163 (! (pair$a veriT_vr34 veriT_vr35) :named @p_395))) :rule cong :premises (t23.t2.t22.t6.t5 t23.t2.t22.t6.t6)) +(step t23.t2.t22.t6.t8 (cl (= @p_210 (! (is_res$a @p_326 @p_395) :named @p_396))) :rule cong :premises (t23.t2.t22.t6.t4 t23.t2.t22.t6.t7)) +(step t23.t2.t22.t6.t9 (cl @p_397) :rule refl) +(step t23.t2.t22.t6.t10 (cl @p_342) :rule refl) +(step t23.t2.t22.t6.t11 (cl (= @p_130 (! (c$ veriT_vr34 veriT_vr20) :named @p_398))) :rule cong :premises (t23.t2.t22.t6.t9 t23.t2.t22.t6.t10)) +(step t23.t2.t22.t6.t12 (cl @p_399) :rule refl) +(step t23.t2.t22.t6.t13 (cl (= @p_215 (! (run$b @p_398 veriT_vr35) :named @p_400))) :rule cong :premises (t23.t2.t22.t6.t11 t23.t2.t22.t6.t12)) +(step t23.t2.t22.t6.t14 (cl (! (= veriT_vr9 veriT_vr32) :named @p_411)) :rule refl) +(step t23.t2.t22.t6.t15 (cl (! (= veriT_vr8 veriT_vr33) :named @p_412)) :rule refl) +(step t23.t2.t22.t6.t16 (cl (! (= @p_100 (! (pair$b veriT_vr32 veriT_vr33) :named @p_329)) :named @p_413)) :rule cong :premises (t23.t2.t22.t6.t14 t23.t2.t22.t6.t15)) +(step t23.t2.t22.t6.t17 (cl (= @p_217 (! (is_res$b @p_400 @p_329) :named @p_401))) :rule cong :premises (t23.t2.t22.t6.t13 t23.t2.t22.t6.t16)) +(step t23.t2.t22.t6.t18 (cl (= @p_219 (! (and @p_396 @p_401) :named @p_402))) :rule cong :premises (t23.t2.t22.t6.t8 t23.t2.t22.t6.t17)) +(step t23.t2.t22.t6 (cl (= @p_208 (! (exists ((veriT_vr34 E$) (veriT_vr35 D$)) @p_402) :named @p_394))) :rule bind) +(step t23.t2.t22.t7 (cl (= @p_221 (! (or @p_328 @p_394) :named @p_403))) :rule cong :premises (t23.t2.t22.t5 t23.t2.t22.t6)) +(step t23.t2.t22.t8 (cl @p_336) :rule refl) +(step t23.t2.t22.t9 (cl @p_356) :rule cong :premises (t23.t2.t22.t8)) +(step t23.t2.t22.t10 (cl @p_357) :rule refl) +(step t23.t2.t22.t11 (cl @p_358) :rule cong :premises (t23.t2.t22.t9 t23.t2.t22.t10)) +(step t23.t2.t22.t12 (cl @p_380) :rule cong :premises (t23.t2.t22.t11)) +(anchor :step t23.t2.t22.t13 :args ((:= (veriT_vr7 E$) veriT_vr36) (:= (veriT_vr10 D$) veriT_vr37))) +(step t23.t2.t22.t13.t1 (cl @p_336) :rule refl) +(step t23.t2.t22.t13.t2 (cl @p_356) :rule cong :premises (t23.t2.t22.t13.t1)) +(step t23.t2.t22.t13.t3 (cl @p_357) :rule refl) +(step t23.t2.t22.t13.t4 (cl @p_358) :rule cong :premises (t23.t2.t22.t13.t2 t23.t2.t22.t13.t3)) +(step t23.t2.t22.t13.t5 (cl (! (= veriT_vr7 veriT_vr36) :named @p_407)) :rule refl) +(step t23.t2.t22.t13.t6 (cl (! (= veriT_vr10 veriT_vr37) :named @p_409)) :rule refl) +(step t23.t2.t22.t13.t7 (cl (= @p_163 (! (pair$a veriT_vr36 veriT_vr37) :named @p_405))) :rule cong :premises (t23.t2.t22.t13.t5 t23.t2.t22.t13.t6)) +(step t23.t2.t22.t13.t8 (cl (= @p_226 (! (is_res$a @p_325 @p_405) :named @p_406))) :rule cong :premises (t23.t2.t22.t13.t4 t23.t2.t22.t13.t7)) +(step t23.t2.t22.t13.t9 (cl @p_407) :rule refl) +(step t23.t2.t22.t13.t10 (cl @p_336) :rule refl) +(step t23.t2.t22.t13.t11 (cl (= @p_127 (! (c$ veriT_vr36 veriT_vr19) :named @p_408))) :rule cong :premises (t23.t2.t22.t13.t9 t23.t2.t22.t13.t10)) +(step t23.t2.t22.t13.t12 (cl @p_409) :rule refl) +(step t23.t2.t22.t13.t13 (cl (= @p_229 (! (run$b @p_408 veriT_vr37) :named @p_410))) :rule cong :premises (t23.t2.t22.t13.t11 t23.t2.t22.t13.t12)) +(step t23.t2.t22.t13.t14 (cl @p_411) :rule refl) +(step t23.t2.t22.t13.t15 (cl @p_412) :rule refl) +(step t23.t2.t22.t13.t16 (cl @p_413) :rule cong :premises (t23.t2.t22.t13.t14 t23.t2.t22.t13.t15)) +(step t23.t2.t22.t13.t17 (cl (= @p_233 (! (is_res$b @p_410 @p_329) :named @p_414))) :rule cong :premises (t23.t2.t22.t13.t13 t23.t2.t22.t13.t16)) +(step t23.t2.t22.t13.t18 (cl (= @p_235 (! (and @p_406 @p_414) :named @p_415))) :rule cong :premises (t23.t2.t22.t13.t8 t23.t2.t22.t13.t17)) +(step t23.t2.t22.t13 (cl (= @p_223 (! (exists ((veriT_vr36 E$) (veriT_vr37 D$)) @p_415) :named @p_404))) :rule bind) +(step t23.t2.t22.t14 (cl (= @p_237 (! (or @p_327 @p_404) :named @p_416))) :rule cong :premises (t23.t2.t22.t12 t23.t2.t22.t13)) +(step t23.t2.t22.t15 (cl (= @p_239 (! (= @p_403 @p_416) :named @p_417))) :rule cong :premises (t23.t2.t22.t7 t23.t2.t22.t14)) +(step t23.t2.t22 (cl (= @p_206 (! (forall ((veriT_vr32 F$) (veriT_vr33 D$)) @p_417) :named @p_392))) :rule bind) +(step t23.t2.t23 (cl (= @p_241 (! (and @p_391 @p_392) :named @p_418))) :rule cong :premises (t23.t2.t21 t23.t2.t22)) +(step t23.t2.t24 (cl (= @p_262 (! (or @p_327 @p_355 @p_418) :named @p_419))) :rule cong :premises (t23.t2.t5 t23.t2.t6 t23.t2.t23)) +(step t23.t2 (cl (= @p_261 (! (forall ((veriT_vr25 D$)) @p_419) :named @p_353))) :rule bind) +(step t23.t3 (cl (= @p_263 (! (=> @p_330 @p_353) :named @p_420))) :rule cong :premises (t23.t1 t23.t2)) +(step t23 (cl (= @p_265 (! (forall ((veriT_vr19 A_b_c_M_state_fun$) (veriT_vr20 A_b_c_M_state_fun$)) @p_420) :named @p_421))) :rule bind) +(step t24 (cl (= @p_266 (! (not @p_421) :named @p_423))) :rule cong :premises (t23)) +(step t25 (cl (! (= @p_268 (! (and @p_159 @p_422 @p_423) :named @p_425)) :named @p_424)) :rule cong :premises (t22 t24)) +(step t26 (cl (not @p_424) (not @p_268) @p_425) :rule equiv_pos2) +(step t27 (cl @p_425) :rule th_resolution :premises (t21 t25 t26)) +(anchor :step t28 :args ((veriT_vr19 A_b_c_M_state_fun$) (veriT_vr20 A_b_c_M_state_fun$))) +(anchor :step t28.t1 :args ((veriT_vr25 D$))) +(step t28.t1.t1 (cl (= @p_391 (! (and (! (=> @p_379 @p_390) :named @p_612) (! (=> @p_390 @p_379) :named @p_635)) :named @p_427))) :rule connective_def) +(anchor :step t28.t1.t2 :args ((veriT_vr32 F$) (veriT_vr33 D$))) +(step t28.t1.t2.t1 (cl (= @p_417 (! (and (! (=> @p_403 @p_416) :named @p_662) (! (=> @p_416 @p_403) :named @p_684)) :named @p_429))) :rule connective_def) +(step t28.t1.t2 (cl (= @p_392 (! (forall ((veriT_vr32 F$) (veriT_vr33 D$)) @p_429) :named @p_428))) :rule bind) +(step t28.t1.t3 (cl (= @p_418 (! (and @p_427 @p_428) :named @p_430))) :rule cong :premises (t28.t1.t1 t28.t1.t2)) +(step t28.t1.t4 (cl (= @p_419 (! (or @p_327 @p_355 @p_430) :named @p_431))) :rule cong :premises (t28.t1.t3)) +(step t28.t1 (cl (= @p_353 (! (forall ((veriT_vr25 D$)) @p_431) :named @p_426))) :rule bind) +(step t28.t2 (cl (= @p_420 (! (=> @p_330 @p_426) :named @p_432))) :rule cong :premises (t28.t1)) +(step t28 (cl (= @p_421 (! (forall ((veriT_vr19 A_b_c_M_state_fun$) (veriT_vr20 A_b_c_M_state_fun$)) @p_432) :named @p_433))) :rule bind) +(step t29 (cl (= @p_423 (! (not @p_433) :named @p_434))) :rule cong :premises (t28)) +(step t30 (cl (! (= @p_425 (! (and @p_159 @p_422 @p_434) :named @p_436)) :named @p_435)) :rule cong :premises (t29)) +(step t31 (cl (not @p_435) (not @p_425) @p_436) :rule equiv_pos2) +(step t32 (cl @p_436) :rule th_resolution :premises (t27 t30 t31)) +(anchor :step t33 :args ((:= (veriT_vr0 A_b_c_M_state_fun$) veriT_vr38) (:= (veriT_vr1 A_b_c_M_state_fun$) veriT_vr39))) +(anchor :step t33.t1 :args ((:= (veriT_vr2 A$) veriT_vr40) (:= (veriT_vr3 C$) veriT_vr41))) +(step t33.t1.t1 (cl (! (= veriT_vr0 veriT_vr38) :named @p_451)) :rule refl) +(step t33.t1.t2 (cl (! (= veriT_vr2 veriT_vr40) :named @p_447)) :rule refl) +(step t33.t1.t3 (cl (! (= @p_35 (! (fun_app$ veriT_vr38 veriT_vr40) :named @p_446)) :named @p_452)) :rule cong :premises (t33.t1.t1 t33.t1.t2)) +(step t33.t1.t4 (cl (! (= veriT_vr3 veriT_vr41) :named @p_449)) :rule refl) +(step t33.t1.t5 (cl (! (= @p_27 (! (run$ @p_446 veriT_vr41) :named @p_439)) :named @p_453)) :rule cong :premises (t33.t1.t3 t33.t1.t4)) +(step t33.t1.t6 (cl (! (= @p_25 (! (is_fail$ @p_439) :named @p_437)) :named @p_454)) :rule cong :premises (t33.t1.t5)) +(step t33.t1.t7 (cl (! (= veriT_vr1 veriT_vr39) :named @p_457)) :rule refl) +(step t33.t1.t8 (cl @p_447) :rule refl) +(step t33.t1.t9 (cl (! (= @p_38 (! (fun_app$ veriT_vr39 veriT_vr40) :named @p_448)) :named @p_458)) :rule cong :premises (t33.t1.t7 t33.t1.t8)) +(step t33.t1.t10 (cl @p_449) :rule refl) +(step t33.t1.t11 (cl (! (= @p_26 (! (run$ @p_448 veriT_vr41) :named @p_438)) :named @p_459)) :rule cong :premises (t33.t1.t9 t33.t1.t10)) +(step t33.t1.t12 (cl (= @p_41 (! (is_fail$ @p_438) :named @p_450))) :rule cong :premises (t33.t1.t11)) +(step t33.t1.t13 (cl @p_451) :rule refl) +(step t33.t1.t14 (cl @p_447) :rule refl) +(step t33.t1.t15 (cl @p_452) :rule cong :premises (t33.t1.t13 t33.t1.t14)) +(step t33.t1.t16 (cl @p_449) :rule refl) +(step t33.t1.t17 (cl @p_453) :rule cong :premises (t33.t1.t15 t33.t1.t16)) +(step t33.t1.t18 (cl @p_454) :rule cong :premises (t33.t1.t17)) +(step t33.t1.t19 (cl (= @p_47 (! (= @p_450 @p_437) :named @p_455))) :rule cong :premises (t33.t1.t12 t33.t1.t18)) +(anchor :step t33.t1.t20 :args ((:= (veriT_vr4 B$) veriT_vr42) (:= (veriT_vr5 C$) veriT_vr43))) +(step t33.t1.t20.t1 (cl @p_457) :rule refl) +(step t33.t1.t20.t2 (cl @p_447) :rule refl) +(step t33.t1.t20.t3 (cl @p_458) :rule cong :premises (t33.t1.t20.t1 t33.t1.t20.t2)) +(step t33.t1.t20.t4 (cl @p_449) :rule refl) +(step t33.t1.t20.t5 (cl @p_459) :rule cong :premises (t33.t1.t20.t3 t33.t1.t20.t4)) +(step t33.t1.t20.t6 (cl (! (= veriT_vr4 veriT_vr42) :named @p_461)) :rule refl) +(step t33.t1.t20.t7 (cl (! (= veriT_vr5 veriT_vr43) :named @p_462)) :rule refl) +(step t33.t1.t20.t8 (cl (! (= @p_28 (! (pair$ veriT_vr42 veriT_vr43) :named @p_440)) :named @p_463)) :rule cong :premises (t33.t1.t20.t6 t33.t1.t20.t7)) +(step t33.t1.t20.t9 (cl (= @p_54 (! (is_res$ @p_438 @p_440) :named @p_460))) :rule cong :premises (t33.t1.t20.t5 t33.t1.t20.t8)) +(step t33.t1.t20.t10 (cl @p_451) :rule refl) +(step t33.t1.t20.t11 (cl @p_447) :rule refl) +(step t33.t1.t20.t12 (cl @p_452) :rule cong :premises (t33.t1.t20.t10 t33.t1.t20.t11)) +(step t33.t1.t20.t13 (cl @p_449) :rule refl) +(step t33.t1.t20.t14 (cl @p_453) :rule cong :premises (t33.t1.t20.t12 t33.t1.t20.t13)) +(step t33.t1.t20.t15 (cl @p_461) :rule refl) +(step t33.t1.t20.t16 (cl @p_462) :rule refl) +(step t33.t1.t20.t17 (cl @p_463) :rule cong :premises (t33.t1.t20.t15 t33.t1.t20.t16)) +(step t33.t1.t20.t18 (cl (= @p_59 (! (is_res$ @p_439 @p_440) :named @p_464))) :rule cong :premises (t33.t1.t20.t14 t33.t1.t20.t17)) +(step t33.t1.t20.t19 (cl (= @p_61 (! (= @p_460 @p_464) :named @p_465))) :rule cong :premises (t33.t1.t20.t9 t33.t1.t20.t18)) +(step t33.t1.t20 (cl (= @p_49 (! (forall ((veriT_vr42 B$) (veriT_vr43 C$)) @p_465) :named @p_456))) :rule bind) +(step t33.t1.t21 (cl (= @p_63 (! (and @p_455 @p_456) :named @p_466))) :rule cong :premises (t33.t1.t19 t33.t1.t20)) +(step t33.t1.t22 (cl (= @p_65 (! (or @p_437 @p_466) :named @p_467))) :rule cong :premises (t33.t1.t6 t33.t1.t21)) +(step t33.t1 (cl (= @p_33 (! (forall ((veriT_vr40 A$) (veriT_vr41 C$)) @p_467) :named @p_445))) :rule bind) +(anchor :step t33.t2 :args ((:= (veriT_vr6 D$) veriT_vr44))) +(step t33.t2.t1 (cl @p_451) :rule refl) +(step t33.t2.t2 (cl (! (= @p_69 (! (b$ veriT_vr38) :named @p_469)) :named @p_473)) :rule cong :premises (t33.t2.t1)) +(step t33.t2.t3 (cl (! (= veriT_vr6 veriT_vr44) :named @p_471)) :rule refl) +(step t33.t2.t4 (cl (! (= @p_31 (! (run$a @p_469 veriT_vr44) :named @p_443)) :named @p_474)) :rule cong :premises (t33.t2.t2 t33.t2.t3)) +(step t33.t2.t5 (cl (! (= @p_29 (! (is_fail$a @p_443) :named @p_441)) :named @p_475)) :rule cong :premises (t33.t2.t4)) +(step t33.t2.t6 (cl @p_457) :rule refl) +(step t33.t2.t7 (cl (! (= @p_71 (! (b$ veriT_vr39) :named @p_470)) :named @p_478)) :rule cong :premises (t33.t2.t6)) +(step t33.t2.t8 (cl @p_471) :rule refl) +(step t33.t2.t9 (cl (! (= @p_30 (! (run$a @p_470 veriT_vr44) :named @p_442)) :named @p_479)) :rule cong :premises (t33.t2.t7 t33.t2.t8)) +(step t33.t2.t10 (cl (= @p_73 (! (is_fail$a @p_442) :named @p_472))) :rule cong :premises (t33.t2.t9)) +(step t33.t2.t11 (cl @p_451) :rule refl) +(step t33.t2.t12 (cl @p_473) :rule cong :premises (t33.t2.t11)) +(step t33.t2.t13 (cl @p_471) :rule refl) +(step t33.t2.t14 (cl @p_474) :rule cong :premises (t33.t2.t12 t33.t2.t13)) +(step t33.t2.t15 (cl @p_475) :rule cong :premises (t33.t2.t14)) +(step t33.t2.t16 (cl (= @p_78 (! (= @p_472 @p_441) :named @p_476))) :rule cong :premises (t33.t2.t10 t33.t2.t15)) +(anchor :step t33.t2.t17 :args ((:= (veriT_vr7 E$) veriT_vr45) (:= (veriT_vr8 D$) veriT_vr46))) +(step t33.t2.t17.t1 (cl @p_457) :rule refl) +(step t33.t2.t17.t2 (cl @p_478) :rule cong :premises (t33.t2.t17.t1)) +(step t33.t2.t17.t3 (cl @p_471) :rule refl) +(step t33.t2.t17.t4 (cl @p_479) :rule cong :premises (t33.t2.t17.t2 t33.t2.t17.t3)) +(step t33.t2.t17.t5 (cl (! (= veriT_vr7 veriT_vr45) :named @p_481)) :rule refl) +(step t33.t2.t17.t6 (cl (! (= veriT_vr8 veriT_vr46) :named @p_482)) :rule refl) +(step t33.t2.t17.t7 (cl (! (= @p_32 (! (pair$a veriT_vr45 veriT_vr46) :named @p_444)) :named @p_483)) :rule cong :premises (t33.t2.t17.t5 t33.t2.t17.t6)) +(step t33.t2.t17.t8 (cl (= @p_83 (! (is_res$a @p_442 @p_444) :named @p_480))) :rule cong :premises (t33.t2.t17.t4 t33.t2.t17.t7)) +(step t33.t2.t17.t9 (cl @p_451) :rule refl) +(step t33.t2.t17.t10 (cl @p_473) :rule cong :premises (t33.t2.t17.t9)) +(step t33.t2.t17.t11 (cl @p_471) :rule refl) +(step t33.t2.t17.t12 (cl @p_474) :rule cong :premises (t33.t2.t17.t10 t33.t2.t17.t11)) +(step t33.t2.t17.t13 (cl @p_481) :rule refl) +(step t33.t2.t17.t14 (cl @p_482) :rule refl) +(step t33.t2.t17.t15 (cl @p_483) :rule cong :premises (t33.t2.t17.t13 t33.t2.t17.t14)) +(step t33.t2.t17.t16 (cl (= @p_87 (! (is_res$a @p_443 @p_444) :named @p_484))) :rule cong :premises (t33.t2.t17.t12 t33.t2.t17.t15)) +(step t33.t2.t17.t17 (cl (= @p_89 (! (= @p_480 @p_484) :named @p_485))) :rule cong :premises (t33.t2.t17.t8 t33.t2.t17.t16)) +(step t33.t2.t17 (cl (= @p_80 (! (forall ((veriT_vr45 E$) (veriT_vr46 D$)) @p_485) :named @p_477))) :rule bind) +(step t33.t2.t18 (cl (= @p_91 (! (and @p_476 @p_477) :named @p_486))) :rule cong :premises (t33.t2.t16 t33.t2.t17)) +(step t33.t2.t19 (cl (= @p_93 (! (or @p_441 @p_486) :named @p_487))) :rule cong :premises (t33.t2.t5 t33.t2.t18)) +(step t33.t2 (cl (= @p_67 (! (forall ((veriT_vr44 D$)) @p_487) :named @p_468))) :rule bind) +(step t33.t3 (cl (= @p_95 (! (=> @p_445 @p_468) :named @p_488))) :rule cong :premises (t33.t1 t33.t2)) +(step t33 (cl (= @p_159 (! (forall ((veriT_vr38 A_b_c_M_state_fun$) (veriT_vr39 A_b_c_M_state_fun$)) @p_488) :named @p_691))) :rule bind) +(anchor :step t34 :args ((:= (veriT_vr11 E$) veriT_vr47) (:= (veriT_vr12 A_b_c_M_state_fun$) veriT_vr48) (:= (veriT_vr13 A_b_c_M_state_fun$) veriT_vr49))) +(anchor :step t34.t1 :args ((:= (veriT_vr14 A$) veriT_vr50) (:= (veriT_vr15 C$) veriT_vr51))) +(step t34.t1.t1 (cl (! (= veriT_vr12 veriT_vr48) :named @p_503)) :rule refl) +(step t34.t1.t2 (cl (! (= veriT_vr14 veriT_vr50) :named @p_499)) :rule refl) +(step t34.t1.t3 (cl (! (= @p_278 (! (fun_app$ veriT_vr48 veriT_vr50) :named @p_498)) :named @p_504)) :rule cong :premises (t34.t1.t1 t34.t1.t2)) +(step t34.t1.t4 (cl (! (= veriT_vr15 veriT_vr51) :named @p_501)) :rule refl) +(step t34.t1.t5 (cl (! (= @p_271 (! (run$ @p_498 veriT_vr51) :named @p_491)) :named @p_505)) :rule cong :premises (t34.t1.t3 t34.t1.t4)) +(step t34.t1.t6 (cl (! (= @p_269 (! (is_fail$ @p_491) :named @p_489)) :named @p_506)) :rule cong :premises (t34.t1.t5)) +(step t34.t1.t7 (cl (! (= veriT_vr13 veriT_vr49) :named @p_509)) :rule refl) +(step t34.t1.t8 (cl @p_499) :rule refl) +(step t34.t1.t9 (cl (! (= @p_280 (! (fun_app$ veriT_vr49 veriT_vr50) :named @p_500)) :named @p_510)) :rule cong :premises (t34.t1.t7 t34.t1.t8)) +(step t34.t1.t10 (cl @p_501) :rule refl) +(step t34.t1.t11 (cl (! (= @p_270 (! (run$ @p_500 veriT_vr51) :named @p_490)) :named @p_511)) :rule cong :premises (t34.t1.t9 t34.t1.t10)) +(step t34.t1.t12 (cl (= @p_282 (! (is_fail$ @p_490) :named @p_502))) :rule cong :premises (t34.t1.t11)) +(step t34.t1.t13 (cl @p_503) :rule refl) +(step t34.t1.t14 (cl @p_499) :rule refl) +(step t34.t1.t15 (cl @p_504) :rule cong :premises (t34.t1.t13 t34.t1.t14)) +(step t34.t1.t16 (cl @p_501) :rule refl) +(step t34.t1.t17 (cl @p_505) :rule cong :premises (t34.t1.t15 t34.t1.t16)) +(step t34.t1.t18 (cl @p_506) :rule cong :premises (t34.t1.t17)) +(step t34.t1.t19 (cl (= @p_287 (! (= @p_502 @p_489) :named @p_507))) :rule cong :premises (t34.t1.t12 t34.t1.t18)) +(anchor :step t34.t1.t20 :args ((:= (veriT_vr16 B$) veriT_vr52) (:= (veriT_vr17 C$) veriT_vr53))) +(step t34.t1.t20.t1 (cl @p_509) :rule refl) +(step t34.t1.t20.t2 (cl @p_499) :rule refl) +(step t34.t1.t20.t3 (cl @p_510) :rule cong :premises (t34.t1.t20.t1 t34.t1.t20.t2)) +(step t34.t1.t20.t4 (cl @p_501) :rule refl) +(step t34.t1.t20.t5 (cl @p_511) :rule cong :premises (t34.t1.t20.t3 t34.t1.t20.t4)) +(step t34.t1.t20.t6 (cl (! (= veriT_vr16 veriT_vr52) :named @p_513)) :rule refl) +(step t34.t1.t20.t7 (cl (! (= veriT_vr17 veriT_vr53) :named @p_514)) :rule refl) +(step t34.t1.t20.t8 (cl (! (= @p_272 (! (pair$ veriT_vr52 veriT_vr53) :named @p_492)) :named @p_515)) :rule cong :premises (t34.t1.t20.t6 t34.t1.t20.t7)) +(step t34.t1.t20.t9 (cl (= @p_292 (! (is_res$ @p_490 @p_492) :named @p_512))) :rule cong :premises (t34.t1.t20.t5 t34.t1.t20.t8)) +(step t34.t1.t20.t10 (cl @p_503) :rule refl) +(step t34.t1.t20.t11 (cl @p_499) :rule refl) +(step t34.t1.t20.t12 (cl @p_504) :rule cong :premises (t34.t1.t20.t10 t34.t1.t20.t11)) +(step t34.t1.t20.t13 (cl @p_501) :rule refl) +(step t34.t1.t20.t14 (cl @p_505) :rule cong :premises (t34.t1.t20.t12 t34.t1.t20.t13)) +(step t34.t1.t20.t15 (cl @p_513) :rule refl) +(step t34.t1.t20.t16 (cl @p_514) :rule refl) +(step t34.t1.t20.t17 (cl @p_515) :rule cong :premises (t34.t1.t20.t15 t34.t1.t20.t16)) +(step t34.t1.t20.t18 (cl (= @p_296 (! (is_res$ @p_491 @p_492) :named @p_516))) :rule cong :premises (t34.t1.t20.t14 t34.t1.t20.t17)) +(step t34.t1.t20.t19 (cl (= @p_297 (! (= @p_512 @p_516) :named @p_517))) :rule cong :premises (t34.t1.t20.t9 t34.t1.t20.t18)) +(step t34.t1.t20 (cl (= @p_288 (! (forall ((veriT_vr52 B$) (veriT_vr53 C$)) @p_517) :named @p_508))) :rule bind) +(step t34.t1.t21 (cl (= @p_298 (! (and @p_507 @p_508) :named @p_518))) :rule cong :premises (t34.t1.t19 t34.t1.t20)) +(step t34.t1.t22 (cl (= @p_299 (! (or @p_489 @p_518) :named @p_519))) :rule cong :premises (t34.t1.t6 t34.t1.t21)) +(step t34.t1 (cl (= @p_277 (! (forall ((veriT_vr50 A$) (veriT_vr51 C$)) @p_519) :named @p_497))) :rule bind) +(anchor :step t34.t2 :args ((:= (veriT_vr10 D$) veriT_vr54))) +(step t34.t2.t1 (cl (! (= veriT_vr11 veriT_vr47) :named @p_522)) :rule refl) +(step t34.t2.t2 (cl @p_503) :rule refl) +(step t34.t2.t3 (cl (! (= @p_301 (! (c$ veriT_vr47 veriT_vr48) :named @p_521)) :named @p_526)) :rule cong :premises (t34.t2.t1 t34.t2.t2)) +(step t34.t2.t4 (cl (! (= veriT_vr10 veriT_vr54) :named @p_524)) :rule refl) +(step t34.t2.t5 (cl (! (= @p_275 (! (run$b @p_521 veriT_vr54) :named @p_495)) :named @p_527)) :rule cong :premises (t34.t2.t3 t34.t2.t4)) +(step t34.t2.t6 (cl (! (= @p_273 (! (is_fail$b @p_495) :named @p_493)) :named @p_528)) :rule cong :premises (t34.t2.t5)) +(step t34.t2.t7 (cl @p_522) :rule refl) +(step t34.t2.t8 (cl @p_509) :rule refl) +(step t34.t2.t9 (cl (! (= @p_303 (! (c$ veriT_vr47 veriT_vr49) :named @p_523)) :named @p_531)) :rule cong :premises (t34.t2.t7 t34.t2.t8)) +(step t34.t2.t10 (cl @p_524) :rule refl) +(step t34.t2.t11 (cl (! (= @p_274 (! (run$b @p_523 veriT_vr54) :named @p_494)) :named @p_532)) :rule cong :premises (t34.t2.t9 t34.t2.t10)) +(step t34.t2.t12 (cl (= @p_305 (! (is_fail$b @p_494) :named @p_525))) :rule cong :premises (t34.t2.t11)) +(step t34.t2.t13 (cl @p_522) :rule refl) +(step t34.t2.t14 (cl @p_503) :rule refl) +(step t34.t2.t15 (cl @p_526) :rule cong :premises (t34.t2.t13 t34.t2.t14)) +(step t34.t2.t16 (cl @p_524) :rule refl) +(step t34.t2.t17 (cl @p_527) :rule cong :premises (t34.t2.t15 t34.t2.t16)) +(step t34.t2.t18 (cl @p_528) :rule cong :premises (t34.t2.t17)) +(step t34.t2.t19 (cl (= @p_309 (! (= @p_525 @p_493) :named @p_529))) :rule cong :premises (t34.t2.t12 t34.t2.t18)) +(anchor :step t34.t2.t20 :args ((:= (veriT_vr9 F$) veriT_vr55) (:= (veriT_vr18 D$) veriT_vr56))) +(step t34.t2.t20.t1 (cl @p_522) :rule refl) +(step t34.t2.t20.t2 (cl @p_509) :rule refl) +(step t34.t2.t20.t3 (cl @p_531) :rule cong :premises (t34.t2.t20.t1 t34.t2.t20.t2)) +(step t34.t2.t20.t4 (cl @p_524) :rule refl) +(step t34.t2.t20.t5 (cl @p_532) :rule cong :premises (t34.t2.t20.t3 t34.t2.t20.t4)) +(step t34.t2.t20.t6 (cl (! (= veriT_vr9 veriT_vr55) :named @p_534)) :rule refl) +(step t34.t2.t20.t7 (cl (! (= veriT_vr18 veriT_vr56) :named @p_535)) :rule refl) +(step t34.t2.t20.t8 (cl (! (= @p_276 (! (pair$b veriT_vr55 veriT_vr56) :named @p_496)) :named @p_536)) :rule cong :premises (t34.t2.t20.t6 t34.t2.t20.t7)) +(step t34.t2.t20.t9 (cl (= @p_313 (! (is_res$b @p_494 @p_496) :named @p_533))) :rule cong :premises (t34.t2.t20.t5 t34.t2.t20.t8)) +(step t34.t2.t20.t10 (cl @p_522) :rule refl) +(step t34.t2.t20.t11 (cl @p_503) :rule refl) +(step t34.t2.t20.t12 (cl @p_526) :rule cong :premises (t34.t2.t20.t10 t34.t2.t20.t11)) +(step t34.t2.t20.t13 (cl @p_524) :rule refl) +(step t34.t2.t20.t14 (cl @p_527) :rule cong :premises (t34.t2.t20.t12 t34.t2.t20.t13)) +(step t34.t2.t20.t15 (cl @p_534) :rule refl) +(step t34.t2.t20.t16 (cl @p_535) :rule refl) +(step t34.t2.t20.t17 (cl @p_536) :rule cong :premises (t34.t2.t20.t15 t34.t2.t20.t16)) +(step t34.t2.t20.t18 (cl (= @p_316 (! (is_res$b @p_495 @p_496) :named @p_537))) :rule cong :premises (t34.t2.t20.t14 t34.t2.t20.t17)) +(step t34.t2.t20.t19 (cl (= @p_317 (! (= @p_533 @p_537) :named @p_538))) :rule cong :premises (t34.t2.t20.t9 t34.t2.t20.t18)) +(step t34.t2.t20 (cl (= @p_310 (! (forall ((veriT_vr55 F$) (veriT_vr56 D$)) @p_538) :named @p_530))) :rule bind) +(step t34.t2.t21 (cl (= @p_318 (! (and @p_529 @p_530) :named @p_539))) :rule cong :premises (t34.t2.t19 t34.t2.t20)) +(step t34.t2.t22 (cl (= @p_319 (! (or @p_493 @p_539) :named @p_540))) :rule cong :premises (t34.t2.t6 t34.t2.t21)) +(step t34.t2 (cl (= @p_300 (! (forall ((veriT_vr54 D$)) @p_540) :named @p_520))) :rule bind) +(step t34.t3 (cl (= @p_320 (! (=> @p_497 @p_520) :named @p_541))) :rule cong :premises (t34.t1 t34.t2)) +(step t34 (cl (= @p_422 (! (forall ((veriT_vr47 E$) (veriT_vr48 A_b_c_M_state_fun$) (veriT_vr49 A_b_c_M_state_fun$)) @p_541) :named @p_692))) :rule bind) +(anchor :step t35 :args ((:= (veriT_vr19 A_b_c_M_state_fun$) veriT_vr57) (:= (veriT_vr20 A_b_c_M_state_fun$) veriT_vr58))) +(anchor :step t35.t1 :args ((:= (veriT_vr21 A$) veriT_vr59) (:= (veriT_vr22 C$) veriT_vr60))) +(step t35.t1.t1 (cl (! (= veriT_vr19 veriT_vr57) :named @p_557)) :rule refl) +(step t35.t1.t2 (cl (! (= veriT_vr21 veriT_vr59) :named @p_553)) :rule refl) +(step t35.t1.t3 (cl (! (= @p_331 @p_552) :named @p_558)) :rule cong :premises (t35.t1.t1 t35.t1.t2)) +(step t35.t1.t4 (cl (! (= veriT_vr22 veriT_vr60) :named @p_555)) :rule refl) +(step t35.t1.t5 (cl (! (= @p_323 @p_544) :named @p_559)) :rule cong :premises (t35.t1.t3 t35.t1.t4)) +(step t35.t1.t6 (cl (! (= @p_321 @p_542) :named @p_560)) :rule cong :premises (t35.t1.t5)) +(step t35.t1.t7 (cl (! (= veriT_vr20 veriT_vr58) :named @p_563)) :rule refl) +(step t35.t1.t8 (cl @p_553) :rule refl) +(step t35.t1.t9 (cl (! (= @p_333 @p_554) :named @p_564)) :rule cong :premises (t35.t1.t7 t35.t1.t8)) +(step t35.t1.t10 (cl @p_555) :rule refl) +(step t35.t1.t11 (cl (! (= @p_322 @p_543) :named @p_565)) :rule cong :premises (t35.t1.t9 t35.t1.t10)) +(step t35.t1.t12 (cl (= @p_335 @p_556)) :rule cong :premises (t35.t1.t11)) +(step t35.t1.t13 (cl @p_557) :rule refl) +(step t35.t1.t14 (cl @p_553) :rule refl) +(step t35.t1.t15 (cl @p_558) :rule cong :premises (t35.t1.t13 t35.t1.t14)) +(step t35.t1.t16 (cl @p_555) :rule refl) +(step t35.t1.t17 (cl @p_559) :rule cong :premises (t35.t1.t15 t35.t1.t16)) +(step t35.t1.t18 (cl @p_560) :rule cong :premises (t35.t1.t17)) +(step t35.t1.t19 (cl (= @p_340 @p_561)) :rule cong :premises (t35.t1.t12 t35.t1.t18)) +(anchor :step t35.t1.t20 :args ((:= (veriT_vr23 B$) veriT_vr61) (:= (veriT_vr24 C$) veriT_vr62))) +(step t35.t1.t20.t1 (cl @p_563) :rule refl) +(step t35.t1.t20.t2 (cl @p_553) :rule refl) +(step t35.t1.t20.t3 (cl @p_564) :rule cong :premises (t35.t1.t20.t1 t35.t1.t20.t2)) +(step t35.t1.t20.t4 (cl @p_555) :rule refl) +(step t35.t1.t20.t5 (cl @p_565) :rule cong :premises (t35.t1.t20.t3 t35.t1.t20.t4)) +(step t35.t1.t20.t6 (cl (! (= veriT_vr23 veriT_vr61) :named @p_567)) :rule refl) +(step t35.t1.t20.t7 (cl (! (= veriT_vr24 veriT_vr62) :named @p_568)) :rule refl) +(step t35.t1.t20.t8 (cl (! (= @p_324 @p_545) :named @p_569)) :rule cong :premises (t35.t1.t20.t6 t35.t1.t20.t7)) +(step t35.t1.t20.t9 (cl (= @p_345 @p_566)) :rule cong :premises (t35.t1.t20.t5 t35.t1.t20.t8)) +(step t35.t1.t20.t10 (cl @p_557) :rule refl) +(step t35.t1.t20.t11 (cl @p_553) :rule refl) +(step t35.t1.t20.t12 (cl @p_558) :rule cong :premises (t35.t1.t20.t10 t35.t1.t20.t11)) +(step t35.t1.t20.t13 (cl @p_555) :rule refl) +(step t35.t1.t20.t14 (cl @p_559) :rule cong :premises (t35.t1.t20.t12 t35.t1.t20.t13)) +(step t35.t1.t20.t15 (cl @p_567) :rule refl) +(step t35.t1.t20.t16 (cl @p_568) :rule refl) +(step t35.t1.t20.t17 (cl @p_569) :rule cong :premises (t35.t1.t20.t15 t35.t1.t20.t16)) +(step t35.t1.t20.t18 (cl (= @p_349 @p_570)) :rule cong :premises (t35.t1.t20.t14 t35.t1.t20.t17)) +(step t35.t1.t20.t19 (cl (= @p_350 @p_571)) :rule cong :premises (t35.t1.t20.t9 t35.t1.t20.t18)) +(step t35.t1.t20 (cl (= @p_341 @p_562)) :rule bind) +(step t35.t1.t21 (cl (= @p_351 @p_572)) :rule cong :premises (t35.t1.t19 t35.t1.t20)) +(step t35.t1.t22 (cl (= @p_352 @p_573)) :rule cong :premises (t35.t1.t6 t35.t1.t21)) +(step t35.t1 (cl (= @p_330 @p_551)) :rule bind) +(anchor :step t35.t2 :args ((:= (veriT_vr25 D$) veriT_vr63))) +(step t35.t2.t1 (cl @p_557) :rule refl) +(step t35.t2.t2 (cl (! (= @p_354 @p_575) :named @p_577)) :rule cong :premises (t35.t2.t1)) +(step t35.t2.t3 (cl (! (= veriT_vr25 veriT_vr63) :named @p_578)) :rule refl) +(step t35.t2.t4 (cl (! (= @p_325 @p_546) :named @p_579)) :rule cong :premises (t35.t2.t2 t35.t2.t3)) +(step t35.t2.t5 (cl (! (= @p_327 @p_548) :named @p_601)) :rule cong :premises (t35.t2.t4)) +(anchor :step t35.t2.t6 :args ((:= (veriT_vr26 E$) veriT_vr64) (:= (veriT_vr27 D$) veriT_vr65))) +(step t35.t2.t6.t1 (cl @p_557) :rule refl) +(step t35.t2.t6.t2 (cl @p_577) :rule cong :premises (t35.t2.t6.t1)) +(step t35.t2.t6.t3 (cl @p_578) :rule refl) +(step t35.t2.t6.t4 (cl @p_579) :rule cong :premises (t35.t2.t6.t2 t35.t2.t6.t3)) +(step t35.t2.t6.t5 (cl (! (= veriT_vr26 veriT_vr64) :named @p_582)) :rule refl) +(step t35.t2.t6.t6 (cl (! (= veriT_vr27 veriT_vr65) :named @p_584)) :rule refl) +(step t35.t2.t6.t7 (cl (= @p_359 @p_580)) :rule cong :premises (t35.t2.t6.t5 t35.t2.t6.t6)) +(step t35.t2.t6.t8 (cl (= @p_360 @p_581)) :rule cong :premises (t35.t2.t6.t4 t35.t2.t6.t7)) +(step t35.t2.t6.t9 (cl @p_582) :rule refl) +(step t35.t2.t6.t10 (cl @p_557) :rule refl) +(step t35.t2.t6.t11 (cl (= @p_362 @p_583)) :rule cong :premises (t35.t2.t6.t9 t35.t2.t6.t10)) +(step t35.t2.t6.t12 (cl @p_584) :rule refl) +(step t35.t2.t6.t13 (cl (= @p_364 @p_585)) :rule cong :premises (t35.t2.t6.t11 t35.t2.t6.t12)) +(step t35.t2.t6.t14 (cl (= @p_365 @p_586)) :rule cong :premises (t35.t2.t6.t13)) +(step t35.t2.t6.t15 (cl (= @p_366 @p_587)) :rule cong :premises (t35.t2.t6.t8 t35.t2.t6.t14)) +(step t35.t2.t6 (cl (= @p_355 @p_576)) :rule bind) +(step t35.t2.t7 (cl @p_563) :rule refl) +(step t35.t2.t8 (cl (! (= @p_367 @p_588) :named @p_590)) :rule cong :premises (t35.t2.t7)) +(step t35.t2.t9 (cl @p_578) :rule refl) +(step t35.t2.t10 (cl (! (= @p_326 @p_547) :named @p_591)) :rule cong :premises (t35.t2.t8 t35.t2.t9)) +(step t35.t2.t11 (cl (! (= @p_328 @p_549) :named @p_624)) :rule cong :premises (t35.t2.t10)) +(anchor :step t35.t2.t12 :args ((:= (veriT_vr28 E$) veriT_vr66) (:= (veriT_vr29 D$) veriT_vr67))) +(step t35.t2.t12.t1 (cl @p_563) :rule refl) +(step t35.t2.t12.t2 (cl @p_590) :rule cong :premises (t35.t2.t12.t1)) +(step t35.t2.t12.t3 (cl @p_578) :rule refl) +(step t35.t2.t12.t4 (cl @p_591) :rule cong :premises (t35.t2.t12.t2 t35.t2.t12.t3)) +(step t35.t2.t12.t5 (cl (! (= veriT_vr28 veriT_vr66) :named @p_594)) :rule refl) +(step t35.t2.t12.t6 (cl (! (= veriT_vr29 veriT_vr67) :named @p_596)) :rule refl) +(step t35.t2.t12.t7 (cl (= @p_371 @p_592)) :rule cong :premises (t35.t2.t12.t5 t35.t2.t12.t6)) +(step t35.t2.t12.t8 (cl (= @p_372 @p_593)) :rule cong :premises (t35.t2.t12.t4 t35.t2.t12.t7)) +(step t35.t2.t12.t9 (cl @p_594) :rule refl) +(step t35.t2.t12.t10 (cl @p_563) :rule refl) +(step t35.t2.t12.t11 (cl (= @p_374 @p_595)) :rule cong :premises (t35.t2.t12.t9 t35.t2.t12.t10)) +(step t35.t2.t12.t12 (cl @p_596) :rule refl) +(step t35.t2.t12.t13 (cl (= @p_376 @p_597)) :rule cong :premises (t35.t2.t12.t11 t35.t2.t12.t12)) +(step t35.t2.t12.t14 (cl (= @p_377 @p_598)) :rule cong :premises (t35.t2.t12.t13)) +(step t35.t2.t12.t15 (cl (= @p_378 @p_599)) :rule cong :premises (t35.t2.t12.t8 t35.t2.t12.t14)) +(step t35.t2.t12 (cl (= @p_368 @p_589)) :rule bind) +(step t35.t2.t13 (cl (= @p_379 @p_600)) :rule cong :premises (t35.t2.t11 t35.t2.t12)) +(step t35.t2.t14 (cl @p_557) :rule refl) +(step t35.t2.t15 (cl @p_577) :rule cong :premises (t35.t2.t14)) +(step t35.t2.t16 (cl @p_578) :rule refl) +(step t35.t2.t17 (cl @p_579) :rule cong :premises (t35.t2.t15 t35.t2.t16)) +(step t35.t2.t18 (cl @p_601) :rule cong :premises (t35.t2.t17)) +(anchor :step t35.t2.t19 :args ((:= (veriT_vr30 E$) veriT_vr68) (:= (veriT_vr31 D$) veriT_vr69))) +(step t35.t2.t19.t1 (cl @p_557) :rule refl) +(step t35.t2.t19.t2 (cl @p_577) :rule cong :premises (t35.t2.t19.t1)) +(step t35.t2.t19.t3 (cl @p_578) :rule refl) +(step t35.t2.t19.t4 (cl @p_579) :rule cong :premises (t35.t2.t19.t2 t35.t2.t19.t3)) +(step t35.t2.t19.t5 (cl (! (= veriT_vr30 veriT_vr68) :named @p_605)) :rule refl) +(step t35.t2.t19.t6 (cl (! (= veriT_vr31 veriT_vr69) :named @p_607)) :rule refl) +(step t35.t2.t19.t7 (cl (= @p_382 @p_603)) :rule cong :premises (t35.t2.t19.t5 t35.t2.t19.t6)) +(step t35.t2.t19.t8 (cl (= @p_383 @p_604)) :rule cong :premises (t35.t2.t19.t4 t35.t2.t19.t7)) +(step t35.t2.t19.t9 (cl @p_605) :rule refl) +(step t35.t2.t19.t10 (cl @p_557) :rule refl) +(step t35.t2.t19.t11 (cl (= @p_385 @p_606)) :rule cong :premises (t35.t2.t19.t9 t35.t2.t19.t10)) +(step t35.t2.t19.t12 (cl @p_607) :rule refl) +(step t35.t2.t19.t13 (cl (= @p_387 @p_608)) :rule cong :premises (t35.t2.t19.t11 t35.t2.t19.t12)) +(step t35.t2.t19.t14 (cl (= @p_388 @p_609)) :rule cong :premises (t35.t2.t19.t13)) +(step t35.t2.t19.t15 (cl (= @p_389 @p_610)) :rule cong :premises (t35.t2.t19.t8 t35.t2.t19.t14)) +(step t35.t2.t19 (cl (= @p_381 @p_602)) :rule bind) +(step t35.t2.t20 (cl (= @p_390 @p_611)) :rule cong :premises (t35.t2.t18 t35.t2.t19)) +(step t35.t2.t21 (cl (= @p_612 @p_613)) :rule cong :premises (t35.t2.t13 t35.t2.t20)) +(step t35.t2.t22 (cl @p_557) :rule refl) +(step t35.t2.t23 (cl @p_577) :rule cong :premises (t35.t2.t22)) +(step t35.t2.t24 (cl @p_578) :rule refl) +(step t35.t2.t25 (cl @p_579) :rule cong :premises (t35.t2.t23 t35.t2.t24)) +(step t35.t2.t26 (cl @p_601) :rule cong :premises (t35.t2.t25)) +(anchor :step t35.t2.t27 :args ((:= (veriT_vr30 E$) veriT_vr70) (:= (veriT_vr31 D$) veriT_vr71))) +(step t35.t2.t27.t1 (cl @p_557) :rule refl) +(step t35.t2.t27.t2 (cl @p_577) :rule cong :premises (t35.t2.t27.t1)) +(step t35.t2.t27.t3 (cl @p_578) :rule refl) +(step t35.t2.t27.t4 (cl @p_579) :rule cong :premises (t35.t2.t27.t2 t35.t2.t27.t3)) +(step t35.t2.t27.t5 (cl (! (= veriT_vr30 veriT_vr70) :named @p_617)) :rule refl) +(step t35.t2.t27.t6 (cl (! (= veriT_vr31 veriT_vr71) :named @p_619)) :rule refl) +(step t35.t2.t27.t7 (cl (= @p_382 @p_615)) :rule cong :premises (t35.t2.t27.t5 t35.t2.t27.t6)) +(step t35.t2.t27.t8 (cl (= @p_383 @p_616)) :rule cong :premises (t35.t2.t27.t4 t35.t2.t27.t7)) +(step t35.t2.t27.t9 (cl @p_617) :rule refl) +(step t35.t2.t27.t10 (cl @p_557) :rule refl) +(step t35.t2.t27.t11 (cl (= @p_385 @p_618)) :rule cong :premises (t35.t2.t27.t9 t35.t2.t27.t10)) +(step t35.t2.t27.t12 (cl @p_619) :rule refl) +(step t35.t2.t27.t13 (cl (= @p_387 @p_620)) :rule cong :premises (t35.t2.t27.t11 t35.t2.t27.t12)) +(step t35.t2.t27.t14 (cl (= @p_388 @p_621)) :rule cong :premises (t35.t2.t27.t13)) +(step t35.t2.t27.t15 (cl (= @p_389 @p_622)) :rule cong :premises (t35.t2.t27.t8 t35.t2.t27.t14)) +(step t35.t2.t27 (cl (= @p_381 @p_614)) :rule bind) +(step t35.t2.t28 (cl (= @p_390 @p_623)) :rule cong :premises (t35.t2.t26 t35.t2.t27)) +(step t35.t2.t29 (cl @p_563) :rule refl) +(step t35.t2.t30 (cl @p_590) :rule cong :premises (t35.t2.t29)) +(step t35.t2.t31 (cl @p_578) :rule refl) +(step t35.t2.t32 (cl @p_591) :rule cong :premises (t35.t2.t30 t35.t2.t31)) +(step t35.t2.t33 (cl @p_624) :rule cong :premises (t35.t2.t32)) +(anchor :step t35.t2.t34 :args ((:= (veriT_vr28 E$) veriT_vr72) (:= (veriT_vr29 D$) veriT_vr73))) +(step t35.t2.t34.t1 (cl @p_563) :rule refl) +(step t35.t2.t34.t2 (cl @p_590) :rule cong :premises (t35.t2.t34.t1)) +(step t35.t2.t34.t3 (cl @p_578) :rule refl) +(step t35.t2.t34.t4 (cl @p_591) :rule cong :premises (t35.t2.t34.t2 t35.t2.t34.t3)) +(step t35.t2.t34.t5 (cl (! (= veriT_vr28 veriT_vr72) :named @p_628)) :rule refl) +(step t35.t2.t34.t6 (cl (! (= veriT_vr29 veriT_vr73) :named @p_630)) :rule refl) +(step t35.t2.t34.t7 (cl (= @p_371 @p_626)) :rule cong :premises (t35.t2.t34.t5 t35.t2.t34.t6)) +(step t35.t2.t34.t8 (cl (= @p_372 @p_627)) :rule cong :premises (t35.t2.t34.t4 t35.t2.t34.t7)) +(step t35.t2.t34.t9 (cl @p_628) :rule refl) +(step t35.t2.t34.t10 (cl @p_563) :rule refl) +(step t35.t2.t34.t11 (cl (= @p_374 @p_629)) :rule cong :premises (t35.t2.t34.t9 t35.t2.t34.t10)) +(step t35.t2.t34.t12 (cl @p_630) :rule refl) +(step t35.t2.t34.t13 (cl (= @p_376 @p_631)) :rule cong :premises (t35.t2.t34.t11 t35.t2.t34.t12)) +(step t35.t2.t34.t14 (cl (= @p_377 @p_632)) :rule cong :premises (t35.t2.t34.t13)) +(step t35.t2.t34.t15 (cl (= @p_378 @p_633)) :rule cong :premises (t35.t2.t34.t8 t35.t2.t34.t14)) +(step t35.t2.t34 (cl (= @p_368 @p_625)) :rule bind) +(step t35.t2.t35 (cl (= @p_379 @p_634)) :rule cong :premises (t35.t2.t33 t35.t2.t34)) +(step t35.t2.t36 (cl (= @p_635 @p_636)) :rule cong :premises (t35.t2.t28 t35.t2.t35)) +(step t35.t2.t37 (cl (= @p_427 @p_637)) :rule cong :premises (t35.t2.t21 t35.t2.t36)) +(anchor :step t35.t2.t38 :args ((:= (veriT_vr32 F$) veriT_vr74) (:= (veriT_vr33 D$) veriT_vr75))) +(step t35.t2.t38.t1 (cl @p_563) :rule refl) +(step t35.t2.t38.t2 (cl @p_590) :rule cong :premises (t35.t2.t38.t1)) +(step t35.t2.t38.t3 (cl @p_578) :rule refl) +(step t35.t2.t38.t4 (cl @p_591) :rule cong :premises (t35.t2.t38.t2 t35.t2.t38.t3)) +(step t35.t2.t38.t5 (cl @p_624) :rule cong :premises (t35.t2.t38.t4)) +(anchor :step t35.t2.t38.t6 :args ((:= (veriT_vr34 E$) veriT_vr76) (:= (veriT_vr35 D$) veriT_vr77))) +(step t35.t2.t38.t6.t1 (cl @p_563) :rule refl) +(step t35.t2.t38.t6.t2 (cl @p_590) :rule cong :premises (t35.t2.t38.t6.t1)) +(step t35.t2.t38.t6.t3 (cl @p_578) :rule refl) +(step t35.t2.t38.t6.t4 (cl @p_591) :rule cong :premises (t35.t2.t38.t6.t2 t35.t2.t38.t6.t3)) +(step t35.t2.t38.t6.t5 (cl (! (= veriT_vr34 veriT_vr76) :named @p_642)) :rule refl) +(step t35.t2.t38.t6.t6 (cl (! (= veriT_vr35 veriT_vr77) :named @p_644)) :rule refl) +(step t35.t2.t38.t6.t7 (cl (= @p_395 @p_640)) :rule cong :premises (t35.t2.t38.t6.t5 t35.t2.t38.t6.t6)) +(step t35.t2.t38.t6.t8 (cl (= @p_396 @p_641)) :rule cong :premises (t35.t2.t38.t6.t4 t35.t2.t38.t6.t7)) +(step t35.t2.t38.t6.t9 (cl @p_642) :rule refl) +(step t35.t2.t38.t6.t10 (cl @p_563) :rule refl) +(step t35.t2.t38.t6.t11 (cl (= @p_398 @p_643)) :rule cong :premises (t35.t2.t38.t6.t9 t35.t2.t38.t6.t10)) +(step t35.t2.t38.t6.t12 (cl @p_644) :rule refl) +(step t35.t2.t38.t6.t13 (cl (= @p_400 @p_645)) :rule cong :premises (t35.t2.t38.t6.t11 t35.t2.t38.t6.t12)) +(step t35.t2.t38.t6.t14 (cl (! (= veriT_vr32 veriT_vr74) :named @p_656)) :rule refl) +(step t35.t2.t38.t6.t15 (cl (! (= veriT_vr33 veriT_vr75) :named @p_657)) :rule refl) +(step t35.t2.t38.t6.t16 (cl (! (= @p_329 @p_550) :named @p_658)) :rule cong :premises (t35.t2.t38.t6.t14 t35.t2.t38.t6.t15)) +(step t35.t2.t38.t6.t17 (cl (= @p_401 @p_646)) :rule cong :premises (t35.t2.t38.t6.t13 t35.t2.t38.t6.t16)) +(step t35.t2.t38.t6.t18 (cl (= @p_402 @p_647)) :rule cong :premises (t35.t2.t38.t6.t8 t35.t2.t38.t6.t17)) +(step t35.t2.t38.t6 (cl (= @p_394 @p_639)) :rule bind) +(step t35.t2.t38.t7 (cl (= @p_403 @p_648)) :rule cong :premises (t35.t2.t38.t5 t35.t2.t38.t6)) +(step t35.t2.t38.t8 (cl @p_557) :rule refl) +(step t35.t2.t38.t9 (cl @p_577) :rule cong :premises (t35.t2.t38.t8)) +(step t35.t2.t38.t10 (cl @p_578) :rule refl) +(step t35.t2.t38.t11 (cl @p_579) :rule cong :premises (t35.t2.t38.t9 t35.t2.t38.t10)) +(step t35.t2.t38.t12 (cl @p_601) :rule cong :premises (t35.t2.t38.t11)) +(anchor :step t35.t2.t38.t13 :args ((:= (veriT_vr36 E$) veriT_vr78) (:= (veriT_vr37 D$) veriT_vr79))) +(step t35.t2.t38.t13.t1 (cl @p_557) :rule refl) +(step t35.t2.t38.t13.t2 (cl @p_577) :rule cong :premises (t35.t2.t38.t13.t1)) +(step t35.t2.t38.t13.t3 (cl @p_578) :rule refl) +(step t35.t2.t38.t13.t4 (cl @p_579) :rule cong :premises (t35.t2.t38.t13.t2 t35.t2.t38.t13.t3)) +(step t35.t2.t38.t13.t5 (cl (! (= veriT_vr36 veriT_vr78) :named @p_652)) :rule refl) +(step t35.t2.t38.t13.t6 (cl (! (= veriT_vr37 veriT_vr79) :named @p_654)) :rule refl) +(step t35.t2.t38.t13.t7 (cl (= @p_405 @p_650)) :rule cong :premises (t35.t2.t38.t13.t5 t35.t2.t38.t13.t6)) +(step t35.t2.t38.t13.t8 (cl (= @p_406 @p_651)) :rule cong :premises (t35.t2.t38.t13.t4 t35.t2.t38.t13.t7)) +(step t35.t2.t38.t13.t9 (cl @p_652) :rule refl) +(step t35.t2.t38.t13.t10 (cl @p_557) :rule refl) +(step t35.t2.t38.t13.t11 (cl (= @p_408 @p_653)) :rule cong :premises (t35.t2.t38.t13.t9 t35.t2.t38.t13.t10)) +(step t35.t2.t38.t13.t12 (cl @p_654) :rule refl) +(step t35.t2.t38.t13.t13 (cl (= @p_410 @p_655)) :rule cong :premises (t35.t2.t38.t13.t11 t35.t2.t38.t13.t12)) +(step t35.t2.t38.t13.t14 (cl @p_656) :rule refl) +(step t35.t2.t38.t13.t15 (cl @p_657) :rule refl) +(step t35.t2.t38.t13.t16 (cl @p_658) :rule cong :premises (t35.t2.t38.t13.t14 t35.t2.t38.t13.t15)) +(step t35.t2.t38.t13.t17 (cl (= @p_414 @p_659)) :rule cong :premises (t35.t2.t38.t13.t13 t35.t2.t38.t13.t16)) +(step t35.t2.t38.t13.t18 (cl (= @p_415 @p_660)) :rule cong :premises (t35.t2.t38.t13.t8 t35.t2.t38.t13.t17)) +(step t35.t2.t38.t13 (cl (= @p_404 @p_649)) :rule bind) +(step t35.t2.t38.t14 (cl (= @p_416 @p_661)) :rule cong :premises (t35.t2.t38.t12 t35.t2.t38.t13)) +(step t35.t2.t38.t15 (cl (= @p_662 @p_663)) :rule cong :premises (t35.t2.t38.t7 t35.t2.t38.t14)) +(step t35.t2.t38.t16 (cl @p_557) :rule refl) +(step t35.t2.t38.t17 (cl @p_577) :rule cong :premises (t35.t2.t38.t16)) +(step t35.t2.t38.t18 (cl @p_578) :rule refl) +(step t35.t2.t38.t19 (cl @p_579) :rule cong :premises (t35.t2.t38.t17 t35.t2.t38.t18)) +(step t35.t2.t38.t20 (cl @p_601) :rule cong :premises (t35.t2.t38.t19)) +(anchor :step t35.t2.t38.t21 :args ((:= (veriT_vr36 E$) veriT_vr80) (:= (veriT_vr37 D$) veriT_vr81))) +(step t35.t2.t38.t21.t1 (cl @p_557) :rule refl) +(step t35.t2.t38.t21.t2 (cl @p_577) :rule cong :premises (t35.t2.t38.t21.t1)) +(step t35.t2.t38.t21.t3 (cl @p_578) :rule refl) +(step t35.t2.t38.t21.t4 (cl @p_579) :rule cong :premises (t35.t2.t38.t21.t2 t35.t2.t38.t21.t3)) +(step t35.t2.t38.t21.t5 (cl (! (= veriT_vr36 veriT_vr80) :named @p_667)) :rule refl) +(step t35.t2.t38.t21.t6 (cl (! (= veriT_vr37 veriT_vr81) :named @p_669)) :rule refl) +(step t35.t2.t38.t21.t7 (cl (= @p_405 @p_665)) :rule cong :premises (t35.t2.t38.t21.t5 t35.t2.t38.t21.t6)) +(step t35.t2.t38.t21.t8 (cl (= @p_406 @p_666)) :rule cong :premises (t35.t2.t38.t21.t4 t35.t2.t38.t21.t7)) +(step t35.t2.t38.t21.t9 (cl @p_667) :rule refl) +(step t35.t2.t38.t21.t10 (cl @p_557) :rule refl) +(step t35.t2.t38.t21.t11 (cl (= @p_408 @p_668)) :rule cong :premises (t35.t2.t38.t21.t9 t35.t2.t38.t21.t10)) +(step t35.t2.t38.t21.t12 (cl @p_669) :rule refl) +(step t35.t2.t38.t21.t13 (cl (= @p_410 @p_670)) :rule cong :premises (t35.t2.t38.t21.t11 t35.t2.t38.t21.t12)) +(step t35.t2.t38.t21.t14 (cl @p_656) :rule refl) +(step t35.t2.t38.t21.t15 (cl @p_657) :rule refl) +(step t35.t2.t38.t21.t16 (cl @p_658) :rule cong :premises (t35.t2.t38.t21.t14 t35.t2.t38.t21.t15)) +(step t35.t2.t38.t21.t17 (cl (= @p_414 @p_671)) :rule cong :premises (t35.t2.t38.t21.t13 t35.t2.t38.t21.t16)) +(step t35.t2.t38.t21.t18 (cl (= @p_415 @p_672)) :rule cong :premises (t35.t2.t38.t21.t8 t35.t2.t38.t21.t17)) +(step t35.t2.t38.t21 (cl (= @p_404 @p_664)) :rule bind) +(step t35.t2.t38.t22 (cl (= @p_416 @p_673)) :rule cong :premises (t35.t2.t38.t20 t35.t2.t38.t21)) +(step t35.t2.t38.t23 (cl @p_563) :rule refl) +(step t35.t2.t38.t24 (cl @p_590) :rule cong :premises (t35.t2.t38.t23)) +(step t35.t2.t38.t25 (cl @p_578) :rule refl) +(step t35.t2.t38.t26 (cl @p_591) :rule cong :premises (t35.t2.t38.t24 t35.t2.t38.t25)) +(step t35.t2.t38.t27 (cl @p_624) :rule cong :premises (t35.t2.t38.t26)) +(anchor :step t35.t2.t38.t28 :args ((:= (veriT_vr34 E$) veriT_vr82) (:= (veriT_vr35 D$) veriT_vr83))) +(step t35.t2.t38.t28.t1 (cl @p_563) :rule refl) +(step t35.t2.t38.t28.t2 (cl @p_590) :rule cong :premises (t35.t2.t38.t28.t1)) +(step t35.t2.t38.t28.t3 (cl @p_578) :rule refl) +(step t35.t2.t38.t28.t4 (cl @p_591) :rule cong :premises (t35.t2.t38.t28.t2 t35.t2.t38.t28.t3)) +(step t35.t2.t38.t28.t5 (cl (! (= veriT_vr34 veriT_vr82) :named @p_677)) :rule refl) +(step t35.t2.t38.t28.t6 (cl (! (= veriT_vr35 veriT_vr83) :named @p_679)) :rule refl) +(step t35.t2.t38.t28.t7 (cl (= @p_395 @p_675)) :rule cong :premises (t35.t2.t38.t28.t5 t35.t2.t38.t28.t6)) +(step t35.t2.t38.t28.t8 (cl (= @p_396 @p_676)) :rule cong :premises (t35.t2.t38.t28.t4 t35.t2.t38.t28.t7)) +(step t35.t2.t38.t28.t9 (cl @p_677) :rule refl) +(step t35.t2.t38.t28.t10 (cl @p_563) :rule refl) +(step t35.t2.t38.t28.t11 (cl (= @p_398 @p_678)) :rule cong :premises (t35.t2.t38.t28.t9 t35.t2.t38.t28.t10)) +(step t35.t2.t38.t28.t12 (cl @p_679) :rule refl) +(step t35.t2.t38.t28.t13 (cl (= @p_400 @p_680)) :rule cong :premises (t35.t2.t38.t28.t11 t35.t2.t38.t28.t12)) +(step t35.t2.t38.t28.t14 (cl @p_656) :rule refl) +(step t35.t2.t38.t28.t15 (cl @p_657) :rule refl) +(step t35.t2.t38.t28.t16 (cl @p_658) :rule cong :premises (t35.t2.t38.t28.t14 t35.t2.t38.t28.t15)) +(step t35.t2.t38.t28.t17 (cl (= @p_401 @p_681)) :rule cong :premises (t35.t2.t38.t28.t13 t35.t2.t38.t28.t16)) +(step t35.t2.t38.t28.t18 (cl (= @p_402 @p_682)) :rule cong :premises (t35.t2.t38.t28.t8 t35.t2.t38.t28.t17)) +(step t35.t2.t38.t28 (cl (= @p_394 @p_674)) :rule bind) +(step t35.t2.t38.t29 (cl (= @p_403 @p_683)) :rule cong :premises (t35.t2.t38.t27 t35.t2.t38.t28)) +(step t35.t2.t38.t30 (cl (= @p_684 @p_685)) :rule cong :premises (t35.t2.t38.t22 t35.t2.t38.t29)) +(step t35.t2.t38.t31 (cl (= @p_429 @p_686)) :rule cong :premises (t35.t2.t38.t15 t35.t2.t38.t30)) +(step t35.t2.t38 (cl (= @p_428 @p_638)) :rule bind) +(step t35.t2.t39 (cl (= @p_430 @p_687)) :rule cong :premises (t35.t2.t37 t35.t2.t38)) +(step t35.t2.t40 (cl (= @p_431 @p_688)) :rule cong :premises (t35.t2.t5 t35.t2.t6 t35.t2.t39)) +(step t35.t2 (cl (= @p_426 @p_574)) :rule bind) +(step t35.t3 (cl (= @p_432 @p_689)) :rule cong :premises (t35.t1 t35.t2)) +(step t35 (cl (= @p_433 (! (forall ((veriT_vr57 A_b_c_M_state_fun$) (veriT_vr58 A_b_c_M_state_fun$)) @p_689) :named @p_690))) :rule bind) +(step t36 (cl (= @p_434 (! (not @p_690) :named @p_693))) :rule cong :premises (t35)) +(step t37 (cl (! (= @p_436 (! (and @p_691 @p_692 @p_693) :named @p_695)) :named @p_694)) :rule cong :premises (t33 t34 t36)) +(step t38 (cl (not @p_694) (not @p_436) @p_695) :rule equiv_pos2) +(step t39 (cl @p_695) :rule th_resolution :premises (t32 t37 t38)) +(anchor :step t40 :args ((:= (veriT_vr57 A_b_c_M_state_fun$) veriT_sk0) (:= (veriT_vr58 A_b_c_M_state_fun$) veriT_sk1))) +(anchor :step t40.t1 :args ((veriT_vr59 A$) (veriT_vr60 C$))) +(step t40.t1.t1 (cl (! (= veriT_vr57 veriT_sk0) :named @p_754)) :rule refl) +(step t40.t1.t2 (cl (! (= @p_552 (! (fun_app$ veriT_sk0 veriT_vr59) :named @p_751)) :named @p_755)) :rule cong :premises (t40.t1.t1)) +(step t40.t1.t3 (cl (! (= @p_544 (! (run$ @p_751 veriT_vr60) :named @p_703)) :named @p_756)) :rule cong :premises (t40.t1.t2)) +(step t40.t1.t4 (cl (! (= @p_542 (! (is_fail$ @p_703) :named @p_701)) :named @p_757)) :rule cong :premises (t40.t1.t3)) +(step t40.t1.t5 (cl (! (= veriT_vr58 veriT_sk1) :named @p_760)) :rule refl) +(step t40.t1.t6 (cl (! (= @p_554 (! (fun_app$ veriT_sk1 veriT_vr59) :named @p_752)) :named @p_761)) :rule cong :premises (t40.t1.t5)) +(step t40.t1.t7 (cl (! (= @p_543 (! (run$ @p_752 veriT_vr60) :named @p_702)) :named @p_762)) :rule cong :premises (t40.t1.t6)) +(step t40.t1.t8 (cl (= @p_556 (! (is_fail$ @p_702) :named @p_753))) :rule cong :premises (t40.t1.t7)) +(step t40.t1.t9 (cl @p_754) :rule refl) +(step t40.t1.t10 (cl @p_755) :rule cong :premises (t40.t1.t9)) +(step t40.t1.t11 (cl @p_756) :rule cong :premises (t40.t1.t10)) +(step t40.t1.t12 (cl @p_757) :rule cong :premises (t40.t1.t11)) +(step t40.t1.t13 (cl (= @p_561 (! (= @p_753 @p_701) :named @p_758))) :rule cong :premises (t40.t1.t8 t40.t1.t12)) +(anchor :step t40.t1.t14 :args ((veriT_vr61 B$) (veriT_vr62 C$))) +(step t40.t1.t14.t1 (cl @p_760) :rule refl) +(step t40.t1.t14.t2 (cl @p_761) :rule cong :premises (t40.t1.t14.t1)) +(step t40.t1.t14.t3 (cl @p_762) :rule cong :premises (t40.t1.t14.t2)) +(step t40.t1.t14.t4 (cl (= @p_566 (! (is_res$ @p_702 @p_545) :named @p_763))) :rule cong :premises (t40.t1.t14.t3)) +(step t40.t1.t14.t5 (cl @p_754) :rule refl) +(step t40.t1.t14.t6 (cl @p_755) :rule cong :premises (t40.t1.t14.t5)) +(step t40.t1.t14.t7 (cl @p_756) :rule cong :premises (t40.t1.t14.t6)) +(step t40.t1.t14.t8 (cl (= @p_570 (! (is_res$ @p_703 @p_545) :named @p_764))) :rule cong :premises (t40.t1.t14.t7)) +(step t40.t1.t14.t9 (cl (= @p_571 (! (= @p_763 @p_764) :named @p_765))) :rule cong :premises (t40.t1.t14.t4 t40.t1.t14.t8)) +(step t40.t1.t14 (cl (= @p_562 (! (forall ((veriT_vr61 B$) (veriT_vr62 C$)) @p_765) :named @p_759))) :rule bind) +(step t40.t1.t15 (cl (= @p_572 (! (and @p_758 @p_759) :named @p_766))) :rule cong :premises (t40.t1.t13 t40.t1.t14)) +(step t40.t1.t16 (cl (= @p_573 (! (or @p_701 @p_766) :named @p_767))) :rule cong :premises (t40.t1.t4 t40.t1.t15)) +(step t40.t1 (cl (= @p_551 (! (forall ((veriT_vr59 A$) (veriT_vr60 C$)) @p_767) :named @p_750))) :rule bind) +(anchor :step t40.t2 :args ((:= (veriT_vr63 D$) veriT_sk2))) +(step t40.t2.t1 (cl @p_754) :rule refl) +(step t40.t2.t2 (cl (! (= @p_575 (! (b$ veriT_sk0) :named @p_769)) :named @p_771)) :rule cong :premises (t40.t2.t1)) +(step t40.t2.t3 (cl (! (= veriT_vr63 veriT_sk2) :named @p_772)) :rule refl) +(step t40.t2.t4 (cl (! (= @p_546 (! (run$a @p_769 veriT_sk2) :named @p_712)) :named @p_773)) :rule cong :premises (t40.t2.t2 t40.t2.t3)) +(step t40.t2.t5 (cl (! (= @p_548 (! (is_fail$a @p_712) :named @p_720)) :named @p_791)) :rule cong :premises (t40.t2.t4)) +(anchor :step t40.t2.t6 :args ((veriT_vr64 E$) (veriT_vr65 D$))) +(step t40.t2.t6.t1 (cl @p_754) :rule refl) +(step t40.t2.t6.t2 (cl @p_771) :rule cong :premises (t40.t2.t6.t1)) +(step t40.t2.t6.t3 (cl @p_772) :rule refl) +(step t40.t2.t6.t4 (cl @p_773) :rule cong :premises (t40.t2.t6.t2 t40.t2.t6.t3)) +(step t40.t2.t6.t5 (cl (= @p_581 (! (is_res$a @p_712 @p_580) :named @p_774))) :rule cong :premises (t40.t2.t6.t4)) +(step t40.t2.t6.t6 (cl @p_754) :rule refl) +(step t40.t2.t6.t7 (cl (= @p_583 (! (c$ veriT_vr64 veriT_sk0) :named @p_775))) :rule cong :premises (t40.t2.t6.t6)) +(step t40.t2.t6.t8 (cl (= @p_585 (! (run$b @p_775 veriT_vr65) :named @p_776))) :rule cong :premises (t40.t2.t6.t7)) +(step t40.t2.t6.t9 (cl (= @p_586 (! (is_fail$b @p_776) :named @p_777))) :rule cong :premises (t40.t2.t6.t8)) +(step t40.t2.t6.t10 (cl (= @p_587 (! (and @p_774 @p_777) :named @p_778))) :rule cong :premises (t40.t2.t6.t5 t40.t2.t6.t9)) +(step t40.t2.t6 (cl (= @p_576 (! (exists ((veriT_vr64 E$) (veriT_vr65 D$)) @p_778) :named @p_770))) :rule bind) +(step t40.t2.t7 (cl @p_760) :rule refl) +(step t40.t2.t8 (cl (! (= @p_588 (! (b$ veriT_sk1) :named @p_779)) :named @p_781)) :rule cong :premises (t40.t2.t7)) +(step t40.t2.t9 (cl @p_772) :rule refl) +(step t40.t2.t10 (cl (! (= @p_547 (! (run$a @p_779 veriT_sk2) :named @p_714)) :named @p_782)) :rule cong :premises (t40.t2.t8 t40.t2.t9)) +(step t40.t2.t11 (cl (! (= @p_549 (! (is_fail$a @p_714) :named @p_726)) :named @p_809)) :rule cong :premises (t40.t2.t10)) +(anchor :step t40.t2.t12 :args ((:= (veriT_vr66 E$) veriT_sk3) (:= (veriT_vr67 D$) veriT_sk4))) +(step t40.t2.t12.t1 (cl @p_760) :rule refl) +(step t40.t2.t12.t2 (cl @p_781) :rule cong :premises (t40.t2.t12.t1)) +(step t40.t2.t12.t3 (cl @p_772) :rule refl) +(step t40.t2.t12.t4 (cl @p_782) :rule cong :premises (t40.t2.t12.t2 t40.t2.t12.t3)) +(step t40.t2.t12.t5 (cl (! (= veriT_vr66 veriT_sk3) :named @p_785)) :rule refl) +(step t40.t2.t12.t6 (cl (! (= veriT_vr67 veriT_sk4) :named @p_787)) :rule refl) +(step t40.t2.t12.t7 (cl (= @p_592 (! (pair$a veriT_sk3 veriT_sk4) :named @p_783))) :rule cong :premises (t40.t2.t12.t5 t40.t2.t12.t6)) +(step t40.t2.t12.t8 (cl (= @p_593 (! (is_res$a @p_714 @p_783) :named @p_784))) :rule cong :premises (t40.t2.t12.t4 t40.t2.t12.t7)) +(step t40.t2.t12.t9 (cl @p_785) :rule refl) +(step t40.t2.t12.t10 (cl @p_760) :rule refl) +(step t40.t2.t12.t11 (cl (= @p_595 (! (c$ veriT_sk3 veriT_sk1) :named @p_786))) :rule cong :premises (t40.t2.t12.t9 t40.t2.t12.t10)) +(step t40.t2.t12.t12 (cl @p_787) :rule refl) +(step t40.t2.t12.t13 (cl (= @p_597 (! (run$b @p_786 veriT_sk4) :named @p_788))) :rule cong :premises (t40.t2.t12.t11 t40.t2.t12.t12)) +(step t40.t2.t12.t14 (cl (= @p_598 (! (is_fail$b @p_788) :named @p_789))) :rule cong :premises (t40.t2.t12.t13)) +(step t40.t2.t12.t15 (cl (= @p_599 (! (and @p_784 @p_789) :named @p_780))) :rule cong :premises (t40.t2.t12.t8 t40.t2.t12.t14)) +(step t40.t2.t12 (cl (= @p_589 @p_780)) :rule sko_ex) +(step t40.t2.t13 (cl (= @p_600 (! (or @p_726 @p_780) :named @p_790))) :rule cong :premises (t40.t2.t11 t40.t2.t12)) +(step t40.t2.t14 (cl @p_754) :rule refl) +(step t40.t2.t15 (cl @p_771) :rule cong :premises (t40.t2.t14)) +(step t40.t2.t16 (cl @p_772) :rule refl) +(step t40.t2.t17 (cl @p_773) :rule cong :premises (t40.t2.t15 t40.t2.t16)) +(step t40.t2.t18 (cl @p_791) :rule cong :premises (t40.t2.t17)) +(anchor :step t40.t2.t19 :args ((veriT_vr68 E$) (veriT_vr69 D$))) +(step t40.t2.t19.t1 (cl @p_754) :rule refl) +(step t40.t2.t19.t2 (cl @p_771) :rule cong :premises (t40.t2.t19.t1)) +(step t40.t2.t19.t3 (cl @p_772) :rule refl) +(step t40.t2.t19.t4 (cl @p_773) :rule cong :premises (t40.t2.t19.t2 t40.t2.t19.t3)) +(step t40.t2.t19.t5 (cl (= @p_604 (! (is_res$a @p_712 @p_603) :named @p_793))) :rule cong :premises (t40.t2.t19.t4)) +(step t40.t2.t19.t6 (cl @p_754) :rule refl) +(step t40.t2.t19.t7 (cl (= @p_606 (! (c$ veriT_vr68 veriT_sk0) :named @p_794))) :rule cong :premises (t40.t2.t19.t6)) +(step t40.t2.t19.t8 (cl (= @p_608 (! (run$b @p_794 veriT_vr69) :named @p_795))) :rule cong :premises (t40.t2.t19.t7)) +(step t40.t2.t19.t9 (cl (= @p_609 (! (is_fail$b @p_795) :named @p_796))) :rule cong :premises (t40.t2.t19.t8)) +(step t40.t2.t19.t10 (cl (= @p_610 (! (and @p_793 @p_796) :named @p_797))) :rule cong :premises (t40.t2.t19.t5 t40.t2.t19.t9)) +(step t40.t2.t19 (cl (= @p_602 (! (exists ((veriT_vr68 E$) (veriT_vr69 D$)) @p_797) :named @p_792))) :rule bind) +(step t40.t2.t20 (cl (= @p_611 (! (or @p_720 @p_792) :named @p_798))) :rule cong :premises (t40.t2.t18 t40.t2.t19)) +(step t40.t2.t21 (cl (= @p_613 (! (=> @p_790 @p_798) :named @p_799))) :rule cong :premises (t40.t2.t13 t40.t2.t20)) +(step t40.t2.t22 (cl @p_754) :rule refl) +(step t40.t2.t23 (cl @p_771) :rule cong :premises (t40.t2.t22)) +(step t40.t2.t24 (cl @p_772) :rule refl) +(step t40.t2.t25 (cl @p_773) :rule cong :premises (t40.t2.t23 t40.t2.t24)) +(step t40.t2.t26 (cl @p_791) :rule cong :premises (t40.t2.t25)) +(anchor :step t40.t2.t27 :args ((:= (veriT_vr70 E$) veriT_sk5) (:= (veriT_vr71 D$) veriT_sk6))) +(step t40.t2.t27.t1 (cl @p_754) :rule refl) +(step t40.t2.t27.t2 (cl @p_771) :rule cong :premises (t40.t2.t27.t1)) +(step t40.t2.t27.t3 (cl @p_772) :rule refl) +(step t40.t2.t27.t4 (cl @p_773) :rule cong :premises (t40.t2.t27.t2 t40.t2.t27.t3)) +(step t40.t2.t27.t5 (cl (! (= veriT_vr70 veriT_sk5) :named @p_803)) :rule refl) +(step t40.t2.t27.t6 (cl (! (= veriT_vr71 veriT_sk6) :named @p_805)) :rule refl) +(step t40.t2.t27.t7 (cl (= @p_615 (! (pair$a veriT_sk5 veriT_sk6) :named @p_801))) :rule cong :premises (t40.t2.t27.t5 t40.t2.t27.t6)) +(step t40.t2.t27.t8 (cl (= @p_616 (! (is_res$a @p_712 @p_801) :named @p_802))) :rule cong :premises (t40.t2.t27.t4 t40.t2.t27.t7)) +(step t40.t2.t27.t9 (cl @p_803) :rule refl) +(step t40.t2.t27.t10 (cl @p_754) :rule refl) +(step t40.t2.t27.t11 (cl (= @p_618 (! (c$ veriT_sk5 veriT_sk0) :named @p_804))) :rule cong :premises (t40.t2.t27.t9 t40.t2.t27.t10)) +(step t40.t2.t27.t12 (cl @p_805) :rule refl) +(step t40.t2.t27.t13 (cl (= @p_620 (! (run$b @p_804 veriT_sk6) :named @p_806))) :rule cong :premises (t40.t2.t27.t11 t40.t2.t27.t12)) +(step t40.t2.t27.t14 (cl (= @p_621 (! (is_fail$b @p_806) :named @p_807))) :rule cong :premises (t40.t2.t27.t13)) +(step t40.t2.t27.t15 (cl (= @p_622 (! (and @p_802 @p_807) :named @p_800))) :rule cong :premises (t40.t2.t27.t8 t40.t2.t27.t14)) +(step t40.t2.t27 (cl (= @p_614 @p_800)) :rule sko_ex) +(step t40.t2.t28 (cl (= @p_623 (! (or @p_720 @p_800) :named @p_808))) :rule cong :premises (t40.t2.t26 t40.t2.t27)) +(step t40.t2.t29 (cl @p_760) :rule refl) +(step t40.t2.t30 (cl @p_781) :rule cong :premises (t40.t2.t29)) +(step t40.t2.t31 (cl @p_772) :rule refl) +(step t40.t2.t32 (cl @p_782) :rule cong :premises (t40.t2.t30 t40.t2.t31)) +(step t40.t2.t33 (cl @p_809) :rule cong :premises (t40.t2.t32)) +(anchor :step t40.t2.t34 :args ((veriT_vr72 E$) (veriT_vr73 D$))) +(step t40.t2.t34.t1 (cl @p_760) :rule refl) +(step t40.t2.t34.t2 (cl @p_781) :rule cong :premises (t40.t2.t34.t1)) +(step t40.t2.t34.t3 (cl @p_772) :rule refl) +(step t40.t2.t34.t4 (cl @p_782) :rule cong :premises (t40.t2.t34.t2 t40.t2.t34.t3)) +(step t40.t2.t34.t5 (cl (= @p_627 (! (is_res$a @p_714 @p_626) :named @p_811))) :rule cong :premises (t40.t2.t34.t4)) +(step t40.t2.t34.t6 (cl @p_760) :rule refl) +(step t40.t2.t34.t7 (cl (= @p_629 (! (c$ veriT_vr72 veriT_sk1) :named @p_812))) :rule cong :premises (t40.t2.t34.t6)) +(step t40.t2.t34.t8 (cl (= @p_631 (! (run$b @p_812 veriT_vr73) :named @p_813))) :rule cong :premises (t40.t2.t34.t7)) +(step t40.t2.t34.t9 (cl (= @p_632 (! (is_fail$b @p_813) :named @p_814))) :rule cong :premises (t40.t2.t34.t8)) +(step t40.t2.t34.t10 (cl (= @p_633 (! (and @p_811 @p_814) :named @p_815))) :rule cong :premises (t40.t2.t34.t5 t40.t2.t34.t9)) +(step t40.t2.t34 (cl (= @p_625 (! (exists ((veriT_vr72 E$) (veriT_vr73 D$)) @p_815) :named @p_810))) :rule bind) +(step t40.t2.t35 (cl (= @p_634 (! (or @p_726 @p_810) :named @p_816))) :rule cong :premises (t40.t2.t33 t40.t2.t34)) +(step t40.t2.t36 (cl (= @p_636 (! (=> @p_808 @p_816) :named @p_817))) :rule cong :premises (t40.t2.t28 t40.t2.t35)) +(step t40.t2.t37 (cl (= @p_637 (! (and @p_799 @p_817) :named @p_818))) :rule cong :premises (t40.t2.t21 t40.t2.t36)) +(anchor :step t40.t2.t38 :args ((:= (veriT_vr74 F$) veriT_sk7) (:= (veriT_vr75 D$) veriT_sk8))) +(step t40.t2.t38.t1 (cl @p_760) :rule refl) +(step t40.t2.t38.t2 (cl @p_781) :rule cong :premises (t40.t2.t38.t1)) +(step t40.t2.t38.t3 (cl @p_772) :rule refl) +(step t40.t2.t38.t4 (cl @p_782) :rule cong :premises (t40.t2.t38.t2 t40.t2.t38.t3)) +(step t40.t2.t38.t5 (cl @p_809) :rule cong :premises (t40.t2.t38.t4)) +(anchor :step t40.t2.t38.t6 :args ((:= (veriT_vr76 E$) veriT_sk9) (:= (veriT_vr77 D$) veriT_sk10))) +(step t40.t2.t38.t6.t1 (cl @p_760) :rule refl) +(step t40.t2.t38.t6.t2 (cl @p_781) :rule cong :premises (t40.t2.t38.t6.t1)) +(step t40.t2.t38.t6.t3 (cl @p_772) :rule refl) +(step t40.t2.t38.t6.t4 (cl @p_782) :rule cong :premises (t40.t2.t38.t6.t2 t40.t2.t38.t6.t3)) +(step t40.t2.t38.t6.t5 (cl (! (= veriT_vr76 veriT_sk9) :named @p_823)) :rule refl) +(step t40.t2.t38.t6.t6 (cl (! (= veriT_vr77 veriT_sk10) :named @p_825)) :rule refl) +(step t40.t2.t38.t6.t7 (cl (= @p_640 (! (pair$a veriT_sk9 veriT_sk10) :named @p_821))) :rule cong :premises (t40.t2.t38.t6.t5 t40.t2.t38.t6.t6)) +(step t40.t2.t38.t6.t8 (cl (= @p_641 (! (is_res$a @p_714 @p_821) :named @p_822))) :rule cong :premises (t40.t2.t38.t6.t4 t40.t2.t38.t6.t7)) +(step t40.t2.t38.t6.t9 (cl @p_823) :rule refl) +(step t40.t2.t38.t6.t10 (cl @p_760) :rule refl) +(step t40.t2.t38.t6.t11 (cl (= @p_643 (! (c$ veriT_sk9 veriT_sk1) :named @p_824))) :rule cong :premises (t40.t2.t38.t6.t9 t40.t2.t38.t6.t10)) +(step t40.t2.t38.t6.t12 (cl @p_825) :rule refl) +(step t40.t2.t38.t6.t13 (cl (= @p_645 (! (run$b @p_824 veriT_sk10) :named @p_826))) :rule cong :premises (t40.t2.t38.t6.t11 t40.t2.t38.t6.t12)) +(step t40.t2.t38.t6.t14 (cl (! (= veriT_vr74 veriT_sk7) :named @p_833)) :rule refl) +(step t40.t2.t38.t6.t15 (cl (! (= veriT_vr75 veriT_sk8) :named @p_834)) :rule refl) +(step t40.t2.t38.t6.t16 (cl (! (= @p_550 (! (pair$b veriT_sk7 veriT_sk8) :named @p_747)) :named @p_835)) :rule cong :premises (t40.t2.t38.t6.t14 t40.t2.t38.t6.t15)) +(step t40.t2.t38.t6.t17 (cl (= @p_646 (! (is_res$b @p_826 @p_747) :named @p_827))) :rule cong :premises (t40.t2.t38.t6.t13 t40.t2.t38.t6.t16)) +(step t40.t2.t38.t6.t18 (cl (= @p_647 (! (and @p_822 @p_827) :named @p_820))) :rule cong :premises (t40.t2.t38.t6.t8 t40.t2.t38.t6.t17)) +(step t40.t2.t38.t6 (cl (= @p_639 @p_820)) :rule sko_ex) +(step t40.t2.t38.t7 (cl (= @p_648 (! (or @p_726 @p_820) :named @p_828))) :rule cong :premises (t40.t2.t38.t5 t40.t2.t38.t6)) +(step t40.t2.t38.t8 (cl @p_754) :rule refl) +(step t40.t2.t38.t9 (cl @p_771) :rule cong :premises (t40.t2.t38.t8)) +(step t40.t2.t38.t10 (cl @p_772) :rule refl) +(step t40.t2.t38.t11 (cl @p_773) :rule cong :premises (t40.t2.t38.t9 t40.t2.t38.t10)) +(step t40.t2.t38.t12 (cl @p_791) :rule cong :premises (t40.t2.t38.t11)) +(anchor :step t40.t2.t38.t13 :args ((veriT_vr78 E$) (veriT_vr79 D$))) +(step t40.t2.t38.t13.t1 (cl @p_754) :rule refl) +(step t40.t2.t38.t13.t2 (cl @p_771) :rule cong :premises (t40.t2.t38.t13.t1)) +(step t40.t2.t38.t13.t3 (cl @p_772) :rule refl) +(step t40.t2.t38.t13.t4 (cl @p_773) :rule cong :premises (t40.t2.t38.t13.t2 t40.t2.t38.t13.t3)) +(step t40.t2.t38.t13.t5 (cl (= @p_651 (! (is_res$a @p_712 @p_650) :named @p_830))) :rule cong :premises (t40.t2.t38.t13.t4)) +(step t40.t2.t38.t13.t6 (cl @p_754) :rule refl) +(step t40.t2.t38.t13.t7 (cl (= @p_653 (! (c$ veriT_vr78 veriT_sk0) :named @p_831))) :rule cong :premises (t40.t2.t38.t13.t6)) +(step t40.t2.t38.t13.t8 (cl (= @p_655 (! (run$b @p_831 veriT_vr79) :named @p_832))) :rule cong :premises (t40.t2.t38.t13.t7)) +(step t40.t2.t38.t13.t9 (cl @p_833) :rule refl) +(step t40.t2.t38.t13.t10 (cl @p_834) :rule refl) +(step t40.t2.t38.t13.t11 (cl @p_835) :rule cong :premises (t40.t2.t38.t13.t9 t40.t2.t38.t13.t10)) +(step t40.t2.t38.t13.t12 (cl (= @p_659 (! (is_res$b @p_832 @p_747) :named @p_836))) :rule cong :premises (t40.t2.t38.t13.t8 t40.t2.t38.t13.t11)) +(step t40.t2.t38.t13.t13 (cl (= @p_660 (! (and @p_830 @p_836) :named @p_837))) :rule cong :premises (t40.t2.t38.t13.t5 t40.t2.t38.t13.t12)) +(step t40.t2.t38.t13 (cl (= @p_649 (! (exists ((veriT_vr78 E$) (veriT_vr79 D$)) @p_837) :named @p_829))) :rule bind) +(step t40.t2.t38.t14 (cl (= @p_661 (! (or @p_720 @p_829) :named @p_838))) :rule cong :premises (t40.t2.t38.t12 t40.t2.t38.t13)) +(step t40.t2.t38.t15 (cl (= @p_663 (! (=> @p_828 @p_838) :named @p_839))) :rule cong :premises (t40.t2.t38.t7 t40.t2.t38.t14)) +(step t40.t2.t38.t16 (cl @p_754) :rule refl) +(step t40.t2.t38.t17 (cl @p_771) :rule cong :premises (t40.t2.t38.t16)) +(step t40.t2.t38.t18 (cl @p_772) :rule refl) +(step t40.t2.t38.t19 (cl @p_773) :rule cong :premises (t40.t2.t38.t17 t40.t2.t38.t18)) +(step t40.t2.t38.t20 (cl @p_791) :rule cong :premises (t40.t2.t38.t19)) +(anchor :step t40.t2.t38.t21 :args ((:= (veriT_vr80 E$) veriT_sk11) (:= (veriT_vr81 D$) veriT_sk12))) +(step t40.t2.t38.t21.t1 (cl @p_754) :rule refl) +(step t40.t2.t38.t21.t2 (cl @p_771) :rule cong :premises (t40.t2.t38.t21.t1)) +(step t40.t2.t38.t21.t3 (cl @p_772) :rule refl) +(step t40.t2.t38.t21.t4 (cl @p_773) :rule cong :premises (t40.t2.t38.t21.t2 t40.t2.t38.t21.t3)) +(step t40.t2.t38.t21.t5 (cl (! (= veriT_vr80 veriT_sk11) :named @p_843)) :rule refl) +(step t40.t2.t38.t21.t6 (cl (! (= veriT_vr81 veriT_sk12) :named @p_845)) :rule refl) +(step t40.t2.t38.t21.t7 (cl (= @p_665 (! (pair$a veriT_sk11 veriT_sk12) :named @p_841))) :rule cong :premises (t40.t2.t38.t21.t5 t40.t2.t38.t21.t6)) +(step t40.t2.t38.t21.t8 (cl (= @p_666 (! (is_res$a @p_712 @p_841) :named @p_842))) :rule cong :premises (t40.t2.t38.t21.t4 t40.t2.t38.t21.t7)) +(step t40.t2.t38.t21.t9 (cl @p_843) :rule refl) +(step t40.t2.t38.t21.t10 (cl @p_754) :rule refl) +(step t40.t2.t38.t21.t11 (cl (= @p_668 (! (c$ veriT_sk11 veriT_sk0) :named @p_844))) :rule cong :premises (t40.t2.t38.t21.t9 t40.t2.t38.t21.t10)) +(step t40.t2.t38.t21.t12 (cl @p_845) :rule refl) +(step t40.t2.t38.t21.t13 (cl (= @p_670 (! (run$b @p_844 veriT_sk12) :named @p_846))) :rule cong :premises (t40.t2.t38.t21.t11 t40.t2.t38.t21.t12)) +(step t40.t2.t38.t21.t14 (cl @p_833) :rule refl) +(step t40.t2.t38.t21.t15 (cl @p_834) :rule refl) +(step t40.t2.t38.t21.t16 (cl @p_835) :rule cong :premises (t40.t2.t38.t21.t14 t40.t2.t38.t21.t15)) +(step t40.t2.t38.t21.t17 (cl (= @p_671 (! (is_res$b @p_846 @p_747) :named @p_847))) :rule cong :premises (t40.t2.t38.t21.t13 t40.t2.t38.t21.t16)) +(step t40.t2.t38.t21.t18 (cl (= @p_672 (! (and @p_842 @p_847) :named @p_840))) :rule cong :premises (t40.t2.t38.t21.t8 t40.t2.t38.t21.t17)) +(step t40.t2.t38.t21 (cl (= @p_664 @p_840)) :rule sko_ex) +(step t40.t2.t38.t22 (cl (= @p_673 (! (or @p_720 @p_840) :named @p_848))) :rule cong :premises (t40.t2.t38.t20 t40.t2.t38.t21)) +(step t40.t2.t38.t23 (cl @p_760) :rule refl) +(step t40.t2.t38.t24 (cl @p_781) :rule cong :premises (t40.t2.t38.t23)) +(step t40.t2.t38.t25 (cl @p_772) :rule refl) +(step t40.t2.t38.t26 (cl @p_782) :rule cong :premises (t40.t2.t38.t24 t40.t2.t38.t25)) +(step t40.t2.t38.t27 (cl @p_809) :rule cong :premises (t40.t2.t38.t26)) +(anchor :step t40.t2.t38.t28 :args ((veriT_vr82 E$) (veriT_vr83 D$))) +(step t40.t2.t38.t28.t1 (cl @p_760) :rule refl) +(step t40.t2.t38.t28.t2 (cl @p_781) :rule cong :premises (t40.t2.t38.t28.t1)) +(step t40.t2.t38.t28.t3 (cl @p_772) :rule refl) +(step t40.t2.t38.t28.t4 (cl @p_782) :rule cong :premises (t40.t2.t38.t28.t2 t40.t2.t38.t28.t3)) +(step t40.t2.t38.t28.t5 (cl (= @p_676 (! (is_res$a @p_714 @p_675) :named @p_850))) :rule cong :premises (t40.t2.t38.t28.t4)) +(step t40.t2.t38.t28.t6 (cl @p_760) :rule refl) +(step t40.t2.t38.t28.t7 (cl (= @p_678 (! (c$ veriT_vr82 veriT_sk1) :named @p_851))) :rule cong :premises (t40.t2.t38.t28.t6)) +(step t40.t2.t38.t28.t8 (cl (= @p_680 (! (run$b @p_851 veriT_vr83) :named @p_852))) :rule cong :premises (t40.t2.t38.t28.t7)) +(step t40.t2.t38.t28.t9 (cl @p_833) :rule refl) +(step t40.t2.t38.t28.t10 (cl @p_834) :rule refl) +(step t40.t2.t38.t28.t11 (cl @p_835) :rule cong :premises (t40.t2.t38.t28.t9 t40.t2.t38.t28.t10)) +(step t40.t2.t38.t28.t12 (cl (= @p_681 (! (is_res$b @p_852 @p_747) :named @p_853))) :rule cong :premises (t40.t2.t38.t28.t8 t40.t2.t38.t28.t11)) +(step t40.t2.t38.t28.t13 (cl (= @p_682 (! (and @p_850 @p_853) :named @p_854))) :rule cong :premises (t40.t2.t38.t28.t5 t40.t2.t38.t28.t12)) +(step t40.t2.t38.t28 (cl (= @p_674 (! (exists ((veriT_vr82 E$) (veriT_vr83 D$)) @p_854) :named @p_849))) :rule bind) +(step t40.t2.t38.t29 (cl (= @p_683 (! (or @p_726 @p_849) :named @p_855))) :rule cong :premises (t40.t2.t38.t27 t40.t2.t38.t28)) +(step t40.t2.t38.t30 (cl (= @p_685 (! (=> @p_848 @p_855) :named @p_856))) :rule cong :premises (t40.t2.t38.t22 t40.t2.t38.t29)) +(step t40.t2.t38.t31 (cl (= @p_686 (! (and @p_839 @p_856) :named @p_819))) :rule cong :premises (t40.t2.t38.t15 t40.t2.t38.t30)) +(step t40.t2.t38 (cl (= @p_638 @p_819)) :rule sko_forall) +(step t40.t2.t39 (cl (= @p_687 (! (and @p_818 @p_819) :named @p_857))) :rule cong :premises (t40.t2.t37 t40.t2.t38)) +(step t40.t2.t40 (cl (= @p_688 (! (or @p_720 @p_770 @p_857) :named @p_768))) :rule cong :premises (t40.t2.t5 t40.t2.t6 t40.t2.t39)) +(step t40.t2 (cl (= @p_574 @p_768)) :rule sko_forall) +(step t40.t3 (cl (= @p_689 (! (=> @p_750 @p_768) :named @p_858))) :rule cong :premises (t40.t1 t40.t2)) +(step t40 (cl (= @p_690 @p_858)) :rule sko_forall) +(step t41 (cl (= @p_693 (! (not @p_858) :named @p_859))) :rule cong :premises (t40)) +(step t42 (cl (! (= @p_695 (! (and @p_691 @p_692 @p_859) :named @p_861)) :named @p_860)) :rule cong :premises (t41)) +(step t43 (cl (not @p_860) (not @p_695) @p_861) :rule equiv_pos2) +(step t44 (cl @p_861) :rule th_resolution :premises (t39 t42 t43)) +(anchor :step t45 :args ((:= (veriT_vr38 A_b_c_M_state_fun$) veriT_vr84) (:= (veriT_vr39 A_b_c_M_state_fun$) veriT_vr85))) +(anchor :step t45.t1 :args ((:= (veriT_vr40 A$) veriT_vr86) (:= (veriT_vr41 C$) veriT_vr87))) +(step t45.t1.t1 (cl (! (= veriT_vr38 veriT_vr84) :named @p_876)) :rule refl) +(step t45.t1.t2 (cl (! (= veriT_vr40 veriT_vr86) :named @p_872)) :rule refl) +(step t45.t1.t3 (cl (! (= @p_446 (! (fun_app$ veriT_vr84 veriT_vr86) :named @p_871)) :named @p_877)) :rule cong :premises (t45.t1.t1 t45.t1.t2)) +(step t45.t1.t4 (cl (! (= veriT_vr41 veriT_vr87) :named @p_874)) :rule refl) +(step t45.t1.t5 (cl (! (= @p_439 (! (run$ @p_871 veriT_vr87) :named @p_864)) :named @p_878)) :rule cong :premises (t45.t1.t3 t45.t1.t4)) +(step t45.t1.t6 (cl (! (= @p_437 (! (is_fail$ @p_864) :named @p_862)) :named @p_879)) :rule cong :premises (t45.t1.t5)) +(step t45.t1.t7 (cl (! (= veriT_vr39 veriT_vr85) :named @p_882)) :rule refl) +(step t45.t1.t8 (cl @p_872) :rule refl) +(step t45.t1.t9 (cl (! (= @p_448 (! (fun_app$ veriT_vr85 veriT_vr86) :named @p_873)) :named @p_883)) :rule cong :premises (t45.t1.t7 t45.t1.t8)) +(step t45.t1.t10 (cl @p_874) :rule refl) +(step t45.t1.t11 (cl (! (= @p_438 (! (run$ @p_873 veriT_vr87) :named @p_863)) :named @p_884)) :rule cong :premises (t45.t1.t9 t45.t1.t10)) +(step t45.t1.t12 (cl (= @p_450 (! (is_fail$ @p_863) :named @p_875))) :rule cong :premises (t45.t1.t11)) +(step t45.t1.t13 (cl @p_876) :rule refl) +(step t45.t1.t14 (cl @p_872) :rule refl) +(step t45.t1.t15 (cl @p_877) :rule cong :premises (t45.t1.t13 t45.t1.t14)) +(step t45.t1.t16 (cl @p_874) :rule refl) +(step t45.t1.t17 (cl @p_878) :rule cong :premises (t45.t1.t15 t45.t1.t16)) +(step t45.t1.t18 (cl @p_879) :rule cong :premises (t45.t1.t17)) +(step t45.t1.t19 (cl (= @p_455 (! (= @p_875 @p_862) :named @p_880))) :rule cong :premises (t45.t1.t12 t45.t1.t18)) +(anchor :step t45.t1.t20 :args ((:= (veriT_vr42 B$) veriT_vr88) (:= (veriT_vr43 C$) veriT_vr89))) +(step t45.t1.t20.t1 (cl @p_882) :rule refl) +(step t45.t1.t20.t2 (cl @p_872) :rule refl) +(step t45.t1.t20.t3 (cl @p_883) :rule cong :premises (t45.t1.t20.t1 t45.t1.t20.t2)) +(step t45.t1.t20.t4 (cl @p_874) :rule refl) +(step t45.t1.t20.t5 (cl @p_884) :rule cong :premises (t45.t1.t20.t3 t45.t1.t20.t4)) +(step t45.t1.t20.t6 (cl (! (= veriT_vr42 veriT_vr88) :named @p_886)) :rule refl) +(step t45.t1.t20.t7 (cl (! (= veriT_vr43 veriT_vr89) :named @p_887)) :rule refl) +(step t45.t1.t20.t8 (cl (! (= @p_440 (! (pair$ veriT_vr88 veriT_vr89) :named @p_865)) :named @p_888)) :rule cong :premises (t45.t1.t20.t6 t45.t1.t20.t7)) +(step t45.t1.t20.t9 (cl (= @p_460 (! (is_res$ @p_863 @p_865) :named @p_885))) :rule cong :premises (t45.t1.t20.t5 t45.t1.t20.t8)) +(step t45.t1.t20.t10 (cl @p_876) :rule refl) +(step t45.t1.t20.t11 (cl @p_872) :rule refl) +(step t45.t1.t20.t12 (cl @p_877) :rule cong :premises (t45.t1.t20.t10 t45.t1.t20.t11)) +(step t45.t1.t20.t13 (cl @p_874) :rule refl) +(step t45.t1.t20.t14 (cl @p_878) :rule cong :premises (t45.t1.t20.t12 t45.t1.t20.t13)) +(step t45.t1.t20.t15 (cl @p_886) :rule refl) +(step t45.t1.t20.t16 (cl @p_887) :rule refl) +(step t45.t1.t20.t17 (cl @p_888) :rule cong :premises (t45.t1.t20.t15 t45.t1.t20.t16)) +(step t45.t1.t20.t18 (cl (= @p_464 (! (is_res$ @p_864 @p_865) :named @p_889))) :rule cong :premises (t45.t1.t20.t14 t45.t1.t20.t17)) +(step t45.t1.t20.t19 (cl (= @p_465 (! (= @p_885 @p_889) :named @p_890))) :rule cong :premises (t45.t1.t20.t9 t45.t1.t20.t18)) +(step t45.t1.t20 (cl (= @p_456 (! (forall ((veriT_vr88 B$) (veriT_vr89 C$)) @p_890) :named @p_881))) :rule bind) +(step t45.t1.t21 (cl (= @p_466 (! (and @p_880 @p_881) :named @p_891))) :rule cong :premises (t45.t1.t19 t45.t1.t20)) +(step t45.t1.t22 (cl (= @p_467 (! (or @p_862 @p_891) :named @p_892))) :rule cong :premises (t45.t1.t6 t45.t1.t21)) +(step t45.t1 (cl (= @p_445 (! (forall ((veriT_vr86 A$) (veriT_vr87 C$)) @p_892) :named @p_870))) :rule bind) +(anchor :step t45.t2 :args ((:= (veriT_vr44 D$) veriT_vr90))) +(step t45.t2.t1 (cl @p_876) :rule refl) +(step t45.t2.t2 (cl (! (= @p_469 (! (b$ veriT_vr84) :named @p_894)) :named @p_898)) :rule cong :premises (t45.t2.t1)) +(step t45.t2.t3 (cl (! (= veriT_vr44 veriT_vr90) :named @p_896)) :rule refl) +(step t45.t2.t4 (cl (! (= @p_443 (! (run$a @p_894 veriT_vr90) :named @p_868)) :named @p_899)) :rule cong :premises (t45.t2.t2 t45.t2.t3)) +(step t45.t2.t5 (cl (! (= @p_441 (! (is_fail$a @p_868) :named @p_866)) :named @p_900)) :rule cong :premises (t45.t2.t4)) +(step t45.t2.t6 (cl @p_882) :rule refl) +(step t45.t2.t7 (cl (! (= @p_470 (! (b$ veriT_vr85) :named @p_895)) :named @p_903)) :rule cong :premises (t45.t2.t6)) +(step t45.t2.t8 (cl @p_896) :rule refl) +(step t45.t2.t9 (cl (! (= @p_442 (! (run$a @p_895 veriT_vr90) :named @p_867)) :named @p_904)) :rule cong :premises (t45.t2.t7 t45.t2.t8)) +(step t45.t2.t10 (cl (= @p_472 (! (is_fail$a @p_867) :named @p_897))) :rule cong :premises (t45.t2.t9)) +(step t45.t2.t11 (cl @p_876) :rule refl) +(step t45.t2.t12 (cl @p_898) :rule cong :premises (t45.t2.t11)) +(step t45.t2.t13 (cl @p_896) :rule refl) +(step t45.t2.t14 (cl @p_899) :rule cong :premises (t45.t2.t12 t45.t2.t13)) +(step t45.t2.t15 (cl @p_900) :rule cong :premises (t45.t2.t14)) +(step t45.t2.t16 (cl (= @p_476 (! (= @p_897 @p_866) :named @p_901))) :rule cong :premises (t45.t2.t10 t45.t2.t15)) +(anchor :step t45.t2.t17 :args ((:= (veriT_vr45 E$) veriT_vr91) (:= (veriT_vr46 D$) veriT_vr92))) +(step t45.t2.t17.t1 (cl @p_882) :rule refl) +(step t45.t2.t17.t2 (cl @p_903) :rule cong :premises (t45.t2.t17.t1)) +(step t45.t2.t17.t3 (cl @p_896) :rule refl) +(step t45.t2.t17.t4 (cl @p_904) :rule cong :premises (t45.t2.t17.t2 t45.t2.t17.t3)) +(step t45.t2.t17.t5 (cl (! (= veriT_vr45 veriT_vr91) :named @p_906)) :rule refl) +(step t45.t2.t17.t6 (cl (! (= veriT_vr46 veriT_vr92) :named @p_907)) :rule refl) +(step t45.t2.t17.t7 (cl (! (= @p_444 (! (pair$a veriT_vr91 veriT_vr92) :named @p_869)) :named @p_908)) :rule cong :premises (t45.t2.t17.t5 t45.t2.t17.t6)) +(step t45.t2.t17.t8 (cl (= @p_480 (! (is_res$a @p_867 @p_869) :named @p_905))) :rule cong :premises (t45.t2.t17.t4 t45.t2.t17.t7)) +(step t45.t2.t17.t9 (cl @p_876) :rule refl) +(step t45.t2.t17.t10 (cl @p_898) :rule cong :premises (t45.t2.t17.t9)) +(step t45.t2.t17.t11 (cl @p_896) :rule refl) +(step t45.t2.t17.t12 (cl @p_899) :rule cong :premises (t45.t2.t17.t10 t45.t2.t17.t11)) +(step t45.t2.t17.t13 (cl @p_906) :rule refl) +(step t45.t2.t17.t14 (cl @p_907) :rule refl) +(step t45.t2.t17.t15 (cl @p_908) :rule cong :premises (t45.t2.t17.t13 t45.t2.t17.t14)) +(step t45.t2.t17.t16 (cl (= @p_484 (! (is_res$a @p_868 @p_869) :named @p_909))) :rule cong :premises (t45.t2.t17.t12 t45.t2.t17.t15)) +(step t45.t2.t17.t17 (cl (= @p_485 (! (= @p_905 @p_909) :named @p_910))) :rule cong :premises (t45.t2.t17.t8 t45.t2.t17.t16)) +(step t45.t2.t17 (cl (= @p_477 (! (forall ((veriT_vr91 E$) (veriT_vr92 D$)) @p_910) :named @p_902))) :rule bind) +(step t45.t2.t18 (cl (= @p_486 (! (and @p_901 @p_902) :named @p_911))) :rule cong :premises (t45.t2.t16 t45.t2.t17)) +(step t45.t2.t19 (cl (= @p_487 (! (or @p_866 @p_911) :named @p_912))) :rule cong :premises (t45.t2.t5 t45.t2.t18)) +(step t45.t2 (cl (= @p_468 (! (forall ((veriT_vr90 D$)) @p_912) :named @p_893))) :rule bind) +(step t45.t3 (cl (= @p_488 (! (=> @p_870 @p_893) :named @p_913))) :rule cong :premises (t45.t1 t45.t2)) +(step t45 (cl (= @p_691 (! (forall ((veriT_vr84 A_b_c_M_state_fun$) (veriT_vr85 A_b_c_M_state_fun$)) @p_913) :named @p_1018))) :rule bind) +(anchor :step t46 :args ((:= (veriT_vr47 E$) veriT_vr91) (:= (veriT_vr48 A_b_c_M_state_fun$) veriT_vr84) (:= (veriT_vr49 A_b_c_M_state_fun$) veriT_vr85))) +(anchor :step t46.t1 :args ((:= (veriT_vr50 A$) veriT_vr86) (:= (veriT_vr51 C$) veriT_vr87))) +(step t46.t1.t1 (cl (! (= veriT_vr48 veriT_vr84) :named @p_920)) :rule refl) +(step t46.t1.t2 (cl (! (= veriT_vr50 veriT_vr86) :named @p_918)) :rule refl) +(step t46.t1.t3 (cl (! (= @p_498 @p_871) :named @p_921)) :rule cong :premises (t46.t1.t1 t46.t1.t2)) +(step t46.t1.t4 (cl (! (= veriT_vr51 veriT_vr87) :named @p_919)) :rule refl) +(step t46.t1.t5 (cl (! (= @p_491 @p_864) :named @p_922)) :rule cong :premises (t46.t1.t3 t46.t1.t4)) +(step t46.t1.t6 (cl (! (= @p_489 @p_862) :named @p_923)) :rule cong :premises (t46.t1.t5)) +(step t46.t1.t7 (cl (! (= veriT_vr49 veriT_vr85) :named @p_924)) :rule refl) +(step t46.t1.t8 (cl @p_918) :rule refl) +(step t46.t1.t9 (cl (! (= @p_500 @p_873) :named @p_925)) :rule cong :premises (t46.t1.t7 t46.t1.t8)) +(step t46.t1.t10 (cl @p_919) :rule refl) +(step t46.t1.t11 (cl (! (= @p_490 @p_863) :named @p_926)) :rule cong :premises (t46.t1.t9 t46.t1.t10)) +(step t46.t1.t12 (cl (= @p_502 @p_875)) :rule cong :premises (t46.t1.t11)) +(step t46.t1.t13 (cl @p_920) :rule refl) +(step t46.t1.t14 (cl @p_918) :rule refl) +(step t46.t1.t15 (cl @p_921) :rule cong :premises (t46.t1.t13 t46.t1.t14)) +(step t46.t1.t16 (cl @p_919) :rule refl) +(step t46.t1.t17 (cl @p_922) :rule cong :premises (t46.t1.t15 t46.t1.t16)) +(step t46.t1.t18 (cl @p_923) :rule cong :premises (t46.t1.t17)) +(step t46.t1.t19 (cl (= @p_507 @p_880)) :rule cong :premises (t46.t1.t12 t46.t1.t18)) +(anchor :step t46.t1.t20 :args ((:= (veriT_vr52 B$) veriT_vr88) (:= (veriT_vr53 C$) veriT_vr89))) +(step t46.t1.t20.t1 (cl @p_924) :rule refl) +(step t46.t1.t20.t2 (cl @p_918) :rule refl) +(step t46.t1.t20.t3 (cl @p_925) :rule cong :premises (t46.t1.t20.t1 t46.t1.t20.t2)) +(step t46.t1.t20.t4 (cl @p_919) :rule refl) +(step t46.t1.t20.t5 (cl @p_926) :rule cong :premises (t46.t1.t20.t3 t46.t1.t20.t4)) +(step t46.t1.t20.t6 (cl (! (= veriT_vr52 veriT_vr88) :named @p_927)) :rule refl) +(step t46.t1.t20.t7 (cl (! (= veriT_vr53 veriT_vr89) :named @p_928)) :rule refl) +(step t46.t1.t20.t8 (cl (! (= @p_492 @p_865) :named @p_929)) :rule cong :premises (t46.t1.t20.t6 t46.t1.t20.t7)) +(step t46.t1.t20.t9 (cl (= @p_512 @p_885)) :rule cong :premises (t46.t1.t20.t5 t46.t1.t20.t8)) +(step t46.t1.t20.t10 (cl @p_920) :rule refl) +(step t46.t1.t20.t11 (cl @p_918) :rule refl) +(step t46.t1.t20.t12 (cl @p_921) :rule cong :premises (t46.t1.t20.t10 t46.t1.t20.t11)) +(step t46.t1.t20.t13 (cl @p_919) :rule refl) +(step t46.t1.t20.t14 (cl @p_922) :rule cong :premises (t46.t1.t20.t12 t46.t1.t20.t13)) +(step t46.t1.t20.t15 (cl @p_927) :rule refl) +(step t46.t1.t20.t16 (cl @p_928) :rule refl) +(step t46.t1.t20.t17 (cl @p_929) :rule cong :premises (t46.t1.t20.t15 t46.t1.t20.t16)) +(step t46.t1.t20.t18 (cl (= @p_516 @p_889)) :rule cong :premises (t46.t1.t20.t14 t46.t1.t20.t17)) +(step t46.t1.t20.t19 (cl (= @p_517 @p_890)) :rule cong :premises (t46.t1.t20.t9 t46.t1.t20.t18)) +(step t46.t1.t20 (cl (= @p_508 @p_881)) :rule bind) +(step t46.t1.t21 (cl (= @p_518 @p_891)) :rule cong :premises (t46.t1.t19 t46.t1.t20)) +(step t46.t1.t22 (cl (= @p_519 @p_892)) :rule cong :premises (t46.t1.t6 t46.t1.t21)) +(step t46.t1 (cl (= @p_497 @p_870)) :rule bind) +(anchor :step t46.t2 :args ((:= (veriT_vr54 D$) veriT_vr90))) +(step t46.t2.t1 (cl (! (= veriT_vr47 veriT_vr91) :named @p_932)) :rule refl) +(step t46.t2.t2 (cl @p_920) :rule refl) +(step t46.t2.t3 (cl (! (= @p_521 (! (c$ veriT_vr91 veriT_vr84) :named @p_931)) :named @p_936)) :rule cong :premises (t46.t2.t1 t46.t2.t2)) +(step t46.t2.t4 (cl (! (= veriT_vr54 veriT_vr90) :named @p_934)) :rule refl) +(step t46.t2.t5 (cl (! (= @p_495 (! (run$b @p_931 veriT_vr90) :named @p_916)) :named @p_937)) :rule cong :premises (t46.t2.t3 t46.t2.t4)) +(step t46.t2.t6 (cl (! (= @p_493 (! (is_fail$b @p_916) :named @p_914)) :named @p_938)) :rule cong :premises (t46.t2.t5)) +(step t46.t2.t7 (cl @p_932) :rule refl) +(step t46.t2.t8 (cl @p_924) :rule refl) +(step t46.t2.t9 (cl (! (= @p_523 (! (c$ veriT_vr91 veriT_vr85) :named @p_933)) :named @p_941)) :rule cong :premises (t46.t2.t7 t46.t2.t8)) +(step t46.t2.t10 (cl @p_934) :rule refl) +(step t46.t2.t11 (cl (! (= @p_494 (! (run$b @p_933 veriT_vr90) :named @p_915)) :named @p_942)) :rule cong :premises (t46.t2.t9 t46.t2.t10)) +(step t46.t2.t12 (cl (= @p_525 (! (is_fail$b @p_915) :named @p_935))) :rule cong :premises (t46.t2.t11)) +(step t46.t2.t13 (cl @p_932) :rule refl) +(step t46.t2.t14 (cl @p_920) :rule refl) +(step t46.t2.t15 (cl @p_936) :rule cong :premises (t46.t2.t13 t46.t2.t14)) +(step t46.t2.t16 (cl @p_934) :rule refl) +(step t46.t2.t17 (cl @p_937) :rule cong :premises (t46.t2.t15 t46.t2.t16)) +(step t46.t2.t18 (cl @p_938) :rule cong :premises (t46.t2.t17)) +(step t46.t2.t19 (cl (= @p_529 (! (= @p_935 @p_914) :named @p_939))) :rule cong :premises (t46.t2.t12 t46.t2.t18)) +(anchor :step t46.t2.t20 :args ((:= (veriT_vr55 F$) veriT_vr93) (:= (veriT_vr56 D$) veriT_vr92))) +(step t46.t2.t20.t1 (cl @p_932) :rule refl) +(step t46.t2.t20.t2 (cl @p_924) :rule refl) +(step t46.t2.t20.t3 (cl @p_941) :rule cong :premises (t46.t2.t20.t1 t46.t2.t20.t2)) +(step t46.t2.t20.t4 (cl @p_934) :rule refl) +(step t46.t2.t20.t5 (cl @p_942) :rule cong :premises (t46.t2.t20.t3 t46.t2.t20.t4)) +(step t46.t2.t20.t6 (cl (! (= veriT_vr55 veriT_vr93) :named @p_944)) :rule refl) +(step t46.t2.t20.t7 (cl (! (= veriT_vr56 veriT_vr92) :named @p_945)) :rule refl) +(step t46.t2.t20.t8 (cl (! (= @p_496 (! (pair$b veriT_vr93 veriT_vr92) :named @p_917)) :named @p_946)) :rule cong :premises (t46.t2.t20.t6 t46.t2.t20.t7)) +(step t46.t2.t20.t9 (cl (= @p_533 (! (is_res$b @p_915 @p_917) :named @p_943))) :rule cong :premises (t46.t2.t20.t5 t46.t2.t20.t8)) +(step t46.t2.t20.t10 (cl @p_932) :rule refl) +(step t46.t2.t20.t11 (cl @p_920) :rule refl) +(step t46.t2.t20.t12 (cl @p_936) :rule cong :premises (t46.t2.t20.t10 t46.t2.t20.t11)) +(step t46.t2.t20.t13 (cl @p_934) :rule refl) +(step t46.t2.t20.t14 (cl @p_937) :rule cong :premises (t46.t2.t20.t12 t46.t2.t20.t13)) +(step t46.t2.t20.t15 (cl @p_944) :rule refl) +(step t46.t2.t20.t16 (cl @p_945) :rule refl) +(step t46.t2.t20.t17 (cl @p_946) :rule cong :premises (t46.t2.t20.t15 t46.t2.t20.t16)) +(step t46.t2.t20.t18 (cl (= @p_537 (! (is_res$b @p_916 @p_917) :named @p_947))) :rule cong :premises (t46.t2.t20.t14 t46.t2.t20.t17)) +(step t46.t2.t20.t19 (cl (= @p_538 (! (= @p_943 @p_947) :named @p_948))) :rule cong :premises (t46.t2.t20.t9 t46.t2.t20.t18)) +(step t46.t2.t20 (cl (= @p_530 (! (forall ((veriT_vr93 F$) (veriT_vr92 D$)) @p_948) :named @p_940))) :rule bind) +(step t46.t2.t21 (cl (= @p_539 (! (and @p_939 @p_940) :named @p_949))) :rule cong :premises (t46.t2.t19 t46.t2.t20)) +(step t46.t2.t22 (cl (= @p_540 (! (or @p_914 @p_949) :named @p_950))) :rule cong :premises (t46.t2.t6 t46.t2.t21)) +(step t46.t2 (cl (= @p_520 (! (forall ((veriT_vr90 D$)) @p_950) :named @p_930))) :rule bind) +(step t46.t3 (cl (= @p_541 (! (=> @p_870 @p_930) :named @p_951))) :rule cong :premises (t46.t1 t46.t2)) +(step t46 (cl (= @p_692 (! (forall ((veriT_vr91 E$) (veriT_vr84 A_b_c_M_state_fun$) (veriT_vr85 A_b_c_M_state_fun$)) @p_951) :named @p_1019))) :rule bind) +(anchor :step t47 :args ((:= (veriT_vr59 A$) veriT_vr86) (:= (veriT_vr60 C$) veriT_vr87))) +(step t47.t1 (cl (! (= veriT_vr59 veriT_vr86) :named @p_956)) :rule refl) +(step t47.t2 (cl (! (= @p_751 (! (fun_app$ veriT_sk0 veriT_vr86) :named @p_955)) :named @p_960)) :rule cong :premises (t47.t1)) +(step t47.t3 (cl (! (= veriT_vr60 veriT_vr87) :named @p_958)) :rule refl) +(step t47.t4 (cl (! (= @p_703 (! (run$ @p_955 veriT_vr87) :named @p_954)) :named @p_961)) :rule cong :premises (t47.t2 t47.t3)) +(step t47.t5 (cl (! (= @p_701 (! (is_fail$ @p_954) :named @p_952)) :named @p_962)) :rule cong :premises (t47.t4)) +(step t47.t6 (cl @p_956) :rule refl) +(step t47.t7 (cl (! (= @p_752 (! (fun_app$ veriT_sk1 veriT_vr86) :named @p_957)) :named @p_965)) :rule cong :premises (t47.t6)) +(step t47.t8 (cl @p_958) :rule refl) +(step t47.t9 (cl (! (= @p_702 (! (run$ @p_957 veriT_vr87) :named @p_953)) :named @p_966)) :rule cong :premises (t47.t7 t47.t8)) +(step t47.t10 (cl (= @p_753 (! (is_fail$ @p_953) :named @p_959))) :rule cong :premises (t47.t9)) +(step t47.t11 (cl @p_956) :rule refl) +(step t47.t12 (cl @p_960) :rule cong :premises (t47.t11)) +(step t47.t13 (cl @p_958) :rule refl) +(step t47.t14 (cl @p_961) :rule cong :premises (t47.t12 t47.t13)) +(step t47.t15 (cl @p_962) :rule cong :premises (t47.t14)) +(step t47.t16 (cl (= @p_758 (! (= @p_959 @p_952) :named @p_963))) :rule cong :premises (t47.t10 t47.t15)) +(anchor :step t47.t17 :args ((:= (veriT_vr61 B$) veriT_vr88) (:= (veriT_vr62 C$) veriT_vr89))) +(step t47.t17.t1 (cl @p_956) :rule refl) +(step t47.t17.t2 (cl @p_965) :rule cong :premises (t47.t17.t1)) +(step t47.t17.t3 (cl @p_958) :rule refl) +(step t47.t17.t4 (cl @p_966) :rule cong :premises (t47.t17.t2 t47.t17.t3)) +(step t47.t17.t5 (cl (! (= veriT_vr61 veriT_vr88) :named @p_968)) :rule refl) +(step t47.t17.t6 (cl (! (= veriT_vr62 veriT_vr89) :named @p_969)) :rule refl) +(step t47.t17.t7 (cl (! (= @p_545 @p_865) :named @p_970)) :rule cong :premises (t47.t17.t5 t47.t17.t6)) +(step t47.t17.t8 (cl (= @p_763 (! (is_res$ @p_953 @p_865) :named @p_967))) :rule cong :premises (t47.t17.t4 t47.t17.t7)) +(step t47.t17.t9 (cl @p_956) :rule refl) +(step t47.t17.t10 (cl @p_960) :rule cong :premises (t47.t17.t9)) +(step t47.t17.t11 (cl @p_958) :rule refl) +(step t47.t17.t12 (cl @p_961) :rule cong :premises (t47.t17.t10 t47.t17.t11)) +(step t47.t17.t13 (cl @p_968) :rule refl) +(step t47.t17.t14 (cl @p_969) :rule refl) +(step t47.t17.t15 (cl @p_970) :rule cong :premises (t47.t17.t13 t47.t17.t14)) +(step t47.t17.t16 (cl (= @p_764 (! (is_res$ @p_954 @p_865) :named @p_971))) :rule cong :premises (t47.t17.t12 t47.t17.t15)) +(step t47.t17.t17 (cl (= @p_765 (! (= @p_967 @p_971) :named @p_972))) :rule cong :premises (t47.t17.t8 t47.t17.t16)) +(step t47.t17 (cl (= @p_759 (! (forall ((veriT_vr88 B$) (veriT_vr89 C$)) @p_972) :named @p_964))) :rule bind) +(step t47.t18 (cl (= @p_766 (! (and @p_963 @p_964) :named @p_973))) :rule cong :premises (t47.t16 t47.t17)) +(step t47.t19 (cl (= @p_767 (! (or @p_952 @p_973) :named @p_974))) :rule cong :premises (t47.t5 t47.t18)) +(step t47 (cl (= @p_750 (! (forall ((veriT_vr86 A$) (veriT_vr87 C$)) @p_974) :named @p_1015))) :rule bind) +(anchor :step t48 :args ((:= (veriT_vr64 E$) veriT_vr91) (:= (veriT_vr65 D$) veriT_vr90))) +(step t48.t1 (cl (! (= veriT_vr64 veriT_vr91) :named @p_977)) :rule refl) +(step t48.t2 (cl (! (= veriT_vr65 veriT_vr90) :named @p_979)) :rule refl) +(step t48.t3 (cl (= @p_580 (! (pair$a veriT_vr91 veriT_vr90) :named @p_975))) :rule cong :premises (t48.t1 t48.t2)) +(step t48.t4 (cl (= @p_774 (! (is_res$a @p_712 @p_975) :named @p_976))) :rule cong :premises (t48.t3)) +(step t48.t5 (cl @p_977) :rule refl) +(step t48.t6 (cl (= @p_775 (! (c$ veriT_vr91 veriT_sk0) :named @p_978))) :rule cong :premises (t48.t5)) +(step t48.t7 (cl @p_979) :rule refl) +(step t48.t8 (cl (= @p_776 (! (run$b @p_978 veriT_vr90) :named @p_980))) :rule cong :premises (t48.t6 t48.t7)) +(step t48.t9 (cl (= @p_777 (! (is_fail$b @p_980) :named @p_981))) :rule cong :premises (t48.t8)) +(step t48.t10 (cl (= @p_778 (! (and @p_976 @p_981) :named @p_982))) :rule cong :premises (t48.t4 t48.t9)) +(step t48 (cl (= @p_770 (! (exists ((veriT_vr91 E$) (veriT_vr90 D$)) @p_982) :named @p_983))) :rule bind) +(anchor :step t49 :args ((:= (veriT_vr68 E$) veriT_vr91) (:= (veriT_vr69 D$) veriT_vr90))) +(step t49.t1 (cl (! (= veriT_vr68 veriT_vr91) :named @p_984)) :rule refl) +(step t49.t2 (cl (! (= veriT_vr69 veriT_vr90) :named @p_985)) :rule refl) +(step t49.t3 (cl (= @p_603 @p_975)) :rule cong :premises (t49.t1 t49.t2)) +(step t49.t4 (cl (= @p_793 @p_976)) :rule cong :premises (t49.t3)) +(step t49.t5 (cl @p_984) :rule refl) +(step t49.t6 (cl (= @p_794 @p_978)) :rule cong :premises (t49.t5)) +(step t49.t7 (cl @p_985) :rule refl) +(step t49.t8 (cl (= @p_795 @p_980)) :rule cong :premises (t49.t6 t49.t7)) +(step t49.t9 (cl (= @p_796 @p_981)) :rule cong :premises (t49.t8)) +(step t49.t10 (cl (= @p_797 @p_982)) :rule cong :premises (t49.t4 t49.t9)) +(step t49 (cl (= @p_792 @p_983)) :rule bind) +(step t50 (cl (= @p_798 (! (or @p_720 @p_983) :named @p_986))) :rule cong :premises (t49)) +(step t51 (cl (= @p_799 (! (=> @p_790 @p_986) :named @p_996))) :rule cong :premises (t50)) +(anchor :step t52 :args ((:= (veriT_vr72 E$) veriT_vr91) (:= (veriT_vr73 D$) veriT_vr90))) +(step t52.t1 (cl (! (= veriT_vr72 veriT_vr91) :named @p_988)) :rule refl) +(step t52.t2 (cl (! (= veriT_vr73 veriT_vr90) :named @p_990)) :rule refl) +(step t52.t3 (cl (= @p_626 @p_975)) :rule cong :premises (t52.t1 t52.t2)) +(step t52.t4 (cl (= @p_811 (! (is_res$a @p_714 @p_975) :named @p_987))) :rule cong :premises (t52.t3)) +(step t52.t5 (cl @p_988) :rule refl) +(step t52.t6 (cl (= @p_812 (! (c$ veriT_vr91 veriT_sk1) :named @p_989))) :rule cong :premises (t52.t5)) +(step t52.t7 (cl @p_990) :rule refl) +(step t52.t8 (cl (= @p_813 (! (run$b @p_989 veriT_vr90) :named @p_991))) :rule cong :premises (t52.t6 t52.t7)) +(step t52.t9 (cl (= @p_814 (! (is_fail$b @p_991) :named @p_992))) :rule cong :premises (t52.t8)) +(step t52.t10 (cl (= @p_815 (! (and @p_987 @p_992) :named @p_993))) :rule cong :premises (t52.t4 t52.t9)) +(step t52 (cl (= @p_810 (! (exists ((veriT_vr91 E$) (veriT_vr90 D$)) @p_993) :named @p_994))) :rule bind) +(step t53 (cl (= @p_816 (! (or @p_726 @p_994) :named @p_995))) :rule cong :premises (t52)) +(step t54 (cl (= @p_817 (! (=> @p_808 @p_995) :named @p_997))) :rule cong :premises (t53)) +(step t55 (cl (= @p_818 (! (and @p_996 @p_997) :named @p_1012))) :rule cong :premises (t51 t54)) +(anchor :step t56 :args ((:= (veriT_vr78 E$) veriT_vr91) (:= (veriT_vr79 D$) veriT_vr90))) +(step t56.t1 (cl (! (= veriT_vr78 veriT_vr91) :named @p_998)) :rule refl) +(step t56.t2 (cl (! (= veriT_vr79 veriT_vr90) :named @p_999)) :rule refl) +(step t56.t3 (cl (= @p_650 @p_975)) :rule cong :premises (t56.t1 t56.t2)) +(step t56.t4 (cl (= @p_830 @p_976)) :rule cong :premises (t56.t3)) +(step t56.t5 (cl @p_998) :rule refl) +(step t56.t6 (cl (= @p_831 @p_978)) :rule cong :premises (t56.t5)) +(step t56.t7 (cl @p_999) :rule refl) +(step t56.t8 (cl (= @p_832 @p_980)) :rule cong :premises (t56.t6 t56.t7)) +(step t56.t9 (cl (= @p_836 (! (is_res$b @p_980 @p_747) :named @p_1000))) :rule cong :premises (t56.t8)) +(step t56.t10 (cl (= @p_837 (! (and @p_976 @p_1000) :named @p_1001))) :rule cong :premises (t56.t4 t56.t9)) +(step t56 (cl (= @p_829 (! (exists ((veriT_vr91 E$) (veriT_vr90 D$)) @p_1001) :named @p_1002))) :rule bind) +(step t57 (cl (= @p_838 (! (or @p_720 @p_1002) :named @p_1003))) :rule cong :premises (t56)) +(step t58 (cl (= @p_839 (! (=> @p_828 @p_1003) :named @p_1010))) :rule cong :premises (t57)) +(anchor :step t59 :args ((:= (veriT_vr82 E$) veriT_vr91) (:= (veriT_vr83 D$) veriT_vr90))) +(step t59.t1 (cl (! (= veriT_vr82 veriT_vr91) :named @p_1004)) :rule refl) +(step t59.t2 (cl (! (= veriT_vr83 veriT_vr90) :named @p_1005)) :rule refl) +(step t59.t3 (cl (= @p_675 @p_975)) :rule cong :premises (t59.t1 t59.t2)) +(step t59.t4 (cl (= @p_850 @p_987)) :rule cong :premises (t59.t3)) +(step t59.t5 (cl @p_1004) :rule refl) +(step t59.t6 (cl (= @p_851 @p_989)) :rule cong :premises (t59.t5)) +(step t59.t7 (cl @p_1005) :rule refl) +(step t59.t8 (cl (= @p_852 @p_991)) :rule cong :premises (t59.t6 t59.t7)) +(step t59.t9 (cl (= @p_853 (! (is_res$b @p_991 @p_747) :named @p_1006))) :rule cong :premises (t59.t8)) +(step t59.t10 (cl (= @p_854 (! (and @p_987 @p_1006) :named @p_1007))) :rule cong :premises (t59.t4 t59.t9)) +(step t59 (cl (= @p_849 (! (exists ((veriT_vr91 E$) (veriT_vr90 D$)) @p_1007) :named @p_1008))) :rule bind) +(step t60 (cl (= @p_855 (! (or @p_726 @p_1008) :named @p_1009))) :rule cong :premises (t59)) +(step t61 (cl (= @p_856 (! (=> @p_848 @p_1009) :named @p_1011))) :rule cong :premises (t60)) +(step t62 (cl (= @p_819 (! (and @p_1010 @p_1011) :named @p_1013))) :rule cong :premises (t58 t61)) +(step t63 (cl (= @p_857 (! (and @p_1012 @p_1013) :named @p_1014))) :rule cong :premises (t55 t62)) +(step t64 (cl (= @p_768 (! (or @p_720 @p_983 @p_1014) :named @p_1016))) :rule cong :premises (t48 t63)) +(step t65 (cl (= @p_858 (! (=> @p_1015 @p_1016) :named @p_1017))) :rule cong :premises (t47 t64)) +(step t66 (cl (= @p_859 (! (not @p_1017) :named @p_1020))) :rule cong :premises (t65)) +(step t67 (cl (! (= @p_861 (! (and @p_1018 @p_1019 @p_1020) :named @p_1022)) :named @p_1021)) :rule cong :premises (t45 t46 t66)) +(step t68 (cl (not @p_1021) (not @p_861) @p_1022) :rule equiv_pos2) +(step t69 (cl @p_1022) :rule th_resolution :premises (t44 t67 t68)) +(step t70 (cl (= @p_1020 (! (and @p_1015 (! (not @p_1016) :named @p_1027)) :named @p_1023))) :rule bool_simplify) +(step t71 (cl (! (= @p_1022 (! (and @p_1018 @p_1019 @p_1023) :named @p_1025)) :named @p_1024)) :rule cong :premises (t70)) +(step t72 (cl (not @p_1024) (not @p_1022) @p_1025) :rule equiv_pos2) +(step t73 (cl @p_1025) :rule th_resolution :premises (t69 t71 t72)) +(step t74 (cl (= @p_1014 (! (and @p_996 @p_997 @p_1010 @p_1011) :named @p_1026))) :rule ac_simp) +(step t75 (cl (= @p_1016 (! (or @p_720 @p_983 @p_1026) :named @p_1028))) :rule ac_simp :premises (t74)) +(step t76 (cl (= @p_1027 (! (not @p_1028) :named @p_1029))) :rule cong :premises (t75)) +(step t77 (cl (! (= @p_1025 (! (and @p_1018 @p_1019 @p_1015 @p_1029) :named @p_1031)) :named @p_1030)) :rule ac_simp :premises (t76)) +(step t78 (cl (not @p_1030) (not @p_1025) @p_1031) :rule equiv_pos2) +(step t79 (cl @p_1031) :rule th_resolution :premises (t73 t77 t78)) +(anchor :step t80 :args ((:= (veriT_vr91 E$) veriT_vr94) (:= (veriT_vr84 A_b_c_M_state_fun$) veriT_vr95) (:= (veriT_vr85 A_b_c_M_state_fun$) veriT_vr96))) +(anchor :step t80.t1 :args ((:= (veriT_vr86 A$) veriT_vr97) (:= (veriT_vr87 C$) veriT_vr98))) +(step t80.t1.t1 (cl (! (= veriT_vr84 veriT_vr95) :named @p_1046)) :rule refl) +(step t80.t1.t2 (cl (! (= veriT_vr86 veriT_vr97) :named @p_1042)) :rule refl) +(step t80.t1.t3 (cl (! (= @p_871 (! (fun_app$ veriT_vr95 veriT_vr97) :named @p_1041)) :named @p_1047)) :rule cong :premises (t80.t1.t1 t80.t1.t2)) +(step t80.t1.t4 (cl (! (= veriT_vr87 veriT_vr98) :named @p_1044)) :rule refl) +(step t80.t1.t5 (cl (! (= @p_864 (! (run$ @p_1041 veriT_vr98) :named @p_1034)) :named @p_1048)) :rule cong :premises (t80.t1.t3 t80.t1.t4)) +(step t80.t1.t6 (cl (! (= @p_862 (! (is_fail$ @p_1034) :named @p_1032)) :named @p_1049)) :rule cong :premises (t80.t1.t5)) +(step t80.t1.t7 (cl (! (= veriT_vr85 veriT_vr96) :named @p_1052)) :rule refl) +(step t80.t1.t8 (cl @p_1042) :rule refl) +(step t80.t1.t9 (cl (! (= @p_873 (! (fun_app$ veriT_vr96 veriT_vr97) :named @p_1043)) :named @p_1053)) :rule cong :premises (t80.t1.t7 t80.t1.t8)) +(step t80.t1.t10 (cl @p_1044) :rule refl) +(step t80.t1.t11 (cl (! (= @p_863 (! (run$ @p_1043 veriT_vr98) :named @p_1033)) :named @p_1054)) :rule cong :premises (t80.t1.t9 t80.t1.t10)) +(step t80.t1.t12 (cl (= @p_875 (! (is_fail$ @p_1033) :named @p_1045))) :rule cong :premises (t80.t1.t11)) +(step t80.t1.t13 (cl @p_1046) :rule refl) +(step t80.t1.t14 (cl @p_1042) :rule refl) +(step t80.t1.t15 (cl @p_1047) :rule cong :premises (t80.t1.t13 t80.t1.t14)) +(step t80.t1.t16 (cl @p_1044) :rule refl) +(step t80.t1.t17 (cl @p_1048) :rule cong :premises (t80.t1.t15 t80.t1.t16)) +(step t80.t1.t18 (cl @p_1049) :rule cong :premises (t80.t1.t17)) +(step t80.t1.t19 (cl (= @p_880 (! (= @p_1045 @p_1032) :named @p_1050))) :rule cong :premises (t80.t1.t12 t80.t1.t18)) +(anchor :step t80.t1.t20 :args ((:= (veriT_vr88 B$) veriT_vr99) (:= (veriT_vr89 C$) veriT_vr100))) +(step t80.t1.t20.t1 (cl @p_1052) :rule refl) +(step t80.t1.t20.t2 (cl @p_1042) :rule refl) +(step t80.t1.t20.t3 (cl @p_1053) :rule cong :premises (t80.t1.t20.t1 t80.t1.t20.t2)) +(step t80.t1.t20.t4 (cl @p_1044) :rule refl) +(step t80.t1.t20.t5 (cl @p_1054) :rule cong :premises (t80.t1.t20.t3 t80.t1.t20.t4)) +(step t80.t1.t20.t6 (cl (! (= veriT_vr88 veriT_vr99) :named @p_1056)) :rule refl) +(step t80.t1.t20.t7 (cl (! (= veriT_vr89 veriT_vr100) :named @p_1057)) :rule refl) +(step t80.t1.t20.t8 (cl (! (= @p_865 (! (pair$ veriT_vr99 veriT_vr100) :named @p_1035)) :named @p_1058)) :rule cong :premises (t80.t1.t20.t6 t80.t1.t20.t7)) +(step t80.t1.t20.t9 (cl (= @p_885 (! (is_res$ @p_1033 @p_1035) :named @p_1055))) :rule cong :premises (t80.t1.t20.t5 t80.t1.t20.t8)) +(step t80.t1.t20.t10 (cl @p_1046) :rule refl) +(step t80.t1.t20.t11 (cl @p_1042) :rule refl) +(step t80.t1.t20.t12 (cl @p_1047) :rule cong :premises (t80.t1.t20.t10 t80.t1.t20.t11)) +(step t80.t1.t20.t13 (cl @p_1044) :rule refl) +(step t80.t1.t20.t14 (cl @p_1048) :rule cong :premises (t80.t1.t20.t12 t80.t1.t20.t13)) +(step t80.t1.t20.t15 (cl @p_1056) :rule refl) +(step t80.t1.t20.t16 (cl @p_1057) :rule refl) +(step t80.t1.t20.t17 (cl @p_1058) :rule cong :premises (t80.t1.t20.t15 t80.t1.t20.t16)) +(step t80.t1.t20.t18 (cl (= @p_889 (! (is_res$ @p_1034 @p_1035) :named @p_1059))) :rule cong :premises (t80.t1.t20.t14 t80.t1.t20.t17)) +(step t80.t1.t20.t19 (cl (= @p_890 (! (= @p_1055 @p_1059) :named @p_1060))) :rule cong :premises (t80.t1.t20.t9 t80.t1.t20.t18)) +(step t80.t1.t20 (cl (= @p_881 (! (forall ((veriT_vr99 B$) (veriT_vr100 C$)) @p_1060) :named @p_1051))) :rule bind) +(step t80.t1.t21 (cl (= @p_891 (! (and @p_1050 @p_1051) :named @p_1061))) :rule cong :premises (t80.t1.t19 t80.t1.t20)) +(step t80.t1.t22 (cl (= @p_892 (! (or @p_1032 @p_1061) :named @p_1062))) :rule cong :premises (t80.t1.t6 t80.t1.t21)) +(step t80.t1 (cl (= @p_870 (! (forall ((veriT_vr97 A$) (veriT_vr98 C$)) @p_1062) :named @p_1040))) :rule bind) +(anchor :step t80.t2 :args ((:= (veriT_vr90 D$) veriT_vr101))) +(step t80.t2.t1 (cl (! (= veriT_vr91 veriT_vr94) :named @p_1065)) :rule refl) +(step t80.t2.t2 (cl @p_1046) :rule refl) +(step t80.t2.t3 (cl (! (= @p_931 (! (c$ veriT_vr94 veriT_vr95) :named @p_1064)) :named @p_1069)) :rule cong :premises (t80.t2.t1 t80.t2.t2)) +(step t80.t2.t4 (cl (! (= veriT_vr90 veriT_vr101) :named @p_1067)) :rule refl) +(step t80.t2.t5 (cl (! (= @p_916 (! (run$b @p_1064 veriT_vr101) :named @p_1038)) :named @p_1070)) :rule cong :premises (t80.t2.t3 t80.t2.t4)) +(step t80.t2.t6 (cl (! (= @p_914 (! (is_fail$b @p_1038) :named @p_1036)) :named @p_1071)) :rule cong :premises (t80.t2.t5)) +(step t80.t2.t7 (cl @p_1065) :rule refl) +(step t80.t2.t8 (cl @p_1052) :rule refl) +(step t80.t2.t9 (cl (! (= @p_933 (! (c$ veriT_vr94 veriT_vr96) :named @p_1066)) :named @p_1074)) :rule cong :premises (t80.t2.t7 t80.t2.t8)) +(step t80.t2.t10 (cl @p_1067) :rule refl) +(step t80.t2.t11 (cl (! (= @p_915 (! (run$b @p_1066 veriT_vr101) :named @p_1037)) :named @p_1075)) :rule cong :premises (t80.t2.t9 t80.t2.t10)) +(step t80.t2.t12 (cl (= @p_935 (! (is_fail$b @p_1037) :named @p_1068))) :rule cong :premises (t80.t2.t11)) +(step t80.t2.t13 (cl @p_1065) :rule refl) +(step t80.t2.t14 (cl @p_1046) :rule refl) +(step t80.t2.t15 (cl @p_1069) :rule cong :premises (t80.t2.t13 t80.t2.t14)) +(step t80.t2.t16 (cl @p_1067) :rule refl) +(step t80.t2.t17 (cl @p_1070) :rule cong :premises (t80.t2.t15 t80.t2.t16)) +(step t80.t2.t18 (cl @p_1071) :rule cong :premises (t80.t2.t17)) +(step t80.t2.t19 (cl (= @p_939 (! (= @p_1068 @p_1036) :named @p_1072))) :rule cong :premises (t80.t2.t12 t80.t2.t18)) +(anchor :step t80.t2.t20 :args ((:= (veriT_vr93 F$) veriT_vr93) (:= (veriT_vr92 D$) veriT_vr102))) +(step t80.t2.t20.t1 (cl @p_1065) :rule refl) +(step t80.t2.t20.t2 (cl @p_1052) :rule refl) +(step t80.t2.t20.t3 (cl @p_1074) :rule cong :premises (t80.t2.t20.t1 t80.t2.t20.t2)) +(step t80.t2.t20.t4 (cl @p_1067) :rule refl) +(step t80.t2.t20.t5 (cl @p_1075) :rule cong :premises (t80.t2.t20.t3 t80.t2.t20.t4)) +(step t80.t2.t20.t6 (cl (! (= veriT_vr92 veriT_vr102) :named @p_1077)) :rule refl) +(step t80.t2.t20.t7 (cl (! (= @p_917 (! (pair$b veriT_vr93 veriT_vr102) :named @p_1039)) :named @p_1078)) :rule cong :premises (t80.t2.t20.t6)) +(step t80.t2.t20.t8 (cl (= @p_943 (! (is_res$b @p_1037 @p_1039) :named @p_1076))) :rule cong :premises (t80.t2.t20.t5 t80.t2.t20.t7)) +(step t80.t2.t20.t9 (cl @p_1065) :rule refl) +(step t80.t2.t20.t10 (cl @p_1046) :rule refl) +(step t80.t2.t20.t11 (cl @p_1069) :rule cong :premises (t80.t2.t20.t9 t80.t2.t20.t10)) +(step t80.t2.t20.t12 (cl @p_1067) :rule refl) +(step t80.t2.t20.t13 (cl @p_1070) :rule cong :premises (t80.t2.t20.t11 t80.t2.t20.t12)) +(step t80.t2.t20.t14 (cl @p_1077) :rule refl) +(step t80.t2.t20.t15 (cl @p_1078) :rule cong :premises (t80.t2.t20.t14)) +(step t80.t2.t20.t16 (cl (= @p_947 (! (is_res$b @p_1038 @p_1039) :named @p_1079))) :rule cong :premises (t80.t2.t20.t13 t80.t2.t20.t15)) +(step t80.t2.t20.t17 (cl (= @p_948 (! (= @p_1076 @p_1079) :named @p_1080))) :rule cong :premises (t80.t2.t20.t8 t80.t2.t20.t16)) +(step t80.t2.t20 (cl (= @p_940 (! (forall ((veriT_vr93 F$) (veriT_vr102 D$)) @p_1080) :named @p_1073))) :rule bind) +(step t80.t2.t21 (cl (= @p_949 (! (and @p_1072 @p_1073) :named @p_1081))) :rule cong :premises (t80.t2.t19 t80.t2.t20)) +(step t80.t2.t22 (cl (= @p_950 (! (or @p_1036 @p_1081) :named @p_1082))) :rule cong :premises (t80.t2.t6 t80.t2.t21)) +(step t80.t2 (cl (= @p_930 (! (forall ((veriT_vr101 D$)) @p_1082) :named @p_1063))) :rule bind) +(step t80.t3 (cl (= @p_951 (! (=> @p_1040 @p_1063) :named @p_1083))) :rule cong :premises (t80.t1 t80.t2)) +(step t80 (cl (= @p_1019 (! (forall ((veriT_vr94 E$) (veriT_vr95 A_b_c_M_state_fun$) (veriT_vr96 A_b_c_M_state_fun$)) @p_1083) :named @p_1154))) :rule bind) +(anchor :step t81 :args ((:= (veriT_vr86 A$) veriT_vr103) (:= (veriT_vr87 C$) veriT_vr104))) +(step t81.t1 (cl (! (= veriT_vr86 veriT_vr103) :named @p_1089)) :rule refl) +(step t81.t2 (cl (! (= @p_955 (! (fun_app$ veriT_sk0 veriT_vr103) :named @p_1088)) :named @p_1093)) :rule cong :premises (t81.t1)) +(step t81.t3 (cl (! (= veriT_vr87 veriT_vr104) :named @p_1091)) :rule refl) +(step t81.t4 (cl (! (= @p_954 (! (run$ @p_1088 veriT_vr104) :named @p_1086)) :named @p_1094)) :rule cong :premises (t81.t2 t81.t3)) +(step t81.t5 (cl (! (= @p_952 (! (is_fail$ @p_1086) :named @p_1084)) :named @p_1095)) :rule cong :premises (t81.t4)) +(step t81.t6 (cl @p_1089) :rule refl) +(step t81.t7 (cl (! (= @p_957 (! (fun_app$ veriT_sk1 veriT_vr103) :named @p_1090)) :named @p_1098)) :rule cong :premises (t81.t6)) +(step t81.t8 (cl @p_1091) :rule refl) +(step t81.t9 (cl (! (= @p_953 (! (run$ @p_1090 veriT_vr104) :named @p_1085)) :named @p_1099)) :rule cong :premises (t81.t7 t81.t8)) +(step t81.t10 (cl (= @p_959 (! (is_fail$ @p_1085) :named @p_1092))) :rule cong :premises (t81.t9)) +(step t81.t11 (cl @p_1089) :rule refl) +(step t81.t12 (cl @p_1093) :rule cong :premises (t81.t11)) +(step t81.t13 (cl @p_1091) :rule refl) +(step t81.t14 (cl @p_1094) :rule cong :premises (t81.t12 t81.t13)) +(step t81.t15 (cl @p_1095) :rule cong :premises (t81.t14)) +(step t81.t16 (cl (= @p_963 (! (= @p_1092 @p_1084) :named @p_1096))) :rule cong :premises (t81.t10 t81.t15)) +(anchor :step t81.t17 :args ((:= (veriT_vr88 B$) veriT_vr105) (:= (veriT_vr89 C$) veriT_vr106))) +(step t81.t17.t1 (cl @p_1089) :rule refl) +(step t81.t17.t2 (cl @p_1098) :rule cong :premises (t81.t17.t1)) +(step t81.t17.t3 (cl @p_1091) :rule refl) +(step t81.t17.t4 (cl @p_1099) :rule cong :premises (t81.t17.t2 t81.t17.t3)) +(step t81.t17.t5 (cl (! (= veriT_vr88 veriT_vr105) :named @p_1101)) :rule refl) +(step t81.t17.t6 (cl (! (= veriT_vr89 veriT_vr106) :named @p_1102)) :rule refl) +(step t81.t17.t7 (cl (! (= @p_865 (! (pair$ veriT_vr105 veriT_vr106) :named @p_1087)) :named @p_1103)) :rule cong :premises (t81.t17.t5 t81.t17.t6)) +(step t81.t17.t8 (cl (= @p_967 (! (is_res$ @p_1085 @p_1087) :named @p_1100))) :rule cong :premises (t81.t17.t4 t81.t17.t7)) +(step t81.t17.t9 (cl @p_1089) :rule refl) +(step t81.t17.t10 (cl @p_1093) :rule cong :premises (t81.t17.t9)) +(step t81.t17.t11 (cl @p_1091) :rule refl) +(step t81.t17.t12 (cl @p_1094) :rule cong :premises (t81.t17.t10 t81.t17.t11)) +(step t81.t17.t13 (cl @p_1101) :rule refl) +(step t81.t17.t14 (cl @p_1102) :rule refl) +(step t81.t17.t15 (cl @p_1103) :rule cong :premises (t81.t17.t13 t81.t17.t14)) +(step t81.t17.t16 (cl (= @p_971 (! (is_res$ @p_1086 @p_1087) :named @p_1104))) :rule cong :premises (t81.t17.t12 t81.t17.t15)) +(step t81.t17.t17 (cl (= @p_972 (! (= @p_1100 @p_1104) :named @p_1105))) :rule cong :premises (t81.t17.t8 t81.t17.t16)) +(step t81.t17 (cl (= @p_964 (! (forall ((veriT_vr105 B$) (veriT_vr106 C$)) @p_1105) :named @p_1097))) :rule bind) +(step t81.t18 (cl (= @p_973 (! (and @p_1096 @p_1097) :named @p_1106))) :rule cong :premises (t81.t16 t81.t17)) +(step t81.t19 (cl (= @p_974 (! (or @p_1084 @p_1106) :named @p_1107))) :rule cong :premises (t81.t5 t81.t18)) +(step t81 (cl (= @p_1015 (! (forall ((veriT_vr103 A$) (veriT_vr104 C$)) @p_1107) :named @p_1155))) :rule bind) +(anchor :step t82 :args ((:= (veriT_vr91 E$) veriT_vr107) (:= (veriT_vr90 D$) veriT_vr108))) +(step t82.t1 (cl (! (= veriT_vr91 veriT_vr107) :named @p_1110)) :rule refl) +(step t82.t2 (cl (! (= veriT_vr90 veriT_vr108) :named @p_1112)) :rule refl) +(step t82.t3 (cl (= @p_975 (! (pair$a veriT_vr107 veriT_vr108) :named @p_1108))) :rule cong :premises (t82.t1 t82.t2)) +(step t82.t4 (cl (= @p_976 (! (is_res$a @p_712 @p_1108) :named @p_1109))) :rule cong :premises (t82.t3)) +(step t82.t5 (cl @p_1110) :rule refl) +(step t82.t6 (cl (= @p_978 (! (c$ veriT_vr107 veriT_sk0) :named @p_1111))) :rule cong :premises (t82.t5)) +(step t82.t7 (cl @p_1112) :rule refl) +(step t82.t8 (cl (= @p_980 (! (run$b @p_1111 veriT_vr108) :named @p_1113))) :rule cong :premises (t82.t6 t82.t7)) +(step t82.t9 (cl (= @p_981 (! (is_fail$b @p_1113) :named @p_1114))) :rule cong :premises (t82.t8)) +(step t82.t10 (cl (= @p_982 (! (and @p_1109 @p_1114) :named @p_1115))) :rule cong :premises (t82.t4 t82.t9)) +(step t82 (cl (= @p_983 (! (exists ((veriT_vr107 E$) (veriT_vr108 D$)) @p_1115) :named @p_1116))) :rule bind) +(step t83 (cl (= @p_986 (! (or @p_720 @p_1116) :named @p_1117))) :rule cong :premises (t82)) +(step t84 (cl (= @p_996 (! (=> @p_790 @p_1117) :named @p_1148))) :rule cong :premises (t83)) +(anchor :step t85 :args ((:= (veriT_vr91 E$) veriT_vr109) (:= (veriT_vr90 D$) veriT_vr110))) +(step t85.t1 (cl (! (= veriT_vr91 veriT_vr109) :named @p_1120)) :rule refl) +(step t85.t2 (cl (! (= veriT_vr90 veriT_vr110) :named @p_1122)) :rule refl) +(step t85.t3 (cl (= @p_975 (! (pair$a veriT_vr109 veriT_vr110) :named @p_1118))) :rule cong :premises (t85.t1 t85.t2)) +(step t85.t4 (cl (= @p_987 (! (is_res$a @p_714 @p_1118) :named @p_1119))) :rule cong :premises (t85.t3)) +(step t85.t5 (cl @p_1120) :rule refl) +(step t85.t6 (cl (= @p_989 (! (c$ veriT_vr109 veriT_sk1) :named @p_1121))) :rule cong :premises (t85.t5)) +(step t85.t7 (cl @p_1122) :rule refl) +(step t85.t8 (cl (= @p_991 (! (run$b @p_1121 veriT_vr110) :named @p_1123))) :rule cong :premises (t85.t6 t85.t7)) +(step t85.t9 (cl (= @p_992 (! (is_fail$b @p_1123) :named @p_1124))) :rule cong :premises (t85.t8)) +(step t85.t10 (cl (= @p_993 (! (and @p_1119 @p_1124) :named @p_1125))) :rule cong :premises (t85.t4 t85.t9)) +(step t85 (cl (= @p_994 (! (exists ((veriT_vr109 E$) (veriT_vr110 D$)) @p_1125) :named @p_1126))) :rule bind) +(step t86 (cl (= @p_995 (! (or @p_726 @p_1126) :named @p_1127))) :rule cong :premises (t85)) +(step t87 (cl (= @p_997 (! (=> @p_808 @p_1127) :named @p_1149))) :rule cong :premises (t86)) +(anchor :step t88 :args ((:= (veriT_vr91 E$) veriT_vr111) (:= (veriT_vr90 D$) veriT_vr112))) +(step t88.t1 (cl (! (= veriT_vr91 veriT_vr111) :named @p_1130)) :rule refl) +(step t88.t2 (cl (! (= veriT_vr90 veriT_vr112) :named @p_1132)) :rule refl) +(step t88.t3 (cl (= @p_975 (! (pair$a veriT_vr111 veriT_vr112) :named @p_1128))) :rule cong :premises (t88.t1 t88.t2)) +(step t88.t4 (cl (= @p_976 (! (is_res$a @p_712 @p_1128) :named @p_1129))) :rule cong :premises (t88.t3)) +(step t88.t5 (cl @p_1130) :rule refl) +(step t88.t6 (cl (= @p_978 (! (c$ veriT_vr111 veriT_sk0) :named @p_1131))) :rule cong :premises (t88.t5)) +(step t88.t7 (cl @p_1132) :rule refl) +(step t88.t8 (cl (= @p_980 (! (run$b @p_1131 veriT_vr112) :named @p_1133))) :rule cong :premises (t88.t6 t88.t7)) +(step t88.t9 (cl (= @p_1000 (! (is_res$b @p_1133 @p_747) :named @p_1134))) :rule cong :premises (t88.t8)) +(step t88.t10 (cl (= @p_1001 (! (and @p_1129 @p_1134) :named @p_1135))) :rule cong :premises (t88.t4 t88.t9)) +(step t88 (cl (= @p_1002 (! (exists ((veriT_vr111 E$) (veriT_vr112 D$)) @p_1135) :named @p_1136))) :rule bind) +(step t89 (cl (= @p_1003 (! (or @p_720 @p_1136) :named @p_1137))) :rule cong :premises (t88)) +(step t90 (cl (= @p_1010 (! (=> @p_828 @p_1137) :named @p_1150))) :rule cong :premises (t89)) +(anchor :step t91 :args ((:= (veriT_vr91 E$) veriT_vr113) (:= (veriT_vr90 D$) veriT_vr114))) +(step t91.t1 (cl (! (= veriT_vr91 veriT_vr113) :named @p_1140)) :rule refl) +(step t91.t2 (cl (! (= veriT_vr90 veriT_vr114) :named @p_1142)) :rule refl) +(step t91.t3 (cl (= @p_975 (! (pair$a veriT_vr113 veriT_vr114) :named @p_1138))) :rule cong :premises (t91.t1 t91.t2)) +(step t91.t4 (cl (= @p_987 (! (is_res$a @p_714 @p_1138) :named @p_1139))) :rule cong :premises (t91.t3)) +(step t91.t5 (cl @p_1140) :rule refl) +(step t91.t6 (cl (= @p_989 (! (c$ veriT_vr113 veriT_sk1) :named @p_1141))) :rule cong :premises (t91.t5)) +(step t91.t7 (cl @p_1142) :rule refl) +(step t91.t8 (cl (= @p_991 (! (run$b @p_1141 veriT_vr114) :named @p_1143))) :rule cong :premises (t91.t6 t91.t7)) +(step t91.t9 (cl (= @p_1006 (! (is_res$b @p_1143 @p_747) :named @p_1144))) :rule cong :premises (t91.t8)) +(step t91.t10 (cl (= @p_1007 (! (and @p_1139 @p_1144) :named @p_1145))) :rule cong :premises (t91.t4 t91.t9)) +(step t91 (cl (= @p_1008 (! (exists ((veriT_vr113 E$) (veriT_vr114 D$)) @p_1145) :named @p_1146))) :rule bind) +(step t92 (cl (= @p_1009 (! (or @p_726 @p_1146) :named @p_1147))) :rule cong :premises (t91)) +(step t93 (cl (= @p_1011 (! (=> @p_848 @p_1147) :named @p_1151))) :rule cong :premises (t92)) +(step t94 (cl (= @p_1026 (! (and @p_1148 @p_1149 @p_1150 @p_1151) :named @p_1152))) :rule cong :premises (t84 t87 t90 t93)) +(step t95 (cl (= @p_1028 (! (or @p_720 @p_1116 @p_1152) :named @p_1153))) :rule cong :premises (t82 t94)) +(step t96 (cl (= @p_1029 (! (not @p_1153) :named @p_1156))) :rule cong :premises (t95)) +(step t97 (cl (! (= @p_1031 (! (and @p_1018 @p_1154 @p_1155 @p_1156) :named @p_1158)) :named @p_1157)) :rule cong :premises (t80 t81 t96)) +(step t98 (cl (not @p_1157) (not @p_1031) @p_1158) :rule equiv_pos2) +(step t99 (cl @p_1158) :rule th_resolution :premises (t79 t97 t98)) +(step t100 (cl (= @p_1116 (! (not (! (forall ((veriT_vr107 E$) (veriT_vr108 D$)) (not @p_1115)) :named @p_1177)) :named @p_1159))) :rule connective_def) +(step t101 (cl (= @p_1117 (! (or @p_720 @p_1159) :named @p_1160))) :rule cong :premises (t100)) +(step t102 (cl (= @p_1148 (! (=> @p_790 @p_1160) :named @p_1167))) :rule cong :premises (t101)) +(step t103 (cl (= @p_1126 (! (not (forall ((veriT_vr109 E$) (veriT_vr110 D$)) (not @p_1125))) :named @p_1161))) :rule connective_def) +(step t104 (cl (= @p_1127 (! (or @p_726 @p_1161) :named @p_1162))) :rule cong :premises (t103)) +(step t105 (cl (= @p_1149 (! (=> @p_808 @p_1162) :named @p_1168))) :rule cong :premises (t104)) +(step t106 (cl (= @p_1136 (! (not (! (forall ((veriT_vr111 E$) (veriT_vr112 D$)) (not @p_1135)) :named @p_1181)) :named @p_1163))) :rule connective_def) +(step t107 (cl (= @p_1137 (! (or @p_720 @p_1163) :named @p_1164))) :rule cong :premises (t106)) +(step t108 (cl (= @p_1150 (! (=> @p_828 @p_1164) :named @p_1169))) :rule cong :premises (t107)) +(step t109 (cl (= @p_1146 (! (not (! (forall ((veriT_vr113 E$) (veriT_vr114 D$)) (not @p_1145)) :named @p_1184)) :named @p_1165))) :rule connective_def) +(step t110 (cl (= @p_1147 (! (or @p_726 @p_1165) :named @p_1166))) :rule cong :premises (t109)) +(step t111 (cl (= @p_1151 (! (=> @p_848 @p_1166) :named @p_1170))) :rule cong :premises (t110)) +(step t112 (cl (= @p_1152 (! (and @p_1167 @p_1168 @p_1169 @p_1170) :named @p_1171))) :rule cong :premises (t102 t105 t108 t111)) +(step t113 (cl (= @p_1153 (! (or @p_720 @p_1159 @p_1171) :named @p_1172))) :rule cong :premises (t100 t112)) +(step t114 (cl (= @p_1156 (! (not @p_1172) :named @p_1173))) :rule cong :premises (t113)) +(step t115 (cl (! (= @p_1158 (! (and @p_1018 @p_1154 @p_1155 @p_1173) :named @p_1175)) :named @p_1174)) :rule cong :premises (t114)) +(step t116 (cl (not @p_1174) (not @p_1158) @p_1175) :rule equiv_pos2) +(step t117 (cl @p_1175) :rule th_resolution :premises (t99 t115 t116)) +(step t118 (cl @p_1018) :rule and :premises (t117)) +(step t119 (cl @p_1154) :rule and :premises (t117)) +(step t120 (cl @p_1155) :rule and :premises (t117)) +(step t121 (cl @p_1173) :rule and :premises (t117)) +(step t122 (cl (not @p_720)) :rule not_or :premises (t121)) +(step t123 (cl (! (not @p_1159) :named @p_1176)) :rule not_or :premises (t121)) +(step t124 (cl (not @p_1176) @p_1177) :rule not_not) +(step t125 (cl @p_1177) :rule th_resolution :premises (t124 t123)) +(step t126 (cl (not @p_1171)) :rule not_or :premises (t121)) +(step t127 (cl (! (not @p_780) :named @p_1178) @p_784) :rule and_pos) +(step t128 (cl @p_1178 @p_789) :rule and_pos) +(step t129 (cl (! (not @p_790) :named @p_1925) @p_726 @p_780) :rule or_pos) +(step t130 (cl @p_1167 @p_790) :rule implies_neg1) +(step t131 (cl (! (not @p_808) :named @p_1185) @p_720 @p_800) :rule or_pos) +(step t132 (cl @p_1168 @p_808) :rule implies_neg1) +(step t133 (cl (! (not @p_820) :named @p_1179) @p_822) :rule and_pos) +(step t134 (cl @p_1179 @p_827) :rule and_pos) +(step t135 (cl (not @p_828) @p_726 @p_820) :rule or_pos) +(step t136 (cl @p_1169 @p_828) :rule implies_neg1) +(step t137 (cl @p_1164 (! (not @p_1163) :named @p_1180)) :rule or_neg) +(step t138 (cl (not @p_1180) @p_1181) :rule not_not) +(step t139 (cl @p_1164 @p_1181) :rule th_resolution :premises (t138 t137)) +(step t140 (cl @p_1169 (! (not @p_1164) :named @p_1927)) :rule implies_neg2) +(step t141 (cl (! (not @p_840) :named @p_1182) @p_842) :rule and_pos) +(step t142 (cl @p_1182 @p_847) :rule and_pos) +(step t143 (cl (! (not @p_848) :named @p_1186) @p_720 @p_840) :rule or_pos) +(step t144 (cl @p_1170 @p_848) :rule implies_neg1) +(step t145 (cl @p_1166 (! (not @p_1165) :named @p_1183)) :rule or_neg) +(step t146 (cl (not @p_1183) @p_1184) :rule not_not) +(step t147 (cl @p_1166 @p_1184) :rule th_resolution :premises (t146 t145)) +(step t148 (cl @p_1170 (not @p_1166)) :rule implies_neg2) +(step t149 (cl (not @p_1167) (not @p_1168) (! (not @p_1169) :named @p_1926) (not @p_1170)) :rule not_and :premises (t126)) +(step t150 (cl @p_1185 @p_800) :rule resolution :premises (t131 t122)) +(step t151 (cl @p_1186 @p_840) :rule resolution :premises (t143 t122)) +(step t152 (cl (or (! (not @p_1155) :named @p_1187) (! (forall ((veriT_vr103 A$) (veriT_vr104 C$)) (or @p_1084 (not @p_1092) @p_1084)) :named @p_1340))) :rule qnt_cnf) +(step t153 (cl (or @p_1187 (! (forall ((veriT_vr103 A$) (veriT_vr104 C$) (veriT_vr105 B$) (veriT_vr106 C$)) (or @p_1084 (not @p_1100) @p_1104)) :named @p_1351))) :rule qnt_cnf) +(step t154 (cl (or @p_1187 (! (forall ((veriT_vr103 A$) (veriT_vr104 C$) (veriT_vr105 B$) (veriT_vr106 C$)) (or @p_1084 (not @p_1104) @p_1100)) :named @p_1352))) :rule qnt_cnf) +(step t155 (cl (or @p_1159 (! (not @p_800) :named @p_1323))) :rule forall_inst :args ((:= veriT_vr107 veriT_sk5) (:= veriT_vr108 veriT_sk6))) +(step t156 (cl (or @p_1159 (! (not (! (and @p_842 (! (is_fail$b @p_846) :named @p_1325)) :named @p_1324)) :named @p_1326))) :rule forall_inst :args ((:= veriT_vr107 veriT_sk11) (:= veriT_vr108 veriT_sk12))) +(step t157 (cl (or @p_1159 (! (not (! (and (! (is_res$a @p_712 @p_821) :named @p_1328) (! (is_fail$b (! (run$b (c$ veriT_sk9 veriT_sk0) veriT_sk10) :named @p_1353)) :named @p_1329)) :named @p_1327)) :named @p_1330))) :rule forall_inst :args ((:= veriT_vr107 veriT_sk9) (:= veriT_vr108 veriT_sk10))) +(step t158 (cl (or @p_1159 (! (not (! (and (! (is_res$a @p_712 @p_783) :named @p_1332) (! (is_fail$b (! (run$b (c$ veriT_sk3 veriT_sk0) veriT_sk4) :named @p_1389)) :named @p_1333)) :named @p_1331)) :named @p_1334))) :rule forall_inst :args ((:= veriT_vr107 veriT_sk3) (:= veriT_vr108 veriT_sk4))) +(step t159 (cl (not (! (not (! (not @p_1154) :named @p_1385)) :named @p_1533)) @p_1154) :rule not_not) +(step t160 (cl (or (! (not @p_1018) :named @p_1320) (! (=> @p_1015 (! (or @p_720 (! (and (! (= @p_726 @p_720) :named @p_1208) (! (forall ((veriT_vr91 E$) (veriT_vr92 D$)) (! (= (! (is_res$a @p_714 @p_869) :named @p_1236) (! (is_res$a @p_712 @p_869) :named @p_1241)) :named @p_1243)) :named @p_1234)) :named @p_1245)) :named @p_1247)) :named @p_1188))) :rule forall_inst :args ((:= veriT_vr84 veriT_sk0) (:= veriT_vr85 veriT_sk1) (:= veriT_vr90 veriT_sk2))) +(anchor :step t161) +(assume t161.h1 @p_1188) +(anchor :step t161.t2 :args ((:= (veriT_vr86 A$) veriT_vr115) (:= (veriT_vr87 C$) veriT_vr116))) +(step t161.t2.t1 (cl (! (= veriT_vr86 veriT_vr115) :named @p_1215)) :rule refl) +(step t161.t2.t2 (cl (! (= @p_955 (! (fun_app$ veriT_sk0 veriT_vr115) :named @p_1214)) :named @p_1219)) :rule cong :premises (t161.t2.t1)) +(step t161.t2.t3 (cl (! (= veriT_vr87 veriT_vr116) :named @p_1217)) :rule refl) +(step t161.t2.t4 (cl (! (= @p_954 (! (run$ @p_1214 veriT_vr116) :named @p_1212)) :named @p_1220)) :rule cong :premises (t161.t2.t2 t161.t2.t3)) +(step t161.t2.t5 (cl (! (= @p_952 (! (is_fail$ @p_1212) :named @p_1210)) :named @p_1221)) :rule cong :premises (t161.t2.t4)) +(step t161.t2.t6 (cl @p_1215) :rule refl) +(step t161.t2.t7 (cl (! (= @p_957 (! (fun_app$ veriT_sk1 veriT_vr115) :named @p_1216)) :named @p_1224)) :rule cong :premises (t161.t2.t6)) +(step t161.t2.t8 (cl @p_1217) :rule refl) +(step t161.t2.t9 (cl (! (= @p_953 (! (run$ @p_1216 veriT_vr116) :named @p_1211)) :named @p_1225)) :rule cong :premises (t161.t2.t7 t161.t2.t8)) +(step t161.t2.t10 (cl (= @p_959 (! (is_fail$ @p_1211) :named @p_1218))) :rule cong :premises (t161.t2.t9)) +(step t161.t2.t11 (cl @p_1215) :rule refl) +(step t161.t2.t12 (cl @p_1219) :rule cong :premises (t161.t2.t11)) +(step t161.t2.t13 (cl @p_1217) :rule refl) +(step t161.t2.t14 (cl @p_1220) :rule cong :premises (t161.t2.t12 t161.t2.t13)) +(step t161.t2.t15 (cl @p_1221) :rule cong :premises (t161.t2.t14)) +(step t161.t2.t16 (cl (= @p_963 (! (= @p_1218 @p_1210) :named @p_1222))) :rule cong :premises (t161.t2.t10 t161.t2.t15)) +(anchor :step t161.t2.t17 :args ((:= (veriT_vr88 B$) veriT_vr117) (:= (veriT_vr89 C$) veriT_vr118))) +(step t161.t2.t17.t1 (cl @p_1215) :rule refl) +(step t161.t2.t17.t2 (cl @p_1224) :rule cong :premises (t161.t2.t17.t1)) +(step t161.t2.t17.t3 (cl @p_1217) :rule refl) +(step t161.t2.t17.t4 (cl @p_1225) :rule cong :premises (t161.t2.t17.t2 t161.t2.t17.t3)) +(step t161.t2.t17.t5 (cl (! (= veriT_vr88 veriT_vr117) :named @p_1227)) :rule refl) +(step t161.t2.t17.t6 (cl (! (= veriT_vr89 veriT_vr118) :named @p_1228)) :rule refl) +(step t161.t2.t17.t7 (cl (! (= @p_865 (! (pair$ veriT_vr117 veriT_vr118) :named @p_1213)) :named @p_1229)) :rule cong :premises (t161.t2.t17.t5 t161.t2.t17.t6)) +(step t161.t2.t17.t8 (cl (= @p_967 (! (is_res$ @p_1211 @p_1213) :named @p_1226))) :rule cong :premises (t161.t2.t17.t4 t161.t2.t17.t7)) +(step t161.t2.t17.t9 (cl @p_1215) :rule refl) +(step t161.t2.t17.t10 (cl @p_1219) :rule cong :premises (t161.t2.t17.t9)) +(step t161.t2.t17.t11 (cl @p_1217) :rule refl) +(step t161.t2.t17.t12 (cl @p_1220) :rule cong :premises (t161.t2.t17.t10 t161.t2.t17.t11)) +(step t161.t2.t17.t13 (cl @p_1227) :rule refl) +(step t161.t2.t17.t14 (cl @p_1228) :rule refl) +(step t161.t2.t17.t15 (cl @p_1229) :rule cong :premises (t161.t2.t17.t13 t161.t2.t17.t14)) +(step t161.t2.t17.t16 (cl (= @p_971 (! (is_res$ @p_1212 @p_1213) :named @p_1230))) :rule cong :premises (t161.t2.t17.t12 t161.t2.t17.t15)) +(step t161.t2.t17.t17 (cl (= @p_972 (! (= @p_1226 @p_1230) :named @p_1231))) :rule cong :premises (t161.t2.t17.t8 t161.t2.t17.t16)) +(step t161.t2.t17 (cl (= @p_964 (! (forall ((veriT_vr117 B$) (veriT_vr118 C$)) @p_1231) :named @p_1223))) :rule bind) +(step t161.t2.t18 (cl (= @p_973 (! (and @p_1222 @p_1223) :named @p_1232))) :rule cong :premises (t161.t2.t16 t161.t2.t17)) +(step t161.t2.t19 (cl (= @p_974 (! (or @p_1210 @p_1232) :named @p_1233))) :rule cong :premises (t161.t2.t5 t161.t2.t18)) +(step t161.t2 (cl (= @p_1015 (! (forall ((veriT_vr115 A$) (veriT_vr116 C$)) @p_1233) :named @p_1249))) :rule bind) +(anchor :step t161.t3 :args ((:= (veriT_vr91 E$) veriT_vr121) (:= (veriT_vr92 D$) veriT_vr120))) +(step t161.t3.t1 (cl (! (= veriT_vr91 veriT_vr121) :named @p_1238)) :rule refl) +(step t161.t3.t2 (cl (! (= veriT_vr92 veriT_vr120) :named @p_1239)) :rule refl) +(step t161.t3.t3 (cl (! (= @p_869 (! (pair$a veriT_vr121 veriT_vr120) :named @p_1235)) :named @p_1240)) :rule cong :premises (t161.t3.t1 t161.t3.t2)) +(step t161.t3.t4 (cl (= @p_1236 (! (is_res$a @p_714 @p_1235) :named @p_1237))) :rule cong :premises (t161.t3.t3)) +(step t161.t3.t5 (cl @p_1238) :rule refl) +(step t161.t3.t6 (cl @p_1239) :rule refl) +(step t161.t3.t7 (cl @p_1240) :rule cong :premises (t161.t3.t5 t161.t3.t6)) +(step t161.t3.t8 (cl (= @p_1241 (! (is_res$a @p_712 @p_1235) :named @p_1242))) :rule cong :premises (t161.t3.t7)) +(step t161.t3.t9 (cl (= @p_1243 (! (= @p_1237 @p_1242) :named @p_1244))) :rule cong :premises (t161.t3.t4 t161.t3.t8)) +(step t161.t3 (cl (= @p_1234 (! (forall ((veriT_vr121 E$) (veriT_vr120 D$)) @p_1244) :named @p_1246))) :rule bind) +(step t161.t4 (cl (= @p_1245 (! (and @p_1208 @p_1246) :named @p_1248))) :rule cong :premises (t161.t3)) +(step t161.t5 (cl (= @p_1247 (! (or @p_720 @p_1248) :named @p_1250))) :rule cong :premises (t161.t4)) +(step t161.t6 (cl (! (= @p_1188 (! (=> @p_1249 @p_1250) :named @p_1253)) :named @p_1251)) :rule cong :premises (t161.t2 t161.t5)) +(step t161.t7 (cl (not @p_1251) (! (not @p_1188) :named @p_1252) @p_1253) :rule equiv_pos2) +(step t161.t8 (cl @p_1253) :rule th_resolution :premises (t161.h1 t161.t6 t161.t7)) +(anchor :step t161.t9 :args ((:= (veriT_vr115 A$) veriT_vr122) (:= (veriT_vr116 C$) veriT_vr123))) +(step t161.t9.t1 (cl (! (= veriT_vr115 veriT_vr122) :named @p_1256)) :rule refl) +(step t161.t9.t2 (cl (! (= @p_1214 @p_1255) :named @p_1260)) :rule cong :premises (t161.t9.t1)) +(step t161.t9.t3 (cl (! (= veriT_vr116 veriT_vr123) :named @p_1258)) :rule refl) +(step t161.t9.t4 (cl (! (= @p_1212 @p_1191) :named @p_1261)) :rule cong :premises (t161.t9.t2 t161.t9.t3)) +(step t161.t9.t5 (cl (! (= @p_1210 @p_1189) :named @p_1262)) :rule cong :premises (t161.t9.t4)) +(step t161.t9.t6 (cl @p_1256) :rule refl) +(step t161.t9.t7 (cl (! (= @p_1216 @p_1257) :named @p_1265)) :rule cong :premises (t161.t9.t6)) +(step t161.t9.t8 (cl @p_1258) :rule refl) +(step t161.t9.t9 (cl (! (= @p_1211 @p_1190) :named @p_1266)) :rule cong :premises (t161.t9.t7 t161.t9.t8)) +(step t161.t9.t10 (cl (= @p_1218 @p_1259)) :rule cong :premises (t161.t9.t9)) +(step t161.t9.t11 (cl @p_1256) :rule refl) +(step t161.t9.t12 (cl @p_1260) :rule cong :premises (t161.t9.t11)) +(step t161.t9.t13 (cl @p_1258) :rule refl) +(step t161.t9.t14 (cl @p_1261) :rule cong :premises (t161.t9.t12 t161.t9.t13)) +(step t161.t9.t15 (cl @p_1262) :rule cong :premises (t161.t9.t14)) +(step t161.t9.t16 (cl (= @p_1222 @p_1263)) :rule cong :premises (t161.t9.t10 t161.t9.t15)) +(anchor :step t161.t9.t17 :args ((:= (veriT_vr117 B$) veriT_vr124) (:= (veriT_vr118 C$) veriT_vr125))) +(step t161.t9.t17.t1 (cl @p_1256) :rule refl) +(step t161.t9.t17.t2 (cl @p_1265) :rule cong :premises (t161.t9.t17.t1)) +(step t161.t9.t17.t3 (cl @p_1258) :rule refl) +(step t161.t9.t17.t4 (cl @p_1266) :rule cong :premises (t161.t9.t17.t2 t161.t9.t17.t3)) +(step t161.t9.t17.t5 (cl (! (= veriT_vr117 veriT_vr124) :named @p_1268)) :rule refl) +(step t161.t9.t17.t6 (cl (! (= veriT_vr118 veriT_vr125) :named @p_1269)) :rule refl) +(step t161.t9.t17.t7 (cl (! (= @p_1213 @p_1192) :named @p_1270)) :rule cong :premises (t161.t9.t17.t5 t161.t9.t17.t6)) +(step t161.t9.t17.t8 (cl (= @p_1226 @p_1267)) :rule cong :premises (t161.t9.t17.t4 t161.t9.t17.t7)) +(step t161.t9.t17.t9 (cl @p_1256) :rule refl) +(step t161.t9.t17.t10 (cl @p_1260) :rule cong :premises (t161.t9.t17.t9)) +(step t161.t9.t17.t11 (cl @p_1258) :rule refl) +(step t161.t9.t17.t12 (cl @p_1261) :rule cong :premises (t161.t9.t17.t10 t161.t9.t17.t11)) +(step t161.t9.t17.t13 (cl @p_1268) :rule refl) +(step t161.t9.t17.t14 (cl @p_1269) :rule refl) +(step t161.t9.t17.t15 (cl @p_1270) :rule cong :premises (t161.t9.t17.t13 t161.t9.t17.t14)) +(step t161.t9.t17.t16 (cl (= @p_1230 @p_1271)) :rule cong :premises (t161.t9.t17.t12 t161.t9.t17.t15)) +(step t161.t9.t17.t17 (cl (= @p_1231 @p_1272)) :rule cong :premises (t161.t9.t17.t8 t161.t9.t17.t16)) +(step t161.t9.t17 (cl (= @p_1223 @p_1264)) :rule bind) +(step t161.t9.t18 (cl (= @p_1232 @p_1273)) :rule cong :premises (t161.t9.t16 t161.t9.t17)) +(step t161.t9.t19 (cl (= @p_1233 @p_1254)) :rule cong :premises (t161.t9.t5 t161.t9.t18)) +(step t161.t9 (cl (= @p_1249 (! (forall ((veriT_vr122 A$) (veriT_vr123 C$)) @p_1254) :named @p_1283))) :rule bind) +(anchor :step t161.t10 :args ((:= (veriT_vr121 E$) veriT_vr126) (:= (veriT_vr120 D$) veriT_vr127))) +(step t161.t10.t1 (cl (! (= veriT_vr121 veriT_vr126) :named @p_1276)) :rule refl) +(step t161.t10.t2 (cl (! (= veriT_vr120 veriT_vr127) :named @p_1277)) :rule refl) +(step t161.t10.t3 (cl (! (= @p_1235 (! (pair$a veriT_vr126 veriT_vr127) :named @p_1274)) :named @p_1278)) :rule cong :premises (t161.t10.t1 t161.t10.t2)) +(step t161.t10.t4 (cl (= @p_1237 (! (is_res$a @p_714 @p_1274) :named @p_1275))) :rule cong :premises (t161.t10.t3)) +(step t161.t10.t5 (cl @p_1276) :rule refl) +(step t161.t10.t6 (cl @p_1277) :rule refl) +(step t161.t10.t7 (cl @p_1278) :rule cong :premises (t161.t10.t5 t161.t10.t6)) +(step t161.t10.t8 (cl (= @p_1242 (! (is_res$a @p_712 @p_1274) :named @p_1279))) :rule cong :premises (t161.t10.t7)) +(step t161.t10.t9 (cl (= @p_1244 (! (= @p_1275 @p_1279) :named @p_1280))) :rule cong :premises (t161.t10.t4 t161.t10.t8)) +(step t161.t10 (cl (= @p_1246 (! (forall ((veriT_vr126 E$) (veriT_vr127 D$)) @p_1280) :named @p_1281))) :rule bind) +(step t161.t11 (cl (= @p_1248 (! (and @p_1208 @p_1281) :named @p_1282))) :rule cong :premises (t161.t10)) +(step t161.t12 (cl (= @p_1250 (! (or @p_720 @p_1282) :named @p_1284))) :rule cong :premises (t161.t11)) +(step t161.t13 (cl (! (= @p_1253 (! (=> @p_1283 @p_1284) :named @p_1286)) :named @p_1285)) :rule cong :premises (t161.t9 t161.t12)) +(step t161.t14 (cl (not @p_1285) (not @p_1253) @p_1286) :rule equiv_pos2) +(step t161.t15 (cl @p_1286) :rule th_resolution :premises (t161.t8 t161.t13 t161.t14)) +(anchor :step t161.t16 :args ((:= (veriT_vr122 A$) veriT_sk13) (:= (veriT_vr123 C$) veriT_sk14))) +(step t161.t16.t1 (cl (! (= veriT_vr122 veriT_sk13) :named @p_1289)) :rule refl) +(step t161.t16.t2 (cl (! (= @p_1255 (! (fun_app$ veriT_sk0 veriT_sk13) :named @p_1288)) :named @p_1293)) :rule cong :premises (t161.t16.t1)) +(step t161.t16.t3 (cl (! (= veriT_vr123 veriT_sk14) :named @p_1291)) :rule refl) +(step t161.t16.t4 (cl (! (= @p_1191 (! (run$ @p_1288 veriT_sk14) :named @p_1206)) :named @p_1294)) :rule cong :premises (t161.t16.t2 t161.t16.t3)) +(step t161.t16.t5 (cl (! (= @p_1189 (! (is_fail$ @p_1206) :named @p_1198)) :named @p_1295)) :rule cong :premises (t161.t16.t4)) +(step t161.t16.t6 (cl @p_1289) :rule refl) +(step t161.t16.t7 (cl (! (= @p_1257 (! (fun_app$ veriT_sk1 veriT_sk13) :named @p_1290)) :named @p_1298)) :rule cong :premises (t161.t16.t6)) +(step t161.t16.t8 (cl @p_1291) :rule refl) +(step t161.t16.t9 (cl (! (= @p_1190 (! (run$ @p_1290 veriT_sk14) :named @p_1199)) :named @p_1299)) :rule cong :premises (t161.t16.t7 t161.t16.t8)) +(step t161.t16.t10 (cl (= @p_1259 (! (is_fail$ @p_1199) :named @p_1292))) :rule cong :premises (t161.t16.t9)) +(step t161.t16.t11 (cl @p_1289) :rule refl) +(step t161.t16.t12 (cl @p_1293) :rule cong :premises (t161.t16.t11)) +(step t161.t16.t13 (cl @p_1291) :rule refl) +(step t161.t16.t14 (cl @p_1294) :rule cong :premises (t161.t16.t12 t161.t16.t13)) +(step t161.t16.t15 (cl @p_1295) :rule cong :premises (t161.t16.t14)) +(step t161.t16.t16 (cl (= @p_1263 (! (= @p_1292 @p_1198) :named @p_1296))) :rule cong :premises (t161.t16.t10 t161.t16.t15)) +(anchor :step t161.t16.t17 :args ((:= (veriT_vr124 B$) veriT_sk15) (:= (veriT_vr125 C$) veriT_sk16))) +(step t161.t16.t17.t1 (cl @p_1289) :rule refl) +(step t161.t16.t17.t2 (cl @p_1298) :rule cong :premises (t161.t16.t17.t1)) +(step t161.t16.t17.t3 (cl @p_1291) :rule refl) +(step t161.t16.t17.t4 (cl @p_1299) :rule cong :premises (t161.t16.t17.t2 t161.t16.t17.t3)) +(step t161.t16.t17.t5 (cl (! (= veriT_vr124 veriT_sk15) :named @p_1302)) :rule refl) +(step t161.t16.t17.t6 (cl (! (= veriT_vr125 veriT_sk16) :named @p_1303)) :rule refl) +(step t161.t16.t17.t7 (cl (! (= @p_1192 (! (pair$ veriT_sk15 veriT_sk16) :named @p_1207)) :named @p_1304)) :rule cong :premises (t161.t16.t17.t5 t161.t16.t17.t6)) +(step t161.t16.t17.t8 (cl (= @p_1267 (! (is_res$ @p_1199 @p_1207) :named @p_1301))) :rule cong :premises (t161.t16.t17.t4 t161.t16.t17.t7)) +(step t161.t16.t17.t9 (cl @p_1289) :rule refl) +(step t161.t16.t17.t10 (cl @p_1293) :rule cong :premises (t161.t16.t17.t9)) +(step t161.t16.t17.t11 (cl @p_1291) :rule refl) +(step t161.t16.t17.t12 (cl @p_1294) :rule cong :premises (t161.t16.t17.t10 t161.t16.t17.t11)) +(step t161.t16.t17.t13 (cl @p_1302) :rule refl) +(step t161.t16.t17.t14 (cl @p_1303) :rule refl) +(step t161.t16.t17.t15 (cl @p_1304) :rule cong :premises (t161.t16.t17.t13 t161.t16.t17.t14)) +(step t161.t16.t17.t16 (cl (= @p_1271 (! (is_res$ @p_1206 @p_1207) :named @p_1305))) :rule cong :premises (t161.t16.t17.t12 t161.t16.t17.t15)) +(step t161.t16.t17.t17 (cl (= @p_1272 (! (= @p_1301 @p_1305) :named @p_1297))) :rule cong :premises (t161.t16.t17.t8 t161.t16.t17.t16)) +(step t161.t16.t17 (cl (= @p_1264 @p_1297)) :rule sko_forall) +(step t161.t16.t18 (cl (= @p_1273 (! (and @p_1296 @p_1297) :named @p_1306))) :rule cong :premises (t161.t16.t16 t161.t16.t17)) +(step t161.t16.t19 (cl (= @p_1254 (! (or @p_1198 @p_1306) :named @p_1287))) :rule cong :premises (t161.t16.t5 t161.t16.t18)) +(step t161.t16 (cl (= @p_1283 @p_1287)) :rule sko_forall) +(step t161.t17 (cl (! (= @p_1286 (! (=> @p_1287 @p_1284) :named @p_1308)) :named @p_1307)) :rule cong :premises (t161.t16)) +(step t161.t18 (cl (not @p_1307) (not @p_1286) @p_1308) :rule equiv_pos2) +(step t161.t19 (cl @p_1308) :rule th_resolution :premises (t161.t15 t161.t17 t161.t18)) +(anchor :step t161.t20 :args ((:= (veriT_vr126 E$) veriT_vr128) (:= (veriT_vr127 D$) veriT_vr129))) +(step t161.t20.t1 (cl (! (= veriT_vr126 veriT_vr128) :named @p_1311)) :rule refl) +(step t161.t20.t2 (cl (! (= veriT_vr127 veriT_vr129) :named @p_1312)) :rule refl) +(step t161.t20.t3 (cl (! (= @p_1274 (! (pair$a veriT_vr128 veriT_vr129) :named @p_1209)) :named @p_1313)) :rule cong :premises (t161.t20.t1 t161.t20.t2)) +(step t161.t20.t4 (cl (= @p_1275 (! (is_res$a @p_714 @p_1209) :named @p_1310))) :rule cong :premises (t161.t20.t3)) +(step t161.t20.t5 (cl @p_1311) :rule refl) +(step t161.t20.t6 (cl @p_1312) :rule refl) +(step t161.t20.t7 (cl @p_1313) :rule cong :premises (t161.t20.t5 t161.t20.t6)) +(step t161.t20.t8 (cl (= @p_1279 (! (is_res$a @p_712 @p_1209) :named @p_1314))) :rule cong :premises (t161.t20.t7)) +(step t161.t20.t9 (cl (= @p_1280 (! (= @p_1310 @p_1314) :named @p_1315))) :rule cong :premises (t161.t20.t4 t161.t20.t8)) +(step t161.t20 (cl (= @p_1281 (! (forall ((veriT_vr128 E$) (veriT_vr129 D$)) @p_1315) :named @p_1309))) :rule bind) +(step t161.t21 (cl (= @p_1282 (! (and @p_1208 @p_1309) :named @p_1316))) :rule cong :premises (t161.t20)) +(step t161.t22 (cl (= @p_1284 (! (or @p_720 @p_1316) :named @p_1317))) :rule cong :premises (t161.t21)) +(step t161.t23 (cl (! (= @p_1308 (! (=> @p_1287 @p_1317) :named @p_1318)) :named @p_1319)) :rule cong :premises (t161.t22)) +(step t161.t24 (cl (not @p_1319) (not @p_1308) @p_1318) :rule equiv_pos2) +(step t161.t25 (cl @p_1318) :rule th_resolution :premises (t161.t19 t161.t23 t161.t24)) +(step t161 (cl @p_1252 @p_1318) :rule subproof :discharge (h1)) +(step t162 (cl @p_1320 @p_1188) :rule or :premises (t160)) +(step t163 (cl (! (or @p_1320 @p_1318) :named @p_1322) (! (not @p_1320) :named @p_1321)) :rule or_neg) +(step t164 (cl (not @p_1321) @p_1018) :rule not_not) +(step t165 (cl @p_1322 @p_1018) :rule th_resolution :premises (t164 t163)) +(step t166 (cl @p_1322 (! (not @p_1318) :named @p_1336)) :rule or_neg) +(step t167 (cl @p_1322) :rule th_resolution :premises (t162 t161 t165 t166)) +(step t168 (cl @p_1159 @p_1323) :rule or :premises (t155)) +(step t169 (cl @p_1323) :rule resolution :premises (t168 t125)) +(step t170 (cl @p_1185) :rule resolution :premises (t150 t169)) +(step t171 (cl @p_1168) :rule resolution :premises (t132 t170)) +(step t172 (cl @p_1324 (! (not @p_842) :named @p_1676) (not @p_1325)) :rule and_neg) +(step t173 (cl @p_1159 @p_1326) :rule or :premises (t156)) +(step t174 (cl @p_1326) :rule resolution :premises (t173 t125)) +(step t175 (cl @p_1327 (! (not @p_1328) :named @p_1669) (not @p_1329)) :rule and_neg) +(step t176 (cl @p_1159 @p_1330) :rule or :premises (t157)) +(step t177 (cl @p_1330) :rule resolution :premises (t176 t125)) +(step t178 (cl @p_1331 (not @p_1332) (not @p_1333)) :rule and_neg) +(step t179 (cl @p_1159 @p_1334) :rule or :premises (t158)) +(step t180 (cl @p_1334) :rule resolution :premises (t179 t125)) +(step t181 (cl @p_1287 (not @p_1198)) :rule or_neg) +(step t182 (cl @p_1296 @p_1292 @p_1198) :rule equiv_neg2) +(step t183 (cl @p_1306 (not @p_1296) (not @p_1297)) :rule and_neg) +(step t184 (cl @p_1287 (not @p_1306)) :rule or_neg) +(step t185 (cl (! (not @p_1208) :named @p_1337) (! (not @p_726) :named @p_1338) @p_720) :rule equiv_pos2) +(step t186 (cl (! (not @p_1316) :named @p_1335) @p_1208) :rule and_pos) +(step t187 (cl @p_1335 @p_1309) :rule and_pos) +(step t188 (cl (! (not @p_1317) :named @p_1339) @p_720 @p_1316) :rule or_pos) +(step t189 (cl @p_1336 (not @p_1287) @p_1317) :rule implies_pos) +(step t190 (cl @p_1320 @p_1318) :rule or :premises (t167)) +(step t191 (cl @p_1337 @p_1338) :rule resolution :premises (t185 t122)) +(step t192 (cl @p_1339 @p_1316) :rule resolution :premises (t188 t122)) +(step t193 (cl @p_1318) :rule resolution :premises (t190 t118)) +(step t194 (cl @p_1187 @p_1340) :rule or :premises (t152)) +(step t195 (cl (or (! (not @p_1340) :named @p_1341) (! (or @p_1198 (! (not @p_1292) :named @p_1346) @p_1198) :named @p_1342))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk13) (:= veriT_vr104 veriT_sk14))) +(step t196 (cl @p_1341 @p_1342) :rule or :premises (t195)) +(step t197 (cl (! (or @p_1187 @p_1342) :named @p_1344) (! (not @p_1187) :named @p_1343)) :rule or_neg) +(step t198 (cl (not @p_1343) @p_1155) :rule not_not) +(step t199 (cl @p_1344 @p_1155) :rule th_resolution :premises (t198 t197)) +(step t200 (cl @p_1344 (! (not @p_1342) :named @p_1345)) :rule or_neg) +(step t201 (cl @p_1344) :rule th_resolution :premises (t194 t196 t199 t200)) +(anchor :step t202) +(assume t202.h1 @p_1342) +(step t202.t2 (cl (! (= @p_1342 (! (or @p_1198 @p_1346) :named @p_1347)) :named @p_1348)) :rule ac_simp) +(step t202.t3 (cl (not @p_1348) @p_1345 @p_1347) :rule equiv_pos2) +(step t202.t4 (cl @p_1347) :rule th_resolution :premises (t202.h1 t202.t2 t202.t3)) +(step t202 (cl @p_1345 @p_1347) :rule subproof :discharge (h1)) +(step t203 (cl @p_1187 @p_1342) :rule or :premises (t201)) +(step t204 (cl (! (or @p_1187 @p_1347) :named @p_1349) @p_1343) :rule or_neg) +(step t205 (cl @p_1349 @p_1155) :rule th_resolution :premises (t198 t204)) +(step t206 (cl @p_1349 (! (not @p_1347) :named @p_1350)) :rule or_neg) +(step t207 (cl @p_1349) :rule th_resolution :premises (t203 t202 t205 t206)) +(step t208 (cl @p_1350 @p_1198 @p_1346) :rule or_pos) +(step t209 (cl @p_1187 @p_1347) :rule or :premises (t207)) +(step t210 (cl @p_1347) :rule resolution :premises (t209 t120)) +(step t211 (cl @p_1187 @p_1351) :rule or :premises (t153)) +(step t212 (cl @p_1187 @p_1352) :rule or :premises (t154)) +(step t213 (cl (or @p_1163 (! (not (! (and @p_1328 (! (is_res$b @p_1353 @p_747) :named @p_1670)) :named @p_1668)) :named @p_1671))) :rule forall_inst :args ((:= veriT_vr111 veriT_sk9) (:= veriT_vr112 veriT_sk10))) +(step t214 (cl (or (! (not @p_1309) :named @p_1354) (! (= @p_822 @p_1328) :named @p_1672))) :rule forall_inst :args ((:= veriT_vr128 veriT_sk9) (:= veriT_vr129 veriT_sk10))) +(step t215 (cl (or @p_1354 (! (= @p_784 @p_1332) :named @p_1673))) :rule forall_inst :args ((:= veriT_vr128 veriT_sk3) (:= veriT_vr129 veriT_sk4))) +(step t216 (cl (or @p_1354 (! (= (! (is_res$a @p_714 @p_841) :named @p_1675) @p_842) :named @p_1674))) :rule forall_inst :args ((:= veriT_vr128 veriT_sk11) (:= veriT_vr129 veriT_sk12))) +(step t217 (cl (or @p_1187 (! (or @p_1198 (! (and @p_1296 (! (forall ((veriT_vr105 B$) (veriT_vr106 C$)) (! (= (! (is_res$ @p_1199 @p_1087) :named @p_1359) (! (is_res$ @p_1206 @p_1087) :named @p_1364)) :named @p_1366)) :named @p_1357)) :named @p_1368)) :named @p_1355))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk13) (:= veriT_vr104 veriT_sk14))) +(anchor :step t218) +(assume t218.h1 @p_1355) +(anchor :step t218.t2 :args ((:= (veriT_vr105 B$) veriT_vr148) (:= (veriT_vr106 C$) veriT_vr149))) +(step t218.t2.t1 (cl (! (= veriT_vr105 veriT_vr148) :named @p_1361)) :rule refl) +(step t218.t2.t2 (cl (! (= veriT_vr106 veriT_vr149) :named @p_1362)) :rule refl) +(step t218.t2.t3 (cl (! (= @p_1087 (! (pair$ veriT_vr148 veriT_vr149) :named @p_1358)) :named @p_1363)) :rule cong :premises (t218.t2.t1 t218.t2.t2)) +(step t218.t2.t4 (cl (= @p_1359 (! (is_res$ @p_1199 @p_1358) :named @p_1360))) :rule cong :premises (t218.t2.t3)) +(step t218.t2.t5 (cl @p_1361) :rule refl) +(step t218.t2.t6 (cl @p_1362) :rule refl) +(step t218.t2.t7 (cl @p_1363) :rule cong :premises (t218.t2.t5 t218.t2.t6)) +(step t218.t2.t8 (cl (= @p_1364 (! (is_res$ @p_1206 @p_1358) :named @p_1365))) :rule cong :premises (t218.t2.t7)) +(step t218.t2.t9 (cl (= @p_1366 (! (= @p_1360 @p_1365) :named @p_1367))) :rule cong :premises (t218.t2.t4 t218.t2.t8)) +(step t218.t2 (cl (= @p_1357 (! (forall ((veriT_vr148 B$) (veriT_vr149 C$)) @p_1367) :named @p_1369))) :rule bind) +(step t218.t3 (cl (= @p_1368 (! (and @p_1296 @p_1369) :named @p_1370))) :rule cong :premises (t218.t2)) +(step t218.t4 (cl (! (= @p_1355 (! (or @p_1198 @p_1370) :named @p_1373)) :named @p_1371)) :rule cong :premises (t218.t3)) +(step t218.t5 (cl (not @p_1371) (! (not @p_1355) :named @p_1372) @p_1373) :rule equiv_pos2) +(step t218.t6 (cl @p_1373) :rule th_resolution :premises (t218.h1 t218.t4 t218.t5)) +(anchor :step t218.t7 :args ((:= (veriT_vr148 B$) veriT_vr150) (:= (veriT_vr149 C$) veriT_vr151))) +(step t218.t7.t1 (cl (! (= veriT_vr148 veriT_vr150) :named @p_1376)) :rule refl) +(step t218.t7.t2 (cl (! (= veriT_vr149 veriT_vr151) :named @p_1377)) :rule refl) +(step t218.t7.t3 (cl (! (= @p_1358 (! (pair$ veriT_vr150 veriT_vr151) :named @p_1356)) :named @p_1378)) :rule cong :premises (t218.t7.t1 t218.t7.t2)) +(step t218.t7.t4 (cl (= @p_1360 (! (is_res$ @p_1199 @p_1356) :named @p_1375))) :rule cong :premises (t218.t7.t3)) +(step t218.t7.t5 (cl @p_1376) :rule refl) +(step t218.t7.t6 (cl @p_1377) :rule refl) +(step t218.t7.t7 (cl @p_1378) :rule cong :premises (t218.t7.t5 t218.t7.t6)) +(step t218.t7.t8 (cl (= @p_1365 (! (is_res$ @p_1206 @p_1356) :named @p_1379))) :rule cong :premises (t218.t7.t7)) +(step t218.t7.t9 (cl (= @p_1367 (! (= @p_1375 @p_1379) :named @p_1380))) :rule cong :premises (t218.t7.t4 t218.t7.t8)) +(step t218.t7 (cl (= @p_1369 (! (forall ((veriT_vr150 B$) (veriT_vr151 C$)) @p_1380) :named @p_1374))) :rule bind) +(step t218.t8 (cl (= @p_1370 (! (and @p_1296 @p_1374) :named @p_1381))) :rule cong :premises (t218.t7)) +(step t218.t9 (cl (! (= @p_1373 (! (or @p_1198 @p_1381) :named @p_1382)) :named @p_1383)) :rule cong :premises (t218.t8)) +(step t218.t10 (cl (not @p_1383) (not @p_1373) @p_1382) :rule equiv_pos2) +(step t218.t11 (cl @p_1382) :rule th_resolution :premises (t218.t6 t218.t9 t218.t10)) +(step t218 (cl @p_1372 @p_1382) :rule subproof :discharge (h1)) +(step t219 (cl @p_1187 @p_1355) :rule or :premises (t217)) +(step t220 (cl (! (or @p_1187 @p_1382) :named @p_1384) @p_1343) :rule or_neg) +(step t221 (cl @p_1384 @p_1155) :rule th_resolution :premises (t198 t220)) +(step t222 (cl @p_1384 (! (not @p_1382) :named @p_1677)) :rule or_neg) +(step t223 (cl @p_1384) :rule th_resolution :premises (t219 t218 t221 t222)) +(step t224 (cl (or @p_1385 (! (=> (! (forall ((veriT_vr97 A$) (veriT_vr98 C$)) (! (or (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk0 veriT_vr97) :named @p_1417) veriT_vr98) :named @p_1388)) :named @p_1386) (! (and (! (= (! (is_fail$ (! (run$ (! (fun_app$ veriT_sk1 veriT_vr97) :named @p_1420) veriT_vr98) :named @p_1387)) :named @p_1423) @p_1386) :named @p_1428) (! (forall ((veriT_vr99 B$) (veriT_vr100 C$)) (! (= (! (is_res$ @p_1387 @p_1035) :named @p_1434) (! (is_res$ @p_1388 @p_1035) :named @p_1439)) :named @p_1441)) :named @p_1430)) :named @p_1443)) :named @p_1445)) :named @p_1412) (! (or @p_1333 (! (and (! (= @p_789 @p_1333) :named @p_1410) (! (forall ((veriT_vr93 F$) (veriT_vr102 D$)) (! (= (! (is_res$b @p_788 @p_1039) :named @p_1449) (! (is_res$b @p_1389 @p_1039) :named @p_1454)) :named @p_1456)) :named @p_1447)) :named @p_1458)) :named @p_1460)) :named @p_1390))) :rule forall_inst :args ((:= veriT_vr94 veriT_sk3) (:= veriT_vr95 veriT_sk0) (:= veriT_vr96 veriT_sk1) (:= veriT_vr101 veriT_sk4))) +(anchor :step t225) +(assume t225.h1 @p_1390) +(anchor :step t225.t2 :args ((:= (veriT_vr97 A$) veriT_vr165) (:= (veriT_vr98 C$) veriT_vr166))) +(step t225.t2.t1 (cl (! (= veriT_vr97 veriT_vr165) :named @p_1419)) :rule refl) +(step t225.t2.t2 (cl (! (= @p_1417 (! (fun_app$ veriT_sk0 veriT_vr165) :named @p_1418)) :named @p_1425)) :rule cong :premises (t225.t2.t1)) +(step t225.t2.t3 (cl (! (= veriT_vr98 veriT_vr166) :named @p_1422)) :rule refl) +(step t225.t2.t4 (cl (! (= @p_1388 (! (run$ @p_1418 veriT_vr166) :named @p_1415)) :named @p_1426)) :rule cong :premises (t225.t2.t2 t225.t2.t3)) +(step t225.t2.t5 (cl (! (= @p_1386 (! (is_fail$ @p_1415) :named @p_1413)) :named @p_1427)) :rule cong :premises (t225.t2.t4)) +(step t225.t2.t6 (cl @p_1419) :rule refl) +(step t225.t2.t7 (cl (! (= @p_1420 (! (fun_app$ veriT_sk1 veriT_vr165) :named @p_1421)) :named @p_1432)) :rule cong :premises (t225.t2.t6)) +(step t225.t2.t8 (cl @p_1422) :rule refl) +(step t225.t2.t9 (cl (! (= @p_1387 (! (run$ @p_1421 veriT_vr166) :named @p_1414)) :named @p_1433)) :rule cong :premises (t225.t2.t7 t225.t2.t8)) +(step t225.t2.t10 (cl (= @p_1423 (! (is_fail$ @p_1414) :named @p_1424))) :rule cong :premises (t225.t2.t9)) +(step t225.t2.t11 (cl @p_1419) :rule refl) +(step t225.t2.t12 (cl @p_1425) :rule cong :premises (t225.t2.t11)) +(step t225.t2.t13 (cl @p_1422) :rule refl) +(step t225.t2.t14 (cl @p_1426) :rule cong :premises (t225.t2.t12 t225.t2.t13)) +(step t225.t2.t15 (cl @p_1427) :rule cong :premises (t225.t2.t14)) +(step t225.t2.t16 (cl (= @p_1428 (! (= @p_1424 @p_1413) :named @p_1429))) :rule cong :premises (t225.t2.t10 t225.t2.t15)) +(anchor :step t225.t2.t17 :args ((:= (veriT_vr99 B$) veriT_vr167) (:= (veriT_vr100 C$) veriT_vr168))) +(step t225.t2.t17.t1 (cl @p_1419) :rule refl) +(step t225.t2.t17.t2 (cl @p_1432) :rule cong :premises (t225.t2.t17.t1)) +(step t225.t2.t17.t3 (cl @p_1422) :rule refl) +(step t225.t2.t17.t4 (cl @p_1433) :rule cong :premises (t225.t2.t17.t2 t225.t2.t17.t3)) +(step t225.t2.t17.t5 (cl (! (= veriT_vr99 veriT_vr167) :named @p_1436)) :rule refl) +(step t225.t2.t17.t6 (cl (! (= veriT_vr100 veriT_vr168) :named @p_1437)) :rule refl) +(step t225.t2.t17.t7 (cl (! (= @p_1035 (! (pair$ veriT_vr167 veriT_vr168) :named @p_1416)) :named @p_1438)) :rule cong :premises (t225.t2.t17.t5 t225.t2.t17.t6)) +(step t225.t2.t17.t8 (cl (= @p_1434 (! (is_res$ @p_1414 @p_1416) :named @p_1435))) :rule cong :premises (t225.t2.t17.t4 t225.t2.t17.t7)) +(step t225.t2.t17.t9 (cl @p_1419) :rule refl) +(step t225.t2.t17.t10 (cl @p_1425) :rule cong :premises (t225.t2.t17.t9)) +(step t225.t2.t17.t11 (cl @p_1422) :rule refl) +(step t225.t2.t17.t12 (cl @p_1426) :rule cong :premises (t225.t2.t17.t10 t225.t2.t17.t11)) +(step t225.t2.t17.t13 (cl @p_1436) :rule refl) +(step t225.t2.t17.t14 (cl @p_1437) :rule refl) +(step t225.t2.t17.t15 (cl @p_1438) :rule cong :premises (t225.t2.t17.t13 t225.t2.t17.t14)) +(step t225.t2.t17.t16 (cl (= @p_1439 (! (is_res$ @p_1415 @p_1416) :named @p_1440))) :rule cong :premises (t225.t2.t17.t12 t225.t2.t17.t15)) +(step t225.t2.t17.t17 (cl (= @p_1441 (! (= @p_1435 @p_1440) :named @p_1442))) :rule cong :premises (t225.t2.t17.t8 t225.t2.t17.t16)) +(step t225.t2.t17 (cl (= @p_1430 (! (forall ((veriT_vr167 B$) (veriT_vr168 C$)) @p_1442) :named @p_1431))) :rule bind) +(step t225.t2.t18 (cl (= @p_1443 (! (and @p_1429 @p_1431) :named @p_1444))) :rule cong :premises (t225.t2.t16 t225.t2.t17)) +(step t225.t2.t19 (cl (= @p_1445 (! (or @p_1413 @p_1444) :named @p_1446))) :rule cong :premises (t225.t2.t5 t225.t2.t18)) +(step t225.t2 (cl (= @p_1412 (! (forall ((veriT_vr165 A$) (veriT_vr166 C$)) @p_1446) :named @p_1462))) :rule bind) +(anchor :step t225.t3 :args ((:= (veriT_vr93 F$) veriT_vr169) (:= (veriT_vr102 D$) veriT_vr170))) +(step t225.t3.t1 (cl (! (= veriT_vr93 veriT_vr169) :named @p_1451)) :rule refl) +(step t225.t3.t2 (cl (! (= veriT_vr102 veriT_vr170) :named @p_1452)) :rule refl) +(step t225.t3.t3 (cl (! (= @p_1039 (! (pair$b veriT_vr169 veriT_vr170) :named @p_1448)) :named @p_1453)) :rule cong :premises (t225.t3.t1 t225.t3.t2)) +(step t225.t3.t4 (cl (= @p_1449 (! (is_res$b @p_788 @p_1448) :named @p_1450))) :rule cong :premises (t225.t3.t3)) +(step t225.t3.t5 (cl @p_1451) :rule refl) +(step t225.t3.t6 (cl @p_1452) :rule refl) +(step t225.t3.t7 (cl @p_1453) :rule cong :premises (t225.t3.t5 t225.t3.t6)) +(step t225.t3.t8 (cl (= @p_1454 (! (is_res$b @p_1389 @p_1448) :named @p_1455))) :rule cong :premises (t225.t3.t7)) +(step t225.t3.t9 (cl (= @p_1456 (! (= @p_1450 @p_1455) :named @p_1457))) :rule cong :premises (t225.t3.t4 t225.t3.t8)) +(step t225.t3 (cl (= @p_1447 (! (forall ((veriT_vr169 F$) (veriT_vr170 D$)) @p_1457) :named @p_1459))) :rule bind) +(step t225.t4 (cl (= @p_1458 (! (and @p_1410 @p_1459) :named @p_1461))) :rule cong :premises (t225.t3)) +(step t225.t5 (cl (= @p_1460 (! (or @p_1333 @p_1461) :named @p_1463))) :rule cong :premises (t225.t4)) +(step t225.t6 (cl (! (= @p_1390 (! (=> @p_1462 @p_1463) :named @p_1466)) :named @p_1464)) :rule cong :premises (t225.t2 t225.t5)) +(step t225.t7 (cl (not @p_1464) (! (not @p_1390) :named @p_1465) @p_1466) :rule equiv_pos2) +(step t225.t8 (cl @p_1466) :rule th_resolution :premises (t225.h1 t225.t6 t225.t7)) +(anchor :step t225.t9 :args ((:= (veriT_vr165 A$) veriT_vr171) (:= (veriT_vr166 C$) veriT_vr172))) +(step t225.t9.t1 (cl (! (= veriT_vr165 veriT_vr171) :named @p_1469)) :rule refl) +(step t225.t9.t2 (cl (! (= @p_1418 @p_1468) :named @p_1473)) :rule cong :premises (t225.t9.t1)) +(step t225.t9.t3 (cl (! (= veriT_vr166 veriT_vr172) :named @p_1471)) :rule refl) +(step t225.t9.t4 (cl (! (= @p_1415 @p_1393) :named @p_1474)) :rule cong :premises (t225.t9.t2 t225.t9.t3)) +(step t225.t9.t5 (cl (! (= @p_1413 @p_1391) :named @p_1475)) :rule cong :premises (t225.t9.t4)) +(step t225.t9.t6 (cl @p_1469) :rule refl) +(step t225.t9.t7 (cl (! (= @p_1421 @p_1470) :named @p_1478)) :rule cong :premises (t225.t9.t6)) +(step t225.t9.t8 (cl @p_1471) :rule refl) +(step t225.t9.t9 (cl (! (= @p_1414 @p_1392) :named @p_1479)) :rule cong :premises (t225.t9.t7 t225.t9.t8)) +(step t225.t9.t10 (cl (= @p_1424 @p_1472)) :rule cong :premises (t225.t9.t9)) +(step t225.t9.t11 (cl @p_1469) :rule refl) +(step t225.t9.t12 (cl @p_1473) :rule cong :premises (t225.t9.t11)) +(step t225.t9.t13 (cl @p_1471) :rule refl) +(step t225.t9.t14 (cl @p_1474) :rule cong :premises (t225.t9.t12 t225.t9.t13)) +(step t225.t9.t15 (cl @p_1475) :rule cong :premises (t225.t9.t14)) +(step t225.t9.t16 (cl (= @p_1429 @p_1476)) :rule cong :premises (t225.t9.t10 t225.t9.t15)) +(anchor :step t225.t9.t17 :args ((:= (veriT_vr167 B$) veriT_vr173) (:= (veriT_vr168 C$) veriT_vr174))) +(step t225.t9.t17.t1 (cl @p_1469) :rule refl) +(step t225.t9.t17.t2 (cl @p_1478) :rule cong :premises (t225.t9.t17.t1)) +(step t225.t9.t17.t3 (cl @p_1471) :rule refl) +(step t225.t9.t17.t4 (cl @p_1479) :rule cong :premises (t225.t9.t17.t2 t225.t9.t17.t3)) +(step t225.t9.t17.t5 (cl (! (= veriT_vr167 veriT_vr173) :named @p_1481)) :rule refl) +(step t225.t9.t17.t6 (cl (! (= veriT_vr168 veriT_vr174) :named @p_1482)) :rule refl) +(step t225.t9.t17.t7 (cl (! (= @p_1416 @p_1394) :named @p_1483)) :rule cong :premises (t225.t9.t17.t5 t225.t9.t17.t6)) +(step t225.t9.t17.t8 (cl (= @p_1435 @p_1480)) :rule cong :premises (t225.t9.t17.t4 t225.t9.t17.t7)) +(step t225.t9.t17.t9 (cl @p_1469) :rule refl) +(step t225.t9.t17.t10 (cl @p_1473) :rule cong :premises (t225.t9.t17.t9)) +(step t225.t9.t17.t11 (cl @p_1471) :rule refl) +(step t225.t9.t17.t12 (cl @p_1474) :rule cong :premises (t225.t9.t17.t10 t225.t9.t17.t11)) +(step t225.t9.t17.t13 (cl @p_1481) :rule refl) +(step t225.t9.t17.t14 (cl @p_1482) :rule refl) +(step t225.t9.t17.t15 (cl @p_1483) :rule cong :premises (t225.t9.t17.t13 t225.t9.t17.t14)) +(step t225.t9.t17.t16 (cl (= @p_1440 @p_1484)) :rule cong :premises (t225.t9.t17.t12 t225.t9.t17.t15)) +(step t225.t9.t17.t17 (cl (= @p_1442 @p_1485)) :rule cong :premises (t225.t9.t17.t8 t225.t9.t17.t16)) +(step t225.t9.t17 (cl (= @p_1431 @p_1477)) :rule bind) +(step t225.t9.t18 (cl (= @p_1444 @p_1486)) :rule cong :premises (t225.t9.t16 t225.t9.t17)) +(step t225.t9.t19 (cl (= @p_1446 @p_1467)) :rule cong :premises (t225.t9.t5 t225.t9.t18)) +(step t225.t9 (cl (= @p_1462 (! (forall ((veriT_vr171 A$) (veriT_vr172 C$)) @p_1467) :named @p_1496))) :rule bind) +(anchor :step t225.t10 :args ((:= (veriT_vr169 F$) veriT_vr175) (:= (veriT_vr170 D$) veriT_vr176))) +(step t225.t10.t1 (cl (! (= veriT_vr169 veriT_vr175) :named @p_1489)) :rule refl) +(step t225.t10.t2 (cl (! (= veriT_vr170 veriT_vr176) :named @p_1490)) :rule refl) +(step t225.t10.t3 (cl (! (= @p_1448 (! (pair$b veriT_vr175 veriT_vr176) :named @p_1487)) :named @p_1491)) :rule cong :premises (t225.t10.t1 t225.t10.t2)) +(step t225.t10.t4 (cl (= @p_1450 (! (is_res$b @p_788 @p_1487) :named @p_1488))) :rule cong :premises (t225.t10.t3)) +(step t225.t10.t5 (cl @p_1489) :rule refl) +(step t225.t10.t6 (cl @p_1490) :rule refl) +(step t225.t10.t7 (cl @p_1491) :rule cong :premises (t225.t10.t5 t225.t10.t6)) +(step t225.t10.t8 (cl (= @p_1455 (! (is_res$b @p_1389 @p_1487) :named @p_1492))) :rule cong :premises (t225.t10.t7)) +(step t225.t10.t9 (cl (= @p_1457 (! (= @p_1488 @p_1492) :named @p_1493))) :rule cong :premises (t225.t10.t4 t225.t10.t8)) +(step t225.t10 (cl (= @p_1459 (! (forall ((veriT_vr175 F$) (veriT_vr176 D$)) @p_1493) :named @p_1494))) :rule bind) +(step t225.t11 (cl (= @p_1461 (! (and @p_1410 @p_1494) :named @p_1495))) :rule cong :premises (t225.t10)) +(step t225.t12 (cl (= @p_1463 (! (or @p_1333 @p_1495) :named @p_1497))) :rule cong :premises (t225.t11)) +(step t225.t13 (cl (! (= @p_1466 (! (=> @p_1496 @p_1497) :named @p_1499)) :named @p_1498)) :rule cong :premises (t225.t9 t225.t12)) +(step t225.t14 (cl (not @p_1498) (not @p_1466) @p_1499) :rule equiv_pos2) +(step t225.t15 (cl @p_1499) :rule th_resolution :premises (t225.t8 t225.t13 t225.t14)) +(anchor :step t225.t16 :args ((:= (veriT_vr171 A$) veriT_sk25) (:= (veriT_vr172 C$) veriT_sk26))) +(step t225.t16.t1 (cl (! (= veriT_vr171 veriT_sk25) :named @p_1502)) :rule refl) +(step t225.t16.t2 (cl (! (= @p_1468 (! (fun_app$ veriT_sk0 veriT_sk25) :named @p_1501)) :named @p_1506)) :rule cong :premises (t225.t16.t1)) +(step t225.t16.t3 (cl (! (= veriT_vr172 veriT_sk26) :named @p_1504)) :rule refl) +(step t225.t16.t4 (cl (! (= @p_1393 (! (run$ @p_1501 veriT_sk26) :named @p_1408)) :named @p_1507)) :rule cong :premises (t225.t16.t2 t225.t16.t3)) +(step t225.t16.t5 (cl (! (= @p_1391 (! (is_fail$ @p_1408) :named @p_1400)) :named @p_1508)) :rule cong :premises (t225.t16.t4)) +(step t225.t16.t6 (cl @p_1502) :rule refl) +(step t225.t16.t7 (cl (! (= @p_1470 (! (fun_app$ veriT_sk1 veriT_sk25) :named @p_1503)) :named @p_1511)) :rule cong :premises (t225.t16.t6)) +(step t225.t16.t8 (cl @p_1504) :rule refl) +(step t225.t16.t9 (cl (! (= @p_1392 (! (run$ @p_1503 veriT_sk26) :named @p_1401)) :named @p_1512)) :rule cong :premises (t225.t16.t7 t225.t16.t8)) +(step t225.t16.t10 (cl (= @p_1472 (! (is_fail$ @p_1401) :named @p_1505))) :rule cong :premises (t225.t16.t9)) +(step t225.t16.t11 (cl @p_1502) :rule refl) +(step t225.t16.t12 (cl @p_1506) :rule cong :premises (t225.t16.t11)) +(step t225.t16.t13 (cl @p_1504) :rule refl) +(step t225.t16.t14 (cl @p_1507) :rule cong :premises (t225.t16.t12 t225.t16.t13)) +(step t225.t16.t15 (cl @p_1508) :rule cong :premises (t225.t16.t14)) +(step t225.t16.t16 (cl (= @p_1476 (! (= @p_1505 @p_1400) :named @p_1509))) :rule cong :premises (t225.t16.t10 t225.t16.t15)) +(anchor :step t225.t16.t17 :args ((:= (veriT_vr173 B$) veriT_sk27) (:= (veriT_vr174 C$) veriT_sk28))) +(step t225.t16.t17.t1 (cl @p_1502) :rule refl) +(step t225.t16.t17.t2 (cl @p_1511) :rule cong :premises (t225.t16.t17.t1)) +(step t225.t16.t17.t3 (cl @p_1504) :rule refl) +(step t225.t16.t17.t4 (cl @p_1512) :rule cong :premises (t225.t16.t17.t2 t225.t16.t17.t3)) +(step t225.t16.t17.t5 (cl (! (= veriT_vr173 veriT_sk27) :named @p_1515)) :rule refl) +(step t225.t16.t17.t6 (cl (! (= veriT_vr174 veriT_sk28) :named @p_1516)) :rule refl) +(step t225.t16.t17.t7 (cl (! (= @p_1394 (! (pair$ veriT_sk27 veriT_sk28) :named @p_1409)) :named @p_1517)) :rule cong :premises (t225.t16.t17.t5 t225.t16.t17.t6)) +(step t225.t16.t17.t8 (cl (= @p_1480 (! (is_res$ @p_1401 @p_1409) :named @p_1514))) :rule cong :premises (t225.t16.t17.t4 t225.t16.t17.t7)) +(step t225.t16.t17.t9 (cl @p_1502) :rule refl) +(step t225.t16.t17.t10 (cl @p_1506) :rule cong :premises (t225.t16.t17.t9)) +(step t225.t16.t17.t11 (cl @p_1504) :rule refl) +(step t225.t16.t17.t12 (cl @p_1507) :rule cong :premises (t225.t16.t17.t10 t225.t16.t17.t11)) +(step t225.t16.t17.t13 (cl @p_1515) :rule refl) +(step t225.t16.t17.t14 (cl @p_1516) :rule refl) +(step t225.t16.t17.t15 (cl @p_1517) :rule cong :premises (t225.t16.t17.t13 t225.t16.t17.t14)) +(step t225.t16.t17.t16 (cl (= @p_1484 (! (is_res$ @p_1408 @p_1409) :named @p_1518))) :rule cong :premises (t225.t16.t17.t12 t225.t16.t17.t15)) +(step t225.t16.t17.t17 (cl (= @p_1485 (! (= @p_1514 @p_1518) :named @p_1510))) :rule cong :premises (t225.t16.t17.t8 t225.t16.t17.t16)) +(step t225.t16.t17 (cl (= @p_1477 @p_1510)) :rule sko_forall) +(step t225.t16.t18 (cl (= @p_1486 (! (and @p_1509 @p_1510) :named @p_1519))) :rule cong :premises (t225.t16.t16 t225.t16.t17)) +(step t225.t16.t19 (cl (= @p_1467 (! (or @p_1400 @p_1519) :named @p_1500))) :rule cong :premises (t225.t16.t5 t225.t16.t18)) +(step t225.t16 (cl (= @p_1496 @p_1500)) :rule sko_forall) +(step t225.t17 (cl (! (= @p_1499 (! (=> @p_1500 @p_1497) :named @p_1521)) :named @p_1520)) :rule cong :premises (t225.t16)) +(step t225.t18 (cl (not @p_1520) (not @p_1499) @p_1521) :rule equiv_pos2) +(step t225.t19 (cl @p_1521) :rule th_resolution :premises (t225.t15 t225.t17 t225.t18)) +(anchor :step t225.t20 :args ((:= (veriT_vr175 F$) veriT_vr177) (:= (veriT_vr176 D$) veriT_vr178))) +(step t225.t20.t1 (cl (! (= veriT_vr175 veriT_vr177) :named @p_1524)) :rule refl) +(step t225.t20.t2 (cl (! (= veriT_vr176 veriT_vr178) :named @p_1525)) :rule refl) +(step t225.t20.t3 (cl (! (= @p_1487 (! (pair$b veriT_vr177 veriT_vr178) :named @p_1411)) :named @p_1526)) :rule cong :premises (t225.t20.t1 t225.t20.t2)) +(step t225.t20.t4 (cl (= @p_1488 (! (is_res$b @p_788 @p_1411) :named @p_1523))) :rule cong :premises (t225.t20.t3)) +(step t225.t20.t5 (cl @p_1524) :rule refl) +(step t225.t20.t6 (cl @p_1525) :rule refl) +(step t225.t20.t7 (cl @p_1526) :rule cong :premises (t225.t20.t5 t225.t20.t6)) +(step t225.t20.t8 (cl (= @p_1492 (! (is_res$b @p_1389 @p_1411) :named @p_1527))) :rule cong :premises (t225.t20.t7)) +(step t225.t20.t9 (cl (= @p_1493 (! (= @p_1523 @p_1527) :named @p_1528))) :rule cong :premises (t225.t20.t4 t225.t20.t8)) +(step t225.t20 (cl (= @p_1494 (! (forall ((veriT_vr177 F$) (veriT_vr178 D$)) @p_1528) :named @p_1522))) :rule bind) +(step t225.t21 (cl (= @p_1495 (! (and @p_1410 @p_1522) :named @p_1529))) :rule cong :premises (t225.t20)) +(step t225.t22 (cl (= @p_1497 (! (or @p_1333 @p_1529) :named @p_1530))) :rule cong :premises (t225.t21)) +(step t225.t23 (cl (! (= @p_1521 (! (=> @p_1500 @p_1530) :named @p_1531)) :named @p_1532)) :rule cong :premises (t225.t22)) +(step t225.t24 (cl (not @p_1532) (not @p_1521) @p_1531) :rule equiv_pos2) +(step t225.t25 (cl @p_1531) :rule th_resolution :premises (t225.t19 t225.t23 t225.t24)) +(step t225 (cl @p_1465 @p_1531) :rule subproof :discharge (h1)) +(step t226 (cl @p_1385 @p_1390) :rule or :premises (t224)) +(step t227 (cl (! (or @p_1385 @p_1531) :named @p_1534) @p_1533) :rule or_neg) +(step t228 (cl @p_1534 @p_1154) :rule th_resolution :premises (t159 t227)) +(step t229 (cl @p_1534 (! (not @p_1531) :named @p_1678)) :rule or_neg) +(step t230 (cl @p_1534) :rule th_resolution :premises (t226 t225 t228 t229)) +(step t231 (cl (or @p_1385 (! (=> @p_1412 (! (or @p_1329 (! (and (! (= (is_fail$b @p_826) @p_1329) :named @p_1555) (! (forall ((veriT_vr93 F$) (veriT_vr102 D$)) (! (= (! (is_res$b @p_826 @p_1039) :named @p_1583) (! (is_res$b @p_1353 @p_1039) :named @p_1588)) :named @p_1590)) :named @p_1581)) :named @p_1592)) :named @p_1594)) :named @p_1535))) :rule forall_inst :args ((:= veriT_vr94 veriT_sk9) (:= veriT_vr95 veriT_sk0) (:= veriT_vr96 veriT_sk1) (:= veriT_vr101 veriT_sk10))) +(anchor :step t232) +(assume t232.h1 @p_1535) +(anchor :step t232.t2 :args ((:= (veriT_vr97 A$) veriT_vr179) (:= (veriT_vr98 C$) veriT_vr180))) +(step t232.t2.t1 (cl (! (= veriT_vr97 veriT_vr179) :named @p_1562)) :rule refl) +(step t232.t2.t2 (cl (! (= @p_1417 (! (fun_app$ veriT_sk0 veriT_vr179) :named @p_1561)) :named @p_1566)) :rule cong :premises (t232.t2.t1)) +(step t232.t2.t3 (cl (! (= veriT_vr98 veriT_vr180) :named @p_1564)) :rule refl) +(step t232.t2.t4 (cl (! (= @p_1388 (! (run$ @p_1561 veriT_vr180) :named @p_1559)) :named @p_1567)) :rule cong :premises (t232.t2.t2 t232.t2.t3)) +(step t232.t2.t5 (cl (! (= @p_1386 (! (is_fail$ @p_1559) :named @p_1557)) :named @p_1568)) :rule cong :premises (t232.t2.t4)) +(step t232.t2.t6 (cl @p_1562) :rule refl) +(step t232.t2.t7 (cl (! (= @p_1420 (! (fun_app$ veriT_sk1 veriT_vr179) :named @p_1563)) :named @p_1571)) :rule cong :premises (t232.t2.t6)) +(step t232.t2.t8 (cl @p_1564) :rule refl) +(step t232.t2.t9 (cl (! (= @p_1387 (! (run$ @p_1563 veriT_vr180) :named @p_1558)) :named @p_1572)) :rule cong :premises (t232.t2.t7 t232.t2.t8)) +(step t232.t2.t10 (cl (= @p_1423 (! (is_fail$ @p_1558) :named @p_1565))) :rule cong :premises (t232.t2.t9)) +(step t232.t2.t11 (cl @p_1562) :rule refl) +(step t232.t2.t12 (cl @p_1566) :rule cong :premises (t232.t2.t11)) +(step t232.t2.t13 (cl @p_1564) :rule refl) +(step t232.t2.t14 (cl @p_1567) :rule cong :premises (t232.t2.t12 t232.t2.t13)) +(step t232.t2.t15 (cl @p_1568) :rule cong :premises (t232.t2.t14)) +(step t232.t2.t16 (cl (= @p_1428 (! (= @p_1565 @p_1557) :named @p_1569))) :rule cong :premises (t232.t2.t10 t232.t2.t15)) +(anchor :step t232.t2.t17 :args ((:= (veriT_vr99 B$) veriT_vr181) (:= (veriT_vr100 C$) veriT_vr182))) +(step t232.t2.t17.t1 (cl @p_1562) :rule refl) +(step t232.t2.t17.t2 (cl @p_1571) :rule cong :premises (t232.t2.t17.t1)) +(step t232.t2.t17.t3 (cl @p_1564) :rule refl) +(step t232.t2.t17.t4 (cl @p_1572) :rule cong :premises (t232.t2.t17.t2 t232.t2.t17.t3)) +(step t232.t2.t17.t5 (cl (! (= veriT_vr99 veriT_vr181) :named @p_1574)) :rule refl) +(step t232.t2.t17.t6 (cl (! (= veriT_vr100 veriT_vr182) :named @p_1575)) :rule refl) +(step t232.t2.t17.t7 (cl (! (= @p_1035 (! (pair$ veriT_vr181 veriT_vr182) :named @p_1560)) :named @p_1576)) :rule cong :premises (t232.t2.t17.t5 t232.t2.t17.t6)) +(step t232.t2.t17.t8 (cl (= @p_1434 (! (is_res$ @p_1558 @p_1560) :named @p_1573))) :rule cong :premises (t232.t2.t17.t4 t232.t2.t17.t7)) +(step t232.t2.t17.t9 (cl @p_1562) :rule refl) +(step t232.t2.t17.t10 (cl @p_1566) :rule cong :premises (t232.t2.t17.t9)) +(step t232.t2.t17.t11 (cl @p_1564) :rule refl) +(step t232.t2.t17.t12 (cl @p_1567) :rule cong :premises (t232.t2.t17.t10 t232.t2.t17.t11)) +(step t232.t2.t17.t13 (cl @p_1574) :rule refl) +(step t232.t2.t17.t14 (cl @p_1575) :rule refl) +(step t232.t2.t17.t15 (cl @p_1576) :rule cong :premises (t232.t2.t17.t13 t232.t2.t17.t14)) +(step t232.t2.t17.t16 (cl (= @p_1439 (! (is_res$ @p_1559 @p_1560) :named @p_1577))) :rule cong :premises (t232.t2.t17.t12 t232.t2.t17.t15)) +(step t232.t2.t17.t17 (cl (= @p_1441 (! (= @p_1573 @p_1577) :named @p_1578))) :rule cong :premises (t232.t2.t17.t8 t232.t2.t17.t16)) +(step t232.t2.t17 (cl (= @p_1430 (! (forall ((veriT_vr181 B$) (veriT_vr182 C$)) @p_1578) :named @p_1570))) :rule bind) +(step t232.t2.t18 (cl (= @p_1443 (! (and @p_1569 @p_1570) :named @p_1579))) :rule cong :premises (t232.t2.t16 t232.t2.t17)) +(step t232.t2.t19 (cl (= @p_1445 (! (or @p_1557 @p_1579) :named @p_1580))) :rule cong :premises (t232.t2.t5 t232.t2.t18)) +(step t232.t2 (cl (= @p_1412 (! (forall ((veriT_vr179 A$) (veriT_vr180 C$)) @p_1580) :named @p_1596))) :rule bind) +(anchor :step t232.t3 :args ((:= (veriT_vr93 F$) veriT_vr183) (:= (veriT_vr102 D$) veriT_vr184))) +(step t232.t3.t1 (cl (! (= veriT_vr93 veriT_vr183) :named @p_1585)) :rule refl) +(step t232.t3.t2 (cl (! (= veriT_vr102 veriT_vr184) :named @p_1586)) :rule refl) +(step t232.t3.t3 (cl (! (= @p_1039 (! (pair$b veriT_vr183 veriT_vr184) :named @p_1582)) :named @p_1587)) :rule cong :premises (t232.t3.t1 t232.t3.t2)) +(step t232.t3.t4 (cl (= @p_1583 (! (is_res$b @p_826 @p_1582) :named @p_1584))) :rule cong :premises (t232.t3.t3)) +(step t232.t3.t5 (cl @p_1585) :rule refl) +(step t232.t3.t6 (cl @p_1586) :rule refl) +(step t232.t3.t7 (cl @p_1587) :rule cong :premises (t232.t3.t5 t232.t3.t6)) +(step t232.t3.t8 (cl (= @p_1588 (! (is_res$b @p_1353 @p_1582) :named @p_1589))) :rule cong :premises (t232.t3.t7)) +(step t232.t3.t9 (cl (= @p_1590 (! (= @p_1584 @p_1589) :named @p_1591))) :rule cong :premises (t232.t3.t4 t232.t3.t8)) +(step t232.t3 (cl (= @p_1581 (! (forall ((veriT_vr183 F$) (veriT_vr184 D$)) @p_1591) :named @p_1593))) :rule bind) +(step t232.t4 (cl (= @p_1592 (! (and @p_1555 @p_1593) :named @p_1595))) :rule cong :premises (t232.t3)) +(step t232.t5 (cl (= @p_1594 (! (or @p_1329 @p_1595) :named @p_1597))) :rule cong :premises (t232.t4)) +(step t232.t6 (cl (! (= @p_1535 (! (=> @p_1596 @p_1597) :named @p_1600)) :named @p_1598)) :rule cong :premises (t232.t2 t232.t5)) +(step t232.t7 (cl (not @p_1598) (! (not @p_1535) :named @p_1599) @p_1600) :rule equiv_pos2) +(step t232.t8 (cl @p_1600) :rule th_resolution :premises (t232.h1 t232.t6 t232.t7)) +(anchor :step t232.t9 :args ((:= (veriT_vr179 A$) veriT_vr185) (:= (veriT_vr180 C$) veriT_vr186))) +(step t232.t9.t1 (cl (! (= veriT_vr179 veriT_vr185) :named @p_1603)) :rule refl) +(step t232.t9.t2 (cl (! (= @p_1561 @p_1602) :named @p_1607)) :rule cong :premises (t232.t9.t1)) +(step t232.t9.t3 (cl (! (= veriT_vr180 veriT_vr186) :named @p_1605)) :rule refl) +(step t232.t9.t4 (cl (! (= @p_1559 @p_1538) :named @p_1608)) :rule cong :premises (t232.t9.t2 t232.t9.t3)) +(step t232.t9.t5 (cl (! (= @p_1557 @p_1536) :named @p_1609)) :rule cong :premises (t232.t9.t4)) +(step t232.t9.t6 (cl @p_1603) :rule refl) +(step t232.t9.t7 (cl (! (= @p_1563 @p_1604) :named @p_1612)) :rule cong :premises (t232.t9.t6)) +(step t232.t9.t8 (cl @p_1605) :rule refl) +(step t232.t9.t9 (cl (! (= @p_1558 @p_1537) :named @p_1613)) :rule cong :premises (t232.t9.t7 t232.t9.t8)) +(step t232.t9.t10 (cl (= @p_1565 @p_1606)) :rule cong :premises (t232.t9.t9)) +(step t232.t9.t11 (cl @p_1603) :rule refl) +(step t232.t9.t12 (cl @p_1607) :rule cong :premises (t232.t9.t11)) +(step t232.t9.t13 (cl @p_1605) :rule refl) +(step t232.t9.t14 (cl @p_1608) :rule cong :premises (t232.t9.t12 t232.t9.t13)) +(step t232.t9.t15 (cl @p_1609) :rule cong :premises (t232.t9.t14)) +(step t232.t9.t16 (cl (= @p_1569 @p_1610)) :rule cong :premises (t232.t9.t10 t232.t9.t15)) +(anchor :step t232.t9.t17 :args ((:= (veriT_vr181 B$) veriT_vr187) (:= (veriT_vr182 C$) veriT_vr188))) +(step t232.t9.t17.t1 (cl @p_1603) :rule refl) +(step t232.t9.t17.t2 (cl @p_1612) :rule cong :premises (t232.t9.t17.t1)) +(step t232.t9.t17.t3 (cl @p_1605) :rule refl) +(step t232.t9.t17.t4 (cl @p_1613) :rule cong :premises (t232.t9.t17.t2 t232.t9.t17.t3)) +(step t232.t9.t17.t5 (cl (! (= veriT_vr181 veriT_vr187) :named @p_1615)) :rule refl) +(step t232.t9.t17.t6 (cl (! (= veriT_vr182 veriT_vr188) :named @p_1616)) :rule refl) +(step t232.t9.t17.t7 (cl (! (= @p_1560 @p_1539) :named @p_1617)) :rule cong :premises (t232.t9.t17.t5 t232.t9.t17.t6)) +(step t232.t9.t17.t8 (cl (= @p_1573 @p_1614)) :rule cong :premises (t232.t9.t17.t4 t232.t9.t17.t7)) +(step t232.t9.t17.t9 (cl @p_1603) :rule refl) +(step t232.t9.t17.t10 (cl @p_1607) :rule cong :premises (t232.t9.t17.t9)) +(step t232.t9.t17.t11 (cl @p_1605) :rule refl) +(step t232.t9.t17.t12 (cl @p_1608) :rule cong :premises (t232.t9.t17.t10 t232.t9.t17.t11)) +(step t232.t9.t17.t13 (cl @p_1615) :rule refl) +(step t232.t9.t17.t14 (cl @p_1616) :rule refl) +(step t232.t9.t17.t15 (cl @p_1617) :rule cong :premises (t232.t9.t17.t13 t232.t9.t17.t14)) +(step t232.t9.t17.t16 (cl (= @p_1577 @p_1618)) :rule cong :premises (t232.t9.t17.t12 t232.t9.t17.t15)) +(step t232.t9.t17.t17 (cl (= @p_1578 @p_1619)) :rule cong :premises (t232.t9.t17.t8 t232.t9.t17.t16)) +(step t232.t9.t17 (cl (= @p_1570 @p_1611)) :rule bind) +(step t232.t9.t18 (cl (= @p_1579 @p_1620)) :rule cong :premises (t232.t9.t16 t232.t9.t17)) +(step t232.t9.t19 (cl (= @p_1580 @p_1601)) :rule cong :premises (t232.t9.t5 t232.t9.t18)) +(step t232.t9 (cl (= @p_1596 (! (forall ((veriT_vr185 A$) (veriT_vr186 C$)) @p_1601) :named @p_1630))) :rule bind) +(anchor :step t232.t10 :args ((:= (veriT_vr183 F$) veriT_vr189) (:= (veriT_vr184 D$) veriT_vr190))) +(step t232.t10.t1 (cl (! (= veriT_vr183 veriT_vr189) :named @p_1623)) :rule refl) +(step t232.t10.t2 (cl (! (= veriT_vr184 veriT_vr190) :named @p_1624)) :rule refl) +(step t232.t10.t3 (cl (! (= @p_1582 (! (pair$b veriT_vr189 veriT_vr190) :named @p_1621)) :named @p_1625)) :rule cong :premises (t232.t10.t1 t232.t10.t2)) +(step t232.t10.t4 (cl (= @p_1584 (! (is_res$b @p_826 @p_1621) :named @p_1622))) :rule cong :premises (t232.t10.t3)) +(step t232.t10.t5 (cl @p_1623) :rule refl) +(step t232.t10.t6 (cl @p_1624) :rule refl) +(step t232.t10.t7 (cl @p_1625) :rule cong :premises (t232.t10.t5 t232.t10.t6)) +(step t232.t10.t8 (cl (= @p_1589 (! (is_res$b @p_1353 @p_1621) :named @p_1626))) :rule cong :premises (t232.t10.t7)) +(step t232.t10.t9 (cl (= @p_1591 (! (= @p_1622 @p_1626) :named @p_1627))) :rule cong :premises (t232.t10.t4 t232.t10.t8)) +(step t232.t10 (cl (= @p_1593 (! (forall ((veriT_vr189 F$) (veriT_vr190 D$)) @p_1627) :named @p_1628))) :rule bind) +(step t232.t11 (cl (= @p_1595 (! (and @p_1555 @p_1628) :named @p_1629))) :rule cong :premises (t232.t10)) +(step t232.t12 (cl (= @p_1597 (! (or @p_1329 @p_1629) :named @p_1631))) :rule cong :premises (t232.t11)) +(step t232.t13 (cl (! (= @p_1600 (! (=> @p_1630 @p_1631) :named @p_1633)) :named @p_1632)) :rule cong :premises (t232.t9 t232.t12)) +(step t232.t14 (cl (not @p_1632) (not @p_1600) @p_1633) :rule equiv_pos2) +(step t232.t15 (cl @p_1633) :rule th_resolution :premises (t232.t8 t232.t13 t232.t14)) +(anchor :step t232.t16 :args ((:= (veriT_vr185 A$) veriT_sk29) (:= (veriT_vr186 C$) veriT_sk30))) +(step t232.t16.t1 (cl (! (= veriT_vr185 veriT_sk29) :named @p_1636)) :rule refl) +(step t232.t16.t2 (cl (! (= @p_1602 (! (fun_app$ veriT_sk0 veriT_sk29) :named @p_1635)) :named @p_1640)) :rule cong :premises (t232.t16.t1)) +(step t232.t16.t3 (cl (! (= veriT_vr186 veriT_sk30) :named @p_1638)) :rule refl) +(step t232.t16.t4 (cl (! (= @p_1538 (! (run$ @p_1635 veriT_sk30) :named @p_1553)) :named @p_1641)) :rule cong :premises (t232.t16.t2 t232.t16.t3)) +(step t232.t16.t5 (cl (! (= @p_1536 (! (is_fail$ @p_1553) :named @p_1545)) :named @p_1642)) :rule cong :premises (t232.t16.t4)) +(step t232.t16.t6 (cl @p_1636) :rule refl) +(step t232.t16.t7 (cl (! (= @p_1604 (! (fun_app$ veriT_sk1 veriT_sk29) :named @p_1637)) :named @p_1645)) :rule cong :premises (t232.t16.t6)) +(step t232.t16.t8 (cl @p_1638) :rule refl) +(step t232.t16.t9 (cl (! (= @p_1537 (! (run$ @p_1637 veriT_sk30) :named @p_1546)) :named @p_1646)) :rule cong :premises (t232.t16.t7 t232.t16.t8)) +(step t232.t16.t10 (cl (= @p_1606 (! (is_fail$ @p_1546) :named @p_1639))) :rule cong :premises (t232.t16.t9)) +(step t232.t16.t11 (cl @p_1636) :rule refl) +(step t232.t16.t12 (cl @p_1640) :rule cong :premises (t232.t16.t11)) +(step t232.t16.t13 (cl @p_1638) :rule refl) +(step t232.t16.t14 (cl @p_1641) :rule cong :premises (t232.t16.t12 t232.t16.t13)) +(step t232.t16.t15 (cl @p_1642) :rule cong :premises (t232.t16.t14)) +(step t232.t16.t16 (cl (= @p_1610 (! (= @p_1639 @p_1545) :named @p_1643))) :rule cong :premises (t232.t16.t10 t232.t16.t15)) +(anchor :step t232.t16.t17 :args ((:= (veriT_vr187 B$) veriT_sk31) (:= (veriT_vr188 C$) veriT_sk32))) +(step t232.t16.t17.t1 (cl @p_1636) :rule refl) +(step t232.t16.t17.t2 (cl @p_1645) :rule cong :premises (t232.t16.t17.t1)) +(step t232.t16.t17.t3 (cl @p_1638) :rule refl) +(step t232.t16.t17.t4 (cl @p_1646) :rule cong :premises (t232.t16.t17.t2 t232.t16.t17.t3)) +(step t232.t16.t17.t5 (cl (! (= veriT_vr187 veriT_sk31) :named @p_1649)) :rule refl) +(step t232.t16.t17.t6 (cl (! (= veriT_vr188 veriT_sk32) :named @p_1650)) :rule refl) +(step t232.t16.t17.t7 (cl (! (= @p_1539 (! (pair$ veriT_sk31 veriT_sk32) :named @p_1554)) :named @p_1651)) :rule cong :premises (t232.t16.t17.t5 t232.t16.t17.t6)) +(step t232.t16.t17.t8 (cl (= @p_1614 (! (is_res$ @p_1546 @p_1554) :named @p_1648))) :rule cong :premises (t232.t16.t17.t4 t232.t16.t17.t7)) +(step t232.t16.t17.t9 (cl @p_1636) :rule refl) +(step t232.t16.t17.t10 (cl @p_1640) :rule cong :premises (t232.t16.t17.t9)) +(step t232.t16.t17.t11 (cl @p_1638) :rule refl) +(step t232.t16.t17.t12 (cl @p_1641) :rule cong :premises (t232.t16.t17.t10 t232.t16.t17.t11)) +(step t232.t16.t17.t13 (cl @p_1649) :rule refl) +(step t232.t16.t17.t14 (cl @p_1650) :rule refl) +(step t232.t16.t17.t15 (cl @p_1651) :rule cong :premises (t232.t16.t17.t13 t232.t16.t17.t14)) +(step t232.t16.t17.t16 (cl (= @p_1618 (! (is_res$ @p_1553 @p_1554) :named @p_1652))) :rule cong :premises (t232.t16.t17.t12 t232.t16.t17.t15)) +(step t232.t16.t17.t17 (cl (= @p_1619 (! (= @p_1648 @p_1652) :named @p_1644))) :rule cong :premises (t232.t16.t17.t8 t232.t16.t17.t16)) +(step t232.t16.t17 (cl (= @p_1611 @p_1644)) :rule sko_forall) +(step t232.t16.t18 (cl (= @p_1620 (! (and @p_1643 @p_1644) :named @p_1653))) :rule cong :premises (t232.t16.t16 t232.t16.t17)) +(step t232.t16.t19 (cl (= @p_1601 (! (or @p_1545 @p_1653) :named @p_1634))) :rule cong :premises (t232.t16.t5 t232.t16.t18)) +(step t232.t16 (cl (= @p_1630 @p_1634)) :rule sko_forall) +(step t232.t17 (cl (! (= @p_1633 (! (=> @p_1634 @p_1631) :named @p_1655)) :named @p_1654)) :rule cong :premises (t232.t16)) +(step t232.t18 (cl (not @p_1654) (not @p_1633) @p_1655) :rule equiv_pos2) +(step t232.t19 (cl @p_1655) :rule th_resolution :premises (t232.t15 t232.t17 t232.t18)) +(anchor :step t232.t20 :args ((:= (veriT_vr189 F$) veriT_vr191) (:= (veriT_vr190 D$) veriT_vr192))) +(step t232.t20.t1 (cl (! (= veriT_vr189 veriT_vr191) :named @p_1658)) :rule refl) +(step t232.t20.t2 (cl (! (= veriT_vr190 veriT_vr192) :named @p_1659)) :rule refl) +(step t232.t20.t3 (cl (! (= @p_1621 (! (pair$b veriT_vr191 veriT_vr192) :named @p_1556)) :named @p_1660)) :rule cong :premises (t232.t20.t1 t232.t20.t2)) +(step t232.t20.t4 (cl (= @p_1622 (! (is_res$b @p_826 @p_1556) :named @p_1657))) :rule cong :premises (t232.t20.t3)) +(step t232.t20.t5 (cl @p_1658) :rule refl) +(step t232.t20.t6 (cl @p_1659) :rule refl) +(step t232.t20.t7 (cl @p_1660) :rule cong :premises (t232.t20.t5 t232.t20.t6)) +(step t232.t20.t8 (cl (= @p_1626 (! (is_res$b @p_1353 @p_1556) :named @p_1661))) :rule cong :premises (t232.t20.t7)) +(step t232.t20.t9 (cl (= @p_1627 (! (= @p_1657 @p_1661) :named @p_1662))) :rule cong :premises (t232.t20.t4 t232.t20.t8)) +(step t232.t20 (cl (= @p_1628 (! (forall ((veriT_vr191 F$) (veriT_vr192 D$)) @p_1662) :named @p_1656))) :rule bind) +(step t232.t21 (cl (= @p_1629 (! (and @p_1555 @p_1656) :named @p_1663))) :rule cong :premises (t232.t20)) +(step t232.t22 (cl (= @p_1631 (! (or @p_1329 @p_1663) :named @p_1664))) :rule cong :premises (t232.t21)) +(step t232.t23 (cl (! (= @p_1655 (! (=> @p_1634 @p_1664) :named @p_1665)) :named @p_1666)) :rule cong :premises (t232.t22)) +(step t232.t24 (cl (not @p_1666) (not @p_1655) @p_1665) :rule equiv_pos2) +(step t232.t25 (cl @p_1665) :rule th_resolution :premises (t232.t19 t232.t23 t232.t24)) +(step t232 (cl @p_1599 @p_1665) :rule subproof :discharge (h1)) +(step t233 (cl @p_1385 @p_1535) :rule or :premises (t231)) +(step t234 (cl (! (or @p_1385 @p_1665) :named @p_1667) @p_1533) :rule or_neg) +(step t235 (cl @p_1667 @p_1154) :rule th_resolution :premises (t159 t234)) +(step t236 (cl @p_1667 (! (not @p_1665) :named @p_1679)) :rule or_neg) +(step t237 (cl @p_1667) :rule th_resolution :premises (t233 t232 t235 t236)) +(step t238 (cl @p_1668 @p_1669 (not @p_1670)) :rule and_neg) +(step t239 (cl @p_1163 @p_1671) :rule or :premises (t213)) +(step t240 (cl (! (not @p_1672) :named @p_1721) (not @p_822) @p_1328) :rule equiv_pos2) +(step t241 (cl @p_1354 @p_1672) :rule or :premises (t214)) +(step t242 (cl (! (not @p_1673) :named @p_1711) (not @p_784) @p_1332) :rule equiv_pos2) +(step t243 (cl @p_1354 @p_1673) :rule or :premises (t215)) +(step t244 (cl (not @p_1674) @p_1675 @p_1676) :rule equiv_pos1) +(step t245 (cl @p_1354 @p_1674) :rule or :premises (t216)) +(step t246 (cl (not @p_1381) @p_1374) :rule and_pos) +(step t247 (cl @p_1677 @p_1198 @p_1381) :rule or_pos) +(step t248 (cl @p_1187 @p_1382) :rule or :premises (t223)) +(step t249 (cl @p_1382) :rule resolution :premises (t248 t120)) +(step t250 (cl @p_1500 (not @p_1400)) :rule or_neg) +(step t251 (cl @p_1509 @p_1505 @p_1400) :rule equiv_neg2) +(step t252 (cl @p_1510 (! (not @p_1514) :named @p_1696) (! (not @p_1518) :named @p_1919)) :rule equiv_neg1) +(step t253 (cl @p_1510 @p_1514 @p_1518) :rule equiv_neg2) +(step t254 (cl @p_1519 (not @p_1509) (not @p_1510)) :rule and_neg) +(step t255 (cl @p_1500 (not @p_1519)) :rule or_neg) +(step t256 (cl (not @p_1410) (not @p_789) @p_1333) :rule equiv_pos2) +(step t257 (cl (not @p_1529) @p_1410) :rule and_pos) +(step t258 (cl (! (not @p_1530) :named @p_1710) @p_1333 @p_1529) :rule or_pos) +(step t259 (cl @p_1678 (not @p_1500) @p_1530) :rule implies_pos) +(step t260 (cl @p_1385 @p_1531) :rule or :premises (t230)) +(step t261 (cl @p_1531) :rule resolution :premises (t260 t119)) +(step t262 (cl @p_1634 (! (not @p_1545) :named @p_1929)) :rule or_neg) +(step t263 (cl @p_1643 @p_1639 @p_1545) :rule equiv_neg2) +(step t264 (cl @p_1644 (! (not @p_1648) :named @p_1700) (! (not @p_1652) :named @p_1705)) :rule equiv_neg1) +(step t265 (cl @p_1644 @p_1648 @p_1652) :rule equiv_neg2) +(step t266 (cl @p_1653 (not @p_1643) (! (not @p_1644) :named @p_1931)) :rule and_neg) +(step t267 (cl @p_1634 (! (not @p_1653) :named @p_1930)) :rule or_neg) +(step t268 (cl (not @p_1663) @p_1656) :rule and_pos) +(step t269 (cl (! (not @p_1664) :named @p_1720) @p_1329 @p_1663) :rule or_pos) +(step t270 (cl @p_1679 (! (not @p_1634) :named @p_1928) @p_1664) :rule implies_pos) +(step t271 (cl @p_1385 @p_1665) :rule or :premises (t237)) +(step t272 (cl @p_1665) :rule resolution :premises (t271 t119)) +(step t273 (cl (or @p_1341 (! (or @p_1400 (! (not @p_1505) :named @p_1683) @p_1400) :named @p_1680))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk25) (:= veriT_vr104 veriT_sk26))) +(step t274 (cl @p_1341 @p_1680) :rule or :premises (t273)) +(step t275 (cl (! (or @p_1187 @p_1680) :named @p_1681) @p_1343) :rule or_neg) +(step t276 (cl @p_1681 @p_1155) :rule th_resolution :premises (t198 t275)) +(step t277 (cl @p_1681 (! (not @p_1680) :named @p_1682)) :rule or_neg) +(step t278 (cl @p_1681) :rule th_resolution :premises (t194 t274 t276 t277)) +(anchor :step t279) +(assume t279.h1 @p_1680) +(step t279.t2 (cl (! (= @p_1680 (! (or @p_1400 @p_1683) :named @p_1684)) :named @p_1685)) :rule ac_simp) +(step t279.t3 (cl (not @p_1685) @p_1682 @p_1684) :rule equiv_pos2) +(step t279.t4 (cl @p_1684) :rule th_resolution :premises (t279.h1 t279.t2 t279.t3)) +(step t279 (cl @p_1682 @p_1684) :rule subproof :discharge (h1)) +(step t280 (cl @p_1187 @p_1680) :rule or :premises (t278)) +(step t281 (cl (! (or @p_1187 @p_1684) :named @p_1686) @p_1343) :rule or_neg) +(step t282 (cl @p_1686 @p_1155) :rule th_resolution :premises (t198 t281)) +(step t283 (cl @p_1686 (! (not @p_1684) :named @p_1694)) :rule or_neg) +(step t284 (cl @p_1686) :rule th_resolution :premises (t280 t279 t282 t283)) +(step t285 (cl (or @p_1341 (! (or @p_1545 (! (not @p_1639) :named @p_1690) @p_1545) :named @p_1687))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk29) (:= veriT_vr104 veriT_sk30))) +(step t286 (cl @p_1341 @p_1687) :rule or :premises (t285)) +(step t287 (cl (! (or @p_1187 @p_1687) :named @p_1688) @p_1343) :rule or_neg) +(step t288 (cl @p_1688 @p_1155) :rule th_resolution :premises (t198 t287)) +(step t289 (cl @p_1688 (! (not @p_1687) :named @p_1689)) :rule or_neg) +(step t290 (cl @p_1688) :rule th_resolution :premises (t194 t286 t288 t289)) +(anchor :step t291) +(assume t291.h1 @p_1687) +(step t291.t2 (cl (! (= @p_1687 (! (or @p_1545 @p_1690) :named @p_1691)) :named @p_1692)) :rule ac_simp) +(step t291.t3 (cl (not @p_1692) @p_1689 @p_1691) :rule equiv_pos2) +(step t291.t4 (cl @p_1691) :rule th_resolution :premises (t291.h1 t291.t2 t291.t3)) +(step t291 (cl @p_1689 @p_1691) :rule subproof :discharge (h1)) +(step t292 (cl @p_1187 @p_1687) :rule or :premises (t290)) +(step t293 (cl (! (or @p_1187 @p_1691) :named @p_1693) @p_1343) :rule or_neg) +(step t294 (cl @p_1693 @p_1155) :rule th_resolution :premises (t198 t293)) +(step t295 (cl @p_1693 (! (not @p_1691) :named @p_1695)) :rule or_neg) +(step t296 (cl @p_1693) :rule th_resolution :premises (t292 t291 t294 t295)) +(step t297 (cl @p_1694 @p_1400 @p_1683) :rule or_pos) +(step t298 (cl @p_1187 @p_1684) :rule or :premises (t284)) +(step t299 (cl @p_1684) :rule resolution :premises (t298 t120)) +(step t300 (cl @p_1695 @p_1545 @p_1690) :rule or_pos) +(step t301 (cl @p_1187 @p_1691) :rule or :premises (t296)) +(step t302 (cl @p_1691) :rule resolution :premises (t301 t120)) +(step t303 (cl (or (! (not @p_1351) :named @p_1697) (! (or @p_1400 @p_1696 @p_1518) :named @p_1698))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk25) (:= veriT_vr104 veriT_sk26) (:= veriT_vr105 veriT_sk27) (:= veriT_vr106 veriT_sk28))) +(step t304 (cl @p_1697 @p_1698) :rule or :premises (t303)) +(step t305 (cl (! (or @p_1187 @p_1698) :named @p_1699) @p_1343) :rule or_neg) +(step t306 (cl @p_1699 @p_1155) :rule th_resolution :premises (t198 t305)) +(step t307 (cl @p_1699 (! (not @p_1698) :named @p_1703)) :rule or_neg) +(step t308 (cl @p_1699) :rule th_resolution :premises (t211 t304 t306 t307)) +(step t309 (cl (or @p_1697 (! (or @p_1545 @p_1700 @p_1652) :named @p_1701))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk29) (:= veriT_vr104 veriT_sk30) (:= veriT_vr105 veriT_sk31) (:= veriT_vr106 veriT_sk32))) +(step t310 (cl @p_1697 @p_1701) :rule or :premises (t309)) +(step t311 (cl (! (or @p_1187 @p_1701) :named @p_1702) @p_1343) :rule or_neg) +(step t312 (cl @p_1702 @p_1155) :rule th_resolution :premises (t198 t311)) +(step t313 (cl @p_1702 (! (not @p_1701) :named @p_1704)) :rule or_neg) +(step t314 (cl @p_1702) :rule th_resolution :premises (t211 t310 t312 t313)) +(step t315 (cl @p_1703 @p_1400 @p_1696 @p_1518) :rule or_pos) +(step t316 (cl @p_1187 @p_1698) :rule or :premises (t308)) +(step t317 (cl @p_1698) :rule resolution :premises (t316 t120)) +(step t318 (cl @p_1704 @p_1545 @p_1700 @p_1652) :rule or_pos) +(step t319 (cl @p_1187 @p_1701) :rule or :premises (t314)) +(step t320 (cl @p_1701) :rule resolution :premises (t319 t120)) +(step t321 (cl @p_1545 @p_1652 @p_1644) :rule resolution :premises (t318 t265 t320)) +(step t322 (cl (or (! (not @p_1352) :named @p_1706) (! (or @p_1545 @p_1705 @p_1648) :named @p_1707))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk29) (:= veriT_vr104 veriT_sk30) (:= veriT_vr105 veriT_sk31) (:= veriT_vr106 veriT_sk32))) +(step t323 (cl @p_1706 @p_1707) :rule or :premises (t322)) +(step t324 (cl (! (or @p_1187 @p_1707) :named @p_1708) @p_1343) :rule or_neg) +(step t325 (cl @p_1708 @p_1155) :rule th_resolution :premises (t198 t324)) +(step t326 (cl @p_1708 (! (not @p_1707) :named @p_1709)) :rule or_neg) +(step t327 (cl @p_1708) :rule th_resolution :premises (t212 t323 t325 t326)) +(step t328 (cl @p_1709 @p_1545 @p_1705 @p_1648) :rule or_pos) +(step t329 (cl @p_1187 @p_1707) :rule or :premises (t327)) +(step t330 (cl @p_1707) :rule resolution :premises (t329 t120)) +(step t331 (cl @p_1710 @p_1711 @p_1178) :rule resolution :premises (t257 t258 t256 t178 t242 t128 t127 t180)) +(step t332 (cl (or (! (not @p_1656) :named @p_1712) (! (forall ((veriT_vr191 F$) (veriT_vr192 D$)) (or (not @p_1657) @p_1661)) :named @p_1713))) :rule qnt_cnf) +(step t333 (cl @p_1712 @p_1713) :rule or :premises (t332)) +(step t334 (cl (or (! (not @p_1713) :named @p_1714) (! (or (! (not @p_827) :named @p_1719) @p_1670) :named @p_1715))) :rule forall_inst :args ((:= veriT_vr191 veriT_sk7) (:= veriT_vr192 veriT_sk8))) +(step t335 (cl @p_1714 @p_1715) :rule or :premises (t334)) +(step t336 (cl (! (or @p_1712 @p_1715) :named @p_1717) (! (not @p_1712) :named @p_1716)) :rule or_neg) +(step t337 (cl (not @p_1716) @p_1656) :rule not_not) +(step t338 (cl @p_1717 @p_1656) :rule th_resolution :premises (t337 t336)) +(step t339 (cl @p_1717 (! (not @p_1715) :named @p_1718)) :rule or_neg) +(step t340 (cl @p_1717) :rule th_resolution :premises (t333 t335 t338 t339)) +(step t341 (cl @p_1718 @p_1719 @p_1670) :rule or_pos) +(step t342 (cl @p_1712 @p_1715) :rule or :premises (t340)) +(step t343 (cl @p_1720 @p_1668 @p_1721 @p_1179) :rule resolution :premises (t342 t268 t341 t269 t238 t175 t240 t134 t133 t177)) +(step t344 (cl (or @p_1165 @p_1179)) :rule forall_inst :args ((:= veriT_vr113 veriT_sk9) (:= veriT_vr114 veriT_sk10))) +(step t345 (cl (or @p_1165 (! (not (! (and @p_1675 (! (is_res$b (! (run$b (c$ veriT_sk11 veriT_sk1) veriT_sk12) :named @p_1757) @p_747) :named @p_1753)) :named @p_1752)) :named @p_1754))) :rule forall_inst :args ((:= veriT_vr113 veriT_sk11) (:= veriT_vr114 veriT_sk12))) +(step t346 (cl (or (! (not @p_1374) :named @p_1755) @p_1297)) :rule forall_inst :args ((:= veriT_vr150 veriT_sk15) (:= veriT_vr151 veriT_sk16))) +(step t347 (cl (or @p_1187 (! (or @p_1400 (! (and @p_1509 (! (forall ((veriT_vr105 B$) (veriT_vr106 C$)) (! (= (! (is_res$ @p_1401 @p_1087) :named @p_1726) (! (is_res$ @p_1408 @p_1087) :named @p_1731)) :named @p_1733)) :named @p_1724)) :named @p_1735)) :named @p_1722))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk25) (:= veriT_vr104 veriT_sk26))) +(anchor :step t348) +(assume t348.h1 @p_1722) +(anchor :step t348.t2 :args ((:= (veriT_vr105 B$) veriT_vr207) (:= (veriT_vr106 C$) veriT_vr208))) +(step t348.t2.t1 (cl (! (= veriT_vr105 veriT_vr207) :named @p_1728)) :rule refl) +(step t348.t2.t2 (cl (! (= veriT_vr106 veriT_vr208) :named @p_1729)) :rule refl) +(step t348.t2.t3 (cl (! (= @p_1087 (! (pair$ veriT_vr207 veriT_vr208) :named @p_1725)) :named @p_1730)) :rule cong :premises (t348.t2.t1 t348.t2.t2)) +(step t348.t2.t4 (cl (= @p_1726 (! (is_res$ @p_1401 @p_1725) :named @p_1727))) :rule cong :premises (t348.t2.t3)) +(step t348.t2.t5 (cl @p_1728) :rule refl) +(step t348.t2.t6 (cl @p_1729) :rule refl) +(step t348.t2.t7 (cl @p_1730) :rule cong :premises (t348.t2.t5 t348.t2.t6)) +(step t348.t2.t8 (cl (= @p_1731 (! (is_res$ @p_1408 @p_1725) :named @p_1732))) :rule cong :premises (t348.t2.t7)) +(step t348.t2.t9 (cl (= @p_1733 (! (= @p_1727 @p_1732) :named @p_1734))) :rule cong :premises (t348.t2.t4 t348.t2.t8)) +(step t348.t2 (cl (= @p_1724 (! (forall ((veriT_vr207 B$) (veriT_vr208 C$)) @p_1734) :named @p_1736))) :rule bind) +(step t348.t3 (cl (= @p_1735 (! (and @p_1509 @p_1736) :named @p_1737))) :rule cong :premises (t348.t2)) +(step t348.t4 (cl (! (= @p_1722 (! (or @p_1400 @p_1737) :named @p_1740)) :named @p_1738)) :rule cong :premises (t348.t3)) +(step t348.t5 (cl (not @p_1738) (! (not @p_1722) :named @p_1739) @p_1740) :rule equiv_pos2) +(step t348.t6 (cl @p_1740) :rule th_resolution :premises (t348.h1 t348.t4 t348.t5)) +(anchor :step t348.t7 :args ((:= (veriT_vr207 B$) veriT_vr209) (:= (veriT_vr208 C$) veriT_vr210))) +(step t348.t7.t1 (cl (! (= veriT_vr207 veriT_vr209) :named @p_1743)) :rule refl) +(step t348.t7.t2 (cl (! (= veriT_vr208 veriT_vr210) :named @p_1744)) :rule refl) +(step t348.t7.t3 (cl (! (= @p_1725 (! (pair$ veriT_vr209 veriT_vr210) :named @p_1723)) :named @p_1745)) :rule cong :premises (t348.t7.t1 t348.t7.t2)) +(step t348.t7.t4 (cl (= @p_1727 (! (is_res$ @p_1401 @p_1723) :named @p_1742))) :rule cong :premises (t348.t7.t3)) +(step t348.t7.t5 (cl @p_1743) :rule refl) +(step t348.t7.t6 (cl @p_1744) :rule refl) +(step t348.t7.t7 (cl @p_1745) :rule cong :premises (t348.t7.t5 t348.t7.t6)) +(step t348.t7.t8 (cl (= @p_1732 (! (is_res$ @p_1408 @p_1723) :named @p_1746))) :rule cong :premises (t348.t7.t7)) +(step t348.t7.t9 (cl (= @p_1734 (! (= @p_1742 @p_1746) :named @p_1747))) :rule cong :premises (t348.t7.t4 t348.t7.t8)) +(step t348.t7 (cl (= @p_1736 (! (forall ((veriT_vr209 B$) (veriT_vr210 C$)) @p_1747) :named @p_1741))) :rule bind) +(step t348.t8 (cl (= @p_1737 (! (and @p_1509 @p_1741) :named @p_1748))) :rule cong :premises (t348.t7)) +(step t348.t9 (cl (! (= @p_1740 (! (or @p_1400 @p_1748) :named @p_1749)) :named @p_1750)) :rule cong :premises (t348.t8)) +(step t348.t10 (cl (not @p_1750) (not @p_1740) @p_1749) :rule equiv_pos2) +(step t348.t11 (cl @p_1749) :rule th_resolution :premises (t348.t6 t348.t9 t348.t10)) +(step t348 (cl @p_1739 @p_1749) :rule subproof :discharge (h1)) +(step t349 (cl @p_1187 @p_1722) :rule or :premises (t347)) +(step t350 (cl (! (or @p_1187 @p_1749) :named @p_1751) @p_1343) :rule or_neg) +(step t351 (cl @p_1751 @p_1155) :rule th_resolution :premises (t198 t350)) +(step t352 (cl @p_1751 (! (not @p_1749) :named @p_1756)) :rule or_neg) +(step t353 (cl @p_1751) :rule th_resolution :premises (t349 t348 t351 t352)) +(step t354 (cl @p_1165 @p_1179) :rule or :premises (t344)) +(step t355 (cl @p_1752 (not @p_1675) (not @p_1753)) :rule and_neg) +(step t356 (cl @p_1165 @p_1754) :rule or :premises (t345)) +(step t357 (cl @p_1755 @p_1297) :rule or :premises (t346)) +(step t358 (cl (not @p_1748) @p_1741) :rule and_pos) +(step t359 (cl @p_1756 @p_1400 @p_1748) :rule or_pos) +(step t360 (cl @p_1187 @p_1749) :rule or :premises (t353)) +(step t361 (cl @p_1749) :rule resolution :premises (t360 t120)) +(step t362 (cl (or @p_1385 (! (=> @p_1412 (! (or @p_1325 (! (and (! (= (is_fail$b @p_1757) @p_1325) :named @p_1778) (! (forall ((veriT_vr93 F$) (veriT_vr102 D$)) (! (= (! (is_res$b @p_1757 @p_1039) :named @p_1806) (! (is_res$b @p_846 @p_1039) :named @p_1811)) :named @p_1813)) :named @p_1804)) :named @p_1815)) :named @p_1817)) :named @p_1758))) :rule forall_inst :args ((:= veriT_vr94 veriT_sk11) (:= veriT_vr95 veriT_sk0) (:= veriT_vr96 veriT_sk1) (:= veriT_vr101 veriT_sk12))) +(anchor :step t363) +(assume t363.h1 @p_1758) +(anchor :step t363.t2 :args ((:= (veriT_vr97 A$) veriT_vr237) (:= (veriT_vr98 C$) veriT_vr238))) +(step t363.t2.t1 (cl (! (= veriT_vr97 veriT_vr237) :named @p_1785)) :rule refl) +(step t363.t2.t2 (cl (! (= @p_1417 (! (fun_app$ veriT_sk0 veriT_vr237) :named @p_1784)) :named @p_1789)) :rule cong :premises (t363.t2.t1)) +(step t363.t2.t3 (cl (! (= veriT_vr98 veriT_vr238) :named @p_1787)) :rule refl) +(step t363.t2.t4 (cl (! (= @p_1388 (! (run$ @p_1784 veriT_vr238) :named @p_1782)) :named @p_1790)) :rule cong :premises (t363.t2.t2 t363.t2.t3)) +(step t363.t2.t5 (cl (! (= @p_1386 (! (is_fail$ @p_1782) :named @p_1780)) :named @p_1791)) :rule cong :premises (t363.t2.t4)) +(step t363.t2.t6 (cl @p_1785) :rule refl) +(step t363.t2.t7 (cl (! (= @p_1420 (! (fun_app$ veriT_sk1 veriT_vr237) :named @p_1786)) :named @p_1794)) :rule cong :premises (t363.t2.t6)) +(step t363.t2.t8 (cl @p_1787) :rule refl) +(step t363.t2.t9 (cl (! (= @p_1387 (! (run$ @p_1786 veriT_vr238) :named @p_1781)) :named @p_1795)) :rule cong :premises (t363.t2.t7 t363.t2.t8)) +(step t363.t2.t10 (cl (= @p_1423 (! (is_fail$ @p_1781) :named @p_1788))) :rule cong :premises (t363.t2.t9)) +(step t363.t2.t11 (cl @p_1785) :rule refl) +(step t363.t2.t12 (cl @p_1789) :rule cong :premises (t363.t2.t11)) +(step t363.t2.t13 (cl @p_1787) :rule refl) +(step t363.t2.t14 (cl @p_1790) :rule cong :premises (t363.t2.t12 t363.t2.t13)) +(step t363.t2.t15 (cl @p_1791) :rule cong :premises (t363.t2.t14)) +(step t363.t2.t16 (cl (= @p_1428 (! (= @p_1788 @p_1780) :named @p_1792))) :rule cong :premises (t363.t2.t10 t363.t2.t15)) +(anchor :step t363.t2.t17 :args ((:= (veriT_vr99 B$) veriT_vr239) (:= (veriT_vr100 C$) veriT_vr240))) +(step t363.t2.t17.t1 (cl @p_1785) :rule refl) +(step t363.t2.t17.t2 (cl @p_1794) :rule cong :premises (t363.t2.t17.t1)) +(step t363.t2.t17.t3 (cl @p_1787) :rule refl) +(step t363.t2.t17.t4 (cl @p_1795) :rule cong :premises (t363.t2.t17.t2 t363.t2.t17.t3)) +(step t363.t2.t17.t5 (cl (! (= veriT_vr99 veriT_vr239) :named @p_1797)) :rule refl) +(step t363.t2.t17.t6 (cl (! (= veriT_vr100 veriT_vr240) :named @p_1798)) :rule refl) +(step t363.t2.t17.t7 (cl (! (= @p_1035 (! (pair$ veriT_vr239 veriT_vr240) :named @p_1783)) :named @p_1799)) :rule cong :premises (t363.t2.t17.t5 t363.t2.t17.t6)) +(step t363.t2.t17.t8 (cl (= @p_1434 (! (is_res$ @p_1781 @p_1783) :named @p_1796))) :rule cong :premises (t363.t2.t17.t4 t363.t2.t17.t7)) +(step t363.t2.t17.t9 (cl @p_1785) :rule refl) +(step t363.t2.t17.t10 (cl @p_1789) :rule cong :premises (t363.t2.t17.t9)) +(step t363.t2.t17.t11 (cl @p_1787) :rule refl) +(step t363.t2.t17.t12 (cl @p_1790) :rule cong :premises (t363.t2.t17.t10 t363.t2.t17.t11)) +(step t363.t2.t17.t13 (cl @p_1797) :rule refl) +(step t363.t2.t17.t14 (cl @p_1798) :rule refl) +(step t363.t2.t17.t15 (cl @p_1799) :rule cong :premises (t363.t2.t17.t13 t363.t2.t17.t14)) +(step t363.t2.t17.t16 (cl (= @p_1439 (! (is_res$ @p_1782 @p_1783) :named @p_1800))) :rule cong :premises (t363.t2.t17.t12 t363.t2.t17.t15)) +(step t363.t2.t17.t17 (cl (= @p_1441 (! (= @p_1796 @p_1800) :named @p_1801))) :rule cong :premises (t363.t2.t17.t8 t363.t2.t17.t16)) +(step t363.t2.t17 (cl (= @p_1430 (! (forall ((veriT_vr239 B$) (veriT_vr240 C$)) @p_1801) :named @p_1793))) :rule bind) +(step t363.t2.t18 (cl (= @p_1443 (! (and @p_1792 @p_1793) :named @p_1802))) :rule cong :premises (t363.t2.t16 t363.t2.t17)) +(step t363.t2.t19 (cl (= @p_1445 (! (or @p_1780 @p_1802) :named @p_1803))) :rule cong :premises (t363.t2.t5 t363.t2.t18)) +(step t363.t2 (cl (= @p_1412 (! (forall ((veriT_vr237 A$) (veriT_vr238 C$)) @p_1803) :named @p_1819))) :rule bind) +(anchor :step t363.t3 :args ((:= (veriT_vr93 F$) veriT_vr241) (:= (veriT_vr102 D$) veriT_vr242))) +(step t363.t3.t1 (cl (! (= veriT_vr93 veriT_vr241) :named @p_1808)) :rule refl) +(step t363.t3.t2 (cl (! (= veriT_vr102 veriT_vr242) :named @p_1809)) :rule refl) +(step t363.t3.t3 (cl (! (= @p_1039 (! (pair$b veriT_vr241 veriT_vr242) :named @p_1805)) :named @p_1810)) :rule cong :premises (t363.t3.t1 t363.t3.t2)) +(step t363.t3.t4 (cl (= @p_1806 (! (is_res$b @p_1757 @p_1805) :named @p_1807))) :rule cong :premises (t363.t3.t3)) +(step t363.t3.t5 (cl @p_1808) :rule refl) +(step t363.t3.t6 (cl @p_1809) :rule refl) +(step t363.t3.t7 (cl @p_1810) :rule cong :premises (t363.t3.t5 t363.t3.t6)) +(step t363.t3.t8 (cl (= @p_1811 (! (is_res$b @p_846 @p_1805) :named @p_1812))) :rule cong :premises (t363.t3.t7)) +(step t363.t3.t9 (cl (= @p_1813 (! (= @p_1807 @p_1812) :named @p_1814))) :rule cong :premises (t363.t3.t4 t363.t3.t8)) +(step t363.t3 (cl (= @p_1804 (! (forall ((veriT_vr241 F$) (veriT_vr242 D$)) @p_1814) :named @p_1816))) :rule bind) +(step t363.t4 (cl (= @p_1815 (! (and @p_1778 @p_1816) :named @p_1818))) :rule cong :premises (t363.t3)) +(step t363.t5 (cl (= @p_1817 (! (or @p_1325 @p_1818) :named @p_1820))) :rule cong :premises (t363.t4)) +(step t363.t6 (cl (! (= @p_1758 (! (=> @p_1819 @p_1820) :named @p_1823)) :named @p_1821)) :rule cong :premises (t363.t2 t363.t5)) +(step t363.t7 (cl (not @p_1821) (! (not @p_1758) :named @p_1822) @p_1823) :rule equiv_pos2) +(step t363.t8 (cl @p_1823) :rule th_resolution :premises (t363.h1 t363.t6 t363.t7)) +(anchor :step t363.t9 :args ((:= (veriT_vr237 A$) veriT_vr243) (:= (veriT_vr238 C$) veriT_vr244))) +(step t363.t9.t1 (cl (! (= veriT_vr237 veriT_vr243) :named @p_1826)) :rule refl) +(step t363.t9.t2 (cl (! (= @p_1784 @p_1825) :named @p_1830)) :rule cong :premises (t363.t9.t1)) +(step t363.t9.t3 (cl (! (= veriT_vr238 veriT_vr244) :named @p_1828)) :rule refl) +(step t363.t9.t4 (cl (! (= @p_1782 @p_1761) :named @p_1831)) :rule cong :premises (t363.t9.t2 t363.t9.t3)) +(step t363.t9.t5 (cl (! (= @p_1780 @p_1759) :named @p_1832)) :rule cong :premises (t363.t9.t4)) +(step t363.t9.t6 (cl @p_1826) :rule refl) +(step t363.t9.t7 (cl (! (= @p_1786 @p_1827) :named @p_1835)) :rule cong :premises (t363.t9.t6)) +(step t363.t9.t8 (cl @p_1828) :rule refl) +(step t363.t9.t9 (cl (! (= @p_1781 @p_1760) :named @p_1836)) :rule cong :premises (t363.t9.t7 t363.t9.t8)) +(step t363.t9.t10 (cl (= @p_1788 @p_1829)) :rule cong :premises (t363.t9.t9)) +(step t363.t9.t11 (cl @p_1826) :rule refl) +(step t363.t9.t12 (cl @p_1830) :rule cong :premises (t363.t9.t11)) +(step t363.t9.t13 (cl @p_1828) :rule refl) +(step t363.t9.t14 (cl @p_1831) :rule cong :premises (t363.t9.t12 t363.t9.t13)) +(step t363.t9.t15 (cl @p_1832) :rule cong :premises (t363.t9.t14)) +(step t363.t9.t16 (cl (= @p_1792 @p_1833)) :rule cong :premises (t363.t9.t10 t363.t9.t15)) +(anchor :step t363.t9.t17 :args ((:= (veriT_vr239 B$) veriT_vr245) (:= (veriT_vr240 C$) veriT_vr246))) +(step t363.t9.t17.t1 (cl @p_1826) :rule refl) +(step t363.t9.t17.t2 (cl @p_1835) :rule cong :premises (t363.t9.t17.t1)) +(step t363.t9.t17.t3 (cl @p_1828) :rule refl) +(step t363.t9.t17.t4 (cl @p_1836) :rule cong :premises (t363.t9.t17.t2 t363.t9.t17.t3)) +(step t363.t9.t17.t5 (cl (! (= veriT_vr239 veriT_vr245) :named @p_1838)) :rule refl) +(step t363.t9.t17.t6 (cl (! (= veriT_vr240 veriT_vr246) :named @p_1839)) :rule refl) +(step t363.t9.t17.t7 (cl (! (= @p_1783 @p_1762) :named @p_1840)) :rule cong :premises (t363.t9.t17.t5 t363.t9.t17.t6)) +(step t363.t9.t17.t8 (cl (= @p_1796 @p_1837)) :rule cong :premises (t363.t9.t17.t4 t363.t9.t17.t7)) +(step t363.t9.t17.t9 (cl @p_1826) :rule refl) +(step t363.t9.t17.t10 (cl @p_1830) :rule cong :premises (t363.t9.t17.t9)) +(step t363.t9.t17.t11 (cl @p_1828) :rule refl) +(step t363.t9.t17.t12 (cl @p_1831) :rule cong :premises (t363.t9.t17.t10 t363.t9.t17.t11)) +(step t363.t9.t17.t13 (cl @p_1838) :rule refl) +(step t363.t9.t17.t14 (cl @p_1839) :rule refl) +(step t363.t9.t17.t15 (cl @p_1840) :rule cong :premises (t363.t9.t17.t13 t363.t9.t17.t14)) +(step t363.t9.t17.t16 (cl (= @p_1800 @p_1841)) :rule cong :premises (t363.t9.t17.t12 t363.t9.t17.t15)) +(step t363.t9.t17.t17 (cl (= @p_1801 @p_1842)) :rule cong :premises (t363.t9.t17.t8 t363.t9.t17.t16)) +(step t363.t9.t17 (cl (= @p_1793 @p_1834)) :rule bind) +(step t363.t9.t18 (cl (= @p_1802 @p_1843)) :rule cong :premises (t363.t9.t16 t363.t9.t17)) +(step t363.t9.t19 (cl (= @p_1803 @p_1824)) :rule cong :premises (t363.t9.t5 t363.t9.t18)) +(step t363.t9 (cl (= @p_1819 (! (forall ((veriT_vr243 A$) (veriT_vr244 C$)) @p_1824) :named @p_1853))) :rule bind) +(anchor :step t363.t10 :args ((:= (veriT_vr241 F$) veriT_vr247) (:= (veriT_vr242 D$) veriT_vr248))) +(step t363.t10.t1 (cl (! (= veriT_vr241 veriT_vr247) :named @p_1846)) :rule refl) +(step t363.t10.t2 (cl (! (= veriT_vr242 veriT_vr248) :named @p_1847)) :rule refl) +(step t363.t10.t3 (cl (! (= @p_1805 (! (pair$b veriT_vr247 veriT_vr248) :named @p_1844)) :named @p_1848)) :rule cong :premises (t363.t10.t1 t363.t10.t2)) +(step t363.t10.t4 (cl (= @p_1807 (! (is_res$b @p_1757 @p_1844) :named @p_1845))) :rule cong :premises (t363.t10.t3)) +(step t363.t10.t5 (cl @p_1846) :rule refl) +(step t363.t10.t6 (cl @p_1847) :rule refl) +(step t363.t10.t7 (cl @p_1848) :rule cong :premises (t363.t10.t5 t363.t10.t6)) +(step t363.t10.t8 (cl (= @p_1812 (! (is_res$b @p_846 @p_1844) :named @p_1849))) :rule cong :premises (t363.t10.t7)) +(step t363.t10.t9 (cl (= @p_1814 (! (= @p_1845 @p_1849) :named @p_1850))) :rule cong :premises (t363.t10.t4 t363.t10.t8)) +(step t363.t10 (cl (= @p_1816 (! (forall ((veriT_vr247 F$) (veriT_vr248 D$)) @p_1850) :named @p_1851))) :rule bind) +(step t363.t11 (cl (= @p_1818 (! (and @p_1778 @p_1851) :named @p_1852))) :rule cong :premises (t363.t10)) +(step t363.t12 (cl (= @p_1820 (! (or @p_1325 @p_1852) :named @p_1854))) :rule cong :premises (t363.t11)) +(step t363.t13 (cl (! (= @p_1823 (! (=> @p_1853 @p_1854) :named @p_1856)) :named @p_1855)) :rule cong :premises (t363.t9 t363.t12)) +(step t363.t14 (cl (not @p_1855) (not @p_1823) @p_1856) :rule equiv_pos2) +(step t363.t15 (cl @p_1856) :rule th_resolution :premises (t363.t8 t363.t13 t363.t14)) +(anchor :step t363.t16 :args ((:= (veriT_vr243 A$) veriT_sk41) (:= (veriT_vr244 C$) veriT_sk42))) +(step t363.t16.t1 (cl (! (= veriT_vr243 veriT_sk41) :named @p_1859)) :rule refl) +(step t363.t16.t2 (cl (! (= @p_1825 (! (fun_app$ veriT_sk0 veriT_sk41) :named @p_1858)) :named @p_1863)) :rule cong :premises (t363.t16.t1)) +(step t363.t16.t3 (cl (! (= veriT_vr244 veriT_sk42) :named @p_1861)) :rule refl) +(step t363.t16.t4 (cl (! (= @p_1761 (! (run$ @p_1858 veriT_sk42) :named @p_1776)) :named @p_1864)) :rule cong :premises (t363.t16.t2 t363.t16.t3)) +(step t363.t16.t5 (cl (! (= @p_1759 (! (is_fail$ @p_1776) :named @p_1768)) :named @p_1865)) :rule cong :premises (t363.t16.t4)) +(step t363.t16.t6 (cl @p_1859) :rule refl) +(step t363.t16.t7 (cl (! (= @p_1827 (! (fun_app$ veriT_sk1 veriT_sk41) :named @p_1860)) :named @p_1868)) :rule cong :premises (t363.t16.t6)) +(step t363.t16.t8 (cl @p_1861) :rule refl) +(step t363.t16.t9 (cl (! (= @p_1760 (! (run$ @p_1860 veriT_sk42) :named @p_1769)) :named @p_1869)) :rule cong :premises (t363.t16.t7 t363.t16.t8)) +(step t363.t16.t10 (cl (= @p_1829 (! (is_fail$ @p_1769) :named @p_1862))) :rule cong :premises (t363.t16.t9)) +(step t363.t16.t11 (cl @p_1859) :rule refl) +(step t363.t16.t12 (cl @p_1863) :rule cong :premises (t363.t16.t11)) +(step t363.t16.t13 (cl @p_1861) :rule refl) +(step t363.t16.t14 (cl @p_1864) :rule cong :premises (t363.t16.t12 t363.t16.t13)) +(step t363.t16.t15 (cl @p_1865) :rule cong :premises (t363.t16.t14)) +(step t363.t16.t16 (cl (= @p_1833 (! (= @p_1862 @p_1768) :named @p_1866))) :rule cong :premises (t363.t16.t10 t363.t16.t15)) +(anchor :step t363.t16.t17 :args ((:= (veriT_vr245 B$) veriT_sk43) (:= (veriT_vr246 C$) veriT_sk44))) +(step t363.t16.t17.t1 (cl @p_1859) :rule refl) +(step t363.t16.t17.t2 (cl @p_1868) :rule cong :premises (t363.t16.t17.t1)) +(step t363.t16.t17.t3 (cl @p_1861) :rule refl) +(step t363.t16.t17.t4 (cl @p_1869) :rule cong :premises (t363.t16.t17.t2 t363.t16.t17.t3)) +(step t363.t16.t17.t5 (cl (! (= veriT_vr245 veriT_sk43) :named @p_1872)) :rule refl) +(step t363.t16.t17.t6 (cl (! (= veriT_vr246 veriT_sk44) :named @p_1873)) :rule refl) +(step t363.t16.t17.t7 (cl (! (= @p_1762 (! (pair$ veriT_sk43 veriT_sk44) :named @p_1777)) :named @p_1874)) :rule cong :premises (t363.t16.t17.t5 t363.t16.t17.t6)) +(step t363.t16.t17.t8 (cl (= @p_1837 (! (is_res$ @p_1769 @p_1777) :named @p_1871))) :rule cong :premises (t363.t16.t17.t4 t363.t16.t17.t7)) +(step t363.t16.t17.t9 (cl @p_1859) :rule refl) +(step t363.t16.t17.t10 (cl @p_1863) :rule cong :premises (t363.t16.t17.t9)) +(step t363.t16.t17.t11 (cl @p_1861) :rule refl) +(step t363.t16.t17.t12 (cl @p_1864) :rule cong :premises (t363.t16.t17.t10 t363.t16.t17.t11)) +(step t363.t16.t17.t13 (cl @p_1872) :rule refl) +(step t363.t16.t17.t14 (cl @p_1873) :rule refl) +(step t363.t16.t17.t15 (cl @p_1874) :rule cong :premises (t363.t16.t17.t13 t363.t16.t17.t14)) +(step t363.t16.t17.t16 (cl (= @p_1841 (! (is_res$ @p_1776 @p_1777) :named @p_1875))) :rule cong :premises (t363.t16.t17.t12 t363.t16.t17.t15)) +(step t363.t16.t17.t17 (cl (= @p_1842 (! (= @p_1871 @p_1875) :named @p_1867))) :rule cong :premises (t363.t16.t17.t8 t363.t16.t17.t16)) +(step t363.t16.t17 (cl (= @p_1834 @p_1867)) :rule sko_forall) +(step t363.t16.t18 (cl (= @p_1843 (! (and @p_1866 @p_1867) :named @p_1876))) :rule cong :premises (t363.t16.t16 t363.t16.t17)) +(step t363.t16.t19 (cl (= @p_1824 (! (or @p_1768 @p_1876) :named @p_1857))) :rule cong :premises (t363.t16.t5 t363.t16.t18)) +(step t363.t16 (cl (= @p_1853 @p_1857)) :rule sko_forall) +(step t363.t17 (cl (! (= @p_1856 (! (=> @p_1857 @p_1854) :named @p_1878)) :named @p_1877)) :rule cong :premises (t363.t16)) +(step t363.t18 (cl (not @p_1877) (not @p_1856) @p_1878) :rule equiv_pos2) +(step t363.t19 (cl @p_1878) :rule th_resolution :premises (t363.t15 t363.t17 t363.t18)) +(anchor :step t363.t20 :args ((:= (veriT_vr247 F$) veriT_vr249) (:= (veriT_vr248 D$) veriT_vr250))) +(step t363.t20.t1 (cl (! (= veriT_vr247 veriT_vr249) :named @p_1881)) :rule refl) +(step t363.t20.t2 (cl (! (= veriT_vr248 veriT_vr250) :named @p_1882)) :rule refl) +(step t363.t20.t3 (cl (! (= @p_1844 (! (pair$b veriT_vr249 veriT_vr250) :named @p_1779)) :named @p_1883)) :rule cong :premises (t363.t20.t1 t363.t20.t2)) +(step t363.t20.t4 (cl (= @p_1845 (! (is_res$b @p_1757 @p_1779) :named @p_1880))) :rule cong :premises (t363.t20.t3)) +(step t363.t20.t5 (cl @p_1881) :rule refl) +(step t363.t20.t6 (cl @p_1882) :rule refl) +(step t363.t20.t7 (cl @p_1883) :rule cong :premises (t363.t20.t5 t363.t20.t6)) +(step t363.t20.t8 (cl (= @p_1849 (! (is_res$b @p_846 @p_1779) :named @p_1884))) :rule cong :premises (t363.t20.t7)) +(step t363.t20.t9 (cl (= @p_1850 (! (= @p_1880 @p_1884) :named @p_1885))) :rule cong :premises (t363.t20.t4 t363.t20.t8)) +(step t363.t20 (cl (= @p_1851 (! (forall ((veriT_vr249 F$) (veriT_vr250 D$)) @p_1885) :named @p_1879))) :rule bind) +(step t363.t21 (cl (= @p_1852 (! (and @p_1778 @p_1879) :named @p_1886))) :rule cong :premises (t363.t20)) +(step t363.t22 (cl (= @p_1854 (! (or @p_1325 @p_1886) :named @p_1887))) :rule cong :premises (t363.t21)) +(step t363.t23 (cl (! (= @p_1878 (! (=> @p_1857 @p_1887) :named @p_1888)) :named @p_1889)) :rule cong :premises (t363.t22)) +(step t363.t24 (cl (not @p_1889) (not @p_1878) @p_1888) :rule equiv_pos2) +(step t363.t25 (cl @p_1888) :rule th_resolution :premises (t363.t19 t363.t23 t363.t24)) +(step t363 (cl @p_1822 @p_1888) :rule subproof :discharge (h1)) +(step t364 (cl @p_1385 @p_1758) :rule or :premises (t362)) +(step t365 (cl (! (or @p_1385 @p_1888) :named @p_1890) @p_1533) :rule or_neg) +(step t366 (cl @p_1890 @p_1154) :rule th_resolution :premises (t159 t365)) +(step t367 (cl @p_1890 (! (not @p_1888) :named @p_1891)) :rule or_neg) +(step t368 (cl @p_1890) :rule th_resolution :premises (t364 t363 t366 t367)) +(step t369 (cl @p_1857 (not @p_1768)) :rule or_neg) +(step t370 (cl @p_1866 @p_1862 @p_1768) :rule equiv_neg2) +(step t371 (cl @p_1867 (! (not @p_1871) :named @p_1900) (! (not @p_1875) :named @p_1904)) :rule equiv_neg1) +(step t372 (cl @p_1867 @p_1871 @p_1875) :rule equiv_neg2) +(step t373 (cl @p_1876 (not @p_1866) (not @p_1867)) :rule and_neg) +(step t374 (cl @p_1857 (not @p_1876)) :rule or_neg) +(step t375 (cl (not @p_1886) @p_1879) :rule and_pos) +(step t376 (cl (! (not @p_1887) :named @p_1916) @p_1325 @p_1886) :rule or_pos) +(step t377 (cl @p_1891 (not @p_1857) @p_1887) :rule implies_pos) +(step t378 (cl @p_1385 @p_1888) :rule or :premises (t368)) +(step t379 (cl @p_1888) :rule resolution :premises (t378 t119)) +(step t380 (cl (or @p_1341 (! (or @p_1768 (! (not @p_1862) :named @p_1895) @p_1768) :named @p_1892))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk41) (:= veriT_vr104 veriT_sk42))) +(step t381 (cl @p_1341 @p_1892) :rule or :premises (t380)) +(step t382 (cl (! (or @p_1187 @p_1892) :named @p_1893) @p_1343) :rule or_neg) +(step t383 (cl @p_1893 @p_1155) :rule th_resolution :premises (t198 t382)) +(step t384 (cl @p_1893 (! (not @p_1892) :named @p_1894)) :rule or_neg) +(step t385 (cl @p_1893) :rule th_resolution :premises (t194 t381 t383 t384)) +(anchor :step t386) +(assume t386.h1 @p_1892) +(step t386.t2 (cl (! (= @p_1892 (! (or @p_1768 @p_1895) :named @p_1896)) :named @p_1897)) :rule ac_simp) +(step t386.t3 (cl (not @p_1897) @p_1894 @p_1896) :rule equiv_pos2) +(step t386.t4 (cl @p_1896) :rule th_resolution :premises (t386.h1 t386.t2 t386.t3)) +(step t386 (cl @p_1894 @p_1896) :rule subproof :discharge (h1)) +(step t387 (cl @p_1187 @p_1892) :rule or :premises (t385)) +(step t388 (cl (! (or @p_1187 @p_1896) :named @p_1898) @p_1343) :rule or_neg) +(step t389 (cl @p_1898 @p_1155) :rule th_resolution :premises (t198 t388)) +(step t390 (cl @p_1898 (! (not @p_1896) :named @p_1899)) :rule or_neg) +(step t391 (cl @p_1898) :rule th_resolution :premises (t387 t386 t389 t390)) +(step t392 (cl @p_1899 @p_1768 @p_1895) :rule or_pos) +(step t393 (cl @p_1187 @p_1896) :rule or :premises (t391)) +(step t394 (cl @p_1896) :rule resolution :premises (t393 t120)) +(step t395 (cl (or @p_1697 (! (or @p_1768 @p_1900 @p_1875) :named @p_1901))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk41) (:= veriT_vr104 veriT_sk42) (:= veriT_vr105 veriT_sk43) (:= veriT_vr106 veriT_sk44))) +(step t396 (cl @p_1697 @p_1901) :rule or :premises (t395)) +(step t397 (cl (! (or @p_1187 @p_1901) :named @p_1902) @p_1343) :rule or_neg) +(step t398 (cl @p_1902 @p_1155) :rule th_resolution :premises (t198 t397)) +(step t399 (cl @p_1902 (! (not @p_1901) :named @p_1903)) :rule or_neg) +(step t400 (cl @p_1902) :rule th_resolution :premises (t211 t396 t398 t399)) +(step t401 (cl @p_1903 @p_1768 @p_1900 @p_1875) :rule or_pos) +(step t402 (cl @p_1187 @p_1901) :rule or :premises (t400)) +(step t403 (cl @p_1901) :rule resolution :premises (t402 t120)) +(step t404 (cl @p_1768 @p_1875 @p_1867) :rule resolution :premises (t401 t372 t403)) +(step t405 (cl (or @p_1706 (! (or @p_1768 @p_1904 @p_1871) :named @p_1905))) :rule forall_inst :args ((:= veriT_vr103 veriT_sk41) (:= veriT_vr104 veriT_sk42) (:= veriT_vr105 veriT_sk43) (:= veriT_vr106 veriT_sk44))) +(step t406 (cl @p_1706 @p_1905) :rule or :premises (t405)) +(step t407 (cl (! (or @p_1187 @p_1905) :named @p_1906) @p_1343) :rule or_neg) +(step t408 (cl @p_1906 @p_1155) :rule th_resolution :premises (t198 t407)) +(step t409 (cl @p_1906 (! (not @p_1905) :named @p_1907)) :rule or_neg) +(step t410 (cl @p_1906) :rule th_resolution :premises (t212 t406 t408 t409)) +(step t411 (cl @p_1907 @p_1768 @p_1904 @p_1871) :rule or_pos) +(step t412 (cl @p_1187 @p_1905) :rule or :premises (t410)) +(step t413 (cl @p_1905) :rule resolution :premises (t412 t120)) +(step t414 (cl (or (! (not @p_1879) :named @p_1908) (! (forall ((veriT_vr249 F$) (veriT_vr250 D$)) (or (not @p_1884) @p_1880)) :named @p_1909))) :rule qnt_cnf) +(step t415 (cl @p_1908 @p_1909) :rule or :premises (t414)) +(step t416 (cl (or (! (not @p_1909) :named @p_1910) (! (or (! (not @p_847) :named @p_1915) @p_1753) :named @p_1911))) :rule forall_inst :args ((:= veriT_vr249 veriT_sk7) (:= veriT_vr250 veriT_sk8))) +(step t417 (cl @p_1910 @p_1911) :rule or :premises (t416)) +(step t418 (cl (! (or @p_1908 @p_1911) :named @p_1913) (! (not @p_1908) :named @p_1912)) :rule or_neg) +(step t419 (cl (not @p_1912) @p_1879) :rule not_not) +(step t420 (cl @p_1913 @p_1879) :rule th_resolution :premises (t419 t418)) +(step t421 (cl @p_1913 (! (not @p_1911) :named @p_1914)) :rule or_neg) +(step t422 (cl @p_1913) :rule th_resolution :premises (t415 t417 t420 t421)) +(step t423 (cl @p_1914 @p_1915 @p_1753) :rule or_pos) +(step t424 (cl @p_1908 @p_1911) :rule or :premises (t422)) +(step t425 (cl @p_1916 @p_820 @p_780 @p_1335) :rule resolution :premises (t424 t423 t375 t355 t376 t244 t172 t356 t142 t141 t147 t151 t148 t144 t149 t136 t130 t135 t129 t245 t191 t187 t186 t174 t171)) +(step t426 (cl @p_1287) :rule resolution :premises (t357 t183 t246 t182 t247 t208 t184 t181 t249 t210)) +(step t427 (cl @p_1317) :rule resolution :premises (t189 t426 t193)) +(step t428 (cl @p_1316) :rule resolution :premises (t192 t427)) +(step t429 (cl @p_1208) :rule resolution :premises (t186 t428)) +(step t430 (cl @p_1309) :rule resolution :premises (t187 t428)) +(step t431 (cl @p_1338) :rule resolution :premises (t191 t429)) +(step t432 (cl @p_1672) :rule resolution :premises (t241 t430)) +(step t433 (cl @p_1673) :rule resolution :premises (t243 t430)) +(step t434 (cl @p_1857) :rule resolution :premises (t411 t371 t404 t373 t370 t392 t374 t369 t413 t394)) +(step t435 (cl @p_1887) :rule resolution :premises (t377 t434 t379)) +(step t436 (cl @p_1400 @p_1518 @p_1510) :rule resolution :premises (t315 t253 t317)) +(step t437 (cl (or (! (not @p_1741) :named @p_1917) (! (forall ((veriT_vr209 B$) (veriT_vr210 C$)) (or (not @p_1746) @p_1742)) :named @p_1918))) :rule qnt_cnf) +(step t438 (cl @p_1917 @p_1918) :rule or :premises (t437)) +(step t439 (cl (or (! (not @p_1918) :named @p_1920) (! (or @p_1919 @p_1514) :named @p_1921))) :rule forall_inst :args ((:= veriT_vr209 veriT_sk27) (:= veriT_vr210 veriT_sk28))) +(step t440 (cl @p_1920 @p_1921) :rule or :premises (t439)) +(step t441 (cl (! (or @p_1917 @p_1921) :named @p_1923) (! (not @p_1917) :named @p_1922)) :rule or_neg) +(step t442 (cl (not @p_1922) @p_1741) :rule not_not) +(step t443 (cl @p_1923 @p_1741) :rule th_resolution :premises (t442 t441)) +(step t444 (cl @p_1923 (! (not @p_1921) :named @p_1924)) :rule or_neg) +(step t445 (cl @p_1923) :rule th_resolution :premises (t438 t440 t443 t444)) +(step t446 (cl @p_1924 @p_1919 @p_1514) :rule or_pos) +(step t447 (cl @p_1917 @p_1921) :rule or :premises (t445)) +(step t448 (cl @p_1500) :rule resolution :premises (t446 t252 t436 t447 t254 t358 t251 t359 t297 t255 t250 t361 t299)) +(step t449 (cl @p_1530) :rule resolution :premises (t259 t448 t261)) +(step t450 (cl @p_1178) :rule resolution :premises (t331 t449 t433)) +(step t451 (cl @p_820) :rule resolution :premises (t425 t450 t428 t435)) +(step t452 (cl @p_1925) :rule resolution :premises (t129 t450 t431)) +(step t453 (cl @p_1165) :rule resolution :premises (t354 t451)) +(step t454 (cl @p_1167) :rule resolution :premises (t130 t452)) +(step t455 (cl @p_1166) :rule resolution :premises (t147 t453)) +(step t456 (cl @p_1170) :rule resolution :premises (t148 t455)) +(step t457 (cl @p_1926) :rule resolution :premises (t149 t456 t171 t454)) +(step t458 (cl @p_1927) :rule resolution :premises (t140 t457)) +(step t459 (cl @p_1181) :rule resolution :premises (t139 t458)) +(step t460 (cl @p_1671) :rule resolution :premises (t239 t459)) +(step t461 (cl @p_1720) :rule resolution :premises (t343 t460 t432 t451)) +(step t462 (cl @p_1928) :rule resolution :premises (t270 t461 t272)) +(step t463 (cl @p_1929) :rule resolution :premises (t262 t462)) +(step t464 (cl @p_1930) :rule resolution :premises (t267 t462)) +(step t465 (cl @p_1690) :rule resolution :premises (t300 t463 t302)) +(step t466 (cl @p_1643) :rule resolution :premises (t263 t465 t463)) +(step t467 (cl @p_1931) :rule resolution :premises (t266 t466 t464)) +(step t468 (cl @p_1652) :rule resolution :premises (t321 t467 t463)) +(step t469 (cl @p_1700) :rule resolution :premises (t264 t468 t467)) +(step t470 (cl) :rule resolution :premises (t328 t468 t463 t330 t469)) +a352c3d2d258129c9c0fa30de525ad6ea4644748 543 0 +unsat +(define-fun veriT_sk0 () Exp$ (! (choice ((veriT_vr40 Exp$)) (not (! (=> (! (member$ veriT_vr40 (! (myset$ z$) :named @p_199)) :named @p_278) (! (not (! (forall ((veriT_vr41 FreeExp$)) (! (not (! (= veriT_vr40 (! (fun_app$ uu$ veriT_vr41) :named @p_281)) :named @p_282)) :named @p_283)) :named @p_279)) :named @p_284)) :named @p_277))) :named @p_201)) +(define-fun veriT_sk1 () FreeExp_list$ (! (choice ((veriT_vr42 FreeExp_list$)) (! (= z$ (! (map2$ uu$ veriT_vr42) :named @p_286)) :named @p_285)) :named @p_301)) +(define-fun veriT_sk2 () FreeExp$ (! (choice ((veriT_vr48 FreeExp$)) (not (! (not (! (= veriT_sk0 (! (abs_Exp$ (! (myImage$ exprel$ (! (insert$ veriT_vr48 bot$) :named @p_356)) :named @p_357)) :named @p_358)) :named @p_359)) :named @p_355))) :named @p_366)) +(assume axiom0 (! (forall ((?v0 FreeExp$)) (! (= (! (fun_app$ uu$ ?v0) :named @p_3) (! (abs_Exp$ (! (myImage$ exprel$ (! (insert$ ?v0 bot$) :named @p_6)) :named @p_8)) :named @p_10)) :named @p_12)) :named @p_2)) +(assume axiom1 (! (forall ((?v0 FreeExp_list$)) (! (= (! (abs_ExpList$ ?v0) :named @p_1) (! (map2$ uu$ ?v0) :named @p_27)) :named @p_29)) :named @p_24)) +(assume axiom2 (! (forall ((?v0 Exp$)) (! (=> (! (forall ((?v1 FreeExp$)) (! (=> (! (= ?v0 (! (abs_Exp$ (! (myImage$ exprel$ (! (insert$ ?v1 bot$) :named @p_42)) :named @p_44)) :named @p_46)) :named @p_48) false) :named @p_50)) :named @p_40) false) :named @p_52)) :named @p_39)) +(assume axiom3 (! (forall ((?v0 Exp_list$) (?v1 FreeExp_exp_fun$)) (! (= (! (exists ((?v2 FreeExp_list$)) (! (= ?v0 (! (map2$ ?v1 ?v2) :named @p_74)) :named @p_76)) :named @p_72) (! (forall ((?v2 Exp$)) (! (=> (! (member$ ?v2 (! (myset$ ?v0) :named @p_81)) :named @p_83) (! (exists ((?v3 FreeExp$)) (! (= ?v2 (! (fun_app$ ?v1 ?v3) :named @p_89)) :named @p_91)) :named @p_85)) :named @p_93)) :named @p_78)) :named @p_95)) :named @p_71)) +(assume axiom4 (! (not (! (exists ((?v0 FreeExp_list$)) (! (= @p_1 z$) :named @p_178)) :named @p_176)) :named @p_180)) +(anchor :step t6 :args ((:= (?v0 FreeExp$) veriT_vr0))) +(step t6.t1 (cl (! (= ?v0 veriT_vr0) :named @p_5)) :rule refl) +(step t6.t2 (cl (= @p_3 (! (fun_app$ uu$ veriT_vr0) :named @p_4))) :rule cong :premises (t6.t1)) +(step t6.t3 (cl @p_5) :rule refl) +(step t6.t4 (cl (= @p_6 (! (insert$ veriT_vr0 bot$) :named @p_7))) :rule cong :premises (t6.t3)) +(step t6.t5 (cl (= @p_8 (! (myImage$ exprel$ @p_7) :named @p_9))) :rule cong :premises (t6.t4)) +(step t6.t6 (cl (= @p_10 (! (abs_Exp$ @p_9) :named @p_11))) :rule cong :premises (t6.t5)) +(step t6.t7 (cl (= @p_12 (! (= @p_4 @p_11) :named @p_13))) :rule cong :premises (t6.t2 t6.t6)) +(step t6 (cl (! (= @p_2 (! (forall ((veriT_vr0 FreeExp$)) @p_13) :named @p_15)) :named @p_14)) :rule bind) +(step t7 (cl (not @p_14) (not @p_2) @p_15) :rule equiv_pos2) +(step t8 (cl @p_15) :rule th_resolution :premises (axiom0 t6 t7)) +(anchor :step t9 :args ((:= (veriT_vr0 FreeExp$) veriT_vr1))) +(step t9.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_17)) :rule refl) +(step t9.t2 (cl (= @p_4 (! (fun_app$ uu$ veriT_vr1) :named @p_16))) :rule cong :premises (t9.t1)) +(step t9.t3 (cl @p_17) :rule refl) +(step t9.t4 (cl (= @p_7 (! (insert$ veriT_vr1 bot$) :named @p_18))) :rule cong :premises (t9.t3)) +(step t9.t5 (cl (= @p_9 (! (myImage$ exprel$ @p_18) :named @p_19))) :rule cong :premises (t9.t4)) +(step t9.t6 (cl (= @p_11 (! (abs_Exp$ @p_19) :named @p_20))) :rule cong :premises (t9.t5)) +(step t9.t7 (cl (= @p_13 (! (= @p_16 @p_20) :named @p_21))) :rule cong :premises (t9.t2 t9.t6)) +(step t9 (cl (! (= @p_15 (! (forall ((veriT_vr1 FreeExp$)) @p_21) :named @p_23)) :named @p_22)) :rule bind) +(step t10 (cl (not @p_22) (not @p_15) @p_23) :rule equiv_pos2) +(step t11 (cl @p_23) :rule th_resolution :premises (t8 t9 t10)) +(anchor :step t12 :args ((:= (?v0 FreeExp_list$) veriT_vr2))) +(step t12.t1 (cl (! (= ?v0 veriT_vr2) :named @p_26)) :rule refl) +(step t12.t2 (cl (= @p_1 (! (abs_ExpList$ veriT_vr2) :named @p_25))) :rule cong :premises (t12.t1)) +(step t12.t3 (cl @p_26) :rule refl) +(step t12.t4 (cl (= @p_27 (! (map2$ uu$ veriT_vr2) :named @p_28))) :rule cong :premises (t12.t3)) +(step t12.t5 (cl (= @p_29 (! (= @p_25 @p_28) :named @p_30))) :rule cong :premises (t12.t2 t12.t4)) +(step t12 (cl (! (= @p_24 (! (forall ((veriT_vr2 FreeExp_list$)) @p_30) :named @p_32)) :named @p_31)) :rule bind) +(step t13 (cl (not @p_31) (not @p_24) @p_32) :rule equiv_pos2) +(step t14 (cl @p_32) :rule th_resolution :premises (axiom1 t12 t13)) +(anchor :step t15 :args ((:= (veriT_vr2 FreeExp_list$) veriT_vr3))) +(step t15.t1 (cl (! (= veriT_vr2 veriT_vr3) :named @p_34)) :rule refl) +(step t15.t2 (cl (= @p_25 (! (abs_ExpList$ veriT_vr3) :named @p_33))) :rule cong :premises (t15.t1)) +(step t15.t3 (cl @p_34) :rule refl) +(step t15.t4 (cl (= @p_28 (! (map2$ uu$ veriT_vr3) :named @p_35))) :rule cong :premises (t15.t3)) +(step t15.t5 (cl (= @p_30 (! (= @p_33 @p_35) :named @p_36))) :rule cong :premises (t15.t2 t15.t4)) +(step t15 (cl (! (= @p_32 (! (forall ((veriT_vr3 FreeExp_list$)) @p_36) :named @p_38)) :named @p_37)) :rule bind) +(step t16 (cl (not @p_37) (not @p_32) @p_38) :rule equiv_pos2) +(step t17 (cl @p_38) :rule th_resolution :premises (t14 t15 t16)) +(anchor :step t18 :args ((:= (?v0 Exp$) veriT_vr4))) +(anchor :step t18.t1 :args ((:= (?v1 FreeExp$) veriT_vr5))) +(step t18.t1.t1 (cl (= ?v0 veriT_vr4)) :rule refl) +(step t18.t1.t2 (cl (= ?v1 veriT_vr5)) :rule refl) +(step t18.t1.t3 (cl (= @p_42 (! (insert$ veriT_vr5 bot$) :named @p_43))) :rule cong :premises (t18.t1.t2)) +(step t18.t1.t4 (cl (= @p_44 (! (myImage$ exprel$ @p_43) :named @p_45))) :rule cong :premises (t18.t1.t3)) +(step t18.t1.t5 (cl (= @p_46 (! (abs_Exp$ @p_45) :named @p_47))) :rule cong :premises (t18.t1.t4)) +(step t18.t1.t6 (cl (= @p_48 (! (= veriT_vr4 @p_47) :named @p_49))) :rule cong :premises (t18.t1.t1 t18.t1.t5)) +(step t18.t1.t7 (cl (= @p_50 (! (=> @p_49 false) :named @p_51))) :rule cong :premises (t18.t1.t6)) +(step t18.t1 (cl (= @p_40 (! (forall ((veriT_vr5 FreeExp$)) @p_51) :named @p_41))) :rule bind) +(step t18.t2 (cl (= @p_52 (! (=> @p_41 false) :named @p_53))) :rule cong :premises (t18.t1)) +(step t18 (cl (! (= @p_39 (! (forall ((veriT_vr4 Exp$)) @p_53) :named @p_55)) :named @p_54)) :rule bind) +(step t19 (cl (not @p_54) (not @p_39) @p_55) :rule equiv_pos2) +(step t20 (cl @p_55) :rule th_resolution :premises (axiom2 t18 t19)) +(anchor :step t21 :args ((veriT_vr4 Exp$))) +(anchor :step t21.t1 :args ((veriT_vr5 FreeExp$))) +(step t21.t1.t1 (cl (= @p_51 (! (not @p_49) :named @p_57))) :rule implies_simplify) +(step t21.t1 (cl (= @p_41 (! (forall ((veriT_vr5 FreeExp$)) @p_57) :named @p_56))) :rule bind) +(step t21.t2 (cl (= @p_53 (! (=> @p_56 false) :named @p_58))) :rule cong :premises (t21.t1)) +(step t21.t3 (cl (= @p_58 (! (not @p_56) :named @p_59))) :rule implies_simplify) +(step t21.t4 (cl (= @p_53 @p_59)) :rule trans :premises (t21.t2 t21.t3)) +(step t21 (cl (! (= @p_55 (! (forall ((veriT_vr4 Exp$)) @p_59) :named @p_61)) :named @p_60)) :rule bind) +(step t22 (cl (not @p_60) (not @p_55) @p_61) :rule equiv_pos2) +(step t23 (cl @p_61) :rule th_resolution :premises (t20 t21 t22)) +(anchor :step t24 :args ((:= (veriT_vr4 Exp$) veriT_vr6))) +(anchor :step t24.t1 :args ((:= (veriT_vr5 FreeExp$) veriT_vr7))) +(step t24.t1.t1 (cl (= veriT_vr4 veriT_vr6)) :rule refl) +(step t24.t1.t2 (cl (= veriT_vr5 veriT_vr7)) :rule refl) +(step t24.t1.t3 (cl (= @p_43 (! (insert$ veriT_vr7 bot$) :named @p_63))) :rule cong :premises (t24.t1.t2)) +(step t24.t1.t4 (cl (= @p_45 (! (myImage$ exprel$ @p_63) :named @p_64))) :rule cong :premises (t24.t1.t3)) +(step t24.t1.t5 (cl (= @p_47 (! (abs_Exp$ @p_64) :named @p_65))) :rule cong :premises (t24.t1.t4)) +(step t24.t1.t6 (cl (= @p_49 (! (= veriT_vr6 @p_65) :named @p_66))) :rule cong :premises (t24.t1.t1 t24.t1.t5)) +(step t24.t1.t7 (cl (= @p_57 (! (not @p_66) :named @p_67))) :rule cong :premises (t24.t1.t6)) +(step t24.t1 (cl (= @p_56 (! (forall ((veriT_vr7 FreeExp$)) @p_67) :named @p_62))) :rule bind) +(step t24.t2 (cl (= @p_59 (! (not @p_62) :named @p_68))) :rule cong :premises (t24.t1)) +(step t24 (cl (! (= @p_61 (! (forall ((veriT_vr6 Exp$)) @p_68) :named @p_70)) :named @p_69)) :rule bind) +(step t25 (cl (not @p_69) (not @p_61) @p_70) :rule equiv_pos2) +(step t26 (cl @p_70) :rule th_resolution :premises (t23 t24 t25)) +(anchor :step t27 :args ((:= (?v0 Exp_list$) veriT_vr8) (:= (?v1 FreeExp_exp_fun$) veriT_vr9))) +(anchor :step t27.t1 :args ((:= (?v2 FreeExp_list$) veriT_vr10))) +(step t27.t1.t1 (cl (! (= ?v0 veriT_vr8) :named @p_80)) :rule refl) +(step t27.t1.t2 (cl (! (= ?v1 veriT_vr9) :named @p_88)) :rule refl) +(step t27.t1.t3 (cl (= ?v2 veriT_vr10)) :rule refl) +(step t27.t1.t4 (cl (= @p_74 (! (map2$ veriT_vr9 veriT_vr10) :named @p_75))) :rule cong :premises (t27.t1.t2 t27.t1.t3)) +(step t27.t1.t5 (cl (= @p_76 (! (= veriT_vr8 @p_75) :named @p_77))) :rule cong :premises (t27.t1.t1 t27.t1.t4)) +(step t27.t1 (cl (= @p_72 (! (exists ((veriT_vr10 FreeExp_list$)) @p_77) :named @p_73))) :rule bind) +(anchor :step t27.t2 :args ((:= (?v2 Exp$) veriT_vr11))) +(step t27.t2.t1 (cl (! (= ?v2 veriT_vr11) :named @p_87)) :rule refl) +(step t27.t2.t2 (cl @p_80) :rule refl) +(step t27.t2.t3 (cl (= @p_81 (! (myset$ veriT_vr8) :named @p_82))) :rule cong :premises (t27.t2.t2)) +(step t27.t2.t4 (cl (= @p_83 (! (member$ veriT_vr11 @p_82) :named @p_84))) :rule cong :premises (t27.t2.t1 t27.t2.t3)) +(anchor :step t27.t2.t5 :args ((:= (?v3 FreeExp$) veriT_vr12))) +(step t27.t2.t5.t1 (cl @p_87) :rule refl) +(step t27.t2.t5.t2 (cl @p_88) :rule refl) +(step t27.t2.t5.t3 (cl (= ?v3 veriT_vr12)) :rule refl) +(step t27.t2.t5.t4 (cl (= @p_89 (! (fun_app$ veriT_vr9 veriT_vr12) :named @p_90))) :rule cong :premises (t27.t2.t5.t2 t27.t2.t5.t3)) +(step t27.t2.t5.t5 (cl (= @p_91 (! (= veriT_vr11 @p_90) :named @p_92))) :rule cong :premises (t27.t2.t5.t1 t27.t2.t5.t4)) +(step t27.t2.t5 (cl (= @p_85 (! (exists ((veriT_vr12 FreeExp$)) @p_92) :named @p_86))) :rule bind) +(step t27.t2.t6 (cl (= @p_93 (! (=> @p_84 @p_86) :named @p_94))) :rule cong :premises (t27.t2.t4 t27.t2.t5)) +(step t27.t2 (cl (= @p_78 (! (forall ((veriT_vr11 Exp$)) @p_94) :named @p_79))) :rule bind) +(step t27.t3 (cl (= @p_95 (! (= @p_73 @p_79) :named @p_96))) :rule cong :premises (t27.t1 t27.t2)) +(step t27 (cl (! (= @p_71 (! (forall ((veriT_vr8 Exp_list$) (veriT_vr9 FreeExp_exp_fun$)) @p_96) :named @p_98)) :named @p_97)) :rule bind) +(step t28 (cl (not @p_97) (not @p_71) @p_98) :rule equiv_pos2) +(step t29 (cl @p_98) :rule th_resolution :premises (axiom3 t27 t28)) +(anchor :step t30 :args ((veriT_vr8 Exp_list$) (veriT_vr9 FreeExp_exp_fun$))) +(step t30.t1 (cl (= @p_96 (! (and (! (=> @p_73 @p_79) :named @p_115) (! (=> @p_79 @p_73) :named @p_128)) :named @p_99))) :rule connective_def) +(step t30 (cl (! (= @p_98 (! (forall ((veriT_vr8 Exp_list$) (veriT_vr9 FreeExp_exp_fun$)) @p_99) :named @p_101)) :named @p_100)) :rule bind) +(step t31 (cl (not @p_100) (not @p_98) @p_101) :rule equiv_pos2) +(step t32 (cl @p_101) :rule th_resolution :premises (t29 t30 t31)) +(anchor :step t33 :args ((:= (veriT_vr8 Exp_list$) veriT_vr13) (:= (veriT_vr9 FreeExp_exp_fun$) veriT_vr14))) +(anchor :step t33.t1 :args ((:= (veriT_vr10 FreeExp_list$) veriT_vr15))) +(step t33.t1.t1 (cl (! (= veriT_vr8 veriT_vr13) :named @p_107)) :rule refl) +(step t33.t1.t2 (cl (! (= veriT_vr9 veriT_vr14) :named @p_111)) :rule refl) +(step t33.t1.t3 (cl (= veriT_vr10 veriT_vr15)) :rule refl) +(step t33.t1.t4 (cl (= @p_75 (! (map2$ veriT_vr14 veriT_vr15) :named @p_104))) :rule cong :premises (t33.t1.t2 t33.t1.t3)) +(step t33.t1.t5 (cl (= @p_77 (! (= veriT_vr13 @p_104) :named @p_105))) :rule cong :premises (t33.t1.t1 t33.t1.t4)) +(step t33.t1 (cl (= @p_73 (! (exists ((veriT_vr15 FreeExp_list$)) @p_105) :named @p_103))) :rule bind) +(anchor :step t33.t2 :args ((:= (veriT_vr11 Exp$) veriT_vr16))) +(step t33.t2.t1 (cl (! (= veriT_vr11 veriT_vr16) :named @p_110)) :rule refl) +(step t33.t2.t2 (cl @p_107) :rule refl) +(step t33.t2.t3 (cl (! (= @p_82 (! (myset$ veriT_vr13) :named @p_102)) :named @p_118)) :rule cong :premises (t33.t2.t2)) +(step t33.t2.t4 (cl (= @p_84 (! (member$ veriT_vr16 @p_102) :named @p_108))) :rule cong :premises (t33.t2.t1 t33.t2.t3)) +(anchor :step t33.t2.t5 :args ((:= (veriT_vr12 FreeExp$) veriT_vr17))) +(step t33.t2.t5.t1 (cl @p_110) :rule refl) +(step t33.t2.t5.t2 (cl @p_111) :rule refl) +(step t33.t2.t5.t3 (cl (= veriT_vr12 veriT_vr17)) :rule refl) +(step t33.t2.t5.t4 (cl (= @p_90 (! (fun_app$ veriT_vr14 veriT_vr17) :named @p_112))) :rule cong :premises (t33.t2.t5.t2 t33.t2.t5.t3)) +(step t33.t2.t5.t5 (cl (= @p_92 (! (= veriT_vr16 @p_112) :named @p_113))) :rule cong :premises (t33.t2.t5.t1 t33.t2.t5.t4)) +(step t33.t2.t5 (cl (= @p_86 (! (exists ((veriT_vr17 FreeExp$)) @p_113) :named @p_109))) :rule bind) +(step t33.t2.t6 (cl (= @p_94 (! (=> @p_108 @p_109) :named @p_114))) :rule cong :premises (t33.t2.t4 t33.t2.t5)) +(step t33.t2 (cl (= @p_79 (! (forall ((veriT_vr16 Exp$)) @p_114) :named @p_106))) :rule bind) +(step t33.t3 (cl (= @p_115 (! (=> @p_103 @p_106) :named @p_116))) :rule cong :premises (t33.t1 t33.t2)) +(anchor :step t33.t4 :args ((:= (veriT_vr11 Exp$) veriT_vr18))) +(step t33.t4.t1 (cl (! (= veriT_vr11 veriT_vr18) :named @p_121)) :rule refl) +(step t33.t4.t2 (cl @p_107) :rule refl) +(step t33.t4.t3 (cl @p_118) :rule cong :premises (t33.t4.t2)) +(step t33.t4.t4 (cl (= @p_84 (! (member$ veriT_vr18 @p_102) :named @p_119))) :rule cong :premises (t33.t4.t1 t33.t4.t3)) +(anchor :step t33.t4.t5 :args ((:= (veriT_vr12 FreeExp$) veriT_vr19))) +(step t33.t4.t5.t1 (cl @p_121) :rule refl) +(step t33.t4.t5.t2 (cl @p_111) :rule refl) +(step t33.t4.t5.t3 (cl (= veriT_vr12 veriT_vr19)) :rule refl) +(step t33.t4.t5.t4 (cl (= @p_90 (! (fun_app$ veriT_vr14 veriT_vr19) :named @p_122))) :rule cong :premises (t33.t4.t5.t2 t33.t4.t5.t3)) +(step t33.t4.t5.t5 (cl (= @p_92 (! (= veriT_vr18 @p_122) :named @p_123))) :rule cong :premises (t33.t4.t5.t1 t33.t4.t5.t4)) +(step t33.t4.t5 (cl (= @p_86 (! (exists ((veriT_vr19 FreeExp$)) @p_123) :named @p_120))) :rule bind) +(step t33.t4.t6 (cl (= @p_94 (! (=> @p_119 @p_120) :named @p_124))) :rule cong :premises (t33.t4.t4 t33.t4.t5)) +(step t33.t4 (cl (= @p_79 (! (forall ((veriT_vr18 Exp$)) @p_124) :named @p_117))) :rule bind) +(anchor :step t33.t5 :args ((:= (veriT_vr10 FreeExp_list$) veriT_vr20))) +(step t33.t5.t1 (cl @p_107) :rule refl) +(step t33.t5.t2 (cl @p_111) :rule refl) +(step t33.t5.t3 (cl (= veriT_vr10 veriT_vr20)) :rule refl) +(step t33.t5.t4 (cl (= @p_75 (! (map2$ veriT_vr14 veriT_vr20) :named @p_126))) :rule cong :premises (t33.t5.t2 t33.t5.t3)) +(step t33.t5.t5 (cl (= @p_77 (! (= veriT_vr13 @p_126) :named @p_127))) :rule cong :premises (t33.t5.t1 t33.t5.t4)) +(step t33.t5 (cl (= @p_73 (! (exists ((veriT_vr20 FreeExp_list$)) @p_127) :named @p_125))) :rule bind) +(step t33.t6 (cl (= @p_128 (! (=> @p_117 @p_125) :named @p_129))) :rule cong :premises (t33.t4 t33.t5)) +(step t33.t7 (cl (= @p_99 (! (and @p_116 @p_129) :named @p_130))) :rule cong :premises (t33.t3 t33.t6)) +(step t33 (cl (! (= @p_101 (! (forall ((veriT_vr13 Exp_list$) (veriT_vr14 FreeExp_exp_fun$)) @p_130) :named @p_132)) :named @p_131)) :rule bind) +(step t34 (cl (not @p_131) (not @p_101) @p_132) :rule equiv_pos2) +(step t35 (cl @p_132) :rule th_resolution :premises (t32 t33 t34)) +(anchor :step t36 :args ((:= (veriT_vr13 Exp_list$) veriT_vr21) (:= (veriT_vr14 FreeExp_exp_fun$) veriT_vr22))) +(anchor :step t36.t1 :args ((:= (veriT_vr15 FreeExp_list$) veriT_vr23))) +(step t36.t1.t1 (cl (! (= veriT_vr13 veriT_vr21) :named @p_137)) :rule refl) +(step t36.t1.t2 (cl (! (= veriT_vr14 veriT_vr22) :named @p_142)) :rule refl) +(step t36.t1.t3 (cl (= veriT_vr15 veriT_vr23)) :rule refl) +(step t36.t1.t4 (cl (= @p_104 (! (map2$ veriT_vr22 veriT_vr23) :named @p_135))) :rule cong :premises (t36.t1.t2 t36.t1.t3)) +(step t36.t1.t5 (cl (= @p_105 (! (= veriT_vr21 @p_135) :named @p_136))) :rule cong :premises (t36.t1.t1 t36.t1.t4)) +(step t36.t1 (cl (= @p_103 (! (exists ((veriT_vr23 FreeExp_list$)) @p_136) :named @p_134))) :rule bind) +(anchor :step t36.t2 :args ((:= (veriT_vr16 Exp$) veriT_vr24))) +(step t36.t2.t1 (cl (! (= veriT_vr16 veriT_vr24) :named @p_141)) :rule refl) +(step t36.t2.t2 (cl @p_137) :rule refl) +(step t36.t2.t3 (cl (! (= @p_102 (! (myset$ veriT_vr21) :named @p_138)) :named @p_147)) :rule cong :premises (t36.t2.t2)) +(step t36.t2.t4 (cl (= @p_108 (! (member$ veriT_vr24 @p_138) :named @p_139))) :rule cong :premises (t36.t2.t1 t36.t2.t3)) +(anchor :step t36.t2.t5 :args ((:= (veriT_vr17 FreeExp$) veriT_vr25))) +(step t36.t2.t5.t1 (cl @p_141) :rule refl) +(step t36.t2.t5.t2 (cl @p_142) :rule refl) +(step t36.t2.t5.t3 (cl (= veriT_vr17 veriT_vr25)) :rule refl) +(step t36.t2.t5.t4 (cl (= @p_112 (! (fun_app$ veriT_vr22 veriT_vr25) :named @p_143))) :rule cong :premises (t36.t2.t5.t2 t36.t2.t5.t3)) +(step t36.t2.t5.t5 (cl (= @p_113 (! (= veriT_vr24 @p_143) :named @p_144))) :rule cong :premises (t36.t2.t5.t1 t36.t2.t5.t4)) +(step t36.t2.t5 (cl (= @p_109 (! (exists ((veriT_vr25 FreeExp$)) @p_144) :named @p_140))) :rule bind) +(step t36.t2.t6 (cl (= @p_114 (! (=> @p_139 @p_140) :named @p_145))) :rule cong :premises (t36.t2.t4 t36.t2.t5)) +(step t36.t2 (cl (= @p_106 (! (forall ((veriT_vr24 Exp$)) @p_145) :named @p_133))) :rule bind) +(step t36.t3 (cl (= @p_116 (! (=> @p_134 @p_133) :named @p_146))) :rule cong :premises (t36.t1 t36.t2)) +(anchor :step t36.t4 :args ((:= (veriT_vr18 Exp$) veriT_vr24))) +(step t36.t4.t1 (cl (! (= veriT_vr18 veriT_vr24) :named @p_148)) :rule refl) +(step t36.t4.t2 (cl @p_137) :rule refl) +(step t36.t4.t3 (cl @p_147) :rule cong :premises (t36.t4.t2)) +(step t36.t4.t4 (cl (= @p_119 @p_139)) :rule cong :premises (t36.t4.t1 t36.t4.t3)) +(anchor :step t36.t4.t5 :args ((:= (veriT_vr19 FreeExp$) veriT_vr25))) +(step t36.t4.t5.t1 (cl @p_148) :rule refl) +(step t36.t4.t5.t2 (cl @p_142) :rule refl) +(step t36.t4.t5.t3 (cl (= veriT_vr19 veriT_vr25)) :rule refl) +(step t36.t4.t5.t4 (cl (= @p_122 @p_143)) :rule cong :premises (t36.t4.t5.t2 t36.t4.t5.t3)) +(step t36.t4.t5.t5 (cl (= @p_123 @p_144)) :rule cong :premises (t36.t4.t5.t1 t36.t4.t5.t4)) +(step t36.t4.t5 (cl (= @p_120 @p_140)) :rule bind) +(step t36.t4.t6 (cl (= @p_124 @p_145)) :rule cong :premises (t36.t4.t4 t36.t4.t5)) +(step t36.t4 (cl (= @p_117 @p_133)) :rule bind) +(anchor :step t36.t5 :args ((:= (veriT_vr20 FreeExp_list$) veriT_vr23))) +(step t36.t5.t1 (cl @p_137) :rule refl) +(step t36.t5.t2 (cl @p_142) :rule refl) +(step t36.t5.t3 (cl (= veriT_vr20 veriT_vr23)) :rule refl) +(step t36.t5.t4 (cl (= @p_126 @p_135)) :rule cong :premises (t36.t5.t2 t36.t5.t3)) +(step t36.t5.t5 (cl (= @p_127 @p_136)) :rule cong :premises (t36.t5.t1 t36.t5.t4)) +(step t36.t5 (cl (= @p_125 @p_134)) :rule bind) +(step t36.t6 (cl (= @p_129 (! (=> @p_133 @p_134) :named @p_149))) :rule cong :premises (t36.t4 t36.t5)) +(step t36.t7 (cl (= @p_130 (! (and @p_146 @p_149) :named @p_150))) :rule cong :premises (t36.t3 t36.t6)) +(step t36 (cl (! (= @p_132 (! (forall ((veriT_vr21 Exp_list$) (veriT_vr22 FreeExp_exp_fun$)) @p_150) :named @p_152)) :named @p_151)) :rule bind) +(step t37 (cl (not @p_151) (not @p_132) @p_152) :rule equiv_pos2) +(step t38 (cl @p_152) :rule th_resolution :premises (t35 t36 t37)) +(anchor :step t39 :args ((:= (veriT_vr21 Exp_list$) veriT_vr21) (:= (veriT_vr22 FreeExp_exp_fun$) veriT_vr22))) +(anchor :step t39.t1 :args ((:= (veriT_vr24 Exp$) veriT_vr26))) +(step t39.t1.t1 (cl (! (= veriT_vr24 veriT_vr26) :named @p_156)) :rule refl) +(step t39.t1.t2 (cl (= @p_139 (! (member$ veriT_vr26 @p_138) :named @p_154))) :rule cong :premises (t39.t1.t1)) +(anchor :step t39.t1.t3 :args ((:= (veriT_vr25 FreeExp$) veriT_vr27))) +(step t39.t1.t3.t1 (cl @p_156) :rule refl) +(step t39.t1.t3.t2 (cl (= veriT_vr25 veriT_vr27)) :rule refl) +(step t39.t1.t3.t3 (cl (= @p_143 (! (fun_app$ veriT_vr22 veriT_vr27) :named @p_157))) :rule cong :premises (t39.t1.t3.t2)) +(step t39.t1.t3.t4 (cl (= @p_144 (! (= veriT_vr26 @p_157) :named @p_158))) :rule cong :premises (t39.t1.t3.t1 t39.t1.t3.t3)) +(step t39.t1.t3 (cl (= @p_140 (! (exists ((veriT_vr27 FreeExp$)) @p_158) :named @p_155))) :rule bind) +(step t39.t1.t4 (cl (= @p_145 (! (=> @p_154 @p_155) :named @p_159))) :rule cong :premises (t39.t1.t2 t39.t1.t3)) +(step t39.t1 (cl (= @p_133 (! (forall ((veriT_vr26 Exp$)) @p_159) :named @p_153))) :rule bind) +(anchor :step t39.t2 :args ((:= (veriT_vr23 FreeExp_list$) veriT_vr28))) +(step t39.t2.t1 (cl (= veriT_vr23 veriT_vr28)) :rule refl) +(step t39.t2.t2 (cl (= @p_135 (! (map2$ veriT_vr22 veriT_vr28) :named @p_161))) :rule cong :premises (t39.t2.t1)) +(step t39.t2.t3 (cl (= @p_136 (! (= veriT_vr21 @p_161) :named @p_162))) :rule cong :premises (t39.t2.t2)) +(step t39.t2 (cl (= @p_134 (! (exists ((veriT_vr28 FreeExp_list$)) @p_162) :named @p_160))) :rule bind) +(step t39.t3 (cl (= @p_149 (! (=> @p_153 @p_160) :named @p_163))) :rule cong :premises (t39.t1 t39.t2)) +(step t39.t4 (cl (= @p_150 (! (and @p_146 @p_163) :named @p_164))) :rule cong :premises (t39.t3)) +(step t39 (cl (! (= @p_152 (! (forall ((veriT_vr21 Exp_list$) (veriT_vr22 FreeExp_exp_fun$)) @p_164) :named @p_166)) :named @p_165)) :rule bind) +(step t40 (cl (not @p_165) (not @p_152) @p_166) :rule equiv_pos2) +(step t41 (cl @p_166) :rule th_resolution :premises (t38 t39 t40)) +(anchor :step t42 :args ((veriT_vr21 Exp_list$) (veriT_vr22 FreeExp_exp_fun$))) +(step t42.t1 (cl (= @p_134 (! (not (forall ((veriT_vr23 FreeExp_list$)) (not @p_136))) :named @p_167))) :rule connective_def) +(step t42.t2 (cl (= @p_146 (! (=> @p_167 @p_133) :named @p_168))) :rule cong :premises (t42.t1)) +(anchor :step t42.t3 :args ((veriT_vr26 Exp$))) +(step t42.t3.t1 (cl (= @p_155 (! (not (forall ((veriT_vr27 FreeExp$)) (not @p_158))) :named @p_170))) :rule connective_def) +(step t42.t3.t2 (cl (= @p_159 (! (=> @p_154 @p_170) :named @p_171))) :rule cong :premises (t42.t3.t1)) +(step t42.t3 (cl (= @p_153 (! (forall ((veriT_vr26 Exp$)) @p_171) :named @p_169))) :rule bind) +(step t42.t4 (cl (= @p_163 (! (=> @p_169 @p_160) :named @p_172))) :rule cong :premises (t42.t3)) +(step t42.t5 (cl (= @p_164 (! (and @p_168 @p_172) :named @p_173))) :rule cong :premises (t42.t2 t42.t4)) +(step t42 (cl (! (= @p_166 (! (forall ((veriT_vr21 Exp_list$) (veriT_vr22 FreeExp_exp_fun$)) @p_173) :named @p_175)) :named @p_174)) :rule bind) +(step t43 (cl (not @p_174) (not @p_166) @p_175) :rule equiv_pos2) +(step t44 (cl @p_175) :rule th_resolution :premises (t41 t42 t43)) +(anchor :step t45 :args ((:= (?v0 FreeExp_list$) veriT_vr29))) +(step t45.t1 (cl (= ?v0 veriT_vr29)) :rule refl) +(step t45.t2 (cl (= @p_1 (! (abs_ExpList$ veriT_vr29) :named @p_177))) :rule cong :premises (t45.t1)) +(step t45.t3 (cl (= @p_178 (! (= z$ @p_177) :named @p_179))) :rule cong :premises (t45.t2)) +(step t45 (cl (= @p_176 (! (exists ((veriT_vr29 FreeExp_list$)) @p_179) :named @p_181))) :rule bind) +(step t46 (cl (! (= @p_180 (! (not @p_181) :named @p_183)) :named @p_182)) :rule cong :premises (t45)) +(step t47 (cl (! (not @p_182) :named @p_185) (! (not @p_180) :named @p_184) @p_183) :rule equiv_pos2) +(step t48 (cl (not @p_184) @p_176) :rule not_not) +(step t49 (cl @p_185 @p_176 @p_183) :rule th_resolution :premises (t48 t47)) +(step t50 (cl @p_183) :rule th_resolution :premises (axiom4 t46 t49)) +(anchor :step t51 :args ((:= (veriT_vr29 FreeExp_list$) veriT_vr30))) +(step t51.t1 (cl (= veriT_vr29 veriT_vr30)) :rule refl) +(step t51.t2 (cl (= @p_177 (! (abs_ExpList$ veriT_vr30) :named @p_186))) :rule cong :premises (t51.t1)) +(step t51.t3 (cl (= @p_179 (! (= z$ @p_186) :named @p_187))) :rule cong :premises (t51.t2)) +(step t51 (cl (= @p_181 (! (exists ((veriT_vr30 FreeExp_list$)) @p_187) :named @p_188))) :rule bind) +(step t52 (cl (! (= @p_183 (! (not @p_188) :named @p_190)) :named @p_189)) :rule cong :premises (t51)) +(step t53 (cl (! (not @p_189) :named @p_192) (! (not @p_183) :named @p_191) @p_190) :rule equiv_pos2) +(step t54 (cl (not @p_191) @p_181) :rule not_not) +(step t55 (cl @p_192 @p_181 @p_190) :rule th_resolution :premises (t54 t53)) +(step t56 (cl @p_190) :rule th_resolution :premises (t50 t52 t55)) +(step t57 (cl (= @p_188 (! (not (! (forall ((veriT_vr30 FreeExp_list$)) (not @p_187)) :named @p_198)) :named @p_193))) :rule connective_def) +(step t58 (cl (! (= @p_190 (! (not @p_193) :named @p_195)) :named @p_194)) :rule cong :premises (t57)) +(step t59 (cl (! (not @p_194) :named @p_197) (! (not @p_190) :named @p_196) @p_195) :rule equiv_pos2) +(step t60 (cl (not @p_196) @p_188) :rule not_not) +(step t61 (cl @p_197 @p_188 @p_195) :rule th_resolution :premises (t60 t59)) +(step t62 (cl (not @p_195) @p_198) :rule not_not) +(step t63 (cl @p_197 @p_188 @p_198) :rule th_resolution :premises (t62 t61)) +(step t64 (cl @p_195) :rule th_resolution :premises (t56 t58 t63)) +(step t65 (cl @p_198) :rule th_resolution :premises (t62 t64)) +(step t66 (cl (or (! (not @p_175) :named @p_336) (! (and (! (=> (! (not (! (forall ((veriT_vr23 FreeExp_list$)) (! (not (! (= z$ (! (map2$ uu$ veriT_vr23) :named @p_203)) :named @p_205)) :named @p_207)) :named @p_202)) :named @p_209) (! (forall ((veriT_vr24 Exp$)) (! (=> (! (member$ veriT_vr24 @p_199) :named @p_212) (! (exists ((veriT_vr25 FreeExp$)) (! (= veriT_vr24 (! (fun_app$ uu$ veriT_vr25) :named @p_217)) :named @p_219)) :named @p_214)) :named @p_221)) :named @p_211)) :named @p_223) (! (=> (! (forall ((veriT_vr26 Exp$)) (! (=> (! (member$ veriT_vr26 @p_199) :named @p_227) (! (not (! (forall ((veriT_vr27 FreeExp$)) (! (not (! (= veriT_vr26 (! (fun_app$ uu$ veriT_vr27) :named @p_231)) :named @p_232)) :named @p_233)) :named @p_228)) :named @p_235)) :named @p_237)) :named @p_226) (! (exists ((veriT_vr28 FreeExp_list$)) (! (= z$ (! (map2$ uu$ veriT_vr28) :named @p_240)) :named @p_241)) :named @p_239)) :named @p_242)) :named @p_200))) :rule forall_inst :args ((:= veriT_vr21 z$) (:= veriT_vr22 uu$))) +(anchor :step t67) +(assume t67.h1 @p_200) +(anchor :step t67.t2 :args ((:= (veriT_vr23 FreeExp_list$) veriT_vr31))) +(step t67.t2.t1 (cl (= veriT_vr23 veriT_vr31)) :rule refl) +(step t67.t2.t2 (cl (= @p_203 (! (map2$ uu$ veriT_vr31) :named @p_204))) :rule cong :premises (t67.t2.t1)) +(step t67.t2.t3 (cl (= @p_205 (! (= z$ @p_204) :named @p_206))) :rule cong :premises (t67.t2.t2)) +(step t67.t2.t4 (cl (= @p_207 (! (not @p_206) :named @p_208))) :rule cong :premises (t67.t2.t3)) +(step t67.t2 (cl (= @p_202 (! (forall ((veriT_vr31 FreeExp_list$)) @p_208) :named @p_210))) :rule bind) +(step t67.t3 (cl (= @p_209 (! (not @p_210) :named @p_224))) :rule cong :premises (t67.t2)) +(anchor :step t67.t4 :args ((:= (veriT_vr24 Exp$) veriT_vr32))) +(step t67.t4.t1 (cl (! (= veriT_vr24 veriT_vr32) :named @p_216)) :rule refl) +(step t67.t4.t2 (cl (= @p_212 (! (member$ veriT_vr32 @p_199) :named @p_213))) :rule cong :premises (t67.t4.t1)) +(anchor :step t67.t4.t3 :args ((:= (veriT_vr25 FreeExp$) veriT_vr33))) +(step t67.t4.t3.t1 (cl @p_216) :rule refl) +(step t67.t4.t3.t2 (cl (= veriT_vr25 veriT_vr33)) :rule refl) +(step t67.t4.t3.t3 (cl (= @p_217 (! (fun_app$ uu$ veriT_vr33) :named @p_218))) :rule cong :premises (t67.t4.t3.t2)) +(step t67.t4.t3.t4 (cl (= @p_219 (! (= veriT_vr32 @p_218) :named @p_220))) :rule cong :premises (t67.t4.t3.t1 t67.t4.t3.t3)) +(step t67.t4.t3 (cl (= @p_214 (! (exists ((veriT_vr33 FreeExp$)) @p_220) :named @p_215))) :rule bind) +(step t67.t4.t4 (cl (= @p_221 (! (=> @p_213 @p_215) :named @p_222))) :rule cong :premises (t67.t4.t2 t67.t4.t3)) +(step t67.t4 (cl (= @p_211 (! (forall ((veriT_vr32 Exp$)) @p_222) :named @p_225))) :rule bind) +(step t67.t5 (cl (= @p_223 (! (=> @p_224 @p_225) :named @p_245))) :rule cong :premises (t67.t3 t67.t4)) +(anchor :step t67.t6 :args ((:= (veriT_vr26 Exp$) veriT_vr32))) +(step t67.t6.t1 (cl (! (= veriT_vr26 veriT_vr32) :named @p_230)) :rule refl) +(step t67.t6.t2 (cl (= @p_227 @p_213)) :rule cong :premises (t67.t6.t1)) +(anchor :step t67.t6.t3 :args ((:= (veriT_vr27 FreeExp$) veriT_vr33))) +(step t67.t6.t3.t1 (cl @p_230) :rule refl) +(step t67.t6.t3.t2 (cl (= veriT_vr27 veriT_vr33)) :rule refl) +(step t67.t6.t3.t3 (cl (= @p_231 @p_218)) :rule cong :premises (t67.t6.t3.t2)) +(step t67.t6.t3.t4 (cl (= @p_232 @p_220)) :rule cong :premises (t67.t6.t3.t1 t67.t6.t3.t3)) +(step t67.t6.t3.t5 (cl (= @p_233 (! (not @p_220) :named @p_234))) :rule cong :premises (t67.t6.t3.t4)) +(step t67.t6.t3 (cl (= @p_228 (! (forall ((veriT_vr33 FreeExp$)) @p_234) :named @p_229))) :rule bind) +(step t67.t6.t4 (cl (= @p_235 (! (not @p_229) :named @p_236))) :rule cong :premises (t67.t6.t3)) +(step t67.t6.t5 (cl (= @p_237 (! (=> @p_213 @p_236) :named @p_238))) :rule cong :premises (t67.t6.t2 t67.t6.t4)) +(step t67.t6 (cl (= @p_226 (! (forall ((veriT_vr32 Exp$)) @p_238) :named @p_243))) :rule bind) +(anchor :step t67.t7 :args ((:= (veriT_vr28 FreeExp_list$) veriT_vr31))) +(step t67.t7.t1 (cl (= veriT_vr28 veriT_vr31)) :rule refl) +(step t67.t7.t2 (cl (= @p_240 @p_204)) :rule cong :premises (t67.t7.t1)) +(step t67.t7.t3 (cl (= @p_241 @p_206)) :rule cong :premises (t67.t7.t2)) +(step t67.t7 (cl (= @p_239 (! (exists ((veriT_vr31 FreeExp_list$)) @p_206) :named @p_244))) :rule bind) +(step t67.t8 (cl (= @p_242 (! (=> @p_243 @p_244) :named @p_246))) :rule cong :premises (t67.t6 t67.t7)) +(step t67.t9 (cl (! (= @p_200 (! (and @p_245 @p_246) :named @p_249)) :named @p_247)) :rule cong :premises (t67.t5 t67.t8)) +(step t67.t10 (cl (not @p_247) (! (not @p_200) :named @p_248) @p_249) :rule equiv_pos2) +(step t67.t11 (cl @p_249) :rule th_resolution :premises (t67.h1 t67.t9 t67.t10)) +(anchor :step t67.t12 :args ((:= (veriT_vr32 Exp$) veriT_vr34))) +(step t67.t12.t1 (cl (! (= veriT_vr32 veriT_vr34) :named @p_252)) :rule refl) +(step t67.t12.t2 (cl (= @p_213 (! (member$ veriT_vr34 @p_199) :named @p_250))) :rule cong :premises (t67.t12.t1)) +(anchor :step t67.t12.t3 :args ((:= (veriT_vr33 FreeExp$) veriT_vr35))) +(step t67.t12.t3.t1 (cl @p_252) :rule refl) +(step t67.t12.t3.t2 (cl (= veriT_vr33 veriT_vr35)) :rule refl) +(step t67.t12.t3.t3 (cl (= @p_218 (! (fun_app$ uu$ veriT_vr35) :named @p_253))) :rule cong :premises (t67.t12.t3.t2)) +(step t67.t12.t3.t4 (cl (= @p_220 (! (= veriT_vr34 @p_253) :named @p_254))) :rule cong :premises (t67.t12.t3.t1 t67.t12.t3.t3)) +(step t67.t12.t3.t5 (cl (= @p_234 (! (not @p_254) :named @p_255))) :rule cong :premises (t67.t12.t3.t4)) +(step t67.t12.t3 (cl (= @p_229 (! (forall ((veriT_vr35 FreeExp$)) @p_255) :named @p_251))) :rule bind) +(step t67.t12.t4 (cl (= @p_236 (! (not @p_251) :named @p_256))) :rule cong :premises (t67.t12.t3)) +(step t67.t12.t5 (cl (= @p_238 (! (=> @p_250 @p_256) :named @p_257))) :rule cong :premises (t67.t12.t2 t67.t12.t4)) +(step t67.t12 (cl (= @p_243 (! (forall ((veriT_vr34 Exp$)) @p_257) :named @p_260))) :rule bind) +(anchor :step t67.t13 :args ((:= (veriT_vr31 FreeExp_list$) veriT_vr36))) +(step t67.t13.t1 (cl (= veriT_vr31 veriT_vr36)) :rule refl) +(step t67.t13.t2 (cl (= @p_204 (! (map2$ uu$ veriT_vr36) :named @p_258))) :rule cong :premises (t67.t13.t1)) +(step t67.t13.t3 (cl (= @p_206 (! (= z$ @p_258) :named @p_259))) :rule cong :premises (t67.t13.t2)) +(step t67.t13 (cl (= @p_244 (! (exists ((veriT_vr36 FreeExp_list$)) @p_259) :named @p_261))) :rule bind) +(step t67.t14 (cl (= @p_246 (! (=> @p_260 @p_261) :named @p_262))) :rule cong :premises (t67.t12 t67.t13)) +(step t67.t15 (cl (! (= @p_249 (! (and @p_245 @p_262) :named @p_264)) :named @p_263)) :rule cong :premises (t67.t14)) +(step t67.t16 (cl (not @p_263) (not @p_249) @p_264) :rule equiv_pos2) +(step t67.t17 (cl @p_264) :rule th_resolution :premises (t67.t11 t67.t15 t67.t16)) +(anchor :step t67.t18 :args ((:= (veriT_vr31 FreeExp_list$) veriT_vr37))) +(step t67.t18.t1 (cl (= veriT_vr31 veriT_vr37)) :rule refl) +(step t67.t18.t2 (cl (= @p_204 (! (map2$ uu$ veriT_vr37) :named @p_265))) :rule cong :premises (t67.t18.t1)) +(step t67.t18.t3 (cl (= @p_206 (! (= z$ @p_265) :named @p_266))) :rule cong :premises (t67.t18.t2)) +(step t67.t18.t4 (cl (= @p_208 (! (not @p_266) :named @p_267))) :rule cong :premises (t67.t18.t3)) +(step t67.t18 (cl (= @p_210 (! (forall ((veriT_vr37 FreeExp_list$)) @p_267) :named @p_268))) :rule bind) +(step t67.t19 (cl (= @p_224 (! (not @p_268) :named @p_275))) :rule cong :premises (t67.t18)) +(anchor :step t67.t20 :args ((:= (veriT_vr32 Exp$) veriT_vr38))) +(step t67.t20.t1 (cl (! (= veriT_vr32 veriT_vr38) :named @p_271)) :rule refl) +(step t67.t20.t2 (cl (= @p_213 (! (member$ veriT_vr38 @p_199) :named @p_269))) :rule cong :premises (t67.t20.t1)) +(anchor :step t67.t20.t3 :args ((:= (veriT_vr33 FreeExp$) veriT_vr39))) +(step t67.t20.t3.t1 (cl @p_271) :rule refl) +(step t67.t20.t3.t2 (cl (= veriT_vr33 veriT_vr39)) :rule refl) +(step t67.t20.t3.t3 (cl (= @p_218 (! (fun_app$ uu$ veriT_vr39) :named @p_272))) :rule cong :premises (t67.t20.t3.t2)) +(step t67.t20.t3.t4 (cl (= @p_220 (! (= veriT_vr38 @p_272) :named @p_273))) :rule cong :premises (t67.t20.t3.t1 t67.t20.t3.t3)) +(step t67.t20.t3 (cl (= @p_215 (! (exists ((veriT_vr39 FreeExp$)) @p_273) :named @p_270))) :rule bind) +(step t67.t20.t4 (cl (= @p_222 (! (=> @p_269 @p_270) :named @p_274))) :rule cong :premises (t67.t20.t2 t67.t20.t3)) +(step t67.t20 (cl (= @p_225 (! (forall ((veriT_vr38 Exp$)) @p_274) :named @p_276))) :rule bind) +(step t67.t21 (cl (= @p_245 (! (=> @p_275 @p_276) :named @p_289))) :rule cong :premises (t67.t19 t67.t20)) +(anchor :step t67.t22 :args ((:= (veriT_vr34 Exp$) veriT_vr40))) +(step t67.t22.t1 (cl (! (= veriT_vr34 veriT_vr40) :named @p_280)) :rule refl) +(step t67.t22.t2 (cl (= @p_250 @p_278)) :rule cong :premises (t67.t22.t1)) +(anchor :step t67.t22.t3 :args ((:= (veriT_vr35 FreeExp$) veriT_vr41))) +(step t67.t22.t3.t1 (cl @p_280) :rule refl) +(step t67.t22.t3.t2 (cl (= veriT_vr35 veriT_vr41)) :rule refl) +(step t67.t22.t3.t3 (cl (= @p_253 @p_281)) :rule cong :premises (t67.t22.t3.t2)) +(step t67.t22.t3.t4 (cl (= @p_254 @p_282)) :rule cong :premises (t67.t22.t3.t1 t67.t22.t3.t3)) +(step t67.t22.t3.t5 (cl (= @p_255 @p_283)) :rule cong :premises (t67.t22.t3.t4)) +(step t67.t22.t3 (cl (= @p_251 @p_279)) :rule bind) +(step t67.t22.t4 (cl (= @p_256 @p_284)) :rule cong :premises (t67.t22.t3)) +(step t67.t22.t5 (cl (= @p_257 @p_277)) :rule cong :premises (t67.t22.t2 t67.t22.t4)) +(step t67.t22 (cl (= @p_260 (! (forall ((veriT_vr40 Exp$)) @p_277) :named @p_287))) :rule bind) +(anchor :step t67.t23 :args ((:= (veriT_vr36 FreeExp_list$) veriT_vr42))) +(step t67.t23.t1 (cl (= veriT_vr36 veriT_vr42)) :rule refl) +(step t67.t23.t2 (cl (= @p_258 @p_286)) :rule cong :premises (t67.t23.t1)) +(step t67.t23.t3 (cl (= @p_259 @p_285)) :rule cong :premises (t67.t23.t2)) +(step t67.t23 (cl (= @p_261 (! (exists ((veriT_vr42 FreeExp_list$)) @p_285) :named @p_288))) :rule bind) +(step t67.t24 (cl (= @p_262 (! (=> @p_287 @p_288) :named @p_290))) :rule cong :premises (t67.t22 t67.t23)) +(step t67.t25 (cl (! (= @p_264 (! (and @p_289 @p_290) :named @p_292)) :named @p_291)) :rule cong :premises (t67.t21 t67.t24)) +(step t67.t26 (cl (not @p_291) (not @p_264) @p_292) :rule equiv_pos2) +(step t67.t27 (cl @p_292) :rule th_resolution :premises (t67.t17 t67.t25 t67.t26)) +(anchor :step t67.t28 :args ((:= (veriT_vr40 Exp$) veriT_sk0))) +(step t67.t28.t1 (cl (! (= veriT_vr40 veriT_sk0) :named @p_295)) :rule refl) +(step t67.t28.t2 (cl (= @p_278 (! (member$ veriT_sk0 @p_199) :named @p_293))) :rule cong :premises (t67.t28.t1)) +(anchor :step t67.t28.t3 :args ((veriT_vr41 FreeExp$))) +(step t67.t28.t3.t1 (cl @p_295) :rule refl) +(step t67.t28.t3.t2 (cl (= @p_282 (! (= @p_281 veriT_sk0) :named @p_296))) :rule cong :premises (t67.t28.t3.t1)) +(step t67.t28.t3.t3 (cl (= @p_283 (! (not @p_296) :named @p_297))) :rule cong :premises (t67.t28.t3.t2)) +(step t67.t28.t3 (cl (= @p_279 (! (forall ((veriT_vr41 FreeExp$)) @p_297) :named @p_294))) :rule bind) +(step t67.t28.t4 (cl (= @p_284 (! (not @p_294) :named @p_298))) :rule cong :premises (t67.t28.t3)) +(step t67.t28.t5 (cl (= @p_277 (! (=> @p_293 @p_298) :named @p_299))) :rule cong :premises (t67.t28.t2 t67.t28.t4)) +(step t67.t28 (cl (= @p_287 @p_299)) :rule sko_forall) +(anchor :step t67.t29 :args ((:= (veriT_vr42 FreeExp_list$) veriT_sk1))) +(step t67.t29.t1 (cl (= veriT_vr42 veriT_sk1)) :rule refl) +(step t67.t29.t2 (cl (= @p_286 (! (map2$ uu$ veriT_sk1) :named @p_302))) :rule cong :premises (t67.t29.t1)) +(step t67.t29.t3 (cl (= @p_285 (! (= z$ @p_302) :named @p_300))) :rule cong :premises (t67.t29.t2)) +(step t67.t29 (cl (= @p_288 @p_300)) :rule sko_ex) +(step t67.t30 (cl (= @p_290 (! (=> @p_299 @p_300) :named @p_303))) :rule cong :premises (t67.t28 t67.t29)) +(step t67.t31 (cl (! (= @p_292 (! (and @p_289 @p_303) :named @p_305)) :named @p_304)) :rule cong :premises (t67.t30)) +(step t67.t32 (cl (not @p_304) (not @p_292) @p_305) :rule equiv_pos2) +(step t67.t33 (cl @p_305) :rule th_resolution :premises (t67.t27 t67.t31 t67.t32)) +(anchor :step t67.t34 :args ((:= (veriT_vr37 FreeExp_list$) veriT_vr43))) +(step t67.t34.t1 (cl (= veriT_vr37 veriT_vr43)) :rule refl) +(step t67.t34.t2 (cl (= @p_265 (! (map2$ uu$ veriT_vr43) :named @p_307))) :rule cong :premises (t67.t34.t1)) +(step t67.t34.t3 (cl (= @p_266 (! (= z$ @p_307) :named @p_308))) :rule cong :premises (t67.t34.t2)) +(step t67.t34.t4 (cl (= @p_267 (! (not @p_308) :named @p_309))) :rule cong :premises (t67.t34.t3)) +(step t67.t34 (cl (= @p_268 (! (forall ((veriT_vr43 FreeExp_list$)) @p_309) :named @p_306))) :rule bind) +(step t67.t35 (cl (= @p_275 (! (not @p_306) :named @p_310))) :rule cong :premises (t67.t34)) +(anchor :step t67.t36 :args ((:= (veriT_vr38 Exp$) veriT_vr44))) +(step t67.t36.t1 (cl (! (= veriT_vr38 veriT_vr44) :named @p_314)) :rule refl) +(step t67.t36.t2 (cl (= @p_269 (! (member$ veriT_vr44 @p_199) :named @p_312))) :rule cong :premises (t67.t36.t1)) +(anchor :step t67.t36.t3 :args ((:= (veriT_vr39 FreeExp$) veriT_vr45))) +(step t67.t36.t3.t1 (cl @p_314) :rule refl) +(step t67.t36.t3.t2 (cl (= veriT_vr39 veriT_vr45)) :rule refl) +(step t67.t36.t3.t3 (cl (= @p_272 (! (fun_app$ uu$ veriT_vr45) :named @p_315))) :rule cong :premises (t67.t36.t3.t2)) +(step t67.t36.t3.t4 (cl (= @p_273 (! (= veriT_vr44 @p_315) :named @p_316))) :rule cong :premises (t67.t36.t3.t1 t67.t36.t3.t3)) +(step t67.t36.t3 (cl (= @p_270 (! (exists ((veriT_vr45 FreeExp$)) @p_316) :named @p_313))) :rule bind) +(step t67.t36.t4 (cl (= @p_274 (! (=> @p_312 @p_313) :named @p_317))) :rule cong :premises (t67.t36.t2 t67.t36.t3)) +(step t67.t36 (cl (= @p_276 (! (forall ((veriT_vr44 Exp$)) @p_317) :named @p_311))) :rule bind) +(step t67.t37 (cl (= @p_289 (! (=> @p_310 @p_311) :named @p_318))) :rule cong :premises (t67.t35 t67.t36)) +(anchor :step t67.t38 :args ((:= (veriT_vr41 FreeExp$) veriT_vr45))) +(step t67.t38.t1 (cl (= veriT_vr41 veriT_vr45)) :rule refl) +(step t67.t38.t2 (cl (= @p_281 @p_315)) :rule cong :premises (t67.t38.t1)) +(step t67.t38.t3 (cl (= @p_296 (! (= veriT_sk0 @p_315) :named @p_319))) :rule cong :premises (t67.t38.t2)) +(step t67.t38.t4 (cl (= @p_297 (! (not @p_319) :named @p_320))) :rule cong :premises (t67.t38.t3)) +(step t67.t38 (cl (= @p_294 (! (forall ((veriT_vr45 FreeExp$)) @p_320) :named @p_321))) :rule bind) +(step t67.t39 (cl (= @p_298 (! (not @p_321) :named @p_322))) :rule cong :premises (t67.t38)) +(step t67.t40 (cl (= @p_299 (! (=> @p_293 @p_322) :named @p_323))) :rule cong :premises (t67.t39)) +(step t67.t41 (cl (= @p_303 (! (=> @p_323 @p_300) :named @p_324))) :rule cong :premises (t67.t40)) +(step t67.t42 (cl (! (= @p_305 (! (and @p_318 @p_324) :named @p_326)) :named @p_325)) :rule cong :premises (t67.t37 t67.t41)) +(step t67.t43 (cl (not @p_325) (not @p_305) @p_326) :rule equiv_pos2) +(step t67.t44 (cl @p_326) :rule th_resolution :premises (t67.t33 t67.t42 t67.t43)) +(anchor :step t67.t45 :args ((:= (veriT_vr45 FreeExp$) veriT_vr46))) +(step t67.t45.t1 (cl (= veriT_vr45 veriT_vr46)) :rule refl) +(step t67.t45.t2 (cl (= @p_315 (! (fun_app$ uu$ veriT_vr46) :named @p_328))) :rule cong :premises (t67.t45.t1)) +(step t67.t45.t3 (cl (= @p_319 (! (= veriT_sk0 @p_328) :named @p_329))) :rule cong :premises (t67.t45.t2)) +(step t67.t45.t4 (cl (= @p_320 (! (not @p_329) :named @p_330))) :rule cong :premises (t67.t45.t3)) +(step t67.t45 (cl (= @p_321 (! (forall ((veriT_vr46 FreeExp$)) @p_330) :named @p_327))) :rule bind) +(step t67.t46 (cl (= @p_322 (! (not @p_327) :named @p_331))) :rule cong :premises (t67.t45)) +(step t67.t47 (cl (= @p_323 (! (=> @p_293 @p_331) :named @p_332))) :rule cong :premises (t67.t46)) +(step t67.t48 (cl (= @p_324 (! (=> @p_332 @p_300) :named @p_333))) :rule cong :premises (t67.t47)) +(step t67.t49 (cl (! (= @p_326 (! (and @p_318 @p_333) :named @p_334)) :named @p_335)) :rule cong :premises (t67.t48)) +(step t67.t50 (cl (not @p_335) (not @p_326) @p_334) :rule equiv_pos2) +(step t67.t51 (cl @p_334) :rule th_resolution :premises (t67.t44 t67.t49 t67.t50)) +(step t67 (cl @p_248 @p_334) :rule subproof :discharge (h1)) +(step t68 (cl @p_336 @p_200) :rule or :premises (t66)) +(step t69 (cl (! (or @p_336 @p_334) :named @p_338) (! (not @p_336) :named @p_337)) :rule or_neg) +(step t70 (cl (not @p_337) @p_175) :rule not_not) +(step t71 (cl @p_338 @p_175) :rule th_resolution :premises (t70 t69)) +(step t72 (cl @p_338 (! (not @p_334) :named @p_340)) :rule or_neg) +(step t73 (cl @p_338) :rule th_resolution :premises (t68 t67 t71 t72)) +(step t74 (cl @p_332 (! (not @p_331) :named @p_339)) :rule implies_neg2) +(step t75 (cl (not @p_339) @p_327) :rule not_not) +(step t76 (cl @p_332 @p_327) :rule th_resolution :premises (t75 t74)) +(step t77 (cl (not @p_333) (! (not @p_332) :named @p_393) @p_300) :rule implies_pos) +(step t78 (cl @p_340 @p_333) :rule and_pos) +(step t79 (cl @p_336 @p_334) :rule or :premises (t73)) +(step t80 (cl @p_334) :rule resolution :premises (t79 t44)) +(step t81 (cl @p_333) :rule resolution :premises (t78 t80)) +(step t82 (cl (or (! (not @p_70) :named @p_377) (! (not (! (forall ((veriT_vr7 FreeExp$)) (! (not (! (= @p_65 veriT_sk0) :named @p_346)) :named @p_348)) :named @p_342)) :named @p_341))) :rule forall_inst :args ((:= veriT_vr6 veriT_sk0))) +(anchor :step t83) +(assume t83.h1 @p_341) +(anchor :step t83.t2 :args ((:= (veriT_vr7 FreeExp$) veriT_vr47))) +(step t83.t2.t1 (cl (= veriT_vr7 veriT_vr47)) :rule refl) +(step t83.t2.t2 (cl (= @p_63 (! (insert$ veriT_vr47 bot$) :named @p_343))) :rule cong :premises (t83.t2.t1)) +(step t83.t2.t3 (cl (= @p_64 (! (myImage$ exprel$ @p_343) :named @p_344))) :rule cong :premises (t83.t2.t2)) +(step t83.t2.t4 (cl (= @p_65 (! (abs_Exp$ @p_344) :named @p_345))) :rule cong :premises (t83.t2.t3)) +(step t83.t2.t5 (cl (= @p_346 (! (= veriT_sk0 @p_345) :named @p_347))) :rule cong :premises (t83.t2.t4)) +(step t83.t2.t6 (cl (= @p_348 (! (not @p_347) :named @p_349))) :rule cong :premises (t83.t2.t5)) +(step t83.t2 (cl (= @p_342 (! (forall ((veriT_vr47 FreeExp$)) @p_349) :named @p_350))) :rule bind) +(step t83.t3 (cl (! (= @p_341 (! (not @p_350) :named @p_353)) :named @p_351)) :rule cong :premises (t83.t2)) +(step t83.t4 (cl (! (not @p_351) :named @p_354) (! (not @p_341) :named @p_352) @p_353) :rule equiv_pos2) +(step t83.t5 (cl (! (not @p_352) :named @p_376) @p_342) :rule not_not) +(step t83.t6 (cl @p_354 @p_342 @p_353) :rule th_resolution :premises (t83.t5 t83.t4)) +(step t83.t7 (cl @p_353) :rule th_resolution :premises (t83.h1 t83.t3 t83.t6)) +(anchor :step t83.t8 :args ((:= (veriT_vr47 FreeExp$) veriT_vr48))) +(step t83.t8.t1 (cl (= veriT_vr47 veriT_vr48)) :rule refl) +(step t83.t8.t2 (cl (= @p_343 @p_356)) :rule cong :premises (t83.t8.t1)) +(step t83.t8.t3 (cl (= @p_344 @p_357)) :rule cong :premises (t83.t8.t2)) +(step t83.t8.t4 (cl (= @p_345 @p_358)) :rule cong :premises (t83.t8.t3)) +(step t83.t8.t5 (cl (= @p_347 @p_359)) :rule cong :premises (t83.t8.t4)) +(step t83.t8.t6 (cl (= @p_349 @p_355)) :rule cong :premises (t83.t8.t5)) +(step t83.t8 (cl (= @p_350 (! (forall ((veriT_vr48 FreeExp$)) @p_355) :named @p_360))) :rule bind) +(step t83.t9 (cl (! (= @p_353 (! (not @p_360) :named @p_362)) :named @p_361)) :rule cong :premises (t83.t8)) +(step t83.t10 (cl (! (not @p_361) :named @p_364) (! (not @p_353) :named @p_363) @p_362) :rule equiv_pos2) +(step t83.t11 (cl (not @p_363) @p_350) :rule not_not) +(step t83.t12 (cl @p_364 @p_350 @p_362) :rule th_resolution :premises (t83.t11 t83.t10)) +(step t83.t13 (cl @p_362) :rule th_resolution :premises (t83.t7 t83.t9 t83.t12)) +(anchor :step t83.t14 :args ((:= (veriT_vr48 FreeExp$) veriT_sk2))) +(step t83.t14.t1 (cl (= veriT_vr48 veriT_sk2)) :rule refl) +(step t83.t14.t2 (cl (= @p_356 (! (insert$ veriT_sk2 bot$) :named @p_367))) :rule cong :premises (t83.t14.t1)) +(step t83.t14.t3 (cl (= @p_357 (! (myImage$ exprel$ @p_367) :named @p_368))) :rule cong :premises (t83.t14.t2)) +(step t83.t14.t4 (cl (= @p_358 (! (abs_Exp$ @p_368) :named @p_369))) :rule cong :premises (t83.t14.t3)) +(step t83.t14.t5 (cl (= @p_359 (! (= veriT_sk0 @p_369) :named @p_365))) :rule cong :premises (t83.t14.t4)) +(step t83.t14.t6 (cl (= @p_355 (! (not @p_365) :named @p_370))) :rule cong :premises (t83.t14.t5)) +(step t83.t14 (cl (= @p_360 @p_370)) :rule sko_forall) +(step t83.t15 (cl (! (= @p_362 (! (not @p_370) :named @p_372)) :named @p_371)) :rule cong :premises (t83.t14)) +(step t83.t16 (cl (! (not @p_371) :named @p_374) (! (not @p_362) :named @p_373) @p_372) :rule equiv_pos2) +(step t83.t17 (cl (not @p_373) @p_360) :rule not_not) +(step t83.t18 (cl @p_374 @p_360 @p_372) :rule th_resolution :premises (t83.t17 t83.t16)) +(step t83.t19 (cl (! (not @p_372) :named @p_375) @p_365) :rule not_not) +(step t83.t20 (cl @p_374 @p_360 @p_365) :rule th_resolution :premises (t83.t19 t83.t18)) +(step t83.t21 (cl @p_372) :rule th_resolution :premises (t83.t13 t83.t15 t83.t20)) +(step t83.t22 (cl @p_375 @p_365) :rule not_not) +(step t83.t23 (cl @p_365) :rule th_resolution :premises (t83.t22 t83.t21)) +(step t83.t24 (cl (= @p_372 @p_365)) :rule not_simplify) +(step t83.t25 (cl @p_365) :rule th_resolution :premises (t83.t23 t83.t24)) +(step t83 (cl @p_352 @p_365) :rule subproof :discharge (h1)) +(step t84 (cl @p_376 @p_342) :rule not_not) +(step t85 (cl @p_342 @p_365) :rule th_resolution :premises (t84 t83)) +(step t86 (cl @p_377 @p_341) :rule or :premises (t82)) +(step t87 (cl (! (or @p_377 @p_365) :named @p_379) (! (not @p_377) :named @p_378)) :rule or_neg) +(step t88 (cl (not @p_378) @p_70) :rule not_not) +(step t89 (cl @p_379 @p_70) :rule th_resolution :premises (t88 t87)) +(step t90 (cl @p_379 @p_370) :rule or_neg) +(step t91 (cl @p_379) :rule th_resolution :premises (t86 t85 t89 t90)) +(step t92 (cl @p_377 @p_365) :rule or :premises (t91)) +(step t93 (cl @p_365) :rule resolution :premises (t92 t26)) +(step t94 (cl (or @p_331 (! (not (! (= veriT_sk0 (! (fun_app$ uu$ veriT_sk2) :named @p_381)) :named @p_392)) :named @p_382))) :rule forall_inst :args ((:= veriT_vr46 veriT_sk2))) +(step t95 (cl (or @p_193 (! (not (! (= z$ (! (abs_ExpList$ veriT_sk1) :named @p_380)) :named @p_389)) :named @p_383))) :rule forall_inst :args ((:= veriT_vr30 veriT_sk1))) +(step t96 (cl (or (! (not @p_38) :named @p_384) (! (= @p_302 @p_380) :named @p_385))) :rule forall_inst :args ((:= veriT_vr3 veriT_sk1))) +(step t97 (cl (or (! (not @p_23) :named @p_386) (! (= @p_369 @p_381) :named @p_387))) :rule forall_inst :args ((:= veriT_vr1 veriT_sk2))) +(step t98 (cl @p_331 @p_382) :rule or :premises (t94)) +(step t99 (cl @p_193 @p_383) :rule or :premises (t95)) +(step t100 (cl @p_383) :rule resolution :premises (t99 t65)) +(step t101 (cl @p_384 @p_385) :rule or :premises (t96)) +(step t102 (cl @p_385) :rule resolution :premises (t101 t17)) +(step t103 (cl @p_386 @p_387) :rule or :premises (t97)) +(step t104 (cl @p_387) :rule resolution :premises (t103 t11)) +(step t105 (cl (! (= z$ z$) :named @p_388)) :rule eq_reflexive) +(step t106 (cl (not @p_388) (! (not @p_300) :named @p_390) (! (not @p_385) :named @p_391) @p_389) :rule eq_transitive) +(step t107 (cl @p_390 @p_391 @p_389) :rule th_resolution :premises (t106 t105)) +(step t108 (cl @p_390) :rule resolution :premises (t107 t100 t102)) +(step t109 (cl @p_370 (not @p_387) @p_392) :rule eq_transitive) +(step t110 (cl @p_392) :rule resolution :premises (t109 t93 t104)) +(step t111 (cl @p_393) :rule resolution :premises (t77 t108 t81)) +(step t112 (cl @p_331) :rule resolution :premises (t98 t110)) +(step t113 (cl) :rule resolution :premises (t76 t111 t112)) +c24fc06f55d92aed7783d8234aedb7ced3e99be7 2 0 +(error "status is not unsat.") +unknown
--- a/src/HOL/SMT_Examples/SMT_Examples_Verit.thy Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/SMT_Examples/SMT_Examples_Verit.thy Mon Aug 22 06:27:28 2022 +0200 @@ -15,7 +15,7 @@ external_file \<open>SMT_Examples_Verit.certs\<close> declare [[smt_certificates = "SMT_Examples_Verit.certs"]] -declare [[smt_read_only_certificates = true]] +declare [[smt_read_only_certificates = false]] section \<open>Propositional and first-order logic\<close> @@ -737,4 +737,82 @@ lemma "g (Some (3::int)) = g (Some True)" by (smt (verit) g1 g2 g3 list.size) +experiment +begin + +lemma duplicate_goal: \<open>A \<Longrightarrow> A \<Longrightarrow> A\<close> + by auto + +datatype 'a M_nres = is_fail: FAIL | SPEC "'a \<Rightarrow> bool" + +definition "is_res m x \<equiv> case m of FAIL \<Rightarrow> True | SPEC P \<Rightarrow> P x" + +datatype ('a,'s) M_state = M_STATE (run: "'s \<Rightarrow> ('a\<times>'s) M_nres") + +(*Courtesy of Peter Lammich +https://isabelle.zulipchat.com/#narrow/stream/247541-Mirror.3A-Isabelle-Users-Mailing-List/topic/.5Bisabelle.5D.20smt.20.28verit.29.3A.20exception.20THM.200.20raised.20.28line.20312.20.2E.2E.2E/near/290088165 +*) +lemma "\<lbrakk>\<forall>x y. (\<forall>xa s. is_fail (run (x xa) s) \<or> + is_fail (run (y xa) s) = is_fail (run (x xa) s) \<and> + (\<forall>a b. is_res (run (y xa) s) (a, b) = is_res (run (x xa) s) (a, b))) +\<longrightarrow> + (\<forall>s. is_fail (run (B x) s) \<or> + is_fail (run (B y) s) = is_fail (run (B x) s) \<and> + (\<forall>a b. is_res (run (B y) s) (a, b) = is_res (run (B x) s) (a, b))); + \<And>y. \<forall>x ya. (\<forall>xa s. is_fail (run (x xa) s) \<or> + is_fail (run (ya xa) s) = is_fail (run (x xa) s) \<and> + (\<forall>a b. is_res (run (ya xa) s) (a, b) = is_res (run (x xa) s) (a, b))) +\<longrightarrow> + (\<forall>s. is_fail (run (C y x) s) \<or> + is_fail (run (C y ya) s) = is_fail (run (C y x) s) \<and> + (\<forall>a b. is_res (run (C y ya) s) (a, b) = is_res (run (C y x) s) (a, +b)))\<rbrakk> + \<Longrightarrow> \<forall>x y. (\<forall>xa s. + is_fail (run (x xa) s) \<or> + is_fail (run (y xa) s) = is_fail (run (x xa) s) \<and> + (\<forall>a b. is_res (run (y xa) s) (a, b) = is_res (run (x xa) s) (a, b))) +\<longrightarrow> + (\<forall>s. is_fail (run (B x) s) \<or> + (\<exists>a b. is_res (run (B x) s) (a, b) \<and> is_fail (run (C a x) b)) \<or> + (is_fail (run (B y) s) \<or> (\<exists>a b. is_res (run (B y) s) (a, b) \<and> +is_fail (run (C a y) b))) = + (is_fail (run (B x) s) \<or> (\<exists>a b. is_res (run (B x) s) (a, b) \<and> +is_fail (run (C a x) b))) \<and> + (\<forall>a b. (is_fail (run (B y) s) \<or> + (\<exists>aa ba. is_res (run (B y) s) (aa, ba) \<and> is_res (run (C aa y) +ba) (a, b))) = + (is_fail (run (B x) s) \<or> + (\<exists>aa ba. is_res (run (B x) s) (aa, ba) \<and> is_res (run (C aa x) +ba) (a, b)))))" + apply (rule duplicate_goal) + subgoal + supply [[verit_compress_proofs=true]] + by (smt (verit)) + subgoal + supply [[verit_compress_proofs=false]] + by (smt (verit)) + done + +(*Example of Reordering in skolemization*) +lemma + fixes Abs_ExpList :: "'freeExp_list \<Rightarrow> 'exp_list" and + Abs_Exp:: "'freeExp_set \<Rightarrow> 'exp" and + exprel:: "('freeExp \<times> 'freeExp) set" and + map2 :: "('freeExp \<Rightarrow> 'exp) \<Rightarrow> 'freeExp_list \<Rightarrow> 'exp_list" + assumes "\<And>Xs. Abs_ExpList Xs \<equiv> map2 (\<lambda>U. Abs_Exp (myImage exprel {U})) Xs" + "\<And>P z. (\<And>U. z = Abs_Exp (myImage exprel {U}) \<Longrightarrow> P) \<Longrightarrow> P" + "\<And>(ys::'exp_list) (f::'freeExp \<Rightarrow> _). (\<exists>xs. ys = map2 f xs) = (\<forall>y\<in>myset ys. \<exists>x. y = f x)" + shows "\<exists>Us. z = Abs_ExpList Us" + apply (rule duplicate_goal) + subgoal + supply [[verit_compress_proofs=true]] + using assms + by (smt (verit,del_insts)) + subgoal + using assms + supply [[verit_compress_proofs=false]] + by (smt (verit,del_insts)) + done + +end end \ No newline at end of file
--- a/src/HOL/Tools/SMT/lethe_proof.ML Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/Tools/SMT/lethe_proof.ML Mon Aug 22 06:27:28 2022 +0200 @@ -48,6 +48,7 @@ val simp_arith_rule : string val lethe_deep_skolemize_rule : string val lethe_def : string + val is_lethe_def : string -> bool val subproof_rule : string val local_input_rule : string val not_not_rule : string @@ -145,6 +146,7 @@ val th_resolution_rule = "th_resolution" val and_pos_rule = "and_pos" +val is_lethe_def = String.isSuffix lethe_def val skolemization_steps = ["sko_forall", "sko_ex"] val is_skolemization = member (op =) skolemization_steps val keep_app_symbols = member (op =) [eq_congruent_pred_rule, eq_congruent_rule, ite_intro_rule, and_pos_rule] @@ -546,10 +548,9 @@ (* fix step *) val _ = if bounds <> [] then raise (Fail "found dangling variable in concl") else () - val skolem_defs = (if is_skolemization rule then map (fn id => id ^ lethe_def) (skolems_introduced_by_rule (SMTLIB.S (map fst args))) else []) - val skolems_of_subproof = (if is_skolemization rule + val skolems_of_subproof = (if compress andalso is_skolemization rule then flat (map collect_skolem_defs subproof) else []) val fixed_prems = prems @ (if is_assm_repetition id rule then [id] else []) @
--- a/src/HOL/Tools/SMT/lethe_replay_methods.ML Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/Tools/SMT/lethe_replay_methods.ML Mon Aug 22 06:27:28 2022 +0200 @@ -404,6 +404,14 @@ #> extract_all_exists_quantified_names_q +fun extract_all_forall_exists_quantified_names_q (Const(\<^const_name>\<open>HOL.Ex\<close>, _) $ Abs (name, _, t)) = + name :: (extract_all_forall_exists_quantified_names_q t) + | extract_all_forall_exists_quantified_names_q (Const(\<^const_name>\<open>HOL.All\<close>, _) $ Abs (name, _, t)) = + name :: (extract_all_forall_exists_quantified_names_q t) + | extract_all_forall_exists_quantified_names_q (t $ u) = + extract_all_forall_exists_quantified_names_q t @ extract_all_forall_exists_quantified_names_q u + | extract_all_forall_exists_quantified_names_q _ = [] + val extract_bind_names = HOLogic.dest_eq #> apply2 (fn (Free (name, _)) => name) @@ -482,7 +490,8 @@ in (Method.insert_tac ctxt [inst_thm] THEN' TRY' (fn i => assume_tac ctxt i) - THEN' TRY' (partial_simplify_tac ctxt @{thms eq_commute})) i + THEN' TRY' (partial_simplify_tac ctxt @{thms eq_commute ac_simps}) + THEN' TRY' (blast_tac ctxt)) i end | instantiate_and_solve _ ({context = ctxt, prems = thms, ...}: Subgoal.focus) = replay_error ctxt "invalid application" Forall_Inst thms t @@ -510,7 +519,12 @@ resolve_tac ctxt implies_pos_thm) (* Skolemization *) - +local + fun split _ [] = ([], []) + | split f (a :: xs) = + split f xs + |> (if f a then apfst (curry (op ::) a) else apsnd (curry (op ::) a)) +in fun extract_rewrite_rule_assumption _ thms = let fun is_rewrite_rule thm = @@ -521,23 +535,34 @@ (case Thm.prop_of thm of \<^term>\<open>Trueprop\<close> $ (Const(\<^const_name>\<open>HOL.eq\<close>, _) $ Free(_, _) $ Free(_, _)) => true | _ => false) - val ctxt_eq = + val (ctxt_eq, other) = thms - |> filter is_context_rule - val rew = - thms - |> filter_out is_context_rule - |> filter is_rewrite_rule + |> split is_context_rule + val (rew, other) = + other + |> split is_rewrite_rule in - (ctxt_eq, rew) + (ctxt_eq, rew, other) end +end +(* +Without compression, we have to rewrite skolems only once. However, it can happen than the same +skolem constant is used multiple times with a different name under the forall. +For strictness, we use the multiple rewriting only when compressing is activated. +*) local - fun rewrite_all_skolems thm_indirect ctxt (SOME thm :: thms) = - EqSubst.eqsubst_tac ctxt [0] [thm_indirect OF [thm]] - THEN' (partial_simplify_tac ctxt (@{thms eq_commute})) - THEN' rewrite_all_skolems thm_indirect ctxt thms - | rewrite_all_skolems thm_indirect ctxt (NONE :: thms) = rewrite_all_skolems thm_indirect ctxt thms + fun rewrite_all_skolems thm_indirect ctxt ((v,SOME thm) :: thms) = + let + val rewrite_sk_thms = + List.mapPartial (fn tm => SOME (tm OF [thm]) handle THM _ => NONE) thm_indirect + val multiple_rew = if SMT_Config.compress_verit_proofs ctxt then REPEAT_CHANGED else fn x => x + in + multiple_rew (EqSubst.eqsubst_tac ctxt [0] rewrite_sk_thms + THEN' SOLVED' (K (HEADGOAL (partial_simplify_tac ctxt (@{thms eq_commute}))))) + THEN' rewrite_all_skolems thm_indirect ctxt thms + end + | rewrite_all_skolems thm_indirect ctxt ((_,NONE) :: thms) = rewrite_all_skolems thm_indirect ctxt thms | rewrite_all_skolems _ _ [] = K (all_tac) fun extract_var_name (thm :: thms) = @@ -552,30 +577,31 @@ fun skolem_tac extractor thm1 thm2 ctxt thms t = let - val (ctxt_eq, ts) = extract_rewrite_rule_assumption ctxt thms + val (ctxt_eq, ts, other) = extract_rewrite_rule_assumption ctxt thms + fun ordered_definitions () = let val var_order = extractor t val thm_names_with_var = extract_var_name ts |> flat - in map (AList.lookup (op =) thm_names_with_var) var_order end - + in map (fn v => (v, AList.lookup (op =) thm_names_with_var v)) var_order end in SMT_Replay_Methods.prove ctxt t (fn _ => K (unfold_tac ctxt ctxt_eq) - THEN' ((SOLVED' (K (unfold_tac ctxt (map (fn thm => thm1 OF [@{thm sym} OF [thm]]) ts)))) - ORELSE' - (rewrite_all_skolems thm2 ctxt (ordered_definitions ()) - THEN' partial_simplify_tac ctxt @{thms eq_commute}))) + THEN' rewrite_all_skolems thm2 ctxt (ordered_definitions ()) + THEN' (eqsubst_all ctxt (map (fn thm => thm RS sym) other)) + THEN_ALL_NEW TRY' (resolve_tac ctxt @{thms refl}) + THEN' K (unfold_tac ctxt ctxt_eq) + THEN' TRY' (partial_simplify_tac ctxt (@{thms eq_commute}))) end in val skolem_forall = - skolem_tac extract_all_forall_quantified_names @{thm verit_sko_forall_indirect} - @{thm verit_sko_forall_indirect2} + skolem_tac extract_all_forall_exists_quantified_names_q @{thm verit_sko_forall_indirect} + @{thms verit_sko_forall_indirect2 verit_sko_ex_indirect2} val skolem_ex = - skolem_tac extract_all_exists_quantified_names @{thm verit_sko_ex_indirect} - @{thm verit_sko_ex_indirect2} + skolem_tac extract_all_forall_exists_quantified_names_q @{thm verit_sko_ex_indirect} + @{thms verit_sko_ex_indirect2 verit_sko_forall_indirect2} end
--- a/src/HOL/Tools/SMT/smt_systems.ML Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/Tools/SMT/smt_systems.ML Mon Aug 22 06:27:28 2022 +0200 @@ -154,7 +154,7 @@ "--proof-merge", "--disable-print-success", "--disable-banner"] @ - Verit_Proof.veriT_current_strategy (Context.Proof ctxt) @ + Verit_Strategies.veriT_current_strategy (Context.Proof ctxt) @ (case SMT_Config.get_timeout ctxt of NONE => [] | SOME t => ["--max-time=" ^ string_of_int (Time.toMilliseconds t)]) @@ -238,7 +238,7 @@ else () val ctxt = ctxt - |> (if stgy <> NONE then Context.proof_map (Verit_Proof.select_veriT_stgy (the stgy)) else I) + |> (if stgy <> NONE then Context.proof_map (Verit_Strategies.select_veriT_stgy (the stgy)) else I) |> Context.Proof |> SMT_Config.select_solver solver |> Context.proof_of
--- a/src/HOL/Tools/SMT/verit_proof.ML Sun Aug 21 14:01:59 2022 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,895 +0,0 @@ -(* Title: HOL/Tools/SMT/Verit_Proof.ML - Author: Mathias Fleury, ENS Rennes - Author: Sascha Boehme, TU Muenchen - -VeriT proofs: parsing and abstract syntax tree. -*) - -signature VERIT_PROOF = -sig - (*proofs*) - datatype veriT_step = VeriT_Step of { - id: string, - rule: string, - prems: string list, - proof_ctxt: term list, - concl: term, - fixes: string list} - - datatype veriT_replay_node = VeriT_Replay_Node of { - id: string, - rule: string, - args: term list, - prems: string list, - proof_ctxt: term list, - concl: term, - bounds: (string * typ) list, - declarations: (string * term) list, - insts: term Symtab.table, - subproof: (string * typ) list * term list * term list * veriT_replay_node list} - - (*proof parser*) - val parse: typ Symtab.table -> term Symtab.table -> string list -> - Proof.context -> veriT_step list * Proof.context - val parse_replay: typ Symtab.table -> term Symtab.table -> string list -> - Proof.context -> veriT_replay_node list * Proof.context - - val step_prefix : string - val input_rule: string - val keep_app_symbols: string -> bool - val keep_raw_lifting: string -> bool - val normalized_input_rule: string - val la_generic_rule : string - val rewrite_rule : string - val simp_arith_rule : string - val veriT_deep_skolemize_rule : string - val veriT_def : string - val subproof_rule : string - val local_input_rule : string - val not_not_rule : string - val contract_rule : string - val ite_intro_rule : string - val eq_congruent_rule : string - val eq_congruent_pred_rule : string - val skolemization_steps : string list - val theory_resolution2_rule: string - val equiv_pos2_rule: string - val th_resolution_rule: string - val and_pos_rule: string - - val is_skolemization: string -> bool - val is_skolemization_step: veriT_replay_node -> bool - - val number_of_steps: veriT_replay_node list -> int - - (*Strategy related*) - val veriT_strategy : string Config.T - val veriT_current_strategy : Context.generic -> string list - val all_veriT_stgies: Context.generic -> string list; - - val select_veriT_stgy: string -> Context.generic -> Context.generic; - val valid_veriT_stgy: string -> Context.generic -> bool; - val verit_add_stgy: string * string list -> Context.generic -> Context.generic - val verit_rm_stgy: string -> Context.generic -> Context.generic - - (*Global tactic*) - val verit_tac: Proof.context -> thm list -> int -> tactic - val verit_tac_stgy: string -> Proof.context -> thm list -> int -> tactic -end; - -structure Verit_Proof: VERIT_PROOF = -struct - -open SMTLIB_Proof - -val veriT_strategy_default_name = "default"; (*FUDGE*) -val veriT_strategy_del_insts_name = "del_insts"; (*FUDGE*) -val veriT_strategy_rm_insts_name = "ccfv_SIG"; (*FUDGE*) -val veriT_strategy_ccfv_insts_name = "ccfv_threshold"; (*FUDGE*) -val veriT_strategy_best_name = "best"; (*FUDGE*) - -val veriT_strategy_best = ["--index-sorts", "--index-fresh-sorts", "--triggers-new", - "--triggers-sel-rm-specific"]; -val veriT_strategy_del_insts = ["--index-sorts", "--index-fresh-sorts", "--ccfv-breadth", - "--inst-deletion", "--index-SAT-triggers", "--inst-deletion-loops", "--inst-deletion-track-vars", - "--inst-deletion", "--index-SAT-triggers"]; -val veriT_strategy_rm_insts = ["--index-SIG", "--triggers-new", "--triggers-sel-rm-specific"]; -val veriT_strategy_ccfv_insts = ["--index-sorts", "--index-fresh-sorts", "--triggers-new", - "--triggers-sel-rm-specific", "--triggers-restrict-combine", "--inst-deletion", - "--index-SAT-triggers", "--inst-deletion-loops", "--inst-deletion-track-vars", "--inst-deletion", - "--index-SAT-triggers", "--inst-sorts-threshold=100000", "--ematch-exp=10000000", - "--ccfv-index=100000", "--ccfv-index-full=1000"] - -val veriT_strategy_default = []; - -type verit_strategy = {default_strategy: string, strategies: (string * string list) list} -fun mk_verit_strategy default_strategy strategies : verit_strategy = {default_strategy=default_strategy,strategies=strategies} - -val empty_data = mk_verit_strategy veriT_strategy_best_name - [(veriT_strategy_default_name, veriT_strategy_default), - (veriT_strategy_del_insts_name, veriT_strategy_del_insts), - (veriT_strategy_rm_insts_name, veriT_strategy_rm_insts), - (veriT_strategy_ccfv_insts_name, veriT_strategy_ccfv_insts), - (veriT_strategy_best_name, veriT_strategy_best)] - -fun merge_data ({strategies=strategies1,...}:verit_strategy, - {default_strategy,strategies=strategies2}:verit_strategy) : verit_strategy = - mk_verit_strategy default_strategy (AList.merge (op =) (op =) (strategies1, strategies2)) - -structure Data = Generic_Data -( - type T = verit_strategy - val empty = empty_data - val merge = merge_data -) - -fun veriT_current_strategy ctxt = - let - val {default_strategy,strategies} = (Data.get ctxt) - in - AList.lookup (op=) strategies default_strategy - |> the - end - -val veriT_strategy = Attrib.setup_config_string \<^binding>\<open>smt_verit_strategy\<close> (K veriT_strategy_best_name); - -fun valid_veriT_stgy stgy context = - let - val {strategies,...} = Data.get context - in - AList.defined (op =) strategies stgy - end - -fun select_veriT_stgy stgy context = - let - val {strategies,...} = Data.get context - val upd = Data.map (K (mk_verit_strategy stgy strategies)) - in - if not (AList.defined (op =) strategies stgy) then - error ("Trying to select unknown veriT strategy: " ^ quote stgy) - else upd context - end - -fun verit_add_stgy stgy context = - let - val {default_strategy,strategies} = Data.get context - in - Data.map - (K (mk_verit_strategy default_strategy (AList.update (op =) stgy strategies))) - context - end - -fun verit_rm_stgy stgy context = - let - val {default_strategy,strategies} = Data.get context - in - Data.map - (K (mk_verit_strategy default_strategy (AList.delete (op =) stgy strategies))) - context - end - -fun all_veriT_stgies context = - let - val {strategies,...} = Data.get context - in - map fst strategies - end - -val select_verit = SMT_Config.select_solver "verit" -fun verit_tac ctxt = SMT_Solver.smt_tac (Config.put SMT_Config.native_bv false ((Context.proof_map select_verit ctxt))) -fun verit_tac_stgy stgy ctxt = verit_tac (Context.proof_of (select_veriT_stgy stgy (Context.Proof ctxt))) - -datatype raw_veriT_node = Raw_VeriT_Node of { - id: string, - rule: string, - args: SMTLIB.tree, - prems: string list, - concl: SMTLIB.tree, - declarations: (string * SMTLIB.tree) list, - subproof: raw_veriT_node list} - -fun mk_raw_node id rule args prems declarations concl subproof = - Raw_VeriT_Node {id = id, rule = rule, args = args, prems = prems, declarations = declarations, - concl = concl, subproof = subproof} - -datatype veriT_node = VeriT_Node of { - id: string, - rule: string, - prems: string list, - proof_ctxt: term list, - concl: term} - -fun mk_node id rule prems proof_ctxt concl = - VeriT_Node {id = id, rule = rule, prems = prems, proof_ctxt = proof_ctxt, concl = concl} - -datatype veriT_replay_node = VeriT_Replay_Node of { - id: string, - rule: string, - args: term list, - prems: string list, - proof_ctxt: term list, - concl: term, - bounds: (string * typ) list, - insts: term Symtab.table, - declarations: (string * term) list, - subproof: (string * typ) list * term list * term list * veriT_replay_node list} - -fun mk_replay_node id rule args prems proof_ctxt concl bounds insts declarations subproof = - VeriT_Replay_Node {id = id, rule = rule, args = args, prems = prems, proof_ctxt = proof_ctxt, - concl = concl, bounds = bounds, insts = insts, declarations = declarations, - subproof = subproof} - -datatype veriT_step = VeriT_Step of { - id: string, - rule: string, - prems: string list, - proof_ctxt: term list, - concl: term, - fixes: string list} - -fun mk_step id rule prems proof_ctxt concl fixes = - VeriT_Step {id = id, rule = rule, prems = prems, proof_ctxt = proof_ctxt, concl = concl, - fixes = fixes} - -val step_prefix = ".c" -val input_rule = "input" -val la_generic_rule = "la_generic" -val normalized_input_rule = "__normalized_input" (*arbitrary*) -val rewrite_rule = "__rewrite" (*arbitrary*) -val subproof_rule = "subproof" -val local_input_rule = "__local_input" (*arbitrary*) -val simp_arith_rule = "simp_arith" -val veriT_def = "__skolem_definition" (*arbitrary*) -val not_not_rule = "not_not" -val contract_rule = "contraction" -val eq_congruent_pred_rule = "eq_congruent_pred" -val eq_congruent_rule = "eq_congruent" -val ite_intro_rule = "ite_intro" -val default_skolem_rule = "sko_forall" (*arbitrary, but must be one of the skolems*) -val theory_resolution2_rule = "__theory_resolution2" (*arbitrary*) -val equiv_pos2_rule = "equiv_pos2" -val th_resolution_rule = "th_resolution" -val and_pos_rule = "and_pos" - -val skolemization_steps = ["sko_forall", "sko_ex"] -val is_skolemization = member (op =) skolemization_steps -val keep_app_symbols = member (op =) [eq_congruent_pred_rule, eq_congruent_rule, ite_intro_rule, and_pos_rule] -val keep_raw_lifting = member (op =) [eq_congruent_pred_rule, eq_congruent_rule, ite_intro_rule, and_pos_rule] -val is_SH_trivial = member (op =) [not_not_rule, contract_rule] - -fun is_skolemization_step (VeriT_Replay_Node {id, ...}) = is_skolemization id - -(* Even the veriT developers do not know if the following rule can still appear in proofs: *) -val veriT_deep_skolemize_rule = "deep_skolemize" - -fun number_of_steps [] = 0 - | number_of_steps ((VeriT_Replay_Node {subproof = (_, _, _, subproof), ...}) :: pf) = - 1 + number_of_steps subproof + number_of_steps pf - -(* proof parser *) - -fun node_of p cx = - ([], cx) - ||>> `(with_fresh_names (term_of p)) - |>> snd - -fun find_type_in_formula (Abs (v, T, u)) var_name = - if String.isPrefix var_name v then SOME T else find_type_in_formula u var_name - | find_type_in_formula (u $ v) var_name = - (case find_type_in_formula u var_name of - NONE => find_type_in_formula v var_name - | some_T => some_T) - | find_type_in_formula (Free(v, T)) var_name = - if String.isPrefix var_name v then SOME T else NONE - | find_type_in_formula _ _ = NONE - -fun synctactic_var_subst old_name new_name (u $ v) = - (synctactic_var_subst old_name new_name u $ synctactic_var_subst old_name new_name v) - | synctactic_var_subst old_name new_name (Abs (v, T, u)) = - Abs (if String.isPrefix old_name v then new_name else v, T, - synctactic_var_subst old_name new_name u) - | synctactic_var_subst old_name new_name (Free (v, T)) = - if String.isPrefix old_name v then Free (new_name, T) else Free (v, T) - | synctactic_var_subst _ _ t = t - -fun synctatic_rew_in_lhs_subst old_name new_name (Const(\<^const_name>\<open>HOL.eq\<close>, T) $ t1 $ t2) = - Const(\<^const_name>\<open>HOL.eq\<close>, T) $ synctactic_var_subst old_name new_name t1 $ t2 - | synctatic_rew_in_lhs_subst old_name new_name (Const(\<^const_name>\<open>Trueprop\<close>, T) $ t1) = - Const(\<^const_name>\<open>Trueprop\<close>, T) $ (synctatic_rew_in_lhs_subst old_name new_name t1) - | synctatic_rew_in_lhs_subst _ _ t = t - -fun add_bound_variables_to_ctxt cx = - fold (update_binding o - (fn (s, SOME typ) => (s, Term (Free (s, type_of cx typ))))) - -local - - fun extract_symbols bds = - bds - |> map (fn (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym x, SMTLIB.Sym y], typ) => [([x, y], typ)] - | t => raise (Fail ("match error " ^ @{make_string} t))) - |> flat - - (* onepoint can bind a variable to another variable or to a constant *) - fun extract_qnt_symbols cx bds = - bds - |> map (fn (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym x, SMTLIB.Sym y], typ) => - (case node_of (SMTLIB.Sym y) cx of - ((_, []), _) => [([x], typ)] - | _ => [([x, y], typ)]) - | (SMTLIB.S (SMTLIB.Sym "=" :: SMTLIB.Sym x :: _), typ) => [([x], typ)] - | t => raise (Fail ("match error " ^ @{make_string} t))) - |> flat - - fun extract_symbols_map bds = - bds - |> map (fn (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym x, _], typ) => [([x], typ)]) - |> flat -in - -fun declared_csts _ "__skolem_definition" [(SMTLIB.S [SMTLIB.Sym x, typ, _], _)] = [(x, typ)] - | declared_csts _ "__skolem_definition" t = raise (Fail ("unrecognized skolem_definition " ^ @{make_string} t)) - | declared_csts _ _ _ = [] - -fun skolems_introduced_by_rule (SMTLIB.S bds) = - fold (fn (SMTLIB.S [SMTLIB.Sym "=", _, SMTLIB.Sym y]) => curry (op ::) y) bds [] - -(*FIXME there is probably a way to use the information given by onepoint*) -fun bound_vars_by_rule _ "bind" (bds) = extract_symbols bds - | bound_vars_by_rule cx "onepoint" bds = extract_qnt_symbols cx bds - | bound_vars_by_rule _ "sko_forall" bds = extract_symbols_map bds - | bound_vars_by_rule _ "sko_ex" bds = extract_symbols_map bds - | bound_vars_by_rule _ "__skolem_definition" [(SMTLIB.S [SMTLIB.Sym x, typ, _], _)] = [([x], SOME typ)] - | bound_vars_by_rule _ "__skolem_definition" [(SMTLIB.S [_, SMTLIB.Sym x, _], _)] = [([x], NONE)] - | bound_vars_by_rule _ _ _ = [] - -(* VeriT adds "?" before some variables. *) -fun remove_all_qm (SMTLIB.Sym v :: l) = - SMTLIB.Sym (perhaps (try (unprefix "?")) v) :: remove_all_qm l - | remove_all_qm (SMTLIB.S l :: l') = SMTLIB.S (remove_all_qm l) :: remove_all_qm l' - | remove_all_qm (SMTLIB.Key v :: l) = SMTLIB.Key v :: remove_all_qm l - | remove_all_qm (v :: l) = v :: remove_all_qm l - | remove_all_qm [] = [] - -fun remove_all_qm2 (SMTLIB.Sym v) = SMTLIB.Sym (perhaps (try (unprefix "?")) v) - | remove_all_qm2 (SMTLIB.S l) = SMTLIB.S (remove_all_qm l) - | remove_all_qm2 (SMTLIB.Key v) = SMTLIB.Key v - | remove_all_qm2 v = v - -end - -datatype step_kind = ASSUME | ANCHOR | NO_STEP | NORMAL_STEP | SKOLEM - -fun parse_raw_proof_steps (limit : string option) (ls : SMTLIB.tree list) (cx : name_bindings) : - (raw_veriT_node list * SMTLIB.tree list * name_bindings) = - let - fun rotate_pair (a, (b, c)) = ((a, b), c) - fun step_kind [] = (NO_STEP, SMTLIB.S [], []) - | step_kind ((p as SMTLIB.S (SMTLIB.Sym "anchor" :: _)) :: l) = (ANCHOR, p, l) - | step_kind ((p as SMTLIB.S (SMTLIB.Sym "assume" :: _)) :: l) = (ASSUME, p, l) - | step_kind ((p as SMTLIB.S (SMTLIB.Sym "step" :: _)) :: l) = (NORMAL_STEP, p, l) - | step_kind ((p as SMTLIB.S (SMTLIB.Sym "define-fun" :: _)) :: l) = (SKOLEM, p, l) - fun parse_skolem (SMTLIB.S [SMTLIB.Sym "define-fun", SMTLIB.Sym id, _, typ, - SMTLIB.S (SMTLIB.Sym "!" :: t :: [SMTLIB.Key _, SMTLIB.Sym name])]) cx = - (*replace the name binding by the constant instead of the full term in order to reduce - the size of the generated terms and therefore the reconstruction time*) - let val (l, cx) = (fst oo SMTLIB_Proof.extract_and_update_name_bindings) t cx - |> apsnd (SMTLIB_Proof.update_name_binding (name, SMTLIB.Sym id)) - in - (mk_raw_node (id ^ veriT_def) veriT_def (SMTLIB.S [SMTLIB.Sym id, typ, l]) [] [] - (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym id, l]) [], cx) - end - | parse_skolem (SMTLIB.S [SMTLIB.Sym "define-fun", SMTLIB.Sym id, _, typ, SMTLIB.S l]) cx = - let val (l, cx) = (fst oo SMTLIB_Proof.extract_and_update_name_bindings) (SMTLIB.S l ) cx - in - (mk_raw_node (id ^ veriT_def) veriT_def (SMTLIB.S [SMTLIB.Sym id, typ, l]) [] [] - (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym id, l]) [], cx) - end - | parse_skolem t _ = raise Fail ("unrecognized VeriT proof " ^ \<^make_string> t) - fun get_id_cx (SMTLIB.S ((SMTLIB.Sym _) :: (SMTLIB.Sym id) :: l), cx) = (id, (l, cx)) - | get_id_cx t = raise Fail ("unrecognized VeriT proof " ^ \<^make_string> t) - fun get_id (SMTLIB.S ((SMTLIB.Sym _) :: (SMTLIB.Sym id) :: l)) = (id, l) - | get_id t = raise Fail ("unrecognized VeriT proof " ^ \<^make_string> t) - fun parse_source (SMTLIB.Key "premises" :: SMTLIB.S source ::l, cx) = - (SOME (map (fn (SMTLIB.Sym id) => id) source), (l, cx)) - | parse_source (l, cx) = (NONE, (l, cx)) - fun parse_rule (SMTLIB.Key "rule" :: SMTLIB.Sym r :: l, cx) = (r, (l, cx)) - | parse_rule t = raise Fail ("unrecognized VeriT proof " ^ \<^make_string> t) - fun parse_anchor_step (SMTLIB.S (SMTLIB.Sym "anchor" :: SMTLIB.Key "step" :: SMTLIB.Sym r :: l), cx) = (r, (l, cx)) - | parse_anchor_step t = raise Fail ("unrecognized VeriT proof " ^ \<^make_string> t) - fun parse_args (SMTLIB.Key "args" :: args :: l, cx) = - let val ((args, cx), _) = SMTLIB_Proof.extract_and_update_name_bindings args cx - in (args, (l, cx)) end - | parse_args (l, cx) = (SMTLIB.S [], (l, cx)) - fun parse_and_clausify_conclusion (SMTLIB.S (SMTLIB.Sym "cl" :: []) :: l, cx) = - (SMTLIB.Sym "false", (l, cx)) - | parse_and_clausify_conclusion (SMTLIB.S (SMTLIB.Sym "cl" :: concl) :: l, cx) = - let val (concl, cx) = fold_map (fst oo SMTLIB_Proof.extract_and_update_name_bindings) concl cx - in (SMTLIB.S (SMTLIB.Sym "or" :: concl), (l, cx)) end - | parse_and_clausify_conclusion t = raise Fail ("unrecognized VeriT proof " ^ \<^make_string> t) - val parse_normal_step = - get_id_cx - ##> parse_and_clausify_conclusion - #> rotate_pair - ##> parse_rule - #> rotate_pair - ##> parse_source - #> rotate_pair - ##> parse_args - #> rotate_pair - - fun to_raw_node subproof ((((id, concl), rule), prems), args) = - mk_raw_node id rule args (the_default [] prems) [] concl subproof - fun at_discharge NONE _ = false - | at_discharge (SOME id) p = p |> get_id |> fst |> (fn id2 => id = id2) - in - case step_kind ls of - (NO_STEP, _, _) => ([],[], cx) - | (NORMAL_STEP, p, l) => - if at_discharge limit p then ([], ls, cx) else - let - val (s, (_, cx)) = (p, cx) - |> parse_normal_step - ||> (fn i => i) - |>> (to_raw_node []) - val (rp, rl, cx) = parse_raw_proof_steps limit l cx - in (s :: rp, rl, cx) end - | (ASSUME, p, l) => - let - val (id, t :: []) = p - |> get_id - val ((t, cx), _) = SMTLIB_Proof.extract_and_update_name_bindings t cx - val s = mk_raw_node id input_rule (SMTLIB.S []) [] [] t [] - val (rp, rl, cx) = parse_raw_proof_steps limit l cx - in (s :: rp, rl, cx) end - | (ANCHOR, p, l) => - let - val (anchor_id, (anchor_args, (_, cx))) = (p, cx) |> (parse_anchor_step ##> parse_args) - val (subproof, discharge_step :: remaining_proof, cx) = parse_raw_proof_steps (SOME anchor_id) l cx - val (curss, (_, cx)) = parse_normal_step (discharge_step, cx) - val s = to_raw_node subproof (fst curss, anchor_args) - val (rp, rl, cx) = parse_raw_proof_steps limit remaining_proof cx - in (s :: rp, rl, cx) end - | (SKOLEM, p, l) => - let - val (s, cx) = parse_skolem p cx - val (rp, rl, cx) = parse_raw_proof_steps limit l cx - in (s :: rp, rl, cx) end - end - -fun proof_ctxt_of_rule "bind" t = t - | proof_ctxt_of_rule "sko_forall" t = t - | proof_ctxt_of_rule "sko_ex" t = t - | proof_ctxt_of_rule "let" t = t - | proof_ctxt_of_rule "onepoint" t = t - | proof_ctxt_of_rule _ _ = [] - -fun args_of_rule "bind" t = t - | args_of_rule "la_generic" t = t - | args_of_rule "lia_generic" t = t - | args_of_rule _ _ = [] - -fun insts_of_forall_inst "forall_inst" t = map (fn SMTLIB.S [_, SMTLIB.Sym x, a] => (x, a)) t - | insts_of_forall_inst _ _ = [] - -fun id_of_last_step prems = - if null prems then [] - else - let val VeriT_Replay_Node {id, ...} = List.last prems in [id] end - -fun extract_assumptions_from_subproof subproof = - let fun extract_assumptions_from_subproof (VeriT_Replay_Node {rule, concl, ...}) assms = - if rule = local_input_rule then concl :: assms else assms - in - fold extract_assumptions_from_subproof subproof [] - end - -fun normalized_rule_name id rule = - (case (rule = input_rule, can SMTLIB_Interface.role_and_index_of_assert_name id) of - (true, true) => normalized_input_rule - | (true, _) => local_input_rule - | _ => rule) - -fun is_assm_repetition id rule = - rule = input_rule andalso can SMTLIB_Interface.role_and_index_of_assert_name id - -fun extract_skolem ([SMTLIB.Sym var, typ, choice]) = (var, typ, choice) - | extract_skolem t = raise Fail ("fail to parse type" ^ @{make_string} t) - -(* The preprocessing takes care of: - 1. unfolding the shared terms - 2. extract the declarations of skolems to make sure that there are not unfolded -*) -fun preprocess compress step = - let - fun expand_assms cs = - map (fn t => case AList.lookup (op =) cs t of NONE => t | SOME a => a) - fun expand_lonely_arguments (args as SMTLIB.S [SMTLIB.Sym "=", _, _]) = [args] - | expand_lonely_arguments (x as SMTLIB.S [SMTLIB.Sym var, _]) = [SMTLIB.S [SMTLIB.Sym "=", x, SMTLIB.Sym var]] - - fun preprocess (Raw_VeriT_Node {id, rule, args, prems, concl, subproof, ...}) (cx, remap_assms) = - let - val (skolem_names, stripped_args) = args - |> (fn SMTLIB.S args => args) - |> map - (fn SMTLIB.S [SMTLIB.Key "=", x, y] => SMTLIB.S [SMTLIB.Sym "=", x, y] - | x => x) - |> (rule = "bind" orelse rule = "onepoint") ? flat o (map expand_lonely_arguments) - |> `(if rule = veriT_def then single o extract_skolem else K []) - ||> SMTLIB.S - val (subproof, (cx, _)) = fold_map preprocess subproof (cx, remap_assms) |> apfst flat - val remap_assms = (if rule = "or" then (id, hd prems) :: remap_assms else remap_assms) - (* declare variables in the context *) - val declarations = - if rule = veriT_def - then skolem_names |> map (fn (name, _, choice) => (name, choice)) - else [] - in - if compress andalso rule = "or" - then ([], (cx, remap_assms)) - else ([Raw_VeriT_Node {id = id, rule = rule, args = stripped_args, - prems = expand_assms remap_assms prems, declarations = declarations, concl = concl, subproof = subproof}], - (cx, remap_assms)) - end - in preprocess step end - -fun filter_split _ [] = ([], []) - | filter_split f (a :: xs) = - (if f a then apfst (curry op :: a) else apsnd (curry op :: a)) (filter_split f xs) - -fun collect_skolem_defs (Raw_VeriT_Node {rule, subproof = subproof, args, ...}) = - (if is_skolemization rule then map (fn id => id ^ veriT_def) (skolems_introduced_by_rule args) else []) @ - flat (map collect_skolem_defs subproof) - -fun extract_types_of_args (SMTLIB.S [var, typ, t as SMTLIB.S [SMTLIB.Sym "choice", _, _]]) = - (SMTLIB.S [var, typ, t], SOME typ) - |> single - | extract_types_of_args (SMTLIB.S t) = - let - fun extract_types_of_arg (SMTLIB.S [eq, SMTLIB.S [var, typ], t]) = (SMTLIB.S [eq, var, t], SOME typ) - | extract_types_of_arg t = (t, NONE) - in - t - |> map extract_types_of_arg - end - -(*The postprocessing does: - 1. translate the terms to Isabelle syntax, taking care of free variables - 2. remove the ambiguity in the proof terms: - x \<leadsto> y |- x = x - means y = x. To remove ambiguity, we use the fact that y is a free variable and replace the term - by: - xy \<leadsto> y |- xy = x. - This is now does not have an ambiguity and we can safely move the "xy \<leadsto> y" to the proof - assumptions. -*) -fun postprocess_proof compress ctxt step cx = - let - fun postprocess (Raw_VeriT_Node {id, rule, args, prems, declarations, concl, subproof}) (cx, rew) = - let - val _ = (SMT_Config.verit_msg ctxt) (fn () => @{print} ("id =", id, "concl =", concl)) - - val (args) = extract_types_of_args args - val globally_bound_vars = declared_csts cx rule args - val cx = fold (update_binding o (fn (s, typ) => (s, Term (Free (s, type_of cx typ))))) - globally_bound_vars cx - - (*find rebound variables specific to the LHS of the equivalence symbol*) - val bound_vars = bound_vars_by_rule cx rule args - val bound_vars_no_typ = map fst bound_vars - val rhs_vars = - fold (fn [t', t] => t <> t' ? (curry (op ::) t) | _ => fn x => x) bound_vars_no_typ [] - fun not_already_bound cx t = SMTLIB_Proof.lookup_binding cx t = None andalso - not (member (op =) rhs_vars t) - val (shadowing_vars, rebound_lhs_vars) = bound_vars - |> filter_split (fn ([t, _], typ) => not_already_bound cx t | _ => true) - |>> map (apfst (hd)) - |>> (fn vars => vars @ flat (map (fn ([_, t], typ) => [(t, typ)] | _ => []) bound_vars)) - val subproof_rew = fold (fn [t, t'] => curry (op ::) (t, t ^ t')) - (map fst rebound_lhs_vars) rew - val subproof_rewriter = fold (fn (t, t') => synctatic_rew_in_lhs_subst t t') - subproof_rew - - val ((concl, bounds), cx') = node_of concl cx - - val extra_lhs_vars = map (fn ([a,b], typ) => (a, a^b, typ)) rebound_lhs_vars - val old_lhs_vars = map (fn (a, _, typ) => (a, typ)) extra_lhs_vars - val new_lhs_vars = map (fn (_, newvar, typ) => (newvar, typ)) extra_lhs_vars - - (* postprocess conclusion *) - val concl = SMTLIB_Isar.unskolemize_names ctxt (subproof_rewriter concl) - - val _ = (SMT_Config.verit_msg ctxt) (fn () => \<^print> ("id =", id, "concl =", concl)) - val _ = (SMT_Config.verit_msg ctxt) (fn () => \<^print> ("id =", id, "cx' =", cx', - "bound_vars =", bound_vars)) - - val bound_tvars = - map (fn (s, SOME typ) => (s, type_of cx typ)) - (shadowing_vars @ new_lhs_vars) - val subproof_cx = - add_bound_variables_to_ctxt cx (shadowing_vars @ new_lhs_vars) cx - - fun could_unify (Bound i, Bound j) = i = j - | could_unify (Var v, Var v') = v = v' - | could_unify (Free v, Free v') = v = v' - | could_unify (Const (v, ty), Const (v', ty')) = v = v' andalso ty = ty' - | could_unify (Abs (_, ty, bdy), Abs (_, ty', bdy')) = ty = ty' andalso could_unify (bdy, bdy') - | could_unify (u $ v, u' $ v') = could_unify (u, u') andalso could_unify (v, v') - | could_unify _ = false - fun is_alpha_renaming t = - t - |> HOLogic.dest_Trueprop - |> HOLogic.dest_eq - |> could_unify - handle TERM _ => false - val alpha_conversion = rule = "bind" andalso is_alpha_renaming concl - - val can_remove_subproof = - compress andalso (is_skolemization rule orelse alpha_conversion) - val (fixed_subproof : veriT_replay_node list, _) = - fold_map postprocess (if can_remove_subproof then [] else subproof) - (subproof_cx, subproof_rew) - - val unsk_and_rewrite = SMTLIB_Isar.unskolemize_names ctxt o subproof_rewriter - - (* postprocess assms *) - val stripped_args = map fst args - val sanitized_args = proof_ctxt_of_rule rule stripped_args - - val arg_cx = add_bound_variables_to_ctxt cx (shadowing_vars @ old_lhs_vars) subproof_cx - val (termified_args, _) = fold_map node_of sanitized_args arg_cx |> apfst (map fst) - val normalized_args = map unsk_and_rewrite termified_args - - val subproof_assms = proof_ctxt_of_rule rule normalized_args - - (* postprocess arguments *) - val rule_args = args_of_rule rule stripped_args - val (termified_args, _) = fold_map term_of rule_args subproof_cx - val normalized_args = map unsk_and_rewrite termified_args - val rule_args = map subproof_rewriter normalized_args - - val raw_insts = insts_of_forall_inst rule stripped_args - fun termify_term (x, t) cx = let val (t, cx) = term_of t cx in ((x, t), cx) end - val (termified_args, _) = fold_map termify_term raw_insts subproof_cx - val insts = Symtab.empty - |> fold (fn (x, t) => fn insts => Symtab.update_new (x, t) insts) termified_args - |> Symtab.map (K unsk_and_rewrite) - - (* declarations *) - val (declarations, _) = fold_map termify_term declarations cx - |> apfst (map (apsnd unsk_and_rewrite)) - - (* fix step *) - val _ = if bounds <> [] then raise (Fail "found dangling variable in concl") else () - val skolem_defs = (if is_skolemization rule - then map (fn id => id ^ veriT_def) (skolems_introduced_by_rule (SMTLIB.S (map fst args))) else []) - val skolems_of_subproof = (if is_skolemization rule - then flat (map collect_skolem_defs subproof) else []) - val fixed_prems = - prems @ (if is_assm_repetition id rule then [id] else []) @ - skolem_defs @ skolems_of_subproof @ (id_of_last_step fixed_subproof) - - (* fix subproof *) - val normalized_rule = normalized_rule_name id rule - |> (if compress andalso alpha_conversion then K "refl" else I) - - val extra_assms2 = - (if rule = subproof_rule then extract_assumptions_from_subproof fixed_subproof else []) - - val step = mk_replay_node id normalized_rule rule_args fixed_prems subproof_assms concl - [] insts declarations (bound_tvars, subproof_assms, extra_assms2, fixed_subproof) - - in - (step, (cx', rew)) - end - in - postprocess step (cx, []) - |> (fn (step, (cx, _)) => (step, cx)) - end - -fun combine_proof_steps ((step1 : veriT_replay_node) :: step2 :: steps) = - let - val (VeriT_Replay_Node {id = id1, rule = rule1, args = args1, prems = prems1, - proof_ctxt = proof_ctxt1, concl = concl1, bounds = bounds1, insts = insts1, - declarations = declarations1, - subproof = (bound_sub1, assms_sub1, assms_extra1, subproof1)}) = step1 - val (VeriT_Replay_Node {id = id2, rule = rule2, args = args2, prems = prems2, - proof_ctxt = proof_ctxt2, concl = concl2, bounds = bounds2, insts = insts2, - declarations = declarations2, - subproof = (bound_sub2, assms_sub2, assms_extra2, subproof2)}) = step2 - val goals1 = - (case concl1 of - _ $ (Const (\<^const_name>\<open>HOL.disj\<close>, _) $ _ $ - (Const (\<^const_name>\<open>HOL.disj\<close>, _) $ (Const (\<^const_name>\<open>HOL.Not\<close>, _) $a) $ b)) => [a,b] - | _ => []) - val goal2 = (case concl2 of _ $ a => a) - in - if rule1 = equiv_pos2_rule andalso rule2 = th_resolution_rule andalso member (op =) prems2 id1 - andalso member (op =) goals1 goal2 - then - mk_replay_node id2 theory_resolution2_rule args2 (filter_out (curry (op =) id1) prems2) - proof_ctxt2 concl2 bounds2 insts2 declarations2 - (bound_sub2, assms_sub2, assms_extra2, combine_proof_steps subproof2) :: - combine_proof_steps steps - else - mk_replay_node id1 rule1 args1 prems1 - proof_ctxt1 concl1 bounds1 insts1 declarations1 - (bound_sub1, assms_sub1, assms_extra1, combine_proof_steps subproof1) :: - combine_proof_steps (step2 :: steps) - end - | combine_proof_steps steps = steps - - -val linearize_proof = - let - fun map_node_concl f (VeriT_Node {id, rule, prems, proof_ctxt, concl}) = - mk_node id rule prems proof_ctxt (f concl) - fun linearize (VeriT_Replay_Node {id = id, rule = rule, args = _, prems = prems, - proof_ctxt = proof_ctxt, concl = concl, bounds = bounds, insts = _, declarations = _, - subproof = (bounds', assms, inputs, subproof)}) = - let - val bounds = distinct (op =) bounds - val bounds' = distinct (op =) bounds' - fun mk_prop_of_term concl = - concl |> fastype_of concl = \<^typ>\<open>bool\<close> ? curry (op $) \<^term>\<open>Trueprop\<close> - fun remove_assumption_id assumption_id prems = - filter_out (curry (op =) assumption_id) prems - fun add_assumption assumption concl = - \<^Const>\<open>Pure.imp for \<open>mk_prop_of_term assumption\<close> \<open>mk_prop_of_term concl\<close>\<close> - fun inline_assumption assumption assumption_id - (VeriT_Node {id, rule, prems, proof_ctxt, concl}) = - mk_node id rule (remove_assumption_id assumption_id prems) proof_ctxt - (add_assumption assumption concl) - fun find_input_steps_and_inline [] = [] - | find_input_steps_and_inline - (VeriT_Node {id = id', rule, prems, concl, ...} :: steps) = - if rule = input_rule then - find_input_steps_and_inline (map (inline_assumption concl id') steps) - else - mk_node (id') rule prems [] concl :: find_input_steps_and_inline steps - - fun free_bounds bounds (concl) = - fold (fn (var, typ) => fn t => Logic.all (Free (var, typ)) t) bounds concl - val subproof = subproof - |> flat o map linearize - |> map (map_node_concl (fold add_assumption (assms @ inputs))) - |> map (map_node_concl (free_bounds (bounds @ bounds'))) - |> find_input_steps_and_inline - val concl = free_bounds bounds concl - in - subproof @ [mk_node id rule prems proof_ctxt concl] - end - in linearize end - -fun rule_of (VeriT_Replay_Node {rule,...}) = rule -fun subproof_of (VeriT_Replay_Node {subproof = (_, _, _, subproof),...}) = subproof - - -(* Massage Skolems for Sledgehammer. - -We have to make sure that there is an "arrow" in the graph for skolemization steps. - - -A. The normal easy case - -This function detects the steps of the form - P \<longleftrightarrow> Q :skolemization - Q :resolution with P -and replace them by - Q :skolemization -Throwing away the step "P \<longleftrightarrow> Q" completely. This throws away a lot of information, but it does not -matter too much for Sledgehammer. - - -B. Skolems in subproofs -Supporting this is more or less hopeless as long as the Isar reconstruction of Sledgehammer -does not support more features like definitions. veriT is able to generate proofs with skolemization -happening in subproofs inside the formula. - (assume "A \<or> P" - ... - P \<longleftrightarrow> Q :skolemization in the subproof - ...) - hence A \<or> P \<longrightarrow> A \<or> Q :lemma - ... - R :something with some rule -and replace them by - R :skolemization with some rule -Without any subproof -*) -fun remove_skolem_definitions_proof steps = - let - fun replace_equivalent_by_imp (judgement $ ((Const(\<^const_name>\<open>HOL.eq\<close>, typ) $ arg1) $ arg2)) = - judgement $ ((Const(\<^const_name>\<open>HOL.implies\<close>, typ) $ arg1) $ arg2) - | replace_equivalent_by_imp a = a (*This case is probably wrong*) - fun remove_skolem_definitions (VeriT_Replay_Node {id = id, rule = rule, args = args, - prems = prems, - proof_ctxt = proof_ctxt, concl = concl, bounds = bounds, insts = insts, - declarations = declarations, - subproof = (vars, assms', extra_assms', subproof)}) (prems_to_remove, skolems) = - let - val prems = prems - |> filter_out (member (op =) prems_to_remove) - val trivial_step = is_SH_trivial rule - fun has_skolem_substep st NONE = if is_skolemization (rule_of st) then SOME (rule_of st) - else fold has_skolem_substep (subproof_of st) NONE - | has_skolem_substep _ a = a - val promote_to_skolem = exists (fn t => member (op =) skolems t) prems - val promote_from_assms = fold has_skolem_substep subproof NONE <> NONE - val promote_step = promote_to_skolem orelse promote_from_assms - val skolem_step_to_skip = is_skolemization rule orelse - (promote_from_assms andalso length prems > 1) - val is_skolem = is_skolemization rule orelse promote_step - val prems = prems - |> filter_out (fn t => member (op =) skolems t) - |> is_skolem ? filter_out (String.isPrefix id) - val rule = (if promote_step then default_skolem_rule else rule) - val subproof = subproof - |> (is_skolem ? K []) (*subproofs of skolemization steps are useless for SH*) - |> map (fst o (fn st => remove_skolem_definitions st (prems_to_remove, skolems))) - (*no new definitions in subproofs*) - |> flat - val concl = concl - |> is_skolem ? replace_equivalent_by_imp - val step = (if skolem_step_to_skip orelse rule = veriT_def orelse trivial_step then [] - else mk_replay_node id rule args prems proof_ctxt concl bounds insts declarations - (vars, assms', extra_assms', subproof) - |> single) - val defs = (if rule = veriT_def orelse trivial_step then id :: prems_to_remove - else prems_to_remove) - val skolems = (if skolem_step_to_skip then id :: skolems else skolems) - in - (step, (defs, skolems)) - end - in - fold_map remove_skolem_definitions steps ([], []) - |> fst - |> flat - end - -local - fun import_proof_and_post_process typs funs lines ctxt = - let - val compress = SMT_Config.compress_verit_proofs ctxt - val smtlib_lines_without_qm = - lines - |> map single - |> map SMTLIB.parse - |> map remove_all_qm2 - val (raw_steps, _, _) = - parse_raw_proof_steps NONE smtlib_lines_without_qm SMTLIB_Proof.empty_name_binding - - fun process step (cx, cx') = - let fun postprocess step (cx, cx') = - let val (step, cx) = postprocess_proof compress ctxt step cx - in (step, (cx, cx')) end - in uncurry (fold_map postprocess) (preprocess compress step (cx, cx')) end - val step = - (empty_context ctxt typs funs, []) - |> fold_map process raw_steps - |> (fn (steps, (cx, _)) => (flat steps, cx)) - |> compress? apfst combine_proof_steps - in step end -in - -fun parse typs funs lines ctxt = - let - val (u, env) = import_proof_and_post_process typs funs lines ctxt - val t = u - |> remove_skolem_definitions_proof - |> flat o (map linearize_proof) - fun node_to_step (VeriT_Node {id, rule, prems, concl, ...}) = - mk_step id rule prems [] concl [] - in - (map node_to_step t, ctxt_of env) - end - -fun parse_replay typs funs lines ctxt = - let - val (u, env) = import_proof_and_post_process typs funs lines ctxt - val _ = (SMT_Config.verit_msg ctxt) (fn () => \<^print> u) - in - (u, ctxt_of env) - end -end - -end;
--- a/src/HOL/Tools/SMT/verit_replay.ML Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/Tools/SMT/verit_replay.ML Mon Aug 22 06:27:28 2022 +0200 @@ -41,14 +41,14 @@ fun replay_thm method_for rewrite_rules ll_defs ctxt assumed unchanged_prems prems nthms concl_transformation global_transformation args insts - (Verit_Proof.VeriT_Replay_Node {id, rule, concl, bounds, declarations = decls, ...}) = + (Lethe_Proof.Lethe_Replay_Node {id, rule, concl, bounds, declarations = decls, ...}) = let val _ = SMT_Config.verit_msg ctxt (fn () => \<^print> id) val rewrite = let val thy = Proof_Context.theory_of (empty_simpset ctxt) in Raw_Simplifier.rewrite_term thy rewrite_rules [] - #> not (null ll_defs andalso Verit_Proof.keep_raw_lifting rule) ? SMTLIB_Isar.unlift_term ll_defs + #> not (null ll_defs andalso Lethe_Proof.keep_raw_lifting rule) ? SMTLIB_Isar.unlift_term ll_defs end - val rewrite_concl = if Verit_Proof.keep_app_symbols rule then + val rewrite_concl = if Lethe_Proof.keep_app_symbols rule then filter (curry Term.could_unify (Thm.concl_of @{thm SMT.fun_app_def}) o Thm.concl_of) rewrite_rules else rewrite_rules val post = let val thy = Proof_Context.theory_of (empty_simpset ctxt) in @@ -63,7 +63,7 @@ |> subst_only_free global_transformation |> post in - if rule = Verit_Proof.input_rule then + if rule = Lethe_Proof.input_rule then (case Symtab.lookup assumed id of SOME (_, thm) => thm | _ => raise Fail ("assumption " ^ @{make_string} id ^ " not found")) @@ -77,20 +77,20 @@ |> Simplifier.simplify (empty_simpset ctxt addsimps rewrite_rules) end -fun add_used_asserts_in_step (Verit_Proof.VeriT_Replay_Node {prems, +fun add_used_asserts_in_step (Lethe_Proof.Lethe_Replay_Node {prems, subproof = (_, _, _, subproof), ...}) = union (op =) (map_filter (try (snd o SMTLIB_Interface.role_and_index_of_assert_name)) prems @ flat (map (fn x => add_used_asserts_in_step x []) subproof)) fun remove_rewrite_rules_from_rules n = - (fn (step as Verit_Proof.VeriT_Replay_Node {id, ...}) => + (fn (step as Lethe_Proof.Lethe_Replay_Node {id, ...}) => (case try (snd o SMTLIB_Interface.role_and_index_of_assert_name) id of NONE => SOME step | SOME a => if a < n then NONE else SOME step)) fun replay_theorem_step rewrite_rules ll_defs assumed inputs proof_prems - (step as Verit_Proof.VeriT_Replay_Node {id, rule, prems, bounds, args, insts, + (step as Lethe_Proof.Lethe_Replay_Node {id, rule, prems, bounds, args, insts, subproof = (fixes, assms, input, subproof), concl, ...}) state = let val (proofs, stats, ctxt, concl_tranformation, global_transformation) = state @@ -104,9 +104,9 @@ (ListPair.zip (map Free fixes, map Free (ListPair.zip (names, map snd fixes)))) val post = let val thy = Proof_Context.theory_of (empty_simpset ctxt) in - Raw_Simplifier.rewrite_term thy ((if Verit_Proof.keep_raw_lifting rule then tl rewrite_rules else rewrite_rules)) [] + Raw_Simplifier.rewrite_term thy ((if Lethe_Proof.keep_raw_lifting rule then tl rewrite_rules else rewrite_rules)) [] #> Object_Logic.atomize_term ctxt - #> not (null ll_defs andalso Verit_Proof.keep_raw_lifting rule) ? SMTLIB_Isar.unlift_term ll_defs + #> not (null ll_defs andalso Lethe_Proof.keep_raw_lifting rule) ? SMTLIB_Isar.unlift_term ll_defs #> SMTLIB_Isar.unskolemize_names ctxt #> HOLogic.mk_Trueprop end @@ -130,9 +130,10 @@ (*for sko_ex and sko_forall, assumptions are in proofs', but the definition of the skolem function is in proofs *) val nthms = prems + |> filter_out Lethe_Proof.is_lethe_def |> map (apsnd export_thm) o map_filter (Symtab.lookup (if (null subproof) then proofs else proofs')) - val nthms' = (if Verit_Proof.is_skolemization rule - then prems else []) + val nthms' = (if Lethe_Proof.is_skolemization rule then prems else []) + |> filter Lethe_Proof.is_lethe_def |> map_filter (Symtab.lookup proofs) val args = map (Term.subst_free concl_tranformation o subst_only_free global_transformation) args val insts = Symtab.map (K (Term.subst_free concl_tranformation o subst_only_free global_transformation)) insts @@ -148,21 +149,12 @@ SMT_Config.with_time_limit ctxt SMT_Config.reconstruction_step_timeout replay step handle Timeout.TIMEOUT _ => raise SMT_Failure.SMT SMT_Failure.Time_Out val stats' = Symtab.cons_list (rule, Time.toNanoseconds elapsed) stats -(* val _ = ((Time.toMilliseconds elapsed > 10 andalso (rule = "cong")) ? @{print}) - ("WARNING slow " ^ id ^ @{make_string} rule ^ ": " ^ string_of_int (Time.toMilliseconds elapsed) ^ " " - ^ @{make_string} (proof_prems @ local_inputs)) - val _ = ((Time.toMilliseconds elapsed > 10 andalso (rule = "cong")) ? @{print}) - ( (proof_prems @ local_inputs)) - val _ = ((Time.toMilliseconds elapsed > 10 andalso (rule = "cong")) ? @{print}) - thm - val _ = ((Time.toMilliseconds elapsed > 40) ? @{print}) - ("WARNING slow " ^ id ^ @{make_string} rule ^ ": " ^ string_of_int (Time.toMilliseconds elapsed)) *) val proofs = Symtab.update (id, (map fst bounds, thm)) proofs in (proofs, stats', ctxt, concl_tranformation, sub_global_rew) end fun replay_definition_step rewrite_rules ll_defs _ _ _ - (Verit_Proof.VeriT_Replay_Node {id, declarations = raw_declarations, subproof = (_, _, _, subproof), ...}) state = + (Lethe_Proof.Lethe_Replay_Node {id, declarations = raw_declarations, subproof = (_, _, _, subproof), ...}) state = let val _ = if null subproof then () else raise (Fail ("unrecognized veriT proof, definition has a subproof")) @@ -213,15 +205,15 @@ SMT_Config.with_time_limit ctxt SMT_Config.reconstruction_step_timeout replay (fn _ => Method.insert_tac ctxt (map snd assms) THEN' Classical.fast_tac ctxt) handle Timeout.TIMEOUT _ => raise SMT_Failure.SMT SMT_Failure.Time_Out - val stats' = Symtab.cons_list (Verit_Proof.input_rule, Time.toNanoseconds elapsed) stats + val stats' = Symtab.cons_list (Lethe_Proof.input_rule, Time.toNanoseconds elapsed) stats in (thm, stats') end fun replay_step rewrite_rules ll_defs assumed inputs proof_prems - (step as Verit_Proof.VeriT_Replay_Node {rule, ...}) state = - if rule = Verit_Proof.veriT_def + (step as Lethe_Proof.Lethe_Replay_Node {rule, ...}) state = + if rule = Lethe_Proof.lethe_def then replay_definition_step rewrite_rules ll_defs assumed inputs proof_prems step state else replay_theorem_step rewrite_rules ll_defs assumed inputs proof_prems step state @@ -240,13 +232,13 @@ val start0 = Timing.start () val (actual_steps, ctxt2) = - Verit_Proof.parse_replay typs terms output ctxt + Lethe_Proof.parse_replay typs terms output ctxt val parsing_time = Time.toNanoseconds (#elapsed (Timing.result start0)) fun step_of_assume (j, (_, th)) = - Verit_Proof.VeriT_Replay_Node { + Lethe_Proof.Lethe_Replay_Node { id = SMTLIB_Interface.assert_name_of_role_and_index SMT_Util.Axiom (id_of_index j), - rule = Verit_Proof.input_rule, + rule = Lethe_Proof.input_rule, args = [], prems = [], proof_ctxt = [], @@ -267,9 +259,9 @@ val assm_steps = map step_of_assume used_assm_js - fun extract (Verit_Proof.VeriT_Replay_Node {id, rule, concl, bounds, ...}) = + fun extract (Lethe_Proof.Lethe_Replay_Node {id, rule, concl, bounds, ...}) = (id, rule, concl, map fst bounds) - fun cond rule = rule = Verit_Proof.input_rule + fun cond rule = rule = Lethe_Proof.input_rule val add_asssert = SMT_Replay.add_asserted Symtab.update Symtab.empty extract cond val ((_, _), (ctxt3, assumed)) = add_asssert outer_ctxt rewrite_rules (map (apfst fst) assms) @@ -292,10 +284,10 @@ ctxt3 |> put_simpset (SMT_Replay.make_simpset ctxt3 []) |> Config.put SAT.solver (Config.get ctxt3 SMT_Config.sat_solver) - val len = Verit_Proof.number_of_steps actual_steps + val len = Lethe_Proof.number_of_steps actual_steps fun steps_with_depth _ [] = [] - | steps_with_depth i (p :: ps) = (i + Verit_Proof.number_of_steps [p], p) :: - steps_with_depth (i + Verit_Proof.number_of_steps [p]) ps + | steps_with_depth i (p :: ps) = (i + Lethe_Proof.number_of_steps [p], p) :: + steps_with_depth (i + Lethe_Proof.number_of_steps [p]) ps val actual_steps = steps_with_depth 0 actual_steps val start = Timing.start () val print_runtime_statistics = SMT_Replay.intermediate_statistics ctxt4 start len @@ -307,7 +299,7 @@ fold (blockwise (replay_step rewrite_rules ll_defs assumed [] [])) actual_steps (1, (assumed, stats, ctxt4, [], global_transformation)) val total = Time.toMilliseconds (#elapsed (Timing.result start)) - val (_, (_, Verit_Proof.VeriT_Replay_Node {id, ...})) = split_last actual_steps + val (_, (_, Lethe_Proof.Lethe_Replay_Node {id, ...})) = split_last actual_steps val _ = print_runtime_statistics len val thm_with_defs = Symtab.lookup proofs id |> the |> snd |> singleton (Proof_Context.export ctxt5 outer_ctxt)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/HOL/Tools/SMT/verit_strategies.ML Mon Aug 22 06:27:28 2022 +0200 @@ -0,0 +1,126 @@ +(* Title: HOL/Tools/SMT/Verit_Proof.ML + Author: Mathias Fleury, ENS Rennes, MPI, JKU, Freiburg University + +VeriT proofs: parsing and abstract syntax tree. +*) + +signature VERIT_STRATEGIES = +sig + (*Strategy related*) + val veriT_strategy : string Config.T + val veriT_current_strategy : Context.generic -> string list + val all_veriT_stgies: Context.generic -> string list; + + val select_veriT_stgy: string -> Context.generic -> Context.generic; + val valid_veriT_stgy: string -> Context.generic -> bool; + val verit_add_stgy: string * string list -> Context.generic -> Context.generic + val verit_rm_stgy: string -> Context.generic -> Context.generic + + (*Global tactic*) + val verit_tac: Proof.context -> thm list -> int -> tactic + val verit_tac_stgy: string -> Proof.context -> thm list -> int -> tactic +end; + +structure Verit_Strategies: VERIT_STRATEGIES = +struct + +open SMTLIB_Proof + +val veriT_strategy_default_name = "default"; (*FUDGE*) +val veriT_strategy_del_insts_name = "del_insts"; (*FUDGE*) +val veriT_strategy_rm_insts_name = "ccfv_SIG"; (*FUDGE*) +val veriT_strategy_ccfv_insts_name = "ccfv_threshold"; (*FUDGE*) +val veriT_strategy_best_name = "best"; (*FUDGE*) + +val veriT_strategy_best = ["--index-sorts", "--index-fresh-sorts", "--triggers-new", + "--triggers-sel-rm-specific"]; +val veriT_strategy_del_insts = ["--index-sorts", "--index-fresh-sorts", "--ccfv-breadth", + "--inst-deletion", "--index-SAT-triggers", "--inst-deletion-loops", "--inst-deletion-track-vars", + "--inst-deletion", "--index-SAT-triggers"]; +val veriT_strategy_rm_insts = ["--index-SIG", "--triggers-new", "--triggers-sel-rm-specific"]; +val veriT_strategy_ccfv_insts = ["--index-sorts", "--index-fresh-sorts", "--triggers-new", + "--triggers-sel-rm-specific", "--triggers-restrict-combine", "--inst-deletion", + "--index-SAT-triggers", "--inst-deletion-loops", "--inst-deletion-track-vars", "--inst-deletion", + "--index-SAT-triggers", "--inst-sorts-threshold=100000", "--ematch-exp=10000000", + "--ccfv-index=100000", "--ccfv-index-full=1000"] + +val veriT_strategy_default = []; + +type verit_strategy = {default_strategy: string, strategies: (string * string list) list} +fun mk_verit_strategy default_strategy strategies : verit_strategy = {default_strategy=default_strategy,strategies=strategies} + +val empty_data = mk_verit_strategy veriT_strategy_best_name + [(veriT_strategy_default_name, veriT_strategy_default), + (veriT_strategy_del_insts_name, veriT_strategy_del_insts), + (veriT_strategy_rm_insts_name, veriT_strategy_rm_insts), + (veriT_strategy_ccfv_insts_name, veriT_strategy_ccfv_insts), + (veriT_strategy_best_name, veriT_strategy_best)] + +fun merge_data ({strategies=strategies1,...}:verit_strategy, + {default_strategy,strategies=strategies2}:verit_strategy) : verit_strategy = + mk_verit_strategy default_strategy (AList.merge (op =) (op =) (strategies1, strategies2)) + +structure Data = Generic_Data +( + type T = verit_strategy + val empty = empty_data + val merge = merge_data +) + +fun veriT_current_strategy ctxt = + let + val {default_strategy,strategies} = (Data.get ctxt) + in + AList.lookup (op=) strategies default_strategy + |> the + end + +val veriT_strategy = Attrib.setup_config_string \<^binding>\<open>smt_verit_strategy\<close> (K veriT_strategy_best_name); + +fun valid_veriT_stgy stgy context = + let + val {strategies,...} = Data.get context + in + AList.defined (op =) strategies stgy + end + +fun select_veriT_stgy stgy context = + let + val {strategies,...} = Data.get context + val upd = Data.map (K (mk_verit_strategy stgy strategies)) + in + if not (AList.defined (op =) strategies stgy) then + error ("Trying to select unknown veriT strategy: " ^ quote stgy) + else upd context + end + +fun verit_add_stgy stgy context = + let + val {default_strategy,strategies} = Data.get context + in + Data.map + (K (mk_verit_strategy default_strategy (AList.update (op =) stgy strategies))) + context + end + +fun verit_rm_stgy stgy context = + let + val {default_strategy,strategies} = Data.get context + in + Data.map + (K (mk_verit_strategy default_strategy (AList.delete (op =) stgy strategies))) + context + end + +fun all_veriT_stgies context = + let + val {strategies,...} = Data.get context + in + map fst strategies + end + +val select_verit = SMT_Config.select_solver "verit" +fun verit_tac ctxt = SMT_Solver.smt_tac (Config.put SMT_Config.native_bv false ((Context.proof_map select_verit ctxt))) +fun verit_tac_stgy stgy ctxt = verit_tac (Context.proof_of (select_veriT_stgy stgy (Context.Proof ctxt))) + +end;
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_isar.ML Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_isar.ML Mon Aug 22 06:27:28 2022 +0200 @@ -54,7 +54,7 @@ val vampire_skolemisation_rule = "skolemisation" val veriT_la_generic_rule = "la_generic" val veriT_simp_arith_rule = "simp_arith" -val veriT_skolemize_rules = Verit_Proof.skolemization_steps +val veriT_skolemize_rules = Lethe_Proof.skolemization_steps val z3_skolemize_rule = Z3_Proof.string_of_rule Z3_Proof.Skolemize val z3_th_lemma_rule_prefix = Z3_Proof.string_of_rule (Z3_Proof.Th_Lemma "") val zipperposition_cnf_rule = "cnf"
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_proof_methods.ML Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_proof_methods.ML Mon Aug 22 06:27:28 2022 +0200 @@ -127,7 +127,7 @@ end fun tac_of_smt SMT_Z3 = SMT_Solver.smt_tac - | tac_of_smt (SMT_Verit strategy) = Verit_Proof.verit_tac_stgy strategy + | tac_of_smt (SMT_Verit strategy) = Verit_Strategies.verit_tac_stgy strategy in (case meth of Metis_Method options => tac_of_metis options
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_prover.ML Sun Aug 21 14:01:59 2022 +0000 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_prover.ML Mon Aug 22 06:27:28 2022 +0200 @@ -221,7 +221,7 @@ val smt_methodss = if smt_proofs then - [map (SMT_Method o SMT_Verit) (Verit_Proof.all_veriT_stgies (Context.Proof ctxt)), + [map (SMT_Method o SMT_Verit) (Verit_Strategies.all_veriT_stgies (Context.Proof ctxt)), [SMT_Method SMT_Z3]] else []