Loading theory "HOL-ex.Bubblesort" Loading theory "HOL-ex.MergeSort" Loading theory "HOL-ex.Quicksort" Loading theory "HOL-ex.Simps_Case_Conv_Examples" Loading theory "HOL-ex.Conditional_Parametricity_Examples" Loading theory "HOL-ex.Datatype_Record_Examples" theorem rel_fun ?A (rel_fun (list_all2 ?A) (list_all2 ?A)) bar bar ### No rule found for constant ### "bar :: ?'a1 \ ?'a1 list \ ?'a1 list". Using ### is_eq_lemma: ### "is_equality ?A2 \ Transfer.Rel ?A2 bar bar" theorem is_equality ?a \ ?a bar2 bar2 theorem bar_thm: rel_fun ?A (rel_fun (list_all2 ?A) (list_all2 ?A)) bar bar theorem bar2_thm1: rel_fun ?A (rel_fun (list_all2 ?A) (list_all2 ?A)) bar2 bar2 class linorder = order + assumes "linear": "\x y. x \ y \ y \ x" class linorder = order + assumes "linear": "\x y. x \ y \ y \ x" class linorder = order + assumes "linear": "\x y. x \ y \ y \ x" Found termination order: "(\p. length (snd p)) <*mlex*> {}" theorem t1_thm: rel_fun (list_all2 ?A2.0) (rel_fun (list_all2 ?A1.0) (list_all2 (rel_prod ?A1.0 ?A2.0))) t1 t1 theorem t2_thm: rel_fun (rel_fun (list_all2 ?A1.0) ?A2.0) (rel_fun (list_all2 ?A1.0) ?A2.0) t2 t2 theorem t3_thm: rel_fun (list_all2 ?A) (list_all2 ?A) t3 t3 Found termination order: "{}" theorem t4_thm: rel_fun (rel_fun (list_all2 ?A) (rel_fun (list_all2 ?A) (list_all2 ?A))) (rel_fun (list_all2 ?A) (list_all2 ?A)) t4 t4 theorem t5_thm: rel_fun (list_all2 ?A1.0) (rel_fun (list_all2 ?A2.0) (list_all2 (rel_prod ?A1.0 ?A2.0))) t5 t5 theorem t6_1_thm: rel_fun ?A2.0 (rel_fun ?A1.0 ?A3.0) inf inf \ rel_fun ?A1.0 (rel_fun ?A2.0 ?A3.0) t6_1 t6_1 theorem t6_2_thm: rel_fun ?A2.0 (rel_fun ?A1.0 ?A3.0) sup sup \ rel_fun ?A1.0 (rel_fun ?A2.0 ?A3.0) t6_2 t6_2 theorem t6_3_thm: \rel_fun ?A1.0 (rel_fun ?A3.0 ?A4.0) inf inf; rel_fun ?A4.0 (rel_fun ?A2.0 ?A5.0) sup sup\ \ rel_fun ?A1.0 (rel_fun ?A2.0 (rel_fun ?A3.0 ?A5.0)) t6_3 t6_3 theorem t6_4_thm: \rel_fun ?A2.0 (rel_fun ?A1.0 ?A3.0) inf inf; rel_fun ?A3.0 (rel_fun ?A4.0 ?A5.0) sup sup\ \ rel_fun ?A1.0 (rel_fun (list_all2 ?A4.0) (rel_fun ?A2.0 (list_all2 ?A5.0))) t6_4 t6_4 ### theory "HOL-ex.Simps_Case_Conv_Examples" ### 0.432s elapsed time, 2.592s cpu time, 0.000s GC time Loading theory "HOL-ex.IArray_Examples" theorem t7_thm: bi_unique ?A \ rel_fun ?A (rel_fun ?A (=)) t7 t7 Found termination order: "length <*mlex*> {}" theorem t8_thm: bi_unique ?A \ rel_fun ?A (rel_fun ?A (=)) t8 t8 consts delete :: "'a \ 'a list \ 'a list" Found termination order: "length <*mlex*> {}" theorem delete_thm: bi_unique ?A \ rel_fun ?A (rel_fun (list_all2 ?A) (list_all2 ?A)) delete delete Found termination order: "(\p. length (snd p)) <*mlex*> (\p. length (fst p)) <*mlex*> {}" ### theory "HOL-ex.Quicksort" ### 0.635s elapsed time, 3.784s cpu time, 0.000s GC time Loading theory "HOL-ex.Perm_Fragments" theorem foo_parametricity: \rel_fun ?A1.0 (rel_fun ?A1.0 ?A1.0) sup sup; bi_unique ?A2.0\ \ rel_fun (rel_fun ?A1.0 ?A2.0) (rel_fun ?A1.0 (rel_fun ?A1.0 ?A1.0)) foo foo ### theory "HOL-ex.Conditional_Parametricity_Examples" ### 0.646s elapsed time, 3.852s cpu time, 0.000s GC time Loading theory "HOL-ex.Code_Lazy_Demo" Found termination order: "(\p. size (fst (snd p))) <*mlex*> {}" Proofs for inductive predicate(s) "orbitsp" Proving monotonicity ... Proving the introduction rules ... Proving the elimination rules ... Proving the induction rule ... Proving the simplification rules ... consts subtract :: "'a list \ 'a list \ 'a list" ### theory "HOL-ex.Perm_Fragments" ### 0.444s elapsed time, 2.496s cpu time, 0.464s GC time Loading theory "HOL-ex.Refute_Examples" ### theory "HOL-ex.Bubblesort" ### 1.096s elapsed time, 6.380s cpu time, 0.464s GC time Loading theory "HOL-ex.Radix_Sort" Default parameters for 'refute': itself=1 maxsize=8 maxtime=60 maxvars=10000 minsize=1 no_assms=false satsolver=cdclite Found termination order: "length <*mlex*> {}" ### theory "HOL-ex.MergeSort" ### 1.349s elapsed time, 7.676s cpu time, 0.464s GC time Loading theory "HOL-ex.Transitive_Closure_Table_Ex" locale Radix_Sort fixes sort1 :: "('a list \ 'a) \ 'a list list \ 'a list list" assumes "Radix_Sort sort1" consts up :: "nat \ nat stream" consts stake :: "nat \ 'a stream \ 'a list" Found termination order: "(\p. size (fst p)) <*mlex*> {}" ### theory "HOL-ex.Radix_Sort" ### 0.581s elapsed time, 2.916s cpu time, 0.000s GC time Loading theory "HOL-ex.While_Combinator_Example" ### theory "HOL-ex.While_Combinator_Example" ### 0.037s elapsed time, 0.184s cpu time, 0.000s GC time Loading theory "HOL-ex.Code_Timing" Proofs for inductive predicate(s) "test" Proving monotonicity ... Proving the introduction rules ... Proving the elimination rules ... Proving the induction rule ... Proving the simplification rules ... ### preprocessing equations ### 0.164s elapsed time, 0.796s cpu time, 0.000s GC time ### theory "HOL-ex.Transitive_Closure_Table_Ex" ### 0.636s elapsed time, 3.112s cpu time, 0.000s GC time Loading theory "HOL-ex.Adhoc_Overloading_Examples" ### translating program ### 0.238s elapsed time, 1.136s cpu time, 0.000s GC time ### building simpset ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### preprocessing equations ### 0.179s elapsed time, 0.884s cpu time, 0.000s GC time ### translating program ### 0.440s elapsed time, 2.148s cpu time, 1.108s GC time ### compiling NBE program ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### Missing patterns in function definition: ### \v. lnth (Suc v) \<^bold>\\<^bold>\ = undefined ### \a. lnth a \<^bold>\\<^bold>\ = undefined ### compiling ML ### 0.025s elapsed time, 0.124s cpu time, 0.000s GC time ### compiling ML ### 0.018s elapsed time, 0.092s cpu time, 0.000s GC time ### compiling ML ### 0.003s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.025s elapsed time, 0.128s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.024s cpu time, 0.000s GC time Found termination order: "(\p. size (snd p)) <*mlex*> {}" ### compiling ML ### 0.034s elapsed time, 0.172s cpu time, 0.000s GC time ### compiling ML ### 0.003s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.024s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.009s elapsed time, 0.048s cpu time, 0.000s GC time ### compiling ML ### 0.009s elapsed time, 0.044s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.024s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.024s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.024s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.006s elapsed time, 0.032s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### running ML ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### compiling ML ### 0.006s elapsed time, 0.032s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.006s elapsed time, 0.032s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.010s elapsed time, 0.052s cpu time, 0.000s GC time ### compiling ML ### 0.010s elapsed time, 0.052s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.012s elapsed time, 0.060s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.003s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time Found termination order: "(\p. size (snd p)) <*mlex*> {}" ### compiling ML ### 0.012s elapsed time, 0.060s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.005s elapsed time, 0.028s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.003s elapsed time, 0.016s cpu time, 0.000s GC time ### compiling ML ### 0.006s elapsed time, 0.028s cpu time, 0.000s GC time ### compiling ML ### 0.005s elapsed time, 0.024s cpu time, 0.000s GC time See theory exports ### compiling ML ### 0.006s elapsed time, 0.028s cpu time, 0.000s GC time consts lappend :: "'a llist \ 'a llist \ 'a llist" ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.005s elapsed time, 0.028s cpu time, 0.000s GC time consts rbt_iterator :: "('a, 'b) rbt \ ('a \ 'b) llist" ### compiling ML ### 0.009s elapsed time, 0.044s cpu time, 0.000s GC time ### compiling ML ### 0.011s elapsed time, 0.052s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.007s elapsed time, 0.036s cpu time, 0.000s GC time ### compiling ML ### 0.003s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.003s elapsed time, 0.016s cpu time, 0.000s GC time ### compiling ML ### 0.007s elapsed time, 0.036s cpu time, 0.000s GC time ### compiling ML ### 0.004s elapsed time, 0.020s cpu time, 0.000s GC time ### compiling ML ### 0.005s elapsed time, 0.024s cpu time, 0.000s GC time ### compiling ML ### 0.006s elapsed time, 0.032s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### compiling ML ### 0.003s elapsed time, 0.016s cpu time, 0.000s GC time val simp = fn: Proof.context -> conv val nbe = fn: Proof.context -> conv ### theory "HOL-ex.Code_Timing" ### 1.500s elapsed time, 7.364s cpu time, 1.108s GC time Loading theory "HOL-ex.Antiquote" Found termination order: "size <*mlex*> {}" ### theory "HOL-ex.Antiquote" ### 0.034s elapsed time, 0.172s cpu time, 0.000s GC time Loading theory "HOL-ex.Arith_Examples" Found termination order: "{}" datatype 'a ref = ref of 'a ROOT.ML:9: warning: Value identifier (less) has not been referenced. ROOT.ML:30: warning: Value identifier (semigroup_add_cancel_semigroup_add) has not been referenced. ROOT.ML:34: warning: Value identifier (semigroup_add_ab_semigroup_add) has not been referenced. ROOT.ML:38: warning: Value identifier (minus) has not been referenced. ROOT.ML:44: warning: Value identifier (ab_semigroup_add_cancel_ab_semigroup_add) has not been referenced. ROOT.ML:47: warning: Value identifier (cancel_semigroup_add_cancel_ab_semigroup_add) has not been referenced. ROOT.ML:50: warning: Value identifier (minus_cancel_ab_semigroup_add) has not been referenced. ROOT.ML:65: warning: Value identifier (ab_semigroup_add_comm_monoid_add) has not been referenced. ROOT.ML:67: warning: Value identifier (monoid_add_comm_monoid_add) has not been referenced. ROOT.ML:73: warning: Value identifier (cancel_ab_semigroup_add_cancel_comm_monoid_add) has not been referenced. ROOT.ML:76: warning: Value identifier (comm_monoid_add_cancel_comm_monoid_add) has not been referenced. ROOT.ML:81: warning: Value identifier (uminus) has not been referenced. ROOT.ML:87: warning: Value identifier (cancel_semigroup_add_group_add) has not been referenced. ROOT.ML:89: warning: Value identifier (minus_group_add) has not been referenced. ROOT.ML:92: warning: Value identifier (uminus_group_add) has not been referenced. ROOT.ML:97: warning: Value identifier (cancel_comm_monoid_add_ab_group_add) has not been referenced. ROOT.ML:99: warning: Value identifier (group_add_ab_group_add) has not been referenced. ROOT.ML:103: warning: Value identifier (times_mult_zero) has not been referenced. ROOT.ML:107: warning: Value identifier (times_semigroup_mult) has not been referenced. ROOT.ML:113: warning: Value identifier (ab_semigroup_add_semiring) has not been referenced. ROOT.ML:115: warning: Value identifier (semigroup_mult_semiring) has not been referenced. ROOT.ML:121: warning: Value identifier (comm_monoid_add_semiring_0) has not been referenced. ROOT.ML:125: warning: Value identifier (semiring_semiring_0) has not been referenced. ROOT.ML:130: warning: Value identifier (cancel_comm_monoid_add_semiring_0_cancel) has not been referenced. ROOT.ML:133: warning: Value identifier (semiring_0_semiring_0_cancel) has not been referenced. ROOT.ML:139: warning: Value identifier (ab_group_add_ring) has not been referenced. ROOT.ML:140: warning: Value identifier (semiring_0_cancel_ring) has not been referenced. ROOT.ML:153: warning: Value identifier (one_power) has not been referenced. ROOT.ML:159: warning: Value identifier (semigroup_mult_monoid_mult) has not been referenced. ROOT.ML:171: warning: Value identifier (semiring_semiring_numeral) has not been referenced. ROOT.ML:175: warning: Value identifier (one_zero_neq_one) has not been referenced. ROOT.ML:176: warning: Value identifier (zero_zero_neq_one) has not been referenced. ROOT.ML:186: warning: Value identifier (zero_neq_one_semiring_1) has not been referenced. ROOT.ML:192: warning: Value identifier (semiring_0_cancel_semiring_1_cancel) has not been referenced. ROOT.ML:194: warning: Value identifier (semiring_1_semiring_1_cancel) has not been referenced. ROOT.ML:201: warning: Value identifier (numeral_neg_numeral) has not been referenced. ROOT.ML:207: warning: Value identifier (ring_ring_1) has not been referenced. ROOT.ML:208: warning: Value identifier (semiring_1_cancel_ring_1) has not been referenced. ROOT.ML:213: warning: Value identifier (semigroup_mult_ab_semigroup_mult) has not been referenced. ROOT.ML:219: warning: Value identifier (ab_semigroup_mult_comm_semiring) has not been referenced. ROOT.ML:221: warning: Value identifier (semiring_comm_semiring) has not been referenced. ROOT.ML:227: warning: Value identifier (comm_semiring_comm_semiring_0) has not been referenced. ROOT.ML:229: warning: Value identifier (semiring_0_comm_semiring_0) has not been referenced. ROOT.ML:235: warning: Value identifier (comm_semiring_0_comm_semiring_0_cancel) has not been referenced. ROOT.ML:238: warning: Value identifier (semiring_0_cancel_comm_semiring_0_cancel) has not been referenced. ROOT.ML:245: warning: Value identifier (comm_semiring_0_cancel_comm_ring) has not been referenced. ROOT.ML:247: warning: Value identifier (ring_comm_ring) has not been referenced. ROOT.ML:253: warning: Value identifier (ab_semigroup_mult_comm_monoid_mult) has not been referenced. ROOT.ML:255: warning: Value identifier (monoid_mult_comm_monoid_mult) has not been referenced. ROOT.ML:266: warning: Value identifier (comm_semiring_0_comm_semiring_1) has not been referenced. ROOT.ML:275: warning: Value identifier (comm_semiring_0_cancel_comm_semiring_1_cancel) has not been referenced. ROOT.ML:281: warning: Value identifier (semiring_1_cancel_comm_semiring_1_cancel) has not been referenced. ROOT.ML:289: warning: Value identifier (comm_ring_comm_ring_1) has not been referenced. ROOT.ML:315: warning: Value identifier (f) has not been referenced. ROOT.ML:326: warning: Value identifier (f) has not been referenced. ROOT.ML:329: warning: Value identifier (x) has not been referenced. structure Generated_Code: sig type 'a comm_ring_1 type nat val partial_geometric_sum: 'a comm_ring_1 -> 'a list -> 'a end instantiation perm :: (type) group_add minus_perm == minus :: 'a perm \ 'a perm \ 'a perm uminus_perm == uminus :: 'a perm \ 'a perm zero_perm == zero_class.zero :: 'a perm plus_perm == plus :: 'a perm \ 'a perm \ 'a perm ### theory "HOL-ex.Arith_Examples" ### 0.129s elapsed time, 0.656s cpu time, 0.000s GC time Loading theory "HOL-ex.Birthday_Paradox" ### theory "HOL-ex.Birthday_Paradox" ### 0.049s elapsed time, 0.260s cpu time, 0.000s GC time Loading theory "HOL-ex.Bit_Operations" (required by "HOL-ex.Bit_Lists" via "HOL-ex.Word") locale permute fixes permute :: "'a perm \ 'b \ 'b" assumes "permute permute" locale fun_permute fixes perm1 :: "'a perm \ 'b \ 'b" and perm2 :: "'a perm \ 'c \ 'c" assumes "fun_permute perm1 perm2" ### theory "HOL-ex.Adhoc_Overloading_Examples" ### 1.499s elapsed time, 7.440s cpu time, 1.108s GC time Loading theory "HOL-ex.CTL" ### theory "HOL-ex.CTL" ### 0.125s elapsed time, 0.628s cpu time, 0.000s GC time Loading theory "HOL-ex.Cartouche_Examples" File "ROOT.ml", line 3, characters 32-41: Error: Unbound type constructor comm_ring Hint: Did you mean comm_ring_1? ### theory "HOL-ex.IArray_Examples" ### 3.208s elapsed time, 16.416s cpu time, 1.572s GC time Loading theory "HOL-ex.Case_Product" val it = (): unit val string_tr = fn: (string * Position.T -> (string * Position.T) list) -> term list -> term ### theory "HOL-ex.Case_Product" ### 0.039s elapsed time, 0.236s cpu time, 0.000s GC time Loading theory "HOL-ex.Chinese" val it = Const ("List.list.Nil", "char list"): term val it = Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool \ bool \ bool \ char") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool")) $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool \ bool \ bool \ char") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool")) $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool ... ... ... ...") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "...") $ Const ("HOL.False", "...")) $ Const ("List.list.Nil", "char list"))): term val it = Const ("List.append", "char list \ char list \ char list") $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool \ bool \ bool \ char") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool")) $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool \ bool ... ... ... ...") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "...")) $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool ... ... ... ...") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "...") $ Const ("HOL.True", "...") $ Const ("...", ...) $ Const ("...", "bool")) $ Const ("List.list.Nil", "char list")))) $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool \ bool \ bool \ char") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool")) $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool ... ... ... ...") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "...") $ Const ("HOL.False", "...")) $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool ... ... ... ...") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "...") $ Const ("HOL.True", "...") $ Const ("...", ...) $ Const ("...", "bool") $ ...) $ Const ("List.list.Nil", "char list")))): term val it = Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool \ bool \ bool \ char") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool")) $ Const ("List.list.Nil", "char list"): term val it = Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool \ bool \ bool \ char") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool")) $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool \ bool \ bool \ char") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool")) $ (Const ("List.list.Cons", "char \ char list \ char list") $ (Const ("String.char.Char", "bool \ bool \ bool \ bool \ bool \ bool ... ... ... ...") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.False", "bool") $ Const ("HOL.True", "bool") $ Const ("HOL.True", "...") $ Const ("HOL.False", "...")) $ Const ("List.list.Nil", "char list"))): term ### Additional type variable(s) in locale specification "classC": 'a Found termination order: "size <*mlex*> {}" class classC = type + assumes "classC_ax": "\x y. x \ y" val it = (): unit class classD = type + fixes classD_const :: "'a \ 'a" assumes "classD_ax": "\x. classD_const (classD_const x) = classD_const x" ### Code generator: dropping subsumed code equation ### mk_tree (Suc ?n) \ let t = mk_tree ?n in \ ### \<^bold>l: t ### \<^bold>r: t ### Code generator: dropping subsumed code equation ### mk_tree (Suc ?n) \ ### let _ = Debug.flush STR ''tick''; t = mk_tree ?n in \ ### \<^bold>l: t ### \<^bold>r: t ### Code generator: dropping subsumed code equation ### mk_tree (Suc ?n) \ \ ### \<^bold>l: mk_tree ?n ### \<^bold>r: mk_tree ?n structure ML_Tactic: sig val ml_tactic: Input.source -> Proof.context -> tactic val set: (Proof.context -> tactic) -> Proof.context -> Proof.context end val it = "?A \ ?B \ ?B \ ?A": thm overloading inverse_bool \ Refute_Examples.inverse :: bool \ bool overloading inverse_set \ Refute_Examples.inverse :: 'a set \ 'a set overloading inverse_pair \ Refute_Examples.inverse :: 'a \ 'b \ 'a \ 'b val s = Source {delimited = true, range = ({line=229, offset=5385, end_offset=5399, file=~~/src/HOL/ex/Cartouche_Examples.thy, id=642}, {line=229, offset=5399, file=~~/src/HOL/ex/Cartouche_Examples.thy, id=642}), text = "\127abc123def456\127"}: Input.source val it = (): unit val it = (): unit ### theory "HOL-ex.Cartouche_Examples" ### 0.537s elapsed time, 2.988s cpu time, 0.960s GC time Loading theory "HOL-ex.Classical" Default parameters for 'refute': itself=1 maxsize=8 maxtime=60 maxvars=10000 minsize=1 no_assms=false satsolver=auto ### theory "HOL-ex.Refute_Examples" ### 3.072s elapsed time, 15.584s cpu time, 2.068s GC time Loading theory "HOL-ex.Coercion_Examples" ### theory "HOL-ex.Code_Lazy_Demo" ### 3.523s elapsed time, 18.120s cpu time, 2.532s GC time Loading theory "HOL-ex.Coherent" consts map_prod :: "('a \ 'c) \ ('b \ 'd) \ 'a \ 'b \ 'c \ 'd" ### theory "HOL-ex.Coercion_Examples" ### 0.067s elapsed time, 0.404s cpu time, 0.000s GC time Loading theory "HOL-ex.Commands" val it = (): unit val it = (): unit ### ML warning (line 53 of "~~/src/HOL/ex/Commands.thy"): ### Value identifier (def) has not been referenced. val it = (): unit ### theory "HOL-ex.Commands" ### 0.047s elapsed time, 0.284s cpu time, 0.000s GC time Loading theory "HOL-ex.Computations" ### theory "HOL-ex.Datatype_Record_Examples" ### 4.330s elapsed time, 22.940s cpu time, 2.532s GC time Loading theory "HOL-ex.Erdoes_Szekeres" Found termination order: "size <*mlex*> {}" ### theory "HOL-ex.Erdoes_Szekeres" ### 0.047s elapsed time, 0.288s cpu time, 0.000s GC time Loading theory "HOL-ex.Executable_Relation" class semiring_bit_operations = semiring_bit_shifts + fixes "and" :: "'a \ 'a \ 'a" and or :: "'a \ 'a \ 'a" and xor :: "'a \ 'a \ 'a" assumes "bit_and_iff": "\a b n. bit (a AND b) n = (bit a n \ bit b n)" and "bit_or_iff": "\a b n. bit (a OR b) n = (bit a n \ bit b n)" and "bit_xor_iff": "\a b n. bit (a XOR b) n = (bit a n \ bit b n)" Found termination order: "size <*mlex*> {}" structure Isabelle6355212 = struct val ML_context = Context_Position.set_visible true ( Context.the_local_context ( ) ) ; structure Generated_Code : sig datatype nat = Zero_nat | Suc of nat datatype num = One | Bit0 of num | Bit1 of num val equal_bool : bool -> bool -> bool val plus_nat : nat -> nat -> nat val times_nat : nat -> nat -> nat val less_eq_nat : nat -> nat -> bool val less_nat : nat -> nat -> bool val equal_nat : nat -> nat -> bool val one_nat : nat val even : nat -> bool val fib : nat -> nat val nat_of_num : num -> nat val trueprop : bool -> Code_Runtime.truth val value : 'aa -> ( ( nat * unit ) option -> ( nat * unit -> ( nat * unit ) option ) -> ( nat -> unit -> nat * unit ) -> unit -> ( bool -> Code_Runtime.truth ) -> Code_Runtime.truth -> ( bool -> bool -> bool ) -> ( bool -> bool -> bool ) -> ( bool -> bool -> bool ) -> ( bool -> bool -> bool ) -> ( nat -> bool ) -> ( nat -> nat -> bool ) -> ( nat -> nat -> bool ) -> ( nat -> nat -> bool ) -> bool -> bool -> nat -> nat -> ( num -> nat ) -> ( num -> num ) -> num -> ( num -> num ) -> ( nat -> nat -> nat ) -> ( nat -> nat -> nat ) -> ( nat -> nat ) -> nat -> ( nat -> nat ) -> 'a ) -> 'a end = struct datatype nat = Zero_nat | Suc of nat ; datatype num = One | Bit0 of num | Bit1 of num ; fun equal_bool p true = p | equal_bool p false = not p | equal_bool true p = p | equal_bool false p = not p ; fun plus_nat ( Suc m ) n = plus_nat m ( Suc n ) | plus_nat Zero_nat n = n ; fun times_nat Zero_nat n = Zero_nat | times_nat ( Suc m ) n = plus_nat n ( times_nat m n ) ; fun less_eq_nat ( Suc m ) n = less_nat m n | less_eq_nat Zero_nat n = true and less_nat m ( Suc n ) = less_eq_nat m n | less_nat n Zero_nat = false ; fun equal_nat Zero_nat ( Suc x2 ) = false | equal_nat ( Suc x2 ) Zero_nat = false | equal_nat ( Suc x2 ) ( Suc y2 ) = equal_nat x2 y2 | equal_nat Zero_nat Zero_nat = true ; val one_nat : nat = Suc Zero_nat ; fun even Zero_nat = true | even ( Suc Zero_nat ) = false | even ( Suc ( Suc n ) ) = even n ; fun fib Zero_nat = Zero_nat | fib ( Suc Zero_nat ) = Suc Zero_nat | fib ( Suc ( Suc n ) ) = plus_nat ( fib ( Suc n ) ) ( fib n ) ; fun nat_of_num ( Bit1 n ) = let val m = nat_of_num n ; in Suc ( plus_nat m m ) end | nat_of_num ( Bit0 n ) = let val m = nat_of_num n ; in plus_nat m m end | nat_of_num One = one_nat ; fun trueprop true = Code_Runtime.Holds ; fun value dummy = ( fn eval => eval NONE SOME ( fn a => fn b => ( a , b ) ) ( ) trueprop Code_Runtime.Holds ( fn a => fn b => a andalso b ) ( fn a => fn b => a orelse b ) ( fn a => fn b => ( if a then b else true ) ) equal_bool even less_eq_nat less_nat equal_nat true false Zero_nat one_nat nat_of_num Bit0 One Bit1 plus_nat times_nat fib Zero_nat Suc ) ; end ; (*struct Generated_Code*) structure Generated_Computation = struct val covered_consts = [ ( "Option.option.None" , Term.Type ( "Option.option" , [ Term.Type ( "Product_Type.prod" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Product_Type.unit" , [ ] ) ] ) ] ) ) , ( "Option.option.Some" , Term.Type ( "fun" , [ Term.Type ( "Product_Type.prod" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Product_Type.unit" , [ ] ) ] ) , Term.Type ( "Option.option" , [ Term.Type ( "Product_Type.prod" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Product_Type.unit" , [ ] ) ] ) ] ) ] ) ) , ( "Product_Type.Pair" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "Product_Type.unit" , [ ] ) , Term.Type ( "Product_Type.prod" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Product_Type.unit" , [ ] ) ] ) ] ) ] ) ) , ( "Product_Type.Unity" , Term.Type ( "Product_Type.unit" , [ ] ) ) , ( "HOL.Trueprop" , Term.Type ( "fun" , [ Term.Type ( "HOL.bool" , [ ] ) , Term.Type ( "prop" , [ ] ) ] ) ) , ( "Code_Generator.holds" , Term.Type ( "prop" , [ ] ) ) , ( "HOL.conj" , Term.Type ( "fun" , [ Term.Type ( "HOL.bool" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "HOL.bool" , [ ] ) , Term.Type ( "HOL.bool" , [ ] ) ] ) ] ) ) , ( "HOL.disj" , Term.Type ( "fun" , [ Term.Type ( "HOL.bool" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "HOL.bool" , [ ] ) , Term.Type ( "HOL.bool" , [ ] ) ] ) ] ) ) , ( "HOL.implies" , Term.Type ( "fun" , [ Term.Type ( "HOL.bool" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "HOL.bool" , [ ] ) , Term.Type ( "HOL.bool" , [ ] ) ] ) ] ) ) , ( "Product_Type.equal_bool_inst.equal_bool" , Term.Type ( "fun" , [ Term.Type ( "HOL.bool" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "HOL.bool" , [ ] ) , Term.Type ( "HOL.bool" , [ ] ) ] ) ] ) ) , ( "Computations.even" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "HOL.bool" , [ ] ) ] ) ) , ( "Nat.ord_nat_inst.less_eq_nat" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "HOL.bool" , [ ] ) ] ) ] ) ) , ( "Nat.ord_nat_inst.less_nat" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "HOL.bool" , [ ] ) ] ) ] ) ) , ( "Nat.equal_nat_inst.equal_nat" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "HOL.bool" , [ ] ) ] ) ] ) ) , ( "HOL.True" , Term.Type ( "HOL.bool" , [ ] ) ) , ( "HOL.False" , Term.Type ( "HOL.bool" , [ ] ) ) , ( "Nat.one_nat_inst.one_nat" , Term.Type ( "Nat.nat" , [ ] ) ) , ( "Num.nat_of_num" , Term.Type ( "fun" , [ Term.Type ( "Num.num" , [ ] ) , Term.Type ( "Nat.nat" , [ ] ) ] ) ) , ( "Num.num.Bit0" , Term.Type ( "fun" , [ Term.Type ( "Num.num" , [ ] ) , Term.Type ( "Num.num" , [ ] ) ] ) ) , ( "Num.num.One" , Term.Type ( "Num.num" , [ ] ) ) , ( "Num.num.Bit1" , Term.Type ( "fun" , [ Term.Type ( "Num.num" , [ ] ) , Term.Type ( "Num.num" , [ ] ) ] ) ) , ( "Nat.plus_nat_inst.plus_nat" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Nat.nat" , [ ] ) ] ) ] ) ) , ( "Nat.times_nat_inst.times_nat" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Nat.nat" , [ ] ) ] ) ] ) ) , ( "Computations.fib" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Nat.nat" , [ ] ) ] ) ) , ( "Nat.zero_nat_inst.zero_nat" , Term.Type ( "Nat.nat" , [ ] ) ) , ( "Nat.Suc" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Nat.nat" , [ ] ) ] ) ) ] ; val ( eval_None_nat_unit_prod , eval_Some_nat_unit_prod , eval_Pair_nat_unit , eval_Unity , eval_Trueprop , eval_holds , eval_conj , eval_disj , eval_implies , eval_equal_bool , eval_even , eval_less_eq_nat , eval_less_nat , eval_equal_nat , eval_True , eval_False , eval_one_nat , eval_nat_of_num , eval_Bit0 , eval_One , eval_Bit1 , eval_plus_nat , eval_times_nat , eval_fib , eval_zero_nat , eval_Suc ) = Generated_Code.value ( ) ( fn eval_None_nat_unit_prod => fn eval_Some_nat_unit_prod => fn eval_Pair_nat_unit => fn eval_Unity => fn eval_Trueprop => fn eval_holds => fn eval_conj => fn eval_disj => fn eval_implies => fn eval_equal_bool => fn eval_even => fn eval_less_eq_nat => fn eval_less_nat => fn eval_equal_nat => fn eval_True => fn eval_False => fn _ => fn eval_one_nat => fn eval_nat_of_num => fn eval_Bit0 => fn eval_One => fn eval_Bit1 => fn eval_plus_nat => fn eval_times_nat => fn eval_fib => fn eval_zero_nat => fn eval_Suc => ( eval_None_nat_unit_prod , eval_Some_nat_unit_prod , eval_Pair_nat_unit , eval_Unity , eval_Trueprop , eval_holds , eval_conj , eval_disj , eval_implies , eval_equal_bool , eval_even , eval_less_eq_nat , eval_less_nat , eval_equal_nat , eval_True , eval_False , eval_one_nat , eval_nat_of_num , eval_Bit0 , eval_One , eval_Bit1 , eval_plus_nat , eval_times_nat , eval_fib , eval_zero_nat , eval_Suc ) ) ; fun bool_of_term ( Const ( "HOL.False" , _ ) ) = eval_False | bool_of_term ( Const ( "HOL.True" , _ ) ) = eval_True | bool_of_term ( Const ( "Nat.equal_nat_inst.equal_nat" , _ ) $ t1 $ t2 ) = eval_equal_nat ( nat_of_term t1 ) ( nat_of_term t2 ) | bool_of_term ( Const ( "Nat.ord_nat_inst.less_nat" , _ ) $ t1 $ t2 ) = eval_less_nat ( nat_of_term t1 ) ( nat_of_term t2 ) | bool_of_term ( Const ( "Nat.ord_nat_inst.less_eq_nat" , _ ) $ t1 $ t2 ) = eval_less_eq_nat ( nat_of_term t1 ) ( nat_of_term t2 ) | bool_of_term ( Const ( "Computations.even" , _ ) $ t1 ) = eval_even ( nat_of_term t1 ) | bool_of_term ( Const ( "Product_Type.equal_bool_inst.equal_bool" , _ ) $ t1 $ t2 ) = eval_equal_bool ( bool_of_term t1 ) ( bool_of_term t2 ) | bool_of_term ( Const ( "HOL.implies" , _ ) $ t1 $ t2 ) = eval_implies ( bool_of_term t1 ) ( bool_of_term t2 ) | bool_of_term ( Const ( "HOL.disj" , _ ) $ t1 $ t2 ) = eval_disj ( bool_of_term t1 ) ( bool_of_term t2 ) | bool_of_term ( Const ( "HOL.conj" , _ ) $ t1 $ t2 ) = eval_conj ( bool_of_term t1 ) ( bool_of_term t2 ) and prop_of_term ( Const ( "Code_Generator.holds" , _ ) ) = eval_holds | prop_of_term ( Const ( "HOL.Trueprop" , _ ) $ t1 ) = eval_Trueprop ( bool_of_term t1 ) and unit_of_term ( Const ( "Product_Type.Unity" , _ ) ) = eval_Unity and num_of_term ( Const ( "Num.num.Bit1" , _ ) $ t1 ) = eval_Bit1 ( num_of_term t1 ) | num_of_term ( Const ( "Num.num.One" , _ ) ) = eval_One | num_of_term ( Const ( "Num.num.Bit0" , _ ) $ t1 ) = eval_Bit0 ( num_of_term t1 ) and nat_of_term ( Const ( "Nat.Suc" , _ ) $ t1 ) = eval_Suc ( nat_of_term t1 ) | nat_of_term ( Const ( "Nat.zero_nat_inst.zero_nat" , _ ) ) = eval_zero_nat | nat_of_term ( Const ( "Computations.fib" , _ ) $ t1 ) = eval_fib ( nat_of_term t1 ) | nat_of_term ( Const ( "Nat.times_nat_inst.times_nat" , _ ) $ t1 $ t2 ) = eval_times_nat ( nat_of_term t1 ) ( nat_of_term t2 ) | nat_of_term ( Const ( "Nat.plus_nat_inst.plus_nat" , _ ) $ t1 $ t2 ) = eval_plus_nat ( nat_of_term t1 ) ( nat_of_term t2 ) | nat_of_term ( Const ( "Num.nat_of_num" , _ ) $ t1 ) = eval_nat_of_num ( num_of_term t1 ) | nat_of_term ( Const ( "Nat.one_nat_inst.one_nat" , _ ) ) = eval_one_nat and nat_unit_prod_of_term ( Const ( "Product_Type.Pair" , _ ) $ t1 $ t2 ) = eval_Pair_nat_unit ( nat_of_term t1 ) ( unit_of_term t2 ) and nat_unit_prod_option_of_term ( Const ( "Option.option.Some" , _ ) $ t1 ) = eval_Some_nat_unit_prod ( nat_unit_prod_of_term t1 ) | nat_unit_prod_option_of_term ( Const ( "Option.option.None" , _ ) ) = eval_None_nat_unit_prod end end ; local fun int_of_nat Isabelle6355212.Generated_Code.Zero_nat = 0 | int_of_nat ( Isabelle6355212.Generated_Code.Suc n ) = int_of_nat n + 1 ; in val comp_nat = ( Code_Runtime.mount_computation ( Context.proof_of ( Context.the_generic_context ( ) ) ) Isabelle6355212.Generated_Computation.covered_consts ( Term.Type ( "Nat.nat" , [ ] ) ) Isabelle6355212.Generated_Computation.nat_of_term ) ( fn post => post o HOLogic.mk_nat o int_of_nat o the ) ; val comp_numeral = ( Code_Runtime.mount_computation ( Context.proof_of ( Context.the_generic_context ( ) ) ) Isabelle6355212.Generated_Computation.covered_consts ( Term.Type ( "Nat.nat" , [ ] ) ) Isabelle6355212.Generated_Computation.nat_of_term ) ( fn post => post o HOLogic.mk_nat o int_of_nat o the ) ; val comp_bool = ( Code_Runtime.mount_computation ( Context.proof_of ( Context.the_generic_context ( ) ) ) Isabelle6355212.Generated_Computation.covered_consts ( Term.Type ( "HOL.bool" , [ ] ) ) Isabelle6355212.Generated_Computation.bool_of_term ) ( K the ) ; val comp_check = ( Code_Runtime.mount_computation_check ( Context.proof_of ( Context.the_generic_context ( ) ) ) Isabelle6355212.Generated_Computation.covered_consts Isabelle6355212.Generated_Computation.prop_of_term ) ; val comp_dummy = ( Code_Runtime.mount_computation ( Context.proof_of ( Context.the_generic_context ( ) ) ) Isabelle6355212.Generated_Computation.covered_consts ( Term.Type ( "Option.option" , [ Term.Type ( "Product_Type.prod" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Product_Type.unit" , [ ] ) ] ) ] ) ) Isabelle6355212.Generated_Computation.nat_unit_prod_option_of_term ) end ### theory "HOL-ex.Coherent" ### 0.359s elapsed time, 2.164s cpu time, 0.000s GC time Loading theory "HOL-ex.Execute_Choice" ### ML warning (file "~~/src/HOL/ex/Computations.thy"): ### The type of (comp_dummy) contains a free type variable. Setting it to a ### unique monotype. val comp_nat = fn: Proof.context -> term -> term val comp_numeral = fn: Proof.context -> term -> term val comp_bool = fn: Proof.context -> term -> bool val comp_check = fn: Proof.context -> conv val comp_dummy = fn: ((term -> term) -> (Isabelle6355212.Generated_Code.nat * unit) option option -> _a) -> Proof.context -> term -> _a ### theory "HOL-ex.Computations" ### 0.263s elapsed time, 1.584s cpu time, 0.000s GC time Loading theory "HOL-ex.Functions" ### theory "HOL-ex.Execute_Choice" ### 0.058s elapsed time, 0.348s cpu time, 0.000s GC time Loading theory "HOL-ex.Groebner_Examples" Found termination order: "size <*mlex*> {}" Found termination order: "(\p. size (fst p)) <*mlex*> {}" consts translate :: "shuzi \ nat" ### theory "HOL-ex.Chinese" ### 1.011s elapsed time, 5.864s cpu time, 0.960s GC time Loading theory "HOL-ex.Guess" ### Ignoring duplicate rewrite rule: ### (0::?'a1) + ?y \ ?y ### theory "HOL-ex.Executable_Relation" ### 0.325s elapsed time, 1.960s cpu time, 0.000s GC time Loading theory "HOL-ex.Hebrew" ### theory "HOL-ex.Guess" ### 0.028s elapsed time, 0.168s cpu time, 0.000s GC time Loading theory "HOL-ex.Hex_Bin_Examples" ### theory "HOL-ex.Hex_Bin_Examples" ### 0.025s elapsed time, 0.156s cpu time, 0.000s GC time Loading theory "HOL-ex.Iff_Oracle" ### theory "HOL-ex.Groebner_Examples" ### 0.180s elapsed time, 1.084s cpu time, 0.000s GC time Loading theory "HOL-ex.Induction_Schema" val it = "?P = ?P": thm val it = "?P = (?P = (?P = (?P = (?P = (?P = (?P = (?P ... (...))))))))": thm val it = (): unit Oracle failed, as expected val it = (): unit Oracle failed, as expected val it = (): unit ### theory "HOL-ex.Iff_Oracle" ### 0.044s elapsed time, 0.268s cpu time, 0.000s GC time Loading theory "HOL-ex.Intuitionistic" ### theory "HOL-ex.Induction_Schema" ### 0.040s elapsed time, 0.244s cpu time, 0.000s GC time Loading theory "HOL-ex.Join_Theory" val spec = fn: int -> local_theory -> local_theory ### theory "HOL-ex.Classical" ### 0.677s elapsed time, 4.080s cpu time, 0.000s GC time Loading theory "HOL-ex.Lagrange" ### theory "HOL-ex.Lagrange" ### 0.055s elapsed time, 0.336s cpu time, 0.000s GC time Loading theory "HOL-ex.List_to_Set_Comprehension_Examples" ### theory "HOL-ex.Intuitionistic" ### 0.168s elapsed time, 1.012s cpu time, 0.000s GC time Loading theory "HOL-ex.LocaleTest2" locale dpo fixes le :: "'a \ 'a \ bool" (infixl \\\ 50) assumes "dpo (\)" ### theory "HOL-ex.List_to_Set_Comprehension_Examples" ### 0.125s elapsed time, 0.752s cpu time, 0.000s GC time Loading theory "HOL-ex.ML" Found termination order: "(\p. size (snd p)) <*mlex*> (\p. size (fst p)) <*mlex*> {}" val it = 2: int val a = 1: int val b = 1: int val c = 2: int val it = 0: int val it = (): unit val it = Const ("Groups.plus_class.plus", "'a \ 'a \ 'a") $ Const ("Groups.one_class.one", "'a") $ Const ("Groups.one_class.one", "'a"): term locale dlat fixes le :: "'a \ 'a \ bool" (infixl \\\ 50) assumes "dlat (\)" val it = Const ("Groups.plus_class.plus", "int \ int \ int") $ Const ("Groups.one_class.one", "int") $ Const ("Groups.one_class.one", "int"): term val s = Source {delimited = true, range = ({line=53, offset=1055, end_offset=1062, file=~~/src/HOL/ex/ML.thy, id=688}, {line=53, offset=1062, file=~~/src/HOL/ex/ML.thy, id=688}), text = "\1271 + 1\127"}: Input.source val t = Const ("Groups.plus_class.plus", "'a \ 'a \ 'a") $ Const ("Groups.one_class.one", "'a") $ Const ("Groups.one_class.one", "'a"): term val a = "?t = ?t": thm val it = (): unit val b = "?s = ?t \ ?t = ?s": thm val it = (): unit val it = (): unit val c = "\?r = ?s; ?s = ?t\ \ ?r = ?t": thm val thms = ["?t = ?t", "?s = ?t \ ?t = ?s", "\?r = ?s; ?s = ?t\ \ ?r = ?t"]: thm list val it = fn: int -> 'a list -> int val factorial = fn: int -> int val it = 1405006117752879898543142606244511569936384000000000: int val it = 10000: int val ackermann = fn: int -> int -> int ### 0.117s elapsed time, 0.704s cpu time, 0.000s GC time val it = 8189: int locale ddlat fixes le :: "'a \ 'a \ bool" (infixl \\\ 50) assumes "ddlat (\)" locale dlo fixes le :: "'a \ 'a \ bool" (infixl \\\ 50) assumes "dlo (\)" Found termination order: "case_sum size size <*mlex*> {}" locale my_monoid fixes opr :: "'a \ 'a \ 'a" and un :: "'a" assumes "my_monoid opr un" locale Dsemi fixes prod :: "'a \ 'a \ 'a" (infixl \**\ 65) assumes "Dsemi (**)" Found termination order: "length <*mlex*> {}" val x = : int future val y = : int future val z = 16378: int locale Dmonoid fixes prod :: "'a \ 'a \ 'a" (infixl \**\ 65) and one :: "'a" assumes "Dmonoid (**) one" locale Dgrp fixes prod :: "'a \ 'a \ 'a" (infixl \**\ 65) and one :: "'a" assumes "Dgrp (**) one" Found termination order: "length <*mlex*> {}" ### 0.115s elapsed time, 0.688s cpu time, 0.000s GC time val it = [13, 29, 61, 125, 253, 509, 1021, 2045, 4093, 8189]: int list locale Dhom fixes prod :: "'a \ 'a \ 'a" (infixl \**\ 65) and one :: "'a" and sum :: "'b \ 'b \ 'b" (infixl \+++\ 60) and zero :: "'b" and hom :: "'a \ 'b" assumes "Dhom (**) one (+++) zero hom" Found termination order: "{}" ### theory "HOL-ex.LocaleTest2" ### 0.742s elapsed time, 4.280s cpu time, 0.696s GC time Loading theory "HOL-ex.MonoidGroup" Found termination order: "{}" ### 0.110s elapsed time, 0.652s cpu time, 0.000s GC time val it = [13, 29, 61, 125, 253, 509, 1021, 2045, 4093, 8189]: int list class ring_bit_operations = semiring_bit_operations + ring_parity + fixes not :: "'a \ 'a" assumes "bit_not_iff": "\a n. bit (NOT a) n = ((2::'a) ^ n \ (0::'a) \ \ bit a n)" assumes "minus_eq_not_minus_1": "\a. - a = NOT (a - (1::'a))" Found termination order: "size <*mlex*> {}" structure Isabelle6428742 = struct val ML_context = Context_Position.set_visible true ( Context.the_local_context ( ) ) ; end ; ( Term.$ ( Term.Const ( "ML.factorial" , Term.Type ( "fun" , [ Term.Type ( "Nat.nat" , [ ] ) , Term.Type ( "Nat.nat" , [ ] ) ] ) ) , Term.$ ( Term.Const ( "Num.numeral_class.numeral" , Term.Type ( "fun" , [ Term.Type ( "Num.num" , [ ] ) , Term.Type ( "Nat.nat" , [ ] ) ] ) ) , Term.$ ( Term.Const ( "Num.num.Bit0" , Term.Type ( "fun" , [ Term.Type ( "Num.num" , [ ] ) , Term.Type ( "Num.num" , [ ] ) ] ) ) , Term.$ ( Term.Const ( "Num.num.Bit0" , Term.Type ( "fun" , [ Term.Type ( "Num.num" , [ ] ) , Term.Type ( "Num.num" , [ ] ) ] ) ) , Term.Const ( "Num.num.One" , Term.Type ( "Num.num" , [ ] ) ) ) ) ) ) ) val it = Const ("ML.factorial", "nat \ nat") $ (Const ("Num.numeral_class.numeral", "num \ nat") $ (Const ("Num.num.Bit0", "num \ num") $ (Const ("Num.num.Bit0", "num \ num") $ Const ("Num.num.One", "num")))): term structure Isabelle6428890 = struct val ML_context = Context_Position.set_visible true ( Context.the_local_context ( ) ) ; structure Generated_Code : sig datatype nat = Zero_nat | Suc of nat val plus_nat : nat -> nat -> nat val times_nat : nat -> nat -> nat val one_nat : nat val factorial : nat -> nat val value : 'aa -> 'a -> 'a end = struct datatype nat = Zero_nat | Suc of nat ; fun plus_nat ( Suc m ) n = plus_nat m ( Suc n ) | plus_nat Zero_nat n = n ; fun times_nat Zero_nat n = Zero_nat | times_nat ( Suc m ) n = plus_nat n ( times_nat m n ) ; val one_nat : nat = Suc Zero_nat ; fun factorial Zero_nat = one_nat | factorial ( Suc n ) = times_nat ( Suc n ) ( factorial n ) ; fun value dummy = ( fn eval => eval ) ; end ; (*struct Generated_Code*) end ; Isabelle6428890.Generated_Code.factorial val it = fn: Isabelle6428890.Generated_Code.nat -> Isabelle6428890.Generated_Code.nat Found termination order: "{}" ### theory "HOL-ex.Join_Theory" ### 1.102s elapsed time, 6.444s cpu time, 0.696s GC time Loading theory "HOL-ex.Multiquote" ### theory "HOL-ex.Multiquote" ### 0.027s elapsed time, 0.160s cpu time, 0.000s GC time Loading theory "HOL-ex.NatSum" Found termination order: "{}" Found termination order: "(\p. size (fst p)) <*mlex*> (\p. size (snd p)) <*mlex*> {}" ### theory "HOL-ex.ML" ### 0.956s elapsed time, 5.556s cpu time, 0.696s GC time Loading theory "HOL-ex.PER" ### theory "HOL-ex.NatSum" ### 0.065s elapsed time, 0.392s cpu time, 0.000s GC time Loading theory "HOL-ex.Peano_Axioms" locale peano fixes zero :: "'a" and succ :: "'a \ 'a" assumes "peano zero succ" Proofs for inductive predicate(s) "Rec" Proving monotonicity ... Proving the introduction rules ... Proving the elimination rules ... Found termination order: "length <*mlex*> {}" Proving the induction rule ... Proving the simplification rules ... class partial_equiv = type + fixes eqv :: "'a \ 'a \ bool" assumes "partial_equiv_sym": "\x y. x \ y \ y \ x" assumes "partial_equiv_trans": "\x y z. \x \ y; y \ z\ \ x \ z" instantiation fun :: (partial_equiv, partial_equiv) partial_equiv eqv_fun == eqv :: ('a \ 'b) \ ('a \ 'b) \ bool ### Additional type variable(s) in locale specification "equiv": 'a Found termination order: "size <*mlex*> {}" ### theory "HOL-ex.Peano_Axioms" ### 0.122s elapsed time, 0.736s cpu time, 0.000s GC time Loading theory "HOL-ex.PresburgerEx" class equiv = partial_equiv + assumes "eqv_refl": "\x. x \ x" ### theory "HOL-ex.PER" ### 0.241s elapsed time, 1.452s cpu time, 0.000s GC time Loading theory "HOL-ex.Primrec" Found termination order: "size <*mlex*> {}" ### theory "HOL-ex.MonoidGroup" ### 0.552s elapsed time, 3.316s cpu time, 0.000s GC time Loading theory "HOL-ex.Records" Found termination order: "(\p. size (fst p)) <*mlex*> (\p. size (snd p)) <*mlex*> {}" Found termination order: "(\p. size (fst p)) <*mlex*> {}" ### theory "HOL-ex.PresburgerEx" ### 0.228s elapsed time, 1.376s cpu time, 0.000s GC time Loading theory "HOL-ex.Residue_Ring" consts hd0 :: "nat list \ nat" locale zip_nat fixes f :: "bool \ bool \ bool" (infixl \\<^bold>*\ 70) assumes "zip_nat (\<^bold>*)" Found termination order: "size <*mlex*> {}" class len2 = len0 + assumes "len_ge_2": "2 \ LENGTH('a)" Found termination order: "{}" instantiation nat :: semiring_bit_operations and_nat == and :: nat \ nat \ nat or_nat == or :: nat \ nat \ nat xor_nat == xor :: nat \ nat \ nat Proofs for inductive predicate(s) "PRIMREC" Proving monotonicity ... Proving the introduction rules ... Proving the elimination rules ... Proving the induction rule ... Proving the simplification rules ... Found termination order: "{}" ### theory "HOL-ex.Primrec" ### 0.531s elapsed time, 2.980s cpu time, 0.728s GC time Loading theory "HOL-ex.Rewrite_Examples" locale zip_int fixes f :: "bool \ bool \ bool" (infixl \\<^bold>*\ 70) assumes "zip_int (\<^bold>*)" Found termination order: "{}" consts mispar :: "alef_bet \ nat" val ct = "Q (\b. P (\a. a + b) ((+) b))": cterm val x = "x": string val ctxt = : Proof.context val pat = [Concl, In, Term (Free ("Q", "(int \ ?'b) \ bool") $ Abs ("x", "int", Var (("_hole_", 1), "int \ ?'b") $ Bound 0), [("x", "int")]), In, Term (Const ("Groups.plus_class.plus", "int \ int \ int") $ Free ("x", "int") $ Var (("c", 0), "int"), [])]: (term * (string * typ) list, string * typ option) Rewrite.pattern list val to = NONE: 'a option val th = "Q (\b. P (\a. a + b) ((+) b)) \ Q (\b. P (\a. a + b) (\a. a + b))": thm instantiation int :: ring_bit_operations not_int == not :: int \ int and_int == and :: int \ int \ int or_int == or :: int \ int \ int xor_int == xor :: int \ int \ int ### theory "HOL-ex.Hebrew" ### 2.228s elapsed time, 13.016s cpu time, 1.424s GC time Loading theory "HOL-ex.Seq" val ct = "(+)": cterm val x = "x": string val ctxt = : Proof.context val pat = [In, Term (Const ("Groups.plus_class.plus", "int \ int \ int") $ Var (("c", 0), "int") $ Var (("c", 0), "int"), [])]: (term * 'a list, 'b) Rewrite.pattern list val to = NONE: 'a option instantiation residue_ring :: (len2) comm_ring_1 uminus_residue_ring == uminus :: 'a residue_ring \ 'a residue_ring one_residue_ring == one_class.one :: 'a residue_ring times_residue_ring == times :: 'a residue_ring \ 'a residue_ring \ 'a residue_ring zero_residue_ring == zero_class.zero :: 'a residue_ring minus_residue_ring == minus :: 'a residue_ring \ 'a residue_ring \ 'a residue_ring plus_residue_ring == plus :: 'a residue_ring \ 'a residue_ring \ 'a residue_ring val it = "(\x. PROP A) \ (\x. PROP A)": thm ### theory "HOL-ex.Rewrite_Examples" ### 0.185s elapsed time, 1.120s cpu time, 0.000s GC time Loading theory "HOL-ex.Serbian" ### theory "HOL-ex.Residue_Ring" ### 0.702s elapsed time, 4.020s cpu time, 0.728s GC time Loading theory "HOL-ex.Set_Comprehension_Pointfree_Examples" instantiation integer :: ring_bit_operations not_integer == not :: integer \ integer and_integer == and :: integer \ integer \ integer or_integer == or :: integer \ integer \ integer xor_integer == xor :: integer \ integer \ integer instantiation natural :: semiring_bit_operations and_natural == and :: natural \ natural \ natural or_natural == or :: natural \ natural \ natural xor_natural == xor :: natural \ natural \ natural ### theory "HOL-ex.Bit_Operations" ### 3.766s elapsed time, 21.868s cpu time, 2.384s GC time Loading theory "HOL-ex.Set_Theory" Found termination order: "(\p. size (snd p)) <*mlex*> {}" Found termination order: "size <*mlex*> {}" Found termination order: "size <*mlex*> {}" ### theory "HOL-ex.Set_Theory" ### 0.270s elapsed time, 1.544s cpu time, 0.000s GC time Loading theory "HOL-ex.Simproc_Tests" Found termination order: "(\p. size (fst p)) <*mlex*> {}" val test = fn: Proof.context -> simproc list -> tactic Found termination order: "size <*mlex*> {}" ### theory "HOL-ex.Seq" ### 0.629s elapsed time, 3.628s cpu time, 0.000s GC time Loading theory "HOL-ex.Sketch_and_Explore" ### ML warning (line 69 of "~~/src/HOL/ex/Sketch_and_Explore.thy"): ### Matches are not exhaustive. val split_clause = fn: term -> (string * typ) list * term list * term val maybe_quote = fn: Proof.context -> string -> string val print_typ = fn: Proof.context -> typ -> string val print_term = fn: Proof.context -> term -> string val eigen_context_for_statement = fn: (string * 'a) list * term list * term -> Proof.context -> ((string * 'a) list * term list * term) * Proof.context val print_isar_skeleton = fn: Proof.context -> int -> string -> (string * typ) list * term list * term -> string val print_sketch = fn: Proof.context -> string -> ((string * typ) list * term list * term) list -> string list val print_exploration = fn: Proof.context -> string -> ((string * typ) list * term list * term) list -> string list val coalesce_method_txt = fn: string list -> string val print_proof_text_from_state = fn: (Proof.context -> string -> ((string * typ) list * term list * term) list -> string list) -> ((Method.text * Position.range) * Token.T list) option -> Proof.state -> Proof.state val sketch = fn: ((Method.text * Position.range) * Token.T list) option -> Proof.state -> Proof.state val explore = fn: (Method.text * Position.range) * Token.T list -> Proof.state -> Proof.state val sketch_cmd = fn: ((Method.text * Position.range) * Token.T list) option -> Toplevel.transition -> Toplevel.transition val explore_cmd = fn: (Method.text * Position.range) * Token.T list -> Toplevel.transition -> Toplevel.transition ### theory "HOL-ex.Sketch_and_Explore" ### 1.332s elapsed time, 5.872s cpu time, 5.504s GC time Loading theory "HOL-ex.Sorting_Algorithms_Examples" Found termination order: "{}" datatype 'a ref = ref of 'a ROOT.ML:12: warning: Value identifier (x2) has not been referenced. ROOT.ML:11: warning: Value identifier (x2) has not been referenced. ROOT.ML:21: warning: Value identifier (p) has not been referenced. ROOT.ML:28: warning: Value identifier (y) has not been referenced. ROOT.ML:28: warning: Value identifier (A_) has not been referenced. ROOT.ML:34: warning: Value identifier (A_) has not been referenced. ROOT.ML:34: warning: Matches are not exhaustive. Found near fun less_eq_set A_ (... ...) ... = false | less_eq_set A_ ... = ... ... ys | less_eq_set ... = ... ... ROOT.ML:42: warning: Value identifier (p) has not been referenced. ROOT.ML:45: warning: Value identifier (x) has not been referenced. ROOT.ML:45: warning: Value identifier (A_) has not been referenced. ROOT.ML:55: warning: Value identifier (f) has not been referenced. ROOT.ML:62: warning: Value identifier (f) has not been referenced. ROOT.ML:65: warning: Matches are not exhaustive. Found near fun image f (... ...) = Set (... ... xs) ROOT.ML:67: warning: Matches are not exhaustive. Found near fun pow A_ (... ...) = let val ... = ... in ... ... (... ...) end | pow A_ ... = ... ... bot_set ROOT.ML:74: warning: Value identifier (f) has not been referenced. ROOT.ML:80: warning: Matches are not exhaustive. Found near fun product (Set xs) (... ...) = Set (... ... xs) ROOT.ML:90: warning: Value identifier (n) has not been referenced. structure Generated_Code: sig val common_subsets: nat set -> nat set -> nat set set type nat val products: nat set -> nat set -> nat set type 'a set val union: nat set -> nat set -> nat set end ### theory "HOL-ex.Set_Comprehension_Pointfree_Examples" ### 2.627s elapsed time, 12.548s cpu time, 5.840s GC time Loading theory "HOL-ex.Sudoku" ### Introduced fixed type variable(s): 'b, 'c, 'd, 'e, 'f in "A" or "E" or "P" or "ST" or "compT" or "mxr" ### Introduced fixed type variable(s): 'b, 'c, 'd, 'e, 'f in "A" or "A'" or "E" or "P" or "ST" or "compT" or "mxr" val sort_int_abs_reversed_conv = fn: Proof.context -> conv ### theory "HOL-ex.Sorting_Algorithms_Examples" ### 1.112s elapsed time, 5.488s cpu time, 0.336s GC time Loading theory "HOL-ex.Tarski" locale S fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" defines "A \ pset cl" and "r \ order cl" locale PO fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" assumes "PO cl" defines "A \ pset cl" and "r \ order cl" locale CL fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" assumes "CL cl" defines "A \ pset cl" and "r \ order cl" locale CLF fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" and f :: "'a \ 'a" and P :: "'a set" assumes "CLF cl f" defines "A \ pset cl" and "r \ order cl" and "P \ fix f A" locale Tarski fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" and f :: "'a \ 'a" and P :: "'a set" and Y :: "'a set" and intY1 :: "'a set" and v :: "'a" assumes "Tarski cl f Y" defines "A \ pset cl" and "r \ order cl" and "P \ fix f A" and "intY1 \ interval r (lub Y cl) (Top cl)" and "v \ glb {x. (restrict f intY1 x, x) \ induced intY1 r \ x \ intY1} \pset = intY1, order = induced intY1 r\" locale PO fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" assumes "PO cl" defines "A \ pset cl" and "r \ order cl" locale CL fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" assumes "CL cl" defines "A \ pset cl" and "r \ order cl" locale PO fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" assumes "PO cl" defines "A \ pset cl" and "r \ order cl" locale CL fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" assumes "CL cl" defines "A \ pset cl" and "r \ order cl" locale CL fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" assumes "CL cl" defines "A \ pset cl" and "r \ order cl" locale CLF fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" and f :: "'a \ 'a" and P :: "'a set" assumes "CLF cl f" defines "A \ pset cl" and "r \ order cl" and "P \ fix f A" locale CLF fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" and f :: "'a \ 'a" and P :: "'a set" assumes "CLF cl f" defines "A \ pset cl" and "r \ order cl" and "P \ fix f A" ### theory "HOL-ex.Sudoku" ### 1.340s elapsed time, 6.732s cpu time, 0.536s GC time Loading theory "HOL-ex.Termination" locale Tarski fixes cl :: "'a potype" and A :: "'a set" and r :: "('a \ 'a) set" and f :: "'a \ 'a" and P :: "'a set" and Y :: "'a set" and intY1 :: "'a set" and v :: "'a" assumes "Tarski cl f Y" defines "A \ pset cl" and "r \ order cl" and "P \ fix f A" and "intY1 \ interval r (lub Y cl) (Top cl)" and "v \ glb {x. (restrict f intY1 x, x) \ induced intY1 r \ x \ intY1} \pset = intY1, order = induced intY1 r\" ### theory "HOL-ex.Tarski" ### 1.115s elapsed time, 5.544s cpu time, 0.536s GC time Loading theory "HOL-ex.ThreeDivides" Found termination order: "{}" Found termination order: "size <*mlex*> {}" ### theory "HOL-ex.ThreeDivides" ### 0.125s elapsed time, 0.624s cpu time, 0.000s GC time Loading theory "HOL-ex.Transfer_Int_Nat" Found termination order: "size <*mlex*> {}" Found termination order: "{}" Found termination order: "(\p. size (snd p)) <*mlex*> {}" Found termination order: "{}" ### theory "HOL-ex.Functions" ### 6.865s elapsed time, 35.972s cpu time, 7.800s GC time Loading theory "HOL-ex.Tree23" ### theory "HOL-ex.Transfer_Int_Nat" ### 0.152s elapsed time, 0.764s cpu time, 0.000s GC time Loading theory "HOL-ex.Unification" Found termination order: "(\p. size (snd p)) <*mlex*> (\p. size (fst p)) <*mlex*> {}" Found termination order: "(\p. size (snd (snd p))) <*mlex*> (\p. size (fst (snd p))) <*mlex*> (\p. size (snd (fst p))) <*mlex*> (\p. size (fst (fst p))) <*mlex*> {}" Found termination order: "(\p. size (snd p)) <*mlex*> (\p. size (fst p)) <*mlex*> {}" Found termination order: "(\p. size (fst p)) <*mlex*> (\p. size (snd p)) <*mlex*> {}" datatype 'a ref = ref of 'a ROOT.ML:29: warning: Value identifier (more) has not been referenced. ROOT.ML:29: warning: Value identifier (ypos) has not been referenced. structure Generated_Code: sig type colour type 'a cpoint_ext val foo1: unit point_ext val foo10: nat val foo3: 'a -> 'a point_ext val foo5: nat type nat type num type 'a point_ext end ### theory "HOL-ex.Records" ### 5.897s elapsed time, 29.680s cpu time, 7.780s GC time Loading theory "HOL-ex.Word" (required by "HOL-ex.Bit_Lists") consts vars_of :: "'a trm \ 'a set" Found termination order: "(\p. size (snd p)) <*mlex*> {}" instantiation word :: (len0) {semiring_numeral,comm_ring} uminus_word == uminus :: 'a word \ 'a word zero_word == zero_class.zero :: 'a word minus_word == minus :: 'a word \ 'a word \ 'a word plus_word == plus :: 'a word \ 'a word \ 'a word one_word == one_class.one :: 'a word times_word == times :: 'a word \ 'a word \ 'a word Found termination order: "(\p. size_list size (snd (snd p))) <*mlex*> {}" consts subst :: "'a trm \ ('a \ 'a trm) list \ 'a trm" Found termination order: "(\p. size_list (\p. size (snd p)) (fst p)) <*mlex*> {}" class semiring_char_0 = semiring_1 + assumes "inj_of_nat": "inj of_nat" instantiation word :: (len0) equal equal_word == equal_class.equal :: 'a word \ 'a word \ bool ### theory "HOL-ex.Unification" ### 1.869s elapsed time, 10.464s cpu time, 1.484s GC time Loading theory "HOL-ex.veriT_Preprocessing" ### ML warning (line 31 of "~~/src/HOL/ex/veriT_Preprocessing.thy"): ### Pattern is not exhaustive. ### ML warning (line 35 of "~~/src/HOL/ex/veriT_Preprocessing.thy"): ### Pattern is not exhaustive. val mk_prod1 = fn: typ list -> term * term -> term val mk_tuple1 = fn: typ list -> term list -> term val mk_arg_congN = fn: int -> thm val mk_let_iffNI = fn: Proof.context -> int -> thm datatype rule_name = Bind | Cong | Let of term list | Refl | Sko_All | Sko_Ex | Taut of thm | Trans of term constructor Bind: rule_name constructor Cong: rule_name constructor Let: term list -> rule_name constructor Refl: rule_name constructor Sko_All: rule_name constructor Sko_Ex: rule_name constructor Taut: thm -> rule_name constructor Trans: term -> rule_name val str_of_rule_name = fn: rule_name -> string datatype node = N of rule_name * node list constructor N: rule_name * node list -> node val lambda_count = fn: term -> int val zoom = fn: (typ list -> term * term -> term * term) -> term * term -> term * term val apply_Trans_left = fn: 'a -> 'b * 'c -> 'b * 'a val apply_Trans_right = fn: 'a -> 'b * 'c -> 'a * 'c val apply_Cong = fn: int -> int -> term * term -> term * term val apply_Bind = fn: term * term -> term * term val apply_Sko_Ex = fn: term * 'a -> term * 'a val apply_Sko_All = fn: term * 'a -> term * 'a val apply_Let_left = fn: 'a list -> int -> term * 'b -> term * 'a val apply_Let_right = fn: term list -> typ list -> term * term -> term * term val reconstruct_proof = fn: Proof.context -> (term * term) * node -> thm ### (\x. p x) = p (SOME x. p x) ### Sko_Ex ### p (SOME x. p x) = p (SOME x. p x) ### Refl val proof0 = ((Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("p", "nat \ bool") $ Bound 0), Free ("p", "nat \ bool") $ (Const ("Hilbert_Choice.Eps", "(nat \ bool) \ nat") $ Abs ("x", "nat", Free ("p", "nat \ bool") $ Bound 0))), N (Sko_Ex, [N (Refl, [])])): (term * term) * node val it = "(\x. p x) = p (SOME x. p x)": thm ### (\ (\x. \y. p x y)) = ### (\y. p (SOME x. \y. p x y) y) ### Cong ### (\x. \y. p x y) = ### (\y. p (SOME x. \y. p x y) y) ### Sko_All ### (\y. p (SOME x. \y. p x y) y) = ### (\y. p (SOME x. \y. p x y) y) ### Bind ### (\y. p (SOME x. \y. p x y) y) = ### (\y. p (SOME x. \y. p x y) y) ### Refl val proof1 = ((Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("y", "nat", Free ("p", "... ... ...") $ Bound 1 $ Bound 0))), Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("y", "nat", Free ("p", "nat \ nat \ bool") $ (Const ("Hilbert_Choice.Eps", "(nat ... bool) \ nat") $ Abs ("x", "nat", Const ("HOL.Not", "...") $ (Const ("...", "(nat \ bool) \ bool") $ ...))) $ Bound 0))), N (Cong, [N (Sko_All, [N (Bind, [N (Refl, [])])])])): (term * term) * node val it = "(\ (\x. \y. p x y)) = (\y. p (SOME x. \y. p x y) y)": thm ### (\x. \y z. p x y z) = ### (\x. ### p x (SOME y. \z. p x y z) ### (SOME z. p x (SOME y. \z. p x y z) z)) ### Bind ### (\x. \y z. p x y z) = ### (\x. ### p x (SOME y. \z. p x y z) ### (SOME z. p x (SOME y. \z. p x y z) z)) ### Sko_Ex ### (\x. \z. p x (SOME y. \z. p x y z) z) = ### (\x. ### p x (SOME y. \z. p x y z) ### (SOME z. p x (SOME y. \z. p x y z) z)) ### Sko_Ex ### (\x. ### p x (SOME y. \z. p x y z) ### (SOME z. p x (SOME y. \z. p x y z) z)) = ### (\x. ### p x (SOME y. \z. p x y z) ### (SOME z. p x (SOME y. \z. p x y z) z)) ### Refl val proof2 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("y", "nat", Const ("HOL.Ex", "(... ... ...) \ bool") $ Abs ("z", "nat", Free ("...", ...) $ Bound 2 $ ... $ ...))), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("p", "nat \ nat \ nat \ bool") $ Bound 0 $ (Const ("Hilbert_Choice.Eps", "(nat \ bool) \ nat") $ Abs ("y", "nat", Const ("HOL.Ex", "...") $ Abs ("z", "...", ...))) $ (Const ("Hilbert_Choice.Eps", "(nat ... bool) \ nat") $ Abs ("z", "nat", Free ("p", "...") $ Bound 1 $ (... $ ...) $ ...)))), N (Bind, [N (Sko_Ex, [N (Sko_Ex, [N (Refl, [])])])])): (term * term) * node val it = "(\x. \y z. p x y z) = (\x. p x (SOME y. \z. p x y z) (SOME z. p x (SOME y. \z. p x y z) z))": thm ### (\x. \x xa. p xa xa xa) = ### (\x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Bind ### (\x. \x xa. p xa xa xa) = ### (\x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Sko_Ex ### (\x. \x. p x x x) = ### (\x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Sko_Ex ### (\x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) = ### (\x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Refl val proof3 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Ex", "(... ... ...) \ bool") $ Abs ("x", "nat", Free ("...", ...) $ Bound 0 $ ... $ ...))), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("p", "nat \ nat \ nat \ bool") $ (Const ("Hilbert_Choice.Eps", "(nat \ bool) \ nat") $ Abs ("x", "nat", Free ("p", "... ... ...") $ Bound 0 $ Bound 0 $ Bound 0)) $ (Const ("Hilbert_Choice.Eps", "(nat \ bool) \ nat") $ Abs ("x", "nat", Free ("p", "...") $ Bound 0 $ Bound 0 $ Bound 0)) $ (Const ("Hilbert_Choice.Eps", "(nat ... bool) \ nat") $ Abs ("x", "nat", Free ("p", "...") $ Bound 0 $ Bound 0 $ ...)))), N (Bind, [N (Sko_Ex, [N (Sko_Ex, [N (Refl, [])])])])): (term * term) * node val it = "(\x. \x xa. p xa xa xa) = (\x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x))": thm ### (\x. \x xa. p xa xa xa) = ### (\x. ### \x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Bind ### (\x. \x xa. p xa xa xa) = ### (\x. ### \x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Bind ### (\x xa. \x. p x x x) = ### (\x xa. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Sko_Ex ### (\x xa. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) = ### (\x xa. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Refl val proof4 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Ex", "(... ... ...) \ bool") $ Abs ("x", "nat", Free ("...", ...) $ Bound 0 $ ... $ ...))), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("p", "nat \ nat ... ... ... ...") $ (Const ("Hilbert_Choice.Eps", "... ... ...") $ Abs ("x", "...", ... $ ... $ ... $ ...)) $ (Const ("Hilbert_Choice.Eps", "...") $ Abs ("x", "...", ...)) $ (Const ("Hilbert_Choice.Eps", "...") $ Abs ("x", ..., ...))))), N (Bind, [N (Bind, [N (Sko_Ex, [N (Refl, [])])])])): (term * term) * node val it = "(\x. \x xa. p xa xa xa) = (\x. \x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x))": thm ### (\x. q \ (\x xa. p xa xa xa)) = ### (\x. ### q \ ### (\x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x))) ### Bind ### (\x. q \ (\x xa. p xa xa xa)) = ### (\x. ### q \ ### (\x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x))) ### Cong ### (\x. q) = (\x. q) ### Refl ### (\x. \x xa. p xa xa xa) = ### (\x. ### \x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Bind ### (\x xa. \x. p x x x) = ### (\x xa. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Sko_Ex ### (\x xa. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) = ### (\x xa. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)) ### Refl val proof5 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.conj", "bool \ bool \ bool") $ Free ("q", "bool") $ (Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Ex", "...") $ Abs ("x", "...", ...)))), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.conj", "bool \ bool \ bool") $ Free ("q", "bool") $ (Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("p", "...") $ (Const ("...", ...) $ Abs ("...", "nat", ...)) $ (Const ("...", "(nat \ bool) \ nat") $ ...) $ (... $ ...))))), N (Bind, [N (Cong, [N (Refl, []), N (Bind, [N (Sko_Ex, [N (Refl, [])])])])])): (term * term) * node val it = "(\x. q \ (\x xa. p xa xa xa)) = (\x. q \ (\x. p (SOME x. p x x x) (SOME x. p x x x) (SOME x. p x x x)))": thm instantiation word :: (len0) modulo modulo_word == modulo :: 'a word \ 'a word \ 'a word divide_word == divide :: 'a word \ 'a word \ 'a word ### (\ (\x. p \ (\x. \x. q x x))) = ### (\ (\x. ### p \ ### (\x. q (SOME x. \ q x x) (SOME x. \ q x x)))) ### Cong ### (\x. p \ (\x. \x. q x x)) = ### (\x. ### p \ (\x. q (SOME x. \ q x x) (SOME x. \ q x x))) ### Bind ### (\x. p \ (\x. \x. q x x)) = ### (\x. ### p \ (\x. q (SOME x. \ q x x) (SOME x. \ q x x))) ### Cong ### (\x. p) = (\x. p) ### Refl ### (\x. \x. \x. q x x) = ### (\x. \x. q (SOME x. \ q x x) (SOME x. \ q x x)) ### Bind ### (\x xa. \x. q x x) = ### (\x xa. q (SOME x. \ q x x) (SOME x. \ q x x)) ### Sko_All ### (\x xa. q (SOME x. \ q x x) (SOME x. \ q x x)) = ### (\x xa. q (SOME x. \ q x x) (SOME x. \ q x x)) ### Refl val proof6 = ((Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.conj", "bool \ bool \ bool") $ Free ("p", "bool") $ (Const ("HOL.Ex", "(... ... ...) \ bool") $ Abs ("x", "nat", Const ("...", ...) $ Abs ("...", "nat", ...))))), Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.conj", "bool \ bool \ bool") $ Free ("p", "bool") $ (Const ("HOL.Ex", "(... ... ...) \ bool") $ Abs ("x", "nat", Free ("...", ...) $ (... $ ...) $ ...))))), N (Cong, [N (Bind, [N (Cong, [N (Refl, []), N (Bind, [N (Sko_All, [N (Refl, [])])])])])])): (term * term) * node val it = "(\ (\x. p \ (\x. \x. q x x))) = (\ (\x. p \ (\x. q (SOME x. \ q x x) (SOME x. \ q x x))))": thm ### (\ (\x. p x)) = (\ \ p (SOME x. p x)) ### Cong ### (\x. p x) = (\ p (SOME x. p x)) ### Cong ### (\x. p x) = p (SOME x. p x) ### Sko_Ex ### p (SOME x. p x) = p (SOME x. p x) ### Refl val proof7 = ((Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Ex", "('a \ bool) \ bool") $ Abs ("x", "'a", Free ("p", "'a \ bool") $ Bound 0))), Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Not", "bool \ bool") $ (Free ("p", "'a \ bool") $ (Const ("Hilbert_Choice.Eps", "('a \ bool) \ 'a") $ Abs ("x", "'a", Free ("p", "'a ... bool") $ Bound 0))))), N (Cong, [N (Cong, [N (Sko_Ex, [N (Refl, [])])])])): (term * term) * node val it = "(\ (\x. p x)) = (\ \ p (SOME x. p x))": thm ### (\ \ (let x = Suc x in x = 0)) = (\ Suc x \ 0) ### Cong ### (\ (let x = Suc x in x = 0)) = (Suc x \ 0) ### Cong ### (let x = Suc x in x = 0) = (Suc x = 0) ### Let[Suc x] ### Suc x = Suc x ### Refl ### (Suc x = 0) = (Suc x = 0) ### Refl val proof8 = ((Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Let", "nat \ (nat \ bool) \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")) $ Abs ("x", "nat", Const ("HOL.eq", "nat \ nat ... bool") $ Bound 0 $ Const ("Groups.zero_class.zero", "nat")))), Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.eq", "nat \ nat \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")) $ Const ("Groups.zero_class.zero", "nat")))), N (Cong, [N (Cong, [N (Let [Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Refl, [])])])])): (term * term) * node val it = "(\ \ (let x = Suc x in x = 0)) = (\ Suc x \ 0)": thm ### (\ (let x = Suc x in x = 0)) = (Suc x \ 0) ### Cong ### (let x = Suc x in x = 0) = (Suc x = 0) ### Let[Suc x] ### Suc x = Suc x ### Refl ### (Suc x = 0) = (Suc x = 0) ### Refl val proof9 = ((Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Let", "nat \ (nat \ bool) \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")) $ Abs ("x", "nat", Const ("HOL.eq", "nat \ nat \ bool") $ Bound 0 $ Const ("Groups.zero_class.zero", "nat"))), Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.eq", "nat \ nat \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")) $ Const ("Groups.zero_class.zero", "nat"))), N (Cong, [N (Let [Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Refl, [])])])): (term * term) * node val it = "(\ (let x = Suc x in x = 0)) = (Suc x \ 0)": thm ### (\x. p (x + 0)) = (\x. p x) ### Bind ### (\x. p (x + 0)) = (\x. p x) ### Cong ### (\x. x + 0) = (\x. x) ### Taut["?a + (0::?'a) = ?a"] val proof10 = ((Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("p", "nat \ bool") $ (Const ("Groups.plus_class.plus", "nat \ nat \ nat") $ Bound 0 $ Const ("Groups.zero_class.zero", "nat"))), Const ("HOL.Ex", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("p", "nat \ bool") $ Bound 0)), N (Bind, [N (Cong, [N (Taut "?a + (0::?'a) = ?a", [])])])): (term * term) * node val it = "(\x. p (x + 0)) = (\x. p x)": thm ### (\ (let (x, y) = (Suc y, Suc x) in y = 0)) = (Suc x \ 0) ### Cong ### (let (x, y) = (Suc y, Suc x) in y = 0) = (Suc x = 0) ### Let[Suc y, Suc x] ### Suc y = Suc y ### Refl ### Suc x = Suc x ### Refl ### (case (Suc y, Suc x) of (x, y) \ y = 0) = (Suc x = 0) ### Refl val proof11 = ((Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Let", "nat \ nat \ (nat \ nat \ bool) \ bool") $ (Const ("Product_Type.Pair", "nat \ nat \ nat \ nat") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("y", "nat")) $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat"))) $ (Const ("Product_Type.prod.case_prod", "(nat \ nat \ bool) \ nat \ nat \ bool") $ Abs ("x", "nat", Abs ("y", "nat", Const ("HOL.eq", "...") $ Bound 0 $ Const ("...", ...))))), Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.eq", "nat \ nat \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")) $ Const ("Groups.zero_class.zero", "nat"))), N (Cong, [N (Let [Const ("Nat.Suc", "nat \ nat") $ Free ("y", "nat"), Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Refl, []), N (Refl, [])])])): (term * term) * node val it = "(\ (let (x, y) = (Suc y, Suc x) in y = 0)) = (Suc x \ 0)": thm Found termination order: "(\p. size (snd (snd (snd (snd p))))) <*mlex*> (\p. size (fst (snd (snd p)))) <*mlex*> (\p. size (fst (snd (snd (snd p))))) <*mlex*> {}" instantiation word :: (len0) linorder less_eq_word == less_eq :: 'a word \ 'a word \ bool less_word == less :: 'a word \ 'a word \ bool ### (\ (let (x, y) = (Suc y, Suc x); (u, v, w) = (y, x, y) in w = 0)) = ### (Suc x \ 0) ### Cong ### (let (x, y) = (Suc y, Suc x); (u, v, w) = (y, x, y) in w = 0) = (Suc x = 0) ### Let[Suc y, Suc x] ### Suc y = Suc y ### Refl ### Suc x = Suc x ### Refl ### (case (Suc y, Suc x) of ### (x, y) \ let (u, v, w) = (y, x, y) in w = 0) = ### (Suc x = 0) ### Let[Suc x, Suc y, Suc x] ### (case (Suc y, Suc x) of (x, y) \ y) = Suc x ### Refl ### (case (Suc y, Suc x) of (x, y) \ x) = Suc y ### Refl ### (case (Suc y, Suc x) of (x, y) \ y) = Suc x ### Refl ### (case (Suc y, Suc x) of ### (xa, ya) \ ### case (Suc x, Suc y, Suc x) of (u, v, w) \ w = 0) = ### (Suc x = 0) ### Refl val proof12 = ((Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Let", "nat \ nat \ (nat \ nat \ bool) \ bool") $ (Const ("Product_Type.Pair", "nat \ nat \ nat \ nat") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("y", "nat")) $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat"))) $ (Const ("Product_Type.prod.case_prod", "(nat \ nat \ bool) \ nat \ nat \ bool") $ Abs ("x", "nat", Abs ("y", "nat", Const ("HOL.Let", "...") $ (Const ("...", ...) $ Bound 0 $ ...) $ (Const ("...", "(nat \ nat \ nat \ bool) \ nat \ nat \ nat \ bool") $ ...))))), Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.eq", "nat \ nat \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")) $ Const ("Groups.zero_class.zero", "nat"))), N (Cong, [N (Let [Const ("Nat.Suc", "nat \ nat") $ Free ("y", "nat"), Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Refl, []), N (Let [Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat"), Const ("Nat.Suc", "nat \ nat") $ Free ("y", "nat"), Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Refl, []), N (Refl, []), N (Refl, [])])])])): (term * term) * node val it = "(\ (let (x, y) = (Suc y, Suc x); (u, v, w) = (y, x, y) in w = 0)) = (Suc x \ 0)": thm ### (\ \ (let x = Suc x in x = 0)) = (\ Suc x \ 0) ### Cong ### (\ (let x = Suc x in x = 0)) = (Suc x \ 0) ### Cong ### (let x = Suc x in x = 0) = (Suc x = 0) ### Let[Suc x] ### Suc x = Suc x ### Refl ### (Suc x = 0) = (Suc x = 0) ### Refl val proof13 = ((Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Let", "nat \ (nat \ bool) \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")) $ Abs ("x", "nat", Const ("HOL.eq", "nat \ nat ... bool") $ Bound 0 $ Const ("Groups.zero_class.zero", "nat")))), Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.Not", "bool \ bool") $ (Const ("HOL.eq", "nat \ nat \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")) $ Const ("Groups.zero_class.zero", "nat")))), N (Cong, [N (Cong, [N (Let [Const ("Nat.Suc", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Refl, [])])])])): (term * term) * node val it = "(\ \ (let x = Suc x in x = 0)) = (\ Suc x \ 0)": thm ### (let (x, y) = (f a, b) in a < x) = (a < f a) ### Let[f a, b] ### f a = f a ### Cong ### a = a ### Refl ### b = b ### Refl ### (case (f a, b) of (x, y) \ a < x) = (a < f a) ### Refl val proof14 = ((Const ("HOL.Let", "nat \ nat \ (nat \ nat \ bool) \ bool") $ (Const ("Product_Type.Pair", "nat \ nat \ nat \ nat") $ (Free ("f", "nat \ nat") $ Free ("a", "nat")) $ Free ("b", "nat")) $ (Const ("Product_Type.prod.case_prod", "(nat \ nat \ bool) \ nat \ nat \ bool") $ Abs ("x", "nat", Abs ("y", "nat", Const ("Orderings.ord_class.less", "nat ... ... ... ...") $ Free ("a", "nat") $ Bound 1))), Const ("Orderings.ord_class.less", "nat \ nat \ bool") $ Free ("a", "nat") $ (Free ("f", "nat \ nat") $ Free ("a", "nat"))), N (Let [Free ("f", "nat \ nat") $ Free ("a", "nat"), Free ("b", "nat")], [N (Cong, [N (Refl, [])]), N (Refl, []), N (Refl, [])])): (term * term) * node val it = "(let (x, y) = (f a, b) in a < x) = (a < f a)": thm ### (let x = let y = g z in f y in x = Suc 0) = (f (g z) = Suc 0) ### Let[f (g z)] ### (let y = g z in f y) = f (g z) ### Let[g z] ### g z = g z ### Refl ### f (g z) = f (g z) ### Refl ### (f (g z) = Suc 0) = (f (g z) = Suc 0) ### Refl val proof15 = ((Const ("HOL.Let", "nat \ (nat \ bool) \ bool") $ (Const ("HOL.Let", "nat \ (nat \ nat) \ nat") $ (Free ("g", "nat \ nat") $ Free ("z", "nat")) $ Abs ("y", "nat", Free ("f", "nat \ nat") $ Bound 0)) $ Abs ("x", "nat", Const ("HOL.eq", "nat \ nat \ bool") $ Bound 0 $ (Const ("Nat.Suc", "nat \ nat") $ Const ("Groups.zero_class.zero", "nat"))), Const ("HOL.eq", "nat \ nat \ bool") $ (Free ("f", "nat \ nat") $ (Free ("g", "nat \ nat") $ Free ("z", "nat"))) $ (Const ("Nat.Suc", "nat \ nat") $ Const ("Groups.zero_class.zero", "nat"))), N (Let [Free ("f", "nat \ nat") $ (Free ("g", "nat \ nat") $ Free ("z", "nat"))], [N (Let [Free ("g", "nat \ nat") $ Free ("z", "nat")], [N (Refl, []), N (Refl, [])]), N (Refl, [])])): (term * term) * node val it = "(let x = let y = g z in f y in x = Suc 0) = (f (g z) = Suc 0)": thm ### (Suc b < a) = (Suc b < a) ### Trans[Suc b < a] ### (Suc b < a) = (Suc b < a) ### Refl ### (Suc b < a) = (Suc b < a) ### Refl val proof16 = ((Const ("Orderings.ord_class.less", "nat \ nat \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("b", "nat")) $ Free ("a", "nat"), Const ("Orderings.ord_class.less", "nat \ nat \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("b", "nat")) $ Free ("a", "nat")), N (Trans ( Const ("Orderings.ord_class.less", "nat \ nat \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("b", "nat")) $ Free ("a", "nat") ), [N (Refl, []), N (Refl, [])])): (term * term) * node val it = "(Suc b < a) = (Suc b < a)": thm ### 2 = Suc (Suc 0) ### Trans[Suc 1] ### 2 = Suc 1 ### Taut["2 = Suc 1"] ### Suc 1 = Suc (Suc 0) ### Cong ### 1 = Suc 0 ### Taut["1 = Suc 0"] val proof17 = ((Const ("Num.numeral_class.numeral", "num \ nat") $ (Const ("Num.num.Bit0", "num \ num") $ Const ("Num.num.One", "num")), Const ("Nat.Suc", "nat \ nat") $ (Const ("Nat.Suc", "nat \ nat") $ Const ("Groups.zero_class.zero", "nat"))), N (Trans ( Const ("Nat.Suc", "nat \ nat") $ Const ("Groups.one_class.one", "nat") ), [N (Taut "2 = Suc 1", []), N (Cong, [N (Taut "1 = Suc 0", [])])])): (term * term) * node val it = "2 = Suc (Suc 0)": thm ### (let x = a; y = b in Suc x + y) = Suc a + b ### Trans[let y = b in Suc a + y] ### (let x = a; y = b in Suc x + y) = (let y = b in Suc a + y) ### Let[a] ### a = a ### Refl ### (let y = b in Suc a + y) = (let y = b in Suc a + y) ### Refl ### (let y = b in Suc a + y) = Suc a + b ### Let[b] ### b = b ### Refl ### Suc a + b = Suc a + b ### Refl val proof18 = ((Const ("HOL.Let", "nat \ (nat \ nat) \ nat") $ Free ("a", "nat") $ Abs ("x", "nat", Const ("HOL.Let", "nat \ (nat \ nat) \ nat") $ Free ("b", "nat") $ Abs ("y", "nat", Const ("Groups.plus_class.plus", "... ... ...") $ (Const ("Nat.Suc", "...") $ Bound 1) $ Bound 0)), Const ("Groups.plus_class.plus", "nat \ nat \ nat") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("a", "nat")) $ Free ("b", "nat")), N (Trans ( Const ("HOL.Let", "nat \ (nat \ nat) \ nat") $ Free ("b", "nat") $ Abs ("y", "nat", Const ("Groups.plus_class.plus", "nat \ nat \ nat") $ (Const ("Nat.Suc", "nat \ nat") $ Free ("a", "nat")) $ Bound 0) ), [N (Let [Free ("a", "nat")], [N (Refl, []), N (Refl, [])]), N (Let [Free ("b", "nat")], [N (Refl, []), N (Refl, [])])])): (term * term) * node val it = "(let x = a; y = b in Suc x + y) = Suc a + b": thm ### (\x. let x = f x in g x) = (\x. g (f x)) ### Bind ### (\x. let x = f x in g x) = (\x. g (f x)) ### Let[f B.0] ### (\x. f x) = (\x. f x) ### Refl ### (\x. g (f x)) = (\x. g (f x)) ### Refl val proof19 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Let", "nat \ (nat \ bool) \ bool") $ (Free ("f", "nat \ nat") $ Bound 0) $ Abs ("x", "nat", Free ("g", "nat ... bool") $ Bound 0)), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("g", "nat \ bool") $ (Free ("f", "nat \ nat") $ Bound 0))), N (Bind, [N (Let [Free ("f", "nat \ nat") $ Bound 0], [N (Refl, []), N (Refl, [])])])): (term * term) * node val it = "(\x. let x = f x in g x) = (\x. g (f x))": thm ### (\x. let y = Suc 0; x = f x in g x) = (\x. g (f x)) ### Bind ### (\x. let y = Suc 0; x = f x in g x) = (\x. g (f x)) ### Let[Suc 0] ### (\x. Suc 0) = (\x. Suc 0) ### Refl ### (\x. let x = f x in g x) = (\x. g (f x)) ### Let[f x] ### (\x. f x) = (\x. f x) ### Refl ### (\x. g (f x)) = (\x. g (f x)) ### Refl val proof20 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Let", "nat \ (nat \ bool) \ bool") $ (Const ("Nat.Suc", "nat \ nat") $ Const ("Groups.zero_class.zero", "nat")) $ Abs ("y", "nat", Const ("HOL.Let", "nat ... ... ... ...") $ (Free ("f", "...") $ Bound 1) $ Abs ("x", "...", ... $ ...))), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("g", "nat \ bool") $ (Free ("f", "nat \ nat") $ Bound 0))), N (Bind, [N (Let [Const ("Nat.Suc", "nat \ nat") $ Const ("Groups.zero_class.zero", "nat")], [N (Refl, []), N (Let [Free ("f", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Refl, [])])])])): (term * term) * node val it = "(\x. let y = Suc 0; x = f x in g x) = (\x. g (f x))": thm ### (\x. let x = f x; y = x in p y) = (\z. p (f z)) ### Bind ### (\z. let x = f z; y = x in p y) = (\z. p (f z)) ### Let[f z] ### (\z. f z) = (\z. f z) ### Refl ### (\z. let y = f z in p y) = (\z. p (f z)) ### Let[f z] ### (\z. f z) = (\z. f z) ### Refl ### (\z. p (f z)) = (\z. p (f z)) ### Refl val proof21 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Let", "nat \ (nat \ bool) \ bool") $ (Free ("f", "nat \ nat") $ Bound 0) $ Abs ("x", "nat", Const ("HOL.Let", "nat ... ... ... ...") $ Bound 0 $ Abs ("y", "...", ... $ ...))), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("z", "nat", Free ("p", "nat \ bool") $ (Free ("f", "nat \ nat") $ Bound 0))), N (Bind, [N (Let [Free ("f", "nat \ nat") $ Free ("z", "nat")], [N (Refl, []), N (Let [Free ("f", "nat \ nat") $ Free ("z", "nat")], [N (Refl, []), N (Refl, [])])])])): (term * term) * node val it = "(\x. let x = f x; y = x in p y) = (\z. p (f z))": thm ### (\x. let x = f x; y = x in p y) = (\x. p (f x)) ### Bind ### (\x. let x = f x; y = x in p y) = (\x. p (f x)) ### Let[f x] ### (\x. f x) = (\x. f x) ### Refl ### (\x. let y = f x in p y) = (\x. p (f x)) ### Let[f x] ### (\x. f x) = (\x. f x) ### Refl ### (\x. p (f x)) = (\x. p (f x)) ### Refl val proof22 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Let", "nat \ (nat \ bool) \ bool") $ (Free ("f", "nat \ nat") $ Bound 0) $ Abs ("x", "nat", Const ("HOL.Let", "nat ... ... ... ...") $ Bound 0 $ Abs ("y", "...", ... $ ...))), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("p", "nat \ bool") $ (Free ("f", "nat \ nat") $ Bound 0))), N (Bind, [N (Let [Free ("f", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Let [Free ("f", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Refl, [])])])])): (term * term) * node val it = "(\x. let x = f x; y = x in p y) = (\x. p (f x))": thm ### (\x. let (x, a) = (f x, 0); y = x in p y) = (\z. p (f z)) ### Bind ### (\z. let (x, a) = (f z, 0); y = x in p y) = (\z. p (f z)) ### Let[f z, 0] ### (\z. f z) = (\z. f z) ### Refl ### (\z. 0) = (\z. 0) ### Refl ### (\z. case (f z, 0) of (x, a) \ let y = x in p y) = ### (\z. p (f z)) ### Let[f z] ### (\z. case (f z, 0) of (x, a) \ x) = (\z. f z) ### Refl ### (\z. case (f z, 0) of (x, a) \ p (f z)) = ### (\z. p (f z)) ### Refl val proof23 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Let", "nat \ nat \ (nat \ nat \ bool) \ bool") $ (Const ("Product_Type.Pair", "nat \ nat \ nat \ nat") $ (Free ("f", "nat \ nat") $ Bound 0) $ Const ("Groups.zero_class.zero", "nat")) $ (Const ("Product_Type.prod.case_prod", "(nat \ nat ... bool) \ nat \ nat \ bool") $ Abs ("x", "nat", Abs ("a", "nat", Const ("...", "nat \ (nat \ bool) \ bool") $ ... $ ...)))), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("z", "nat", Free ("p", "nat \ bool") $ (Free ("f", "nat \ nat") $ Bound 0))), N (Bind, [N (Let [Free ("f", "nat \ nat") $ Free ("z", "nat"), Const ("Groups.zero_class.zero", "nat")], [N (Refl, []), N (Refl, []), N (Let [Free ("f", "nat \ nat") $ Free ("z", "nat")], [N (Refl, []), N (Refl, [])])])])): (term * term) * node val it = "(\x. let (x, a) = (f x, 0); y = x in p y) = (\z. p (f z))": thm ### (\x. let (x, a) = (f x, 0); y = x in p y) = (\x. p (f x)) ### Bind ### (\x. let (x, a) = (f x, 0); y = x in p y) = (\x. p (f x)) ### Let[f x, 0] ### (\x. f x) = (\x. f x) ### Refl ### (\x. 0) = (\x. 0) ### Refl ### (\x. case (f x, 0) of (x, a) \ let y = x in p y) = ### (\x. p (f x)) ### Let[f x] ### (\x. case (f x, 0) of (x, a) \ x) = (\x. f x) ### Refl ### (\x. case (f x, 0) of (xa, a) \ p (f x)) = ### (\x. p (f x)) ### Refl val proof24 = ((Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Const ("HOL.Let", "nat \ nat \ (nat \ nat \ bool) \ bool") $ (Const ("Product_Type.Pair", "nat \ nat \ nat \ nat") $ (Free ("f", "nat \ nat") $ Bound 0) $ Const ("Groups.zero_class.zero", "nat")) $ (Const ("Product_Type.prod.case_prod", "(nat \ nat ... bool) \ nat \ nat \ bool") $ Abs ("x", "nat", Abs ("a", "nat", Const ("...", "nat \ (nat \ bool) \ bool") $ ... $ ...)))), Const ("HOL.All", "(nat \ bool) \ bool") $ Abs ("x", "nat", Free ("p", "nat \ bool") $ (Free ("f", "nat \ nat") $ Bound 0))), N (Bind, [N (Let [Free ("f", "nat \ nat") $ Free ("x", "nat"), Const ("Groups.zero_class.zero", "nat")], [N (Refl, []), N (Refl, []), N (Let [Free ("f", "nat \ nat") $ Free ("x", "nat")], [N (Refl, []), N (Refl, [])])])])): (term * term) * node val it = "(\x. let (x, a) = (f x, 0); y = x in p y) = (\x. p (f x))": thm ### (let vr0 = vr1; vr1 = vr2 in vr0 + vr1 + vr2) = vr1 + vr2 + vr2 ### Trans[let vr1a = vr2 in vr1 + vr1a + vr2] ### (let vr0 = vr1; vr1 = vr2 in vr0 + vr1 + vr2) = ### (let vr1a = vr2 in vr1 + vr1a + vr2) ### Let[vr1] ### vr1 = vr1 ### Refl ### (let vr1a = vr2 in vr1 + vr1a + vr2) = (let vr1a = vr2 in vr1 + vr1a + vr2) ### Refl ### (let vr1a = vr2 in vr1 + vr1a + vr2) = vr1 + vr2 + vr2 ### Let[vr2] ### vr2 = vr2 ### Refl ### vr1 + vr2 + vr2 = vr1 + vr2 + vr2 ### Refl val proof25 = ((Const ("HOL.Let", "nat \ (nat \ nat) \ nat") $ Free ("vr1", "nat") $ Abs ("vr0", "nat", Const ("HOL.Let", "nat \ (nat \ nat) \ nat") $ Free ("vr2", "nat") $ Abs ("vr1", "nat", Const ("Groups.plus_class.plus", "... ... ...") $ (Const ("Groups.plus_class.plus", "...") $ Bound 1 $ Bound 0) $ Free ("vr2", "..."))), Const ("Groups.plus_class.plus", "nat \ nat \ nat") $ (Const ("Groups.plus_class.plus", "nat \ nat \ nat") $ Free ("vr1", "nat") $ Free ("vr2", "nat")) $ Free ("vr2", "nat")), N (Trans ( Const ("HOL.Let", "nat \ (nat \ nat) \ nat") $ Free ("vr2", "nat") $ Abs ("vr1a", "nat", Const ("Groups.plus_class.plus", "nat \ nat \ nat") $ (Const ("Groups.plus_class.plus", "nat \ nat ... nat") $ Free ("vr1", "nat") $ Bound 0) $ Free ("vr2", "nat")) ), [N (Let [Free ("vr1", "nat")], [N (Refl, []), N (Refl, [])]), N (Let [Free ("vr2", "nat")], [N (Refl, []), N (Refl, [])])])): (term * term) * node val it = "(let vr0 = vr1; vr1 = vr2 in vr0 + vr1 + vr2) = vr1 + vr2 + vr2": thm ### theory "HOL-ex.veriT_Preprocessing" ### 0.449s elapsed time, 2.708s cpu time, 0.000s GC time Loading theory "HOL-ex.Transfer_Debug" ### theory "HOL-ex.Transfer_Debug" ### 0.054s elapsed time, 0.328s cpu time, 0.000s GC time Loading theory "HOL-ex.Function_Growth" class linordered_semidom = linordered_comm_semiring_strict + linordered_nonzero_semiring + semidom + assumes "le_add_diff_inverse2": "\b a. b \ a \ a - b + b = a" instantiation word :: (len) semiring_bit_shifts push_bit_word == push_bit :: nat \ 'a word \ 'a word drop_bit_word == drop_bit :: nat \ 'a word \ 'a word instantiation word :: (len) ring_bit_operations not_word == not :: 'a word \ 'a word and_word == and :: 'a word \ 'a word \ 'a word or_word == or :: 'a word \ 'a word \ 'a word xor_word == xor :: 'a word \ 'a word \ 'a word ### theory "HOL-ex.Word" ### 2.149s elapsed time, 12.624s cpu time, 1.532s GC time Loading theory "HOL-ex.Bit_Lists" Found termination order: "(\p. size (snd (snd p))) <*mlex*> {}" Found termination order: "{}" Found termination order: "{}" consts radix_value :: "('b \ 'a) \ 'a \ 'b list \ 'a" ### theory "HOL-ex.Function_Growth" ### 0.876s elapsed time, 5.100s cpu time, 0.724s GC time Loading theory "HOL-ex.SOS" ### Missing patterns in function definition: ### del None Empty = undefined ### theory "HOL-ex.SOS" ### 0.143s elapsed time, 0.864s cpu time, 0.000s GC time Loading theory "HOL-ex.SOS_Cert" Found termination order: "(\p. size (snd (snd (snd (snd (snd (snd (snd (snd p))))))))) <*mlex*> (\p. size (fst (snd (snd (snd (snd (snd (snd (snd p))))))))) <*mlex*> (\p. size (fst (snd (snd (snd (snd (snd (snd p)))))))) <*mlex*> (\p. size (fst (snd (snd (snd (snd (snd p))))))) <*mlex*> (\p. size (fst (snd (snd (snd (snd p)))))) <*mlex*> (\p. size (fst (snd (snd (snd p))))) <*mlex*> (\p. size (fst (snd (snd p)))) <*mlex*> (\p. size (fst (snd p))) <*mlex*> (\p. size (fst p)) <*mlex*> {}" ### theory "HOL-ex.SOS_Cert" ### 0.136s elapsed time, 0.820s cpu time, 0.000s GC time Loading theory "HOL-ex.Argo_Examples" consts azb2abc_aux :: "azbuka \ abeceda list" consts azb2abc :: "azbuka list \ abeceda list" Argo: using these propositions: \ True Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: ~T = F Argo: replayed the proof in 0 ms Argo: using these propositions: \ \ False Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [~F = T]) then (~T = F) Argo: replayed the proof in 0 ms consts n_bits_of :: "nat \ 'a \ bool list" Argo: using these propositions: False \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: replayed the proof in 0 ms Argo: using these propositions: \ True \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: ~T = F Argo: replayed the proof in 0 ms Argo: using these propositions: P \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [1] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~1] Argo: 8 <- 0 4 . unit-resolution 1 Argo: replayed the proof in 0 ms Argo: using these propositions: \ \ P \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: ~~p = p Argo: 0 <- 7 . clause [1] Argo: 11 <- . axiom 1 Argo: 4 <- 11 . clause [~1] Argo: 8 <- 0 4 . unit-resolution 1 Argo: replayed the proof in 0 ms Argo: using these propositions: P \ Q \ R \ (R \ P \ Q) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (and [3]) = (and [[0], [1], [2]]) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [3] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [2] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [1] Argo: 23 <- . axiom 1 Argo: 27 <- 23 . rewrite: (args not [(and [3]) = (and [[1], [2], [0]])]) then (~(and [3]) = (or [3])) Argo: 12 <- 27 . clause [~1, ~2, ~3] Argo: 16 <- 0 12 . unit-resolution 1 Argo: 20 <- 4 16 . unit-resolution 2 Argo: 24 <- 8 20 . unit-resolution 3 Argo: replayed the proof in 0 ms Argo: using these propositions: P \ (Q \ True \ R) \ (Q \ P) \ True \ (R \ P \ Q) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (and [7]) = (and [[5, 0], [4, 1], [3]]) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [3] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [2] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [1] Argo: 23 <- . axiom 1 Argo: 27 <- 23 . rewrite: (args not [(and [3]) = (and [[1], [2], [0]])]) then (~(and [3]) = (or [3])) Argo: 12 <- 27 . clause [~1, ~2, ~3] Argo: 16 <- 0 12 . unit-resolution 1 Argo: 20 <- 4 16 . unit-resolution 2 Argo: 24 <- 8 20 . unit-resolution 3 Argo: replayed the proof in 0 ms consts abc2azb_aux :: "abeceda \ azbuka" Argo: using these propositions: Q1 \ (Q2 \ P \ Q3) \ Q4 \ \ P \ Q5 \ \ True Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (and ... p(2) ... ~p(5) ...) = F Argo: replayed the proof in 0 ms Argo: using these propositions: (Q1 \ False) \ Q2 \ Q3 \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (and ... F(1) ...) = F Argo: replayed the proof in 0 ms Argo: using these propositions: P \ Q \ R \ (R \ P \ Q) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (or [3]) = (or [[0], [1], [2]]) Argo: 0 <- 7 . clause [1, 2, 3] Argo: 11 <- . axiom 1 Argo: 15 <- 11 . rewrite: (args not [(or [3]) = (or [[1], [2], [0]])]) then (~(or [3]) = (and [3])) Argo: 19 <- 15 . conjunct 0 of 3 Argo: 4 <- 19 . clause [~1] Argo: 16 <- 0 4 . unit-resolution 1 Argo: 23 <- 15 . conjunct 1 of 3 Argo: 8 <- 23 . clause [~2] Argo: 20 <- 16 8 . unit-resolution 2 Argo: 27 <- 15 . conjunct 2 of 3 Argo: 12 <- 27 . clause [~3] Argo: 24 <- 20 12 . unit-resolution 3 Argo: replayed the proof in 0 ms Argo: using these propositions: P \ (Q \ False \ R) \ (Q \ P) \ False \ (R \ P \ Q) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (or [7]) = (or [[5, 0], [4, 1], [3]]) Argo: 0 <- 7 . clause [1, 2, 3] Argo: 11 <- . axiom 1 Argo: 15 <- 11 . rewrite: (args not [(or [3]) = (or [[1], [2], [0]])]) then (~(or [3]) = (and [3])) Argo: 19 <- 15 . conjunct 0 of 3 Argo: 4 <- 19 . clause [~1] Argo: 16 <- 0 4 . unit-resolution 1 Argo: 23 <- 15 . conjunct 1 of 3 Argo: 8 <- 23 . clause [~2] Argo: 20 <- 16 8 . unit-resolution 2 Argo: 27 <- 15 . conjunct 2 of 3 Argo: 12 <- 27 . clause [~3] Argo: 24 <- 20 12 . unit-resolution 3 Argo: replayed the proof in 0 ms Argo: using these propositions: \ (Q1 \ P \ Q2 \ False \ Q3 \ (Q4 \ P) \ False) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(and [3]) = (and [[1], [0], [2]]), (or [5]) = (or [[3], [1], [2]])]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [3]) = (or [3]), _]) then ((or ... p(0) ... ~p(3) ...) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ (Q1 \ (Q2 \ True \ Q3) \ Q4) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(or ... T(2) ...) = T]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: P \ Q \ P \ \ Q \ P \ R \ P \ \ R \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args or [_, args or [(and [2]) = (and [[1], [0]]), args or [_, (and [2]) = (and [[1], [0]])]]]) then ((or [4]) = (or [[1], [3], [0], [2]])) Argo: 0 <- 7 . clause [4, 7, 8, 9] Argo: 63 <- . tautology: and (1, 2) Argo: 48 <- 63 . clause [~4, 3] Argo: 67 <- . axiom 1 Argo: 52 <- 67 . clause [~3] Argo: 56 <- 48 52 . unit-resolution 3 Argo: 72 <- 0 56 . unit-resolution 4 Argo: 47 <- . tautology: and (1, 2) Argo: 36 <- 47 . clause [~7, 3] Argo: 60 <- 36 52 . unit-resolution 3 Argo: 76 <- 72 60 . unit-resolution 7 Argo: 27 <- . tautology: and (0, 2) Argo: 20 <- 27 . clause [~8, 3] Argo: 64 <- 20 52 . unit-resolution 3 Argo: 80 <- 76 64 . unit-resolution 8 Argo: 15 <- . tautology: and (0, 2) Argo: 8 <- 15 . clause [~9, 3] Argo: 68 <- 8 52 . unit-resolution 3 Argo: 84 <- 80 68 . unit-resolution 9 Argo: replayed the proof in 1 ms Argo: using these propositions: P = True \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (p == T) = p Argo: 0 <- 7 . clause [1] Argo: 11 <- . axiom 1 Argo: 4 <- 11 . clause [~1] Argo: 8 <- 0 4 . unit-resolution 1 Argo: replayed the proof in 0 ms Argo: using these propositions: False = P \ \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 11 <- . axiom 1 Argo: 15 <- 11 . rewrite: ~~p = p Argo: 4 <- 15 . clause [1] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (p == F) = ~p Argo: 0 <- 7 . clause [~1] Argo: 8 <- 4 0 . unit-resolution 1 Argo: replayed the proof in 0 ms Argo: using these propositions: P = (\ P) \ Q Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (p == ~p) = F Argo: replayed the proof in 0 ms Argo: using these propositions: (\ P) \ (\ P) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [((~p1 == ~p2) = (p1 == p2)) then ((p == p) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: P \ Q P \ (\ Q) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [1] Argo: 11 <- . axiom 2 Argo: 15 <- 11 . rewrite: (args not [(p1 == p2) = (p2 == p1)]) then (~(p1 == p2) = (~p1 == ~p2)) then ((p1 == p2) = (p2 == p1)) Argo: 8 <- 15 . clause [3] Argo: 27 <- . tautology: ~(p1 == p2) | ~p1 | p2 Argo: 20 <- 27 . clause [~3, ~1, 2] Argo: 24 <- 8 20 . unit-resolution 3 Argo: 28 <- 0 24 . unit-resolution 1 Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~2] Argo: 32 <- 28 4 . unit-resolution 2 Argo: replayed the proof in 0 ms Argo: using these propositions: P = Q \ Q = P \ ((P \ Q) \ (Q \ P)) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 27 <- . axiom 1 Argo: 31 <- 27 . rewrite: (args not [args and [(p1 --> p2) = (~p1 | p2), (p1 --> p2) = (~p1 | p2)]]) then (~(and [2]) = (or [2])) then (args or [(~(or [2]) = (and [2])) then (args and [~~p = p, _]) then ((and [2]) = (and [[1], [0]])), (~(or [2]) = (and [2])) then (args and [~~p = p, _]) then ((and [2]) = (and [[1], [0]]))]) then ((or [2]) = (or [[1], [0]])) Argo: 20 <- 31 . clause [5, 7] Argo: 47 <- . tautology: and (1, 2) Argo: 32 <- 47 . clause [~7, 1] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args or [_, (p1 == p2) = (p2 == p1)]) then ((or [2]) = (or [[1, 0]])) Argo: 0 <- 7 . clause [3] Argo: 19 <- . tautology: ~(p1 == p2) | ~p1 | p2 Argo: 12 <- 19 . clause [~3, ~1, 2] Argo: 43 <- . tautology: and (0, 2) Argo: 28 <- 43 . clause [~7, ~2] Argo: 48 <- 20 28 . unit-resolution 7 Argo: 52 <- 12 48 . unit-resolution 2 Argo: 56 <- 0 52 . unit-resolution 3 Argo: 59 <- . tautology: and (0, 2) Argo: 40 <- 59 . clause [~5, ~1] Argo: 60 <- 56 40 . unit-resolution 5 Argo: 64 <- 32 60 . unit-resolution 1 Argo: 76 <- 20 64 . unit-resolution 7 Argo: 63 <- . tautology: and (1, 2) Argo: 44 <- 63 . clause [~5, 2] Argo: 80 <- 76 44 . unit-resolution 5 Argo: 23 <- . tautology: ~(p1 == p2) | p1 | ~p2 Argo: 16 <- 23 . clause [~3, 1, ~2] Argo: 68 <- 16 60 . unit-resolution 1 Argo: 72 <- 0 68 . unit-resolution 3 Argo: 84 <- 80 72 . unit-resolution 2 Argo: replayed the proof in 1 ms Argo: using these propositions: P = Q Q \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 23 <- . axiom 1 Argo: 27 <- 23 . rewrite: (args not [(p1 == p2) = (p2 == p1)]) then (~(p1 == p2) = (~p1 == ~p2)) Argo: 20 <- 27 . clause [5] Argo: 43 <- . tautology: ~(p1 == p2) | ~p1 | p2 Argo: 47 <- 43 . rewrite: args or [_, ~~p = p, _] Argo: 32 <- 47 . clause [~5, 1, 2] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 15 <- . tautology: ~(p1 == p2) | ~p1 | p2 Argo: 12 <- 15 . clause [~3, ~1, 2] Argo: 40 <- 0 12 . unit-resolution 3 Argo: 51 <- . tautology: ~(p1 == p2) | p1 | ~p2 Argo: 36 <- 51 . clause [~5, ~1, ~2] Argo: 44 <- 40 36 . unit-resolution 2 Argo: 48 <- 20 44 . unit-resolution 5 Argo: 52 <- 32 48 . unit-resolution 1 Argo: 56 <- 20 52 . unit-resolution 5 Argo: 19 <- . tautology: ~(p1 == p2) | p1 | ~p2 Argo: 16 <- 19 . clause [~3, 1, ~2] Argo: 60 <- 0 16 . unit-resolution 3 Argo: 64 <- 60 48 . unit-resolution 1 Argo: 68 <- 56 64 . unit-resolution 2 Argo: replayed the proof in 0 ms Argo: using these propositions: if P then Q else R \ (Q \ R) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (if p1 p2 p2) = ((~p1 | p2) & (p1 | p3) & (p2 | p3)) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [2, 3] Argo: 23 <- . axiom 1 Argo: 27 <- 23 . rewrite: ~(or [2]) = (and [2]) Argo: 31 <- 27 . conjunct 0 of 2 Argo: 12 <- 31 . clause [~2] Argo: 20 <- 8 12 . unit-resolution 2 Argo: 35 <- 27 . conjunct 1 of 2 Argo: 16 <- 35 . clause [~3] Argo: 24 <- 20 16 . unit-resolution 3 Argo: replayed the proof in 0 ms Argo: using these propositions: P \ Q P \ \ Q \ P \ Q \ P \ \ Q \ False Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [1, 2] Argo: 15 <- . axiom 2 Argo: 8 <- 15 . clause [~1, 2] Argo: 19 <- . axiom 3 Argo: 12 <- 19 . clause [~1, ~2] Argo: 16 <- 8 12 . unit-resolution 2 Argo: 24 <- 0 16 . unit-resolution 1 Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: (or [2]) = (or [[1], [0]]) Argo: 4 <- 11 . clause [~2, 1] Argo: 20 <- 4 16 . unit-resolution 1 Argo: 28 <- 24 20 . unit-resolution 2 Argo: replayed the proof in 0 ms Argo: using these propositions: P \ Q \ R P \ Q \ \ R P \ \ Q \ R P \ \ Q \ \ R \ P \ Q \ R \ P \ Q \ \ R \ P \ \ Q \ R \ P \ \ Q \ \ R \ False Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (or [3]) = (or [[0], [1], [2]]) Argo: 0 <- 7 . clause [1, 2, 3] Argo: 35 <- . axiom 4 Argo: 39 <- 35 . rewrite: (or [3]) = (or [[0], [1], [2]]) Argo: 16 <- 39 . clause [~1, 2, 3] Argo: 51 <- . axiom 6 Argo: 55 <- 51 . rewrite: (or [3]) = (or [[0], [1], [2]]) Argo: 24 <- 55 . clause [~1, ~2, 3] Argo: 36 <- 16 24 . unit-resolution 2 Argo: 43 <- . axiom 5 Argo: 47 <- 43 . rewrite: (or [3]) = (or [[0], [2], [1]]) Argo: 20 <- 47 . clause [~1, ~3, 2] Argo: 59 <- . axiom 7 Argo: 63 <- 59 . rewrite: (or [3]) = (or [[0], [1], [2]]) Argo: 28 <- 63 . clause [~1, ~2, ~3] Argo: 32 <- 20 28 . unit-resolution 2 Argo: 40 <- 36 32 . unit-resolution 3 Argo: 64 <- 0 40 . unit-resolution 1 Argo: 19 <- . axiom 2 Argo: 23 <- 19 . rewrite: (or [3]) = (or [[1], [0], [2]]) Argo: 8 <- 23 . clause [~2, 1, 3] Argo: 11 <- . axiom 1 Argo: 15 <- 11 . rewrite: (or [3]) = (or [[2], [0], [1]]) Argo: 4 <- 15 . clause [~3, 1, 2] Argo: 27 <- . axiom 3 Argo: 31 <- 27 . rewrite: (or [3]) = (or [[1], [2], [0]]) Argo: 12 <- 31 . clause [~2, ~3, 1] Argo: 44 <- 12 40 . unit-resolution 1 Argo: 48 <- 4 44 . unit-resolution 2 Argo: 52 <- 48 40 . unit-resolution 1 Argo: 56 <- 8 52 . unit-resolution 3 Argo: 60 <- 56 40 . unit-resolution 1 Argo: 68 <- 64 60 . unit-resolution 2 Argo: 72 <- 68 52 . unit-resolution 3 Argo: replayed the proof in 1 ms Argo: using these propositions: (a \ b \ c \ d) \ (e \ f \ g \ h) \ (i \ j \ k \ l) \ (m \ n \ p \ q) \ ((a \ b \ c \ d) \ (e \ f \ g \ h) \ (i \ j \ k \ l) \ (m \ n \ p \ q)) Argo: starting the prover Argo: found a proof in 1 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [15, 30] Argo: 99 <- . tautology: and (1, 2) Argo: 96 <- 99 . clause [~15, 14] Argo: 95 <- . tautology: and (0, 2) Argo: 92 <- 95 . clause [~15, 7] Argo: 175 <- . axiom 1 Argo: 179 <- 175 . rewrite: (~(or [2]) = (and [2])) then (args and [(~(and [2]) = (or [2])) then (args or [(~(or [2]) = (and [2])) then (args and [~(and [2]) = (or [2]), ~(and [2]) = (or [2])]), (~(or [2]) = (and [2])) then (args and [~(and [2]) = (or [2]), ~(and [2]) = (or [2])])]), (~(and [2]) = (or [2])) then (args or [(~(or [2]) = (and [2])) then (args and [~(and [2]) = (or [2]), ~(and [2]) = (or [2])]), (~(or [2]) = (and [2])) then (args and [~(and [2]) = (or [2]), ~(and [2]) = (or [2])])])]) Argo: 183 <- 179 . conjunct 0 of 2 Argo: 172 <- 183 . clause [37, 44] Argo: 195 <- . tautology: and (1, 2) Argo: 184 <- 195 . clause [~44, 43] Argo: 191 <- . tautology: and (0, 2) Argo: 180 <- 191 . clause [~44, 40] Argo: 111 <- . tautology: or 2 Argo: 108 <- 111 . clause [~14, 10, 13] Argo: 135 <- . tautology: and (1, 2) Argo: 132 <- 135 . clause [~10, 9] Argo: 131 <- . tautology: and (0, 2) Argo: 128 <- 131 . clause [~10, 8] Argo: 235 <- . tautology: or 2 Argo: 208 <- 235 . clause [~40, ~8, ~9] Argo: 340 <- 128 208 . unit-resolution 8 Argo: 344 <- 132 340 . unit-resolution 9 Argo: 388 <- 108 344 . unit-resolution 10 Argo: 123 <- . tautology: and (1, 2) Argo: 120 <- 123 . clause [~13, 12] Argo: 119 <- . tautology: and (0, 2) Argo: 116 <- 119 . clause [~13, 11] Argo: 215 <- . tautology: or 2 Argo: 196 <- 215 . clause [~43, ~11, ~12] Argo: 332 <- 116 196 . unit-resolution 11 Argo: 336 <- 120 332 . unit-resolution 12 Argo: 392 <- 388 336 . unit-resolution 13 Argo: 396 <- 180 392 . unit-resolution 40 Argo: 400 <- 184 396 . unit-resolution 43 Argo: 404 <- 172 400 . unit-resolution 44 Argo: 247 <- . tautology: and (1, 2) Argo: 220 <- 247 . clause [~37, 36] Argo: 243 <- . tautology: and (0, 2) Argo: 216 <- 243 . clause [~37, 33] Argo: 147 <- . tautology: or 2 Argo: 144 <- 147 . clause [~7, 3, 6] Argo: 171 <- . tautology: and (1, 2) Argo: 168 <- 171 . clause [~3, 2] Argo: 167 <- . tautology: and (0, 2) Argo: 164 <- 167 . clause [~3, 1] Argo: 287 <- . tautology: or 2 Argo: 244 <- 287 . clause [~33, ~1, ~2] Argo: 364 <- 164 244 . unit-resolution 1 Argo: 368 <- 168 364 . unit-resolution 2 Argo: 372 <- 144 368 . unit-resolution 3 Argo: 159 <- . tautology: and (1, 2) Argo: 156 <- 159 . clause [~6, 5] Argo: 155 <- . tautology: and (0, 2) Argo: 152 <- 155 . clause [~6, 4] Argo: 267 <- . tautology: or 2 Argo: 232 <- 267 . clause [~36, ~4, ~5] Argo: 324 <- 152 232 . unit-resolution 4 Argo: 328 <- 156 324 . unit-resolution 5 Argo: 376 <- 372 328 . unit-resolution 6 Argo: 380 <- 216 376 . unit-resolution 33 Argo: 384 <- 220 380 . unit-resolution 36 Argo: 408 <- 404 384 . unit-resolution 37 Argo: 412 <- 92 408 . unit-resolution 7 Argo: 416 <- 96 412 . unit-resolution 14 Argo: 420 <- 0 416 . unit-resolution 15 Argo: 15 <- . tautology: and (1, 2) Argo: 12 <- 15 . clause [~30, 29] Argo: 424 <- 420 12 . unit-resolution 30 Argo: 27 <- . tautology: or 2 Argo: 24 <- 27 . clause [~29, 25, 28] Argo: 488 <- 424 24 . unit-resolution 29 Argo: 291 <- 179 . conjunct 1 of 2 Argo: 248 <- 291 . clause [51, 58] Argo: 355 <- . tautology: and (1, 2) Argo: 296 <- 355 . clause [~51, 50] Argo: 351 <- . tautology: and (0, 2) Argo: 292 <- 351 . clause [~51, 47] Argo: 11 <- . tautology: and (0, 2) Argo: 8 <- 11 . clause [~30, 22] Argo: 428 <- 420 8 . unit-resolution 30 Argo: 63 <- . tautology: or 2 Argo: 60 <- 63 . clause [~22, 18, 21] Argo: 87 <- . tautology: and (1, 2) Argo: 84 <- 87 . clause [~18, 17] Argo: 83 <- . tautology: and (0, 2) Argo: 80 <- 83 . clause [~18, 16] Argo: 395 <- . tautology: or 2 Argo: 320 <- 395 . clause [~47, ~16, ~17] Argo: 440 <- 80 320 . unit-resolution 16 Argo: 444 <- 84 440 . unit-resolution 17 Argo: 448 <- 60 444 . unit-resolution 18 Argo: 452 <- 428 448 . unit-resolution 22 Argo: 75 <- . tautology: and (1, 2) Argo: 72 <- 75 . clause [~21, 20] Argo: 71 <- . tautology: and (0, 2) Argo: 68 <- 71 . clause [~21, 19] Argo: 375 <- . tautology: or 2 Argo: 308 <- 375 . clause [~50, ~19, ~20] Argo: 432 <- 68 308 . unit-resolution 19 Argo: 436 <- 72 432 . unit-resolution 20 Argo: 456 <- 452 436 . unit-resolution 21 Argo: 460 <- 292 456 . unit-resolution 47 Argo: 464 <- 296 460 . unit-resolution 50 Argo: 468 <- 248 464 . unit-resolution 51 Argo: 299 <- . tautology: and (0, 2) Argo: 256 <- 299 . clause [~58, 54] Argo: 476 <- 468 256 . unit-resolution 58 Argo: 51 <- . tautology: and (1, 2) Argo: 48 <- 51 . clause [~25, 24] Argo: 47 <- . tautology: and (0, 2) Argo: 44 <- 47 . clause [~25, 23] Argo: 343 <- . tautology: or 2 Argo: 284 <- 343 . clause [~54, ~23, ~24] Argo: 348 <- 44 284 . unit-resolution 23 Argo: 352 <- 48 348 . unit-resolution 24 Argo: 484 <- 476 352 . unit-resolution 54 Argo: 492 <- 488 484 . unit-resolution 25 Argo: 303 <- . tautology: and (1, 2) Argo: 260 <- 303 . clause [~58, 57] Argo: 472 <- 468 260 . unit-resolution 58 Argo: 39 <- . tautology: and (1, 2) Argo: 36 <- 39 . clause [~28, 27] Argo: 35 <- . tautology: and (0, 2) Argo: 32 <- 35 . clause [~28, 26] Argo: 323 <- . tautology: or 2 Argo: 272 <- 323 . clause [~57, ~26, ~27] Argo: 356 <- 32 272 . unit-resolution 26 Argo: 360 <- 36 356 . unit-resolution 27 Argo: 480 <- 472 360 . unit-resolution 57 Argo: 496 <- 492 480 . unit-resolution 28 Argo: replayed the proof in 1548 ms Argo: using these propositions: ((((((((P = P) = P) = P) = P) = P) = P) = P) = P) \ P Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args iff [(args iff [(args iff [(args iff [(args iff [(args iff [(args iff [(args iff [(p == p) = T, _]) then ((p == T) = p), _]) then ((p == p) = T), _]) then ((p == T) = p), _]) then ((p == p) = T), _]) then ((p == T) = p), _]) then ((p == p) = T), _]) then ((p == T) = p), _]) then ((p == p) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a \ b \ c \ d e \ f \ a \ d \ (a \ c \ \ c) \ b \ (b \ (x \ \ x)) \ c \ (d \ False) \ c \ (c \ \ p \ (p \ q \ \ q)) \ False Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (or [4]) = (or [[0], [1], [2], [3]]) Argo: 0 <- 7 . clause [1, 2, 3, 4] Argo: 47 <- . axiom 4 Argo: 51 <- 47 . rewrite: args or [args not [(or [2]) = (or [[0]])], _] Argo: 28 <- 51 . clause [~4, 3] Argo: 55 <- . axiom 5 Argo: 59 <- 55 . rewrite: args not [(args or [_, (args and [_, (args or [_, (and ... p(0) ... ~p(1) ...) = F]) then ((or [2]) = (or [[0]]))]) then ((and ... p(0) ... ~p(1) ...) = F)]) then ((or [2]) = (or [[0]]))] Argo: 32 <- 59 . clause [~3] Argo: 36 <- 28 32 . unit-resolution 3 Argo: 48 <- 0 36 . unit-resolution 4 Argo: 52 <- 48 32 . unit-resolution 3 Argo: 39 <- . axiom 3 Argo: 43 <- 39 . rewrite: args or [args not [(args and [_, (or ... p(0) ... ~p(1) ...) = T]) then ((and [2]) = (and [[0]]))], _] Argo: 24 <- 43 . clause [~2, 3] Argo: 40 <- 24 32 . unit-resolution 3 Argo: 56 <- 52 40 . unit-resolution 2 Argo: 31 <- . axiom 2 Argo: 35 <- 31 . rewrite: args or [args not [(args or [_, (and ... p(0) ... ~p(1) ...) = F]) then ((or [2]) = (or [[0]]))], _] Argo: 20 <- 35 . clause [~1, 2] Argo: 60 <- 56 20 . unit-resolution 1 Argo: 64 <- 60 40 . unit-resolution 2 Argo: replayed the proof in 1 ms Argo: using these propositions: (True \ True \ True) \ True Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args iff [(and [3]) = (and [[0]]), _]) then ((p == T) = p)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: (False \ False \ False) \ False Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args iff [(or [3]) = (or [[0]]), _]) then ((p == F) = ~p) then (~F = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: t \ t Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(e = e) = T]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: t = u u \ t Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: args not [(e1 = e2) = (e2 = e1)] Argo: 4 <- 11 . clause [~3] Argo: 8 <- 0 4 . unit-resolution 3 Argo: replayed the proof in 0 ms Argo: using these propositions: s = t t = u s \ u Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [5] Argo: 5 <- 0 4 . transitivity Argo: 13 <- 5 . lemma [6] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [~6] Argo: 12 <- 13 8 . unit-resolution 6 Argo: replayed the proof in 0 ms Argo: using these propositions: s = t t = u u = v u = s s \ v Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [5] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [7] Argo: 5 <- 4 8 . transitivity Argo: 9 <- 0 5 . transitivity Argo: 17 <- 9 . lemma [9] Argo: 23 <- . axiom 4 Argo: 16 <- 23 . clause [~9] Argo: 20 <- 17 16 . unit-resolution 9 Argo: replayed the proof in 0 ms Argo: using these propositions: s = t t = u s = v v = w w \ u Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [5] Argo: 9 <- 4 . symmetry Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 5 <- 0 . symmetry Argo: 17 <- 9 5 . transitivity Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [7] Argo: 21 <- 17 8 . transitivity Argo: 15 <- . axiom 3 Argo: 12 <- 15 . clause [9] Argo: 25 <- 21 12 . transitivity Argo: 29 <- 25 . lemma [10] Argo: 19 <- . axiom 4 Argo: 23 <- 19 . rewrite: args not [(e1 = e2) = (e2 = e1)] Argo: 16 <- 23 . clause [~10] Argo: 20 <- 29 16 . unit-resolution 10 Argo: replayed the proof in 0 ms Argo: using these propositions: s = t t = u a = b b = c \ (s = a \ c = u) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . axiom 4 Argo: 23 <- 19 . rewrite: (args not [(args imp [(e1 = e2) = (e2 = e1), _]) then ((p1 --> p2) = (~p1 | p2))]) then (~(or [2]) = (and [2])) then (args and [~~p = p, _]) then ((and [2]) = (and [[1], [0]])) Argo: 31 <- 23 . conjunct 1 of 2 Argo: 20 <- 31 . clause [12] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [8] Argo: 15 <- . axiom 3 Argo: 12 <- 15 . clause [10] Argo: 5 <- 8 12 . transitivity Argo: 27 <- 23 . conjunct 0 of 2 Argo: 16 <- 27 . clause [~11] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [5] Argo: 21 <- 4 . symmetry Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 17 <- 0 . symmetry Argo: 29 <- 21 17 . transitivity Argo: 33 <- 16 29 . transitivity Argo: 37 <- 5 33 . transitivity Argo: 41 <- 37 . lemma [~12] Argo: 24 <- 20 41 . unit-resolution 12 Argo: replayed the proof in 0 ms Argo: using these propositions: a = b \ b = c \ a = d \ d = c a \ c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: args or [_, args and [_, (e1 = e2) = (e2 = e1)]] Argo: 0 <- 7 . clause [6, 10] Argo: 19 <- . tautology: and (1, 2) Argo: 12 <- 19 . clause [~10, 9] Argo: 15 <- . tautology: and (0, 2) Argo: 8 <- 15 . clause [~10, 8] Argo: 35 <- . axiom 1 Argo: 28 <- 35 . clause [~11] Argo: 5 <- . hypothesis 9 Argo: 17 <- 28 5 . transitivity Argo: 21 <- 17 . lemma [~8] Argo: 32 <- 8 21 . unit-resolution 8 Argo: 36 <- 12 32 . unit-resolution 9 Argo: 40 <- 0 36 . unit-resolution 10 Argo: 27 <- . tautology: and (0, 2) Argo: 20 <- 27 . clause [~6, 3] Argo: 48 <- 40 20 . unit-resolution 6 Argo: 31 <- . tautology: and (1, 2) Argo: 24 <- 31 . clause [~6, 5] Argo: 44 <- 40 24 . unit-resolution 6 Argo: 33 <- 44 . symmetry Argo: 41 <- 28 33 . transitivity Argo: 45 <- 41 . lemma [~3] Argo: 52 <- 48 45 . unit-resolution 3 Argo: replayed the proof in 1 ms Argo: using these propositions: a = b1 \ (b1 = b2 \ b2 = b3 \ b1 = b4 \ b4 = b3) \ b3 = c \ a = d \ d = c a \ c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args or [(args and [_, args and [args or [_, args and [_, (e1 = e2) = (e2 = e1)]], (e1 = e2) = (e2 = e1)]]) then ((and [3]) = (and [[1], [0], [2]])), args and [_, (e1 = e2) = (e2 = e1)]]) then ((or [2]) = (or [[1], [0]])) Argo: 0 <- 7 . clause [6, 20] Argo: 23 <- . tautology: and (2, 3) Argo: 16 <- 23 . clause [~20, 19] Argo: 19 <- . tautology: and (1, 3) Argo: 12 <- 19 . clause [~20, 18] Argo: 15 <- . tautology: and (0, 3) Argo: 8 <- 15 . clause [~20, 17] Argo: 35 <- . tautology: or 2 Argo: 28 <- 35 . clause [~17, 12, 16] Argo: 59 <- . tautology: and (1, 2) Argo: 52 <- 59 . clause [~12, 11] Argo: 55 <- . tautology: and (0, 2) Argo: 48 <- 55 . clause [~12, 9] Argo: 53 <- . hypothesis 18 Argo: 57 <- 53 . symmetry Argo: 75 <- . axiom 1 Argo: 68 <- 75 . clause [~21] Argo: 65 <- . hypothesis 19 Argo: 69 <- . hypothesis 11 Argo: 73 <- 69 . symmetry Argo: 81 <- 65 73 . transitivity Argo: 89 <- 68 81 . transitivity Argo: 93 <- 57 89 . transitivity Argo: 97 <- 93 . lemma [~9] Argo: 80 <- 48 97 . unit-resolution 9 Argo: 84 <- 52 80 . unit-resolution 11 Argo: 88 <- 28 84 . unit-resolution 12 Argo: 47 <- . tautology: and (1, 2) class bit_representation = type + fixes bits_of :: "'a \ bool list" and of_bits :: "bool list \ 'a" assumes "of_bits_of": "\a. of_bits (bits_of a) = a" Argo: 40 <- 47 . clause [~16, 15] Argo: 43 <- . tautology: and (0, 2) Argo: 36 <- 43 . clause [~16, 14] Argo: 5 <- . hypothesis 18 Argo: 9 <- 5 . symmetry Argo: 17 <- . hypothesis 19 Argo: 21 <- . hypothesis 15 Argo: 29 <- 17 21 . transitivity Argo: 37 <- 68 29 . transitivity Argo: 41 <- 9 37 . transitivity Argo: 45 <- 41 . lemma [~14] Argo: 72 <- 36 45 . unit-resolution 14 Argo: 76 <- 40 72 . unit-resolution 15 Argo: 92 <- 88 76 . unit-resolution 16 Argo: 96 <- 8 92 . unit-resolution 17 Argo: 100 <- 12 96 . unit-resolution 18 Argo: 104 <- 16 100 . unit-resolution 19 Argo: 108 <- 0 104 . unit-resolution 20 Argo: 67 <- . tautology: and (0, 2) Argo: 60 <- 67 . clause [~6, 3] instantiation nat :: bit_representation bits_of_nat == bits_of :: nat \ bool list of_bits_nat == of_bits :: bool list \ nat Argo: 116 <- 108 60 . unit-resolution 6 Argo: 71 <- . tautology: and (1, 2) Argo: 64 <- 71 . clause [~6, 5] Argo: 112 <- 108 64 . unit-resolution 6 Argo: 113 <- 68 112 . transitivity Argo: 117 <- 113 . lemma [~3] Argo: 120 <- 116 117 . unit-resolution 3 Argo: replayed the proof in 4 ms Argo: using these propositions: (if True then a else b) \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(if T t1 t2) = t1, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: (if False then a else b) \ b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(if F t1 t2) = t2, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: (if \ True then a else b) \ b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args ite [~T = F, _, _]) then ((if F t1 t2) = t2), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: (if \ False then a else b) \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args ite [~F = T, _, _]) then ((if T t1 t2) = t1), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: (if P then a else a) \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(if p t t) = t, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: P a = c (if P then a else b) \ c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [1] Argo: 15 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 16 <- 15 . clause [~1, 9] Argo: 20 <- 0 16 . unit-resolution 1 Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [~7] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [4] Argo: 9 <- 4 . symmetry Argo: 17 <- 8 9 . transitivity Argo: 21 <- 17 . lemma [~9] Argo: 24 <- 20 21 . unit-resolution 9 Argo: replayed the proof in 0 ms Argo: using these propositions: \ P b = c (if P then a else b) \ c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . tautology: p | (ite p t1 t2) = t2 Argo: 12 <- 19 . clause [1, 8] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~1] Argo: 16 <- 12 0 . unit-resolution 1 Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [~7] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [4] Argo: 9 <- 4 . symmetry Argo: 17 <- 8 9 . transitivity Argo: 21 <- 17 . lemma [~8] Argo: 24 <- 16 21 . unit-resolution 8 Argo: replayed the proof in 0 ms Argo: using these propositions: P Q a = d (if P then if Q then a else b else c) \ d Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [1] Argo: 19 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 32 <- 19 . clause [~1, 14] Argo: 36 <- 0 32 . unit-resolution 1 Argo: 15 <- . axiom 3 Argo: 12 <- 15 . clause [~10] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [5] Argo: 13 <- 8 . symmetry Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [2] Argo: 27 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 20 <- 27 . clause [~2, 12] Argo: 24 <- 4 20 . unit-resolution 2 Argo: 9 <- 24 . symmetry Argo: 21 <- 13 9 . transitivity Argo: 25 <- 12 21 . transitivity Argo: 29 <- 25 . lemma [~14] Argo: 40 <- 36 29 . unit-resolution 14 Argo: replayed the proof in 0 ms Argo: using these propositions: a \ b b = c \ a \ c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 11 <- . axiom 2 Argo: 15 <- 11 . rewrite: ~~p = p Argo: 8 <- 15 . clause [6] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [5] Argo: 13 <- 0 4 . transitivity Argo: 17 <- 13 . lemma [~6] Argo: 12 <- 8 17 . unit-resolution 6 Argo: replayed the proof in 0 ms Argo: using these propositions: a \ b a = c \ c \ b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 11 <- . axiom 2 Argo: 15 <- 11 . rewrite: (args not [args not [(e1 = e2) = (e2 = e1)]]) then (~~p = p) Argo: 8 <- 15 . clause [6] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 1 <- 0 . symmetry Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [5] Argo: 17 <- 1 4 . transitivity Argo: 21 <- 17 . lemma [~6] Argo: 12 <- 8 21 . unit-resolution 6 Argo: replayed the proof in 0 ms Argo: using these propositions: a = b c = d b \ d \ a \ c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 15 <- . axiom 3 Argo: 19 <- 15 . rewrite: ~~p = p Argo: 12 <- 19 . clause [8] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [~7] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [6] Argo: 13 <- 4 . symmetry Argo: 21 <- 8 13 . transitivity Argo: 25 <- 0 21 . transitivity Argo: 29 <- 25 . lemma [~8] Argo: 16 <- 12 29 . unit-resolution 8 Argo: replayed the proof in 0 ms Argo: using these propositions: a = b c = d d \ b \ a \ c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . axiom 3 Argo: 23 <- 19 . rewrite: ~~p = p Argo: 12 <- 23 . clause [8] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 11 <- . axiom 2 Argo: 15 <- 11 . rewrite: args not [(e1 = e2) = (e2 = e1)] Argo: 8 <- 15 . clause [~7] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [6] Argo: 13 <- 4 . symmetry Argo: 21 <- 8 13 . transitivity Argo: 25 <- 0 21 . transitivity Argo: 29 <- 25 . lemma [~8] Argo: 16 <- 12 29 . unit-resolution 8 Argo: replayed the proof in 0 ms Argo: using these propositions: a = b c = d b \ d \ c \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 15 <- . axiom 3 Argo: 19 <- 15 . rewrite: (args not [args not [(e1 = e2) = (e2 = e1)]]) then (~~p = p) Argo: 12 <- 19 . clause [8] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [~7] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [6] Argo: 13 <- 4 . symmetry Argo: 21 <- 8 13 . transitivity Argo: 25 <- 0 21 . transitivity Argo: 29 <- 25 . lemma [~8] Argo: 16 <- 12 29 . unit-resolution 8 Argo: replayed the proof in 0 ms Argo: using these propositions: a = b c = d d \ b \ c \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . axiom 3 Argo: 23 <- 19 . rewrite: (args not [args not [(e1 = e2) = (e2 = e1)]]) then (~~p = p) Argo: 12 <- 23 . clause [8] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 11 <- . axiom 2 Argo: 15 <- 11 . rewrite: args not [(e1 = e2) = (e2 = e1)] Argo: 8 <- 15 . clause [~7] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [6] Argo: 13 <- 4 . symmetry Argo: 21 <- 8 13 . transitivity Argo: 25 <- 0 21 . transitivity Argo: 29 <- 25 . lemma [~8] Argo: 16 <- 12 29 . unit-resolution 8 Argo: replayed the proof in 0 ms Argo: using these propositions: a \ b b = c b = d d = e a = f \ f \ e Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 23 <- . axiom 5 Argo: 27 <- 23 . rewrite: (args not [args not [(e1 = e2) = (e2 = e1)]]) then (~~p = p) Argo: 20 <- 27 . clause [12] Argo: 19 <- . axiom 4 Argo: 16 <- 19 . clause [11] Argo: 5 <- 16 . symmetry Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [7] Argo: 15 <- . axiom 3 Argo: 12 <- 15 . clause [9] Argo: 21 <- 8 12 . transitivity Argo: 25 <- 0 21 . transitivity Argo: 29 <- 5 25 . transitivity Argo: 33 <- 29 . symmetry Argo: 37 <- 33 . lemma [~12] Argo: 24 <- 20 37 . unit-resolution 12 Argo: replayed the proof in 0 ms Argo: using these propositions: a = b f a \ f b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 5 <- . reflexivity Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 13 <- 0 . symmetry Argo: 21 <- 5 13 . congruence Argo: 25 <- 21 . symmetry Argo: 33 <- 25 . lemma [7] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~7] Argo: 8 <- 33 4 . unit-resolution 7 Argo: replayed the proof in 0 ms Argo: using these propositions: f a = f b b = c f a \ f c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [6] Argo: 1 <- . reflexivity Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [8] Argo: 9 <- 4 . symmetry Argo: 17 <- 1 9 . congruence Argo: 21 <- 17 . symmetry Argo: 29 <- 0 21 . transitivity Argo: 37 <- 29 . lemma [10] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [~10] Argo: 12 <- 37 8 . unit-resolution 10 Argo: replayed the proof in 0 ms Argo: using these propositions: f a = a f (f a) \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 1 <- . reflexivity Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [4] Argo: 9 <- 0 . symmetry Argo: 17 <- 1 9 . congruence Argo: 21 <- 17 . symmetry Argo: 29 <- 21 0 . transitivity Argo: 37 <- 29 . lemma [6] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~6] Argo: 8 <- 37 4 . unit-resolution 6 Argo: replayed the proof in 0 ms Argo: using these propositions: a = b g (f a) \ g (f b) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 1 <- . reflexivity Argo: 9 <- . reflexivity Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 17 <- 0 . symmetry Argo: 25 <- 9 17 . congruence Argo: 29 <- 25 . symmetry Argo: 37 <- 1 29 . congruence Argo: 49 <- 37 . lemma [10] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~10] Argo: 8 <- 49 4 . unit-resolution 10 Argo: replayed the proof in 0 ms Argo: using these propositions: f a = b g b = a f (g (f a)) \ b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 1 <- . reflexivity Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [8] Argo: 5 <- 4 . symmetry Argo: 9 <- . reflexivity Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [5] Argo: 17 <- 0 . symmetry Argo: 25 <- 9 17 . congruence Argo: 33 <- 5 25 . transitivity Argo: 41 <- 1 33 . congruence Argo: 45 <- 41 . symmetry Argo: 53 <- 45 0 . transitivity Argo: 61 <- 53 . lemma [11] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [~11] Argo: 12 <- 61 8 . unit-resolution 11 Argo: replayed the proof in 0 ms Argo: using these propositions: a = b g a b \ g b a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 5 <- . reflexivity Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 13 <- 0 . symmetry Argo: 21 <- 5 13 . congruence Argo: 25 <- 21 . symmetry Argo: 37 <- 0 . symmetry Argo: 45 <- 25 37 . congruence Argo: 57 <- 45 . lemma [9] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~9] Argo: 8 <- 57 4 . unit-resolution 9 Argo: replayed the proof in 0 ms Argo: using these propositions: f a = b g (f a) b \ g b (f a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 5 <- . reflexivity Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [5] Argo: 13 <- 0 . symmetry Argo: 21 <- 5 13 . congruence Argo: 25 <- 21 . symmetry Argo: 37 <- 0 . symmetry Argo: 45 <- 25 37 . congruence Argo: 57 <- 45 . lemma [11] Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~11] Argo: 8 <- 57 4 . unit-resolution 11 Argo: replayed the proof in 0 ms Argo: using these propositions: c = d e = c e = b b = h f g h = d f g d = a a \ b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 31 <- . axiom 5 Argo: 20 <- 31 . clause [17] Argo: 53 <- 20 . symmetry Argo: 13 <- . reflexivity Argo: 23 <- . axiom 3 Argo: 12 <- 23 . clause [9] Argo: 17 <- 12 . symmetry Argo: 15 <- . axiom 2 Argo: 19 <- 15 . rewrite: (e1 = e2) = (e2 = e1) Argo: 8 <- 19 . clause [7] Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: (e1 = e2) = (e2 = e1) Argo: 4 <- 11 . clause [5] Argo: 21 <- 4 . symmetry Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 29 <- 21 0 . transitivity Argo: 33 <- 8 29 . transitivity Argo: 37 <- 17 33 . transitivity Argo: 45 <- 13 37 . congruence Argo: 49 <- 45 . symmetry Argo: 61 <- 53 49 . transitivity Argo: 27 <- . axiom 4 Argo: 16 <- 27 . clause [14] Argo: 65 <- 61 16 . transitivity Argo: 9 <- 0 . symmetry Argo: 69 <- 65 9 . transitivity Argo: 73 <- 69 4 . transitivity Argo: 5 <- 8 . symmetry Argo: 77 <- 73 5 . transitivity Argo: 81 <- 77 . lemma [18] Argo: 35 <- . axiom 6 Argo: 24 <- 35 . clause [~18] Argo: 28 <- 81 24 . unit-resolution 18 Argo: replayed the proof in 0 ms Argo: using these propositions: P a a = b \ P b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 1 <- . reflexivity Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [5] Argo: 13 <- 0 1 4 . substitution Argo: 17 <- 13 . lemma [6] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [~6] Argo: 12 <- 17 8 . unit-resolution 6 Argo: replayed the proof in 0 ms Found termination order: "size <*mlex*> {}" Argo: using these propositions: \ P a a = b \ \ P b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 11 <- . axiom 2 Argo: 15 <- 11 . rewrite: ~~p = p Argo: 8 <- 15 . clause [6] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 1 <- . reflexivity Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [5] Argo: 13 <- 0 1 4 . substitution Argo: 17 <- 13 . lemma [~6] Argo: 12 <- 8 17 . unit-resolution 6 Argo: replayed the proof in 0 ms Argo: using these propositions: P a b a = c b = d \ P c d Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [5] Argo: 5 <- . reflexivity Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [7] Argo: 13 <- 4 . symmetry Argo: 21 <- 5 13 . congruence Argo: 25 <- 21 . symmetry Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [9] Argo: 41 <- 0 25 8 . substitution Argo: 45 <- 41 . lemma [11] Argo: 15 <- . axiom 3 Argo: 12 <- 15 . clause [~11] Argo: 16 <- 45 12 . unit-resolution 11 Argo: replayed the proof in 0 ms Argo: using these propositions: \ P a b a = c b = d \ \ P c d Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 15 <- . axiom 3 Argo: 19 <- 15 . rewrite: ~~p = p Argo: 12 <- 19 . clause [11] Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~5] Argo: 5 <- . reflexivity Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [7] Argo: 13 <- 4 . symmetry Argo: 21 <- 5 13 . congruence Argo: 25 <- 21 . symmetry Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [9] Argo: 41 <- 0 25 8 . substitution Argo: 45 <- 41 . lemma [~11] Argo: 16 <- 12 45 . unit-resolution 11 Argo: replayed the proof in 0 ms Argo: using these propositions: - a \ - 1 * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [-e = -1 * e, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: - (- a) \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args neg [-e = -1 * e]) then (-e = -1 * e) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a - b \ a + - 1 * b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e1 - e2 = e1 + -1 * e2, args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]]]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a - - b \ a + b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args sub [_, -e = -1 * e]) then (e1 - e2 = e1 + -1 * e2) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms instantiation int :: bit_representation bits_of_int == bits_of :: int \ bool list of_bits_int == of_bits :: bool list \ int Argo: using these propositions: 2 * 3 \ 6 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [2 * 3 = 6, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: 0 * a \ 0 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [0 * e = 0, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * 0 \ 0 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(e1 * e2 = e2 * e1) then (0 * e = 0), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: 1 * a \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [1 * e = e, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * 1 \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(e1 * e2 = e2 * e1) then (1 * e = e), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: 2 * a \ a * 2 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [_, e1 * e2 = e2 * e1]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: 2 * a * 3 \ 6 * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(e1 * e2 = e2 * e1) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [3 * 2 = 6, _]), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: 2 * a * 3 * 5 \ 30 * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args mul [(e1 * e2 = e2 * e1) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [3 * 2 = 6, _]), _]) then (e1 * e2 = e2 * e1) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [5 * 6 = 30, _]), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: 2 * (a * (3 * 5)) \ 30 * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args mul [_, (args mul [_, 3 * 5 = 15]) then (e1 * e2 = e2 * e1)]) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [2 * 15 = 30, _]), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: a * 0 * b \ 0 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args mul [(e1 * e2 = e2 * e1) then (0 * e = 0), _]) then (0 * e = 0), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * (0 * b) \ 0 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args mul [_, 0 * e = 0]) then (e1 * e2 = e2 * e1) then (0 * e = 0), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * b \ b * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [_, e1 * e2 = e2 * e1]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * b * a \ b * a * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [((e1 * e2) * e3 = e1 * (e2 * e3)) then (args mul [_, e1 * e2 = e2 * e1]), (args mul [e1 * e2 = e2 * e1, _]) then ((e1 * e2) * e3 = e1 * (e2 * e3)) then (args mul [_, e1 * e2 = e2 * e1])]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * (b * c) \ a * b * c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [_, (e1 * e2) * e3 = e1 * (e2 * e3)]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * (b * (c * d)) \ a * b * c * d Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [_, (args mul [(e1 * e2) * e3 = e1 * (e2 * e3), _]) then ((e1 * e2) * e3 = e1 * (e2 * e3)) then (args mul [_, (e1 * e2) * e3 = e1 * (e2 * e3)])]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * (b * (c * d)) \ d * c * b * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [_, (args mul [(args mul [e1 * e2 = e2 * e1, _]) then ((e1 * e2) * e3 = e1 * (e2 * e3)) then (args mul [_, e1 * e2 = e2 * e1]) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [e1 * e2 = e2 * e1, _]) then ((e1 * e2) * e3 = e1 * (e2 * e3)), _]) then ((e1 * e2) * e3 = e1 * (e2 * e3)) then (args mul [_, ((e1 * e2) * e3 = e1 * (e2 * e3)) then (args mul [_, e1 * e2 = e2 * e1]) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [e1 * e2 = e2 * e1, _]) then ((e1 * e2) * e3 = e1 * (e2 * e3))]) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [e1 * e2 = e2 * e1, _]) then ((e1 * e2) * e3 = e1 * (e2 * e3))]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * (b + c + d) \ a * b + a * c + a * d Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args mul [_, e0 + e1 + e2 = e0 + e1 + e2]) then (e * (e1 + ... + em) = e * e1 + ... e * em), e0 + e1 + e2 = e0 + e1 + e2]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: (a + b + c) * d \ a * d + b * d + c * d Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args mul [e0 + e1 + e2 = e0 + e1 + e2, _]) then ((e1 + ... + em) * e = e1 * e + ... em * e), e0 + e1 + e2 = e0 + e1 + e2]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Found termination order: "size_list size <*mlex*> {}" Argo: using these propositions: 6 / 2 \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [6 / 2 = 3, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: a / 0 \ a / 0 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(e = e) = T]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ a / 0 \ a / 0 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e0 = 0), _]) then ((n1 <= n2) = true)]) then (~T = F) Argo: replayed the proof in 0 ms ### theory "HOL-ex.Serbian" ### 9.912s elapsed time, 51.536s cpu time, 15.612s GC time Argo: using these propositions: \ \ a / 0 < a / 0 Argo: starting the prover Loading theory "HOL-ex.Ballot" Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args not [((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e0 = 0), _]) then ((n1 < n2) = false)]) then (~F = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: 0 / a \ 0 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [0 / e = 0, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a / 1 \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e / 1 = e, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a / 3 \ 1 / 3 * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e / 3 = 1/3 * e, args mul [1 / 3 = 1/3, _]]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: 6 * a / 2 \ 3 * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [((6 * e1) / e2 = 6 * (e1 / e2)) then (args mul [_, e / 2 = 1/2 * e]) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [6 * 1/2 = 3, _]), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: 6 * a / 2 \ 3 * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [((6 * e1) / e2 = 6 * (e1 / e2)) then (args mul [_, e / 2 = 1/2 * e]) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [6 * 1/2 = 3, _]), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: a / (5 * b / 2) \ 2 / 5 * a / b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args div [_, ((5 * e1) / e2 = 5 * (e1 / e2)) then (args mul [_, e / 2 = 1/2 * e]) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [5 * 1/2 = 5/2, _])]) then (e1 / (5/2 * e2) = 2/5 * (e1 / e2)), (args div [args mul [2 / 5 = 2/5, _], _]) then ((2/5 * e1) / e2 = 2/5 * (e1 / e2))]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: a / (5 * (b / 2)) \ 2 / 5 * a / b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args div [_, (args mul [_, e / 2 = 1/2 * e]) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [5 * 1/2 = 5/2, _])]) then (e1 / (5/2 * e2) = 2/5 * (e1 / e2)), (args div [args mul [2 / 5 = 2/5, _], _]) then ((2/5 * e1) / e2 = 2/5 * (e1 / e2))]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: a / 5 * (b / 2) \ 1 / 10 * a * b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args mul [e / 5 = 1/5 * e, e / 2 = 1/2 * e]) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [(e1 * e2 = e2 * e1) then (e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/2 * 1/5 = 1/10, _]), _]) then ((e1 * e2) * e3 = e1 * (e2 * e3)), (args mul [args mul [1 / 10 = 1/10, _], _]) then ((e1 * e2) * e3 = e1 * (e2 * e3))]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: a / (3 * b) \ 1 / 3 * a / b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e1 / (3 * e2) = 1/3 * (e1 / e2), (args div [args mul [1 / 3 = 1/3, _], _]) then ((1/3 * e1) / e2 = 1/3 * (e1 / e2))]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: (a + b) / 5 \ 1 / 5 * a + 1 / 5 * b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(e / 5 = 1/5 * e) then (e * (e1 + ... + em) = e * e1 + ... e * em), args add [args mul [1 / 5 = 1/5, _], args mul [1 / 5 = 1/5, _]]]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: a / (5 * 1 / 5) \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args div [_, (args div [5 * 1 = 5, _]) then (5 / 5 = 1)]) then (e / 1 = e), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a * (b / c) \ b * a / c Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e1 * (e2 / * e3) = (e1 * e2) / e3, args div [e1 * e2 = e2 * e1, _]]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a / b * c \ c * a / b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(e1 / e2) * e3 = (e1 * e3) / e2, args div [e1 * e2 = e2 * e1, _]]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a / b / (c / d) \ a * d / (c * b) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [((e1 / e2) / e3 = e1 / (e2 * e3)) then (args div [_, e1 * (e2 / * e3) = (e1 * e2) / e3]) then (e1 / (e2 / e3) = (e1 * e3) / e2), args div [_, e1 * e2 = e2 * e1]]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: 1 / (a * b) \ 1 / (b * a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [_, args div [_, e1 * e2 = e2 * e1]]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a / (3 * b) \ 1 / 3 * a / b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e1 / (3 * e2) = 1/3 * (e1 / e2), (args div [args mul [1 / 3 = 1/3, _], _]) then ((1/3 * e1) / e2 = 1/3 * (e1 / e2))]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: (a + b + c) / d \ a / d + b / d + c / d Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args div [e0 + e1 + e2 = e0 + e1 + e2, _]) then ((e1 + ... + em) / e = e1 / e + ... + em / e), e0 + e1 + e2 = e0 + e1 + e2]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a + b \ b + a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [_, e0 + e1 = e1 + e0]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a + b + c \ c + b + a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e0 + e1 + e2 = e0 + e1 + e2, e0 + e1 + e2 = e2 + e1 + e0]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a + b + c + d \ d + c + b + a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e0 + e1 + e2 + e3 = e0 + e1 + e2 + e3, e0 + e1 + e2 + e3 = e3 + e2 + e1 + e0]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a + (b + (c + d)) \ a + b + c + d Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e0 + e1 + e2 + e3 = e0 + e1 + e2 + e3, e0 + e1 + e2 + e3 = e0 + e1 + e2 + e3]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: 5 + - 3 \ 2 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args add [_, (-e = -1 * e) then (~1 * 3 = ~3)]) then (5 + ~3 = 2), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: 3 + 5 + - 1 \ 7 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args add [_, (-e = -1 * e) then (~1 * 1 = ~1)]) then (3 + 5 + ~1 = 7), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: 2 + a \ a + 2 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [_, e0 + 2 = 2 + e0]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: a + b + a \ b + 2 * a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [e0 + e1 + e0 = 2 * e0 + e1, e0 + 2 * e1 = 2 * e1 + e0]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: - 1 + a + - 1 + 2 + b + 5 / 3 + b + 1 / 3 + 5 * b + 2 / 3 \ 8 / 3 + a + 7 * b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args add [args add [args add [args add [args add [args add [args add [args add [args add [(-e = -1 * e) then (~1 * 1 = ~1), _], (-e = -1 * e) then (~1 * 1 = ~1)], _], _], 5 / 3 = 5/3], _], 1 / 3 = 1/3], _], 2 / 3 = 2/3]) then (~1 + e1 + ~1 + 2 + e4 + 5/3 + e4 + 1/3 + 5 * e4 + 2/3 = 8/3 + e1 + 7 * e4), (args add [args add [8 / 3 = 8/3, _], _]) then (8/3 + e1 + 7 * e2 = 8/3 + e1 + 7 * e2)]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 11 ms Argo: using these propositions: 1 + b + b + 5 * b + 3 * a + 7 + a + 2 \ 10 + 4 * a + 7 * b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [1 + e1 + e1 + 5 * e1 + 3 * e4 + 7 + e4 + 2 = 10 + 4 * e4 + 7 * e1, 10 + 4 * e1 + 7 * e2 = 10 + 4 * e1 + 7 * e2]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: min 3 5 \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [(n1 <= n2) = true, _, _]) then ((if T t1 t2) = t1), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: min 5 3 \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(min e1 e2 = (if e2 <= e1 then e2 else e1)) then (args ite [(n1 <= n2) = true, _, _]) then ((if T t1 t2) = t1), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: min 3 (- 5) \ - 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args min [_, (-e = -1 * e) then (~1 * 5 = ~5)]) then (min e1 e2 = (if e2 <= e1 then e2 else e1)) then (args ite [(n1 <= n2) = true, _, _]) then ((if T t1 t2) = t1), (-e = -1 * e) then (~1 * 5 = ~5)]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: min (- 5) 3 \ - 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args min [(-e = -1 * e) then (~1 * 5 = ~5), _]) then (min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [(n1 <= n2) = true, _, _]) then ((if T t1 t2) = t1), (-e = -1 * e) then (~1 * 5 = ~5)]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: min a a \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [min e e = e, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ (a \ b \ min a b = a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), (args eq [(min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), _]) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2))]) then (~(or [2]) = (and [2])) then (args and [~~p = p, ~(and [2]) = (or [2])]) then ((and [2]) = (and [[1], [0]])) Argo: 55 <- 7 . conjunct 1 of 2 Argo: 36 <- 55 . clause [7] Argo: 15 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 19 <- 15 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 19 . clause [~7, 17] Argo: 40 <- 36 20 . unit-resolution 7 Argo: 51 <- . tautology: and (1, 2) Argo: 32 <- 51 . clause [~17, 12] Argo: 44 <- 40 32 . unit-resolution 17 Argo: 47 <- . tautology: and (0, 2) Argo: 28 <- 47 . clause [~17, 11] Argo: 48 <- 40 28 . unit-resolution 17 Argo: 11 <- 7 . conjunct 0 of 2 Argo: 0 <- 11 . clause [~11, ~12] Argo: 52 <- 48 0 . unit-resolution 11 Argo: 56 <- 44 52 . unit-resolution 12 Argo: replayed the proof in 1 ms Argo: using these propositions: \ (b < a \ min a b = b) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])]), (args eq [(min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), _]) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2))]) then (~(or [2]) = (and [2])) then (args and [~~p = p, ~(and [2]) = (or [2])]) then ((and [2]) = (and [[1], [0]])) Argo: 55 <- 7 . conjunct 1 of 2 Argo: 36 <- 55 . clause [18] Argo: 2 <- 36 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 23 <- . tautology: p | (ite p t1 t2) = t2 Argo: 27 <- 23 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 27 . clause [7, 12] Argo: 39 <- . tautology: and (1, 2) Argo: 16 <- 39 . clause [~12, 11] Argo: 35 <- . tautology: and (0, 2) Argo: 12 <- 35 . clause [~12, 10] Argo: 11 <- 7 . conjunct 0 of 2 Argo: 0 <- 11 . clause [~10, ~11] Argo: 40 <- 12 0 . unit-resolution 10 Argo: 44 <- 16 40 . unit-resolution 11 Argo: 48 <- 4 44 . unit-resolution 12 Argo: 6 <- 2 48 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 4 ms Argo: using these propositions: \ min a b \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . tautology: p | (ite p t1 t2) = t2 Argo: 23 <- 19 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 23 . clause [7, 15] Argo: 11 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 15 <- 11 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 15 . clause [~7, 17] Argo: 47 <- . tautology: and (1, 2) Argo: 32 <- 47 . clause [~17, 11] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: args not [(args le [(min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), _]) then ((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _])] Argo: 0 <- 7 . clause [~11] Argo: 36 <- 32 0 . unit-resolution 11 Argo: 40 <- 20 36 . unit-resolution 17 Argo: 44 <- 4 40 . unit-resolution 7 Argo: 35 <- . tautology: and (1, 2) Argo: 16 <- 35 . clause [~15, 14] Argo: 48 <- 44 16 . unit-resolution 15 Argo: 2 <- 48 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 6 <- 40 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 10 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 14 <- 2 6 10 . linear-combination Argo: 18 <- 14 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + e1 + e2 + ~1 * e1 + e0 + ~1 * e2 = 0]) then ((n1 < n2) = false) Argo: 22 <- 18 . lemma [] Argo: replayed the proof in 4 ms Argo: using these propositions: \ min a b \ b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . tautology: p | (ite p t1 t2) = t2 Argo: 23 <- 19 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 23 . clause [7, 12] Argo: 35 <- . tautology: and (1, 2) Argo: 16 <- 35 . clause [~12, 10] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: args not [(args le [(min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), _]) then ((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _])] Argo: 0 <- 7 . clause [~10] Argo: 20 <- 16 0 . unit-resolution 10 Argo: 40 <- 4 20 . unit-resolution 12 Argo: 11 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 15 <- 11 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 24 <- 15 . clause [~7, 17] Argo: 44 <- 40 24 . unit-resolution 7 Argo: 47 <- . tautology: and (1, 2) Argo: 36 <- 47 . clause [~17, 16] Argo: 48 <- 44 36 . unit-resolution 17 Argo: 2 <- 48 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 6 <- 40 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 10 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 14 <- 2 6 10 . linear-combination Argo: 18 <- 14 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + e1 + ~1 * e1 + e3 + e0 + ~1 * e3 = 0]) then ((n1 < n2) = false) Argo: 22 <- 18 . lemma [] Argo: replayed the proof in 4 ms Argo: using these propositions: min a b \ min b a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), (min e1 e2 = (if e2 <= e1 then e2 else e1)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _])]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: max 3 5 \ 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [(n1 <= n2) = true, _, _]) then ((if T t1 t2) = t1), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: max 5 3 \ 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(max e1 e2 = (if e2 < e1 then e1 else e2)) then (args ite [(n1 <= n2) = true, _, _]) then ((if T t1 t2) = t1), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: max 3 (- 5) \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args max [_, (-e = -1 * e) then (~1 * 5 = ~5)]) then (max e1 e2 = (if e2 < e1 then e1 else e2)) then (args ite [(n1 <= n2) = true, _, _]) then ((if T t1 t2) = t1), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: max (- 5) 3 \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args max [(-e = -1 * e) then (~1 * 5 = ~5), _]) then (max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [(n1 <= n2) = true, _, _]) then ((if T t1 t2) = t1), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: max a a \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [max e e = e, _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ (a \ b \ max a b = b) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), (args eq [(max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), _]) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2))]) then (~(or [2]) = (and [2])) then (args and [~~p = p, ~(and [2]) = (or [2])]) then ((and [2]) = (and [[1], [0]])) Argo: 55 <- 7 . conjunct 1 of 2 Argo: 36 <- 55 . clause [7] Argo: 15 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 19 <- 15 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 19 . clause [~7, 17] Argo: 40 <- 36 20 . unit-resolution 7 Argo: 51 <- . tautology: and (1, 2) Argo: 32 <- 51 . clause [~17, 11] Argo: 44 <- 40 32 . unit-resolution 17 Argo: 47 <- . tautology: and (0, 2) Argo: 28 <- 47 . clause [~17, 10] Argo: 48 <- 40 28 . unit-resolution 17 Argo: 11 <- 7 . conjunct 0 of 2 Argo: 0 <- 11 . clause [~10, ~11] Argo: 52 <- 48 0 . unit-resolution 10 Argo: 56 <- 44 52 . unit-resolution 11 Argo: replayed the proof in 1 ms Argo: using these propositions: \ (b < a \ max a b = a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])]), (args eq [(max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), _]) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2))]) then (~(or [2]) = (and [2])) then (args and [~~p = p, ~(and [2]) = (or [2])]) then ((and [2]) = (and [[1], [0]])) Argo: 55 <- 7 . conjunct 1 of 2 Argo: 36 <- 55 . clause [18] Argo: 2 <- 36 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 23 <- . tautology: p | (ite p t1 t2) = t2 Argo: 27 <- 23 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 27 . clause [7, 13] Argo: 39 <- . tautology: and (1, 2) Argo: 16 <- 39 . clause [~13, 12] Argo: 35 <- . tautology: and (0, 2) Argo: 12 <- 35 . clause [~13, 11] Argo: 11 <- 7 . conjunct 0 of 2 Argo: 0 <- 11 . clause [~11, ~12] Argo: 40 <- 12 0 . unit-resolution 11 Argo: 44 <- 16 40 . unit-resolution 12 Argo: 48 <- 4 44 . unit-resolution 13 Argo: 6 <- 2 48 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 4 ms Argo: using these propositions: \ a \ max a b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . tautology: p | (ite p t1 t2) = t2 Argo: 23 <- 19 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 23 . clause [7, 13] Argo: 31 <- . tautology: and (0, 2) Argo: 12 <- 31 . clause [~13, 11] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: args not [(args le [_, (max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _])]) then ((e1 <= e2) = (e1 - e2 <= 0)) then (args le [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])] Found termination order: "(nat \ abs) <*mlex*> {}" Argo: 0 <- 7 . clause [~11] Argo: 16 <- 12 0 . unit-resolution 11 Argo: 40 <- 4 16 . unit-resolution 13 Argo: 11 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 15 <- 11 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 24 <- 15 . clause [~7, 17] Argo: 44 <- 40 24 . unit-resolution 7 Argo: 43 <- . tautology: and (0, 2) Argo: 32 <- 43 . clause [~17, 15] Argo: 52 <- 44 32 . unit-resolution 17 Argo: 2 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 6 <- 52 40 2 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [0 + e1 + ~1 * e2 + e3 + ~1 * e1 = e3 + ~1 * e2, e0 + ~1 * e1 + 0 + 0 = e0 + ~1 * e1]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 4 ms Argo: using these propositions: \ b \ max a b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . tautology: p | (ite p t1 t2) = t2 Argo: 23 <- 19 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 23 . clause [7, 15] Argo: 11 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 15 <- 11 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 15 . clause [~7, 17] Argo: 43 <- . tautology: and (0, 2) Argo: 28 <- 43 . clause [~17, 10] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: args not [(args le [_, (max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _])]) then ((e1 <= e2) = (e1 - e2 <= 0)) then (args le [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])] Argo: 0 <- 7 . clause [~10] Argo: 32 <- 28 0 . unit-resolution 10 Argo: 40 <- 20 32 . unit-resolution 17 Argo: 44 <- 4 40 . unit-resolution 7 Argo: 31 <- . tautology: and (0, 2) Argo: 12 <- 31 . clause [~15, 13] Argo: 52 <- 44 12 . unit-resolution 15 Argo: 2 <- 40 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 6 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 10 <- 52 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [0 + ~1 * e1 + e2 + e3 + ~1 * e2 = e3 + ~1 * e1, e0 + ~1 * e1 + 0 + 0 = e0 + ~1 * e1]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 5 ms Argo: using these propositions: max a b \ max b a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), (max e1 e2 = (if e2 < e1 then e1 else e2)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _])]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ min a b \ max a b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 35 <- . tautology: p | (ite p t1 t2) = t2 Argo: 39 <- 35 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 39 . clause [7, 17] Argo: 47 <- . tautology: and (0, 2) Argo: 12 <- 47 . clause [~17, 15] Argo: 19 <- . tautology: p | (ite p t1 t2) = t2 Argo: 23 <- 19 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 36 <- 23 . clause [7, 25] Argo: 75 <- . tautology: and (1, 2) Argo: 48 <- 75 . clause [~25, 24] Argo: 26 <- . hypothesis 24 Argo: 38 <- 26 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 30 <- . hypothesis ~7 Argo: 42 <- 30 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 34 <- . hypothesis ~28 Argo: 46 <- 34 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 50 <- 38 42 46 . linear-combination Argo: 54 <- 50 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + e1 + e2 + ~1 * e1 + e0 + ~1 * e2 = 0]) then ((n1 < n2) = false) Argo: 58 <- 54 . lemma [] Argo: 68 <- 48 58 . unit-resolution 24 Argo: 72 <- 36 68 . unit-resolution 25 Argo: 11 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 15 <- 11 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 52 <- 15 . clause [~7, 29] Argo: 76 <- 72 52 . unit-resolution 7 Argo: 87 <- . tautology: and (1, 2) Argo: 64 <- 87 . clause [~29, 28] Argo: 80 <- 76 64 . unit-resolution 29 Argo: 2 <- . hypothesis 15 Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: args not [(args le [(min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), (max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _])]) then ((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _])] Argo: 0 <- 7 . clause [~12] Argo: 10 <- 0 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 6 <- . hypothesis 28 Argo: 14 <- 2 10 6 . linear-combination Argo: 18 <- 14 . rewrite: (args lt [0 + ~1 * e1 + e2 + e1 + ~1 * e4 = e2 + ~1 * e4, e0 + ~1 * e1 + 0 + 0 = e0 + ~1 * e1]) then ((n1 < n2) = false) Argo: 22 <- 18 . lemma [] Argo: 84 <- 80 22 . unit-resolution 28 Argo: 88 <- 12 84 . unit-resolution 15 Argo: 92 <- 4 88 . unit-resolution 17 Argo: 27 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 31 <- 27 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 31 . clause [~7, 21] Argo: 100 <- 92 20 . unit-resolution 7 Argo: 59 <- . tautology: and (0, 2) Argo: 28 <- 59 . clause [~21, 19] Argo: 112 <- 100 28 . unit-resolution 21 Argo: 62 <- 0 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 66 <- 112 92 62 80 . linear-combination Argo: 70 <- 66 . rewrite: (args lt [0 + e1 + ~1 * e2 + ~1 * e3 + e4 + e3 + ~1 * e1 = e4 + ~1 * e2, e0 + ~1 * e1 + 0 + 0 + 0 = e0 + ~1 * e1]) then ((n1 < n2) = false) Argo: 74 <- 70 . lemma [] Argo: replayed the proof in 13 ms Argo: using these propositions: min a b + max a b \ a + b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 35 <- . tautology: p | (ite p t1 t2) = t2 Argo: 39 <- 35 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 39 . clause [7, 17] Argo: 11 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 15 <- 11 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 52 <- 15 . clause [~7, 29] Argo: 27 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 31 <- 27 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 31 . clause [~7, 21] Argo: 87 <- . tautology: and (1, 2) Argo: 64 <- 87 . clause [~29, 28] Argo: 83 <- . tautology: and (0, 2) Argo: 60 <- 83 . clause [~29, 27] Argo: 63 <- . tautology: and (1, 2) Argo: 32 <- 63 . clause [~21, 20] Argo: 59 <- . tautology: and (0, 2) Argo: 28 <- 59 . clause [~21, 19] Argo: 70 <- . hypothesis ~12 Argo: 82 <- 70 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 74 <- . hypothesis 19 Argo: 78 <- . hypothesis 27 Argo: 86 <- 82 74 78 . linear-combination Argo: 90 <- 86 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + ~1 * e1 + e2 + e3 + e1 + ~1 * e3 + e0 + ~1 * e2 = 0]) then ((n1 < n2) = false) Argo: 94 <- 90 . lemma [] Argo: 98 <- . hypothesis ~13 Argo: 110 <- 98 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 102 <- . hypothesis 20 Argo: 106 <- . hypothesis 28 Argo: 114 <- 110 102 106 . linear-combination Argo: 118 <- 114 . rewrite: (args lt [0 + e1 + ~1 * e2 + e3 + ~1 * e4 = e3 + e1 + ~1 * e4 + ~1 * e2, e0 + e1 + ~1 * e2 + ~1 * e3 + 0 + 0 = e0 + e1 + ~1 * e2 + ~1 * e3]) then ((n1 < n2) = false) Argo: 122 <- 118 . lemma [] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [args add [(min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), (max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _])], _]) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [(e1 - e2 = e1 + -1 * e2) then (args add [_, e * (e1 + ... + em) = e * e1 + ... e * em]) then (e0 + e1 + ~1 * e2 + ~1 * e3 = e0 + e1 + ~1 * e2 + ~1 * e3), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then (~(and [2]) = (or [2])) Argo: 0 <- 7 . clause [~12, ~13] Argo: 84 <- 122 0 . unit-resolution 13 Argo: 88 <- 94 84 . unit-resolution 12 Argo: 92 <- 28 88 . unit-resolution 19 Argo: 96 <- 32 92 . unit-resolution 20 Argo: 100 <- 60 96 . unit-resolution 27 Argo: 104 <- 64 100 . unit-resolution 28 Argo: 108 <- 20 104 . unit-resolution 21 Argo: 112 <- 52 108 . unit-resolution 29 Argo: 120 <- 4 112 . unit-resolution 7 Argo: 51 <- . tautology: and (1, 2) Argo: 16 <- 51 . clause [~17, 16] Argo: 132 <- 120 16 . unit-resolution 17 Argo: 47 <- . tautology: and (0, 2) Argo: 12 <- 47 . clause [~17, 15] Argo: 136 <- 120 12 . unit-resolution 17 Argo: 19 <- . tautology: p | (ite p t1 t2) = t2 Argo: 23 <- 19 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 36 <- 23 . clause [7, 25] Argo: 116 <- 36 112 . unit-resolution 7 Argo: 75 <- . tautology: and (1, 2) Argo: 48 <- 75 . clause [~25, 24] Argo: 71 <- . tautology: and (0, 2) Argo: 44 <- 71 . clause [~25, 23] Argo: 2 <- . hypothesis 24 Argo: 14 <- 2 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 6 <- . hypothesis ~13 Argo: 18 <- 6 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 10 <- . hypothesis 16 Argo: 22 <- 10 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 26 <- 14 18 22 . linear-combination Argo: 30 <- 26 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + e1 + e0 + e3 + ~1 * e4 + ~1 * e1 + ~1 * e3 + e4 = 0]) then ((n1 < n2) = false) Argo: 34 <- 30 . lemma [] Argo: 38 <- . hypothesis 23 Argo: 42 <- . hypothesis ~12 Argo: 50 <- 42 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 46 <- . hypothesis 15 Argo: 54 <- 46 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 58 <- 38 50 54 . linear-combination Argo: 62 <- 58 . rewrite: (args lt [0 + e1 + e2 + ~1 * e3 + ~1 * e4 + ~1 * e2 + e3 = e1 + ~1 * e4, e0 + ~1 * e1 + 0 + 0 = e0 + ~1 * e1]) then ((n1 < n2) = false) Argo: 66 <- 62 . lemma [] Argo: 68 <- 66 0 . unit-resolution 12 Argo: 72 <- 34 68 . unit-resolution 13 Argo: 76 <- 44 72 . unit-resolution 23 Argo: 80 <- 48 76 . unit-resolution 24 Argo: 148 <- 116 80 . unit-resolution 25 Argo: 152 <- 136 148 . unit-resolution 15 Argo: 156 <- 132 152 . unit-resolution 16 Argo: replayed the proof in 20 ms Argo: using these propositions: \ (a < b \ min a b < max a b) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 50 <- . hypothesis ~7 Argo: 54 <- 50 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _]), (args lt [(min e1 e2 = (if e1 <= e2 then e1 else e2)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _]), (max e1 e2 = (if e1 < e2 then e2 else e1)) then (args ite [((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]), _, _])]) then ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _])]) then ((p1 --> p2) = (~p1 | p2))]) then (~(or [2]) = (and [2])) then (args and [~~p = p, _]) then ((and [2]) = (and [[1], [0]])) Argo: 95 <- 7 . conjunct 1 of 2 Argo: 68 <- 95 . clause [30] Argo: 58 <- 54 68 . linear-combination Argo: 62 <- 58 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 66 <- 62 . lemma [] Argo: 31 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 35 <- 31 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 35 . clause [~7, 21] Argo: 76 <- 66 20 . unit-resolution 7 Argo: 63 <- . tautology: and (0, 2) Argo: 28 <- 63 . clause [~21, 19] Argo: 92 <- 76 28 . unit-resolution 21 Argo: 11 <- 7 . conjunct 0 of 2 Argo: 0 <- 11 . clause [~12] Argo: 70 <- 0 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 15 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 19 <- 15 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 52 <- 19 . clause [~7, 29] Argo: 72 <- 66 52 . unit-resolution 7 Argo: 91 <- . tautology: and (1, 2) Argo: 64 <- 91 . clause [~29, 28] Argo: 80 <- 72 64 . unit-resolution 29 Argo: 2 <- . hypothesis 28 Argo: 10 <- 2 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 14 <- 68 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 6 <- . hypothesis 23 Argo: 18 <- 10 14 6 . linear-combination Argo: 22 <- 18 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + e1 + ~1 * e1 + e3 + e0 + ~1 * e3 = 0]) then ((n1 < n2) = false) Argo: 26 <- 22 . lemma [] Argo: 96 <- 80 26 . unit-resolution 28 Argo: 74 <- 96 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 78 <- 92 70 74 . linear-combination Argo: 82 <- 78 . rewrite: (args lt [0 + ~1 * e1 + e2 + e1 + ~1 * e4 = e2 + ~1 * e4, e0 + ~1 * e1 + 0 + 0 = e0 + ~1 * e1]) then ((n1 < n2) = false) Argo: 86 <- 82 . lemma [] Argo: replayed the proof in 11 ms Argo: using these propositions: \3\ \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(abs e = (if 0 <= e then e else -e)) then (args ite [(n1 <= n2) = true, _, (-e = -1 * e) then (~1 * 3 = ~3)]) then ((if T t1 t2) = t1), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \- 3\ \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args abs [(-e = -1 * e) then (~1 * 3 = ~3)]) then (abs e = (if 0 <= e then e else -e)) then (args ite [(n1 <= n2) = false, _, (-e = -1 * e) then (~1 * ~3 = 3)]) then ((if F t1 t2) = t2), _]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: \ 0 \ \a\ Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . tautology: p | (ite p t1 t2) = t2 Argo: 23 <- 19 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [(e1 - e2 = e1 + -1 * e2) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 23 . clause [3, 11] Argo: 31 <- . tautology: and (0, 2) Argo: 12 <- 31 . clause [~11, 9] Argo: 30 <- . hypothesis ~3 Argo: 38 <- 30 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, _]) Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: args not [args le [_, (abs e = (if 0 <= e then e else -e)) then (args ite [_, _, -e = -1 * e])]] Argo: 0 <- 7 . clause [~7] Argo: 42 <- 0 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, _]) Argo: 34 <- . hypothesis 9 Argo: 46 <- 38 42 34 . linear-combination Argo: 50 <- 46 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + ~1 * e1 + e1 + e0 = 0]) then ((n1 < n2) = false) Argo: 54 <- 50 . lemma [] Argo: 11 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 15 <- 11 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 15 . clause [~3, 15] Argo: 36 <- 54 20 . unit-resolution 3 Argo: 43 <- . tautology: and (0, 2) instantiation word :: (len) bit_representation bits_of_word == bits_of :: 'a word \ bool list of_bits_word == of_bits :: bool list \ 'a word Argo: 28 <- 43 . clause [~15, 13] Argo: 40 <- 36 28 . unit-resolution 15 Argo: 2 <- . hypothesis 13 Argo: 10 <- 0 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, 2 * 0 = 0]) Argo: 6 <- . hypothesis 9 Argo: 14 <- 6 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [e * (e1 + ... + em) = e * e1 + ... e * em, ~1 * 0 = 0]) Argo: 18 <- 2 10 14 . linear-combination Argo: 22 <- 18 . rewrite: (args lt [0 + 2 * e1 + ~1 * e1 + ~1 * e3 = e1 + ~1 * e3, e0 + ~1 * e1 + 0 + 0 = e0 + ~1 * e1]) then ((n1 < n2) = false) Argo: 26 <- 22 . lemma [] Argo: 44 <- 40 26 . unit-resolution 13 Argo: 48 <- 12 44 . unit-resolution 9 Argo: 52 <- 4 48 . unit-resolution 11 Argo: 58 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 56 <- 52 20 . unit-resolution 3 Argo: 64 <- 56 28 . unit-resolution 15 Argo: 62 <- 64 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 66 <- 52 58 62 . linear-combination Argo: 70 <- 66 . rewrite: (args lt [0 + e1 + ~1 * e1 + e3 = e3, e0 + 0 + 0 = e0]) then ((n1 < n2) = false) Argo: 74 <- 70 . lemma [] Argo: replayed the proof in 9 ms Argo: using these propositions: \ a \ \a\ Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . tautology: p | (ite p t1 t2) = t2 Argo: 23 <- 19 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [(e1 - e2 = e1 + -1 * e2) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 23 . clause [3, 12] Argo: 11 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 15 <- 11 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 15 . clause [~3, 14] Argo: 43 <- . tautology: and (0, 2) Argo: 28 <- 43 . clause [~14, 8] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: args not [(args le [_, (abs e = (if 0 <= e then e else -e)) then (args ite [_, _, -e = -1 * e])]) then ((e1 <= e2) = (e1 - e2 <= 0)) then (args le [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])] Argo: 0 <- 7 . clause [~8] Argo: 32 <- 28 0 . unit-resolution 8 Argo: 40 <- 20 32 . unit-resolution 14 Argo: 44 <- 4 40 . unit-resolution 3 Argo: 31 <- . tautology: and (0, 2) Argo: 12 <- 31 . clause [~12, 10] Argo: 52 <- 44 12 . unit-resolution 12 Argo: 2 <- 40 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, 2 * 0 = 0]) Argo: 6 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 10 <- 52 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [0 + 2 * e1 + e2 + ~1 * e1 = e2 + e1, e0 + e1 + 0 + 0 = e0 + e1]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 4 ms Argo: using these propositions: \ (0 \ a \ \a\ = a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [_, (args eq [(abs e = (if 0 <= e then e else -e)) then (args ite [_, _, -e = -1 * e]), _]) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2))]) then (~(or [2]) = (and [2])) then (args and [~~p = p, ~(and [2]) = (or [2])]) then ((and [2]) = (and [[1], [0]])) Argo: 55 <- 7 . conjunct 1 of 2 Argo: 36 <- 55 . clause [3] Argo: 15 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 19 <- 15 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 19 . clause [~3, 14] Argo: 40 <- 36 20 . unit-resolution 3 Argo: 51 <- . tautology: and (1, 2) Argo: 32 <- 51 . clause [~14, 9] Argo: 44 <- 40 32 . unit-resolution 14 Argo: 47 <- . tautology: and (0, 2) Argo: 28 <- 47 . clause [~14, 8] Argo: 48 <- 40 28 . unit-resolution 14 Argo: 11 <- 7 . conjunct 0 of 2 Argo: 0 <- 11 . clause [~8, ~9] Argo: 52 <- 48 0 . unit-resolution 8 Argo: 56 <- 44 52 . unit-resolution 9 Argo: replayed the proof in 1 ms Argo: using these propositions: \ (a < 0 \ \a\ = - a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 23 <- . tautology: p | (ite p t1 t2) = t2 Argo: 27 <- 23 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [(e1 - e2 = e1 + -1 * e2) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 27 . clause [3, 10] Argo: 39 <- . tautology: and (1, 2) Argo: 16 <- 39 . clause [~10, 9] Argo: 35 <- . tautology: and (0, 2) Argo: 12 <- 35 . clause [~10, 8] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [_, (args eq [(abs e = (if 0 <= e then e else -e)) then (args ite [_, _, -e = -1 * e]), -e = -1 * e]) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [(e1 - e2 = e1 + -1 * e2) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2))]) then (~(or [2]) = (and [2])) then (args and [~~p = p, ~(and [2]) = (or [2])]) then ((and [2]) = (and [[1], [0]])) Argo: 11 <- 7 . conjunct 0 of 2 Argo: 0 <- 11 . clause [~8, ~9] Argo: 40 <- 12 0 . unit-resolution 8 Argo: 44 <- 16 40 . unit-resolution 9 Argo: 48 <- 4 44 . unit-resolution 10 Argo: 2 <- 48 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 0 = 0]) Argo: 55 <- 7 . conjunct 1 of 2 Argo: 36 <- 55 . clause [15] Argo: 6 <- 2 36 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [~1 * e0 + e0 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 3 ms Argo: using these propositions: \\a\\ \ \a\ Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 35 <- . tautology: p | (ite p t1 t2) = t2 Argo: 39 <- 35 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [(e1 - e2 = e1 + -1 * e2) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 4 <- 39 . clause [3, 16] Argo: 47 <- . tautology: and (0, 2) Argo: 12 <- 47 . clause [~16, 14] Argo: 30 <- . hypothesis ~3 Argo: 38 <- 30 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, _]) Argo: 11 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 15 <- 11 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 52 <- 15 . clause [~7, 25] Argo: 87 <- . tautology: and (1, 2) Argo: 64 <- 87 . clause [~25, 12] Argo: 83 <- . tautology: and (0, 2) Argo: 60 <- 83 . clause [~25, 11] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args abs [(abs e = (if 0 <= e then e else -e)) then (args ite [_, _, -e = -1 * e])]) then (abs e = (if 0 <= e then e else -e)) then (args ite [_, _, -e = -1 * e]), (abs e = (if 0 <= e then e else -e)) then (args ite [_, _, -e = -1 * e])]) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then (~(and [2]) = (or [2])) Argo: 0 <- 7 . clause [~11, ~12] Argo: 68 <- 60 0 . unit-resolution 11 Argo: 72 <- 64 68 . unit-resolution 12 Argo: 76 <- 52 72 . unit-resolution 25 Argo: 42 <- 76 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, _]) Argo: 34 <- . hypothesis 14 Argo: 46 <- 38 42 34 . linear-combination Argo: 50 <- 46 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + ~1 * e1 + e1 + e0 = 0]) then ((n1 < n2) = false) Argo: 54 <- 50 . lemma [] Argo: 27 <- . tautology: ~p | (ite p t1 t2) = t1 Argo: 31 <- 27 . rewrite: args or [_, ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))] Argo: 20 <- 31 . clause [~3, 20] Argo: 92 <- 54 20 . unit-resolution 3 Argo: 59 <- . tautology: and (0, 2) Argo: 28 <- 59 . clause [~20, 18] Argo: 96 <- 92 28 . unit-resolution 20 Argo: 2 <- . hypothesis 18 Argo: 10 <- 76 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, 2 * 0 = 0]) Argo: 6 <- . hypothesis 14 Argo: 14 <- 6 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [e * (e1 + ... + em) = e * e1 + ... e * em, ~1 * 0 = 0]) Argo: 18 <- 2 10 14 . linear-combination Argo: 22 <- 18 . rewrite: (args lt [0 + 2 * e1 + ~1 * e1 + ~1 * e3 = e1 + ~1 * e3, e0 + ~1 * e1 + 0 + 0 = e0 + ~1 * e1]) then ((n1 < n2) = false) Argo: 26 <- 22 . lemma [] Argo: 100 <- 96 26 . unit-resolution 18 Argo: 104 <- 12 100 . unit-resolution 14 Argo: 108 <- 4 104 . unit-resolution 16 Argo: 58 <- 76 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 112 <- 108 20 . unit-resolution 3 Argo: 120 <- 112 28 . unit-resolution 20 Argo: 62 <- 120 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 66 <- 108 58 62 . linear-combination Argo: 70 <- 66 . rewrite: (args lt [0 + e1 + ~1 * e1 + e3 = e3, e0 + 0 + 0 = e0]) then ((n1 < n2) = false) Argo: 74 <- 70 . lemma [] Argo: replayed the proof in 10 ms Argo: using these propositions: 3 \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(e = e) = T]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ 3 \ 4 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args not [(n1 ~= n2) = false]) then (~F = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ 4 \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args not [((e1 = e2) = (e2 = e1)) then ((n1 ~= n2) = false)]) then (~F = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ (3 * a = 5 \ a = 5 / 3) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [1/3 * 5 = 5/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e)]), ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e), 1/3 * 5 = 5/3])]) then ((and [2]) = (and [[1], [0]])), (args eq [_, 5 / 3 = 5/3]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [4] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [3] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~3, ~4] Argo: 12 <- 4 0 . unit-resolution 3 Argo: 16 <- 8 12 . unit-resolution 4 Argo: replayed the proof in 4 ms Argo: using these propositions: \ (- 3 * a = 5 \ - 5 / 3 = a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args eq [args mul [(-e = -1 * e) then (~1 * 3 = ~3), _], _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/3 * ~3 = 1, _]) then (1 * e = e), ~1/3 * 5 = ~5/3]), ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1/3 * 5 = ~5/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/3 * ~3 = 1, _]) then (1 * e = e)])]), (args eq [(args div [(-e = -1 * e) then (~1 * 5 = ~5), _]) then (~5 / 3 = ~5/3), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [4] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [3] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~3, ~4] Argo: 12 <- 4 0 . unit-resolution 3 Argo: 16 <- 8 12 . unit-resolution 4 Argo: replayed the proof in 6 ms Argo: using these propositions: \ (5 = 3 * a \ 5 / 3 = a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [1/3 * 5 = 5/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e)]), ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e), 1/3 * 5 = 5/3])]) then ((and [2]) = (and [[1], [0]])), (args eq [5 / 3 = 5/3, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [4] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [3] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~3, ~4] Argo: 12 <- 4 0 . unit-resolution 3 Argo: 16 <- 8 12 . unit-resolution 4 Argo: replayed the proof in 4 ms Argo: using these propositions: \ (5 = - 3 * a \ a = - 5 / 3) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args eq [_, args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/3 * ~3 = 1, _]) then (1 * e = e), ~1/3 * 5 = ~5/3]), ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1/3 * 5 = ~5/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/3 * ~3 = 1, _]) then (1 * e = e)])]), (args eq [_, (args div [(-e = -1 * e) then (~1 * 5 = ~5), _]) then (~5 / 3 = ~5/3)]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Found termination order: "(\p. size (snd p)) <*mlex*> (\p. size (fst p)) <*mlex*> {}" Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [4] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [3] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~3, ~4] Argo: 12 <- 4 0 . unit-resolution 3 Argo: 16 <- 8 12 . unit-resolution 4 Argo: replayed the proof in 88 ms Argo: using these propositions: \ (2 + 3 * a = 4 \ a = 2 / 3) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [4 + ~2 = 2, 2 + 3 * e1 + ~2 = 3 * e1]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [1/3 * 2 = 2/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e)]), ((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [2 + 3 * e1 + ~2 = 3 * e1, 4 + ~2 = 2]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e), 1/3 * 2 = 2/3])]) then ((and [2]) = (and [[1], [0]])), (args eq [_, 2 / 3 = 2/3]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [4] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [3] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~3, ~4] Argo: 12 <- 4 0 . unit-resolution 3 Argo: 16 <- 8 12 . unit-resolution 4 Argo: replayed the proof in 9 ms Argo: using these propositions: \ (4 = 2 + 3 * a \ 2 / 3 = a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [4 + ~2 = 2, 2 + 3 * e1 + ~2 = 3 * e1]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [1/3 * 2 = 2/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e)]), ((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [2 + 3 * e1 + ~2 = 3 * e1, 4 + ~2 = 2]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e), 1/3 * 2 = 2/3])]) then ((and [2]) = (and [[1], [0]])), (args eq [2 / 3 = 2/3, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [4] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [3] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~3, ~4] Argo: 12 <- 4 0 . unit-resolution 3 Argo: 16 <- 8 12 . unit-resolution 4 Argo: replayed the proof in 9 ms Argo: using these propositions: \ (2 + 3 * a + 5 * b + c = 4 \ 3 * a + 5 * b + c = 2) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args eq [2 + 3 * e1 + 5 * e2 + e3 = 2 + 3 * e1 + 5 * e2 + e3, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [4 + ~2 = 2, 2 + 3 * e1 + 5 * e2 + e3 + ~2 = 3 * e1 + 5 * e2 + e3]), ((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [2 + 3 * e1 + 5 * e2 + e3 + ~2 = 3 * e1 + 5 * e2 + e3, 4 + ~2 = 2])]), (args eq [3 * e0 + 5 * e1 + e2 = 3 * e0 + 5 * e1 + e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [11] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [10] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~10, ~11] Argo: 12 <- 4 0 . unit-resolution 10 Argo: 16 <- 8 12 . unit-resolution 11 Argo: replayed the proof in 4 ms Argo: using these propositions: \ (4 = 2 + 3 * a + 5 * b + c \ 2 = 3 * a + 5 * b + c) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args eq [_, 2 + 3 * e1 + 5 * e2 + e3 = 2 + 3 * e1 + 5 * e2 + e3]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [4 + ~2 = 2, 2 + 3 * e1 + 5 * e2 + e3 + ~2 = 3 * e1 + 5 * e2 + e3]), ((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [2 + 3 * e1 + 5 * e2 + e3 + ~2 = 3 * e1 + 5 * e2 + e3, 4 + ~2 = 2])]), (args eq [_, 3 * e0 + 5 * e1 + e2 = 3 * e0 + 5 * e1 + e2]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [11] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [10] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~10, ~11] Argo: 12 <- 4 0 . unit-resolution 10 Argo: 16 <- 8 12 . unit-resolution 11 Argo: replayed the proof in 3 ms Argo: using these propositions: \ (- 2 * a + b + - 3 * c = 7 \ - 7 = 2 * a + - 1 * b + 3 * c) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args eq [(args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]]) then (~2 * e0 + e1 + ~3 * e2 = ~2 * e0 + e1 + ~3 * e2), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _])]), ~1 * 7 = ~7]), ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 7 = ~7, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _])])])]) then ((and [2]) = (and [[1], [0]])), (args eq [(-e = -1 * e) then (~1 * 7 = ~7), (args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _]) then (2 * e0 + ~1 * e1 + 3 * e2 = 2 * e0 + ~1 * e1 + 3 * e2)]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [13] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [12] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~12, ~13] Argo: 12 <- 4 0 . unit-resolution 12 Argo: 16 <- 8 12 . unit-resolution 13 Argo: replayed the proof in 7 ms Argo: using these propositions: \ (7 = - 2 * a + b + - 3 * c \ 2 * a + - 1 * b + 3 * c = - 7) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args eq [_, (args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]]) then (~2 * e0 + e1 + ~3 * e2 = ~2 * e0 + e1 + ~3 * e2)]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _])]), ~1 * 7 = ~7]), ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 7 = ~7, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _])])])]) then ((and [2]) = (and [[1], [0]])), (args eq [(args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _]) then (2 * e0 + ~1 * e1 + 3 * e2 = 2 * e0 + ~1 * e1 + 3 * e2), (-e = -1 * e) then (~1 * 7 = ~7)]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [13] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [12] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~12, ~13] Argo: 12 <- 4 0 . unit-resolution 12 Argo: 16 <- 8 12 . unit-resolution 13 Argo: replayed the proof in 7 ms Argo: using these propositions: \ (- 2 * a + b + - 3 * c + 4 * d = 7 \ - 7 = 2 * a + - 1 * b + 3 * c + - 4 * d) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args eq [(args add [args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]], _]) then (~2 * e0 + e1 + ~3 * e2 + 4 * e3 = ~2 * e0 + e1 + ~3 * e2 + 4 * e3), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 4 = ~4, _])]), ~1 * 7 = ~7]), ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 7 = ~7, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 4 = ~4, _])])])]) then ((and [2]) = (and [[1], [0]])), (args eq [(-e = -1 * e) then (~1 * 7 = ~7), (args add [args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _], args mul [(-e = -1 * e) then (~1 * 4 = ~4), _]]) then (2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3 = 2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3)]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [16] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [15] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~15, ~16] Argo: 12 <- 4 0 . unit-resolution 15 Argo: 16 <- 8 12 . unit-resolution 16 Argo: replayed the proof in 8 ms Argo: using these propositions: \ (7 = - 2 * a + b + - 3 * c + 4 * d \ 2 * a + - 1 * b + 3 * c + - 4 * d = - 7) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args eq [_, (args add [args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]], _]) then (~2 * e0 + e1 + ~3 * e2 + 4 * e3 = ~2 * e0 + e1 + ~3 * e2 + 4 * e3)]) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))) then (args and [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 4 = ~4, _])]), ~1 * 7 = ~7]), ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 7 = ~7, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 4 = ~4, _])])])]) then ((and [2]) = (and [[1], [0]])), (args eq [(args add [args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _], args mul [(-e = -1 * e) then (~1 * 4 = ~4), _]]) then (2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3 = 2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3), (-e = -1 * e) then (~1 * 7 = ~7)]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [16] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [15] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~15, ~16] Argo: 12 <- 4 0 . unit-resolution 15 Argo: 16 <- 8 12 . unit-resolution 16 Argo: replayed the proof in 8 ms Argo: using these propositions: \ (a + 3 * b = 5 * c + b \ a + 2 * b + - 5 * c = 0) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args eq [_, 5 * e0 + e1 = e1 + 5 * e0]) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [(e1 - e2 = e1 + -1 * e2) then (args add [_, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 5 = ~5, _])])]) then (e0 + 3 * e1 + ~1 * e1 + ~5 * e3 = e0 + 2 * e1 + ~5 * e3), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))), (args eq [(args add [_, args mul [(-e = -1 * e) then (~1 * 5 = ~5), _]]) then (e0 + 2 * e1 + ~5 * e2 = e0 + 2 * e1 + ~5 * e2), _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((p1 --> p2) = (~p1 | p2)) then (args or [~(and [2]) = (or [2]), _]) then ((or [3]) = (or [[0], [1], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~~p = p, ~~p = p, ~(and [2]) = (or [2])]) then ((and [3]) = (and [[2], [0], [1]])) Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [11] Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [10] Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~10, ~11] Argo: 12 <- 4 0 . unit-resolution 10 Argo: 16 <- 8 12 . unit-resolution 11 Argo: replayed the proof in 2 ms Argo: using these propositions: \ 3 \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(n1 <= n2) = true]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ 3 \ 4 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(n1 <= n2) = true]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ \ 4 \ 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args not [(n1 <= n2) = false]) then (~F = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ (3 * a \ 5 \ a \ 5 / 3) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e), 1/3 * 5 = 5/3]), args le [_, 5 / 3 = 5/3]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: \ (- 3 * a \ 5 \ - 5 / 3 \ a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args le [args mul [(-e = -1 * e) then (~1 * 3 = ~3), _], _]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1/3 * 5 = ~5/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/3 * ~3 = 1, _]) then (1 * e = e)]), args le [(args div [(-e = -1 * e) then (~1 * 5 = ~5), _]) then (~5 / 3 = ~5/3), _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 3 ms Argo: using these propositions: \ (5 \ 3 * a \ 5 / 3 \ a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 <= e2) = (n * e1 <= n * e2)) then (args le [1/3 * 5 = 5/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e)]), args le [5 / 3 = 5/3, _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: \ (5 \ - 3 * a \ a \ - 5 / 3) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args le [_, args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/3 * ~3 = 1, _]) then (1 * e = e), ~1/3 * 5 = ~5/3]), args le [_, (args div [(-e = -1 * e) then (~1 * 5 = ~5), _]) then (~5 / 3 = ~5/3)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: \ (2 + 3 * a \ 4 \ a \ 2 / 3) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [2 + 3 * e1 + ~2 = 3 * e1, 4 + ~2 = 2]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e), 1/3 * 2 = 2/3]), args le [_, 2 / 3 = 2/3]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: \ (4 \ 2 + 3 * a \ 2 / 3 \ a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [4 + ~2 = 2, 2 + 3 * e1 + ~2 = 3 * e1]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [1/3 * 2 = 2/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e)]), args le [2 / 3 = 2/3, _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: \ (2 + 3 * a + 5 * b + c \ 4 \ 3 * a + 5 * b + c \ 2) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args le [2 + 3 * e1 + 5 * e2 + e3 = 2 + 3 * e1 + 5 * e2 + e3, _]) then ((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [2 + 3 * e1 + 5 * e2 + e3 + ~2 = 3 * e1 + 5 * e2 + e3, 4 + ~2 = 2]), args le [3 * e0 + 5 * e1 + e2 = 3 * e0 + 5 * e1 + e2, _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: \ (4 \ 2 + 3 * a + 5 * b + c \ 2 \ 3 * a + 5 * b + c) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args le [_, 2 + 3 * e1 + 5 * e2 + e3 = 2 + 3 * e1 + 5 * e2 + e3]) then ((e1 <= e2) = (e1 + n <= e2 + n)) then (args le [4 + ~2 = 2, 2 + 3 * e1 + 5 * e2 + e3 + ~2 = 3 * e1 + 5 * e2 + e3]), args le [_, 3 * e0 + 5 * e1 + e2 = 3 * e0 + 5 * e1 + e2]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: \ (- 2 * a + b + - 3 * c \ 7 \ - 7 \ 2 * a + - 1 * b + 3 * c) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args le [(args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]]) then (~2 * e0 + e1 + ~3 * e2 = ~2 * e0 + e1 + ~3 * e2), _]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 7 = ~7, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _])])]), args le [(-e = -1 * e) then (~1 * 7 = ~7), (args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _]) then (2 * e0 + ~1 * e1 + 3 * e2 = 2 * e0 + ~1 * e1 + 3 * e2)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: \ (7 \ - 2 * a + b + - 3 * c \ 2 * a + - 1 * b + 3 * c \ - 7) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args le [_, (args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]]) then (~2 * e0 + e1 + ~3 * e2 = ~2 * e0 + e1 + ~3 * e2)]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _])]), ~1 * 7 = ~7]), args le [(args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _]) then (2 * e0 + ~1 * e1 + 3 * e2 = 2 * e0 + ~1 * e1 + 3 * e2), (-e = -1 * e) then (~1 * 7 = ~7)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Found termination order: "(\p. length (fst p)) <*mlex*> (\p. length (snd p)) <*mlex*> {}" Argo: replayed the proof in 2 ms Argo: using these propositions: \ (- 2 * a + b + - 3 * c + 4 * d \ 7 \ - 7 \ 2 * a + - 1 * b + 3 * c + - 4 * d) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args le [(args add [args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]], _]) then (~2 * e0 + e1 + ~3 * e2 + 4 * e3 = ~2 * e0 + e1 + ~3 * e2 + 4 * e3), _]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 7 = ~7, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 4 = ~4, _])])]), args le [(-e = -1 * e) then (~1 * 7 = ~7), (args add [args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _], args mul [(-e = -1 * e) then (~1 * 4 = ~4), _]]) then (2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3 = 2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 3 ms Argo: using these propositions: \ (7 \ - 2 * a + b + - 3 * c + 4 * d \ 2 * a + - 1 * b + 3 * c + - 4 * d \ - 7) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args le [_, (args add [args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]], _]) then (~2 * e0 + e1 + ~3 * e2 + 4 * e3 = ~2 * e0 + e1 + ~3 * e2 + 4 * e3)]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 4 = ~4, _])]), ~1 * 7 = ~7]), args le [(args add [args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _], args mul [(-e = -1 * e) then (~1 * 4 = ~4), _]]) then (2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3 = 2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3), (-e = -1 * e) then (~1 * 7 = ~7)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 3 ms Argo: using these propositions: \ (a + 3 * b \ 5 * c + b \ a + 2 * b + - 5 * c \ 0) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args le [_, 5 * e0 + e1 = e1 + 5 * e0]) then ((e1 <= e2) = (e1 - e2 <= 0)) then (args le [(e1 - e2 = e1 + -1 * e2) then (args add [_, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 5 = ~5, _])])]) then (e0 + 3 * e1 + ~1 * e1 + ~5 * e3 = e0 + 2 * e1 + ~5 * e3), _]), args le [(args add [_, args mul [(-e = -1 * e) then (~1 * 5 = ~5), _]]) then (e0 + 2 * e1 + ~5 * e2 = e0 + 2 * e1 + ~5 * e2), _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: \ 3 < 4 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(n1 < n2) = true]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ \ 3 < 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args not [(n1 < n2) = false]) then (~F = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ \ 4 < 3 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args not [(n1 < n2) = false]) then (~F = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ (3 * a < 5 \ a < 5 / 3) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e), 1/3 * 5 = 5/3]), args lt [_, 5 / 3 = 5/3]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: \ (- 3 * a < 5 \ - 5 / 3 < a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args lt [args mul [(-e = -1 * e) then (~1 * 3 = ~3), _], _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1/3 * 5 = ~5/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/3 * ~3 = 1, _]) then (1 * e = e)]), args lt [(args div [(-e = -1 * e) then (~1 * 5 = ~5), _]) then (~5 / 3 = ~5/3), _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 3 ms Argo: using these propositions: \ (5 < 3 * a \ 5 / 3 < a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 < e2) = (n * e1 < n * e2)) then (args lt [1/3 * 5 = 5/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e)]), args lt [5 / 3 = 5/3, _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: \ (5 < - 3 * a \ a < - 5 / 3) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args lt [_, args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/3 * ~3 = 1, _]) then (1 * e = e), ~1/3 * 5 = ~5/3]), args lt [_, (args div [(-e = -1 * e) then (~1 * 5 = ~5), _]) then (~5 / 3 = ~5/3)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: \ (2 + 3 * a < 4 \ a < 2 / 3) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 < e2) = (e1 + n < e2 + n)) then (args lt [2 + 3 * e1 + ~2 = 3 * e1, 4 + ~2 = 2]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e), 1/3 * 2 = 2/3]), args lt [_, 2 / 3 = 2/3]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: \ (4 < 2 + 3 * a \ 2 / 3 < a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [((e1 < e2) = (e1 + n < e2 + n)) then (args lt [4 + ~2 = 2, 2 + 3 * e1 + ~2 = 3 * e1]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [1/3 * 2 = 2/3, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [1/3 * 3 = 1, _]) then (1 * e = e)]), args lt [2 / 3 = 2/3, _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: \ (2 + 3 * a + 5 * b + c < 4 \ 3 * a + 5 * b + c < 2) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args lt [2 + 3 * e1 + 5 * e2 + e3 = 2 + 3 * e1 + 5 * e2 + e3, _]) then ((e1 < e2) = (e1 + n < e2 + n)) then (args lt [2 + 3 * e1 + 5 * e2 + e3 + ~2 = 3 * e1 + 5 * e2 + e3, 4 + ~2 = 2]), args lt [3 * e0 + 5 * e1 + e2 = 3 * e0 + 5 * e1 + e2, _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: \ (4 < 2 + 3 * a + 5 * b + c \ 2 < 3 * a + 5 * b + c) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args lt [_, 2 + 3 * e1 + 5 * e2 + e3 = 2 + 3 * e1 + 5 * e2 + e3]) then ((e1 < e2) = (e1 + n < e2 + n)) then (args lt [4 + ~2 = 2, 2 + 3 * e1 + 5 * e2 + e3 + ~2 = 3 * e1 + 5 * e2 + e3]), args lt [_, 3 * e0 + 5 * e1 + e2 = 3 * e0 + 5 * e1 + e2]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: \ (- 2 * a + b + - 3 * c < 7 \ - 7 < 2 * a + - 1 * b + 3 * c) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args lt [(args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]]) then (~2 * e0 + e1 + ~3 * e2 = ~2 * e0 + e1 + ~3 * e2), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 7 = ~7, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _])])]), args lt [(-e = -1 * e) then (~1 * 7 = ~7), (args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _]) then (2 * e0 + ~1 * e1 + 3 * e2 = 2 * e0 + ~1 * e1 + 3 * e2)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 2 ms Argo: using these propositions: \ (7 < - 2 * a + b + - 3 * c \ 2 * a + - 1 * b + 3 * c < - 7) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args lt [_, (args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]]) then (~2 * e0 + e1 + ~3 * e2 = ~2 * e0 + e1 + ~3 * e2)]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _])]), ~1 * 7 = ~7]), args lt [(args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _]) then (2 * e0 + ~1 * e1 + 3 * e2 = 2 * e0 + ~1 * e1 + 3 * e2), (-e = -1 * e) then (~1 * 7 = ~7)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 3 ms Argo: using these propositions: \ (- 2 * a + b + - 3 * c + 4 * d < 7 \ - 7 < 2 * a + - 1 * b + 3 * c + - 4 * d) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args lt [(args add [args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]], _]) then (~2 * e0 + e1 + ~3 * e2 + 4 * e3 = ~2 * e0 + e1 + ~3 * e2 + 4 * e3), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 7 = ~7, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 4 = ~4, _])])]), args lt [(-e = -1 * e) then (~1 * 7 = ~7), (args add [args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _], args mul [(-e = -1 * e) then (~1 * 4 = ~4), _]]) then (2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3 = 2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 3 ms Argo: using these propositions: \ (7 < - 2 * a + b + - 3 * c + 4 * d \ 2 * a + - 1 * b + 3 * c + - 4 * d < - 7) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args lt [_, (args add [args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]], _]) then (~2 * e0 + e1 + ~3 * e2 + 4 * e3 = ~2 * e0 + e1 + ~3 * e2 + 4 * e3)]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), _, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 4 = ~4, _])]), ~1 * 7 = ~7]), args lt [(args add [args add [args add [_, args mul [(-e = -1 * e) then (~1 * 1 = ~1), _]], _], args mul [(-e = -1 * e) then (~1 * 4 = ~4), _]]) then (2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3 = 2 * e0 + ~1 * e1 + 3 * e2 + ~4 * e3), (-e = -1 * e) then (~1 * 7 = ~7)]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 3 ms Argo: using these propositions: \ (a + 3 * b < 5 * c + b \ a + 2 * b + - 5 * c < 0) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args imp [(args lt [_, 5 * e0 + e1 = e1 + 5 * e0]) then ((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (args add [_, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 5 = ~5, _])])]) then (e0 + 3 * e1 + ~1 * e1 + ~5 * e3 = e0 + 2 * e1 + ~5 * e3), _]), args lt [(args add [_, args mul [(-e = -1 * e) then (~1 * 5 = ~5), _]]) then (e0 + 2 * e1 + ~5 * e2 = e0 + 2 * e1 + ~5 * e2), _]]) then ((p1 --> p2) = (~p1 | p2)) then ((or ... p(0) ... ~p(1) ...) = T)]) then (~T = F) Argo: replayed the proof in 1 ms ### Introduced fixed type variable(s): 'a in "f" Argo: using these propositions: f (a + b) \ f (b + a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [_, args app [_, e0 + e1 = e1 + e0]]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ 0 < 1 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(n1 < n2) = true]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ 47 + 11 < 8 * 15 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args lt [47 + 11 = 58, 8 * 15 = 120]) then ((n1 < n2) = true)]) then (~T = F) Argo: replayed the proof in 1 ms Argo: using these propositions: a < 3 \ a < 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~5] Argo: 2 <- 4 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 2 0 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 2 ms Argo: using these propositions: a < 3 \ a \ 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~5] Argo: 2 <- 4 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 2 0 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: a < 3 \ \ 5 < a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ~~p = p Argo: 4 <- 11 . clause [5] Argo: 2 <- 4 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 2 0 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: a < 3 \ \ 5 \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ~~p = p Argo: 4 <- 11 . clause [5] Argo: 2 <- 4 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 2 0 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 1 ms Found termination order: "case_sum size size <*mlex*> case_sum (\x. Suc 0) (\x. 0) <*mlex*> {}" Argo: using these propositions: a \ 3 \ a < 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~5] Argo: 2 <- 4 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 2 0 . linear-combination Argo: 10 <- 6 . rewrite: (args le [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 <= n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: a \ 3 \ a \ 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~5] Argo: 2 <- 4 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 2 0 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: a \ 3 \ \ 5 < a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ~~p = p Argo: 4 <- 11 . clause [5] Argo: 2 <- 4 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 2 0 . linear-combination Argo: 10 <- 6 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: a \ 3 \ \ 5 \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ~~p = p Argo: 4 <- 11 . clause [5] Argo: 2 <- 4 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 2 0 . linear-combination Argo: 10 <- 6 . rewrite: (args le [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 <= n2) = false) Argo: 14 <- 10 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: \ 3 < a \ a < 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~5] Argo: 2 <- 4 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 6 <- 0 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 10 <- 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args le [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 <= n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: \ 3 < a \ a \ 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~5] Argo: 2 <- 4 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 6 <- 0 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 10 <- 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: \ 3 < a \ \ 5 < a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ~~p = p Argo: 4 <- 11 . clause [5] Argo: 2 <- 4 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 6 <- 0 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 10 <- 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: \ 3 < a \ \ 5 \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ~~p = p Argo: 4 <- 11 . clause [5] Argo: 2 <- 4 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 6 <- 0 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 10 <- 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args le [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 <= n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: \ 3 \ a \ a < 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~5] Argo: 2 <- 4 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 6 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 10 <- 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: \ 3 \ a \ a \ 5 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [~5] Argo: 2 <- 4 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 6 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 10 <- 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: \ 3 \ a \ \ 5 < a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ~~p = p Argo: 4 <- 11 . clause [5] Argo: 2 <- 4 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 6 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 10 <- 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: \ 3 \ a \ \ 5 \ a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ~~p = p Argo: 4 <- 11 . clause [5] Argo: 2 <- 4 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 5 = ~5]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [~3] Argo: 6 <- 0 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 10 <- 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [~1 * e0 + e0 = 0, ~5 + 3 = ~2]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 1 ms Argo: using these propositions: \ (a < 3 \ a = 3 \ 3 < a) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args or [_, args or [(e1 = e2) = (and (e1 <= e2) (e2 <= e1)), _]]) then ((or [3]) = (or [[1], [0], [2]]))]) then (~(or [3]) = (and [3])) then (args and [~(and [2]) = (or [2]), _, _]) then ((and [3]) = (and [[1], [2], [0]])) Argo: 11 <- 7 . conjunct 0 of 3 Argo: 0 <- 11 . clause [~3] Argo: 26 <- 0 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 3 = ~3]) Argo: 2 <- . hypothesis ~5 Argo: 6 <- 2 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [_, ~1 * 3 = ~3]) Argo: 15 <- 7 . conjunct 1 of 3 Argo: 4 <- 15 . clause [~4] Argo: 10 <- 4 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 14 <- 6 10 . linear-combination Argo: 18 <- 14 . rewrite: (args lt [~1 * e0 + e0 = 0, ~3 + 3 = 0]) then ((n1 < n2) = false) Argo: 22 <- 18 . lemma [] Argo: 19 <- 7 . conjunct 2 of 3 Argo: 8 <- 19 . clause [~5, ~6] Argo: 12 <- 22 8 . unit-resolution 5 Argo: 30 <- 12 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 34 <- 26 30 . linear-combination Argo: 38 <- 34 . rewrite: (args lt [~1 * e0 + e0 = 0, ~3 + 3 = 0]) then ((n1 < n2) = false) Argo: 42 <- 38 . lemma [] Argo: replayed the proof in 2 ms Argo: using these propositions: 0 < a a < b \ 0 < b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _]) Argo: 4 <- 11 . clause [8] Argo: 2 <- 4 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 15 <- . axiom 2 Argo: 8 <- 15 . clause [~9] Argo: 6 <- 8 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, _]) Argo: 10 <- 2 0 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + e1 + e0 + ~1 * e1 = 0]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 2 ms Argo: using these propositions: 0 < a a \ b \ 0 \ b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]) Argo: 4 <- 11 . clause [8] Argo: 2 <- 4 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 15 <- . axiom 2 Argo: 8 <- 15 . clause [~9] Argo: 6 <- 8 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, _]) Argo: 10 <- 2 0 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + e1 + e0 + ~1 * e1 = 0]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 2 ms Argo: using these propositions: 0 \ a a < b \ 0 \ b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _]) Argo: 4 <- 11 . clause [8] Argo: 2 <- 4 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 15 <- . axiom 2 Argo: 8 <- 15 . clause [~9] Argo: 6 <- 8 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, _]) Argo: 10 <- 2 0 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + e1 + e0 + ~1 * e1 = 0]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 2 ms Argo: using these propositions: 0 \ a a \ b \ 0 \ b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 11 <- 7 . rewrite: ((e1 <= e2) = (e1 - e2 <= 0)) then (args le [e1 - e2 = e1 + -1 * e2, _]) Argo: 4 <- 11 . clause [8] Argo: 2 <- 4 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)])]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 15 <- . axiom 2 Argo: 8 <- 15 . clause [~9] Argo: 6 <- 8 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, _]) Argo: 10 <- 2 0 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [0 + 0 + 0 = 0, ~1 * e0 + e1 + e0 + ~1 * e1 = 0]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 2 ms Argo: using these propositions: 2 \ a 3 \ b c \ 5 \ - 2 * a + - 3 * b + 5 * c < 13 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [9] Argo: 2 <- 8 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 5 = ~5, _]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 0 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [2/5 * 2 = 4/5, _]) Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [6] Argo: 10 <- 4 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [3/5 * 3 = 9/5, _]) Argo: 15 <- . axiom 3 Argo: 19 <- 15 . rewrite: args not [(args lt [(args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]], _]) then (~2 * e0 + ~3 * e1 + 5 * e2 = ~2 * e0 + ~3 * e1 + 5 * e2), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 13 = ~13, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 5 = ~5, _])])])] Argo: 12 <- 19 . clause [~16] Argo: 14 <- 12 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1/5 * ~13 = 13/5, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/5 * 2 = ~2/5, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/5 * 3 = ~3/5, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/5 * ~5 = 1, _]) then (1 * e = e)])]) Argo: 18 <- 2 6 10 14 . linear-combination Argo: 22 <- 18 . rewrite: (args le [~5 + 4/5 + 9/5 + 13/5 = 1/5, ~1 * e0 + 2/5 * e1 + 3/5 * e2 + ~2/5 * e1 + ~3/5 * e2 + e0 = 0]) then ((n1 <= n2) = false) Argo: 26 <- 22 . lemma [] Argo: replayed the proof in 20 ms Argo: using these propositions: 2 \ a 3 \ b c \ 5 \ - 2 * a + - 3 * b + 5 * c \ 12 Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [9] Argo: 2 <- 8 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 5 = ~5, _]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [3] Argo: 6 <- 0 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [2/5 * 2 = 4/5, _]) Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [6] Argo: 10 <- 4 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [3/5 * 3 = 9/5, _]) Argo: 15 <- . axiom 3 Argo: 19 <- 15 . rewrite: args not [(args le [(args add [args add [args mul [(-e = -1 * e) then (~1 * 2 = ~2), _], args mul [(-e = -1 * e) then (~1 * 3 = ~3), _]], _]) then (~2 * e0 + ~3 * e1 + 5 * e2 = ~2 * e0 + ~3 * e1 + 5 * e2), _]) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 12 = ~12, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~2 = 2, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~3 = 3, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * 5 = ~5, _])])])] Argo: 12 <- 19 . clause [~16] Argo: 14 <- 12 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1/5 * ~12 = 12/5, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/5 * 2 = ~2/5, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/5 * 3 = ~3/5, _]), (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1/5 * ~5 = 1, _]) then (1 * e = e)])]) Argo: 18 <- 2 6 10 14 . linear-combination Argo: 22 <- 18 . rewrite: (args lt [~5 + 4/5 + 9/5 + 12/5 = 0, ~1 * e0 + 2/5 * e1 + 3/5 * e2 + ~2/5 * e1 + ~3/5 * e2 + e0 = 0]) then ((n1 < n2) = false) Argo: 26 <- 22 . lemma [] Argo: replayed the proof in 16 ms Argo: using these propositions: a = 2 b = 3 \ (5 < a + b \ a < b) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 35 <- . axiom 2 Argo: 39 <- 35 . rewrite: (args not [args or [_, ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _])]]) then (~(or [2]) = (and [2])) Argo: 47 <- 39 . conjunct 1 of 2 Argo: 20 <- 47 . clause [~16] Argo: 2 <- 20 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (e1 = e2) = (and (e1 <= e2) (e2 <= e1)) Argo: 11 <- 7 . conjunct 0 of 2 Argo: 0 <- 11 . clause [3] Argo: 19 <- . axiom 1 Argo: 23 <- 19 . rewrite: (e1 = e2) = (and (e1 <= e2) (e2 <= e1)) Argo: 31 <- 23 . conjunct 1 of 2 Argo: 12 <- 31 . clause [8] Argo: 6 <- 12 . rewrite: ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 3 = ~3]) Argo: 10 <- 2 0 6 . linear-combination Argo: 14 <- 10 . rewrite: (args le [0 + e1 + ~1 * e2 = e1 + ~1 * e2, e0 + ~1 * e1 + 2 + ~3 = ~1 + e0 + ~1 * e1]) then ((n1 <= n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 4 ms Argo: using these propositions: 5 < b + c a + c < 0 0 < a \ 0 < b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [9] Argo: 2 <- 4 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, e * (e1 + ... + em) = e * e1 + ... e * em]) Argo: 15 <- . axiom 3 Argo: 12 <- 15 . clause [~11] Argo: 6 <- 12 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [~1 * 0 = 0, _]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [5] Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [10] Argo: 10 <- 2 6 0 8 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [0 + 0 + 5 + 0 = 5, ~1 * e0 + ~1 * e1 + ~1 * e2 + e2 + e1 + e0 = 0]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 2 ms Argo: using these propositions: a + b < 7 5 < b + c a + c < 0 0 < a \ (0 < b \ b < 7) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 15 <- . axiom 3 Argo: 12 <- 15 . clause [13] Argo: 2 <- . hypothesis ~14 Argo: 6 <- 2 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [_, ~1 * 7 = ~7]) Argo: 3 <- . axiom 0 Argo: 0 <- 3 . clause [5] Argo: 10 <- 12 6 0 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [0 + ~1 * e1 + e2 + e1 = e2, e0 + ~7 + 7 = e0]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: 19 <- . axiom 4 Argo: 23 <- 19 . rewrite: (args not [(and [2]) = (and [[1], [0]])]) then (~(and [2]) = (or [2])) Argo: 16 <- 23 . clause [~14, ~15] Argo: 20 <- 18 16 . unit-resolution 14 Argo: 22 <- 20 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 7 <- . axiom 1 Argo: 4 <- 7 . clause [9] Argo: 26 <- 4 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [e * (e1 + ... + em) = e * e1 + ... e * em, ~1 * 5 = ~5]) Argo: 11 <- . axiom 2 Argo: 8 <- 11 . clause [12] Argo: 30 <- 12 22 26 8 . linear-combination Argo: 34 <- 30 . rewrite: (args lt [0 + e1 + ~1 * e1 + ~1 * e3 + e4 + e3 = e4, e0 + 0 + ~5 + 0 = ~5 + e0]) then ((n1 < n2) = false) Argo: 38 <- 34 . lemma [] Argo: replayed the proof in 5 ms Argo: using these propositions: a < b b < c c < a \ False Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 19 <- . axiom 2 Argo: 23 <- 19 . rewrite: ((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])]) Argo: 8 <- 23 . clause [13] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _]) Argo: 0 <- 7 . clause [7] Argo: 11 <- . axiom 1 Argo: 15 <- 11 . rewrite: ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _]) Argo: 4 <- 15 . clause [11] Argo: 2 <- 8 0 4 . linear-combination Argo: 6 <- 2 . rewrite: (args lt [0 + e1 + ~1 * e2 + e2 + ~1 * e4 = e1 + ~1 * e4, e0 + ~1 * e1 + 0 + 0 = e0 + ~1 * e1]) then ((n1 < n2) = false) Argo: 10 <- 6 . lemma [] Argo: replayed the proof in 2 ms Argo: using these propositions: b < a - 5 \ b < a Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args lt [_, (e1 - e2 = e1 + -1 * e2) then (args add [_, ~1 * 5 = ~5]) then (e0 + ~5 = ~5 + e0)]) then ((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (args add [_, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [~1 * ~5 = 5, _])]) then (e0 + 5 + ~1 * e2 = 5 + ~1 * e2 + e0), _]) then ((e1 < e2) = (e1 + n < e2 + n)) then (args lt [5 + ~1 * e1 + e2 + ~5 = ~1 * e1 + e2, 0 + ~5 = ~5]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * ~5 = 5, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])]) Argo: 0 <- 7 . clause [7] Argo: 2 <- 0 . rewrite: ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 5 = ~5]) Argo: 11 <- . axiom 1 Argo: 15 <- 11 . rewrite: args not [((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])] Argo: 4 <- 15 . clause [~9] Argo: 6 <- 4 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 10 <- 2 6 . linear-combination Argo: 14 <- 10 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, ~5 + 0 = ~5]) then ((n1 < n2) = false) Argo: 18 <- 14 . lemma [] Argo: replayed the proof in 6 ms Argo: using these propositions: a - b - a \ a - a - b Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args eq [(args sub [e1 - e2 = e1 + -1 * e2, _]) then (e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 + ~1 * e0 = ~1 * e1), (args sub [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e0 = 0), _]) then (e1 - e2 = e1 + -1 * e2) then (0 + ~1 * e1 = ~1 * e1)]) then ((e = e) = T)]) then (~T = F) Argo: replayed the proof in 0 ms Argo: using these propositions: \ (n < m \ m < n' \ n < m \ m = n' \ n < n' \ n' < m \ n = n' \ n' < m \ n = m \ m < n' \ n' < m \ m < n \ n' < m \ m = n \ n' < n \ n < m \ n' = n \ n < m \ n' = m \ m < n \ m < n \ n < n' \ m < n \ n' = n \ m < n' \ n' < n \ m = n \ n < n' \ m = n' \ n' < n \ n' = m \ m = n) Argo: starting the prover Argo: found a proof in 0 ms Argo: replaying the proof Argo: 110 <- . hypothesis ~22 Argo: 114 <- 110 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 106 <- . hypothesis ~11 Argo: 118 <- 106 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 122 <- 114 118 . linear-combination Argo: 126 <- 122 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 130 <- 126 . lemma [] Argo: 82 <- . hypothesis ~16 Argo: 86 <- 82 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 78 <- . hypothesis ~21 Argo: 90 <- 78 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 94 <- 86 90 . linear-combination Argo: 98 <- 94 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 102 <- 98 . lemma [] Argo: 194 <- . hypothesis ~18 Argo: 198 <- 194 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 190 <- . hypothesis ~7 Argo: 202 <- 190 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 206 <- 198 202 . linear-combination Argo: 210 <- 206 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 214 <- 210 . lemma [] Argo: 138 <- . hypothesis ~13 Argo: 142 <- 138 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 134 <- . hypothesis ~19 Argo: 146 <- 134 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 150 <- 142 146 . linear-combination Argo: 154 <- 150 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 158 <- 154 . lemma [] Argo: 3 <- . axiom 0 Argo: 7 <- 3 . rewrite: (args not [(args or [args and [((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])]), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _])], args or [(args and [((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])]), ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((and [3]) = (and [[1], [2], [0]])), args or [(args and [((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _]), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])]) then ((and [2]) = (and [[1], [0]])), args or [(args and [((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])]) then ((and [3]) = (and [[0], [1], [2]])), args or [(args and [((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _])]) then ((and [3]) = (and [[0], [1], [2]])), args or [args and [((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])]), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _])], args or [(args and [((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])]), ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((and [3]) = (and [[1], [2], [0]])), args or [(args and [((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])]), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])]) then ((and [2]) = (and [[1], [0]])), args or [(args and [((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])]) then ((and [3]) = (and [[0], [1], [2]])), args or [(args and [((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _])]) then ((and [3]) = (and [[0], [1], [2]])), args or [args and [((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _]), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _])], args or [(args and [((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _]), ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((and [3]) = (and [[1], [2], [0]])), args or [(args and [((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _]), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])]) then ((and [2]) = (and [[1], [0]])), args or [(args and [((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [e1 - e2 = e1 + -1 * e2, _])]) then ((and [3]) = (and [[0], [1], [2]])), args or [(args and [((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))), ((e1 < e2) = (e1 - e2 < 0)) then (args lt [(e1 - e2 = e1 + -1 * e2) then (e0 + ~1 * e1 = ~1 * e1 + e0), _]) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [~1 * 0 = 0, (e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [(e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e), _])])]) then ((and [3]) = (and [[0], [1], [2]])), (args and [((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1))), ((e1 = e2) = (e1 - e2 = 0)) then (args eq [e1 - e2 = e1 + -1 * e2, _]) then ((e1 = e2) = (e2 = e1)) then ((e1 = e2) = (and (e1 <= e2) (e2 <= e1)))]) then ((and [4]) = (and [[2], [0], [3], [1]]))]]]]]]]]]]]]]]]) then ((or [16]) = (or [[7], [0], [5], [2], [12], [10], [6], [4], [13], [1], [14], [9], [8], [3], [11], [15]]))]) then (~(or [16]) = (and [16])) then (args and [~(and [2]) = (or [2]), ~(and [2]) = (or [2]), ~(and [2]) = (or [2]), ~(and [2]) = (or [2]), ~(and [2]) = (or [2]), ~(and [2]) = (or [2]), ~(and [3]) = (or [3]), ~(and [3]) = (or [3]), ~(and [3]) = (or [3]), ~(and [3]) = (or [3]), ~(and [3]) = (or [3]), ~(and [3]) = (or [3]), ~(and [3]) = (or [3]), ~(and [3]) = (or [3]), ~(and [3]) = (or [3]), ~(and [4]) = (or [4])]) Argo: 15 <- 7 . conjunct 1 of 16 Argo: 4 <- 15 . clause [~7, ~13] Argo: 120 <- 158 4 . unit-resolution 13 Argo: 47 <- 7 . conjunct 9 of 16 Argo: 36 <- 47 . clause [~19, ~20, ~7] Argo: 124 <- 120 36 . unit-resolution 19 Argo: 128 <- 214 124 . unit-resolution 7 Argo: 166 <- . hypothesis ~15 Argo: 170 <- 166 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 162 <- . hypothesis ~17 Argo: 174 <- 162 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 178 <- 170 174 . linear-combination Argo: 182 <- 178 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 186 <- 182 . lemma [] Argo: 31 <- 7 . conjunct 5 of 16 Argo: 20 <- 31 . clause [~15, ~16] Argo: 72 <- 102 20 . unit-resolution 16 Argo: 67 <- 7 . conjunct 14 of 16 Argo: 56 <- 67 . clause [~21, ~22, ~15] Argo: 76 <- 72 56 . unit-resolution 21 Argo: 80 <- 186 76 . unit-resolution 15 Argo: 84 <- 130 80 . unit-resolution 22 Argo: 27 <- 7 . conjunct 4 of 16 Argo: 16 <- 27 . clause [~11, ~13] Argo: 88 <- 84 16 . unit-resolution 11 Argo: 39 <- 7 . conjunct 7 of 16 Argo: 28 <- 39 . clause [~17, ~18, ~13] Argo: 92 <- 88 28 . unit-resolution 17 Argo: 96 <- 158 92 . unit-resolution 13 Argo: 6 <- . hypothesis ~15 Argo: 10 <- 6 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 2 <- . hypothesis ~17 Argo: 14 <- 2 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 18 <- 10 14 . linear-combination Argo: 22 <- 18 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 26 <- 22 . lemma [] Argo: 55 <- 7 . conjunct 11 of 16 Argo: 44 <- 55 . clause [~19, ~20, ~15] Argo: 64 <- 26 44 . unit-resolution 15 Argo: 71 <- 7 . conjunct 15 of 16 Argo: 60 <- 71 . clause [~17, ~19, ~18, ~20] Argo: 68 <- 64 60 . unit-resolution 17 Argo: 100 <- 96 68 . unit-resolution 19 Argo: 132 <- 128 100 . unit-resolution 18 Argo: 326 <- 132 . rewrite: (~(e1 <= e2) = (e2 < e1)) then ((e1 < e2) = (n * e1 < n * e2)) then (args lt [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 322 <- . hypothesis ~14 Argo: 330 <- 322 . rewrite: ~(e1 < e2) = (e2 <= e1) Argo: 334 <- 326 330 . linear-combination Argo: 338 <- 334 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 342 <- 338 . lemma [] Argo: 23 <- 7 . conjunct 3 of 16 Argo: 12 <- 23 . clause [~14, ~16] Argo: 136 <- 342 12 . unit-resolution 14 Argo: 144 <- 102 136 . unit-resolution 16 Argo: 63 <- 7 . conjunct 13 of 16 Argo: 52 <- 63 . clause [~21, ~22, ~14] Argo: 152 <- 342 52 . unit-resolution 14 Argo: 156 <- 144 152 . unit-resolution 21 Argo: 168 <- 130 156 . unit-resolution 22 Argo: 298 <- . hypothesis ~15 Argo: 302 <- 298 . rewrite: (~(e1 < e2) = (e2 <= e1)) then ((e1 <= e2) = (n * e1 <= n * e2)) then (args le [(e * (e1 + ... + em) = e * e1 + ... e * em) then (args add [_, (e1 * (n * e2) = (e1 * n) * e2) then (args mul [~1 * ~1 = 1, _]) then (1 * e = e)]), ~1 * 0 = 0]) Argo: 294 <- . hypothesis ~17 Argo: 306 <- 294 . rewrite: ~(e1 <= e2) = (e2 < e1) Argo: 310 <- 302 306 . linear-combination Argo: 314 <- 310 . rewrite: (args lt [~1 * e0 + e1 + e0 + ~1 * e1 = 0, 0 + 0 = 0]) then ((n1 < n2) = false) Argo: 318 <- 314 . lemma [] Argo: 19 <- 7 . conjunct 2 of 16 Argo: 8 <- 19 . clause [~14, ~15] Argo: 140 <- 342 8 . unit-resolution 14 Argo: 148 <- 318 140 . unit-resolution 15 Argo: 35 <- 7 . conjunct 6 of 16 Argo: 24 <- 35 . clause [~17, ~18, ~14] Argo: 160 <- 342 24 . unit-resolution 14 Argo: 164 <- 148 160 . unit-resolution 17 Argo: 172 <- 214 164 . unit-resolution 18 Argo: 11 <- 7 . conjunct 0 of 16 Argo: 0 <- 11 . clause [~7, ~11] Argo: 176 <- 172 0 . unit-resolution 7 Argo: 180 <- 168 176 . unit-resolution 11 Argo: replayed the proof in 30 ms Found termination order: "case_sum (\p. length (fst p)) (\p. length (fst p)) <*mlex*> case_sum (\x. 0) (\x. Suc 0) <*mlex*> {}" ### theory "HOL-ex.Ballot" ### 1.010s elapsed time, 5.896s cpu time, 0.364s GC time Loading theory "HOL-ex.BinEx" class semiring_bit_representation = bit_representation + semiring_bit_operations + assumes "and_eq": "\bs cs. length bs = length cs \ of_bits bs AND of_bits cs = of_bits (map2 (\) bs cs)" and "or_eq": "\bs cs. length bs = length cs \ of_bits bs OR of_bits cs = of_bits (map2 (\) bs cs)" and "xor_eq": "\bs cs. length bs = length cs \ of_bits bs XOR of_bits cs = of_bits (map2 (\) bs cs)" and "push_bit_eq": "\n a. push_bit n a = of_bits (replicate n False @ bits_of a)" and "drop_bit_eq": "\n a. n < length (bits_of a) \ drop_bit n a = of_bits (drop n (bits_of a))" Found termination order: "case_sum (\p. size (fst (snd p))) (\p. size (fst (snd p))) <*mlex*> case_sum (\p. size (fst p)) (\p. size (fst p)) <*mlex*> case_sum (\x. 0) (\x. Suc 0) <*mlex*> {}" ### theory "HOL-ex.BinEx" ### 0.854s elapsed time, 4.880s cpu time, 0.812s GC time Loading theory "HOL-ex.Code_Binary_Nat_examples" ### theory "HOL-ex.Argo_Examples" ### 4.048s elapsed time, 21.716s cpu time, 8.204s GC time Loading theory "HOL-ex.Cubic_Quartic" Found termination order: "size <*mlex*> {}" consts fac :: "nat \ nat" consts harmonic :: "nat \ rat" ### theory "HOL-ex.Code_Binary_Nat_examples" ### 0.373s elapsed time, 2.244s cpu time, 0.000s GC time Loading theory "HOL-ex.Dedekind_Real" ### theory "HOL-ex.Cubic_Quartic" ### 0.108s elapsed time, 0.648s cpu time, 0.000s GC time Loading theory "HOL-ex.Eval_Examples" ### theory "HOL-ex.Termination" ### 8.109s elapsed time, 44.828s cpu time, 10.412s GC time Loading theory "HOL-ex.Gauge_Integration" Proofs for inductive predicate(s) "fine" Proving monotonicity ... Proving the introduction rules ... Proving the elimination rules ... Proving the induction rule ... Proving the simplification rules ... instantiation preal :: {inverse,minus,one,plus,times,ord} less_eq_preal == less_eq :: preal \ preal \ bool less_preal == less :: preal \ preal \ bool times_preal == times :: preal \ preal \ preal plus_preal == plus :: preal \ preal \ preal one_preal == one_class.one :: preal minus_preal == minus :: preal \ preal \ preal inverse_preal == inverse :: preal \ preal divide_preal == divide :: preal \ preal \ preal instantiation preal :: distrib_lattice inf_preal == inf :: preal \ preal \ preal sup_preal == sup :: preal \ preal \ preal ### theory "HOL-ex.Gauge_Integration" ### 0.247s elapsed time, 1.496s cpu time, 0.000s GC time Loading theory "HOL-ex.HarmonicSeries" ### theory "HOL-ex.HarmonicSeries" ### 0.054s elapsed time, 0.328s cpu time, 0.000s GC time Loading theory "HOL-ex.Normalization_by_Evaluation" instantiation Dedekind_Real.real :: {inverse,abs,minus,one,plus,sgn,times,uminus,zero,ord} less_eq_real == less_eq :: Dedekind_Real.real \ Dedekind_Real.real \ bool less_real == less :: Dedekind_Real.real \ Dedekind_Real.real \ bool zero_real == zero_class.zero :: Dedekind_Real.real uminus_real == uminus :: Dedekind_Real.real \ Dedekind_Real.real times_real == times :: Dedekind_Real.real \ Dedekind_Real.real \ Dedekind_Real.real sgn_real == sgn :: Dedekind_Real.real \ Dedekind_Real.real plus_real == plus :: Dedekind_Real.real \ Dedekind_Real.real \ Dedekind_Real.real one_real == one_class.one :: Dedekind_Real.real minus_real == minus :: Dedekind_Real.real \ Dedekind_Real.real \ Dedekind_Real.real abs_real == abs :: Dedekind_Real.real \ Dedekind_Real.real inverse_real == inverse :: Dedekind_Real.real \ Dedekind_Real.real divide_real == divide :: Dedekind_Real.real \ Dedekind_Real.real \ Dedekind_Real.real class ring_bit_representation = semiring_bit_representation + ring_bit_operations + assumes "not_eq": "NOT = of_bits \ map Not \ bits_of" locale zip_nat fixes f :: "bool \ bool \ bool" (infixl \\<^bold>*\ 70) assumes "zip_nat (\<^bold>*)" instantiation Dedekind_Real.real :: distrib_lattice inf_real == inf :: Dedekind_Real.real \ Dedekind_Real.real \ Dedekind_Real.real sup_real == sup :: Dedekind_Real.real \ Dedekind_Real.real \ Dedekind_Real.real locale zip_int fixes f :: "bool \ bool \ bool" (infixl \\<^bold>*\ 70) assumes "zip_int (\<^bold>*)" ### theory "HOL-ex.Bit_Lists" ### 5.683s elapsed time, 31.388s cpu time, 9.052s GC time Loading theory "HOL-ex.Parallel_Example" ### theory "HOL-ex.Dedekind_Real" ### 0.943s elapsed time, 5.520s cpu time, 0.848s GC time Loading theory "HOL-ex.Pythagoras" ### theory "HOL-ex.Pythagoras" ### 0.040s elapsed time, 0.240s cpu time, 0.000s GC time Loading theory "HOL-ex.Reflection_Examples" consts add :: "n \ n \ n" consts add2 :: "n \ n \ n" consts mul :: "n \ n \ n" consts mul2 :: "n \ n \ n" consts exp :: "n \ n \ n" ### theory "HOL-ex.Normalization_by_Evaluation" ### 0.845s elapsed time, 4.928s cpu time, 0.848s GC time Loading theory "HOL-ex.Sqrt" consts mark :: "nat \ nat \ bool list \ bool list" consts natify :: "nat \ bool list \ nat list" ### No equation for constructor "0" consts list_primes :: "nat \ nat list" ### theory "HOL-ex.Sqrt" ### 0.625s elapsed time, 3.600s cpu time, 1.032s GC time Loading theory "HOL-ex.Sqrt_Script" ### theory "HOL-ex.Parallel_Example" ### 1.028s elapsed time, 6.032s cpu time, 1.032s GC time Loading theory "HOL-ex.Sum_of_Powers" Found termination order: "size <*mlex*> {}" ### theory "HOL-ex.Sqrt_Script" ### 0.412s elapsed time, 2.484s cpu time, 0.000s GC time Loading theory "HOL-ex.Triangular_Numbers" ### theory "HOL-ex.Sum_of_Powers" ### 0.357s elapsed time, 2.156s cpu time, 0.000s GC time ### theory "HOL-ex.Triangular_Numbers" ### 0.056s elapsed time, 0.336s cpu time, 0.000s GC time ### theory "HOL-ex.Eval_Examples" ### 2.436s elapsed time, 14.348s cpu time, 1.880s GC time consts interp :: "form \ 'a list \ bool" Trying to find a model that refutes: P Unfolded term: P Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Trying to find a model that refutes: Q Unfolded term: Q Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Trying to find a model that refutes: P Unfolded term: P Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) P: False Trying to find a model that refutes: P Unfolded term: P Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) P: False Trying to find a model that refutes: Q Unfolded term: Q Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) Q: False Trying to find a model that refutes: False Unfolded term: False Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... Model found: empty universe (no type variables in term) P: False Trying to find a model that refutes: P Unfolded term: P Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) Q: False Trying to find a model that refutes: \ P Unfolded term: \ P Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) empty interpretation (no free variables in term) Trying to find a model that refutes: P \ Q Unfolded term: P \ Q Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... Model found: empty universe (no type variables in term) P: False Trying to find a model that refutes: P \ Q Unfolded term: P \ Q Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) P: True Trying to find a model that refutes: P \ Q Unfolded term: P \ Q Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) Q: False P: True Trying to find a model that refutes: P = Q Unfolded term: P = Q Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) Q: False P: False Trying to find a model that refutes: P \ Q \ P \ Q Unfolded term: P \ Q \ P \ Q Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... Model found: empty universe (no type variables in term) Q: False P: False Trying to find a model that refutes: P x y z Unfolded term: P x y z Adding axioms... ...done. Ground types: 'c, 'b, 'a Translating term (sizes: 1, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) Q: False P: True Trying to find a model that refutes: P x y \ P y x Unfolded term: P x y \ P y x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... Model found: Size of types: 'c: 1, 'b: 1, 'a: 1 z: ??.c0 y: ??.b0 x: ??.a0 P: {(??.a0, {(??.b0, {(??.c0, False)})})} ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Trying to find a model that refutes: P (f (f x)) \ P x \ P (f x) Unfolded term: P (f (f x)) \ P x \ P (f x) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... Model found: empty universe (no type variables in term) Q: False P: True Trying to find a model that refutes: P = True Unfolded term: P = True Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2 y: ??.a1 x: ??.a0 P: {(??.a0, {(??.a0, True), (??.a1, True)}), (??.a1, {(??.a0, False), (??.a1, False)})} Trying to find a model that refutes: P = False Unfolded term: P = False Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) P: True Trying to find a model that refutes: x = y Unfolded term: x = y Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Model found: Size of types: 'a: 2 x: ??.a0 f: {(??.a0, ??.a1), (??.a1, ??.a0)} P: {(??.a0, True), (??.a1, False)} Trying to find a model that refutes: f x = g x Unfolded term: f x = g x Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... Model found: empty universe (no type variables in term) P: False Trying to find a model that refutes: f = g Unfolded term: f = g Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2 y: ??.a1 x: ??.a0 Trying to find a model that refutes: f = g Unfolded term: f = g Adding axioms... ...done. Ground types: 'd, 'c Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2, 'b: 1 g: {(??.b0, ??.a1)} x: ??.b0 f: {(??.b0, ??.a0)} Trying to find a model that refutes: a \ b Unfolded term: a \ b Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 2, 'a: 1 g: {(??.a0, ??.b1)} f: {(??.a0, ??.b0)} Trying to find a model that refutes: \x. P x Unfolded term: Ex P Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'd: 2, 'c: 1 g: {({(??.d0, ??.d0), (??.d1, ??.d0)}, {(??.c0, ??.d1)}), ({(??.d0, ??.d0), (??.d1, ??.d1)}, {(??.c0, ??.d1)}), ({(??.d0, ??.d1), (??.d1, ??.d0)}, {(??.c0, ??.d1)}), ({(??.d0, ??.d1), (??.d1, ??.d1)}, {(??.c0, ??.d1)})} f: {({(??.d0, ??.d0), (??.d1, ??.d0)}, {(??.c0, ??.d0)}), ({(??.d0, ??.d0), (??.d1, ??.d1)}, {(??.c0, ??.d0)}), ({(??.d0, ??.d1), (??.d1, ??.d0)}, {(??.c0, ??.d0)}), ({(??.d0, ??.d1), (??.d1, ??.d1)}, {(??.c0, ??.d0)})} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 b: ??.a0 a: ??.a0 Trying to find a model that refutes: \!x. P x Model found: Size of types: 'a: 1 P: {(??.a0, False)} Trying to find a model that refutes: Ex P Unfolded term: Ex P Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Model found: Size of types: 'a: 1 x: ??.a0 P: {(??.a0, False)} Trying to find a model that refutes: All P Unfolded term: All P Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Unfolded term: \x. P x \ (\y. P y \ y = x) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 P: {(??.a0, False)} Trying to find a model that refutes: Ex1 P Model found: Size of types: 'a: 1 P: {(??.a0, False)} Trying to find a model that refutes: (\x. P x) \ (\x. P x) Unfolded term: Ex P \ All P Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Unfolded term: \x. P x \ (\y. P y \ y = x) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... Model found: Size of types: 'a: 1 P: {(??.a0, False)} Trying to find a model that refutes: (\x. \y. P x y) \ (\y. \x. P x y) Unfolded term: (\x. Ex (P x)) \ (\y. \x. P x y) Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 P: {(??.a0, False)} Trying to find a model that refutes: (\x. P x) \ (\!x. P x) Model found: Size of types: 'a: 2 P: {(??.a0, True), (??.a1, False)} Unfolded term: Ex P \ (\x. P x \ (\y. P y \ y = x)) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Trying to find a model that refutes: a = b \ a = c \ a = d \ a = e \ b = c \ b = d \ b = e \ c = d \ c = e \ d = e Unfolded term: a = b \ a = c \ a = d \ a = e \ b = c \ b = d \ b = e \ c = d \ c = e \ d = e Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2 P: {(??.a0, True), (??.a1, True)} Trying to find a model that refutes: a = b \ a = c \ a = d \ a = e \ b = c \ b = d \ b = e \ c = d \ c = e \ d = e Unfolded term: a = b \ a = c \ a = d \ a = e \ b = c \ b = d \ b = e \ c = d \ c = e \ d = e Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2, 'b: 2 P: {(??.a0, {(??.b0, True), (??.b1, False)}), (??.a1, {(??.b0, False), (??.b1, True)})} Trying to find a model that refutes: \\x. P x x; \x y. P x y \ P y x\ \ P x y \ P y z \ P x z Unfolded term: \\x. P x x; \x y. P x y \ P y x\ \ P x y \ P y z \ P x z Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 5 e: ??.a4 d: ??.a3 c: ??.a2 b: ??.a1 a: ??.a0 Trying to find a model that refutes: (\x. f x = g x) \ f = g Unfolded term: (\x. f x = g x) \ f = g Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... consts Ifm :: "fm \ bool list \ bool" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... Model found: Size of types: 'a: 3 z: ??.a2 y: ??.a1 x: ??.a0 P: {(??.a0, {(??.a0, True), (??.a1, True), (??.a2, False)}), (??.a1, {(??.a0, True), (??.a1, True), (??.a2, True)}), (??.a2, {(??.a0, False), (??.a1, True), (??.a2, True)})} Trying to find a model that refutes: \x. f x = x Unfolded term: \x. f x = x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... consts fmsize :: "fm \ nat" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2 f: {(??.a0, ??.a1), (??.a1, ??.a0)} Trying to find a model that refutes: f (g x) = g (f x) Unfolded term: f (g x) = g (f x) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2 x: ??.a0 g: {(??.a0, ??.a1), (??.a1, ??.a0)} f: {(??.a0, ??.a0), (??.a1, ??.a0)} Trying to find a model that refutes: P f = P g \ f x = g x Unfolded term: P f = P g \ f x = g x Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 2, 'a: 1 x: ??.a0 g: {(??.a0, ??.b1)} f: {(??.a0, ??.b0)} P: {({(??.a0, ??.b0)}, True), ({(??.a0, ??.b1)}, True)} Trying to find a model that refutes: P Unfolded term: P Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2, 'b: 2 g: {(??.a0, ??.b1), (??.a1, ??.b0)} f: {(??.a0, ??.b0), (??.a1, ??.b0)} Trying to find a model that refutes: \!P. P x ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 5 e: ??.a4 d: ??.a3 c: ??.a2 b: ??.a1 a: ??.a0 Trying to find a model that refutes: P Q \ Q x Unfolded term: P Q \ Q x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Model found: empty universe (no type variables in term) P: False Trying to find a model that refutes: x \ All Unfolded term: x \ All Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Unfolded term: \xa. xa x \ (\y. y x \ y = xa) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 x: ??.a0 Q: {(??.a0, False)} P: {({(??.a0, True)}, False), ({(??.a0, False)}, False)} Model found: Size of types: 'a: 1 x: {({(??.a0, True)}, True), ({(??.a0, False)}, False)} Trying to find a model that refutes: x \ Ex Unfolded term: x \ Ex Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Trying to find a model that refutes: x \ Ex1 Unfolded term: x \ (\P. \x. P x \ (\y. P y \ y = x)) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 x: {({(??.a0, True)}, True), ({(??.a0, False)}, False)} Trying to find a model that refutes: trans_closure T P \ (\x y. T x y) ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Found termination order: "fmsize <*mlex*> {}" Unfolded term: (\x y. P x y \ T x y) \ (\x y z. T x y \ T y z \ T x z) \ (\R. (\x y. P x y \ R x y) \ (\x y z. R x y \ R y z \ R x z) \ (\x y. T x y \ R x y)) \ (\x. Ex (T x)) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Model found: Size of types: 'a: 1 x: {({(??.a0, True)}, True), ({(??.a0, False)}, False)} Trying to find a model that refutes: (\y. \x. y = f x) \ (\g. \x. g (f x) = x) Unfolded term: (\y. \x. y = f x) \ (\g. \x. g (f x) = x) Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2 x: ??.a0 Trying to find a model that refutes: (\g. \x. g (f x) = x) \ (\y. \x. y = f x) Unfolded term: (\g. \x. g (f x) = x) \ (\y. \x. y = f x) Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1, 'b: 2 f: {(??.b0, ??.a0), (??.b1, ??.a0)} Trying to find a model that refutes: (\x. \y. P x y) \ (\!f. \x. P x (f x)) Unfolded term: (\x. Ex (P x)) \ (\x. (\xa. P xa (x xa)) \ (\y. (\x. P x (y x)) \ y = x)) Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... Model found: Size of types: 'a: 1 T: {(??.a0, {(??.a0, False)})} P: {(??.a0, {(??.a0, False)})} ### Ignoring duplicate introduction (intro) ### (\x. ?f x = ?g x) \ ?f = ?g Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 x: ??.a0 P: {(??.a0, False)} Trying to find a model that refutes: f x \ g x Unfolded term: f x \ g x Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 1, 'a: 2 f: {(??.b0, ??.a0)} Trying to find a model that refutes: P \ Q ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Unfolded term: P \ Q Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... Model found: Size of types: 'a: 2, 'b: 1 g: {(??.b0, ??.a1)} x: ??.b0 f: {(??.b0, ??.a0)} Trying to find a model that refutes: \P; Q; R\ \ S Unfolded term: \P; Q; R\ \ S Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) Q: False P: True Trying to find a model that refutes: x \ Pure.all \ False Unfolded term: x \ Pure.all \ False Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 x: {({(??.a0, True)}, True), ({(??.a0, False)}, False)} Trying to find a model that refutes: x \ (\) \ False Unfolded term: x \ (\) \ False Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Model found: empty universe (no type variables in term) S: False R: True Q: True P: True Trying to find a model that refutes: x \ (\) \ False Unfolded term: x \ (\) \ False Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 x: {(??.a0, {(??.a0, True)})} Trying to find a model that refutes: \P. (P) Unfolded term: Ex Trueprop Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... Model found: Size of types: 'a: 1, 'b: 2 P: {(??.a0, {(??.b0, True), (??.b1, True)})} Trying to find a model that refutes: \y. (x = y) Unfolded term: \y. (x = y) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: (\x. x) = (\x. y) Unfolded term: (\x. x) = (\x. y) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... Model found: empty universe (no type variables in term) x: {(True, {(True, True), (False, False)}), (False, {(True, True), (False, True)})} Trying to find a model that refutes: (\f. f x) = (\f. True) Unfolded term: (\f. f x) = (\f. True) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2 y: ??.a0 Trying to find a model that refutes: P A Unfolded term: P A Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 x: ??.a0 Trying to find a model that refutes: P A Unfolded term: P A Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 A: {??.a0} P: {({??.a0}, False), ({}, False)} Trying to find a model that refutes: x \ {x. P x} Unfolded term: x \ Collect P Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 x: ??.a0 P: {(??.a0, False)} Trying to find a model that refutes: P (\) Unfolded term: P (\) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... Model found: Size of types: 'a: 1 A: {{}, {??.a0}} P: {({{}, {??.a0}}, False), ({{??.a0}}, False), ({{}}, False), ({}, False)} Trying to find a model that refutes: P ((\) x) Unfolded term: P ((\) x) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... Model found: Size of types: 'a: 1 P: {({(??.a0, {({??.a0}, True), ({}, True)})}, True), ({(??.a0, {({??.a0}, True), ({}, False)})}, False), ({(??.a0, {({??.a0}, False), ({}, True)})}, True), ({(??.a0, {({??.a0}, False), ({}, False)})}, True)} Trying to find a model that refutes: P Collect Unfolded term: P Collect Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... Model found: Size of types: 'a: 1 x: ??.a0 P: {({({??.a0}, True), ({}, True)}, True), ({({??.a0}, True), ({}, False)}, False), ({({??.a0}, False), ({}, True)}, True), ({({??.a0}, False), ({}, False)}, True)} Trying to find a model that refutes: A \ B = A \ B ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Unfolded term: {x. x \ A \ x \ B} = {x \ A. x \ B} Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6) ... Model found: Size of types: 'a: 1 P: {({({(??.a0, True)}, {??.a0}), ({(??.a0, False)}, {??.a0})}, True), ({({(??.a0, True)}, {??.a0}), ({(??.a0, False)}, {})}, False), ({({(??.a0, True)}, {}), ({(??.a0, False)}, {??.a0})}, True), ({({(??.a0, True)}, {}), ({(??.a0, False)}, {})}, True)} Trying to find a model that refutes: A \ B \ C = (A \ C) \ B ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 B: {} A: {??.a0} Trying to find a model that refutes: Ball A P \ Bex A P consts num_size :: "Reflection_Examples.num \ nat" Unfolded term: (\x. x \ A \ P x) \ (\x. x \ A \ P x) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... consts Inum :: "Reflection_Examples.num \ nat list \ nat" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 P: {(??.a0, True)} A: {} Trying to find a model that refutes: undefined Unfolded term: undefined Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) enable "show_consts" to show the interpretation of constants Trying to find a model that refutes: P undefined Unfolded term: P undefined Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 enable "show_consts" to show the interpretation of constants P: {(??.a0, False)} Trying to find a model that refutes: undefined x Unfolded term: undefined x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 enable "show_consts" to show the interpretation of constants x: ??.a0 Trying to find a model that refutes: undefined undefined Unfolded term: undefined undefined Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 enable "show_consts" to show the interpretation of constants Trying to find a model that refutes: The P Unfolded term: The P Adding axioms... HOL.the_eq_trivial Unfolded term: {x. x \ {x \ A. x \ B} \ x \ C} = {x \ {x. x \ A \ x \ C}. x \ B} Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... OFCLASS(bool, type_class) ...done. Ground types: bool itself Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 C: {??.a0} B: {} A: {??.a0} Trying to find a model that refutes: P The Unfolded term: P The Adding axioms... HOL.the_eq_trivial OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: bool itself: 1 enable "show_consts" to show the interpretation of constants P: {(True, True), (False, True)} Trying to find a model that refutes: P (The P) Unfolded term: P (The P) Adding axioms... HOL.the_eq_trivial OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: (THE x. x = y) = z Unfolded term: (THE x. x = y) = z Adding axioms... HOL.the_eq_trivial OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 1 enable "show_consts" to show the interpretation of constants P: {({({(??.a0, True)}, ??.a0), ({(??.a0, False)}, ??.a0)}, False)} Trying to find a model that refutes: Ex P \ P (The P) Unfolded term: Ex P \ P (The P) Adding axioms... HOL.the_eq_trivial ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... OFCLASS('a, type_class) Model found: Size of types: 'a itself: 1, 'a: 1 enable "show_consts" to show the interpretation of constants P: {(??.a0, False)} Trying to find a model that refutes: Eps P Unfolded term: Eps P Adding axioms... Hilbert_Choice.someI ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### theory "HOL-ex.Simproc_Tests" ### 17.864s elapsed time, 98.120s cpu time, 20.588s GC time Trying to find a model that refutes: P Eps Unfolded term: P Eps Adding axioms... OFCLASS(bool, type_class) Hilbert_Choice.someI OFCLASS('a, type_class) ...done. Ground types: bool itself Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 2 enable "show_consts" to show the interpretation of constants z: ??.a1 y: ??.a0 Trying to find a model that refutes: P (Eps P) Unfolded term: P (Eps P) Adding axioms... Hilbert_Choice.someI OFCLASS('a, type_class) Model found: Size of types: 'a itself: 1, 'a: 1 enable "show_consts" to show the interpretation of constants P: {({({(??.a0, True)}, ??.a0), ({(??.a0, False)}, ??.a0)}, False)} ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 1 enable "show_consts" to show the interpretation of constants P: {(??.a0, False)} ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: bool itself: 1 enable "show_consts" to show the interpretation of constants P: {(True, True), (False, True)} ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 3 enable "show_consts" to show the interpretation of constants P: {(??.a0, True), (??.a1, True), (??.a2, False)} Trying to find a model that refutes: (SOME x. x = y) = z Unfolded term: (SOME x. x = y) = z Adding axioms... Trying to find a model that refutes: x = y Unfolded term: x = y Adding axioms... Hilbert_Choice.someI Typedef.type_definition_def OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... Trying to find a model that refutes: P f Unfolded term: P f Adding axioms... Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Typedef.type_definition_def Model found: empty universe (no type variables in term) x: () P: {((), False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) x: () P: {((), False)} Trying to find a model that refutes: P () Unfolded term: P () Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ...done. Ground types: ?'a, 'a, 'a myTdef Translating term (sizes: 1, 1, 1) ... Model found: empty universe (no type variables in term) P: {((), False)} Trying to find a model that refutes: P (case x of () \ u) Unfolded term: P (THE z. x = () \ z = u) Adding axioms... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... HOL.the_eq_trivial OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ...done. Ground types: ?'a, myTdecl, myTdecl myTdef, myTdecl myTdef T_bij Translating term (sizes: 1, 1, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 1 enable "show_consts" to show the interpretation of constants u: ??.a0 x: () P: {(??.a0, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Found termination order: "(\p. num_size (snd p)) <*mlex*> (\p. num_size (fst p)) <*mlex*> {}" Model found: Size of types: 'a: 1 x: None P: {(None, False), (Some ??.a0, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1, 1) ... Model found: Size of types: 'a: 1 x: None P: {(None, False), (Some ??.a0, False)} Trying to find a model that refutes: P None Unfolded term: P None Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 P: {(None, False), (Some ??.a0, True)} Trying to find a model that refutes: P (Some x) Unfolded term: P (Some x) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: ?'a: 1, myTdecl: 1, myTdecl myTdef: 1, myTdecl myTdef T_bij: 1 f: ??.Refute_Examples.T_bij0 P: {(??.Refute_Examples.T_bij0, False)} Trying to find a model that refutes: P (case x of None \ n | Some u \ s u) Found termination order: "(\p. num_size (fst p)) <*mlex*> {}" Model found: Size of types: 'a: 1 x: ??.a0 P: {(None, True), (Some ??.a0, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Unfolded term: P (THE z. x = None \ z = n \ (\x2. x = Some x2 \ z = s x2)) Adding axioms... HOL.the_eq_trivial OFCLASS('a, type_class) Model found: Size of types: 'b: 1, 'a: 1 x: (??.a0, ??.b0) P: {((??.a0, ??.b0), False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ...done. Ground types: 'a itself, 'a, 'b Translating term (sizes: 1, 1, 1) ... Model found: Size of types: 'b: 1, 'a: 1 x: (??.a0, ??.b0) P: {((??.a0, ??.b0), False)} Trying to find a model that refutes: P (x, y) Unfolded term: P (x, y) Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 2 enable "show_consts" to show the interpretation of constants z: ??.a1 y: ??.a0 Trying to find a model that refutes: P (fst x) Unfolded term: P (fst x) Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 1, 'a: 1 y: ??.b0 x: ??.a0 P: {((??.a0, ??.b0), False)} Trying to find a model that refutes: P (snd x) Unfolded term: P (snd x) Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Found termination order: "num_size <*mlex*> {}" Model found: Size of types: 'a: 1, 'b: 1 x: (??.a0, ??.b0) P: {(??.a0, False)} Trying to find a model that refutes: P Pair Unfolded term: P Pair Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1, 'b: 1 x: (??.b0, ??.a0) P: {(??.a0, False)} Trying to find a model that refutes: P (case x of (a, b) \ p a b) Unfolded term: P (THE z. \x1 x2. x = (x1, x2) \ z = p x1 x2) Adding axioms... HOL.the_eq_trivial Model found: Size of types: 'b: 1, 'a: 1 P: {({(??.a0, {(??.b0, ??.a0, ??.b0)})}, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a, 'b, 'c Translating term (sizes: 1, 1, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 1, 'a: 1 x: Inl ??.a0 P: {(Inl ??.a0, False), (Inr ??.b0, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 1, 'b: 1 enable "show_consts" to show the interpretation of constants s: {(??.b0, ??.a0)} n: ??.a0 x: None P: {(??.a0, False)} Trying to find a model that refutes: P (Inl x) Unfolded term: P (Inl x) Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 1, 'a: 1 x: Inl ??.a0 P: {(Inl ??.a0, False), (Inr ??.b0, False)} Trying to find a model that refutes: P (Inr x) Unfolded term: P (Inr x) Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 1, 'a: 1 x: ??.a0 P: {(Inl ??.a0, False), (Inr ??.b0, True)} Trying to find a model that refutes: P Inl Unfolded term: P Inl Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 1, 'a: 1 x: ??.b0 P: {(Inl ??.a0, True), (Inr ??.b0, False)} Trying to find a model that refutes: P (case x of Inl a \ l a | Inr b \ r b) Unfolded term: P (THE z. (\x1. x = Inl x1 \ z = l x1) \ (\x2. x = Inr x2 \ z = r x2)) Adding axioms... Model found: Size of types: 'b: 1, 'a: 1 P: {({(??.a0, Inl ??.a0)}, False), ({(??.a0, Inr ??.b0)}, True)} HOL.the_eq_trivial OFCLASS('a, type_class) ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ...done. Ground types: 'a itself, 'a, 'b, 'c Translating term (sizes: 1, 1, 1, 1) ... Model found: Size of types: 'a itself: 1, 'a: 1, 'b: 1, 'c: 1 enable "show_consts" to show the interpretation of constants p: {(??.b0, {(??.c0, ??.a0)})} x: (??.b0, ??.c0) P: {(??.a0, False)} one_class.one [nat] 1 \ Suc 0 plus [nat] Suc ?m + ?n \ ?m + Suc ?n 0 + ?n \ ?n shd shd (?x1.0 ## ?x2.0) \ ?x1.0 stake stake 0 ?xs \ [] stake (Suc ?n) ?xs \ shd ?xs # stake ?n (stl ?xs) stl stl (?x1.0 ## ?x2.0) \ ?x2.0 up up ?n \ ?n ## up (?n + 1) ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 1, 'b: 1, 'c: 1 enable "show_consts" to show the interpretation of constants r: {(??.c0, ??.a0)} l: {(??.b0, ??.a0)} x: Inl ??.b0 P: {(??.a0, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) x: A P: {(A, False), (B, False)} Trying to find a model that refutes: P A Unfolded term: P A Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) x: A P: {(A, False), (B, False)} Model found: empty universe (no type variables in term) P: {(A, False), (B, True)} Trying to find a model that refutes: P B Unfolded term: P B Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) P: {(A, True), (B, False)} Trying to find a model that refutes: P (rec_T1 a b x) Unfolded term: P (rec_T1 a b x) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 x: A b: ??.a0 a: ??.a0 P: {(??.a0, False)} Trying to find a model that refutes: P (case x of A \ a | B \ b) Unfolded term: P (THE z. x = A \ z = a \ x = B \ z = b) Adding axioms... HOL.the_eq_trivial OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 1 enable "show_consts" to show the interpretation of constants b: ??.a0 a: ??.a0 x: A P: {(??.a0, False)} case_stream_lazy case_stream_lazy ?uu (SCons_Lazy ?uua ?uub) \ ?uu ?uua ?uub force force (delay ?f) \ ?f () one_class.one [nat] 1 \ Suc 0 plus [nat] Suc ?m + ?n \ ?m + Suc ?n 0 + ?n \ ?n shd shd ?xa \ case_stream_lazy (\x2aa x1a. x2aa) (force (unlazy_stream ?xa)) stake stake 0 ?xs \ [] stake (Suc ?n) ?xs \ shd ?xs # stake ?n (stl ?xs) stl stl ?xa \ case_stream_lazy (\x2a x1aa. x1aa) (force (unlazy_stream ?xa)) unlazy_stream unlazy_stream (Lazy_stream ?uu) \ ?uu up up ?n \ Lazy_stream (delay (\uu. SCons_Lazy ?n (up (?n + 1)))) "[3, 4, 5, 6, 7]" :: "nat list" ### Multiple modes possible for comprehension {x. test\<^sup>*\<^sup>* A C} ### Multiple modes possible for comprehension {x. test\<^sup>*\<^sup>* C A} ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2, 1) ... ### Multiple modes possible for comprehension {x. test\<^sup>*\<^sup>* A x} "{()}" :: "unit set" "{A, B, A, C}" :: "ty set" "{}" :: "unit set" "{C, A, B}" :: "ty set" Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... consts linaformsize :: "aform \ nat" consts is_aform :: "aform \ nat list \ bool" Model found: Size of types: 'a: 1 x: C A P: {(C A, False), (C B, False), (D ??.a0, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... "(\u ua. pred.eval (case u of A \ case ua of B \ Predicate.Seq (\u. seq.Insert () (Predicate.Seq (\u. seq.Empty))) | _ \ Predicate.Seq (\u. seq.Empty) | _ \ Predicate.Seq (\u. seq.Empty)) () \ pred.eval (case u of B \ case ua of A \ Predicate.Seq (\u. seq.Insert () (Predicate.Seq (\u. seq.Empty))) | _ \ Predicate.Seq (\u. seq.Empty) | _ \ Predicate.Seq (\u. seq.Empty)) () \ pred.eval (case u of B \ case ua of C \ Predicate.Seq (\u. seq.Insert () (Predicate.Seq (\u. seq.Empty))) | _ \ Predicate.Seq (\u. seq.Empty) | _ \ Predicate.Seq (\u. seq.Empty)) ())\<^sup>*\<^sup>* A C" :: "bool" Trying to find a model that refutes: P D Unfolded term: P D Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... "(\u ua. pred.eval (case u of A \ case ua of B \ Predicate.Seq (\u. seq.Insert () (Predicate.Seq (\u. seq.Empty))) | _ \ Predicate.Seq (\u. seq.Empty) | _ \ Predicate.Seq (\u. seq.Empty)) () \ pred.eval (case u of B \ case ua of A \ Predicate.Seq (\u. seq.Insert () (Predicate.Seq (\u. seq.Empty))) | _ \ Predicate.Seq (\u. seq.Empty) | _ \ Predicate.Seq (\u. seq.Empty)) () \ pred.eval (case u of B \ case ua of C \ Predicate.Seq (\u. seq.Insert () (Predicate.Seq (\u. seq.Empty))) | _ \ Predicate.Seq (\u. seq.Empty) | _ \ Predicate.Seq (\u. seq.Empty)) ())\<^sup>*\<^sup>* C A" :: "bool" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 1, 2) ... Trying to find a model that refutes: P (rec_T2 c d x) Unfolded term: P (rec_T2 c d x) Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... Model found: Size of types: 'a: 1 x: C A P: {(C A, False), (C B, False), (D ??.a0, False)} Trying to find a model that refutes: P (case x of C u \ c u | D v \ d v) Unfolded term: P (THE z. (\x1. x = C x1 \ z = c x1) \ (\x2. x = D x2 \ z = d x2)) Adding axioms... Model found: Size of types: 'a: 1 P: {({(??.a0, C A)}, True), ({(??.a0, C B)}, True), ({(??.a0, D ??.a0)}, False)} "Contrived (make_container None)" :: "'a contrived" HOL.the_eq_trivial ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a, 'b Translating term (sizes: 1, 1, 1) ... Model found: Size of types: 'a: 1, 'b: 1 x: C A d: {(??.b0, ??.a0)} c: {(A, ??.a0), (B, ??.a0)} P: {(??.a0, False)} Found termination order: "linaformsize <*mlex*> {}" "3" :: "nat" "_" :: "nat llist" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 1, 'b: 1 enable "show_consts" to show the interpretation of constants d: {(??.b0, ??.a0)} c: {(A, ??.a0), (B, ??.a0)} x: C A P: {(??.a0, False)} "(3, 1 ### 2 ### 3 ### _)" :: "nat \ nat llist" Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 1, 'a: 1 x: E {(??.a0, ??.b0)} P: {(E {(??.a0, ??.b0)}, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 1, 'a: 1 x: E {(??.a0, ??.b0)} P: {(E {(??.a0, ??.b0)}, False)} Trying to find a model that refutes: P E Unfolded term: P E Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'b: 1, 'a: 1 P: {({({(??.a0, ??.b0)}, E {(??.a0, ??.b0)})}, False)} Trying to find a model that refutes: P (rec_T3 e x) Unfolded term: P (rec_T3 e x) Adding axioms... ...done. Ground types: 'a, 'c, 'b Translating term (sizes: 1, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1, 'c: 1, 'b: 1 x: E {(??.b0, ??.c0)} e: {({(??.b0, ??.c0)}, ??.a0)} P: {(??.a0, False)} Trying to find a model that refutes: P (case x of E f \ e f) Unfolded term: P (THE z. \xa. x = E xa \ z = e xa) Adding axioms... HOL.the_eq_trivial OFCLASS('a, type_class) ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: ?'a: 1, 'a: 1, 'a myTdef: 2 y: ??.Refute_Examples.myTdef1 x: ??.Refute_Examples.myTdef0 Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ...done. Ground types: 'a itself, 'a, 'c, 'b Translating term (sizes: 1, 1, 1, 1) ... Model found: Size of types: nat: 1 x: 0 P: {(0, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: nat: 1 x: 0 P: {(0, False)} ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... consts Irb :: "rb \ bool" Model found: Size of types: 'a itself: 1, 'a: 1, 'c: 1, 'b: 1 enable "show_consts" to show the interpretation of constants e: {({(??.b0, ??.c0)}, ??.a0)} x: E {(??.b0, ??.c0)} P: {(??.a0, False)} Trying to find a model that refutes: P (Suc 0) Unfolded term: P (Suc 0) Adding axioms... ...done. Ground types: nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... "1" :: "nat" Trying to find a model that refutes: P Suc Unfolded term: P Suc Adding axioms... ...done. Ground types: nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: P (rec_nat zero suc x) Unfolded term: P (rec_nat zero suc x) Adding axioms... ...done. Ground types: 'a, nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... "_" :: "nat llist" Model found: Size of types: nat: 2 P: {(0, True), (Suc 0, False)} Trying to find a model that refutes: P (case x of 0 \ zero | Suc n \ suc n) ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Unfolded term: P (THE z. x = 0 \ z = zero \ (\x2. x = Suc x2 \ z = suc x2)) Adding axioms... HOL.the_eq_trivial OFCLASS('a, type_class) Model found: Size of types: 'a: 1, nat: 1 x: 0 suc: {(0, {(??.a0, ??.a0)})} zero: ??.a0 P: {(??.a0, False)} Trying to find a model that refutes: P xs Unfolded term: P xs Adding axioms... ...done. Ground types: 'a list, 'a ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ...done. Ground types: 'a itself, 'a, nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1, 1) ... "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "Some (0, ())" :: "(nat \ unit) option" Trying to find a model that refutes: P xs Unfolded term: P xs Adding axioms... ...done. Ground types: 'a list, 'a ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a list: 1, 'a: 1 xs: [] P: {([], False)} Trying to find a model that refutes: P [x, y] Unfolded term: P [x, y] Adding axioms... ...done. Ground types: 'a list, 'a ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... Model found: Size of types: 'a list: 1, 'a: 1 xs: [] P: {([], False)} Trying to find a model that refutes: P (rec_list nil cons xs) Unfolded term: P (rec_list nil cons xs) Adding axioms... ...done. Ground types: 'a, 'b list, 'b ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1, 'b list: 1, 'b: 1 xs: [] cons: {(??.b0, {([], {(??.a0, ??.a0)})})} nil: ??.a0 P: {(??.a0, False)} Trying to find a model that refutes: P (case x of [] \ nil | a # b \ cons a b) ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... Unfolded term: P (THE z. x = [] \ z = nil \ (\x21 x22. x = x21 # x22 \ z = cons x21 x22)) Adding axioms... HOL.the_eq_trivial OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a, 'b list, 'b ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "Some (0, ())" :: "(nat \ unit) option" Trying to find a model that refutes: xs = ys Unfolded term: xs = ys Adding axioms... ...done. Ground types: 'a list, 'a ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... Model found: Size of types: 'a itself: 1, 'a: 1, nat: 1 enable "show_consts" to show the interpretation of constants suc: {(0, ??.a0)} zero: ??.a0 x: 0 P: {(??.a0, False)} Trying to find a model that refutes: a # xs = b # xs Unfolded term: a # xs = b # xs Adding axioms... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ...done. Ground types: 'a list, 'a ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a list: 2, 'a: 1 ys: [??.a0] xs: [] ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... Model found: Size of types: 'a list: 3, 'a: 1 y: ??.a0 x: ??.a0 P: {([], True), ([??.a0], True), ([??.a0, ??.a0], False)} ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a itself: 1, 'a: 1, 'b list: 1, 'b: 1 enable "show_consts" to show the interpretation of constants cons: {(??.b0, {([], ??.a0)})} nil: ??.a0 x: [] P: {(??.a0, False)} ### translating term ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### computing NBE expression ### 0.003s elapsed time, 0.020s cpu time, 0.000s GC time ### postprocessing term ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time val it = "Code_Timing.primes_upto 200 \ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]": thm ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### translating term ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### computing NBE expression ### 0.006s elapsed time, 0.040s cpu time, 0.000s GC time ### postprocessing term ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time val it = "Code_Timing.primes_upto 400 \ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397]": thm ### translating term ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### compiling ML ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### computing NBE expression ### 0.011s elapsed time, 0.064s cpu time, 0.000s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a list: 2, 'a: 2 b: ??.a1 xs: [] a: ??.a0 ### postprocessing term ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time val it = "Code_Timing.primes_upto 600 \ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599]": thm "EXPR (a + b + c)" :: "('a \ nat) \ nat" "EXPR (a + b + c + VAR x + VAR y + 1)" :: "('a \ nat) \ nat" "EXPR (VAR (f w) + VAR x)" :: "('a \ nat) \ nat" "Expr (\env. env x)" :: "('a \ nat) \ nat" "EXPR (VAR f)" :: "('a \ nat) \ nat" "Expr (\env. f env + env x)" :: "('a \ nat) \ nat" "EXPR ((VAR f) y z)" :: "('a \ nat) \ nat" "EXPR (VAR f + VAR (g y))" :: "('a \ nat) \ nat" "EXPR (VAR f + (VAR g) y + (VAR (h a)) z)" :: "('a \ nat) \ nat" "set (List.insert (1::'a) [0::'a])" :: "'a set" ### simplifying ### 0.677s elapsed time, 3.916s cpu time, 0.480s GC time ### postprocessing term ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time val it = "Code_Timing.primes_upto 100 \ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]": thm consts Irint :: "rint \ int list \ int" "set (List.insert (1::'b) [0::'b])" :: "'b set" "term_vars (Var (1::'b))" :: "'b set" "\ (vars ` R)" :: "'b set" "fold insert (List.insert (1::'b) [0::'b]) {}" :: "'b set" ### Ignoring duplicate rewrite rule: ### Pi\<^sub>E {} ?T1 \ {\x. undefined} ### Ignoring duplicate rewrite rule: ### \x\?A1. ?y1 \ ?y1 ^ card ?A1 ### Ignoring duplicate rewrite rule: ### \x\?A1. ?y1 \ ?y1 ^ card ?A1 consts Irlist :: "rlist \ int list \ int list list \ int list" abc abc \\\\\ xzy "[]" :: "char list" "''abc''" :: "char list" "''abc'' @ ''xyz''" :: "char list" "''\''" :: "char list" "[]" :: "char list" "''abc''" :: "char list" "''abc'' @ ''xyz''" :: "char list" "''\''" :: "char list" "[CHR 0x01, CHR ''\'', CHR ''d'']" :: "char list" Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: BitList ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: BitList: 1 x: BitListNil P: {(BitListNil, False)} Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: BitList ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: BitList: 1 x: BitListNil P: {(BitListNil, False)} Trying to find a model that refutes: P (Bit0 (Bit1 BitListNil)) Unfolded term: P (Bit0 (Bit1 BitListNil)) Adding axioms... ...done. Ground types: BitList ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Trying to find a model that refutes: P (rec_BitList nil bit0 bit1 x) Unfolded term: P (rec_BitList nil bit0 bit1 x) Adding axioms... ...done. Ground types: 'a, BitList ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1, BitList: 1 x: BitListNil bit1: {(BitListNil, {(??.a0, ??.a0)})} bit0: {(BitListNil, {(??.a0, ??.a0)})} nil: ??.a0 P: {(??.a0, False)} Trying to find a model that refutes: card x = 0 Unfolded term: card x = 0 Adding axioms... ...done. Ground types: nat, 'a ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: nat: 2, 'a: 1 x: {??.a0} Trying to find a model that refutes: finite x Unfolded term: finite x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: x + y = 0 Unfolded term: x + y = 0 Adding axioms... ...done. Ground types: nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... Trying to find a model that refutes: x = x + x Unfolded term: x = x + x Adding axioms... ...done. Ground types: nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... Model found: Size of types: nat: 2 y: Suc 0 x: 0 Trying to find a model that refutes: x - y + y = x Unfolded term: x - y + y = x Adding axioms... ...done. Ground types: nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: nat: 3 x: Suc 0 Trying to find a model that refutes: x = x * x Unfolded term: x = x * x Adding axioms... ...done. Ground types: nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... Model found: Size of types: nat: 2 y: Suc 0 x: 0 Trying to find a model that refutes: x < x + y Unfolded term: x < x + y Adding axioms... ...done. Ground types: nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: nat: 1 y: 0 x: 0 Trying to find a model that refutes: xs @ [] = ys @ [] Unfolded term: xs @ [] = ys @ [] Adding axioms... ...done. Ground types: 'a list, 'a ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... Model found: Size of types: BitList: 3 P: {(BitListNil, True), (Bit0 BitListNil, True), (Bit0 (Bit0 BitListNil), True), (Bit0 (Bit1 BitListNil), False), (Bit1 BitListNil, True), (Bit1 (Bit0 BitListNil), True), (Bit1 (Bit1 BitListNil), True)} Trying to find a model that refutes: xs @ ys = ys @ xs Unfolded term: xs @ ys = ys @ xs Adding axioms... Model found: Size of types: nat: 5 x: Suc (Suc 0) ...done. Ground types: 'a list, 'a ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 x: ??.a0 P: {(??.a0, False)} Let Let ?s ?f \ ?f ?s mk_tree mk_tree (Suc ?n) \ let t = mk_tree ?n in Lazy_tree (delay (\uu. Node_Lazy t t)) mk_tree 0 \ Lazy_tree (delay (\uu. L_Lazy)) Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... Model found: Size of types: 'a list: 2, 'a: 1 ys: [??.a0] xs: [] Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... Model found: Size of types: 'a itself: 1, 'a: 1 enable "show_consts" to show the interpretation of constants x: ??.a0 P: {(??.a0, False)} ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... Found termination order: "(\p. size (snd p)) <*mlex*> {}" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ...done. Ground types: 'a Translating term (sizes: 1) ... Model found: Size of types: 'a list: 3, 'a: 2 ys: [??.a1] xs: [??.a0] "_" :: "tree" consts Irnat :: "rnat \ int list \ int list list \ nat list \ nat" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 enable "show_consts" to show the interpretation of constants x: ??.a0 P: {(??.a0, False)} "\ \<^bold>l: \ \<^bold>l: \ \<^bold>l: \ \<^bold>l: _ \<^bold>r: _ \<^bold>r: \ \<^bold>l: _ \<^bold>r: _ \<^bold>r: \ \<^bold>l: \ \<^bold>l: _ \<^bold>r: _ \<^bold>r: \ \<^bold>l: _ \<^bold>r: _ \<^bold>r: \ \<^bold>l: \ \<^bold>l: \ \<^bold>l: _ \<^bold>r: _ \<^bold>r: \ \<^bold>l: _ \<^bold>r: _ \<^bold>r: \ \<^bold>l: \ \<^bold>l: _ \<^bold>r: _ \<^bold>r: \ \<^bold>l: _ \<^bold>r: _" :: "tree" "\ \<^bold>l: \ \<^bold>l: \ \<^bold>l: \ \<^bold>r: \ \<^bold>r: \ \<^bold>l: \ \<^bold>r: \ \<^bold>r: \ \<^bold>l: \ \<^bold>l: \ \<^bold>r: \ \<^bold>r: \ \<^bold>l: \ \<^bold>r: \" :: "tree" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "_" :: "tree" "_" :: "tree" "\ \<^bold>l: \ \<^bold>l: \ \<^bold>l: _ \<^bold>r: \ \<^bold>l: _ \<^bold>r: _ \<^bold>r: _ \<^bold>r: _" :: "tree" "tick" "_" :: "tree" Trying to find a model that refutes: P x Unfolded term: P x Adding axioms... "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "tick" "\ \<^bold>l: \ \<^bold>l: \ \<^bold>l: _ \<^bold>r: \ \<^bold>l: _ \<^bold>r: _ \<^bold>r: _ \<^bold>r: _" :: "tree" Trying to find a model that refutes: OFCLASS('a, classC_class) "tick" "tick" "tick" "tick" "tick" "\ \<^bold>l: \ \<^bold>l: \ \<^bold>l: _ \<^bold>r: \ \<^bold>r: _ \<^bold>r: _" :: "tree" Unfolded term: OFCLASS('a, classC_class) Adding axioms... Refute_Examples.classC_class_def OFCLASS('a, type_class) ...done. Ground types: 'a, 'a itself Translating term (sizes: 1, 1) ... Trying to find a model that refutes: Refute_Examples.inverse b Unfolded term: \ b Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: empty universe (no type variables in term) b: True Trying to find a model that refutes: P (Refute_Examples.inverse S) Unfolded term: P {x. x \ S} Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1 S: {} P: {({??.a0}, False), ({}, False)} Trying to find a model that refutes: P (Refute_Examples.inverse p) Unfolded term: P (Refute_Examples.inverse (fst p), Refute_Examples.inverse (snd p)) Adding axioms... ...done. Ground types: 'b, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 1, 'a itself: 1 enable "show_consts" to show the interpretation of constants Trying to find a model that refutes: x = y Unfolded term: x = y \ x = y Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... Model found: Size of types: 'b: 1, 'a: 1 enable "show_consts" to show the interpretation of constants p: (??.a0, ??.b0) P: {((??.a0, ??.b0), False)} Trying to find a model that refutes: x = y Unfolded term: x = y Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... Model found: Size of types: 'a: 2 y: ??.a1 x: ??.a0 Trying to find a model that refutes: x = y Unfolded term: x = y \ x = y Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... Model found: Size of types: 'a itself: 1, 'a: 1 enable "show_consts" to show the interpretation of constants x: ??.a0 P: {(??.a0, False)} Found termination order: "{}" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... Debug.flush Debug.flush ?x \ () case_llist_lazy case_llist_lazy ?uu ?uua LNil_Lazy \ ?uu case_llist_lazy ?uu ?uua (LCons_Lazy ?uub ?uuc) \ ?uua ?uub ?uuc case_nat case Suc ?x2.0 of 0 \ ?f1.0 | Suc x \ ?f2.0 x \ ?f2.0 ?x2.0 case 0 of 0 \ ?f1.0 | Suc x \ ?f2.0 x \ ?f1.0 case_tree_lazy case_tree_lazy ?uu ?uua L_Lazy \ ?uu case_tree_lazy ?uu ?uua (Node_Lazy ?uub ?uuc) \ ?uua ?uub ?uuc crazy crazy ?x1a ?x2a True \ case_llist_lazy (case_tree_lazy (Debug.flush (Code_Numeral.Pos (num.Bit0 num.One))) (\tree1 tree2. Debug.flush (Code_Numeral.Pos (num.Bit1 num.One))) (force (unlazy_tree ?x2a))) (\a x1da. case_llist_lazy (case_tree_lazy (Debug.flush (Code_Numeral.Pos (num.Bit0 num.One))) (\tree1 tree2. Debug.flush (Code_Numeral.Pos (num.Bit1 num.One))) (force (unlazy_tree ?x2a))) (\aa llistb. case aa of 0 \ case_llist_lazy (Debug.flush (Code_Numeral.Pos num.One)) (\a llistc. case_tree_lazy (Debug.flush (Code_Numeral.Pos (num.Bit0 num.One))) (\tree1 tree2. Debug.flush (Code_Numeral.Pos (num.Bit1 num.One))) (force (unlazy_tree ?x2a))) (force (unlazy_llist llistb)) | Suc nat \ case_tree_lazy (Debug.flush (Code_Numeral.Pos (num.Bit0 num.One))) (\tree1 tree2. Debug.flush (Code_Numeral.Pos (num.Bit1 num.One))) (force (unlazy_tree ?x2a))) (force (unlazy_llist a))) (force (unlazy_llist ?x1a)) crazy ?x1a ?x2a ?x3ca \ case_llist_lazy (Debug.flush (Code_Numeral.Pos (num.Bit1 num.One))) (\a x1da. case_llist_lazy (Debug.flush (Code_Numeral.Pos (num.Bit1 num.One))) (\aa llistb. case aa of 0 \ case_llist_lazy (Debug.flush (Code_Numeral.Pos num.One)) (\a llistc. Debug.flush (Code_Numeral.Pos (num.Bit1 num.One))) (force (unlazy_llist llistb)) | Suc nat \ Debug.flush (Code_Numeral.Pos (num.Bit1 num.One))) (force (unlazy_llist a))) (force (unlazy_llist ?x1a)) force force (delay ?f) \ ?f () unlazy_llist unlazy_llist (Lazy_llist ?uu) \ ?uu unlazy_tree unlazy_tree (Lazy_tree ?uu) \ ?uu "1 = nat_of_bool True" :: "bool" "nat_of_bool True = 1" :: "bool" "1 = nat_of_bool (nat_of_bool True = 1)" :: "bool" "(=) (nat_of_bool True = 1)" :: "bool \ bool" "1 # map nat_of_bool [True]" :: "nat list" "[nat_of_bool True, 1]" :: "nat list" "[1] = map nat_of_bool [True]" :: "bool" "map nat_of_bool [True] = [1]" :: "bool" "map (map nat_of_bool) [[True]] = [[1]]" :: "bool" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6) ... "map (map (map (map (map (map (map (map (map (map nat_of_bool))))))))) [[[[[[[[[[True]]]]]]]]]] = [[[[[[[[[[1]]]]]]]]]]" :: "bool" "[map nat_of_bool [True], [42]] = map (map nat_of_bool) (rev [[True]])" :: "bool" "rev [10000] = nat_of_bool False # 420000 # map nat_of_bool [True]" :: "bool" "\x. x = 3" :: "nat \ bool" "nat_of_bool True = 3" :: "bool" "map (\x. x = 3)" :: "nat list \ bool list" "map (\x. x = 3) [nat_of_bool True, 1]" :: "bool list" "bnn (nat_of_bool \ nb \ nat_of_bool)" :: "nat" "bnn (nat_of_bool \ ab \ (\uu. uu))" :: "nat" "\x. x = 3" :: "int \ bool" "map (\x. x = 3) (map (\uu. int (nat_of_bool uu)) [True])" :: "bool list" "map (\x. int x = 3) [nat_of_bool True, 1]" :: "bool list" "map (\x. x = 3) [int (nat_of_bool True), int 1, 1]" :: "bool list" "int 1 # int (nat_of_bool True) # 1 # map (\uu. int (nat_of_bool uu)) [False]" :: "int list" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... "map (map (\x. x = 3)) [map (\uu. int (nat_of_bool uu)) [True], map int [1], [int (nat_of_bool True), 1]]" :: "bool list list" "[id, (\uu. int (nat_of_bool uu)) \ cbool \ (\uu. uu), int \ cnat \ (\uu. uu), cint]" :: "(int \ int) list" "flip funfun" :: "'a \ ('a \ 'b) \ 'b" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7) ... "map funfun (id # (int \ cnat \ (\uu. uu)) # cint # map (\h. (\uu. int (nat_of_bool uu)) \ h \ (\uu. uu)) [cbool])" :: "(int \ int) list" "map (flip funfun True)" :: "(bool \ 'a) list \ 'a list" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6) ... "map (flip funfun True) (((\uu. int (nat_of_bool uu)) \ id \ (\uu. uu)) # (int \ cnat \ (\uu. uu)) # cint # map (\h. (\uu. int (nat_of_bool uu)) \ h \ (\uu. uu)) [cbool])" :: "int list" "ii (int (aaa 1 (nat_of_bool True)))" :: "int" "map ii (map int nlist)" :: "int list" "ilil (map int nlist)" :: "int list" "map nat_of_bool xs" :: "nat list" "1 = nat_of_bool True" :: "bool" "nat_of_bool True = 1" :: "bool" "int 1" :: "int" "int (nat_of_bool True)" :: "int" "1" :: "nat" "nat 1" :: "nat" "g (int 1) + int (h 2)" :: "int" "g 1" :: "int" "1 + 1" :: "nat" "(1 + int 1, 1)" :: "int \ int" "map (map (map (map (map nat_of_bool)))) ys = [[[[[1]]]]]" :: "bool" ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... "Fmap nat_of_bool z" :: "(nat, nat, bool) F" No model exists. Translating term (sizes: 8) ... "Coercion_Examples.case_cons (Coercion_Examples.case_abs (\n. Coercion_Examples.case_abs (\is. Coercion_Examples.case_elem (n, is) (int n # is)))) Coercion_Examples.case_nil" :: "nat \ int list \ int list" "- int (n + m)" :: "int" "- (int n + int m)" :: "int" x \x. x = a a true true \ True identity x identity \ \x. x local.test local.test \ x + y test 0 1 test ?x ?y \ ?x + ?y ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. field_t11 (update_field_t11 ?f ?x) = ?f (field_t11 ?x) field_t12 (update_field_t11 ?f ?x) = field_t12 ?x field_t13 (update_field_t11 ?f ?x) = field_t13 ?x field_t14 (update_field_t11 ?f ?x) = field_t14 ?x update_field_t11 ?f (update_field_t11 ?g ?x) = update_field_t11 (\a. ?f (?g a)) ?x update_field_t11 (\_. field_t11 ?x) ?x = ?x field_t12 (update_field_t12 ?f ?x) = ?f (field_t12 ?x) field_t11 (update_field_t12 ?f ?x) = field_t11 ?x field_t13 (update_field_t12 ?f ?x) = field_t13 ?x field_t14 (update_field_t12 ?f ?x) = field_t14 ?x update_field_t12 ?f (update_field_t12 ?g ?x) = update_field_t12 (\a. ?f (?g a)) ?x update_field_t11 ?g (update_field_t12 ?f ?x) = update_field_t12 ?f (update_field_t11 ?g ?x) update_field_t12 (\_. field_t12 ?x) ?x = ?x field_t13 (update_field_t13 ?f ?x) = ?f (field_t13 ?x) field_t11 (update_field_t13 ?f ?x) = field_t11 ?x field_t12 (update_field_t13 ?f ?x) = field_t12 ?x field_t14 (update_field_t13 ?f ?x) = field_t14 ?x update_field_t13 ?f (update_field_t13 ?g ?x) = update_field_t13 (\a. ?f (?g a)) ?x update_field_t11 ?g (update_field_t13 ?f ?x) = update_field_t13 ?f (update_field_t11 ?g ?x) update_field_t12 ?ga (update_field_t13 ?fa ?xa) = update_field_t13 ?fa (update_field_t12 ?ga ?xa) update_field_t13 (\_. field_t13 ?x) ?x = ?x field_t14 (update_field_t14 ?f ?x) = ?f (field_t14 ?x) field_t11 (update_field_t14 ?f ?x) = field_t11 ?x field_t12 (update_field_t14 ?f ?x) = field_t12 ?x field_t13 (update_field_t14 ?f ?x) = field_t13 ?x update_field_t14 ?f (update_field_t14 ?g ?x) = update_field_t14 (\a. ?f (?g a)) ?x update_field_t11 ?g (update_field_t14 ?f ?x) = update_field_t14 ?f (update_field_t11 ?g ?x) update_field_t12 ?ga (update_field_t14 ?fa ?xa) = update_field_t14 ?fa (update_field_t12 ?ga ?xa) update_field_t13 ?gb (update_field_t14 ?fb ?xb) = update_field_t14 ?fb (update_field_t13 ?gb ?xb) update_field_t14 (\_. field_t14 ?x) ?x = ?x ### simplifying ### 4.961s elapsed time, 29.236s cpu time, 1.620s GC time ### postprocessing term ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time val it = "Code_Timing.primes_upto 200 \ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]": thm 35 val it = (): unit val it = false: bool val it = "fib (Suc (Suc 0)) < fib (Suc (Suc (Suc 0)) * Suc (Suc (Suc 0))) + Suc 0 \ True": thm 50 val it = (): unit ### Ignoring duplicate rewrite rule: ### Mapping.keys (AList_Mapping.Mapping ?xs1) \ set (map fst ?xs1) ### Ignoring duplicate rewrite rule: ### Mapping.keys (AList_Mapping.Mapping ?xs1) \ set (map fst ?xs1) ### Ignoring duplicate rewrite rule: ### Mapping.keys (AList_Mapping.Mapping ?xs1) \ set (map fst ?xs1) "1747" :: "int" fib_dom 0 \ fib 0 = 1 fib_dom (Suc 0) \ fib (Suc 0) = 1 fib_dom (Suc (Suc ?n)) \ fib (Suc (Suc ?n)) = fib ?n + fib (Suc ?n) \fib_dom ?a0.0; fib_dom 0 \ ?P 0; fib_dom (Suc 0) \ ?P (Suc 0); \n. \fib_dom (Suc (Suc n)); ?P n; ?P (Suc n)\ \ ?P (Suc (Suc n))\ \ ?P ?a0.0 \?x = 0 \ ?P; ?x = Suc 0 \ ?P; \n. ?x = Suc (Suc n) \ ?P\ \ ?P fib 0 = 1 fib (Suc 0) = 1 fib (Suc (Suc ?n)) = fib ?n + fib (Suc ?n) \?P 0; ?P (Suc 0); \n. \?P n; ?P (Suc n)\ \ ?P (Suc (Suc n))\ \ ?P ?a0.0 \fib ?x = ?y; \?x = 0; ?y = 1\ \ ?P; \?x = Suc 0; ?y = 1\ \ ?P; \n. \?x = Suc (Suc n); ?y = fib n + fib (Suc n)\ \ ?P\ \ ?P add 0 ?y = ?y add (Suc ?x) ?y = Suc (add ?x ?y) \\y. ?P 0 y; \x y. ?P x y \ ?P (Suc x) y\ \ ?P ?a0.0 ?a1.0 |一| = 1 |二| = 2 |三| = 3 |四| = 4 |五| = 5 |六| = 6 |七| = 7 |八| = 8 |九| = 9 |十| = 10 nz 0 = 0 nz (Suc ?x) = nz (nz ?x) \?P 0; \x. \?P x; ?P (nz x)\ \ ?P (Suc x)\ \ ?P ?a0.0 "2::'a" :: "'a" "10::'a" :: "'a" Testing conjecture with Quickcheck-exhaustive... Quickcheck found a counterexample: x = 0 y = 2 R = Rel {} {(1, 2)} S = Rel {} {(0, 1)} Found termination order: "size <*mlex*> {}" Found termination order: "size <*mlex*> {}" Found termination order: "(\p. size (snd p)) <*mlex*> {}" Found termination order: "size <*mlex*> {}" Found termination order: "(\p. length (snd p)) <*mlex*> {}" consts Irifm :: "rifm \ bool list \ int list \ int list list \ nat list \ bool" Found termination order: "case_sum size size <*mlex*> {}" consts Iprod :: "Reflection_Examples.prod \ 'a list \ 'a" consts Isgn :: "sgn \ 'a list \ bool" ### theory "HOL-ex.Reflection_Examples" ### 20.938s elapsed time, 123.032s cpu time, 8.384s GC time "(1::'a) + (1::'a)" :: "'a" gcd2 ?x 0 = ?x gcd2 0 (Suc ?v) = Suc ?v gcd2 (Suc ?x) (Suc ?y) = (if ?x < ?y then gcd2 (Suc ?x) (?y - ?x) else gcd2 (?x - ?y) (Suc ?y)) \\x. ?P x 0; \v. ?P 0 (Suc v); \x y. \x < y \ ?P (Suc x) (y - x); \ x < y \ ?P (x - y) (Suc y)\ \ ?P (Suc x) (Suc y)\ \ ?P ?a0.0 ?a1.0 Found termination order: "(\p. size (snd p)) <*mlex*> (\p. size (fst p)) <*mlex*> {}" gcd3 ?x 0 = ?x gcd3 0 ?y = ?y ?x < ?y \ gcd3 (Suc ?x) (Suc ?y) = gcd3 (Suc ?x) (?y - ?x) \ ?x < ?y \ gcd3 (Suc ?x) (Suc ?y) = gcd3 (?x - ?y) (Suc ?y) \\x. ?P x 0; \y. ?P 0 y; \x y. \x < y; ?P (Suc x) (y - x)\ \ ?P (Suc x) (Suc y); \x y. \\ x < y; ?P (x - y) (Suc y)\ \ ?P (Suc x) (Suc y)\ \ ?P ?a0.0 ?a1.0 Found termination order: "{}" ev (2 * ?n) = True ev (2 * ?n + 1) = False \\n. ?P (2 * n); \n. ?P (2 * n + 1)\ \ ?P ?a0.0 \\n. ?x = 2 * n \ ?P; \n. ?x = 2 * n + 1 \ ?P\ \ ?P ### Metis: Unused theorems: "local.meet_connection" \?x \ ?y; ?y \ ?z; ?z \ ?x\ \ ?x = ?y \ ?y = ?z (<) = (<) (?x < ?y) = (?x \ ?y \ ?x \ ?y) min ?x ?y \ ?x min ?x (max ?y ?z) = max (min ?x ?y) (min ?x ?z) ?x < ?y \ ?x = ?y \ ?y < ?x evn 0 = True evn (Suc ?n) = od ?n od 0 = False od (Suc ?n) = evn ?n \?P 0; ?Q 0; \n. ?Q n \ ?P (Suc n); \n. ?P n \ ?Q (Suc n)\ \ ?P ?a0.0 \?P 0; ?Q 0; \n. ?Q n \ ?P (Suc n); \n. ?P n \ ?Q (Suc n)\ \ ?Q ?a1.0 \wf ?R; \n. (Inr n, Inl (Suc n)) \ ?R; \n. (Inl n, Inr (Suc n)) \ ?R\ \ All evn_od_dom \evn ?x = ?y; \?x = 0; ?y\ \ ?P; \n. \?x = Suc n; ?y = od n\ \ ?P\ \ ?P \evn ?x; ?x = 0 \ ?P; \n. \?x = Suc n; od n\ \ ?P\ \ ?P \\ evn ?x; \n. \?x = Suc n; \ od n\ \ ?P\ \ ?P \od ?x = ?y; \?x = 0; \ ?y\ \ ?P; \n. \?x = Suc n; ?y = evn n\ \ ?P\ \ ?P \od ?x; \n. \?x = Suc n; evn n\ \ ?P\ \ ?P \\ od ?x; ?x = 0 \ ?P; \n. \?x = Suc n; \ evn n\ \ ?P\ \ ?P (?x < ?y) = (?x \ ?y \ ?x \ ?y) min ?x ?y \ ?x min ?x (max ?y ?z) = max (min ?x ?y) (min ?x ?z) ?x < ?y \ ?x = ?y \ ?y < ?x ### Rule already declared as safe introduction (intro!) ### ?a dvd lcm ?a ?b ### Rule already declared as safe introduction (intro!) ### ?b dvd lcm ?a ?b (?x dvd ?y \ ?x \ ?y) = (?x dvd ?y \ ?x \ ?y) gcd ?x ?y dvd ?x ### Rule already declared as safe introduction (intro!) ### ?a dvd lcm ?a ?b ### Rule already declared as safe introduction (intro!) ### ?b dvd lcm ?a ?b ### Ignoring duplicate rewrite rule: ### ?y ** one \ ?y ### Ignoring duplicate rewrite rule: ### one ** ?y \ ?y ### Ignoring duplicate rewrite rule: ### local.inv ?x1 ** ?x1 \ one ### Ignoring duplicate rewrite rule: ### local.inv ?x1 ** ?x1 \ one foldL [] = un foldL [?x] = ?x foldL (?x # ?y # ?ys) = foldL (opr ?x ?y # ?ys) foldR ?xs = foldL ?xs my_monoid ?opr ?un \ my_monoid.foldL ?opr ?un [] = ?un my_monoid ?opr ?un \ my_monoid.foldL ?opr ?un [?x] = ?x my_monoid ?opr ?un \ my_monoid.foldL ?opr ?un (?x # ?y # ?ys) = my_monoid.foldL ?opr ?un (?opr ?x ?y # ?ys) my_monoid ?opr ?un \ my_monoid.foldR ?opr ?un ?xs = my_monoid.foldL ?opr ?un ?xs ### Introduced fixed type variable(s): 'b, 'c in "fa__" or "g__" Dmonoid ?prod ?one \ Dmonoid.unit ?prod ?one ?x = (\y. ?prod ?x y = ?one \ ?prod y ?x = ?one) bij ?x = (\y. ?x \ y = id \ y \ ?x = id) Dmonoid ?prod ?one \ inj_on (Dmonoid.inv ?prod ?one) {x. Dmonoid.unit ?prod ?one x} inj_on Dfun.inv {x. bij x} ### Introduced fixed type variable(s): 'b, 'c in "fa__" bij ?x \ Dfun.inv ?x \ ?x = id inv ?x \ ?x = id ?y \ ?x = id \ inv ?x = ?y ?y \ ?x = id \ inv ?x = ?y \pred ?x = ?y; \?x = 0; ?y = 0\ \ ?P; \n. \?x = Suc n; ?y = n\ \ ?P\ \ ?P "factorial 4" :: "nat" \xor ?x ?xa = ?y; \\ ?x; \ ?xa; \ ?y\ \ ?P; \?x; ?xa; \ ?y\ \ ?P; \?x; \ ?xa; ?y\ \ ?P; \\ ?x; ?xa; ?y\ \ ?P\ \ ?P \xor ?x ?xa; \?x; \ ?xa\ \ ?P; \\ ?x; ?xa\ \ ?P\ \ ?P \\ xor ?x ?xa; \\ ?x; \ ?xa\ \ ?P; \?x; ?xa\ \ ?P\ \ ?P theorems: xor_FalseE: \\ xor ?a ?b; \\ ?a; \ ?b\ \ ?P; \?a; ?b\ \ ?P\ \ ?P xor_TrueE: \xor ?a ?b; \?a; \ ?b\ \ ?P; \\ ?a; ?b\ \ ?P\ \ ?P "test1" :: "bool" test1 "test10" :: "bool" test10 "\s. a + b + c" :: "'a \ 'b" "\s. a + b + c + x s + y s + (1::'b)" :: "'a \ 'b" "\s. f w s + x s" :: "'a \ 'b" "\s. f (x s) (y s) z" :: "'a \ 'e" "\s sa. x s + y sa" :: "'a \ 'b \ 'c" "24" :: "nat" "\s. (\sa. x s + y sa) \ f s" :: "'a \ 'd \ 'c" "\s. (f \ g s) s" :: "'a \ 'c" "\s sa. (f \ g sa) s" :: "'a \ 'b \ 'd" "253" :: "nat" Found termination order: "(\p. size (snd p)) <*mlex*> {}" "Some [23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]" :: "nat list option" consts ord' :: "int option \ 'a tree23 \ int option \ bool" Proofs for inductive predicate(s) "full" Proving monotonicity ... Proving the introduction rules ... Proving the elimination rules ... Proving the induction rule ... Proving the simplification rules ... Found termination order: "size <*mlex*> {}" Found termination order: "size <*mlex*> {}" consts gfull :: "nat \ 'a growth \ bool" Found termination order: "{}" Found termination order: "(\p. size_list size (fst p)) <*mlex*> {}" ### theory "HOL-ex.Tree23" ### 34.287s elapsed time, 199.004s cpu time, 21.132s GC time xpos \xpos = ?xpos, ypos = ?ypos, \ = ?more\ = ?xpos ypos \xpos = ?xpos, ypos = ?ypos, \ = ?more\ = ?ypos more \xpos = ?xpos, ypos = ?ypos, \ = ?more\ = ?more xpos_update ?xpos' \xpos = ?xpos, ypos = ?ypos, \ = ?more\ = \xpos = ?xpos' ?xpos, ypos = ?ypos, \ = ?more\ ypos_update ?ypos' \xpos = ?xpos, ypos = ?ypos, \ = ?more\ = \xpos = ?xpos, ypos = ?ypos' ?ypos, \ = ?more\ more_update ?more' \xpos = ?xpos, ypos = ?ypos, \ = ?more\ = \xpos = ?xpos, ypos = ?ypos, \ = ?more' ?more\ (\xpos = ?xpos, ypos = ?ypos, \ = ?more\ = \xpos = ?xpos', ypos = ?ypos', \ = ?more'\) = (?xpos = ?xpos' \ ?ypos = ?ypos' \ ?more = ?more') make ?xpos ?ypos \ \xpos = ?xpos, ypos = ?ypos\ fields ?xpos ?ypos \ \xpos = ?xpos, ypos = ?ypos\ extend ?r ?more \ \xpos = xpos ?r, ypos = ypos ?r, \ = ?more\ truncate ?r \ \xpos = xpos ?r, ypos = ypos ?r\ ### Introduced fixed type variable(s): 'b in "more__" \?P א; ?P ב; ?P ג; ?P ד; ?P ה; ?P ו; ?P ז; ?P ח; ?P ט; ?P י; ?P כ; ?P ל; ?P מ; ?P נ; ?P ס; ?P ע; ?P פ; ?P צ; ?P ק; ?P ר; ?P ש; ?P ת\ \ ?P ?alef_bet mispar א = 1 mispar ב = 2 mispar ג = 3 mispar ד = 4 mispar ה = 5 mispar ו = 6 mispar ז = 7 mispar ח = 8 mispar ט = 9 mispar י = 10 mispar כ = 20 mispar ל = 30 mispar מ = 40 mispar נ = 50 mispar ס = 60 mispar ע = 70 mispar פ = 80 mispar צ = 90 mispar ק = 100 mispar ר = 200 mispar ש = 300 mispar ת = 400 ### Introduced fixed type variable(s): 'a in "r__" record ('a, 'b, 'c) bar = bar1 :: 'a bar2 :: 'b bar3 :: 'c bar21 :: 'b \ 'a bar32 :: 'c \ 'b bar31 :: 'c \ 'a val it = "Sorting_Algorithms.sort int_abs_reversed example_1 \ [- 2322, 1705, 734, 65, - 17, 4]": thm ### postprocessing term ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time val it = "mergesort int_abs_reversed example_1 \ [- 2322, 1705, 734, 65, - 17, 4]": thm val it = "quicksort int_abs_reversed example_1 \ [- 2322, 1705, 734, 65, - 17, 4]": thm ### Metis: Unused theorems: "local.ab_2" Nitpicking formula... Nitpick found a counterexample: Free variables: x11 = d\<^sub>1 x12 = d\<^sub>2 x13 = d\<^sub>3 x14 = d\<^sub>4 x15 = d\<^sub>5 x16 = d\<^sub>6 x17 = d\<^sub>7 x18 = d\<^sub>8 x19 = d\<^sub>9 x21 = d\<^sub>4 x22 = d\<^sub>7 x23 = d\<^sub>9 x24 = d\<^sub>2 x25 = d\<^sub>3 x26 = d\<^sub>8 x27 = d\<^sub>1 x28 = d\<^sub>6 x29 = d\<^sub>5 x31 = d\<^sub>8 x32 = d\<^sub>6 x33 = d\<^sub>5 x34 = d\<^sub>9 x35 = d\<^sub>1 x36 = d\<^sub>7 x37 = d\<^sub>4 x38 = d\<^sub>2 x39 = d\<^sub>3 x41 = d\<^sub>6 x42 = d\<^sub>4 x43 = d\<^sub>1 x44 = d\<^sub>3 x45 = d\<^sub>8 x46 = d\<^sub>2 x47 = d\<^sub>9 x48 = d\<^sub>5 x49 = d\<^sub>7 x51 = d\<^sub>5 x52 = d\<^sub>9 x53 = d\<^sub>7 x54 = d\<^sub>1 x55 = d\<^sub>6 x56 = d\<^sub>4 x57 = d\<^sub>8 x58 = d\<^sub>3 x59 = d\<^sub>2 x61 = d\<^sub>3 x62 = d\<^sub>8 x63 = d\<^sub>2 x64 = d\<^sub>7 x65 = d\<^sub>9 x66 = d\<^sub>5 x67 = d\<^sub>6 x68 = d\<^sub>4 x69 = d\<^sub>1 x71 = d\<^sub>2 x72 = d\<^sub>1 x73 = d\<^sub>4 x74 = d\<^sub>6 x75 = d\<^sub>7 x76 = d\<^sub>3 x77 = d\<^sub>5 x78 = d\<^sub>9 x79 = d\<^sub>8 x81 = d\<^sub>9 x82 = d\<^sub>5 x83 = d\<^sub>6 x84 = d\<^sub>8 x85 = d\<^sub>2 x86 = d\<^sub>1 x87 = d\<^sub>3 x88 = d\<^sub>7 x89 = d\<^sub>4 x91 = d\<^sub>7 x92 = d\<^sub>3 x93 = d\<^sub>8 x94 = d\<^sub>5 x95 = d\<^sub>4 x96 = d\<^sub>9 x97 = d\<^sub>2 x98 = d\<^sub>1 x99 = d\<^sub>6 Nitpicking formula... ### postprocessing term ### 3.952s elapsed time, 17.956s cpu time, 2.052s GC time Nitpick found a counterexample: Free variables: x13 = 4 x14 = 6 x16 = 8 x17 = 9 x18 = 1 x19 = 2 x22 = 7 x23 = 2 x27 = 3 x28 = 4 x29 = 8 x31 = 1 x34 = 3 x35 = 4 x36 = 2 x37 = 5 x39 = 7 x42 = 5 x43 = 9 x44 = 7 x46 = 1 x47 = 4 x48 = 2 x52 = 2 x53 = 6 x55 = 5 x57 = 7 x58 = 9 x62 = 1 x63 = 3 x64 = 9 x66 = 4 x67 = 8 x68 = 5 x71 = 9 x73 = 1 x74 = 5 x75 = 3 x76 = 7 x79 = 4 x81 = 2 x82 = 8 x83 = 7 x87 = 6 x88 = 3 x91 = 3 x92 = 4 x93 = 5 x94 = 2 x96 = 6 x97 = 1 Nitpicking formula... ### postprocessing term ### 3.334s elapsed time, 15.756s cpu time, 1.068s GC time val it = "mergesort int_abs_reversed example_2 \ [- 3000, 3000, - 2999, 2999, - 2998, 2998, - 2997, 2997, - 2996, 2996, - 2995, 2995, - 2994, 2994, - 2993, 2993, - 2992, 2992, - 2991, 2991, - 2990, 2990, - 2989, 2989, - 2988, 2988, - 2987, 2987, - 2986, 2986, - 2985, 2985, - 2984, 2984, - 2983, 2983, - 2982, 2982, - 2981, 2981, - 2980, 2980, - 2979, 2979, - 2978, 2978, - 2977, 2977, - 2976, 2976, - 2975, 2975, - 2974, 2974, - 2973, 2973, - 2972, 2972, - 2971, 2971, - 2970, 2970, - 2969, 2969, - 2968, 2968, - 2967, 2967, - 2966, 2966, - 2965, 2965, - 2964, 2964, - 2963, 2963, - 2962, 2962, - 2961, 2961, - 2960, 2960, - 2959, 2959, - 2958, 2958, - 2957, 2957, - 2956, 2956, - 2955, 2955, - 2954, 2954, - 2953, 2953, - 2952, 2952, - 2951, 2951, - 2950, 2950, - 2949, 2949, - 2948, 2948, - 2947, 2947, - 2946, 2946, - 2945, 2945, - 2944, 2944, - 2943, 2943, - 2942, 2942, - 2941, 2941, - 2940, 2940, - 2939, 2939, - 2938, 2938, - 2937, 2937, - 2936, 2936, - 2935, 2935, - 2934, 2934, - 2933, 2933, - 2932, 2932, - 2931, 2931, - 2930, 2930, - 2929, 2929, - 2928, 2928, - 2927, 2927, - 2926, 2926, - 2925, 2925, - 2924, 2924, - 2923, 2923, - 2922, 2922, - 2921, 2921, - 2920, 2920, - 2919, 2919, - 2918, 2918, - 2917, 2917, - 2916, 2916, - 2915, 2915, - 2914, 2914, - 2913, 2913, - 2912, 2912, - 2911, 2911, - 2910, 2910, - 2909, 2909, - 2908, 2908, - 2907, 2907, - 2906, 2906, - 2905, 2905, - 2904, 2904, - 2903, 2903, - 2902, 2902, - 2901, 2901, - 2900, 2900, - 2899, 2899, - 2898, 2898, - 2897, 2897, - 2896, 2896, - 2895, 2895, - 2894, 2894, - 2893, 2893, - 2892, 2892, - 2891, 2891, - 2890, 2890, - 2889, 2889, - 2888, 2888, - 2887, 2887, - 2886, 2886, - 2885, 2885, - 2884, 2884, - 2883, 2883, - 2882, 2882, - 2881, 2881, - 2880, 2880, - 2879, 2879, - 2878, 2878, - 2877, 2877, - 2876, 2876, - 2875, 2875, - 2874, 2874, - 2873, 2873, - 2872, 2872, - 2871, 2871, - 2870, 2870, - 2869, 2869, - 2868, 2868, - 2867, 2867, - 2866, 2866, - 2865, 2865, - 2864, 2864, - 2863, 2863, - 2862, 2862, - 2861, 2861, - 2860, 2860, - 2859, 2859, - 2858, 2858, - 2857, 2857, - 2856, 2856, - 2855, 2855, - 2854, 2854, - 2853, 2853, - 2852, 2852, - 2851, 2851, - 2850, 2850, - 2849, 2849, - 2848, 2848, - 2847, 2847, - 2846, 2846, - 2845, 2845, - 2844, 2844, - 2843, 2843, - 2842, 2842, - 2841, 2841, - 2840, 2840, - 2839, 2839, - 2838, 2838, - 2837, 2837, - 2836, 2836, - 2835, 2835, - 2834, 2834, - 2833, 2833, - 2832, 2832, - 2831, 2831, - 2830, 2830, - 2829, 2829, - 2828, 2828, - 2827, 2827, - 2826, 2826, - 2825, 2825, - 2824, 2824, - 2823, 2823, - 2822, 2822, - 2821, 2821, - 2820, 2820, - 2819, 2819, - 2818, 2818, - 2817, 2817, - 2816, 2816, - 2815, 2815, - 2814, 2814, - 2813, 2813, - 2812, 2812, - 2811, 2811, - 2810, 2810, - 2809, 2809, - 2808, 2808, - 2807, 2807, - 2806, 2806, - 2805, 2805, - 2804, 2804, - 2803, 2803, - 2802, 2802, - 2801, 2801, - 2800, 2800, - 2799, 2799, - 2798, 2798, - 2797, 2797, - 2796, 2796, - 2795, 2795, - 2794, 2794, - 2793, 2793, - 2792, 2792, - 2791, 2791, - 2790, 2790, - 2789, 2789, - 2788, 2788, - 2787, 2787, - 2786, 2786, - 2785, 2785, - 2784, 2784, - 2783, 2783, - 2782, 2782, - 2781, 2781, - 2780, 2780, - 2779, 2779, - 2778, 2778, - 2777, 2777, - 2776, 2776, - 2775, 2775, - 2774, 2774, - 2773, 2773, - 2772, 2772, - 2771, 2771, - 2770, 2770, - 2769, 2769, - 2768, 2768, - 2767, 2767, - 2766, 2766, - 2765, 2765, - 2764, 2764, - 2763, 2763, - 2762, 2762, - 2761, 2761, - 2760, 2760, - 2759, 2759, - 2758, 2758, - 2757, 2757, - 2756, 2756, - 2755, 2755, - 2754, 2754, - 2753, 2753, - 2752, 2752, - 2751, 2751, - 2750, 2750, - 2749, 2749, - 2748, 2748, - 2747, 2747, - 2746, 2746, - 2745, 2745, - 2744, 2744, - 2743, 2743, - 2742, 2742, - 2741, 2741, - 2740, 2740, - 2739, 2739, - 2738, 2738, - 2737, 2737, - 2736, 2736, - 2735, 2735, - 2734, 2734, - 2733, 2733, - 2732, 2732, - 2731, 2731, - 2730, 2730, - 2729, 2729, - 2728, 2728, - 2727, 2727, - 2726, 2726, - 2725, 2725, - 2724, 2724, - 2723, 2723, - 2722, 2722, - 2721, 2721, - 2720, 2720, - 2719, 2719, - 2718, 2718, - 2717, 2717, - 2716, 2716, - 2715, 2715, - 2714, 2714, - 2713, 2713, - 2712, 2712, - 2711, 2711, - 2710, 2710, - 2709, 2709, - 2708, 2708, - 2707, 2707, - 2706, 2706, - 2705, 2705, - 2704, 2704, - 2703, 2703, - 2702, 2702, - 2701, 2701, - 2700, 2700, - 2699, 2699, - 2698, 2698, - 2697, 2697, - 2696, 2696, - 2695, 2695, - 2694, 2694, - 2693, 2693, - 2692, 2692, - 2691, 2691, - 2690, 2690, - 2689, 2689, - 2688, 2688, - 2687, 2687, - 2686, 2686, - 2685, 2685, - 2684, 2684, - 2683, 2683, - 2682, 2682, - 2681, 2681, - 2680, 2680, - 2679, 2679, - 2678, 2678, - 2677, 2677, - 2676, 2676, - 2675, 2675, - 2674, 2674, - 2673, 2673, - 2672, 2672, - 2671, 2671, - 2670, 2670, - 2669, 2669, - 2668, 2668, - 2667, 2667, - 2666, 2666, - 2665, 2665, - 2664, 2664, - 2663, 2663, - 2662, 2662, - 2661, 2661, - 2660, 2660, - 2659, 2659, - 2658, 2658, - 2657, 2657, - 2656, 2656, - 2655, 2655, - 2654, 2654, - 2653, 2653, - 2652, 2652, - 2651, 2651, - 2650, 2650, - 2649, 2649, - 2648, 2648, - 2647, 2647, - 2646, 2646, - 2645, 2645, - 2644, 2644, - 2643, 2643, - 2642, 2642, - 2641, 2641, - 2640, 2640, - 2639, 2639, - 2638, 2638, - 2637, 2637, - 2636, 2636, - 2635, 2635, - 2634, 2634, - 2633, 2633, - 2632, 2632, - 2631, 2631, - 2630, 2630, - 2629, 2629, - 2628, 2628, - 2627, 2627, - 2626, 2626, - 2625, 2625, - 2624, 2624, - 2623, 2623, - 2622, 2622, - 2621, 2621, - 2620, 2620, - 2619, 2619, - 2618, 2618, - 2617, 2617, - 2616, 2616, - 2615, 2615, - 2614, 2614, - 2613, 2613, - 2612, 2612, - 2611, 2611, - 2610, 2610, - 2609, 2609, - 2608, 2608, - 2607, 2607, - 2606, 2606, - 2605, 2605, - 2604, 2604, - 2603, 2603, - 2602, 2602, - 2601, 2601, - 2600, 2600, - 2599, 2599, - 2598, 2598, - 2597, 2597, - 2596, 2596, - 2595, 2595, - 2594, 2594, - 2593, 2593, - 2592, 2592, - 2591, 2591, - 2590, 2590, - 2589, 2589, - 2588, 2588, - 2587, 2587, - 2586, 2586, - 2585, 2585, - 2584, 2584, - 2583, 2583, - 2582, 2582, - 2581, 2581, - 2580, 2580, - 2579, 2579, - 2578, 2578, - 2577, 2577, - 2576, 2576, - 2575, 2575, - 2574, 2574, - 2573, 2573, - 2572, 2572, - 2571, 2571, - 2570, 2570, - 2569, 2569, - 2568, 2568, - 2567, 2567, - 2566, 2566, - 2565, 2565, - 2564, 2564, - 2563, 2563, - 2562, 2562, - 2561, 2561, - 2560, 2560, - 2559, 2559, - 2558, 2558, - 2557, 2557, - 2556, 2556, - 2555, 2555, - 2554, 2554, - 2553, 2553, - 2552, 2552, - 2551, 2551, - 2550, 2550, - 2549, 2549, - 2548, 2548, - 2547, 2547, - 2546, 2546, - 2545, 2545, - 2544, 2544, - 2543, 2543, - 2542, 2542, - 2541, 2541, - 2540, 2540, - 2539, 2539, - 2538, 2538, - 2537, 2537, - 2536, 2536, - 2535, 2535, - 2534, 2534, - 2533, 2533, - 2532, 2532, - 2531, 2531, - 2530, 2530, - 2529, 2529, - 2528, 2528, - 2527, 2527, - 2526, 2526, - 2525, 2525, - 2524, 2524, - 2523, 2523, - 2522, 2522, - 2521, 2521, - 2520, 2520, - 2519, 2519, - 2518, 2518, - 2517, 2517, - 2516, 2516, - 2515, 2515, - 2514, 2514, - 2513, 2513, - 2512, 2512, - 2511, 2511, - 2510, 2510, - 2509, 2509, - 2508, 2508, - 2507, 2507, - 2506, 2506, - 2505, 2505, - 2504, 2504, - 2503, 2503, - 2502, 2502, - 2501, 2501, - 2500, 2500, - 2499, 2499, - 2498, 2498, - 2497, 2497, - 2496, 2496, - 2495, 2495, - 2494, 2494, - 2493, 2493, - 2492, 2492, - 2491, 2491, - 2490, 2490, - 2489, 2489, - 2488, 2488, - 2487, 2487, - 2486, 2486, - 2485, 2485, - 2484, 2484, - 2483, 2483, - 2482, 2482, - 2481, 2481, - 2480, 2480, - 2479, 2479, - 2478, 2478, - 2477, 2477, - 2476, 2476, - 2475, 2475, - 2474, 2474, - 2473, 2473, - 2472, 2472, - 2471, 2471, - 2470, 2470, - 2469, 2469, - 2468, 2468, - 2467, 2467, - 2466, 2466, - 2465, 2465, - 2464, 2464, - 2463, 2463, - 2462, 2462, - 2461, 2461, - 2460, 2460, - 2459, 2459, - 2458, 2458, - 2457, 2457, - 2456, 2456, - 2455, 2455, - 2454, 2454, - 2453, 2453, - 2452, 2452, - 2451, 2451, - 2450, 2450, - 2449, 2449, - 2448, 2448, - 2447, 2447, - 2446, 2446, - 2445, 2445, - 2444, 2444, - 2443, 2443, - 2442, 2442, - 2441, 2441, - 2440, 2440, - 2439, 2439, - 2438, 2438, - 2437, 2437, - 2436, 2436, - 2435, 2435, - 2434, 2434, - 2433, 2433, - 2432, 2432, - 2431, 2431, - 2430, 2430, - 2429, 2429, - 2428, 2428, - 2427, 2427, - 2426, 2426, - 2425, 2425, - 2424, 2424, - 2423, 2423, - 2422, 2422, - 2421, 2421, - 2420, 2420, - 2419, 2419, - 2418, 2418, - 2417, 2417, - 2416, 2416, - 2415, 2415, - 2414, 2414, - 2413, 2413, - 2412, 2412, - 2411, 2411, - 2410, 2410, - 2409, 2409, - 2408, 2408, - 2407, 2407, - 2406, 2406, - 2405, 2405, - 2404, 2404, - 2403, 2403, - 2402, 2402, - 2401, 2401, - 2400, 2400, - 2399, 2399, - 2398, 2398, - 2397, 2397, - 2396, 2396, - 2395, 2395, - 2394, 2394, - 2393, 2393, - 2392, 2392, - 2391, 2391, - 2390, 2390, - 2389, 2389, - 2388, 2388, - 2387, 2387, - 2386, 2386, - 2385, 2385, - 2384, 2384, - 2383, 2383, - 2382, 2382, - 2381, 2381, - 2380, 2380, - 2379, 2379, - 2378, 2378, - 2377, 2377, - 2376, 2376, - 2375, 2375, - 2374, 2374, - 2373, 2373, - 2372, 2372, - 2371, 2371, - 2370, 2370, - 2369, 2369, - 2368, 2368, - 2367, 2367, - 2366, 2366, - 2365, 2365, - 2364, 2364, - 2363, 2363, - 2362, 2362, - 2361, 2361, - 2360, 2360, - 2359, 2359, - 2358, 2358, - 2357, 2357, - 2356, 2356, - 2355, 2355, - 2354, 2354, - 2353, 2353, - 2352, 2352, - 2351, 2351, - 2350, 2350, - 2349, 2349, - 2348, 2348, - 2347, 2347, - 2346, 2346, - 2345, 2345, - 2344, 2344, - 2343, 2343, - 2342, 2342, - 2341, 2341, - 2340, 2340, - 2339, 2339, - 2338, 2338, - 2337, 2337, - 2336, 2336, - 2335, 2335, - 2334, 2334, - 2333, 2333, - 2332, 2332, - 2331, 2331, - 2330, 2330, - 2329, 2329, - 2328, 2328, - 2327, 2327, - 2326, 2326, - 2325, 2325, - 2324, 2324, - 2323, 2323, - 2322, 2322, - 2321, 2321, - 2320, 2320, - 2319, 2319, - 2318, 2318, - 2317, 2317, - 2316, 2316, - 2315, 2315, - 2314, 2314, - 2313, 2313, - 2312, 2312, - 2311, 2311, - 2310, 2310, - 2309, 2309, - 2308, 2308, - 2307, 2307, - 2306, 2306, - 2305, 2305, - 2304, 2304, - 2303, 2303, - 2302, 2302, - 2301, 2301, - 2300, 2300, - 2299, 2299, - 2298, 2298, - 2297, 2297, - 2296, 2296, - 2295, 2295, - 2294, 2294, - 2293, 2293, - 2292, 2292, - 2291, 2291, - 2290, 2290, - 2289, 2289, - 2288, 2288, - 2287, 2287, - 2286, 2286, - 2285, 2285, - 2284, 2284, - 2283, 2283, - 2282, 2282, - 2281, 2281, - 2280, 2280, - 2279, 2279, - 2278, 2278, - 2277, 2277, - 2276, 2276, - 2275, 2275, - 2274, 2274, - 2273, 2273, - 2272, 2272, - 2271, 2271, - 2270, 2270, - 2269, 2269, - 2268, 2268, - 2267, 2267, - 2266, 2266, - 2265, 2265, - 2264, 2264, - 2263, 2263, - 2262, 2262, - 2261, 2261, - 2260, 2260, - 2259, 2259, - 2258, 2258, - 2257, 2257, - 2256, 2256, - 2255, 2255, - 2254, 2254, - 2253, 2253, - 2252, 2252, - 2251, 2251, - 2250, 2250, - 2249, 2249, - 2248, 2248, - 2247, 2247, - 2246, 2246, - 2245, 2245, - 2244, 2244, - 2243, 2243, - 2242, 2242, - 2241, 2241, - 2240, 2240, - 2239, 2239, - 2238, 2238, - 2237, 2237, - 2236, 2236, - 2235, 2235, - 2234, 2234, - 2233, 2233, - 2232, 2232, - 2231, 2231, - 2230, 2230, - 2229, 2229, - 2228, 2228, - 2227, 2227, - 2226, 2226, - 2225, 2225, - 2224, 2224, - 2223, 2223, - 2222, 2222, - 2221, 2221, - 2220, 2220, - 2219, 2219, - 2218, 2218, - 2217, 2217, - 2216, 2216, - 2215, 2215, - 2214, 2214, - 2213, 2213, - 2212, 2212, - 2211, 2211, - 2210, 2210, - 2209, 2209, - 2208, 2208, - 2207, 2207, - 2206, 2206, - 2205, 2205, - 2204, 2204, - 2203, 2203, - 2202, 2202, - 2201, 2201, - 2200, 2200, - 2199, 2199, - 2198, 2198, - 2197, 2197, - 2196, 2196, - 2195, 2195, - 2194, 2194, - 2193, 2193, - 2192, 2192, - 2191, 2191, - 2190, 2190, - 2189, 2189, - 2188, 2188, - 2187, 2187, - 2186, 2186, - 2185, 2185, - 2184, 2184, - 2183, 2183, - 2182, 2182, - 2181, 2181, - 2180, 2180, - 2179, 2179, - 2178, 2178, - 2177, 2177, - 2176, 2176, - 2175, 2175, - 2174, 2174, - 2173, 2173, - 2172, 2172, - 2171, 2171, - 2170, 2170, - 2169, 2169, - 2168, 2168, - 2167, 2167, - 2166, 2166, - 2165, 2165, - 2164, 2164, - 2163, 2163, - 2162, 2162, - 2161, 2161, - 2160, 2160, - 2159, 2159, - 2158, 2158, - 2157, 2157, - 2156, 2156, - 2155, 2155, - 2154, 2154, - 2153, 2153, - 2152, 2152, - 2151, 2151, - 2150, 2150, - 2149, 2149, - 2148, 2148, - 2147, 2147, - 2146, 2146, - 2145, 2145, - 2144, 2144, - 2143, 2143, - 2142, 2142, - 2141, 2141, - 2140, 2140, - 2139, 2139, - 2138, 2138, - 2137, 2137, - 2136, 2136, - 2135, 2135, - 2134, 2134, - 2133, 2133, - 2132, 2132, - 2131, 2131, - 2130, 2130, - 2129, 2129, - 2128, 2128, - 2127, 2127, - 2126, 2126, - 2125, 2125, - 2124, 2124, - 2123, 2123, - 2122, 2122, - 2121, 2121, - 2120, 2120, - 2119, 2119, - 2118, 2118, - 2117, 2117, - 2116, 2116, - 2115, 2115, - 2114, 2114, - 2113, 2113, - 2112, 2112, - 2111, 2111, - 2110, 2110, - 2109, 2109, - 2108, 2108, - 2107, 2107, - 2106, 2106, - 2105, 2105, - 2104, 2104, - 2103, 2103, - 2102, 2102, - 2101, 2101, - 2100, 2100, - 2099, 2099, - 2098, 2098, - 2097, 2097, - 2096, 2096, - 2095, 2095, - 2094, 2094, - 2093, 2093, - 2092, 2092, - 2091, 2091, - 2090, 2090, - 2089, 2089, - 2088, 2088, - 2087, 2087, - 2086, 2086, - 2085, 2085, - 2084, 2084, - 2083, 2083, - 2082, 2082, - 2081, 2081, - 2080, 2080, - 2079, 2079, - 2078, 2078, - 2077, 2077, - 2076, 2076, - 2075, 2075, - 2074, 2074, - 2073, 2073, - 2072, 2072, - 2071, 2071, - 2070, 2070, - 2069, 2069, - 2068, 2068, - 2067, 2067, - 2066, 2066, - 2065, 2065, - 2064, 2064, - 2063, 2063, - 2062, 2062, - 2061, 2061, - 2060, 2060, - 2059, 2059, - 2058, 2058, - 2057, 2057, - 2056, 2056, - 2055, 2055, - 2054, 2054, - 2053, 2053, - 2052, 2052, - 2051, 2051, - 2050, 2050, - 2049, 2049, - 2048, 2048, - 2047, 2047, - 2046, 2046, - 2045, 2045, - 2044, 2044, - 2043, 2043, - 2042, 2042, - 2041, 2041, - 2040, 2040, - 2039, 2039, - 2038, 2038, - 2037, 2037, - 2036, 2036, - 2035, 2035, - 2034, 2034, - 2033, 2033, - 2032, 2032, - 2031, 2031, - 2030, 2030, - 2029, 2029, - 2028, 2028, - 2027, 2027, - 2026, 2026, - 2025, 2025, - 2024, 2024, - 2023, 2023, - 2022, 2022, - 2021, 2021, - 2020, 2020, - 2019, 2019, - 2018, 2018, - 2017, 2017, - 2016, 2016, - 2015, 2015, - 2014, 2014, - 2013, 2013, - 2012, 2012, - 2011, 2011, - 2010, 2010, - 2009, 2009, - 2008, 2008, - 2007, 2007, - 2006, 2006, - 2005, 2005, - 2004, 2004, - 2003, 2003, - 2002, 2002, - 2001, 2001, - 2000, 2000, - 1999, 1999, - 1998, 1998, - 1997, 1997, - 1996, 1996, - 1995, 1995, - 1994, 1994, - 1993, 1993, - 1992, 1992, - 1991, 1991, - 1990, 1990, - 1989, 1989, - 1988, 1988, - 1987, 1987, - 1986, 1986, - 1985, 1985, - 1984, 1984, - 1983, 1983, - 1982, 1982, - 1981, 1981, - 1980, 1980, - 1979, 1979, - 1978, 1978, - 1977, 1977, - 1976, 1976, - 1975, 1975, - 1974, 1974, - 1973, 1973, - 1972, 1972, - 1971, 1971, - 1970, 1970, - 1969, 1969, - 1968, 1968, - 1967, 1967, - 1966, 1966, - 1965, 1965, - 1964, 1964, - 1963, 1963, - 1962, 1962, - 1961, 1961, - 1960, 1960, - 1959, 1959, - 1958, 1958, - 1957, 1957, - 1956, 1956, - 1955, 1955, - 1954, 1954, - 1953, 1953, - 1952, 1952, - 1951, 1951, - 1950, 1950, - 1949, 1949, - 1948, 1948, - 1947, 1947, - 1946, 1946, - 1945, 1945, - 1944, 1944, - 1943, 1943, - 1942, 1942, - 1941, 1941, - 1940, 1940, - 1939, 1939, - 1938, 1938, - 1937, 1937, - 1936, 1936, - 1935, 1935, - 1934, 1934, - 1933, 1933, - 1932, 1932, - 1931, 1931, - 1930, 1930, - 1929, 1929, - 1928, 1928, - 1927, 1927, - 1926, 1926, - 1925, 1925, - 1924, 1924, - 1923, 1923, - 1922, 1922, - 1921, 1921, - 1920, 1920, - 1919, 1919, - 1918, 1918, - 1917, 1917, - 1916, 1916, - 1915, 1915, - 1914, 1914, - 1913, 1913, - 1912, 1912, - 1911, 1911, - 1910, 1910, - 1909, 1909, - 1908, 1908, - 1907, 1907, - 1906, 1906, - 1905, 1905, - 1904, 1904, - 1903, 1903, - 1902, 1902, - 1901, 1901, - 1900, 1900, - 1899, 1899, - 1898, 1898, - 1897, 1897, - 1896, 1896, - 1895, 1895, - 1894, 1894, - 1893, 1893, - 1892, 1892, - 1891, 1891, - 1890, 1890, - 1889, 1889, - 1888, 1888, - 1887, 1887, - 1886, 1886, - 1885, 1885, - 1884, 1884, - 1883, 1883, - 1882, 1882, - 1881, 1881, - 1880, 1880, - 1879, 1879, - 1878, 1878, - 1877, 1877, - 1876, 1876, - 1875, 1875, - 1874, 1874, - 1873, 1873, - 1872, 1872, - 1871, 1871, - 1870, 1870, - 1869, 1869, - 1868, 1868, - 1867, 1867, - 1866, 1866, - 1865, 1865, - 1864, 1864, - 1863, 1863, - 1862, 1862, - 1861, 1861, - 1860, 1860, - 1859, 1859, - 1858, 1858, - 1857, 1857, - 1856, 1856, - 1855, 1855, - 1854, 1854, - 1853, 1853, - 1852, 1852, - 1851, 1851, - 1850, 1850, - 1849, 1849, - 1848, 1848, - 1847, 1847, - 1846, 1846, - 1845, 1845, - 1844, 1844, - 1843, 1843, - 1842, 1842, - 1841, 1841, - 1840, 1840, - 1839, 1839, - 1838, 1838, - 1837, 1837, - 1836, 1836, - 1835, 1835, - 1834, 1834, - 1833, 1833, - 1832, 1832, - 1831, 1831, - 1830, 1830, - 1829, 1829, - 1828, 1828, - 1827, 1827, - 1826, 1826, - 1825, 1825, - 1824, 1824, - 1823, 1823, - 1822, 1822, - 1821, 1821, - 1820, 1820, - 1819, 1819, - 1818, 1818, - 1817, 1817, - 1816, 1816, - 1815, 1815, - 1814, 1814, - 1813, 1813, - 1812, 1812, - 1811, 1811, - 1810, 1810, - 1809, 1809, - 1808, 1808, - 1807, 1807, - 1806, 1806, - 1805, 1805, - 1804, 1804, - 1803, 1803, - 1802, 1802, - 1801, 1801, - 1800, 1800, - 1799, 1799, - 1798, 1798, - 1797, 1797, - 1796, 1796, - 1795, 1795, - 1794, 1794, - 1793, 1793, - 1792, 1792, - 1791, 1791, - 1790, 1790, - 1789, 1789, - 1788, 1788, - 1787, 1787, - 1786, 1786, - 1785, 1785, - 1784, 1784, - 1783, 1783, - 1782, 1782, - 1781, 1781, - 1780, 1780, - 1779, 1779, - 1778, 1778, - 1777, 1777, - 1776, 1776, - 1775, 1775, - 1774, 1774, - 1773, 1773, - 1772, 1772, - 1771, 1771, - 1770, 1770, - 1769, 1769, - 1768, 1768, - 1767, 1767, - 1766, 1766, - 1765, 1765, - 1764, 1764, - 1763, 1763, - 1762, 1762, - 1761, 1761, - 1760, 1760, - 1759, 1759, - 1758, 1758, - 1757, 1757, - 1756, 1756, - 1755, 1755, - 1754, 1754, - 1753, 1753, - 1752, 1752, - 1751, 1751, - 1750, 1750, - 1749, 1749, - 1748, 1748, - 1747, 1747, - 1746, 1746, - 1745, 1745, - 1744, 1744, - 1743, 1743, - 1742, 1742, - 1741, 1741, - 1740, 1740, - 1739, 1739, - 1738, 1738, - 1737, 1737, - 1736, 1736, - 1735, 1735, - 1734, 1734, - 1733, 1733, - 1732, 1732, - 1731, 1731, - 1730, 1730, - 1729, 1729, - 1728, 1728, - 1727, 1727, - 1726, 1726, - 1725, 1725, - 1724, 1724, - 1723, 1723, - 1722, 1722, - 1721, 1721, - 1720, 1720, - 1719, 1719, - 1718, 1718, - 1717, 1717, - 1716, 1716, - 1715, 1715, - 1714, 1714, - 1713, 1713, - 1712, 1712, - 1711, 1711, - 1710, 1710, - 1709, 1709, - 1708, 1708, - 1707, 1707, - 1706, 1706, - 1705, 1705, - 1704, 1704, - 1703, 1703, - 1702, 1702, - 1701, 1701, - 1700, 1700, - 1699, 1699, - 1698, 1698, - 1697, 1697, - 1696, 1696, - 1695, 1695, - 1694, 1694, - 1693, 1693, - 1692, 1692, - 1691, 1691, - 1690, 1690, - 1689, 1689, - 1688, 1688, - 1687, 1687, - 1686, 1686, - 1685, 1685, - 1684, 1684, - 1683, 1683, - 1682, 1682, - 1681, 1681, - 1680, 1680, - 1679, 1679, - 1678, 1678, - 1677, 1677, - 1676, 1676, - 1675, 1675, - 1674, 1674, - 1673, 1673, - 1672, 1672, - 1671, 1671, - 1670, 1670, - 1669, 1669, - 1668, 1668, - 1667, 1667, - 1666, 1666, - 1665, 1665, - 1664, 1664, - 1663, 1663, - 1662, 1662, - 1661, 1661, - 1660, 1660, - 1659, 1659, - 1658, 1658, - 1657, 1657, - 1656, 1656, - 1655, 1655, - 1654, 1654, - 1653, 1653, - 1652, 1652, - 1651, 1651, - 1650, 1650, - 1649, 1649, - 1648, 1648, - 1647, 1647, - 1646, 1646, - 1645, 1645, - 1644, 1644, - 1643, 1643, - 1642, 1642, - 1641, 1641, - 1640, 1640, - 1639, 1639, - 1638, 1638, - 1637, 1637, - 1636, 1636, - 1635, 1635, - 1634, 1634, - 1633, 1633, - 1632, 1632, - 1631, 1631, - 1630, 1630, - 1629, 1629, - 1628, 1628, - 1627, 1627, - 1626, 1626, - 1625, 1625, - 1624, 1624, - 1623, 1623, - 1622, 1622, - 1621, 1621, - 1620, 1620, - 1619, 1619, - 1618, 1618, - 1617, 1617, - 1616, 1616, - 1615, 1615, - 1614, 1614, - 1613, 1613, - 1612, 1612, - 1611, 1611, - 1610, 1610, - 1609, 1609, - 1608, 1608, - 1607, 1607, - 1606, 1606, - 1605, 1605, - 1604, 1604, - 1603, 1603, - 1602, 1602, - 1601, 1601, - 1600, 1600, - 1599, 1599, - 1598, 1598, - 1597, 1597, - 1596, 1596, - 1595, 1595, - 1594, 1594, - 1593, 1593, - 1592, 1592, - 1591, 1591, - 1590, 1590, - 1589, 1589, - 1588, 1588, - 1587, 1587, - 1586, 1586, - 1585, 1585, - 1584, 1584, - 1583, 1583, - 1582, 1582, - 1581, 1581, - 1580, 1580, - 1579, 1579, - 1578, 1578, - 1577, 1577, - 1576, 1576, - 1575, 1575, - 1574, 1574, - 1573, 1573, - 1572, 1572, - 1571, 1571, - 1570, 1570, - 1569, 1569, - 1568, 1568, - 1567, 1567, - 1566, 1566, - 1565, 1565, - 1564, 1564, - 1563, 1563, - 1562, 1562, - 1561, 1561, - 1560, 1560, - 1559, 1559, - 1558, 1558, - 1557, 1557, - 1556, 1556, - 1555, 1555, - 1554, 1554, - 1553, 1553, - 1552, 1552, - 1551, 1551, - 1550, 1550, - 1549, 1549, - 1548, 1548, - 1547, 1547, - 1546, 1546, - 1545, 1545, - 1544, 1544, - 1543, 1543, - 1542, 1542, - 1541, 1541, - 1540, 1540, - 1539, 1539, - 1538, 1538, - 1537, 1537, - 1536, 1536, - 1535, 1535, - 1534, 1534, - 1533, 1533, - 1532, 1532, - 1531, 1531, - 1530, 1530, - 1529, 1529, - 1528, 1528, - 1527, 1527, - 1526, 1526, - 1525, 1525, - 1524, 1524, - 1523, 1523, - 1522, 1522, - 1521, 1521, - 1520, 1520, - 1519, 1519, - 1518, 1518, - 1517, 1517, - 1516, 1516, - 1515, 1515, - 1514, 1514, - 1513, 1513, - 1512, 1512, - 1511, 1511, - 1510, 1510, - 1509, 1509, - 1508, 1508, - 1507, 1507, - 1506, 1506, - 1505, 1505, - 1504, 1504, - 1503, 1503, - 1502, 1502, - 1501, 1501, - 1500, 1500, - 1499, 1499, - 1498, 1498, - 1497, 1497, - 1496, 1496, - 1495, 1495, - 1494, 1494, - 1493, 1493, - 1492, 1492, - 1491, 1491, - 1490, 1490, - 1489, 1489, - 1488, 1488, - 1487, 1487, - 1486, 1486, - 1485, 1485, - 1484, 1484, - 1483, 1483, - 1482, 1482, - 1481, 1481, - 1480, 1480, - 1479, 1479, - 1478, 1478, - 1477, 1477, - 1476, 1476, - 1475, 1475, - 1474, 1474, - 1473, 1473, - 1472, 1472, - 1471, 1471, - 1470, 1470, - 1469, 1469, - 1468, 1468, - 1467, 1467, - 1466, 1466, - 1465, 1465, - 1464, 1464, - 1463, 1463, - 1462, 1462, - 1461, 1461, - 1460, 1460, - 1459, 1459, - 1458, 1458, - 1457, 1457, - 1456, 1456, - 1455, 1455, - 1454, 1454, - 1453, 1453, - 1452, 1452, - 1451, 1451, - 1450, 1450, - 1449, 1449, - 1448, 1448, - 1447, 1447, - 1446, 1446, - 1445, 1445, - 1444, 1444, - 1443, 1443, - 1442, 1442, - 1441, 1441, - 1440, 1440, - 1439, 1439, - 1438, 1438, - 1437, 1437, - 1436, 1436, - 1435, 1435, - 1434, 1434, - 1433, 1433, - 1432, 1432, - 1431, 1431, - 1430, 1430, - 1429, 1429, - 1428, 1428, - 1427, 1427, - 1426, 1426, - 1425, 1425, - 1424, 1424, - 1423, 1423, - 1422, 1422, - 1421, 1421, - 1420, 1420, - 1419, 1419, - 1418, 1418, - 1417, 1417, - 1416, 1416, - 1415, 1415, - 1414, 1414, - 1413, 1413, - 1412, 1412, - 1411, 1411, - 1410, 1410, - 1409, 1409, - 1408, 1408, - 1407, 1407, - 1406, 1406, - 1405, 1405, - 1404, 1404, - 1403, 1403, - 1402, 1402, - 1401, 1401, - 1400, 1400, - 1399, 1399, - 1398, 1398, - 1397, 1397, - 1396, 1396, - 1395, 1395, - 1394, 1394, - 1393, 1393, - 1392, 1392, - 1391, 1391, - 1390, 1390, - 1389, 1389, - 1388, 1388, - 1387, 1387, - 1386, 1386, - 1385, 1385, - 1384, 1384, - 1383, 1383, - 1382, 1382, - 1381, 1381, - 1380, 1380, - 1379, 1379, - 1378, 1378, - 1377, 1377, - 1376, 1376, - 1375, 1375, - 1374, 1374, - 1373, 1373, - 1372, 1372, - 1371, 1371, - 1370, 1370, - 1369, 1369, - 1368, 1368, - 1367, 1367, - 1366, 1366, - 1365, 1365, - 1364, 1364, - 1363, 1363, - 1362, 1362, - 1361, 1361, - 1360, 1360, - 1359, 1359, - 1358, 1358, - 1357, 1357, - 1356, 1356, - 1355, 1355, - 1354, 1354, - 1353, 1353, - 1352, 1352, - 1351, 1351, - 1350, 1350, - 1349, 1349, - 1348, 1348, - 1347, 1347, - 1346, 1346, - 1345, 1345, - 1344, 1344, - 1343, 1343, - 1342, 1342, - 1341, 1341, - 1340, 1340, - 1339, 1339, - 1338, 1338, - 1337, 1337, - 1336, 1336, - 1335, 1335, - 1334, 1334, - 1333, 1333, - 1332, 1332, - 1331, 1331, - 1330, 1330, - 1329, 1329, - 1328, 1328, - 1327, 1327, - 1326, 1326, - 1325, 1325, - 1324, 1324, - 1323, 1323, - 1322, 1322, - 1321, 1321, - 1320, 1320, - 1319, 1319, - 1318, 1318, - 1317, 1317, - 1316, 1316, - 1315, 1315, - 1314, 1314, - 1313, 1313, - 1312, 1312, - 1311, 1311, - 1310, 1310, - 1309, 1309, - 1308, 1308, - 1307, 1307, - 1306, 1306, - 1305, 1305, - 1304, 1304, - 1303, 1303, - 1302, 1302, - 1301, 1301, - 1300, 1300, - 1299, 1299, - 1298, 1298, - 1297, 1297, - 1296, 1296, - 1295, 1295, - 1294, 1294, - 1293, 1293, - 1292, 1292, - 1291, 1291, - 1290, 1290, - 1289, 1289, - 1288, 1288, - 1287, 1287, - 1286, 1286, - 1285, 1285, - 1284, 1284, - 1283, 1283, - 1282, 1282, - 1281, 1281, - 1280, 1280, - 1279, 1279, - 1278, 1278, - 1277, 1277, - 1276, 1276, - 1275, 1275, - 1274, 1274, - 1273, 1273, - 1272, 1272, - 1271, 1271, - 1270, 1270, - 1269, 1269, - 1268, 1268, - 1267, 1267, - 1266, 1266, - 1265, 1265, - 1264, 1264, - 1263, 1263, - 1262, 1262, - 1261, 1261, - 1260, 1260, - 1259, 1259, - 1258, 1258, - 1257, 1257, - 1256, 1256, - 1255, 1255, - 1254, 1254, - 1253, 1253, - 1252, 1252, - 1251, 1251, - 1250, 1250, - 1249, 1249, - 1248, 1248, - 1247, 1247, - 1246, 1246, - 1245, 1245, - 1244, 1244, - 1243, 1243, - 1242, 1242, - 1241, 1241, - 1240, 1240, - 1239, 1239, - 1238, 1238, - 1237, 1237, - 1236, 1236, - 1235, 1235, - 1234, 1234, - 1233, 1233, - 1232, 1232, - 1231, 1231, - 1230, 1230, - 1229, 1229, - 1228, 1228, - 1227, 1227, - 1226, 1226, - 1225, 1225, - 1224, 1224, - 1223, 1223, - 1222, 1222, - 1221, 1221, - 1220, 1220, - 1219, 1219, - 1218, 1218, - 1217, 1217, - 1216, 1216, - 1215, 1215, - 1214, 1214, - 1213, 1213, - 1212, 1212, - 1211, 1211, - 1210, 1210, - 1209, 1209, - 1208, 1208, - 1207, 1207, - 1206, 1206, - 1205, 1205, - 1204, 1204, - 1203, 1203, - 1202, 1202, - 1201, 1201, - 1200, 1200, - 1199, 1199, - 1198, 1198, - 1197, 1197, - 1196, 1196, - 1195, 1195, - 1194, 1194, - 1193, 1193, - 1192, 1192, - 1191, 1191, - 1190, 1190, - 1189, 1189, - 1188, 1188, - 1187, 1187, - 1186, 1186, - 1185, 1185, - 1184, 1184, - 1183, 1183, - 1182, 1182, - 1181, 1181, - 1180, 1180, - 1179, 1179, - 1178, 1178, - 1177, 1177, - 1176, 1176, - 1175, 1175, - 1174, 1174, - 1173, 1173, - 1172, 1172, - 1171, 1171, - 1170, 1170, - 1169, 1169, - 1168, 1168, - 1167, 1167, - 1166, 1166, - 1165, 1165, - 1164, 1164, - 1163, 1163, - 1162, 1162, - 1161, 1161, - 1160, 1160, - 1159, 1159, - 1158, 1158, - 1157, 1157, - 1156, 1156, - 1155, 1155, - 1154, 1154, - 1153, 1153, - 1152, 1152, - 1151, 1151, - 1150, 1150, - 1149, 1149, - 1148, 1148, - 1147, 1147, - 1146, 1146, - 1145, 1145, - 1144, 1144, - 1143, 1143, - 1142, 1142, - 1141, 1141, - 1140, 1140, - 1139, 1139, - 1138, 1138, - 1137, 1137, - 1136, 1136, - 1135, 1135, - 1134, 1134, - 1133, 1133, - 1132, 1132, - 1131, 1131, - 1130, 1130, - 1129, 1129, - 1128, 1128, - 1127, 1127, - 1126, 1126, - 1125, 1125, - 1124, 1124, - 1123, 1123, - 1122, 1122, - 1121, 1121, - 1120, 1120, - 1119, 1119, - 1118, 1118, - 1117, 1117, - 1116, 1116, - 1115, 1115, - 1114, 1114, - 1113, 1113, - 1112, 1112, - 1111, 1111, - 1110, 1110, - 1109, 1109, - 1108, 1108, - 1107, 1107, - 1106, 1106, - 1105, 1105, - 1104, 1104, - 1103, 1103, - 1102, 1102, - 1101, 1101, - 1100, 1100, - 1099, 1099, - 1098, 1098, - 1097, 1097, - 1096, 1096, - 1095, 1095, - 1094, 1094, - 1093, 1093, - 1092, 1092, - 1091, 1091, - 1090, 1090, - 1089, 1089, - 1088, 1088, - 1087, 1087, - 1086, 1086, - 1085, 1085, - 1084, 1084, - 1083, 1083, - 1082, 1082, - 1081, 1081, - 1080, 1080, - 1079, 1079, - 1078, 1078, - 1077, 1077, - 1076, 1076, - 1075, 1075, - 1074, 1074, - 1073, 1073, - 1072, 1072, - 1071, 1071, - 1070, 1070, - 1069, 1069, - 1068, 1068, - 1067, 1067, - 1066, 1066, - 1065, 1065, - 1064, 1064, - 1063, 1063, - 1062, 1062, - 1061, 1061, - 1060, 1060, - 1059, 1059, - 1058, 1058, - 1057, 1057, - 1056, 1056, - 1055, 1055, - 1054, 1054, - 1053, 1053, - 1052, 1052, - 1051, 1051, - 1050, 1050, - 1049, 1049, - 1048, 1048, - 1047, 1047, - 1046, 1046, - 1045, 1045, - 1044, 1044, - 1043, 1043, - 1042, 1042, - 1041, 1041, - 1040, 1040, - 1039, 1039, - 1038, 1038, - 1037, 1037, - 1036, 1036, - 1035, 1035, - 1034, 1034, - 1033, 1033, - 1032, 1032, - 1031, 1031, - 1030, 1030, - 1029, 1029, - 1028, 1028, - 1027, 1027, - 1026, 1026, - 1025, 1025, - 1024, 1024, - 1023, 1023, - 1022, 1022, - 1021, 1021, - 1020, 1020, - 1019, 1019, - 1018, 1018, - 1017, 1017, - 1016, 1016, - 1015, 1015, - 1014, 1014, - 1013, 1013, - 1012, 1012, - 1011, 1011, - 1010, 1010, - 1009, 1009, - 1008, 1008, - 1007, 1007, - 1006, 1006, - 1005, 1005, - 1004, 1004, - 1003, 1003, - 1002, 1002, - 1001, 1001, - 1000, 1000, - 999, 999, - 998, 998, - 997, 997, - 996, 996, - 995, 995, - 994, 994, - 993, 993, - 992, 992, - 991, 991, - 990, 990, - 989, 989, - 988, 988, - 987, 987, - 986, 986, - 985, 985, - 984, 984, - 983, 983, - 982, 982, - 981, 981, - 980, 980, - 979, 979, - 978, 978, - 977, 977, - 976, 976, - 975, 975, - 974, 974, - 973, 973, - 972, 972, - 971, 971, - 970, 970, - 969, 969, - 968, 968, - 967, 967, - 966, 966, - 965, 965, - 964, 964, - 963, 963, - 962, 962, - 961, 961, - 960, 960, - 959, 959, - 958, 958, - 957, 957, - 956, 956, - 955, 955, - 954, 954, - 953, 953, - 952, 952, - 951, 951, - 950, 950, - 949, 949, - 948, 948, - 947, 947, - 946, 946, - 945, 945, - 944, 944, - 943, 943, - 942, 942, - 941, 941, - 940, 940, - 939, 939, - 938, 938, - 937, 937, - 936, 936, - 935, 935, - 934, 934, - 933, 933, - 932, 932, - 931, 931, - 930, 930, - 929, 929, - 928, 928, - 927, 927, - 926, 926, - 925, 925, - 924, 924, - 923, 923, - 922, 922, - 921, 921, - 920, 920, - 919, 919, - 918, 918, - 917, 917, - 916, 916, - 915, 915, - 914, 914, - 913, 913, - 912, 912, - 911, 911, - 910, 910, - 909, 909, - 908, 908, - 907, 907, - 906, 906, - 905, 905, - 904, 904, - 903, 903, - 902, 902, - 901, 901, - 900, 900, - 899, 899, - 898, 898, - 897, 897, - 896, 896, - 895, 895, - 894, 894, - 893, 893, - 892, 892, - 891, 891, - 890, 890, - 889, 889, - 888, 888, - 887, 887, - 886, 886, - 885, 885, - 884, 884, - 883, 883, - 882, 882, - 881, 881, - 880, 880, - 879, 879, - 878, 878, - 877, 877, - 876, 876, - 875, 875, - 874, 874, - 873, 873, - 872, 872, - 871, 871, - 870, 870, - 869, 869, - 868, 868, - 867, 867, - 866, 866, - 865, 865, - 864, 864, - 863, 863, - 862, 862, - 861, 861, - 860, 860, - 859, 859, - 858, 858, - 857, 857, - 856, 856, - 855, 855, - 854, 854, - 853, 853, - 852, 852, - 851, 851, - 850, 850, - 849, 849, - 848, 848, - 847, 847, - 846, 846, - 845, 845, - 844, 844, - 843, 843, - 842, 842, - 841, 841, - 840, 840, - 839, 839, - 838, 838, - 837, 837, - 836, 836, - 835, 835, - 834, 834, - 833, 833, - 832, 832, - 831, 831, - 830, 830, - 829, 829, - 828, 828, - 827, 827, - 826, 826, - 825, 825, - 824, 824, - 823, 823, - 822, 822, - 821, 821, - 820, 820, - 819, 819, - 818, 818, - 817, 817, - 816, 816, - 815, 815, - 814, 814, - 813, 813, - 812, 812, - 811, 811, - 810, 810, - 809, 809, - 808, 808, - 807, 807, - 806, 806, - 805, 805, - 804, 804, - 803, 803, - 802, 802, - 801, 801, - 800, 800, - 799, 799, - 798, 798, - 797, 797, - 796, 796, - 795, 795, - 794, 794, - 793, 793, - 792, 792, - 791, 791, - 790, 790, - 789, 789, - 788, 788, - 787, 787, - 786, 786, - 785, 785, - 784, 784, - 783, 783, - 782, 782, - 781, 781, - 780, 780, - 779, 779, - 778, 778, - 777, 777, - 776, 776, - 775, 775, - 774, 774, - 773, 773, - 772, 772, - 771, 771, - 770, 770, - 769, 769, - 768, 768, - 767, 767, - 766, 766, - 765, 765, - 764, 764, - 763, 763, - 762, 762, - 761, 761, - 760, 760, - 759, 759, - 758, 758, - 757, 757, - 756, 756, - 755, 755, - 754, 754, - 753, 753, - 752, 752, - 751, 751, - 750, 750, - 749, 749, - 748, 748, - 747, 747, - 746, 746, - 745, 745, - 744, 744, - 743, 743, - 742, 742, - 741, 741, - 740, 740, - 739, 739, - 738, 738, - 737, 737, - 736, 736, - 735, 735, - 734, 734, - 733, 733, - 732, 732, - 731, 731, - 730, 730, - 729, 729, - 728, 728, - 727, 727, - 726, 726, - 725, 725, - 724, 724, - 723, 723, - 722, 722, - 721, 721, - 720, 720, - 719, 719, - 718, 718, - 717, 717, - 716, 716, - 715, 715, - 714, 714, - 713, 713, - 712, 712, - 711, 711, - 710, 710, - 709, 709, - 708, 708, - 707, 707, - 706, 706, - 705, 705, - 704, 704, - 703, 703, - 702, 702, - 701, 701, - 700, 700, - 699, 699, - 698, 698, - 697, 697, - 696, 696, - 695, 695, - 694, 694, - 693, 693, - 692, 692, - 691, 691, - 690, 690, - 689, 689, - 688, 688, - 687, 687, - 686, 686, - 685, 685, - 684, 684, - 683, 683, - 682, 682, - 681, 681, - 680, 680, - 679, 679, - 678, 678, - 677, 677, - 676, 676, - 675, 675, - 674, 674, - 673, 673, - 672, 672, - 671, 671, - 670, 670, - 669, 669, - 668, 668, - 667, 667, - 666, 666, - 665, 665, - 664, 664, - 663, 663, - 662, 662, - 661, 661, - 660, 660, - 659, 659, - 658, 658, - 657, 657, - 656, 656, - 655, 655, - 654, 654, - 653, 653, - 652, 652, - 651, 651, - 650, 650, - 649, 649, - 648, 648, - 647, 647, - 646, 646, - 645, 645, - 644, 644, - 643, 643, - 642, 642, - 641, 641, - 640, 640, - 639, 639, - 638, 638, - 637, 637, - 636, 636, - 635, 635, - 634, 634, - 633, 633, - 632, 632, - 631, 631, - 630, 630, - 629, 629, - 628, 628, - 627, 627, - 626, 626, - 625, 625, - 624, 624, - 623, 623, - 622, 622, - 621, 621, - 620, 620, - 619, 619, - 618, 618, - 617, 617, - 616, 616, - 615, 615, - 614, 614, - 613, 613, - 612, 612, - 611, 611, - 610, 610, - 609, 609, - 608, 608, - 607, 607, - 606, 606, - 605, 605, - 604, 604, - 603, 603, - 602, 602, - 601, 601, - 600, 600, - 599, 599, - 598, 598, - 597, 597, - 596, 596, - 595, 595, - 594, 594, - 593, 593, - 592, 592, - 591, 591, - 590, 590, - 589, 589, - 588, 588, - 587, 587, - 586, 586, - 585, 585, - 584, 584, - 583, 583, - 582, 582, - 581, 581, - 580, 580, - 579, 579, - 578, 578, - 577, 577, - 576, 576, - 575, 575, - 574, 574, - 573, 573, - 572, 572, - 571, 571, - 570, 570, - 569, 569, - 568, 568, - 567, 567, - 566, 566, - 565, 565, - 564, 564, - 563, 563, - 562, 562, - 561, 561, - 560, 560, - 559, 559, - 558, 558, - 557, 557, - 556, 556, - 555, 555, - 554, 554, - 553, 553, - 552, 552, - 551, 551, - 550, 550, - 549, 549, - 548, 548, - 547, 547, - 546, 546, - 545, 545, - 544, 544, - 543, 543, - 542, 542, - 541, 541, - 540, 540, - 539, 539, - 538, 538, - 537, 537, - 536, 536, - 535, 535, - 534, 534, - 533, 533, - 532, 532, - 531, 531, - 530, 530, - 529, 529, - 528, 528, - 527, 527, - 526, 526, - 525, 525, - 524, 524, - 523, 523, - 522, 522, - 521, 521, - 520, 520, - 519, 519, - 518, 518, - 517, 517, - 516, 516, - 515, 515, - 514, 514, - 513, 513, - 512, 512, - 511, 511, - 510, 510, - 509, 509, - 508, 508, - 507, 507, - 506, 506, - 505, 505, - 504, 504, - 503, 503, - 502, 502, - 501, 501, - 500, 500, - 499, 499, - 498, 498, - 497, 497, - 496, 496, - 495, 495, - 494, 494, - 493, 493, - 492, 492, - 491, 491, - 490, 490, - 489, 489, - 488, 488, - 487, 487, - 486, 486, - 485, 485, - 484, 484, - 483, 483, - 482, 482, - 481, 481, - 480, 480, - 479, 479, - 478, 478, - 477, 477, - 476, 476, - 475, 475, - 474, 474, - 473, 473, - 472, 472, - 471, 471, - 470, 470, - 469, 469, - 468, 468, - 467, 467, - 466, 466, - 465, 465, - 464, 464, - 463, 463, - 462, 462, - 461, 461, - 460, 460, - 459, 459, - 458, 458, - 457, 457, - 456, 456, - 455, 455, - 454, 454, - 453, 453, - 452, 452, - 451, 451, - 450, 450, - 449, 449, - 448, 448, - 447, 447, - 446, 446, - 445, 445, - 444, 444, - 443, 443, - 442, 442, - 441, 441, - 440, 440, - 439, 439, - 438, 438, - 437, 437, - 436, 436, - 435, 435, - 434, 434, - 433, 433, - 432, 432, - 431, 431, - 430, 430, - 429, 429, - 428, 428, - 427, 427, - 426, 426, - 425, 425, - 424, 424, - 423, 423, - 422, 422, - 421, 421, - 420, 420, - 419, 419, - 418, 418, - 417, 417, - 416, 416, - 415, 415, - 414, 414, - 413, 413, - 412, 412, - 411, 411, - 410, 410, - 409, 409, - 408, 408, - 407, 407, - 406, 406, - 405, 405, - 404, 404, - 403, 403, - 402, 402, - 401, 401, - 400, 400, - 399, 399, - 398, 398, - 397, 397, - 396, 396, - 395, 395, - 394, 394, - 393, 393, - 392, 392, - 391, 391, - 390, 390, - 389, 389, - 388, 388, - 387, 387, - 386, 386, - 385, 385, - 384, 384, - 383, 383, - 382, 382, - 381, 381, - 380, 380, - 379, 379, - 378, 378, - 377, 377, - 376, 376, - 375, 375, - 374, 374, - 373, 373, - 372, 372, - 371, 371, - 370, 370, - 369, 369, - 368, 368, - 367, 367, - 366, 366, - 365, 365, - 364, 364, - 363, 363, - 362, 362, - 361, 361, - 360, 360, - 359, 359, - 358, 358, - 357, 357, - 356, 356, - 355, 355, - 354, 354, - 353, 353, - 352, 352, - 351, 351, - 350, 350, - 349, 349, - 348, 348, - 347, 347, - 346, 346, - 345, 345, - 344, 344, - 343, 343, - 342, 342, - 341, 341, - 340, 340, - 339, 339, - 338, 338, - 337, 337, - 336, 336, - 335, 335, - 334, 334, - 333, 333, - 332, 332, - 331, 331, - 330, 330, - 329, 329, - 328, 328, - 327, 327, - 326, 326, - 325, 325, - 324, 324, - 323, 323, - 322, 322, - 321, 321, - 320, 320, - 319, 319, - 318, 318, - 317, 317, - 316, 316, - 315, 315, - 314, 314, - 313, 313, - 312, 312, - 311, 311, - 310, 310, - 309, 309, - 308, 308, - 307, 307, - 306, 306, - 305, 305, - 304, 304, - 303, 303, - 302, 302, - 301, 301, - 300, 300, - 299, 299, - 298, 298, - 297, 297, - 296, 296, - 295, 295, - 294, 294, - 293, 293, - 292, 292, - 291, 291, - 290, 290, - 289, 289, - 288, 288, - 287, 287, - 286, 286, - 285, 285, - 284, 284, - 283, 283, - 282, 282, - 281, 281, - 280, 280, - 279, 279, - 278, 278, - 277, 277, - 276, 276, - 275, 275, - 274, 274, - 273, 273, - 272, 272, - 271, 271, - 270, 270, - 269, 269, - 268, 268, - 267, 267, - 266, 266, - 265, 265, - 264, 264, - 263, 263, - 262, 262, - 261, 261, - 260, 260, - 259, 259, - 258, 258, - 257, 257, - 256, 256, - 255, 255, - 254, 254, - 253, 253, - 252, 252, - 251, 251, - 250, 250, - 249, 249, - 248, 248, - 247, 247, - 246, 246, - 245, 245, - 244, 244, - 243, 243, - 242, 242, - 241, 241, - 240, 240, - 239, 239, - 238, 238, - 237, 237, - 236, 236, - 235, 235, - 234, 234, - 233, 233, - 232, 232, - 231, 231, - 230, 230, - 229, 229, - 228, 228, - 227, 227, - 226, 226, - 225, 225, - 224, 224, - 223, 223, - 222, 222, - 221, 221, - 220, 220, - 219, 219, - 218, 218, - 217, 217, - 216, 216, - 215, 215, - 214, 214, - 213, 213, - 212, 212, - 211, 211, - 210, 210, - 209, 209, - 208, 208, - 207, 207, - 206, 206, - 205, 205, - 204, 204, - 203, 203, - 202, 202, - 201, 201, - 200, 200, - 199, 199, - 198, 198, - 197, 197, - 196, 196, - 195, 195, - 194, 194, - 193, 193, - 192, 192, - 191, 191, - 190, 190, - 189, 189, - 188, 188, - 187, 187, - 186, 186, - 185, 185, - 184, 184, - 183, 183, - 182, 182, - 181, 181, - 180, 180, - 179, 179, - 178, 178, - 177, 177, - 176, 176, - 175, 175, - 174, 174, - 173, 173, - 172, 172, - 171, 171, - 170, 170, - 169, 169, - 168, 168, - 167, 167, - 166, 166, - 165, 165, - 164, 164, - 163, 163, - 162, 162, - 161, 161, - 160, 160, - 159, 159, - 158, 158, - 157, 157, - 156, 156, - 155, 155, - 154, 154, - 153, 153, - 152, 152, - 151, 151, - 150, 150, - 149, 149, - 148, 148, - 147, 147, - 146, 146, - 145, 145, - 144, 144, - 143, 143, - 142, 142, - 141, 141, - 140, 140, - 139, 139, - 138, 138, - 137, 137, - 136, 136, - 135, 135, - 134, 134, - 133, 133, - 132, 132, - 131, 131, - 130, 130, - 129, 129, - 128, 128, - 127, 127, - 126, 126, - 125, 125, - 124, 124, - 123, 123, - 122, 122, - 121, 121, - 120, 120, - 119, 119, - 118, 118, - 117, 117, - 116, 116, - 115, 115, - 114, 114, - 113, 113, - 112, 112, - 111, 111, - 110, 110, - 109, 109, - 108, 108, - 107, 107, - 106, 106, - 105, 105, - 104, 104, - 103, 103, - 102, 102, - 101, 101, - 100, 100, - 99, 99, - 98, 98, - 97, 97, - 96, 96, - 95, 95, - 94, 94, - 93, 93, - 92, 92, - 91, 91, - 90, 90, - 89, 89, - 88, 88, - 87, 87, - 86, 86, - 85, 85, - 84, 84, - 83, 83, - 82, 82, - 81, 81, - 80, 80, - 79, 79, - 78, 78, - 77, 77, - 76, 76, - 75, 75, - 74, 74, - 73, 73, - 72, 72, - 71, 71, - 70, 70, - 69, 69, - 68, 68, - 67, 67, - 66, 66, - 65, 65, - 64, 64, - 63, 63, - 62, 62, - 61, 61, - 60, 60, - 59, 59, - 58, 58, - 57, 57, - 56, 56, - 55, 55, - 54, 54, - 53, 53, - 52, 52, - 51, 51, - 50, 50, - 49, 49, - 48, 48, - 47, 47, - 46, 46, - 45, 45, - 44, 44, - 43, 43, - 42, 42, - 41, 41, - 40, 40, - 39, 39, - 38, 38, - 37, 37, - 36, 36, - 35, 35, - 34, 34, - 33, 33, - 32, 32, - 31, 31, - 30, 30, - 29, 29, - 28, 28, - 27, 27, - 26, 26, - 25, 25, - 24, 24, - 23, 23, - 22, 22, - 21, 21, - 20, 20, - 19, 19, - 18, 18, - 17, 17, - 16, 16, - 15, 15, - 14, 14, - 13, 13, - 12, 12, - 11, 11, - 10, 10, - 9, 9, - 8, 8, - 7, 7, - 6, 6, - 5, 5, - 4, 4, - 3, 3, - 2, 2, - 1, 1, 0]": thm Nitpicking formula... ### postprocessing term ### 2.596s elapsed time, 14.192s cpu time, 0.000s GC time Nitpick found a counterexample: Free variables: x11 = 1 x13 = 6 x14 = 4 x15 = 3 x16 = 7 x17 = 9 x18 = 5 x19 = 8 x21 = 8 x22 = 9 x23 = 5 x25 = 2 x26 = 1 x27 = 4 x28 = 7 x31 = 3 x34 = 9 x36 = 5 x37 = 1 x38 = 2 x39 = 6 x41 = 4 x42 = 5 x43 = 7 x44 = 1 x45 = 9 x47 = 8 x48 = 6 x51 = 9 x53 = 3 x54 = 2 x56 = 6 x57 = 5 x59 = 7 x62 = 1 x63 = 2 x65 = 7 x66 = 8 x67 = 3 x68 = 9 x69 = 4 x71 = 2 x72 = 6 x73 = 9 x74 = 3 x76 = 4 x79 = 5 x82 = 4 x83 = 8 x84 = 7 x85 = 6 x87 = 2 x88 = 3 x89 = 1 x91 = 7 x92 = 3 x93 = 1 x94 = 8 x95 = 5 x96 = 2 x97 = 6 x99 = 9 Nitpicking formula... val it = "Sorting_Algorithms.sort int_abs_reversed example_2 \ [- 3000, 3000, - 2999, 2999, - 2998, 2998, - 2997, 2997, - 2996, 2996, - 2995, 2995, - 2994, 2994, - 2993, 2993, - 2992, 2992, - 2991, 2991, - 2990, 2990, - 2989, 2989, - 2988, 2988, - 2987, 2987, - 2986, 2986, - 2985, 2985, - 2984, 2984, - 2983, 2983, - 2982, 2982, - 2981, 2981, - 2980, 2980, - 2979, 2979, - 2978, 2978, - 2977, 2977, - 2976, 2976, - 2975, 2975, - 2974, 2974, - 2973, 2973, - 2972, 2972, - 2971, 2971, - 2970, 2970, - 2969, 2969, - 2968, 2968, - 2967, 2967, - 2966, 2966, - 2965, 2965, - 2964, 2964, - 2963, 2963, - 2962, 2962, - 2961, 2961, - 2960, 2960, - 2959, 2959, - 2958, 2958, - 2957, 2957, - 2956, 2956, - 2955, 2955, - 2954, 2954, - 2953, 2953, - 2952, 2952, - 2951, 2951, - 2950, 2950, - 2949, 2949, - 2948, 2948, - 2947, 2947, - 2946, 2946, - 2945, 2945, - 2944, 2944, - 2943, 2943, - 2942, 2942, - 2941, 2941, - 2940, 2940, - 2939, 2939, - 2938, 2938, - 2937, 2937, - 2936, 2936, - 2935, 2935, - 2934, 2934, - 2933, 2933, - 2932, 2932, - 2931, 2931, - 2930, 2930, - 2929, 2929, - 2928, 2928, - 2927, 2927, - 2926, 2926, - 2925, 2925, - 2924, 2924, - 2923, 2923, - 2922, 2922, - 2921, 2921, - 2920, 2920, - 2919, 2919, - 2918, 2918, - 2917, 2917, - 2916, 2916, - 2915, 2915, - 2914, 2914, - 2913, 2913, - 2912, 2912, - 2911, 2911, - 2910, 2910, - 2909, 2909, - 2908, 2908, - 2907, 2907, - 2906, 2906, - 2905, 2905, - 2904, 2904, - 2903, 2903, - 2902, 2902, - 2901, 2901, - 2900, 2900, - 2899, 2899, - 2898, 2898, - 2897, 2897, - 2896, 2896, - 2895, 2895, - 2894, 2894, - 2893, 2893, - 2892, 2892, - 2891, 2891, - 2890, 2890, - 2889, 2889, - 2888, 2888, - 2887, 2887, - 2886, 2886, - 2885, 2885, - 2884, 2884, - 2883, 2883, - 2882, 2882, - 2881, 2881, - 2880, 2880, - 2879, 2879, - 2878, 2878, - 2877, 2877, - 2876, 2876, - 2875, 2875, - 2874, 2874, - 2873, 2873, - 2872, 2872, - 2871, 2871, - 2870, 2870, - 2869, 2869, - 2868, 2868, - 2867, 2867, - 2866, 2866, - 2865, 2865, - 2864, 2864, - 2863, 2863, - 2862, 2862, - 2861, 2861, - 2860, 2860, - 2859, 2859, - 2858, 2858, - 2857, 2857, - 2856, 2856, - 2855, 2855, - 2854, 2854, - 2853, 2853, - 2852, 2852, - 2851, 2851, - 2850, 2850, - 2849, 2849, - 2848, 2848, - 2847, 2847, - 2846, 2846, - 2845, 2845, - 2844, 2844, - 2843, 2843, - 2842, 2842, - 2841, 2841, - 2840, 2840, - 2839, 2839, - 2838, 2838, - 2837, 2837, - 2836, 2836, - 2835, 2835, - 2834, 2834, - 2833, 2833, - 2832, 2832, - 2831, 2831, - 2830, 2830, - 2829, 2829, - 2828, 2828, - 2827, 2827, - 2826, 2826, - 2825, 2825, - 2824, 2824, - 2823, 2823, - 2822, 2822, - 2821, 2821, - 2820, 2820, - 2819, 2819, - 2818, 2818, - 2817, 2817, - 2816, 2816, - 2815, 2815, - 2814, 2814, - 2813, 2813, - 2812, 2812, - 2811, 2811, - 2810, 2810, - 2809, 2809, - 2808, 2808, - 2807, 2807, - 2806, 2806, - 2805, 2805, - 2804, 2804, - 2803, 2803, - 2802, 2802, - 2801, 2801, - 2800, 2800, - 2799, 2799, - 2798, 2798, - 2797, 2797, - 2796, 2796, - 2795, 2795, - 2794, 2794, - 2793, 2793, - 2792, 2792, - 2791, 2791, - 2790, 2790, - 2789, 2789, - 2788, 2788, - 2787, 2787, - 2786, 2786, - 2785, 2785, - 2784, 2784, - 2783, 2783, - 2782, 2782, - 2781, 2781, - 2780, 2780, - 2779, 2779, - 2778, 2778, - 2777, 2777, - 2776, 2776, - 2775, 2775, - 2774, 2774, - 2773, 2773, - 2772, 2772, - 2771, 2771, - 2770, 2770, - 2769, 2769, - 2768, 2768, - 2767, 2767, - 2766, 2766, - 2765, 2765, - 2764, 2764, - 2763, 2763, - 2762, 2762, - 2761, 2761, - 2760, 2760, - 2759, 2759, - 2758, 2758, - 2757, 2757, - 2756, 2756, - 2755, 2755, - 2754, 2754, - 2753, 2753, - 2752, 2752, - 2751, 2751, - 2750, 2750, - 2749, 2749, - 2748, 2748, - 2747, 2747, - 2746, 2746, - 2745, 2745, - 2744, 2744, - 2743, 2743, - 2742, 2742, - 2741, 2741, - 2740, 2740, - 2739, 2739, - 2738, 2738, - 2737, 2737, - 2736, 2736, - 2735, 2735, - 2734, 2734, - 2733, 2733, - 2732, 2732, - 2731, 2731, - 2730, 2730, - 2729, 2729, - 2728, 2728, - 2727, 2727, - 2726, 2726, - 2725, 2725, - 2724, 2724, - 2723, 2723, - 2722, 2722, - 2721, 2721, - 2720, 2720, - 2719, 2719, - 2718, 2718, - 2717, 2717, - 2716, 2716, - 2715, 2715, - 2714, 2714, - 2713, 2713, - 2712, 2712, - 2711, 2711, - 2710, 2710, - 2709, 2709, - 2708, 2708, - 2707, 2707, - 2706, 2706, - 2705, 2705, - 2704, 2704, - 2703, 2703, - 2702, 2702, - 2701, 2701, - 2700, 2700, - 2699, 2699, - 2698, 2698, - 2697, 2697, - 2696, 2696, - 2695, 2695, - 2694, 2694, - 2693, 2693, - 2692, 2692, - 2691, 2691, - 2690, 2690, - 2689, 2689, - 2688, 2688, - 2687, 2687, - 2686, 2686, - 2685, 2685, - 2684, 2684, - 2683, 2683, - 2682, 2682, - 2681, 2681, - 2680, 2680, - 2679, 2679, - 2678, 2678, - 2677, 2677, - 2676, 2676, - 2675, 2675, - 2674, 2674, - 2673, 2673, - 2672, 2672, - 2671, 2671, - 2670, 2670, - 2669, 2669, - 2668, 2668, - 2667, 2667, - 2666, 2666, - 2665, 2665, - 2664, 2664, - 2663, 2663, - 2662, 2662, - 2661, 2661, - 2660, 2660, - 2659, 2659, - 2658, 2658, - 2657, 2657, - 2656, 2656, - 2655, 2655, - 2654, 2654, - 2653, 2653, - 2652, 2652, - 2651, 2651, - 2650, 2650, - 2649, 2649, - 2648, 2648, - 2647, 2647, - 2646, 2646, - 2645, 2645, - 2644, 2644, - 2643, 2643, - 2642, 2642, - 2641, 2641, - 2640, 2640, - 2639, 2639, - 2638, 2638, - 2637, 2637, - 2636, 2636, - 2635, 2635, - 2634, 2634, - 2633, 2633, - 2632, 2632, - 2631, 2631, - 2630, 2630, - 2629, 2629, - 2628, 2628, - 2627, 2627, - 2626, 2626, - 2625, 2625, - 2624, 2624, - 2623, 2623, - 2622, 2622, - 2621, 2621, - 2620, 2620, - 2619, 2619, - 2618, 2618, - 2617, 2617, - 2616, 2616, - 2615, 2615, - 2614, 2614, - 2613, 2613, - 2612, 2612, - 2611, 2611, - 2610, 2610, - 2609, 2609, - 2608, 2608, - 2607, 2607, - 2606, 2606, - 2605, 2605, - 2604, 2604, - 2603, 2603, - 2602, 2602, - 2601, 2601, - 2600, 2600, - 2599, 2599, - 2598, 2598, - 2597, 2597, - 2596, 2596, - 2595, 2595, - 2594, 2594, - 2593, 2593, - 2592, 2592, - 2591, 2591, - 2590, 2590, - 2589, 2589, - 2588, 2588, - 2587, 2587, - 2586, 2586, - 2585, 2585, - 2584, 2584, - 2583, 2583, - 2582, 2582, - 2581, 2581, - 2580, 2580, - 2579, 2579, - 2578, 2578, - 2577, 2577, - 2576, 2576, - 2575, 2575, - 2574, 2574, - 2573, 2573, - 2572, 2572, - 2571, 2571, - 2570, 2570, - 2569, 2569, - 2568, 2568, - 2567, 2567, - 2566, 2566, - 2565, 2565, - 2564, 2564, - 2563, 2563, - 2562, 2562, - 2561, 2561, - 2560, 2560, - 2559, 2559, - 2558, 2558, - 2557, 2557, - 2556, 2556, - 2555, 2555, - 2554, 2554, - 2553, 2553, - 2552, 2552, - 2551, 2551, - 2550, 2550, - 2549, 2549, - 2548, 2548, - 2547, 2547, - 2546, 2546, - 2545, 2545, - 2544, 2544, - 2543, 2543, - 2542, 2542, - 2541, 2541, - 2540, 2540, - 2539, 2539, - 2538, 2538, - 2537, 2537, - 2536, 2536, - 2535, 2535, - 2534, 2534, - 2533, 2533, - 2532, 2532, - 2531, 2531, - 2530, 2530, - 2529, 2529, - 2528, 2528, - 2527, 2527, - 2526, 2526, - 2525, 2525, - 2524, 2524, - 2523, 2523, - 2522, 2522, - 2521, 2521, - 2520, 2520, - 2519, 2519, - 2518, 2518, - 2517, 2517, - 2516, 2516, - 2515, 2515, - 2514, 2514, - 2513, 2513, - 2512, 2512, - 2511, 2511, - 2510, 2510, - 2509, 2509, - 2508, 2508, - 2507, 2507, - 2506, 2506, - 2505, 2505, - 2504, 2504, - 2503, 2503, - 2502, 2502, - 2501, 2501, - 2500, 2500, - 2499, 2499, - 2498, 2498, - 2497, 2497, - 2496, 2496, - 2495, 2495, - 2494, 2494, - 2493, 2493, - 2492, 2492, - 2491, 2491, - 2490, 2490, - 2489, 2489, - 2488, 2488, - 2487, 2487, - 2486, 2486, - 2485, 2485, - 2484, 2484, - 2483, 2483, - 2482, 2482, - 2481, 2481, - 2480, 2480, - 2479, 2479, - 2478, 2478, - 2477, 2477, - 2476, 2476, - 2475, 2475, - 2474, 2474, - 2473, 2473, - 2472, 2472, - 2471, 2471, - 2470, 2470, - 2469, 2469, - 2468, 2468, - 2467, 2467, - 2466, 2466, - 2465, 2465, - 2464, 2464, - 2463, 2463, - 2462, 2462, - 2461, 2461, - 2460, 2460, - 2459, 2459, - 2458, 2458, - 2457, 2457, - 2456, 2456, - 2455, 2455, - 2454, 2454, - 2453, 2453, - 2452, 2452, - 2451, 2451, - 2450, 2450, - 2449, 2449, - 2448, 2448, - 2447, 2447, - 2446, 2446, - 2445, 2445, - 2444, 2444, - 2443, 2443, - 2442, 2442, - 2441, 2441, - 2440, 2440, - 2439, 2439, - 2438, 2438, - 2437, 2437, - 2436, 2436, - 2435, 2435, - 2434, 2434, - 2433, 2433, - 2432, 2432, - 2431, 2431, - 2430, 2430, - 2429, 2429, - 2428, 2428, - 2427, 2427, - 2426, 2426, - 2425, 2425, - 2424, 2424, - 2423, 2423, - 2422, 2422, - 2421, 2421, - 2420, 2420, - 2419, 2419, - 2418, 2418, - 2417, 2417, - 2416, 2416, - 2415, 2415, - 2414, 2414, - 2413, 2413, - 2412, 2412, - 2411, 2411, - 2410, 2410, - 2409, 2409, - 2408, 2408, - 2407, 2407, - 2406, 2406, - 2405, 2405, - 2404, 2404, - 2403, 2403, - 2402, 2402, - 2401, 2401, - 2400, 2400, - 2399, 2399, - 2398, 2398, - 2397, 2397, - 2396, 2396, - 2395, 2395, - 2394, 2394, - 2393, 2393, - 2392, 2392, - 2391, 2391, - 2390, 2390, - 2389, 2389, - 2388, 2388, - 2387, 2387, - 2386, 2386, - 2385, 2385, - 2384, 2384, - 2383, 2383, - 2382, 2382, - 2381, 2381, - 2380, 2380, - 2379, 2379, - 2378, 2378, - 2377, 2377, - 2376, 2376, - 2375, 2375, - 2374, 2374, - 2373, 2373, - 2372, 2372, - 2371, 2371, - 2370, 2370, - 2369, 2369, - 2368, 2368, - 2367, 2367, - 2366, 2366, - 2365, 2365, - 2364, 2364, - 2363, 2363, - 2362, 2362, - 2361, 2361, - 2360, 2360, - 2359, 2359, - 2358, 2358, - 2357, 2357, - 2356, 2356, - 2355, 2355, - 2354, 2354, - 2353, 2353, - 2352, 2352, - 2351, 2351, - 2350, 2350, - 2349, 2349, - 2348, 2348, - 2347, 2347, - 2346, 2346, - 2345, 2345, - 2344, 2344, - 2343, 2343, - 2342, 2342, - 2341, 2341, - 2340, 2340, - 2339, 2339, - 2338, 2338, - 2337, 2337, - 2336, 2336, - 2335, 2335, - 2334, 2334, - 2333, 2333, - 2332, 2332, - 2331, 2331, - 2330, 2330, - 2329, 2329, - 2328, 2328, - 2327, 2327, - 2326, 2326, - 2325, 2325, - 2324, 2324, - 2323, 2323, - 2322, 2322, - 2321, 2321, - 2320, 2320, - 2319, 2319, - 2318, 2318, - 2317, 2317, - 2316, 2316, - 2315, 2315, - 2314, 2314, - 2313, 2313, - 2312, 2312, - 2311, 2311, - 2310, 2310, - 2309, 2309, - 2308, 2308, - 2307, 2307, - 2306, 2306, - 2305, 2305, - 2304, 2304, - 2303, 2303, - 2302, 2302, - 2301, 2301, - 2300, 2300, - 2299, 2299, - 2298, 2298, - 2297, 2297, - 2296, 2296, - 2295, 2295, - 2294, 2294, - 2293, 2293, - 2292, 2292, - 2291, 2291, - 2290, 2290, - 2289, 2289, - 2288, 2288, - 2287, 2287, - 2286, 2286, - 2285, 2285, - 2284, 2284, - 2283, 2283, - 2282, 2282, - 2281, 2281, - 2280, 2280, - 2279, 2279, - 2278, 2278, - 2277, 2277, - 2276, 2276, - 2275, 2275, - 2274, 2274, - 2273, 2273, - 2272, 2272, - 2271, 2271, - 2270, 2270, - 2269, 2269, - 2268, 2268, - 2267, 2267, - 2266, 2266, - 2265, 2265, - 2264, 2264, - 2263, 2263, - 2262, 2262, - 2261, 2261, - 2260, 2260, - 2259, 2259, - 2258, 2258, - 2257, 2257, - 2256, 2256, - 2255, 2255, - 2254, 2254, - 2253, 2253, - 2252, 2252, - 2251, 2251, - 2250, 2250, - 2249, 2249, - 2248, 2248, - 2247, 2247, - 2246, 2246, - 2245, 2245, - 2244, 2244, - 2243, 2243, - 2242, 2242, - 2241, 2241, - 2240, 2240, - 2239, 2239, - 2238, 2238, - 2237, 2237, - 2236, 2236, - 2235, 2235, - 2234, 2234, - 2233, 2233, - 2232, 2232, - 2231, 2231, - 2230, 2230, - 2229, 2229, - 2228, 2228, - 2227, 2227, - 2226, 2226, - 2225, 2225, - 2224, 2224, - 2223, 2223, - 2222, 2222, - 2221, 2221, - 2220, 2220, - 2219, 2219, - 2218, 2218, - 2217, 2217, - 2216, 2216, - 2215, 2215, - 2214, 2214, - 2213, 2213, - 2212, 2212, - 2211, 2211, - 2210, 2210, - 2209, 2209, - 2208, 2208, - 2207, 2207, - 2206, 2206, - 2205, 2205, - 2204, 2204, - 2203, 2203, - 2202, 2202, - 2201, 2201, - 2200, 2200, - 2199, 2199, - 2198, 2198, - 2197, 2197, - 2196, 2196, - 2195, 2195, - 2194, 2194, - 2193, 2193, - 2192, 2192, - 2191, 2191, - 2190, 2190, - 2189, 2189, - 2188, 2188, - 2187, 2187, - 2186, 2186, - 2185, 2185, - 2184, 2184, - 2183, 2183, - 2182, 2182, - 2181, 2181, - 2180, 2180, - 2179, 2179, - 2178, 2178, - 2177, 2177, - 2176, 2176, - 2175, 2175, - 2174, 2174, - 2173, 2173, - 2172, 2172, - 2171, 2171, - 2170, 2170, - 2169, 2169, - 2168, 2168, - 2167, 2167, - 2166, 2166, - 2165, 2165, - 2164, 2164, - 2163, 2163, - 2162, 2162, - 2161, 2161, - 2160, 2160, - 2159, 2159, - 2158, 2158, - 2157, 2157, - 2156, 2156, - 2155, 2155, - 2154, 2154, - 2153, 2153, - 2152, 2152, - 2151, 2151, - 2150, 2150, - 2149, 2149, - 2148, 2148, - 2147, 2147, - 2146, 2146, - 2145, 2145, - 2144, 2144, - 2143, 2143, - 2142, 2142, - 2141, 2141, - 2140, 2140, - 2139, 2139, - 2138, 2138, - 2137, 2137, - 2136, 2136, - 2135, 2135, - 2134, 2134, - 2133, 2133, - 2132, 2132, - 2131, 2131, - 2130, 2130, - 2129, 2129, - 2128, 2128, - 2127, 2127, - 2126, 2126, - 2125, 2125, - 2124, 2124, - 2123, 2123, - 2122, 2122, - 2121, 2121, - 2120, 2120, - 2119, 2119, - 2118, 2118, - 2117, 2117, - 2116, 2116, - 2115, 2115, - 2114, 2114, - 2113, 2113, - 2112, 2112, - 2111, 2111, - 2110, 2110, - 2109, 2109, - 2108, 2108, - 2107, 2107, - 2106, 2106, - 2105, 2105, - 2104, 2104, - 2103, 2103, - 2102, 2102, - 2101, 2101, - 2100, 2100, - 2099, 2099, - 2098, 2098, - 2097, 2097, - 2096, 2096, - 2095, 2095, - 2094, 2094, - 2093, 2093, - 2092, 2092, - 2091, 2091, - 2090, 2090, - 2089, 2089, - 2088, 2088, - 2087, 2087, - 2086, 2086, - 2085, 2085, - 2084, 2084, - 2083, 2083, - 2082, 2082, - 2081, 2081, - 2080, 2080, - 2079, 2079, - 2078, 2078, - 2077, 2077, - 2076, 2076, - 2075, 2075, - 2074, 2074, - 2073, 2073, - 2072, 2072, - 2071, 2071, - 2070, 2070, - 2069, 2069, - 2068, 2068, - 2067, 2067, - 2066, 2066, - 2065, 2065, - 2064, 2064, - 2063, 2063, - 2062, 2062, - 2061, 2061, - 2060, 2060, - 2059, 2059, - 2058, 2058, - 2057, 2057, - 2056, 2056, - 2055, 2055, - 2054, 2054, - 2053, 2053, - 2052, 2052, - 2051, 2051, - 2050, 2050, - 2049, 2049, - 2048, 2048, - 2047, 2047, - 2046, 2046, - 2045, 2045, - 2044, 2044, - 2043, 2043, - 2042, 2042, - 2041, 2041, - 2040, 2040, - 2039, 2039, - 2038, 2038, - 2037, 2037, - 2036, 2036, - 2035, 2035, - 2034, 2034, - 2033, 2033, - 2032, 2032, - 2031, 2031, - 2030, 2030, - 2029, 2029, - 2028, 2028, - 2027, 2027, - 2026, 2026, - 2025, 2025, - 2024, 2024, - 2023, 2023, - 2022, 2022, - 2021, 2021, - 2020, 2020, - 2019, 2019, - 2018, 2018, - 2017, 2017, - 2016, 2016, - 2015, 2015, - 2014, 2014, - 2013, 2013, - 2012, 2012, - 2011, 2011, - 2010, 2010, - 2009, 2009, - 2008, 2008, - 2007, 2007, - 2006, 2006, - 2005, 2005, - 2004, 2004, - 2003, 2003, - 2002, 2002, - 2001, 2001, - 2000, 2000, - 1999, 1999, - 1998, 1998, - 1997, 1997, - 1996, 1996, - 1995, 1995, - 1994, 1994, - 1993, 1993, - 1992, 1992, - 1991, 1991, - 1990, 1990, - 1989, 1989, - 1988, 1988, - 1987, 1987, - 1986, 1986, - 1985, 1985, - 1984, 1984, - 1983, 1983, - 1982, 1982, - 1981, 1981, - 1980, 1980, - 1979, 1979, - 1978, 1978, - 1977, 1977, - 1976, 1976, - 1975, 1975, - 1974, 1974, - 1973, 1973, - 1972, 1972, - 1971, 1971, - 1970, 1970, - 1969, 1969, - 1968, 1968, - 1967, 1967, - 1966, 1966, - 1965, 1965, - 1964, 1964, - 1963, 1963, - 1962, 1962, - 1961, 1961, - 1960, 1960, - 1959, 1959, - 1958, 1958, - 1957, 1957, - 1956, 1956, - 1955, 1955, - 1954, 1954, - 1953, 1953, - 1952, 1952, - 1951, 1951, - 1950, 1950, - 1949, 1949, - 1948, 1948, - 1947, 1947, - 1946, 1946, - 1945, 1945, - 1944, 1944, - 1943, 1943, - 1942, 1942, - 1941, 1941, - 1940, 1940, - 1939, 1939, - 1938, 1938, - 1937, 1937, - 1936, 1936, - 1935, 1935, - 1934, 1934, - 1933, 1933, - 1932, 1932, - 1931, 1931, - 1930, 1930, - 1929, 1929, - 1928, 1928, - 1927, 1927, - 1926, 1926, - 1925, 1925, - 1924, 1924, - 1923, 1923, - 1922, 1922, - 1921, 1921, - 1920, 1920, - 1919, 1919, - 1918, 1918, - 1917, 1917, - 1916, 1916, - 1915, 1915, - 1914, 1914, - 1913, 1913, - 1912, 1912, - 1911, 1911, - 1910, 1910, - 1909, 1909, - 1908, 1908, - 1907, 1907, - 1906, 1906, - 1905, 1905, - 1904, 1904, - 1903, 1903, - 1902, 1902, - 1901, 1901, - 1900, 1900, - 1899, 1899, - 1898, 1898, - 1897, 1897, - 1896, 1896, - 1895, 1895, - 1894, 1894, - 1893, 1893, - 1892, 1892, - 1891, 1891, - 1890, 1890, - 1889, 1889, - 1888, 1888, - 1887, 1887, - 1886, 1886, - 1885, 1885, - 1884, 1884, - 1883, 1883, - 1882, 1882, - 1881, 1881, - 1880, 1880, - 1879, 1879, - 1878, 1878, - 1877, 1877, - 1876, 1876, - 1875, 1875, - 1874, 1874, - 1873, 1873, - 1872, 1872, - 1871, 1871, - 1870, 1870, - 1869, 1869, - 1868, 1868, - 1867, 1867, - 1866, 1866, - 1865, 1865, - 1864, 1864, - 1863, 1863, - 1862, 1862, - 1861, 1861, - 1860, 1860, - 1859, 1859, - 1858, 1858, - 1857, 1857, - 1856, 1856, - 1855, 1855, - 1854, 1854, - 1853, 1853, - 1852, 1852, - 1851, 1851, - 1850, 1850, - 1849, 1849, - 1848, 1848, - 1847, 1847, - 1846, 1846, - 1845, 1845, - 1844, 1844, - 1843, 1843, - 1842, 1842, - 1841, 1841, - 1840, 1840, - 1839, 1839, - 1838, 1838, - 1837, 1837, - 1836, 1836, - 1835, 1835, - 1834, 1834, - 1833, 1833, - 1832, 1832, - 1831, 1831, - 1830, 1830, - 1829, 1829, - 1828, 1828, - 1827, 1827, - 1826, 1826, - 1825, 1825, - 1824, 1824, - 1823, 1823, - 1822, 1822, - 1821, 1821, - 1820, 1820, - 1819, 1819, - 1818, 1818, - 1817, 1817, - 1816, 1816, - 1815, 1815, - 1814, 1814, - 1813, 1813, - 1812, 1812, - 1811, 1811, - 1810, 1810, - 1809, 1809, - 1808, 1808, - 1807, 1807, - 1806, 1806, - 1805, 1805, - 1804, 1804, - 1803, 1803, - 1802, 1802, - 1801, 1801, - 1800, 1800, - 1799, 1799, - 1798, 1798, - 1797, 1797, - 1796, 1796, - 1795, 1795, - 1794, 1794, - 1793, 1793, - 1792, 1792, - 1791, 1791, - 1790, 1790, - 1789, 1789, - 1788, 1788, - 1787, 1787, - 1786, 1786, - 1785, 1785, - 1784, 1784, - 1783, 1783, - 1782, 1782, - 1781, 1781, - 1780, 1780, - 1779, 1779, - 1778, 1778, - 1777, 1777, - 1776, 1776, - 1775, 1775, - 1774, 1774, - 1773, 1773, - 1772, 1772, - 1771, 1771, - 1770, 1770, - 1769, 1769, - 1768, 1768, - 1767, 1767, - 1766, 1766, - 1765, 1765, - 1764, 1764, - 1763, 1763, - 1762, 1762, - 1761, 1761, - 1760, 1760, - 1759, 1759, - 1758, 1758, - 1757, 1757, - 1756, 1756, - 1755, 1755, - 1754, 1754, - 1753, 1753, - 1752, 1752, - 1751, 1751, - 1750, 1750, - 1749, 1749, - 1748, 1748, - 1747, 1747, - 1746, 1746, - 1745, 1745, - 1744, 1744, - 1743, 1743, - 1742, 1742, - 1741, 1741, - 1740, 1740, - 1739, 1739, - 1738, 1738, - 1737, 1737, - 1736, 1736, - 1735, 1735, - 1734, 1734, - 1733, 1733, - 1732, 1732, - 1731, 1731, - 1730, 1730, - 1729, 1729, - 1728, 1728, - 1727, 1727, - 1726, 1726, - 1725, 1725, - 1724, 1724, - 1723, 1723, - 1722, 1722, - 1721, 1721, - 1720, 1720, - 1719, 1719, - 1718, 1718, - 1717, 1717, - 1716, 1716, - 1715, 1715, - 1714, 1714, - 1713, 1713, - 1712, 1712, - 1711, 1711, - 1710, 1710, - 1709, 1709, - 1708, 1708, - 1707, 1707, - 1706, 1706, - 1705, 1705, - 1704, 1704, - 1703, 1703, - 1702, 1702, - 1701, 1701, - 1700, 1700, - 1699, 1699, - 1698, 1698, - 1697, 1697, - 1696, 1696, - 1695, 1695, - 1694, 1694, - 1693, 1693, - 1692, 1692, - 1691, 1691, - 1690, 1690, - 1689, 1689, - 1688, 1688, - 1687, 1687, - 1686, 1686, - 1685, 1685, - 1684, 1684, - 1683, 1683, - 1682, 1682, - 1681, 1681, - 1680, 1680, - 1679, 1679, - 1678, 1678, - 1677, 1677, - 1676, 1676, - 1675, 1675, - 1674, 1674, - 1673, 1673, - 1672, 1672, - 1671, 1671, - 1670, 1670, - 1669, 1669, - 1668, 1668, - 1667, 1667, - 1666, 1666, - 1665, 1665, - 1664, 1664, - 1663, 1663, - 1662, 1662, - 1661, 1661, - 1660, 1660, - 1659, 1659, - 1658, 1658, - 1657, 1657, - 1656, 1656, - 1655, 1655, - 1654, 1654, - 1653, 1653, - 1652, 1652, - 1651, 1651, - 1650, 1650, - 1649, 1649, - 1648, 1648, - 1647, 1647, - 1646, 1646, - 1645, 1645, - 1644, 1644, - 1643, 1643, - 1642, 1642, - 1641, 1641, - 1640, 1640, - 1639, 1639, - 1638, 1638, - 1637, 1637, - 1636, 1636, - 1635, 1635, - 1634, 1634, - 1633, 1633, - 1632, 1632, - 1631, 1631, - 1630, 1630, - 1629, 1629, - 1628, 1628, - 1627, 1627, - 1626, 1626, - 1625, 1625, - 1624, 1624, - 1623, 1623, - 1622, 1622, - 1621, 1621, - 1620, 1620, - 1619, 1619, - 1618, 1618, - 1617, 1617, - 1616, 1616, - 1615, 1615, - 1614, 1614, - 1613, 1613, - 1612, 1612, - 1611, 1611, - 1610, 1610, - 1609, 1609, - 1608, 1608, - 1607, 1607, - 1606, 1606, - 1605, 1605, - 1604, 1604, - 1603, 1603, - 1602, 1602, - 1601, 1601, - 1600, 1600, - 1599, 1599, - 1598, 1598, - 1597, 1597, - 1596, 1596, - 1595, 1595, - 1594, 1594, - 1593, 1593, - 1592, 1592, - 1591, 1591, - 1590, 1590, - 1589, 1589, - 1588, 1588, - 1587, 1587, - 1586, 1586, - 1585, 1585, - 1584, 1584, - 1583, 1583, - 1582, 1582, - 1581, 1581, - 1580, 1580, - 1579, 1579, - 1578, 1578, - 1577, 1577, - 1576, 1576, - 1575, 1575, - 1574, 1574, - 1573, 1573, - 1572, 1572, - 1571, 1571, - 1570, 1570, - 1569, 1569, - 1568, 1568, - 1567, 1567, - 1566, 1566, - 1565, 1565, - 1564, 1564, - 1563, 1563, - 1562, 1562, - 1561, 1561, - 1560, 1560, - 1559, 1559, - 1558, 1558, - 1557, 1557, - 1556, 1556, - 1555, 1555, - 1554, 1554, - 1553, 1553, - 1552, 1552, - 1551, 1551, - 1550, 1550, - 1549, 1549, - 1548, 1548, - 1547, 1547, - 1546, 1546, - 1545, 1545, - 1544, 1544, - 1543, 1543, - 1542, 1542, - 1541, 1541, - 1540, 1540, - 1539, 1539, - 1538, 1538, - 1537, 1537, - 1536, 1536, - 1535, 1535, - 1534, 1534, - 1533, 1533, - 1532, 1532, - 1531, 1531, - 1530, 1530, - 1529, 1529, - 1528, 1528, - 1527, 1527, - 1526, 1526, - 1525, 1525, - 1524, 1524, - 1523, 1523, - 1522, 1522, - 1521, 1521, - 1520, 1520, - 1519, 1519, - 1518, 1518, - 1517, 1517, - 1516, 1516, - 1515, 1515, - 1514, 1514, - 1513, 1513, - 1512, 1512, - 1511, 1511, - 1510, 1510, - 1509, 1509, - 1508, 1508, - 1507, 1507, - 1506, 1506, - 1505, 1505, - 1504, 1504, - 1503, 1503, - 1502, 1502, - 1501, 1501, - 1500, 1500, - 1499, 1499, - 1498, 1498, - 1497, 1497, - 1496, 1496, - 1495, 1495, - 1494, 1494, - 1493, 1493, - 1492, 1492, - 1491, 1491, - 1490, 1490, - 1489, 1489, - 1488, 1488, - 1487, 1487, - 1486, 1486, - 1485, 1485, - 1484, 1484, - 1483, 1483, - 1482, 1482, - 1481, 1481, - 1480, 1480, - 1479, 1479, - 1478, 1478, - 1477, 1477, - 1476, 1476, - 1475, 1475, - 1474, 1474, - 1473, 1473, - 1472, 1472, - 1471, 1471, - 1470, 1470, - 1469, 1469, - 1468, 1468, - 1467, 1467, - 1466, 1466, - 1465, 1465, - 1464, 1464, - 1463, 1463, - 1462, 1462, - 1461, 1461, - 1460, 1460, - 1459, 1459, - 1458, 1458, - 1457, 1457, - 1456, 1456, - 1455, 1455, - 1454, 1454, - 1453, 1453, - 1452, 1452, - 1451, 1451, - 1450, 1450, - 1449, 1449, - 1448, 1448, - 1447, 1447, - 1446, 1446, - 1445, 1445, - 1444, 1444, - 1443, 1443, - 1442, 1442, - 1441, 1441, - 1440, 1440, - 1439, 1439, - 1438, 1438, - 1437, 1437, - 1436, 1436, - 1435, 1435, - 1434, 1434, - 1433, 1433, - 1432, 1432, - 1431, 1431, - 1430, 1430, - 1429, 1429, - 1428, 1428, - 1427, 1427, - 1426, 1426, - 1425, 1425, - 1424, 1424, - 1423, 1423, - 1422, 1422, - 1421, 1421, - 1420, 1420, - 1419, 1419, - 1418, 1418, - 1417, 1417, - 1416, 1416, - 1415, 1415, - 1414, 1414, - 1413, 1413, - 1412, 1412, - 1411, 1411, - 1410, 1410, - 1409, 1409, - 1408, 1408, - 1407, 1407, - 1406, 1406, - 1405, 1405, - 1404, 1404, - 1403, 1403, - 1402, 1402, - 1401, 1401, - 1400, 1400, - 1399, 1399, - 1398, 1398, - 1397, 1397, - 1396, 1396, - 1395, 1395, - 1394, 1394, - 1393, 1393, - 1392, 1392, - 1391, 1391, - 1390, 1390, - 1389, 1389, - 1388, 1388, - 1387, 1387, - 1386, 1386, - 1385, 1385, - 1384, 1384, - 1383, 1383, - 1382, 1382, - 1381, 1381, - 1380, 1380, - 1379, 1379, - 1378, 1378, - 1377, 1377, - 1376, 1376, - 1375, 1375, - 1374, 1374, - 1373, 1373, - 1372, 1372, - 1371, 1371, - 1370, 1370, - 1369, 1369, - 1368, 1368, - 1367, 1367, - 1366, 1366, - 1365, 1365, - 1364, 1364, - 1363, 1363, - 1362, 1362, - 1361, 1361, - 1360, 1360, - 1359, 1359, - 1358, 1358, - 1357, 1357, - 1356, 1356, - 1355, 1355, - 1354, 1354, - 1353, 1353, - 1352, 1352, - 1351, 1351, - 1350, 1350, - 1349, 1349, - 1348, 1348, - 1347, 1347, - 1346, 1346, - 1345, 1345, - 1344, 1344, - 1343, 1343, - 1342, 1342, - 1341, 1341, - 1340, 1340, - 1339, 1339, - 1338, 1338, - 1337, 1337, - 1336, 1336, - 1335, 1335, - 1334, 1334, - 1333, 1333, - 1332, 1332, - 1331, 1331, - 1330, 1330, - 1329, 1329, - 1328, 1328, - 1327, 1327, - 1326, 1326, - 1325, 1325, - 1324, 1324, - 1323, 1323, - 1322, 1322, - 1321, 1321, - 1320, 1320, - 1319, 1319, - 1318, 1318, - 1317, 1317, - 1316, 1316, - 1315, 1315, - 1314, 1314, - 1313, 1313, - 1312, 1312, - 1311, 1311, - 1310, 1310, - 1309, 1309, - 1308, 1308, - 1307, 1307, - 1306, 1306, - 1305, 1305, - 1304, 1304, - 1303, 1303, - 1302, 1302, - 1301, 1301, - 1300, 1300, - 1299, 1299, - 1298, 1298, - 1297, 1297, - 1296, 1296, - 1295, 1295, - 1294, 1294, - 1293, 1293, - 1292, 1292, - 1291, 1291, - 1290, 1290, - 1289, 1289, - 1288, 1288, - 1287, 1287, - 1286, 1286, - 1285, 1285, - 1284, 1284, - 1283, 1283, - 1282, 1282, - 1281, 1281, - 1280, 1280, - 1279, 1279, - 1278, 1278, - 1277, 1277, - 1276, 1276, - 1275, 1275, - 1274, 1274, - 1273, 1273, - 1272, 1272, - 1271, 1271, - 1270, 1270, - 1269, 1269, - 1268, 1268, - 1267, 1267, - 1266, 1266, - 1265, 1265, - 1264, 1264, - 1263, 1263, - 1262, 1262, - 1261, 1261, - 1260, 1260, - 1259, 1259, - 1258, 1258, - 1257, 1257, - 1256, 1256, - 1255, 1255, - 1254, 1254, - 1253, 1253, - 1252, 1252, - 1251, 1251, - 1250, 1250, - 1249, 1249, - 1248, 1248, - 1247, 1247, - 1246, 1246, - 1245, 1245, - 1244, 1244, - 1243, 1243, - 1242, 1242, - 1241, 1241, - 1240, 1240, - 1239, 1239, - 1238, 1238, - 1237, 1237, - 1236, 1236, - 1235, 1235, - 1234, 1234, - 1233, 1233, - 1232, 1232, - 1231, 1231, - 1230, 1230, - 1229, 1229, - 1228, 1228, - 1227, 1227, - 1226, 1226, - 1225, 1225, - 1224, 1224, - 1223, 1223, - 1222, 1222, - 1221, 1221, - 1220, 1220, - 1219, 1219, - 1218, 1218, - 1217, 1217, - 1216, 1216, - 1215, 1215, - 1214, 1214, - 1213, 1213, - 1212, 1212, - 1211, 1211, - 1210, 1210, - 1209, 1209, - 1208, 1208, - 1207, 1207, - 1206, 1206, - 1205, 1205, - 1204, 1204, - 1203, 1203, - 1202, 1202, - 1201, 1201, - 1200, 1200, - 1199, 1199, - 1198, 1198, - 1197, 1197, - 1196, 1196, - 1195, 1195, - 1194, 1194, - 1193, 1193, - 1192, 1192, - 1191, 1191, - 1190, 1190, - 1189, 1189, - 1188, 1188, - 1187, 1187, - 1186, 1186, - 1185, 1185, - 1184, 1184, - 1183, 1183, - 1182, 1182, - 1181, 1181, - 1180, 1180, - 1179, 1179, - 1178, 1178, - 1177, 1177, - 1176, 1176, - 1175, 1175, - 1174, 1174, - 1173, 1173, - 1172, 1172, - 1171, 1171, - 1170, 1170, - 1169, 1169, - 1168, 1168, - 1167, 1167, - 1166, 1166, - 1165, 1165, - 1164, 1164, - 1163, 1163, - 1162, 1162, - 1161, 1161, - 1160, 1160, - 1159, 1159, - 1158, 1158, - 1157, 1157, - 1156, 1156, - 1155, 1155, - 1154, 1154, - 1153, 1153, - 1152, 1152, - 1151, 1151, - 1150, 1150, - 1149, 1149, - 1148, 1148, - 1147, 1147, - 1146, 1146, - 1145, 1145, - 1144, 1144, - 1143, 1143, - 1142, 1142, - 1141, 1141, - 1140, 1140, - 1139, 1139, - 1138, 1138, - 1137, 1137, - 1136, 1136, - 1135, 1135, - 1134, 1134, - 1133, 1133, - 1132, 1132, - 1131, 1131, - 1130, 1130, - 1129, 1129, - 1128, 1128, - 1127, 1127, - 1126, 1126, - 1125, 1125, - 1124, 1124, - 1123, 1123, - 1122, 1122, - 1121, 1121, - 1120, 1120, - 1119, 1119, - 1118, 1118, - 1117, 1117, - 1116, 1116, - 1115, 1115, - 1114, 1114, - 1113, 1113, - 1112, 1112, - 1111, 1111, - 1110, 1110, - 1109, 1109, - 1108, 1108, - 1107, 1107, - 1106, 1106, - 1105, 1105, - 1104, 1104, - 1103, 1103, - 1102, 1102, - 1101, 1101, - 1100, 1100, - 1099, 1099, - 1098, 1098, - 1097, 1097, - 1096, 1096, - 1095, 1095, - 1094, 1094, - 1093, 1093, - 1092, 1092, - 1091, 1091, - 1090, 1090, - 1089, 1089, - 1088, 1088, - 1087, 1087, - 1086, 1086, - 1085, 1085, - 1084, 1084, - 1083, 1083, - 1082, 1082, - 1081, 1081, - 1080, 1080, - 1079, 1079, - 1078, 1078, - 1077, 1077, - 1076, 1076, - 1075, 1075, - 1074, 1074, - 1073, 1073, - 1072, 1072, - 1071, 1071, - 1070, 1070, - 1069, 1069, - 1068, 1068, - 1067, 1067, - 1066, 1066, - 1065, 1065, - 1064, 1064, - 1063, 1063, - 1062, 1062, - 1061, 1061, - 1060, 1060, - 1059, 1059, - 1058, 1058, - 1057, 1057, - 1056, 1056, - 1055, 1055, - 1054, 1054, - 1053, 1053, - 1052, 1052, - 1051, 1051, - 1050, 1050, - 1049, 1049, - 1048, 1048, - 1047, 1047, - 1046, 1046, - 1045, 1045, - 1044, 1044, - 1043, 1043, - 1042, 1042, - 1041, 1041, - 1040, 1040, - 1039, 1039, - 1038, 1038, - 1037, 1037, - 1036, 1036, - 1035, 1035, - 1034, 1034, - 1033, 1033, - 1032, 1032, - 1031, 1031, - 1030, 1030, - 1029, 1029, - 1028, 1028, - 1027, 1027, - 1026, 1026, - 1025, 1025, - 1024, 1024, - 1023, 1023, - 1022, 1022, - 1021, 1021, - 1020, 1020, - 1019, 1019, - 1018, 1018, - 1017, 1017, - 1016, 1016, - 1015, 1015, - 1014, 1014, - 1013, 1013, - 1012, 1012, - 1011, 1011, - 1010, 1010, - 1009, 1009, - 1008, 1008, - 1007, 1007, - 1006, 1006, - 1005, 1005, - 1004, 1004, - 1003, 1003, - 1002, 1002, - 1001, 1001, - 1000, 1000, - 999, 999, - 998, 998, - 997, 997, - 996, 996, - 995, 995, - 994, 994, - 993, 993, - 992, 992, - 991, 991, - 990, 990, - 989, 989, - 988, 988, - 987, 987, - 986, 986, - 985, 985, - 984, 984, - 983, 983, - 982, 982, - 981, 981, - 980, 980, - 979, 979, - 978, 978, - 977, 977, - 976, 976, - 975, 975, - 974, 974, - 973, 973, - 972, 972, - 971, 971, - 970, 970, - 969, 969, - 968, 968, - 967, 967, - 966, 966, - 965, 965, - 964, 964, - 963, 963, - 962, 962, - 961, 961, - 960, 960, - 959, 959, - 958, 958, - 957, 957, - 956, 956, - 955, 955, - 954, 954, - 953, 953, - 952, 952, - 951, 951, - 950, 950, - 949, 949, - 948, 948, - 947, 947, - 946, 946, - 945, 945, - 944, 944, - 943, 943, - 942, 942, - 941, 941, - 940, 940, - 939, 939, - 938, 938, - 937, 937, - 936, 936, - 935, 935, - 934, 934, - 933, 933, - 932, 932, - 931, 931, - 930, 930, - 929, 929, - 928, 928, - 927, 927, - 926, 926, - 925, 925, - 924, 924, - 923, 923, - 922, 922, - 921, 921, - 920, 920, - 919, 919, - 918, 918, - 917, 917, - 916, 916, - 915, 915, - 914, 914, - 913, 913, - 912, 912, - 911, 911, - 910, 910, - 909, 909, - 908, 908, - 907, 907, - 906, 906, - 905, 905, - 904, 904, - 903, 903, - 902, 902, - 901, 901, - 900, 900, - 899, 899, - 898, 898, - 897, 897, - 896, 896, - 895, 895, - 894, 894, - 893, 893, - 892, 892, - 891, 891, - 890, 890, - 889, 889, - 888, 888, - 887, 887, - 886, 886, - 885, 885, - 884, 884, - 883, 883, - 882, 882, - 881, 881, - 880, 880, - 879, 879, - 878, 878, - 877, 877, - 876, 876, - 875, 875, - 874, 874, - 873, 873, - 872, 872, - 871, 871, - 870, 870, - 869, 869, - 868, 868, - 867, 867, - 866, 866, - 865, 865, - 864, 864, - 863, 863, - 862, 862, - 861, 861, - 860, 860, - 859, 859, - 858, 858, - 857, 857, - 856, 856, - 855, 855, - 854, 854, - 853, 853, - 852, 852, - 851, 851, - 850, 850, - 849, 849, - 848, 848, - 847, 847, - 846, 846, - 845, 845, - 844, 844, - 843, 843, - 842, 842, - 841, 841, - 840, 840, - 839, 839, - 838, 838, - 837, 837, - 836, 836, - 835, 835, - 834, 834, - 833, 833, - 832, 832, - 831, 831, - 830, 830, - 829, 829, - 828, 828, - 827, 827, - 826, 826, - 825, 825, - 824, 824, - 823, 823, - 822, 822, - 821, 821, - 820, 820, - 819, 819, - 818, 818, - 817, 817, - 816, 816, - 815, 815, - 814, 814, - 813, 813, - 812, 812, - 811, 811, - 810, 810, - 809, 809, - 808, 808, - 807, 807, - 806, 806, - 805, 805, - 804, 804, - 803, 803, - 802, 802, - 801, 801, - 800, 800, - 799, 799, - 798, 798, - 797, 797, - 796, 796, - 795, 795, - 794, 794, - 793, 793, - 792, 792, - 791, 791, - 790, 790, - 789, 789, - 788, 788, - 787, 787, - 786, 786, - 785, 785, - 784, 784, - 783, 783, - 782, 782, - 781, 781, - 780, 780, - 779, 779, - 778, 778, - 777, 777, - 776, 776, - 775, 775, - 774, 774, - 773, 773, - 772, 772, - 771, 771, - 770, 770, - 769, 769, - 768, 768, - 767, 767, - 766, 766, - 765, 765, - 764, 764, - 763, 763, - 762, 762, - 761, 761, - 760, 760, - 759, 759, - 758, 758, - 757, 757, - 756, 756, - 755, 755, - 754, 754, - 753, 753, - 752, 752, - 751, 751, - 750, 750, - 749, 749, - 748, 748, - 747, 747, - 746, 746, - 745, 745, - 744, 744, - 743, 743, - 742, 742, - 741, 741, - 740, 740, - 739, 739, - 738, 738, - 737, 737, - 736, 736, - 735, 735, - 734, 734, - 733, 733, - 732, 732, - 731, 731, - 730, 730, - 729, 729, - 728, 728, - 727, 727, - 726, 726, - 725, 725, - 724, 724, - 723, 723, - 722, 722, - 721, 721, - 720, 720, - 719, 719, - 718, 718, - 717, 717, - 716, 716, - 715, 715, - 714, 714, - 713, 713, - 712, 712, - 711, 711, - 710, 710, - 709, 709, - 708, 708, - 707, 707, - 706, 706, - 705, 705, - 704, 704, - 703, 703, - 702, 702, - 701, 701, - 700, 700, - 699, 699, - 698, 698, - 697, 697, - 696, 696, - 695, 695, - 694, 694, - 693, 693, - 692, 692, - 691, 691, - 690, 690, - 689, 689, - 688, 688, - 687, 687, - 686, 686, - 685, 685, - 684, 684, - 683, 683, - 682, 682, - 681, 681, - 680, 680, - 679, 679, - 678, 678, - 677, 677, - 676, 676, - 675, 675, - 674, 674, - 673, 673, - 672, 672, - 671, 671, - 670, 670, - 669, 669, - 668, 668, - 667, 667, - 666, 666, - 665, 665, - 664, 664, - 663, 663, - 662, 662, - 661, 661, - 660, 660, - 659, 659, - 658, 658, - 657, 657, - 656, 656, - 655, 655, - 654, 654, - 653, 653, - 652, 652, - 651, 651, - 650, 650, - 649, 649, - 648, 648, - 647, 647, - 646, 646, - 645, 645, - 644, 644, - 643, 643, - 642, 642, - 641, 641, - 640, 640, - 639, 639, - 638, 638, - 637, 637, - 636, 636, - 635, 635, - 634, 634, - 633, 633, - 632, 632, - 631, 631, - 630, 630, - 629, 629, - 628, 628, - 627, 627, - 626, 626, - 625, 625, - 624, 624, - 623, 623, - 622, 622, - 621, 621, - 620, 620, - 619, 619, - 618, 618, - 617, 617, - 616, 616, - 615, 615, - 614, 614, - 613, 613, - 612, 612, - 611, 611, - 610, 610, - 609, 609, - 608, 608, - 607, 607, - 606, 606, - 605, 605, - 604, 604, - 603, 603, - 602, 602, - 601, 601, - 600, 600, - 599, 599, - 598, 598, - 597, 597, - 596, 596, - 595, 595, - 594, 594, - 593, 593, - 592, 592, - 591, 591, - 590, 590, - 589, 589, - 588, 588, - 587, 587, - 586, 586, - 585, 585, - 584, 584, - 583, 583, - 582, 582, - 581, 581, - 580, 580, - 579, 579, - 578, 578, - 577, 577, - 576, 576, - 575, 575, - 574, 574, - 573, 573, - 572, 572, - 571, 571, - 570, 570, - 569, 569, - 568, 568, - 567, 567, - 566, 566, - 565, 565, - 564, 564, - 563, 563, - 562, 562, - 561, 561, - 560, 560, - 559, 559, - 558, 558, - 557, 557, - 556, 556, - 555, 555, - 554, 554, - 553, 553, - 552, 552, - 551, 551, - 550, 550, - 549, 549, - 548, 548, - 547, 547, - 546, 546, - 545, 545, - 544, 544, - 543, 543, - 542, 542, - 541, 541, - 540, 540, - 539, 539, - 538, 538, - 537, 537, - 536, 536, - 535, 535, - 534, 534, - 533, 533, - 532, 532, - 531, 531, - 530, 530, - 529, 529, - 528, 528, - 527, 527, - 526, 526, - 525, 525, - 524, 524, - 523, 523, - 522, 522, - 521, 521, - 520, 520, - 519, 519, - 518, 518, - 517, 517, - 516, 516, - 515, 515, - 514, 514, - 513, 513, - 512, 512, - 511, 511, - 510, 510, - 509, 509, - 508, 508, - 507, 507, - 506, 506, - 505, 505, - 504, 504, - 503, 503, - 502, 502, - 501, 501, - 500, 500, - 499, 499, - 498, 498, - 497, 497, - 496, 496, - 495, 495, - 494, 494, - 493, 493, - 492, 492, - 491, 491, - 490, 490, - 489, 489, - 488, 488, - 487, 487, - 486, 486, - 485, 485, - 484, 484, - 483, 483, - 482, 482, - 481, 481, - 480, 480, - 479, 479, - 478, 478, - 477, 477, - 476, 476, - 475, 475, - 474, 474, - 473, 473, - 472, 472, - 471, 471, - 470, 470, - 469, 469, - 468, 468, - 467, 467, - 466, 466, - 465, 465, - 464, 464, - 463, 463, - 462, 462, - 461, 461, - 460, 460, - 459, 459, - 458, 458, - 457, 457, - 456, 456, - 455, 455, - 454, 454, - 453, 453, - 452, 452, - 451, 451, - 450, 450, - 449, 449, - 448, 448, - 447, 447, - 446, 446, - 445, 445, - 444, 444, - 443, 443, - 442, 442, - 441, 441, - 440, 440, - 439, 439, - 438, 438, - 437, 437, - 436, 436, - 435, 435, - 434, 434, - 433, 433, - 432, 432, - 431, 431, - 430, 430, - 429, 429, - 428, 428, - 427, 427, - 426, 426, - 425, 425, - 424, 424, - 423, 423, - 422, 422, - 421, 421, - 420, 420, - 419, 419, - 418, 418, - 417, 417, - 416, 416, - 415, 415, - 414, 414, - 413, 413, - 412, 412, - 411, 411, - 410, 410, - 409, 409, - 408, 408, - 407, 407, - 406, 406, - 405, 405, - 404, 404, - 403, 403, - 402, 402, - 401, 401, - 400, 400, - 399, 399, - 398, 398, - 397, 397, - 396, 396, - 395, 395, - 394, 394, - 393, 393, - 392, 392, - 391, 391, - 390, 390, - 389, 389, - 388, 388, - 387, 387, - 386, 386, - 385, 385, - 384, 384, - 383, 383, - 382, 382, - 381, 381, - 380, 380, - 379, 379, - 378, 378, - 377, 377, - 376, 376, - 375, 375, - 374, 374, - 373, 373, - 372, 372, - 371, 371, - 370, 370, - 369, 369, - 368, 368, - 367, 367, - 366, 366, - 365, 365, - 364, 364, - 363, 363, - 362, 362, - 361, 361, - 360, 360, - 359, 359, - 358, 358, - 357, 357, - 356, 356, - 355, 355, - 354, 354, - 353, 353, - 352, 352, - 351, 351, - 350, 350, - 349, 349, - 348, 348, - 347, 347, - 346, 346, - 345, 345, - 344, 344, - 343, 343, - 342, 342, - 341, 341, - 340, 340, - 339, 339, - 338, 338, - 337, 337, - 336, 336, - 335, 335, - 334, 334, - 333, 333, - 332, 332, - 331, 331, - 330, 330, - 329, 329, - 328, 328, - 327, 327, - 326, 326, - 325, 325, - 324, 324, - 323, 323, - 322, 322, - 321, 321, - 320, 320, - 319, 319, - 318, 318, - 317, 317, - 316, 316, - 315, 315, - 314, 314, - 313, 313, - 312, 312, - 311, 311, - 310, 310, - 309, 309, - 308, 308, - 307, 307, - 306, 306, - 305, 305, - 304, 304, - 303, 303, - 302, 302, - 301, 301, - 300, 300, - 299, 299, - 298, 298, - 297, 297, - 296, 296, - 295, 295, - 294, 294, - 293, 293, - 292, 292, - 291, 291, - 290, 290, - 289, 289, - 288, 288, - 287, 287, - 286, 286, - 285, 285, - 284, 284, - 283, 283, - 282, 282, - 281, 281, - 280, 280, - 279, 279, - 278, 278, - 277, 277, - 276, 276, - 275, 275, - 274, 274, - 273, 273, - 272, 272, - 271, 271, - 270, 270, - 269, 269, - 268, 268, - 267, 267, - 266, 266, - 265, 265, - 264, 264, - 263, 263, - 262, 262, - 261, 261, - 260, 260, - 259, 259, - 258, 258, - 257, 257, - 256, 256, - 255, 255, - 254, 254, - 253, 253, - 252, 252, - 251, 251, - 250, 250, - 249, 249, - 248, 248, - 247, 247, - 246, 246, - 245, 245, - 244, 244, - 243, 243, - 242, 242, - 241, 241, - 240, 240, - 239, 239, - 238, 238, - 237, 237, - 236, 236, - 235, 235, - 234, 234, - 233, 233, - 232, 232, - 231, 231, - 230, 230, - 229, 229, - 228, 228, - 227, 227, - 226, 226, - 225, 225, - 224, 224, - 223, 223, - 222, 222, - 221, 221, - 220, 220, - 219, 219, - 218, 218, - 217, 217, - 216, 216, - 215, 215, - 214, 214, - 213, 213, - 212, 212, - 211, 211, - 210, 210, - 209, 209, - 208, 208, - 207, 207, - 206, 206, - 205, 205, - 204, 204, - 203, 203, - 202, 202, - 201, 201, - 200, 200, - 199, 199, - 198, 198, - 197, 197, - 196, 196, - 195, 195, - 194, 194, - 193, 193, - 192, 192, - 191, 191, - 190, 190, - 189, 189, - 188, 188, - 187, 187, - 186, 186, - 185, 185, - 184, 184, - 183, 183, - 182, 182, - 181, 181, - 180, 180, - 179, 179, - 178, 178, - 177, 177, - 176, 176, - 175, 175, - 174, 174, - 173, 173, - 172, 172, - 171, 171, - 170, 170, - 169, 169, - 168, 168, - 167, 167, - 166, 166, - 165, 165, - 164, 164, - 163, 163, - 162, 162, - 161, 161, - 160, 160, - 159, 159, - 158, 158, - 157, 157, - 156, 156, - 155, 155, - 154, 154, - 153, 153, - 152, 152, - 151, 151, - 150, 150, - 149, 149, - 148, 148, - 147, 147, - 146, 146, - 145, 145, - 144, 144, - 143, 143, - 142, 142, - 141, 141, - 140, 140, - 139, 139, - 138, 138, - 137, 137, - 136, 136, - 135, 135, - 134, 134, - 133, 133, - 132, 132, - 131, 131, - 130, 130, - 129, 129, - 128, 128, - 127, 127, - 126, 126, - 125, 125, - 124, 124, - 123, 123, - 122, 122, - 121, 121, - 120, 120, - 119, 119, - 118, 118, - 117, 117, - 116, 116, - 115, 115, - 114, 114, - 113, 113, - 112, 112, - 111, 111, - 110, 110, - 109, 109, - 108, 108, - 107, 107, - 106, 106, - 105, 105, - 104, 104, - 103, 103, - 102, 102, - 101, 101, - 100, 100, - 99, 99, - 98, 98, - 97, 97, - 96, 96, - 95, 95, - 94, 94, - 93, 93, - 92, 92, - 91, 91, - 90, 90, - 89, 89, - 88, 88, - 87, 87, - 86, 86, - 85, 85, - 84, 84, - 83, 83, - 82, 82, - 81, 81, - 80, 80, - 79, 79, - 78, 78, - 77, 77, - 76, 76, - 75, 75, - 74, 74, - 73, 73, - 72, 72, - 71, 71, - 70, 70, - 69, 69, - 68, 68, - 67, 67, - 66, 66, - 65, 65, - 64, 64, - 63, 63, - 62, 62, - 61, 61, - 60, 60, - 59, 59, - 58, 58, - 57, 57, - 56, 56, - 55, 55, - 54, 54, - 53, 53, - 52, 52, - 51, 51, - 50, 50, - 49, 49, - 48, 48, - 47, 47, - 46, 46, - 45, 45, - 44, 44, - 43, 43, - 42, 42, - 41, 41, - 40, 40, - 39, 39, - 38, 38, - 37, 37, - 36, 36, - 35, 35, - 34, 34, - 33, 33, - 32, 32, - 31, 31, - 30, 30, - 29, 29, - 28, 28, - 27, 27, - 26, 26, - 25, 25, - 24, 24, - 23, 23, - 22, 22, - 21, 21, - 20, 20, - 19, 19, - 18, 18, - 17, 17, - 16, 16, - 15, 15, - 14, 14, - 13, 13, - 12, 12, - 11, 11, - 10, 10, - 9, 9, - 8, 8, - 7, 7, - 6, 6, - 5, 5, - 4, 4, - 3, 3, - 2, 2, - 1, 1, 0]": thm Nitpick found a counterexample: Free variables: x12 = 7 x13 = 4 x14 = 3 x15 = 8 x16 = 5 x17 = 9 x18 = 6 x21 = 2 x23 = 3 x25 = 6 x26 = 7 x27 = 1 x29 = 8 x31 = 5 x32 = 8 x34 = 1 x35 = 9 x36 = 2 x38 = 3 x39 = 4 x41 = 4 x43 = 1 x45 = 2 x47 = 8 x48 = 7 x49 = 6 x51 = 9 x52 = 2 x53 = 8 x54 = 6 x56 = 4 x57 = 3 x58 = 1 x59 = 5 x61 = 3 x62 = 6 x63 = 7 x66 = 1 x67 = 2 x69 = 9 x72 = 1 x73 = 9 x74 = 5 x75 = 4 x76 = 8 x78 = 2 x79 = 3 x81 = 6 x83 = 5 x84 = 2 x85 = 1 x87 = 4 x89 = 7 x91 = 8 x92 = 4 x94 = 7 x95 = 3 x96 = 6 x97 = 5 x98 = 9 Nitpicking formula... Nitpicking formula... val it = "quicksort int_abs_reversed example_2 \ [- 3000, 3000, - 2999, 2999, - 2998, 2998, - 2997, 2997, - 2996, 2996, - 2995, 2995, - 2994, 2994, - 2993, 2993, - 2992, 2992, - 2991, 2991, - 2990, 2990, - 2989, 2989, - 2988, 2988, - 2987, 2987, - 2986, 2986, - 2985, 2985, - 2984, 2984, - 2983, 2983, - 2982, 2982, - 2981, 2981, - 2980, 2980, - 2979, 2979, - 2978, 2978, - 2977, 2977, - 2976, 2976, - 2975, 2975, - 2974, 2974, - 2973, 2973, - 2972, 2972, - 2971, 2971, - 2970, 2970, - 2969, 2969, - 2968, 2968, - 2967, 2967, - 2966, 2966, - 2965, 2965, - 2964, 2964, - 2963, 2963, - 2962, 2962, - 2961, 2961, - 2960, 2960, - 2959, 2959, - 2958, 2958, - 2957, 2957, - 2956, 2956, - 2955, 2955, - 2954, 2954, - 2953, 2953, - 2952, 2952, - 2951, 2951, - 2950, 2950, - 2949, 2949, - 2948, 2948, - 2947, 2947, - 2946, 2946, - 2945, 2945, - 2944, 2944, - 2943, 2943, - 2942, 2942, - 2941, 2941, - 2940, 2940, - 2939, 2939, - 2938, 2938, - 2937, 2937, - 2936, 2936, - 2935, 2935, - 2934, 2934, - 2933, 2933, - 2932, 2932, - 2931, 2931, - 2930, 2930, - 2929, 2929, - 2928, 2928, - 2927, 2927, - 2926, 2926, - 2925, 2925, - 2924, 2924, - 2923, 2923, - 2922, 2922, - 2921, 2921, - 2920, 2920, - 2919, 2919, - 2918, 2918, - 2917, 2917, - 2916, 2916, - 2915, 2915, - 2914, 2914, - 2913, 2913, - 2912, 2912, - 2911, 2911, - 2910, 2910, - 2909, 2909, - 2908, 2908, - 2907, 2907, - 2906, 2906, - 2905, 2905, - 2904, 2904, - 2903, 2903, - 2902, 2902, - 2901, 2901, - 2900, 2900, - 2899, 2899, - 2898, 2898, - 2897, 2897, - 2896, 2896, - 2895, 2895, - 2894, 2894, - 2893, 2893, - 2892, 2892, - 2891, 2891, - 2890, 2890, - 2889, 2889, - 2888, 2888, - 2887, 2887, - 2886, 2886, - 2885, 2885, - 2884, 2884, - 2883, 2883, - 2882, 2882, - 2881, 2881, - 2880, 2880, - 2879, 2879, - 2878, 2878, - 2877, 2877, - 2876, 2876, - 2875, 2875, - 2874, 2874, - 2873, 2873, - 2872, 2872, - 2871, 2871, - 2870, 2870, - 2869, 2869, - 2868, 2868, - 2867, 2867, - 2866, 2866, - 2865, 2865, - 2864, 2864, - 2863, 2863, - 2862, 2862, - 2861, 2861, - 2860, 2860, - 2859, 2859, - 2858, 2858, - 2857, 2857, - 2856, 2856, - 2855, 2855, - 2854, 2854, - 2853, 2853, - 2852, 2852, - 2851, 2851, - 2850, 2850, - 2849, 2849, - 2848, 2848, - 2847, 2847, - 2846, 2846, - 2845, 2845, - 2844, 2844, - 2843, 2843, - 2842, 2842, - 2841, 2841, - 2840, 2840, - 2839, 2839, - 2838, 2838, - 2837, 2837, - 2836, 2836, - 2835, 2835, - 2834, 2834, - 2833, 2833, - 2832, 2832, - 2831, 2831, - 2830, 2830, - 2829, 2829, - 2828, 2828, - 2827, 2827, - 2826, 2826, - 2825, 2825, - 2824, 2824, - 2823, 2823, - 2822, 2822, - 2821, 2821, - 2820, 2820, - 2819, 2819, - 2818, 2818, - 2817, 2817, - 2816, 2816, - 2815, 2815, - 2814, 2814, - 2813, 2813, - 2812, 2812, - 2811, 2811, - 2810, 2810, - 2809, 2809, - 2808, 2808, - 2807, 2807, - 2806, 2806, - 2805, 2805, - 2804, 2804, - 2803, 2803, - 2802, 2802, - 2801, 2801, - 2800, 2800, - 2799, 2799, - 2798, 2798, - 2797, 2797, - 2796, 2796, - 2795, 2795, - 2794, 2794, - 2793, 2793, - 2792, 2792, - 2791, 2791, - 2790, 2790, - 2789, 2789, - 2788, 2788, - 2787, 2787, - 2786, 2786, - 2785, 2785, - 2784, 2784, - 2783, 2783, - 2782, 2782, - 2781, 2781, - 2780, 2780, - 2779, 2779, - 2778, 2778, - 2777, 2777, - 2776, 2776, - 2775, 2775, - 2774, 2774, - 2773, 2773, - 2772, 2772, - 2771, 2771, - 2770, 2770, - 2769, 2769, - 2768, 2768, - 2767, 2767, - 2766, 2766, - 2765, 2765, - 2764, 2764, - 2763, 2763, - 2762, 2762, - 2761, 2761, - 2760, 2760, - 2759, 2759, - 2758, 2758, - 2757, 2757, - 2756, 2756, - 2755, 2755, - 2754, 2754, - 2753, 2753, - 2752, 2752, - 2751, 2751, - 2750, 2750, - 2749, 2749, - 2748, 2748, - 2747, 2747, - 2746, 2746, - 2745, 2745, - 2744, 2744, - 2743, 2743, - 2742, 2742, - 2741, 2741, - 2740, 2740, - 2739, 2739, - 2738, 2738, - 2737, 2737, - 2736, 2736, - 2735, 2735, - 2734, 2734, - 2733, 2733, - 2732, 2732, - 2731, 2731, - 2730, 2730, - 2729, 2729, - 2728, 2728, - 2727, 2727, - 2726, 2726, - 2725, 2725, - 2724, 2724, - 2723, 2723, - 2722, 2722, - 2721, 2721, - 2720, 2720, - 2719, 2719, - 2718, 2718, - 2717, 2717, - 2716, 2716, - 2715, 2715, - 2714, 2714, - 2713, 2713, - 2712, 2712, - 2711, 2711, - 2710, 2710, - 2709, 2709, - 2708, 2708, - 2707, 2707, - 2706, 2706, - 2705, 2705, - 2704, 2704, - 2703, 2703, - 2702, 2702, - 2701, 2701, - 2700, 2700, - 2699, 2699, - 2698, 2698, - 2697, 2697, - 2696, 2696, - 2695, 2695, - 2694, 2694, - 2693, 2693, - 2692, 2692, - 2691, 2691, - 2690, 2690, - 2689, 2689, - 2688, 2688, - 2687, 2687, - 2686, 2686, - 2685, 2685, - 2684, 2684, - 2683, 2683, - 2682, 2682, - 2681, 2681, - 2680, 2680, - 2679, 2679, - 2678, 2678, - 2677, 2677, - 2676, 2676, - 2675, 2675, - 2674, 2674, - 2673, 2673, - 2672, 2672, - 2671, 2671, - 2670, 2670, - 2669, 2669, - 2668, 2668, - 2667, 2667, - 2666, 2666, - 2665, 2665, - 2664, 2664, - 2663, 2663, - 2662, 2662, - 2661, 2661, - 2660, 2660, - 2659, 2659, - 2658, 2658, - 2657, 2657, - 2656, 2656, - 2655, 2655, - 2654, 2654, - 2653, 2653, - 2652, 2652, - 2651, 2651, - 2650, 2650, - 2649, 2649, - 2648, 2648, - 2647, 2647, - 2646, 2646, - 2645, 2645, - 2644, 2644, - 2643, 2643, - 2642, 2642, - 2641, 2641, - 2640, 2640, - 2639, 2639, - 2638, 2638, - 2637, 2637, - 2636, 2636, - 2635, 2635, - 2634, 2634, - 2633, 2633, - 2632, 2632, - 2631, 2631, - 2630, 2630, - 2629, 2629, - 2628, 2628, - 2627, 2627, - 2626, 2626, - 2625, 2625, - 2624, 2624, - 2623, 2623, - 2622, 2622, - 2621, 2621, - 2620, 2620, - 2619, 2619, - 2618, 2618, - 2617, 2617, - 2616, 2616, - 2615, 2615, - 2614, 2614, - 2613, 2613, - 2612, 2612, - 2611, 2611, - 2610, 2610, - 2609, 2609, - 2608, 2608, - 2607, 2607, - 2606, 2606, - 2605, 2605, - 2604, 2604, - 2603, 2603, - 2602, 2602, - 2601, 2601, - 2600, 2600, - 2599, 2599, - 2598, 2598, - 2597, 2597, - 2596, 2596, - 2595, 2595, - 2594, 2594, - 2593, 2593, - 2592, 2592, - 2591, 2591, - 2590, 2590, - 2589, 2589, - 2588, 2588, - 2587, 2587, - 2586, 2586, - 2585, 2585, - 2584, 2584, - 2583, 2583, - 2582, 2582, - 2581, 2581, - 2580, 2580, - 2579, 2579, - 2578, 2578, - 2577, 2577, - 2576, 2576, - 2575, 2575, - 2574, 2574, - 2573, 2573, - 2572, 2572, - 2571, 2571, - 2570, 2570, - 2569, 2569, - 2568, 2568, - 2567, 2567, - 2566, 2566, - 2565, 2565, - 2564, 2564, - 2563, 2563, - 2562, 2562, - 2561, 2561, - 2560, 2560, - 2559, 2559, - 2558, 2558, - 2557, 2557, - 2556, 2556, - 2555, 2555, - 2554, 2554, - 2553, 2553, - 2552, 2552, - 2551, 2551, - 2550, 2550, - 2549, 2549, - 2548, 2548, - 2547, 2547, - 2546, 2546, - 2545, 2545, - 2544, 2544, - 2543, 2543, - 2542, 2542, - 2541, 2541, - 2540, 2540, - 2539, 2539, - 2538, 2538, - 2537, 2537, - 2536, 2536, - 2535, 2535, - 2534, 2534, - 2533, 2533, - 2532, 2532, - 2531, 2531, - 2530, 2530, - 2529, 2529, - 2528, 2528, - 2527, 2527, - 2526, 2526, - 2525, 2525, - 2524, 2524, - 2523, 2523, - 2522, 2522, - 2521, 2521, - 2520, 2520, - 2519, 2519, - 2518, 2518, - 2517, 2517, - 2516, 2516, - 2515, 2515, - 2514, 2514, - 2513, 2513, - 2512, 2512, - 2511, 2511, - 2510, 2510, - 2509, 2509, - 2508, 2508, - 2507, 2507, - 2506, 2506, - 2505, 2505, - 2504, 2504, - 2503, 2503, - 2502, 2502, - 2501, 2501, - 2500, 2500, - 2499, 2499, - 2498, 2498, - 2497, 2497, - 2496, 2496, - 2495, 2495, - 2494, 2494, - 2493, 2493, - 2492, 2492, - 2491, 2491, - 2490, 2490, - 2489, 2489, - 2488, 2488, - 2487, 2487, - 2486, 2486, - 2485, 2485, - 2484, 2484, - 2483, 2483, - 2482, 2482, - 2481, 2481, - 2480, 2480, - 2479, 2479, - 2478, 2478, - 2477, 2477, - 2476, 2476, - 2475, 2475, - 2474, 2474, - 2473, 2473, - 2472, 2472, - 2471, 2471, - 2470, 2470, - 2469, 2469, - 2468, 2468, - 2467, 2467, - 2466, 2466, - 2465, 2465, - 2464, 2464, - 2463, 2463, - 2462, 2462, - 2461, 2461, - 2460, 2460, - 2459, 2459, - 2458, 2458, - 2457, 2457, - 2456, 2456, - 2455, 2455, - 2454, 2454, - 2453, 2453, - 2452, 2452, - 2451, 2451, - 2450, 2450, - 2449, 2449, - 2448, 2448, - 2447, 2447, - 2446, 2446, - 2445, 2445, - 2444, 2444, - 2443, 2443, - 2442, 2442, - 2441, 2441, - 2440, 2440, - 2439, 2439, - 2438, 2438, - 2437, 2437, - 2436, 2436, - 2435, 2435, - 2434, 2434, - 2433, 2433, - 2432, 2432, - 2431, 2431, - 2430, 2430, - 2429, 2429, - 2428, 2428, - 2427, 2427, - 2426, 2426, - 2425, 2425, - 2424, 2424, - 2423, 2423, - 2422, 2422, - 2421, 2421, - 2420, 2420, - 2419, 2419, - 2418, 2418, - 2417, 2417, - 2416, 2416, - 2415, 2415, - 2414, 2414, - 2413, 2413, - 2412, 2412, - 2411, 2411, - 2410, 2410, - 2409, 2409, - 2408, 2408, - 2407, 2407, - 2406, 2406, - 2405, 2405, - 2404, 2404, - 2403, 2403, - 2402, 2402, - 2401, 2401, - 2400, 2400, - 2399, 2399, - 2398, 2398, - 2397, 2397, - 2396, 2396, - 2395, 2395, - 2394, 2394, - 2393, 2393, - 2392, 2392, - 2391, 2391, - 2390, 2390, - 2389, 2389, - 2388, 2388, - 2387, 2387, - 2386, 2386, - 2385, 2385, - 2384, 2384, - 2383, 2383, - 2382, 2382, - 2381, 2381, - 2380, 2380, - 2379, 2379, - 2378, 2378, - 2377, 2377, - 2376, 2376, - 2375, 2375, - 2374, 2374, - 2373, 2373, - 2372, 2372, - 2371, 2371, - 2370, 2370, - 2369, 2369, - 2368, 2368, - 2367, 2367, - 2366, 2366, - 2365, 2365, - 2364, 2364, - 2363, 2363, - 2362, 2362, - 2361, 2361, - 2360, 2360, - 2359, 2359, - 2358, 2358, - 2357, 2357, - 2356, 2356, - 2355, 2355, - 2354, 2354, - 2353, 2353, - 2352, 2352, - 2351, 2351, - 2350, 2350, - 2349, 2349, - 2348, 2348, - 2347, 2347, - 2346, 2346, - 2345, 2345, - 2344, 2344, - 2343, 2343, - 2342, 2342, - 2341, 2341, - 2340, 2340, - 2339, 2339, - 2338, 2338, - 2337, 2337, - 2336, 2336, - 2335, 2335, - 2334, 2334, - 2333, 2333, - 2332, 2332, - 2331, 2331, - 2330, 2330, - 2329, 2329, - 2328, 2328, - 2327, 2327, - 2326, 2326, - 2325, 2325, - 2324, 2324, - 2323, 2323, - 2322, 2322, - 2321, 2321, - 2320, 2320, - 2319, 2319, - 2318, 2318, - 2317, 2317, - 2316, 2316, - 2315, 2315, - 2314, 2314, - 2313, 2313, - 2312, 2312, - 2311, 2311, - 2310, 2310, - 2309, 2309, - 2308, 2308, - 2307, 2307, - 2306, 2306, - 2305, 2305, - 2304, 2304, - 2303, 2303, - 2302, 2302, - 2301, 2301, - 2300, 2300, - 2299, 2299, - 2298, 2298, - 2297, 2297, - 2296, 2296, - 2295, 2295, - 2294, 2294, - 2293, 2293, - 2292, 2292, - 2291, 2291, - 2290, 2290, - 2289, 2289, - 2288, 2288, - 2287, 2287, - 2286, 2286, - 2285, 2285, - 2284, 2284, - 2283, 2283, - 2282, 2282, - 2281, 2281, - 2280, 2280, - 2279, 2279, - 2278, 2278, - 2277, 2277, - 2276, 2276, - 2275, 2275, - 2274, 2274, - 2273, 2273, - 2272, 2272, - 2271, 2271, - 2270, 2270, - 2269, 2269, - 2268, 2268, - 2267, 2267, - 2266, 2266, - 2265, 2265, - 2264, 2264, - 2263, 2263, - 2262, 2262, - 2261, 2261, - 2260, 2260, - 2259, 2259, - 2258, 2258, - 2257, 2257, - 2256, 2256, - 2255, 2255, - 2254, 2254, - 2253, 2253, - 2252, 2252, - 2251, 2251, - 2250, 2250, - 2249, 2249, - 2248, 2248, - 2247, 2247, - 2246, 2246, - 2245, 2245, - 2244, 2244, - 2243, 2243, - 2242, 2242, - 2241, 2241, - 2240, 2240, - 2239, 2239, - 2238, 2238, - 2237, 2237, - 2236, 2236, - 2235, 2235, - 2234, 2234, - 2233, 2233, - 2232, 2232, - 2231, 2231, - 2230, 2230, - 2229, 2229, - 2228, 2228, - 2227, 2227, - 2226, 2226, - 2225, 2225, - 2224, 2224, - 2223, 2223, - 2222, 2222, - 2221, 2221, - 2220, 2220, - 2219, 2219, - 2218, 2218, - 2217, 2217, - 2216, 2216, - 2215, 2215, - 2214, 2214, - 2213, 2213, - 2212, 2212, - 2211, 2211, - 2210, 2210, - 2209, 2209, - 2208, 2208, - 2207, 2207, - 2206, 2206, - 2205, 2205, - 2204, 2204, - 2203, 2203, - 2202, 2202, - 2201, 2201, - 2200, 2200, - 2199, 2199, - 2198, 2198, - 2197, 2197, - 2196, 2196, - 2195, 2195, - 2194, 2194, - 2193, 2193, - 2192, 2192, - 2191, 2191, - 2190, 2190, - 2189, 2189, - 2188, 2188, - 2187, 2187, - 2186, 2186, - 2185, 2185, - 2184, 2184, - 2183, 2183, - 2182, 2182, - 2181, 2181, - 2180, 2180, - 2179, 2179, - 2178, 2178, - 2177, 2177, - 2176, 2176, - 2175, 2175, - 2174, 2174, - 2173, 2173, - 2172, 2172, - 2171, 2171, - 2170, 2170, - 2169, 2169, - 2168, 2168, - 2167, 2167, - 2166, 2166, - 2165, 2165, - 2164, 2164, - 2163, 2163, - 2162, 2162, - 2161, 2161, - 2160, 2160, - 2159, 2159, - 2158, 2158, - 2157, 2157, - 2156, 2156, - 2155, 2155, - 2154, 2154, - 2153, 2153, - 2152, 2152, - 2151, 2151, - 2150, 2150, - 2149, 2149, - 2148, 2148, - 2147, 2147, - 2146, 2146, - 2145, 2145, - 2144, 2144, - 2143, 2143, - 2142, 2142, - 2141, 2141, - 2140, 2140, - 2139, 2139, - 2138, 2138, - 2137, 2137, - 2136, 2136, - 2135, 2135, - 2134, 2134, - 2133, 2133, - 2132, 2132, - 2131, 2131, - 2130, 2130, - 2129, 2129, - 2128, 2128, - 2127, 2127, - 2126, 2126, - 2125, 2125, - 2124, 2124, - 2123, 2123, - 2122, 2122, - 2121, 2121, - 2120, 2120, - 2119, 2119, - 2118, 2118, - 2117, 2117, - 2116, 2116, - 2115, 2115, - 2114, 2114, - 2113, 2113, - 2112, 2112, - 2111, 2111, - 2110, 2110, - 2109, 2109, - 2108, 2108, - 2107, 2107, - 2106, 2106, - 2105, 2105, - 2104, 2104, - 2103, 2103, - 2102, 2102, - 2101, 2101, - 2100, 2100, - 2099, 2099, - 2098, 2098, - 2097, 2097, - 2096, 2096, - 2095, 2095, - 2094, 2094, - 2093, 2093, - 2092, 2092, - 2091, 2091, - 2090, 2090, - 2089, 2089, - 2088, 2088, - 2087, 2087, - 2086, 2086, - 2085, 2085, - 2084, 2084, - 2083, 2083, - 2082, 2082, - 2081, 2081, - 2080, 2080, - 2079, 2079, - 2078, 2078, - 2077, 2077, - 2076, 2076, - 2075, 2075, - 2074, 2074, - 2073, 2073, - 2072, 2072, - 2071, 2071, - 2070, 2070, - 2069, 2069, - 2068, 2068, - 2067, 2067, - 2066, 2066, - 2065, 2065, - 2064, 2064, - 2063, 2063, - 2062, 2062, - 2061, 2061, - 2060, 2060, - 2059, 2059, - 2058, 2058, - 2057, 2057, - 2056, 2056, - 2055, 2055, - 2054, 2054, - 2053, 2053, - 2052, 2052, - 2051, 2051, - 2050, 2050, - 2049, 2049, - 2048, 2048, - 2047, 2047, - 2046, 2046, - 2045, 2045, - 2044, 2044, - 2043, 2043, - 2042, 2042, - 2041, 2041, - 2040, 2040, - 2039, 2039, - 2038, 2038, - 2037, 2037, - 2036, 2036, - 2035, 2035, - 2034, 2034, - 2033, 2033, - 2032, 2032, - 2031, 2031, - 2030, 2030, - 2029, 2029, - 2028, 2028, - 2027, 2027, - 2026, 2026, - 2025, 2025, - 2024, 2024, - 2023, 2023, - 2022, 2022, - 2021, 2021, - 2020, 2020, - 2019, 2019, - 2018, 2018, - 2017, 2017, - 2016, 2016, - 2015, 2015, - 2014, 2014, - 2013, 2013, - 2012, 2012, - 2011, 2011, - 2010, 2010, - 2009, 2009, - 2008, 2008, - 2007, 2007, - 2006, 2006, - 2005, 2005, - 2004, 2004, - 2003, 2003, - 2002, 2002, - 2001, 2001, - 2000, 2000, - 1999, 1999, - 1998, 1998, - 1997, 1997, - 1996, 1996, - 1995, 1995, - 1994, 1994, - 1993, 1993, - 1992, 1992, - 1991, 1991, - 1990, 1990, - 1989, 1989, - 1988, 1988, - 1987, 1987, - 1986, 1986, - 1985, 1985, - 1984, 1984, - 1983, 1983, - 1982, 1982, - 1981, 1981, - 1980, 1980, - 1979, 1979, - 1978, 1978, - 1977, 1977, - 1976, 1976, - 1975, 1975, - 1974, 1974, - 1973, 1973, - 1972, 1972, - 1971, 1971, - 1970, 1970, - 1969, 1969, - 1968, 1968, - 1967, 1967, - 1966, 1966, - 1965, 1965, - 1964, 1964, - 1963, 1963, - 1962, 1962, - 1961, 1961, - 1960, 1960, - 1959, 1959, - 1958, 1958, - 1957, 1957, - 1956, 1956, - 1955, 1955, - 1954, 1954, - 1953, 1953, - 1952, 1952, - 1951, 1951, - 1950, 1950, - 1949, 1949, - 1948, 1948, - 1947, 1947, - 1946, 1946, - 1945, 1945, - 1944, 1944, - 1943, 1943, - 1942, 1942, - 1941, 1941, - 1940, 1940, - 1939, 1939, - 1938, 1938, - 1937, 1937, - 1936, 1936, - 1935, 1935, - 1934, 1934, - 1933, 1933, - 1932, 1932, - 1931, 1931, - 1930, 1930, - 1929, 1929, - 1928, 1928, - 1927, 1927, - 1926, 1926, - 1925, 1925, - 1924, 1924, - 1923, 1923, - 1922, 1922, - 1921, 1921, - 1920, 1920, - 1919, 1919, - 1918, 1918, - 1917, 1917, - 1916, 1916, - 1915, 1915, - 1914, 1914, - 1913, 1913, - 1912, 1912, - 1911, 1911, - 1910, 1910, - 1909, 1909, - 1908, 1908, - 1907, 1907, - 1906, 1906, - 1905, 1905, - 1904, 1904, - 1903, 1903, - 1902, 1902, - 1901, 1901, - 1900, 1900, - 1899, 1899, - 1898, 1898, - 1897, 1897, - 1896, 1896, - 1895, 1895, - 1894, 1894, - 1893, 1893, - 1892, 1892, - 1891, 1891, - 1890, 1890, - 1889, 1889, - 1888, 1888, - 1887, 1887, - 1886, 1886, - 1885, 1885, - 1884, 1884, - 1883, 1883, - 1882, 1882, - 1881, 1881, - 1880, 1880, - 1879, 1879, - 1878, 1878, - 1877, 1877, - 1876, 1876, - 1875, 1875, - 1874, 1874, - 1873, 1873, - 1872, 1872, - 1871, 1871, - 1870, 1870, - 1869, 1869, - 1868, 1868, - 1867, 1867, - 1866, 1866, - 1865, 1865, - 1864, 1864, - 1863, 1863, - 1862, 1862, - 1861, 1861, - 1860, 1860, - 1859, 1859, - 1858, 1858, - 1857, 1857, - 1856, 1856, - 1855, 1855, - 1854, 1854, - 1853, 1853, - 1852, 1852, - 1851, 1851, - 1850, 1850, - 1849, 1849, - 1848, 1848, - 1847, 1847, - 1846, 1846, - 1845, 1845, - 1844, 1844, - 1843, 1843, - 1842, 1842, - 1841, 1841, - 1840, 1840, - 1839, 1839, - 1838, 1838, - 1837, 1837, - 1836, 1836, - 1835, 1835, - 1834, 1834, - 1833, 1833, - 1832, 1832, - 1831, 1831, - 1830, 1830, - 1829, 1829, - 1828, 1828, - 1827, 1827, - 1826, 1826, - 1825, 1825, - 1824, 1824, - 1823, 1823, - 1822, 1822, - 1821, 1821, - 1820, 1820, - 1819, 1819, - 1818, 1818, - 1817, 1817, - 1816, 1816, - 1815, 1815, - 1814, 1814, - 1813, 1813, - 1812, 1812, - 1811, 1811, - 1810, 1810, - 1809, 1809, - 1808, 1808, - 1807, 1807, - 1806, 1806, - 1805, 1805, - 1804, 1804, - 1803, 1803, - 1802, 1802, - 1801, 1801, - 1800, 1800, - 1799, 1799, - 1798, 1798, - 1797, 1797, - 1796, 1796, - 1795, 1795, - 1794, 1794, - 1793, 1793, - 1792, 1792, - 1791, 1791, - 1790, 1790, - 1789, 1789, - 1788, 1788, - 1787, 1787, - 1786, 1786, - 1785, 1785, - 1784, 1784, - 1783, 1783, - 1782, 1782, - 1781, 1781, - 1780, 1780, - 1779, 1779, - 1778, 1778, - 1777, 1777, - 1776, 1776, - 1775, 1775, - 1774, 1774, - 1773, 1773, - 1772, 1772, - 1771, 1771, - 1770, 1770, - 1769, 1769, - 1768, 1768, - 1767, 1767, - 1766, 1766, - 1765, 1765, - 1764, 1764, - 1763, 1763, - 1762, 1762, - 1761, 1761, - 1760, 1760, - 1759, 1759, - 1758, 1758, - 1757, 1757, - 1756, 1756, - 1755, 1755, - 1754, 1754, - 1753, 1753, - 1752, 1752, - 1751, 1751, - 1750, 1750, - 1749, 1749, - 1748, 1748, - 1747, 1747, - 1746, 1746, - 1745, 1745, - 1744, 1744, - 1743, 1743, - 1742, 1742, - 1741, 1741, - 1740, 1740, - 1739, 1739, - 1738, 1738, - 1737, 1737, - 1736, 1736, - 1735, 1735, - 1734, 1734, - 1733, 1733, - 1732, 1732, - 1731, 1731, - 1730, 1730, - 1729, 1729, - 1728, 1728, - 1727, 1727, - 1726, 1726, - 1725, 1725, - 1724, 1724, - 1723, 1723, - 1722, 1722, - 1721, 1721, - 1720, 1720, - 1719, 1719, - 1718, 1718, - 1717, 1717, - 1716, 1716, - 1715, 1715, - 1714, 1714, - 1713, 1713, - 1712, 1712, - 1711, 1711, - 1710, 1710, - 1709, 1709, - 1708, 1708, - 1707, 1707, - 1706, 1706, - 1705, 1705, - 1704, 1704, - 1703, 1703, - 1702, 1702, - 1701, 1701, - 1700, 1700, - 1699, 1699, - 1698, 1698, - 1697, 1697, - 1696, 1696, - 1695, 1695, - 1694, 1694, - 1693, 1693, - 1692, 1692, - 1691, 1691, - 1690, 1690, - 1689, 1689, - 1688, 1688, - 1687, 1687, - 1686, 1686, - 1685, 1685, - 1684, 1684, - 1683, 1683, - 1682, 1682, - 1681, 1681, - 1680, 1680, - 1679, 1679, - 1678, 1678, - 1677, 1677, - 1676, 1676, - 1675, 1675, - 1674, 1674, - 1673, 1673, - 1672, 1672, - 1671, 1671, - 1670, 1670, - 1669, 1669, - 1668, 1668, - 1667, 1667, - 1666, 1666, - 1665, 1665, - 1664, 1664, - 1663, 1663, - 1662, 1662, - 1661, 1661, - 1660, 1660, - 1659, 1659, - 1658, 1658, - 1657, 1657, - 1656, 1656, - 1655, 1655, - 1654, 1654, - 1653, 1653, - 1652, 1652, - 1651, 1651, - 1650, 1650, - 1649, 1649, - 1648, 1648, - 1647, 1647, - 1646, 1646, - 1645, 1645, - 1644, 1644, - 1643, 1643, - 1642, 1642, - 1641, 1641, - 1640, 1640, - 1639, 1639, - 1638, 1638, - 1637, 1637, - 1636, 1636, - 1635, 1635, - 1634, 1634, - 1633, 1633, - 1632, 1632, - 1631, 1631, - 1630, 1630, - 1629, 1629, - 1628, 1628, - 1627, 1627, - 1626, 1626, - 1625, 1625, - 1624, 1624, - 1623, 1623, - 1622, 1622, - 1621, 1621, - 1620, 1620, - 1619, 1619, - 1618, 1618, - 1617, 1617, - 1616, 1616, - 1615, 1615, - 1614, 1614, - 1613, 1613, - 1612, 1612, - 1611, 1611, - 1610, 1610, - 1609, 1609, - 1608, 1608, - 1607, 1607, - 1606, 1606, - 1605, 1605, - 1604, 1604, - 1603, 1603, - 1602, 1602, - 1601, 1601, - 1600, 1600, - 1599, 1599, - 1598, 1598, - 1597, 1597, - 1596, 1596, - 1595, 1595, - 1594, 1594, - 1593, 1593, - 1592, 1592, - 1591, 1591, - 1590, 1590, - 1589, 1589, - 1588, 1588, - 1587, 1587, - 1586, 1586, - 1585, 1585, - 1584, 1584, - 1583, 1583, - 1582, 1582, - 1581, 1581, - 1580, 1580, - 1579, 1579, - 1578, 1578, - 1577, 1577, - 1576, 1576, - 1575, 1575, - 1574, 1574, - 1573, 1573, - 1572, 1572, - 1571, 1571, - 1570, 1570, - 1569, 1569, - 1568, 1568, - 1567, 1567, - 1566, 1566, - 1565, 1565, - 1564, 1564, - 1563, 1563, - 1562, 1562, - 1561, 1561, - 1560, 1560, - 1559, 1559, - 1558, 1558, - 1557, 1557, - 1556, 1556, - 1555, 1555, - 1554, 1554, - 1553, 1553, - 1552, 1552, - 1551, 1551, - 1550, 1550, - 1549, 1549, - 1548, 1548, - 1547, 1547, - 1546, 1546, - 1545, 1545, - 1544, 1544, - 1543, 1543, - 1542, 1542, - 1541, 1541, - 1540, 1540, - 1539, 1539, - 1538, 1538, - 1537, 1537, - 1536, 1536, - 1535, 1535, - 1534, 1534, - 1533, 1533, - 1532, 1532, - 1531, 1531, - 1530, 1530, - 1529, 1529, - 1528, 1528, - 1527, 1527, - 1526, 1526, - 1525, 1525, - 1524, 1524, - 1523, 1523, - 1522, 1522, - 1521, 1521, - 1520, 1520, - 1519, 1519, - 1518, 1518, - 1517, 1517, - 1516, 1516, - 1515, 1515, - 1514, 1514, - 1513, 1513, - 1512, 1512, - 1511, 1511, - 1510, 1510, - 1509, 1509, - 1508, 1508, - 1507, 1507, - 1506, 1506, - 1505, 1505, - 1504, 1504, - 1503, 1503, - 1502, 1502, - 1501, 1501, - 1500, 1500, - 1499, 1499, - 1498, 1498, - 1497, 1497, - 1496, 1496, - 1495, 1495, - 1494, 1494, - 1493, 1493, - 1492, 1492, - 1491, 1491, - 1490, 1490, - 1489, 1489, - 1488, 1488, - 1487, 1487, - 1486, 1486, - 1485, 1485, - 1484, 1484, - 1483, 1483, - 1482, 1482, - 1481, 1481, - 1480, 1480, - 1479, 1479, - 1478, 1478, - 1477, 1477, - 1476, 1476, - 1475, 1475, - 1474, 1474, - 1473, 1473, - 1472, 1472, - 1471, 1471, - 1470, 1470, - 1469, 1469, - 1468, 1468, - 1467, 1467, - 1466, 1466, - 1465, 1465, - 1464, 1464, - 1463, 1463, - 1462, 1462, - 1461, 1461, - 1460, 1460, - 1459, 1459, - 1458, 1458, - 1457, 1457, - 1456, 1456, - 1455, 1455, - 1454, 1454, - 1453, 1453, - 1452, 1452, - 1451, 1451, - 1450, 1450, - 1449, 1449, - 1448, 1448, - 1447, 1447, - 1446, 1446, - 1445, 1445, - 1444, 1444, - 1443, 1443, - 1442, 1442, - 1441, 1441, - 1440, 1440, - 1439, 1439, - 1438, 1438, - 1437, 1437, - 1436, 1436, - 1435, 1435, - 1434, 1434, - 1433, 1433, - 1432, 1432, - 1431, 1431, - 1430, 1430, - 1429, 1429, - 1428, 1428, - 1427, 1427, - 1426, 1426, - 1425, 1425, - 1424, 1424, - 1423, 1423, - 1422, 1422, - 1421, 1421, - 1420, 1420, - 1419, 1419, - 1418, 1418, - 1417, 1417, - 1416, 1416, - 1415, 1415, - 1414, 1414, - 1413, 1413, - 1412, 1412, - 1411, 1411, - 1410, 1410, - 1409, 1409, - 1408, 1408, - 1407, 1407, - 1406, 1406, - 1405, 1405, - 1404, 1404, - 1403, 1403, - 1402, 1402, - 1401, 1401, - 1400, 1400, - 1399, 1399, - 1398, 1398, - 1397, 1397, - 1396, 1396, - 1395, 1395, - 1394, 1394, - 1393, 1393, - 1392, 1392, - 1391, 1391, - 1390, 1390, - 1389, 1389, - 1388, 1388, - 1387, 1387, - 1386, 1386, - 1385, 1385, - 1384, 1384, - 1383, 1383, - 1382, 1382, - 1381, 1381, - 1380, 1380, - 1379, 1379, - 1378, 1378, - 1377, 1377, - 1376, 1376, - 1375, 1375, - 1374, 1374, - 1373, 1373, - 1372, 1372, - 1371, 1371, - 1370, 1370, - 1369, 1369, - 1368, 1368, - 1367, 1367, - 1366, 1366, - 1365, 1365, - 1364, 1364, - 1363, 1363, - 1362, 1362, - 1361, 1361, - 1360, 1360, - 1359, 1359, - 1358, 1358, - 1357, 1357, - 1356, 1356, - 1355, 1355, - 1354, 1354, - 1353, 1353, - 1352, 1352, - 1351, 1351, - 1350, 1350, - 1349, 1349, - 1348, 1348, - 1347, 1347, - 1346, 1346, - 1345, 1345, - 1344, 1344, - 1343, 1343, - 1342, 1342, - 1341, 1341, - 1340, 1340, - 1339, 1339, - 1338, 1338, - 1337, 1337, - 1336, 1336, - 1335, 1335, - 1334, 1334, - 1333, 1333, - 1332, 1332, - 1331, 1331, - 1330, 1330, - 1329, 1329, - 1328, 1328, - 1327, 1327, - 1326, 1326, - 1325, 1325, - 1324, 1324, - 1323, 1323, - 1322, 1322, - 1321, 1321, - 1320, 1320, - 1319, 1319, - 1318, 1318, - 1317, 1317, - 1316, 1316, - 1315, 1315, - 1314, 1314, - 1313, 1313, - 1312, 1312, - 1311, 1311, - 1310, 1310, - 1309, 1309, - 1308, 1308, - 1307, 1307, - 1306, 1306, - 1305, 1305, - 1304, 1304, - 1303, 1303, - 1302, 1302, - 1301, 1301, - 1300, 1300, - 1299, 1299, - 1298, 1298, - 1297, 1297, - 1296, 1296, - 1295, 1295, - 1294, 1294, - 1293, 1293, - 1292, 1292, - 1291, 1291, - 1290, 1290, - 1289, 1289, - 1288, 1288, - 1287, 1287, - 1286, 1286, - 1285, 1285, - 1284, 1284, - 1283, 1283, - 1282, 1282, - 1281, 1281, - 1280, 1280, - 1279, 1279, - 1278, 1278, - 1277, 1277, - 1276, 1276, - 1275, 1275, - 1274, 1274, - 1273, 1273, - 1272, 1272, - 1271, 1271, - 1270, 1270, - 1269, 1269, - 1268, 1268, - 1267, 1267, - 1266, 1266, - 1265, 1265, - 1264, 1264, - 1263, 1263, - 1262, 1262, - 1261, 1261, - 1260, 1260, - 1259, 1259, - 1258, 1258, - 1257, 1257, - 1256, 1256, - 1255, 1255, - 1254, 1254, - 1253, 1253, - 1252, 1252, - 1251, 1251, - 1250, 1250, - 1249, 1249, - 1248, 1248, - 1247, 1247, - 1246, 1246, - 1245, 1245, - 1244, 1244, - 1243, 1243, - 1242, 1242, - 1241, 1241, - 1240, 1240, - 1239, 1239, - 1238, 1238, - 1237, 1237, - 1236, 1236, - 1235, 1235, - 1234, 1234, - 1233, 1233, - 1232, 1232, - 1231, 1231, - 1230, 1230, - 1229, 1229, - 1228, 1228, - 1227, 1227, - 1226, 1226, - 1225, 1225, - 1224, 1224, - 1223, 1223, - 1222, 1222, - 1221, 1221, - 1220, 1220, - 1219, 1219, - 1218, 1218, - 1217, 1217, - 1216, 1216, - 1215, 1215, - 1214, 1214, - 1213, 1213, - 1212, 1212, - 1211, 1211, - 1210, 1210, - 1209, 1209, - 1208, 1208, - 1207, 1207, - 1206, 1206, - 1205, 1205, - 1204, 1204, - 1203, 1203, - 1202, 1202, - 1201, 1201, - 1200, 1200, - 1199, 1199, - 1198, 1198, - 1197, 1197, - 1196, 1196, - 1195, 1195, - 1194, 1194, - 1193, 1193, - 1192, 1192, - 1191, 1191, - 1190, 1190, - 1189, 1189, - 1188, 1188, - 1187, 1187, - 1186, 1186, - 1185, 1185, - 1184, 1184, - 1183, 1183, - 1182, 1182, - 1181, 1181, - 1180, 1180, - 1179, 1179, - 1178, 1178, - 1177, 1177, - 1176, 1176, - 1175, 1175, - 1174, 1174, - 1173, 1173, - 1172, 1172, - 1171, 1171, - 1170, 1170, - 1169, 1169, - 1168, 1168, - 1167, 1167, - 1166, 1166, - 1165, 1165, - 1164, 1164, - 1163, 1163, - 1162, 1162, - 1161, 1161, - 1160, 1160, - 1159, 1159, - 1158, 1158, - 1157, 1157, - 1156, 1156, - 1155, 1155, - 1154, 1154, - 1153, 1153, - 1152, 1152, - 1151, 1151, - 1150, 1150, - 1149, 1149, - 1148, 1148, - 1147, 1147, - 1146, 1146, - 1145, 1145, - 1144, 1144, - 1143, 1143, - 1142, 1142, - 1141, 1141, - 1140, 1140, - 1139, 1139, - 1138, 1138, - 1137, 1137, - 1136, 1136, - 1135, 1135, - 1134, 1134, - 1133, 1133, - 1132, 1132, - 1131, 1131, - 1130, 1130, - 1129, 1129, - 1128, 1128, - 1127, 1127, - 1126, 1126, - 1125, 1125, - 1124, 1124, - 1123, 1123, - 1122, 1122, - 1121, 1121, - 1120, 1120, - 1119, 1119, - 1118, 1118, - 1117, 1117, - 1116, 1116, - 1115, 1115, - 1114, 1114, - 1113, 1113, - 1112, 1112, - 1111, 1111, - 1110, 1110, - 1109, 1109, - 1108, 1108, - 1107, 1107, - 1106, 1106, - 1105, 1105, - 1104, 1104, - 1103, 1103, - 1102, 1102, - 1101, 1101, - 1100, 1100, - 1099, 1099, - 1098, 1098, - 1097, 1097, - 1096, 1096, - 1095, 1095, - 1094, 1094, - 1093, 1093, - 1092, 1092, - 1091, 1091, - 1090, 1090, - 1089, 1089, - 1088, 1088, - 1087, 1087, - 1086, 1086, - 1085, 1085, - 1084, 1084, - 1083, 1083, - 1082, 1082, - 1081, 1081, - 1080, 1080, - 1079, 1079, - 1078, 1078, - 1077, 1077, - 1076, 1076, - 1075, 1075, - 1074, 1074, - 1073, 1073, - 1072, 1072, - 1071, 1071, - 1070, 1070, - 1069, 1069, - 1068, 1068, - 1067, 1067, - 1066, 1066, - 1065, 1065, - 1064, 1064, - 1063, 1063, - 1062, 1062, - 1061, 1061, - 1060, 1060, - 1059, 1059, - 1058, 1058, - 1057, 1057, - 1056, 1056, - 1055, 1055, - 1054, 1054, - 1053, 1053, - 1052, 1052, - 1051, 1051, - 1050, 1050, - 1049, 1049, - 1048, 1048, - 1047, 1047, - 1046, 1046, - 1045, 1045, - 1044, 1044, - 1043, 1043, - 1042, 1042, - 1041, 1041, - 1040, 1040, - 1039, 1039, - 1038, 1038, - 1037, 1037, - 1036, 1036, - 1035, 1035, - 1034, 1034, - 1033, 1033, - 1032, 1032, - 1031, 1031, - 1030, 1030, - 1029, 1029, - 1028, 1028, - 1027, 1027, - 1026, 1026, - 1025, 1025, - 1024, 1024, - 1023, 1023, - 1022, 1022, - 1021, 1021, - 1020, 1020, - 1019, 1019, - 1018, 1018, - 1017, 1017, - 1016, 1016, - 1015, 1015, - 1014, 1014, - 1013, 1013, - 1012, 1012, - 1011, 1011, - 1010, 1010, - 1009, 1009, - 1008, 1008, - 1007, 1007, - 1006, 1006, - 1005, 1005, - 1004, 1004, - 1003, 1003, - 1002, 1002, - 1001, 1001, - 1000, 1000, - 999, 999, - 998, 998, - 997, 997, - 996, 996, - 995, 995, - 994, 994, - 993, 993, - 992, 992, - 991, 991, - 990, 990, - 989, 989, - 988, 988, - 987, 987, - 986, 986, - 985, 985, - 984, 984, - 983, 983, - 982, 982, - 981, 981, - 980, 980, - 979, 979, - 978, 978, - 977, 977, - 976, 976, - 975, 975, - 974, 974, - 973, 973, - 972, 972, - 971, 971, - 970, 970, - 969, 969, - 968, 968, - 967, 967, - 966, 966, - 965, 965, - 964, 964, - 963, 963, - 962, 962, - 961, 961, - 960, 960, - 959, 959, - 958, 958, - 957, 957, - 956, 956, - 955, 955, - 954, 954, - 953, 953, - 952, 952, - 951, 951, - 950, 950, - 949, 949, - 948, 948, - 947, 947, - 946, 946, - 945, 945, - 944, 944, - 943, 943, - 942, 942, - 941, 941, - 940, 940, - 939, 939, - 938, 938, - 937, 937, - 936, 936, - 935, 935, - 934, 934, - 933, 933, - 932, 932, - 931, 931, - 930, 930, - 929, 929, - 928, 928, - 927, 927, - 926, 926, - 925, 925, - 924, 924, - 923, 923, - 922, 922, - 921, 921, - 920, 920, - 919, 919, - 918, 918, - 917, 917, - 916, 916, - 915, 915, - 914, 914, - 913, 913, - 912, 912, - 911, 911, - 910, 910, - 909, 909, - 908, 908, - 907, 907, - 906, 906, - 905, 905, - 904, 904, - 903, 903, - 902, 902, - 901, 901, - 900, 900, - 899, 899, - 898, 898, - 897, 897, - 896, 896, - 895, 895, - 894, 894, - 893, 893, - 892, 892, - 891, 891, - 890, 890, - 889, 889, - 888, 888, - 887, 887, - 886, 886, - 885, 885, - 884, 884, - 883, 883, - 882, 882, - 881, 881, - 880, 880, - 879, 879, - 878, 878, - 877, 877, - 876, 876, - 875, 875, - 874, 874, - 873, 873, - 872, 872, - 871, 871, - 870, 870, - 869, 869, - 868, 868, - 867, 867, - 866, 866, - 865, 865, - 864, 864, - 863, 863, - 862, 862, - 861, 861, - 860, 860, - 859, 859, - 858, 858, - 857, 857, - 856, 856, - 855, 855, - 854, 854, - 853, 853, - 852, 852, - 851, 851, - 850, 850, - 849, 849, - 848, 848, - 847, 847, - 846, 846, - 845, 845, - 844, 844, - 843, 843, - 842, 842, - 841, 841, - 840, 840, - 839, 839, - 838, 838, - 837, 837, - 836, 836, - 835, 835, - 834, 834, - 833, 833, - 832, 832, - 831, 831, - 830, 830, - 829, 829, - 828, 828, - 827, 827, - 826, 826, - 825, 825, - 824, 824, - 823, 823, - 822, 822, - 821, 821, - 820, 820, - 819, 819, - 818, 818, - 817, 817, - 816, 816, - 815, 815, - 814, 814, - 813, 813, - 812, 812, - 811, 811, - 810, 810, - 809, 809, - 808, 808, - 807, 807, - 806, 806, - 805, 805, - 804, 804, - 803, 803, - 802, 802, - 801, 801, - 800, 800, - 799, 799, - 798, 798, - 797, 797, - 796, 796, - 795, 795, - 794, 794, - 793, 793, - 792, 792, - 791, 791, - 790, 790, - 789, 789, - 788, 788, - 787, 787, - 786, 786, - 785, 785, - 784, 784, - 783, 783, - 782, 782, - 781, 781, - 780, 780, - 779, 779, - 778, 778, - 777, 777, - 776, 776, - 775, 775, - 774, 774, - 773, 773, - 772, 772, - 771, 771, - 770, 770, - 769, 769, - 768, 768, - 767, 767, - 766, 766, - 765, 765, - 764, 764, - 763, 763, - 762, 762, - 761, 761, - 760, 760, - 759, 759, - 758, 758, - 757, 757, - 756, 756, - 755, 755, - 754, 754, - 753, 753, - 752, 752, - 751, 751, - 750, 750, - 749, 749, - 748, 748, - 747, 747, - 746, 746, - 745, 745, - 744, 744, - 743, 743, - 742, 742, - 741, 741, - 740, 740, - 739, 739, - 738, 738, - 737, 737, - 736, 736, - 735, 735, - 734, 734, - 733, 733, - 732, 732, - 731, 731, - 730, 730, - 729, 729, - 728, 728, - 727, 727, - 726, 726, - 725, 725, - 724, 724, - 723, 723, - 722, 722, - 721, 721, - 720, 720, - 719, 719, - 718, 718, - 717, 717, - 716, 716, - 715, 715, - 714, 714, - 713, 713, - 712, 712, - 711, 711, - 710, 710, - 709, 709, - 708, 708, - 707, 707, - 706, 706, - 705, 705, - 704, 704, - 703, 703, - 702, 702, - 701, 701, - 700, 700, - 699, 699, - 698, 698, - 697, 697, - 696, 696, - 695, 695, - 694, 694, - 693, 693, - 692, 692, - 691, 691, - 690, 690, - 689, 689, - 688, 688, - 687, 687, - 686, 686, - 685, 685, - 684, 684, - 683, 683, - 682, 682, - 681, 681, - 680, 680, - 679, 679, - 678, 678, - 677, 677, - 676, 676, - 675, 675, - 674, 674, - 673, 673, - 672, 672, - 671, 671, - 670, 670, - 669, 669, - 668, 668, - 667, 667, - 666, 666, - 665, 665, - 664, 664, - 663, 663, - 662, 662, - 661, 661, - 660, 660, - 659, 659, - 658, 658, - 657, 657, - 656, 656, - 655, 655, - 654, 654, - 653, 653, - 652, 652, - 651, 651, - 650, 650, - 649, 649, - 648, 648, - 647, 647, - 646, 646, - 645, 645, - 644, 644, - 643, 643, - 642, 642, - 641, 641, - 640, 640, - 639, 639, - 638, 638, - 637, 637, - 636, 636, - 635, 635, - 634, 634, - 633, 633, - 632, 632, - 631, 631, - 630, 630, - 629, 629, - 628, 628, - 627, 627, - 626, 626, - 625, 625, - 624, 624, - 623, 623, - 622, 622, - 621, 621, - 620, 620, - 619, 619, - 618, 618, - 617, 617, - 616, 616, - 615, 615, - 614, 614, - 613, 613, - 612, 612, - 611, 611, - 610, 610, - 609, 609, - 608, 608, - 607, 607, - 606, 606, - 605, 605, - 604, 604, - 603, 603, - 602, 602, - 601, 601, - 600, 600, - 599, 599, - 598, 598, - 597, 597, - 596, 596, - 595, 595, - 594, 594, - 593, 593, - 592, 592, - 591, 591, - 590, 590, - 589, 589, - 588, 588, - 587, 587, - 586, 586, - 585, 585, - 584, 584, - 583, 583, - 582, 582, - 581, 581, - 580, 580, - 579, 579, - 578, 578, - 577, 577, - 576, 576, - 575, 575, - 574, 574, - 573, 573, - 572, 572, - 571, 571, - 570, 570, - 569, 569, - 568, 568, - 567, 567, - 566, 566, - 565, 565, - 564, 564, - 563, 563, - 562, 562, - 561, 561, - 560, 560, - 559, 559, - 558, 558, - 557, 557, - 556, 556, - 555, 555, - 554, 554, - 553, 553, - 552, 552, - 551, 551, - 550, 550, - 549, 549, - 548, 548, - 547, 547, - 546, 546, - 545, 545, - 544, 544, - 543, 543, - 542, 542, - 541, 541, - 540, 540, - 539, 539, - 538, 538, - 537, 537, - 536, 536, - 535, 535, - 534, 534, - 533, 533, - 532, 532, - 531, 531, - 530, 530, - 529, 529, - 528, 528, - 527, 527, - 526, 526, - 525, 525, - 524, 524, - 523, 523, - 522, 522, - 521, 521, - 520, 520, - 519, 519, - 518, 518, - 517, 517, - 516, 516, - 515, 515, - 514, 514, - 513, 513, - 512, 512, - 511, 511, - 510, 510, - 509, 509, - 508, 508, - 507, 507, - 506, 506, - 505, 505, - 504, 504, - 503, 503, - 502, 502, - 501, 501, - 500, 500, - 499, 499, - 498, 498, - 497, 497, - 496, 496, - 495, 495, - 494, 494, - 493, 493, - 492, 492, - 491, 491, - 490, 490, - 489, 489, - 488, 488, - 487, 487, - 486, 486, - 485, 485, - 484, 484, - 483, 483, - 482, 482, - 481, 481, - 480, 480, - 479, 479, - 478, 478, - 477, 477, - 476, 476, - 475, 475, - 474, 474, - 473, 473, - 472, 472, - 471, 471, - 470, 470, - 469, 469, - 468, 468, - 467, 467, - 466, 466, - 465, 465, - 464, 464, - 463, 463, - 462, 462, - 461, 461, - 460, 460, - 459, 459, - 458, 458, - 457, 457, - 456, 456, - 455, 455, - 454, 454, - 453, 453, - 452, 452, - 451, 451, - 450, 450, - 449, 449, - 448, 448, - 447, 447, - 446, 446, - 445, 445, - 444, 444, - 443, 443, - 442, 442, - 441, 441, - 440, 440, - 439, 439, - 438, 438, - 437, 437, - 436, 436, - 435, 435, - 434, 434, - 433, 433, - 432, 432, - 431, 431, - 430, 430, - 429, 429, - 428, 428, - 427, 427, - 426, 426, - 425, 425, - 424, 424, - 423, 423, - 422, 422, - 421, 421, - 420, 420, - 419, 419, - 418, 418, - 417, 417, - 416, 416, - 415, 415, - 414, 414, - 413, 413, - 412, 412, - 411, 411, - 410, 410, - 409, 409, - 408, 408, - 407, 407, - 406, 406, - 405, 405, - 404, 404, - 403, 403, - 402, 402, - 401, 401, - 400, 400, - 399, 399, - 398, 398, - 397, 397, - 396, 396, - 395, 395, - 394, 394, - 393, 393, - 392, 392, - 391, 391, - 390, 390, - 389, 389, - 388, 388, - 387, 387, - 386, 386, - 385, 385, - 384, 384, - 383, 383, - 382, 382, - 381, 381, - 380, 380, - 379, 379, - 378, 378, - 377, 377, - 376, 376, - 375, 375, - 374, 374, - 373, 373, - 372, 372, - 371, 371, - 370, 370, - 369, 369, - 368, 368, - 367, 367, - 366, 366, - 365, 365, - 364, 364, - 363, 363, - 362, 362, - 361, 361, - 360, 360, - 359, 359, - 358, 358, - 357, 357, - 356, 356, - 355, 355, - 354, 354, - 353, 353, - 352, 352, - 351, 351, - 350, 350, - 349, 349, - 348, 348, - 347, 347, - 346, 346, - 345, 345, - 344, 344, - 343, 343, - 342, 342, - 341, 341, - 340, 340, - 339, 339, - 338, 338, - 337, 337, - 336, 336, - 335, 335, - 334, 334, - 333, 333, - 332, 332, - 331, 331, - 330, 330, - 329, 329, - 328, 328, - 327, 327, - 326, 326, - 325, 325, - 324, 324, - 323, 323, - 322, 322, - 321, 321, - 320, 320, - 319, 319, - 318, 318, - 317, 317, - 316, 316, - 315, 315, - 314, 314, - 313, 313, - 312, 312, - 311, 311, - 310, 310, - 309, 309, - 308, 308, - 307, 307, - 306, 306, - 305, 305, - 304, 304, - 303, 303, - 302, 302, - 301, 301, - 300, 300, - 299, 299, - 298, 298, - 297, 297, - 296, 296, - 295, 295, - 294, 294, - 293, 293, - 292, 292, - 291, 291, - 290, 290, - 289, 289, - 288, 288, - 287, 287, - 286, 286, - 285, 285, - 284, 284, - 283, 283, - 282, 282, - 281, 281, - 280, 280, - 279, 279, - 278, 278, - 277, 277, - 276, 276, - 275, 275, - 274, 274, - 273, 273, - 272, 272, - 271, 271, - 270, 270, - 269, 269, - 268, 268, - 267, 267, - 266, 266, - 265, 265, - 264, 264, - 263, 263, - 262, 262, - 261, 261, - 260, 260, - 259, 259, - 258, 258, - 257, 257, - 256, 256, - 255, 255, - 254, 254, - 253, 253, - 252, 252, - 251, 251, - 250, 250, - 249, 249, - 248, 248, - 247, 247, - 246, 246, - 245, 245, - 244, 244, - 243, 243, - 242, 242, - 241, 241, - 240, 240, - 239, 239, - 238, 238, - 237, 237, - 236, 236, - 235, 235, - 234, 234, - 233, 233, - 232, 232, - 231, 231, - 230, 230, - 229, 229, - 228, 228, - 227, 227, - 226, 226, - 225, 225, - 224, 224, - 223, 223, - 222, 222, - 221, 221, - 220, 220, - 219, 219, - 218, 218, - 217, 217, - 216, 216, - 215, 215, - 214, 214, - 213, 213, - 212, 212, - 211, 211, - 210, 210, - 209, 209, - 208, 208, - 207, 207, - 206, 206, - 205, 205, - 204, 204, - 203, 203, - 202, 202, - 201, 201, - 200, 200, - 199, 199, - 198, 198, - 197, 197, - 196, 196, - 195, 195, - 194, 194, - 193, 193, - 192, 192, - 191, 191, - 190, 190, - 189, 189, - 188, 188, - 187, 187, - 186, 186, - 185, 185, - 184, 184, - 183, 183, - 182, 182, - 181, 181, - 180, 180, - 179, 179, - 178, 178, - 177, 177, - 176, 176, - 175, 175, - 174, 174, - 173, 173, - 172, 172, - 171, 171, - 170, 170, - 169, 169, - 168, 168, - 167, 167, - 166, 166, - 165, 165, - 164, 164, - 163, 163, - 162, 162, - 161, 161, - 160, 160, - 159, 159, - 158, 158, - 157, 157, - 156, 156, - 155, 155, - 154, 154, - 153, 153, - 152, 152, - 151, 151, - 150, 150, - 149, 149, - 148, 148, - 147, 147, - 146, 146, - 145, 145, - 144, 144, - 143, 143, - 142, 142, - 141, 141, - 140, 140, - 139, 139, - 138, 138, - 137, 137, - 136, 136, - 135, 135, - 134, 134, - 133, 133, - 132, 132, - 131, 131, - 130, 130, - 129, 129, - 128, 128, - 127, 127, - 126, 126, - 125, 125, - 124, 124, - 123, 123, - 122, 122, - 121, 121, - 120, 120, - 119, 119, - 118, 118, - 117, 117, - 116, 116, - 115, 115, - 114, 114, - 113, 113, - 112, 112, - 111, 111, - 110, 110, - 109, 109, - 108, 108, - 107, 107, - 106, 106, - 105, 105, - 104, 104, - 103, 103, - 102, 102, - 101, 101, - 100, 100, - 99, 99, - 98, 98, - 97, 97, - 96, 96, - 95, 95, - 94, 94, - 93, 93, - 92, 92, - 91, 91, - 90, 90, - 89, 89, - 88, 88, - 87, 87, - 86, 86, - 85, 85, - 84, 84, - 83, 83, - 82, 82, - 81, 81, - 80, 80, - 79, 79, - 78, 78, - 77, 77, - 76, 76, - 75, 75, - 74, 74, - 73, 73, - 72, 72, - 71, 71, - 70, 70, - 69, 69, - 68, 68, - 67, 67, - 66, 66, - 65, 65, - 64, 64, - 63, 63, - 62, 62, - 61, 61, - 60, 60, - 59, 59, - 58, 58, - 57, 57, - 56, 56, - 55, 55, - 54, 54, - 53, 53, - 52, 52, - 51, 51, - 50, 50, - 49, 49, - 48, 48, - 47, 47, - 46, 46, - 45, 45, - 44, 44, - 43, 43, - 42, 42, - 41, 41, - 40, 40, - 39, 39, - 38, 38, - 37, 37, - 36, 36, - 35, 35, - 34, 34, - 33, 33, - 32, 32, - 31, 31, - 30, 30, - 29, 29, - 28, 28, - 27, 27, - 26, 26, - 25, 25, - 24, 24, - 23, 23, - 22, 22, - 21, 21, - 20, 20, - 19, 19, - 18, 18, - 17, 17, - 16, 16, - 15, 15, - 14, 14, - 13, 13, - 12, 12, - 11, 11, - 10, 10, - 9, 9, - 8, 8, - 7, 7, - 6, 6, - 5, 5, - 4, 4, - 3, 3, - 2, 2, - 1, 1, 0]": thm Nitpicking formula... Nitpick found a counterexample: Free variables: x11 = 7 x12 = 6 x14 = 3 x15 = 5 x17 = 2 x18 = 8 x19 = 9 x21 = 2 x22 = 9 x23 = 8 x24 = 1 x26 = 7 x28 = 4 x31 = 4 x32 = 5 x33 = 3 x35 = 2 x36 = 8 x37 = 1 x38 = 6 x39 = 7 x42 = 1 x43 = 2 x44 = 6 x45 = 4 x46 = 9 x48 = 5 x51 = 9 x52 = 7 x53 = 6 x54 = 5 x55 = 1 x56 = 3 x57 = 4 x62 = 3 x63 = 4 x64 = 8 x66 = 2 x68 = 9 x69 = 1 x72 = 2 x73 = 7 x74 = 4 x76 = 5 x77 = 9 x78 = 1 x81 = 1 x82 = 8 x85 = 3 x86 = 6 x87 = 5 x88 = 7 x89 = 4 x91 = 6 x93 = 5 x94 = 7 x95 = 9 x97 = 8 x98 = 3 x99 = 2 ### Ignoring duplicate rewrite rule: ### ?a1 dvd ?b1 \ ?a1 dvd ?b1 * ?c1 \ True ### Ignoring duplicate rewrite rule: ### \?a1 dvd ?b1; ?a1 dvd ?c1\ ### \ ?a1 dvd ?b1 + ?c1 \ True Nitpick found a counterexample: Free variables: x11 = 7 x12 = 5 x13 = 1 x14 = 8 x15 = 4 x16 = 6 x17 = 2 x21 = 8 x22 = 9 x23 = 2 x24 = 3 x25 = 7 x27 = 4 x28 = 6 x31 = 6 x32 = 4 x34 = 2 x36 = 9 x38 = 7 x39 = 1 x41 = 2 x42 = 3 x44 = 1 x46 = 7 x47 = 5 x48 = 4 x51 = 9 x53 = 4 x54 = 5 x55 = 6 x57 = 3 x58 = 1 x59 = 8 x62 = 6 x63 = 5 x65 = 3 x66 = 8 x67 = 9 x68 = 2 x69 = 7 x71 = 3 x72 = 1 x74 = 6 x76 = 4 x77 = 7 x79 = 2 x81 = 5 x83 = 7 x84 = 9 x85 = 1 x86 = 3 x88 = 8 x89 = 4 x92 = 8 x93 = 6 x95 = 2 x96 = 5 x97 = 1 x98 = 9 x99 = 3 Nitpick found a counterexample: Free variables: x11 = 9 x13 = 5 x15 = 1 x18 = 8 x19 = 6 x21 = 6 x22 = 8 x23 = 4 x24 = 5 x25 = 7 x26 = 9 x27 = 1 x31 = 3 x32 = 1 x33 = 7 x34 = 6 x35 = 8 x36 = 2 x37 = 5 x38 = 9 x41 = 1 x43 = 3 x45 = 9 x46 = 6 x47 = 8 x49 = 5 x52 = 6 x53 = 9 x54 = 3 x56 = 7 x57 = 2 x58 = 4 x59 = 1 x61 = 7 x62 = 5 x63 = 2 x64 = 8 x65 = 4 x67 = 3 x68 = 6 x69 = 9 x72 = 7 x73 = 6 x74 = 1 x75 = 3 x76 = 4 x78 = 2 x79 = 8 x81 = 2 x83 = 8 x85 = 6 x86 = 5 x87 = 4 x88 = 1 x91 = 4 x92 = 9 x94 = 7 x95 = 2 x98 = 5 x99 = 3 Nitpick found a counterexample: Free variables: x11 = 7 x12 = 5 x13 = 1 x14 = 8 x15 = 4 x16 = 6 x17 = 2 x21 = 8 x22 = 9 x23 = 2 x24 = 3 x25 = 7 x27 = 4 x28 = 6 x31 = 6 x32 = 4 x34 = 2 x36 = 9 x38 = 7 x39 = 1 x41 = 2 x42 = 3 x44 = 1 x46 = 7 x47 = 5 x48 = 4 x51 = 9 x53 = 4 x54 = 5 x55 = 6 x57 = 3 x58 = 1 x59 = 8 x62 = 6 x63 = 5 x65 = 3 x66 = 8 x67 = 9 x68 = 2 x69 = 7 x71 = 3 x72 = 1 x74 = 6 x76 = 4 x77 = 7 x79 = 2 x81 = 5 x83 = 7 x84 = 9 x85 = 1 x86 = 3 x88 = 8 x89 = 4 x92 = 8 x93 = 6 x95 = 2 x96 = 5 x97 = 1 x98 = 9 x99 = 3 \?P А; ?P Б; ?P В; ?P Г; ?P Д; ?P Ђ; ?P Е; ?P Ж; ?P З; ?P И; ?P Ј; ?P К; ?P Л; ?P Љ; ?P М; ?P Н; ?P Њ; ?P О; ?P П; ?P Р; ?P С; ?P Т; ?P Ћ; ?P У; ?P Ф; ?P Х; ?P Ц; ?P Ч; ?P Џ; ?P Ш; ?P azbSpc\ \ ?P ?azbuka Suc 1 = 2 2 = Suc (Suc 0) 1 = Suc 0 "Branch3 (Branch2 Empty (1, a) Empty) (2, b) (Branch2 Empty (3, c) Empty) (4, d) (Branch2 Empty (5, e) Empty)" :: "'a tree23" \?P A; ?P B; ?P C; ?P Č; ?P Ć; ?P D; ?P E; ?P F; ?P G; ?P H; ?P I; ?P J; ?P K; ?P L; ?P M; ?P N; ?P O; ?P P; ?P R; ?P S; ?P Š; ?P T; ?P U; ?P V; ?P Z; ?P Ž; ?P abcSpc\ \ ?P ?abeceda "[D, O, B, A, R, abcSpc, D, A, N, abcSpc, S, V, I, M, A]" :: "abeceda list" "[L, J, U, B, I, Č, I, C, A, abcSpc, N, A, abcSpc, P, O, L, J, U]" :: "abeceda list" "[Љ, У, Б, И, Ч, И, Ц, А, azbSpc, Н, А, azbSpc, П, О, Љ, У]" :: "azbuka list" "[Д, О, Б, А, Р, azbSpc, Д, А, Н, azbSpc, С, В, И, М, А]" :: "azbuka list" Argo: using these propositions: \ x0 \ x30 \ x29 \ x59 x1 \ x31 \ x0 x2 \ x32 \ x1 x3 \ x33 \ x2 x4 \ x34 \ x3 x35 \ x4 x5 \ x36 \ x30 x6 \ x37 \ x5 \ x31 x7 \ x38 \ x6 \ x32 x8 \ x39 \ x7 \ x33 x9 \ x40 \ x8 \ x34 x41 \ x9 \ x35 x10 \ x42 \ x36 x11 \ x43 \ x10 \ x37 x12 \ x44 \ x11 \ x38 x13 \ x45 \ x12 \ x39 x14 \ x46 \ x13 \ x40 x47 \ x14 \ x41 x15 \ x48 \ x42 x16 \ x49 \ x15 \ x43 x17 \ x50 \ x16 \ x44 x18 \ x51 \ x17 \ x45 x19 \ x52 \ x18 \ x46 x53 \ x19 \ x47 x20 \ x54 \ x48 x21 \ x55 \ x20 \ x49 x22 \ x56 \ x21 \ x50 x23 \ x57 \ x22 \ x51 x24 \ x58 \ x23 \ x52 x59 \ x24 \ x53 x25 \ x54 x26 \ x25 \ x55 x27 \ x26 \ x56 x28 \ x27 \ x57 x29 \ x28 \ x58 \ x1 \ \ x31 \ x1 \ \ x0 \ x31 \ \ x0 \ x2 \ \ x32 \ x2 \ \ x1 \ x32 \ \ x1 \ x3 \ \ x33 \ x3 \ \ x2 \ x33 \ \ x2 \ x4 \ \ x34 \ x4 \ \ x3 \ x34 \ \ x3 \ x35 \ \ x4 \ x5 \ \ x36 \ x5 \ \ x30 \ x36 \ \ x30 \ x6 \ \ x37 \ x6 \ \ x5 \ x6 \ \ x31 \ x37 \ \ x5 \ x37 \ \ x31 \ x5 \ \ x31 \ x7 \ \ x38 \ x7 \ \ x6 \ x7 \ \ x32 \ x38 \ \ x6 \ x38 \ \ x32 \ x6 \ \ x32 \ x8 \ \ x39 \ x8 \ \ x7 \ x8 \ \ x33 \ x39 \ \ x7 \ x39 \ \ x33 \ x7 \ \ x33 \ x9 \ \ x40 \ x9 \ \ x8 \ x9 \ \ x34 \ x40 \ \ x8 \ x40 \ \ x34 \ x8 \ \ x34 \ x41 \ \ x9 \ x41 \ \ x35 \ x9 \ \ x35 \ x10 \ \ x42 \ x10 \ \ x36 \ x42 \ \ x36 \ x11 \ \ x43 \ x11 \ \ x10 \ x11 \ \ x37 \ x43 \ \ x10 \ x43 \ \ x37 \ x10 \ \ x37 \ x12 \ \ x44 \ x12 \ \ x11 \ x12 \ \ x38 \ x44 \ \ x11 \ x44 \ \ x38 \ x11 \ \ x38 \ x13 \ \ x45 \ x13 \ \ x12 \ x13 \ \ x39 \ x45 \ \ x12 \ x45 \ \ x39 \ x12 \ \ x39 \ x14 \ \ x46 \ x14 \ \ x13 \ x14 \ \ x40 \ x46 \ \ x13 \ x46 \ \ x40 \ x13 \ \ x40 \ x47 \ \ x14 \ x47 \ \ x41 \ x14 \ \ x41 \ x15 \ \ x48 \ x15 \ \ x42 \ x48 \ \ x42 \ x16 \ \ x49 \ x16 \ \ x15 \ x16 \ \ x43 \ x49 \ \ x15 \ x49 \ \ x43 \ x15 \ \ x43 \ x17 \ \ x50 \ x17 \ \ x16 \ x17 \ \ x44 \ x50 \ \ x16 \ x50 \ \ x44 \ x16 \ \ x44 \ x18 \ \ x51 \ x18 \ \ x17 \ x18 \ \ x45 \ x51 \ \ x17 \ x51 \ \ x45 \ x17 \ \ x45 \ x19 \ \ x52 \ x19 \ \ x18 \ x19 \ \ x46 \ x52 \ \ x18 \ x52 \ \ x46 \ x18 \ \ x46 \ x53 \ \ x19 \ x53 \ \ x47 \ x19 \ \ x47 \ x20 \ \ x54 \ x20 \ \ x48 \ x54 \ \ x48 \ x21 \ \ x55 \ x21 \ \ x20 \ x21 \ \ x49 \ x55 \ \ x20 \ x55 \ \ x49 \ x20 \ \ x49 \ x22 \ \ x56 \ x22 \ \ x21 \ x22 \ \ x50 \ x56 \ \ x21 \ x56 \ \ x50 \ x21 \ \ x50 \ x23 \ \ x57 \ x23 \ \ x22 \ x23 \ \ x51 \ x57 \ \ x22 \ x57 \ \ x51 \ x22 \ \ x51 \ x24 \ \ x58 \ x24 \ \ x23 \ x24 \ \ x52 \ x58 \ \ x23 \ x58 \ \ x52 \ x23 \ \ x52 \ x59 \ \ x24 \ x59 \ \ x53 \ x24 \ \ x53 \ x25 \ \ x54 \ x26 \ \ x25 \ x26 \ \ x55 \ x25 \ \ x55 \ x27 \ \ x26 \ x27 \ \ x56 \ x26 \ \ x56 \ x28 \ \ x27 \ x28 \ \ x57 \ x27 \ \ x57 \ x29 \ \ x28 \ x29 \ \ x58 \ x28 \ \ x58 \ False Argo: starting the prover Argo: found a proof in 5 ms Argo: replaying the proof Argo: replayed the proof in 15 ms "1" :: "nat" "1" :: "nat" "2" :: "nat" "3" :: "nat" "3" :: "nat" "15" :: "nat" "15" :: "nat" "0" :: "nat" "1" :: "nat" "0" :: "nat" "1" :: "nat" Argo: using these propositions: x0 \ x1 \ x2 \ x3 \ x4 \ x5 \ x6 x7 \ x8 \ x9 \ x10 \ x11 \ x12 \ x13 x14 \ x15 \ x16 \ x17 \ x18 \ x19 \ x20 x21 \ x22 \ x23 \ x24 \ x25 \ x26 \ x27 x28 \ x29 \ x30 \ x31 \ x32 \ x33 \ x34 x35 \ x36 \ x37 \ x38 \ x39 \ x40 \ x41 x42 \ x43 \ x44 \ x45 \ x46 \ x47 \ x48 x49 \ x50 \ x51 \ x52 \ x53 \ x54 \ x55 \ x0 \ \ x7 \ x0 \ \ x14 \ x0 \ \ x21 \ x0 \ \ x28 \ x0 \ \ x35 \ x0 \ \ x42 \ x0 \ \ x49 \ x7 \ \ x14 \ x7 \ \ x21 \ x7 \ \ x28 \ x7 \ \ x35 \ x7 \ \ x42 \ x7 \ \ x49 \ x14 \ \ x21 \ x14 \ \ x28 \ x14 \ \ x35 \ x14 \ \ x42 \ x14 \ \ x49 \ x21 \ \ x28 \ x21 \ \ x35 \ x21 \ \ x42 \ x21 \ \ x49 \ x28 \ \ x35 \ x28 \ \ x42 \ x28 \ \ x49 \ x35 \ \ x42 \ x35 \ \ x49 \ x42 \ \ x49 \ x1 \ \ x8 \ x1 \ \ x15 \ x1 \ \ x22 \ x1 \ \ x29 \ x1 \ \ x36 \ x1 \ \ x43 \ x1 \ \ x50 \ x8 \ \ x15 \ x8 \ \ x22 \ x8 \ \ x29 \ x8 \ \ x36 \ x8 \ \ x43 \ x8 \ \ x50 \ x15 \ \ x22 \ x15 \ \ x29 \ x15 \ \ x36 \ x15 \ \ x43 \ x15 \ \ x50 \ x22 \ \ x29 \ x22 \ \ x36 \ x22 \ \ x43 \ x22 \ \ x50 \ x29 \ \ x36 \ x29 \ \ x43 \ x29 \ \ x50 \ x36 \ \ x43 \ x36 \ \ x50 \ x43 \ \ x50 \ x2 \ \ x9 \ x2 \ \ x16 \ x2 \ \ x23 \ x2 \ \ x30 \ x2 \ \ x37 \ x2 \ \ x44 \ x2 \ \ x51 \ x9 \ \ x16 \ x9 \ \ x23 \ x9 \ \ x30 \ x9 \ \ x37 \ x9 \ \ x44 \ x9 \ \ x51 \ x16 \ \ x23 \ x16 \ \ x30 \ x16 \ \ x37 \ x16 \ \ x44 \ x16 \ \ x51 \ x23 \ \ x30 \ x23 \ \ x37 \ x23 \ \ x44 \ x23 \ \ x51 \ x30 \ \ x37 \ x30 \ \ x44 \ x30 \ \ x51 \ x37 \ \ x44 \ x37 \ \ x51 \ x44 \ \ x51 \ x3 \ \ x10 \ x3 \ \ x17 \ x3 \ \ x24 \ x3 \ \ x31 \ x3 \ \ x38 \ x3 \ \ x45 \ x3 \ \ x52 \ x10 \ \ x17 \ x10 \ \ x24 \ x10 \ \ x31 \ x10 \ \ x38 \ x10 \ \ x45 \ x10 \ \ x52 \ x17 \ \ x24 \ x17 \ \ x31 \ x17 \ \ x38 \ x17 \ \ x45 \ x17 \ \ x52 \ x24 \ \ x31 \ x24 \ \ x38 \ x24 \ \ x45 \ x24 \ \ x52 \ x31 \ \ x38 \ x31 \ \ x45 \ x31 \ \ x52 \ x38 \ \ x45 \ x38 \ \ x52 \ x45 \ \ x52 \ x4 \ \ x11 \ x4 \ \ x18 \ x4 \ \ x25 \ x4 \ \ x32 \ x4 \ \ x39 \ x4 \ \ x46 \ x4 \ \ x53 \ x11 \ \ x18 \ x11 \ \ x25 \ x11 \ \ x32 \ x11 \ \ x39 \ x11 \ \ x46 \ x11 \ \ x53 \ x18 \ \ x25 \ x18 \ \ x32 \ x18 \ \ x39 \ x18 \ \ x46 \ x18 \ \ x53 \ x25 \ \ x32 \ x25 \ \ x39 \ x25 \ \ x46 \ x25 \ \ x53 \ x32 \ \ x39 \ x32 \ \ x46 \ x32 \ \ x53 \ x39 \ \ x46 \ x39 \ \ x53 \ x46 \ \ x53 \ x5 \ \ x12 \ x5 \ \ x19 \ x5 \ \ x26 \ x5 \ \ x33 \ x5 \ \ x40 \ x5 \ \ x47 \ x5 \ \ x54 \ x12 \ \ x19 \ x12 \ \ x26 \ x12 \ \ x33 \ x12 \ \ x40 \ x12 \ \ x47 \ x12 \ \ x54 \ x19 \ \ x26 \ x19 \ \ x33 \ x19 \ \ x40 \ x19 \ \ x47 \ x19 \ \ x54 \ x26 \ \ x33 \ x26 \ \ x40 \ x26 \ \ x47 \ x26 \ \ x54 \ x33 \ \ x40 \ x33 \ \ x47 \ x33 \ \ x54 \ x40 \ \ x47 \ x40 \ \ x54 \ x47 \ \ x54 \ x6 \ \ x13 \ x6 \ \ x20 \ x6 \ \ x27 \ x6 \ \ x34 \ x6 \ \ x41 \ x6 \ \ x48 \ x6 \ \ x55 \ x13 \ \ x20 \ x13 \ \ x27 \ x13 \ \ x34 \ x13 \ \ x41 \ x13 \ \ x48 \ x13 \ \ x55 \ x20 \ \ x27 \ x20 \ \ x34 \ x20 \ \ x41 \ x20 \ \ x48 \ x20 \ \ x55 \ x27 \ \ x34 \ x27 \ \ x41 \ x27 \ \ x48 \ x27 \ \ x55 \ x34 \ \ x41 \ x34 \ \ x48 \ x34 \ \ x55 \ x41 \ \ x48 \ x41 \ \ x55 \ x48 \ \ x55 \ False Argo: starting the prover "0" :: "nat" "5" :: "nat" "0" :: "nat" Argo: using these propositions: 0 \ yc \ 0 \ yd \ 0 \ yb \ 0 \ ya 0 \ yf \ 0 \ xh \ 0 \ ye \ 0 \ yg 0 \ yw \ 0 \ xs \ 0 \ yu 0 \ aea \ 0 \ aee \ 0 \ aed 0 \ zy \ 0 \ xz \ 0 \ zw 0 \ zb \ 0 \ za \ 0 \ yy \ 0 \ yz 0 \ zp \ 0 \ zo \ 0 \ yq 0 \ adp \ 0 \ aeb \ 0 \ aec 0 \ acm \ 0 \ aco \ 0 \ acn 0 \ abl 0 \ zr \ 0 \ zq \ 0 \ abh 0 \ abq \ 0 \ zd \ 0 \ abo 0 \ acd \ 0 \ acc \ 0 \ xi \ 0 \ acb 0 \ acp \ 0 \ acr \ 0 \ acq 0 \ xw \ 0 \ xr \ 0 \ xv \ 0 \ xu 0 \ zc \ 0 \ acg \ 0 \ ach 0 \ zt \ 0 \ zs \ 0 \ xy 0 \ ady \ 0 \ adw \ 0 \ zg 0 \ abd \ 0 \ abc \ 0 \ yr \ 0 \ abb 0 \ adi \ 0 \ x \ 0 \ adh \ 0 \ xa 0 \ aak \ 0 \ aai \ 0 \ aad 0 \ aba \ 0 \ zh \ 0 \ aay 0 \ abg \ 0 \ ys \ 0 \ abe 0 \ abs1 \ 0 \ yt \ 0 \ abr \ 0 \ zu 0 \ abv \ 0 \ zn \ 0 \ abw \ 0 \ zm 0 \ adl \ 0 \ adn 0 \ acf \ 0 \ aca 0 \ ads \ 0 \ aaq 0 \ ada 0 \ aaf \ 0 \ aac \ 0 \ aag 0 \ aal \ 0 \ acu \ 0 \ acs \ 0 \ act 0 \ aas \ 0 \ xb \ 0 \ aat 0 \ zk \ 0 \ zj \ 0 \ zi 0 \ ack \ 0 \ acj \ 0 \ xc \ 0 \ aci 0 \ aav \ 0 \ aah \ 0 \ xd 0 \ abt \ 0 \ xo \ 0 \ abu \ 0 \ xn 0 \ adc \ 0 \ abz \ 0 \ adc \ 0 \ abz 0 \ xt \ 0 \ zz \ 0 \ aab \ 0 \ aaa 0 \ adq \ 0 \ xl \ 0 \ adr \ 0 \ adb 0 \ zf \ 0 \ yh \ 0 \ yi 0 \ aao \ 0 \ aam \ 0 \ xe 0 \ abk \ 0 \ aby \ 0 \ abj \ 0 \ abx 0 \ yp 0 \ yl \ 0 \ yj \ 0 \ ym 0 \ acw 0 \ adk \ 0 \ adg \ 0 \ adj \ 0 \ adf 0 \ adv \ 0 \ xf \ 0 \ adu yc + yd + yb + ya = 1 yf + xh + ye + yg = 1 yw + xs + yu = 1 aea + aee + aed = 1 zy + xz + zw = 1 zb + za + yy + yz = 1 zp + zo + yq = 1 adp + aeb + aec = 1 acm + aco + acn = 1 abl + abl = 1 zr + zq + abh = 1 abq + zd + abo = 1 acd + acc + xi + acb = 1 acp + acr + acq = 1 xw + xr + xv + xu = 1 zc + acg + ach = 1 zt + zs + xy = 1 ady + adw + zg = 1 abd + abc + yr + abb = 1 adi + x + adh + xa = 1 aak + aai + aad = 1 aba + zh + aay = 1 abg + ys + abe = 1 abs1 + yt + abr + zu = 1 abv + zn + abw + zm = 1 adl + adn = 1 acf + aca = 1 ads + aaq = 1 ada + ada = 1 aaf + aac + aag = 1 aal + acu + acs + act = 1 aas + xb + aat = 1 zk + zj + zi = 1 ack + acj + xc + aci = 1 aav + aah + xd = 1 abt + xo + abu + xn = 1 adc + abz + adc + abz = 1 xt + zz + aab + aaa = 1 adq + xl + adr + adb = 1 zf + yh + yi = 1 aao + aam + xe = 1 abk + aby + abj + abx = 1 yp + yp = 1 yl + yj + ym = 1 acw + acw + acw + acw = 1 adk + adg + adj + adf = 1 adv + xf + adu = 1 yd = 0 \ yb = 0 xh = 0 \ ye = 0 yy = 0 \ za = 0 acc = 0 \ xi = 0 xv = 0 \ xr = 0 yr = 0 \ abc = 0 zn = 0 \ abw = 0 xo = 0 \ abu = 0 xl = 0 \ adr = 0 (yr + abd < abl \ yr + (abd + abb) < 1) \ yr + abd = abl \ yr + (abd + abb) = 1 adb + adr < xn + abu \ adb + adr = xn + abu (abl < abt \ abl < abt + xo) \ abl = abt \ abl = abt + xo yd + yc < abc + abd \ yd + yc = abc + abd aca < abb + yr \ aca = abb + yr acb + acc < xu + xv \ acb + acc = xu + xv (yq < xu + xr \ yq + zp < xu + (xr + xw)) \ yq = xu + xr \ yq + zp = xu + (xr + xw) (zw < xw \ zw < xw + xv \ zw + zy < xw + (xv + xu)) \ zw = xw \ zw = xw + xv \ zw + zy = xw + (xv + xu) xs + yw < zs + zt \ xs + yw = zs + zt aab + xt < ye + yf \ aab + xt = ye + yf (ya + yb < yg + ye \ ya + (yb + yc) < yg + (ye + yf)) \ ya + yb = yg + ye \ ya + (yb + yc) = yg + (ye + yf) (xu + xv < acb + acc \ xu + (xv + xw) < acb + (acc + acd)) \ xu + xv = acb + acc \ xu + (xv + xw) = acb + (acc + acd) (zs < xz + zy \ zs + xy < xz + (zy + zw)) \ zs = xz + zy \ zs + xy = xz + (zy + zw) (zs + zt < xz + zy \ zs + (zt + xy) < xz + (zy + zw)) \ zs + zt = xz + zy \ zs + (zt + xy) = xz + (zy + zw) yg + ye < ya + yb \ yg + ye = ya + yb (abd < yc \ abd + abc < yc + yd) \ abd = yc \ abd + abc = yc + yd (ye + yf < adr + adq \ ye + (yf + yg) < adr + (adq + adb)) \ ye + yf = adr + adq \ ye + (yf + yg) = adr + (adq + adb) yh + yi < ym + yj \ yh + yi = ym + yj (abq < yl \ abq + abo < yl + ym) \ abq = yl \ abq + abo = yl + ym (yp < zp \ yp < zp + zo \ 1 < zp + (zo + yq)) \ yp = zp \ yp = zp + zo \ 1 = zp + (zo + yq) (abb + yr < aca \ abb + (yr + abd) < aca + acf) \ abb + yr = aca \ abb + (yr + abd) = aca + acf adw + zg < abe + ys \ adw + zg = abe + ys zd + abq < ys + abg \ zd + abq = ys + abg yt + abs1 < aby + abk \ yt + abs1 = aby + abk (yu < abx \ yu < abx + aby \ yu + yw < abx + (aby + abk)) \ yu = abx \ yu = abx + aby \ yu + yw = abx + (aby + abk) aaf < adv \ aaf = adv abj + abk < yy + zb \ abj + abk = yy + zb (abb < yz \ abb + abc < yz + za \ abb + (abc + abd) < yz + (za + zb)) \ abb = yz \ abb + abc = yz + za \ abb + (abc + abd) = yz + (za + zb) (acg + zc < zd + abq \ acg + (zc + ach) < zd + (abq + abo)) \ acg + zc = zd + abq \ acg + (zc + ach) = zd + (abq + abo) zf < acm \ zf = acm (zg + ady < acn + acm \ zg + (ady + adw) < acn + (acm + aco)) \ zg + ady = acn + acm \ zg + (ady + adw) = acn + (acm + aco) aay + zh < zi + zj \ aay + zh = zi + zj zy < zk \ zy = zk (adn < zm + zn \ adn + adl < zm + (zn + abv)) \ adn = zm + zn \ adn + adl = zm + (zn + abv) zo + zp < zs + zt \ zo + zp = zs + zt zq + zr < zs + zt \ zq + zr = zs + zt (aai < adi \ aai < adi + adh) \ aai = adi \ aai = adi + adh (abr < acj \ abr + (abs1 + zu) < acj + (aci + ack)) \ abr = acj \ abr + (abs1 + zu) = acj + (aci + ack) (abl < zw \ 1 < zw + zy) \ abl = zw \ 1 = zw + zy (zz + aaa < act + acu \ zz + (aaa + aab) < act + (acu + aal)) \ zz + aaa = act + acu \ zz + (aaa + aab) = act + (acu + aal) (aam < aac \ aam + aao < aac + aaf) \ aam = aac \ aam + aao = aac + aaf (aak < aaf \ aak + aad < aaf + aag) \ aak = aaf \ aak + aad = aaf + aag (aah < aai \ aah + aav < aai + aak) \ aah = aai \ aah + aav = aai + aak act + (acu + aal) < aam + aao \ act + (acu + aal) = aam + aao (ads < aat \ 1 < aat + aas) \ ads = aat \ 1 = aat + aas (aba < aas \ aba + aay < aas + aat) \ aba = aas \ aba + aay = aas + aat acm < aav \ acm = aav (ada < aay \ 1 < aay + aba) \ ada = aay \ 1 = aay + aba abb + (abc + abd) < abe + abg \ abb + (abc + abd) = abe + abg (abh < abj \ abh < abj + abk) \ abh = abj \ abh = abj + abk 1 < abo + abq \ 1 = abo + abq (acj < abr \ acj + aci < abr + abs1) \ acj = abr \ acj + aci = abr + abs1 (abt < abv \ abt + abu < abv + abw) \ abt = abv \ abt + abu = abv + abw (abx < adc \ abx + aby < adc + abz) \ abx = adc \ abx + aby = adc + abz (acf < acd \ acf < acd + acc \ 1 < acd + (acc + acb)) \ acf = acd \ acf = acd + acc \ 1 = acd + (acc + acb) acc + acd < acf \ acc + acd = acf (acg < acq \ acg + ach < acq + acr) \ acg = acq \ acg + ach = acq + acr aci + (acj + ack) < acr + acp \ aci + (acj + ack) = acr + acp (acm < acp \ acm + acn < acp + acq \ acm + (acn + aco) < acp + (acq + acr)) \ acm = acp \ acm + acn = acp + acq \ acm + (acn + aco) = acp + (acq + acr) (acs + act < acw + acw \ acs + (act + acu) < acw + (acw + acw)) \ acs + act = acw + acw \ acs + (act + acu) = acw + (acw + acw) (ada < adb + adr \ 1 < adb + (adr + adq)) \ ada = adb + adr \ 1 = adb + (adr + adq) (adc + adc < adf + adg \ adc + (adc + abz) < adf + (adg + adk)) \ adc + adc = adf + adg \ adc + (adc + abz) = adf + (adg + adk) adh + adi < adj + adk \ adh + adi = adj + adk (adl < aec \ 1 < aec + adp) \ adl = aec \ 1 = aec + adp (adq < ads \ adq + adr < ads) \ adq = ads \ adq + adr = ads adu + adv < aed + aea \ adu + adv = aed + aea (adw < aee \ adw + ady < aee + aea) \ adw = aee \ adw + ady = aee + aea (aeb < aed \ aeb + aec < aed + aee) \ aeb = aed \ aeb + aec = aed + aee \ False Argo: starting the prover Argo: found a proof in 406 ms Argo: replaying the proof linarith_split_limit exceeded (current value is 9) Argo: replayed the proof in 2679 ms "16" :: "nat" "16" :: "nat" "100" :: "nat" "True" :: "bool" "4" :: "int" "1 / 2" :: "rat" "[]" :: "nat list" "[(100, ())]" :: "(nat \ unit) list" ### Rule already declared as introduction (intro) ### (\x. ?f x = ?g x) \ ?f = ?g ### Rule already declared as introduction (intro) ### ?P ?x \ \x. ?P x Argo: found a proof in 12712 ms Argo: replaying the proof Argo: replayed the proof in 592 ms "[[f a, f b, f c], [g a, g b, g c], [h a, h b, h c]]" :: "'a list list" "fold (#) cs [b, a] = fold (#) cs [] @ [b, a]" :: "bool" "(f a # f b # f c # map f ds) # (g a # g b # g c # map g ds) # (h a # h b # h c # map h ds) # map (\u. u (a # b # c # ds)) (map map fs)" :: "'b list list" "[[S Z, S (S Z), S (S (S Z))], [S Z, S (S Z), S (S (S Z))], [Z, S (S Z), S (S (S (S Z)))], [Z, S Z, S (S Z)]]" :: "n list list" "case xs of [] \ True | u # ua \ False" :: "bool" "map (\u. case u of None \ False | Some u \ True) xs = P" :: "bool" "case n of Z \ True | S u \ False" :: "bool" "True # filter (\u. u) (x # xs)" :: "bool list" "False # filter Not (x # xs)" :: "bool list" "1 \ set ms" :: "bool" "\u. u" :: "'a \ 'a" "\u ua. u (u (u (u (u (u ua)))))" :: "('a \ 'a) \ 'a \ 'a" "\u ua. u (u (u (u (u (u (u (u (u ua))))))))" :: "('a \ 'a) \ 'a \ 'a" "\u ua. u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u (u ua))))))))))))))))))))))))))" :: "('a \ 'a) \ 'a \ 'a" ### Rule already declared as elimination (elim) ### \?b dvd ?a; \k. ?a = ?b * k \ ?P\ ### \ ?P ### factorise ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### factorise ### 0.002s elapsed time, 0.016s cpu time, 0.000s GC time ### factorise ### 0.007s elapsed time, 0.040s cpu time, 0.000s GC time ### factorise ### 0.014s elapsed time, 0.084s cpu time, 0.000s GC time ### factorise ### 0.097s elapsed time, 0.584s cpu time, 0.000s GC time ### factorise ### 0.010s elapsed time, 0.064s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### primes example ### 0.012s elapsed time, 0.072s cpu time, 0.000s GC time "Bla (Bar 4 [1])" :: "(nat, nat list) foo" Trying to find a model that refutes: True Unfolded term: True Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: (\x y. P x y \ P y x) \ (\x. P x y) \ P y x Unfolded term: (\x y. P x y \ P y x) \ (\x. P x y) \ P y x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### harmonic example ### 1.319s elapsed time, 7.720s cpu time, 0.332s GC time ### overall computation ### 1.332s elapsed time, 7.796s cpu time, 0.332s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: \x. f x = g x \ f = g Unfolded term: \x. f x = g x \ f = g Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 4) ... Trying to find a model that refutes: \P. P Unfolded term: \P. P Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: \!P. P Unfolded term: \x. x \ (\y. y \ y = x) Adding axioms... ...done. Ground types: none. Translating term (sizes: ) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: \f. f x = x Unfolded term: \f. f x = x Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### factorise ### 3.306s elapsed time, 19.216s cpu time, 1.120s GC time Trying to find a model that refutes: (\x. \y. P x y) \ (\f. \x. P x (f x)) Unfolded term: (\x. Ex (P x)) \ (\f. \x. P x (f x)) Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### factorise ### 0.191s elapsed time, 1.152s cpu time, 0.000s GC time ### factorise ### 0.004s elapsed time, 0.024s cpu time, 0.000s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 3) ... ### factorise ### 0.950s elapsed time, 5.516s cpu time, 0.340s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 4) ... ### factorise ### 0.124s elapsed time, 0.744s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.003s elapsed time, 0.020s cpu time, 0.000s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: (\x. \!y. P x y) \ (\!f. \x. P x (f x)) Unfolded term: (\x. \xa. P x xa \ (\y. P x y \ y = xa)) \ (\x. (\xa. P xa (x xa)) \ (\y. (\x. P x (y x)) \ y = x)) Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### factorise ### 1.132s elapsed time, 6.792s cpu time, 0.000s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### factorise ### 0.457s elapsed time, 2.548s cpu time, 0.324s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: (\x. x) = (\y. y) Unfolded term: (\x. x) = (\y. y) Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: {x. P x} = {y. P y} Unfolded term: Collect P = Collect P Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: Ex P \ P (Eps P) Unfolded term: Ex P \ P (Eps P) Adding axioms... Hilbert_Choice.someI OFCLASS('a, type_class) ...done. Ground types: 'a itself, 'a Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_T1 a b A = a Unfolded term: rec_T1 a b A = a Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_T1 a b B = b Unfolded term: rec_T1 a b B = b Adding axioms... ...done. Ground types: 'a Translating term (sizes: 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_T2 c d (C x) = c x ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8) ... Unfolded term: rec_T2 c d (C x) = c x Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_T2 c d (D x) = d x Unfolded term: rec_T2 c d (D x) = d x Adding axioms... ...done. Ground types: 'a, 'b Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 4) ... ### factorise ### 3.605s elapsed time, 21.288s cpu time, 0.680s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_T3 e (E x) = e x Unfolded term: rec_T3 e (E x) = e x Adding axioms... ...done. Ground types: 'a, 'c, 'b Translating term (sizes: 1, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 1, 2) ... Trying to find a model that refutes: rec_nat zero suc 0 = zero Unfolded term: rec_nat zero suc 0 = zero Adding axioms... ...done. Ground types: 'a, nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_nat zero suc (Suc x) = suc x (rec_nat zero suc x) ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3) ... Unfolded term: rec_nat zero suc (Suc x) = suc x (rec_nat zero suc x) Adding axioms... ...done. Ground types: 'a, nat ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_list nil cons [] = nil ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 4) ... Unfolded term: rec_list nil cons [] = nil Adding axioms... ...done. Ground types: 'a, 'b list, 'b ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 3, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 3, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_list nil cons (x # xs) = cons x xs (rec_list nil cons xs) Unfolded term: rec_list nil cons (x # xs) = cons x xs (rec_list nil cons xs) Adding axioms... ...done. Ground types: 'a, 'b list, 'b ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 4) ... ### factorise ### 2.884s elapsed time, 17.092s cpu time, 0.316s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 5) ... ### factorise ### 0.034s elapsed time, 0.204s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 6) ... ### factorise ### 0.046s elapsed time, 0.272s cpu time, 0.000s GC time ### factorise ### 0.014s elapsed time, 0.088s cpu time, 0.000s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 5) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 6) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 6) ... Trying to find a model that refutes: rec_BitList nil bit0 bit1 BitListNil = nil ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 7) ... Unfolded term: rec_BitList nil bit0 bit1 BitListNil = nil Adding axioms... ...done. Ground types: 'a, BitList ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 7) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 8) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_BitList nil bit0 bit1 (Bit0 xs) = bit0 xs (rec_BitList nil bit0 bit1 xs) Unfolded term: rec_BitList nil bit0 bit1 (Bit0 xs) = bit0 xs (rec_BitList nil bit0 bit1 xs) Adding axioms... ...done. Ground types: 'a, BitList ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: rec_BitList nil bit0 bit1 (Bit1 xs) = bit1 xs (rec_BitList nil bit0 bit1 xs) Unfolded term: rec_BitList nil bit0 bit1 (Bit1 xs) = bit1 xs (rec_BitList nil bit0 bit1 xs) Adding axioms... ...done. Ground types: 'a, BitList ### Term contains a recursive datatype; countermodel(s) may be spurious! Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 1, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 3) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 2) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 3) ... Trying to find a model that refutes: OFCLASS('a, type_class) Unfolded term: OFCLASS('a, type_class) Adding axioms... OFCLASS('a, type_class) ...done. Ground types: 'a, 'a itself Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 4) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. Trying to find a model that refutes: OFCLASS('a, type_class) Unfolded term: OFCLASS('a, type_class) Adding axioms... OFCLASS('a, type_class) ...done. Ground types: 'a, 'a itself Translating term (sizes: 1, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 2, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 3, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 4, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 5, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 6, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 7, 1) ... ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Translating term (sizes: 8, 1) ... ### factorise ### 3.416s elapsed time, 20.116s cpu time, 0.648s GC time ### Using SAT solver "cdclite"; for better performance, consider installing an external solver. Invoking SAT solver... No model exists. Search terminated, no larger universe within the given limits. ### factorise ### 0.022s elapsed time, 0.132s cpu time, 0.000s GC time ### factorise ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.097s elapsed time, 0.588s cpu time, 0.000s GC time ### factorise ### 0.306s elapsed time, 1.696s cpu time, 0.340s GC time ### factorise ### 0.413s elapsed time, 2.248s cpu time, 0.000s GC time ### factorise ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### factorise ### 0.004s elapsed time, 0.024s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.004s elapsed time, 0.028s cpu time, 0.000s GC time ### factorise ### 0.205s elapsed time, 1.228s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 3.260s elapsed time, 18.276s cpu time, 0.496s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 3.289s elapsed time, 19.396s cpu time, 0.916s GC time ### factorise ### 0.002s elapsed time, 0.008s cpu time, 0.000s GC time ### factorise ### 0.019s elapsed time, 0.112s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.003s elapsed time, 0.020s cpu time, 0.000s GC time ### factorise ### 0.068s elapsed time, 0.408s cpu time, 0.000s GC time ### factorise ### 0.013s elapsed time, 0.080s cpu time, 0.000s GC time ### factorise ### 0.002s elapsed time, 0.012s cpu time, 0.000s GC time ### factorise ### 0.010s elapsed time, 0.060s cpu time, 0.000s GC time Dedekind_Real.cut ?A \ \x. x \ ?A ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.166s elapsed time, 0.996s cpu time, 0.000s GC time ### factorise ### 0.003s elapsed time, 0.020s cpu time, 0.000s GC time ### factorise ### 0.414s elapsed time, 2.476s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 2.547s elapsed time, 15.068s cpu time, 0.364s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.468s elapsed time, 2.584s cpu time, 0.384s GC time ### factorise ### 0.929s elapsed time, 5.576s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.007s elapsed time, 0.040s cpu time, 0.000s GC time ### factorise ### 3.023s elapsed time, 17.716s cpu time, 0.736s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.004s elapsed time, 0.024s cpu time, 0.000s GC time ### factorise ### 0.083s elapsed time, 0.500s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.908s elapsed time, 5.252s cpu time, 0.352s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.004s elapsed time, 0.028s cpu time, 0.000s GC time ### factorise ### 0.209s elapsed time, 1.256s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.008s cpu time, 0.000s GC time ### factorise ### 0.205s elapsed time, 1.232s cpu time, 0.000s GC time ### factorise ### 0.006s elapsed time, 0.032s cpu time, 0.000s GC time ### factorise ### 0.001s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.124s elapsed time, 0.748s cpu time, 0.000s GC time ### factorise ### 0.000s elapsed time, 0.004s cpu time, 0.000s GC time ### factorise ### 0.003s elapsed time, 0.016s cpu time, 0.000s GC time ### factorise ### 0.010s elapsed time, 0.056s cpu time, 0.000s GC time Testing conjecture with Quickcheck-exhaustive... Quickcheck found no counterexample. ### factorise ### 3.593s elapsed time, 21.764s cpu time, 0.804s GC time ### overall computation ### 32.496s elapsed time, 190.636s cpu time, 7.084s GC time "([2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989], 1155232383787059005906628478817250407408310618353051768363852645072647557465412357829755515148660486731721865012410084014186202087 / 183973812995909931088358644366232200921612854652663374268720829648680278563543357948435787798951318481034810987982367438330656000)" :: "nat list \ rat" "[[2, 2, 2, 2, 2, 5, 5, 5, 5], [3, 59, 113], [2, 73, 137], [83, 241], [2, 2, 3, 1667], [5, 4001], [2, 7, 1429], [3, 3, 3, 3, 13, 19], [2, 2, 2, 41, 61], [11, 17, 107], [2, 3, 5, 23, 29], [20011], [2, 2, 5003], [3, 7, 953], [2, 10007], [5, 4003], [2, 2, 2, 2, 3, 3, 139], [37, 541], [2, 10009], [3, 6673], [2, 2, 5, 7, 11, 13], [20021], [2, 3, 47, 71], [20023], [2, 2, 2, 2503], [3, 3, 5, 5, 89], [2, 17, 19, 31], [7, 2861], [2, 2, 3, 1669], [20029], [2, 5, 2003], [3, 11, 607], [2, 2, 2, 2, 2, 2, 313], [13, 23, 67], [2, 3, 3, 3, 7, 53], [5, 4007], [2, 2, 5009], [3, 6679], [2, 43, 233], [29, 691], [2, 2, 2, 3, 5, 167], [7, 7, 409], [2, 11, 911], [3, 3, 17, 131], [2, 2, 5011], [5, 19, 211], [2, 3, 13, 257], [20047], [2, 2, 2, 2, 7, 179], [3, 41, 163], [2, 5, 5, 401], [20051], [2, 2, 3, 3, 557], [11, 1823], [2, 37, 271], [3, 5, 7, 191], [2, 2, 2, 23, 109], [31, 647], [2, 3, 3343], [13, 1543], [2, 2, 5, 17, 59], [3, 3, 3, 743], [2, 7, 1433], [20063], [2, 2, 2, 2, 2, 3, 11, 19], [5, 4013], [2, 79, 127], [3, 6689], [2, 2, 29, 173], [7, 47, 61], [2, 3, 3, 5, 223], [20071], [2, 2, 2, 13, 193], [3, 6691], [2, 10037], [5, 5, 11, 73], [2, 2, 3, 7, 239], [17, 1181], [2, 10039], [3, 3, 23, 97], [2, 2, 2, 2, 5, 251], [43, 467], [2, 3, 3347], [7, 19, 151], [2, 2, 5021], [3, 5, 13, 103], [2, 11, 11, 83], [53, 379], [2, 2, 2, 3, 3, 3, 3, 31], [20089], [2, 5, 7, 7, 41], [3, 37, 181], [2, 2, 5023], [71, 283], [2, 3, 17, 197], [5, 4019], [2, 2, 2, 2, 2, 2, 2, 157], [3, 3, 7, 11, 29], [2, 13, 773], [101, 199]]" :: "nat list list" *** Code check failed for OCaml: "$ISABELLE_OCAMLFIND" ocamlopt -w pu -package zarith -linkpkg ROOT.ml