% TIMEFORMAT='%3R'; { time (exec 2>&1; /home/martin/bin/satallax -E /home/martin/.isabelle/contrib/e-2.5-1/x86_64-linux/eprover -p tstp -t 5 /home/martin/judgement-day/tptp-thf/tptp/Hoare/prob_145__3250784_1 ) ; }
% This file was generated by Isabelle (most likely Sledgehammer)
% 2020-12-16 14:12:21.636

% Could-be-implicit typings (4)
thf(ty_n_t__Com__Ostate, type,
    state : $tType).
thf(ty_n_t__Nat__Onat, type,
    nat : $tType).
thf(ty_n_t__Com__Ocom, type,
    com : $tType).
thf(ty_n_tf__a, type,
    a : $tType).

% Explicit typings (15)
thf(sy_c_Com_Ocom_OCond, type,
    cond : (state > $o) > com > com > com).
thf(sy_c_Com_Ocom_OSKIP, type,
    skip : com).
thf(sy_c_Com_Ocom_OSemi, type,
    semi : com > com > com).
thf(sy_c_Com_Ocom_Osize__com, type,
    size_com : com > nat).
thf(sy_c_Groups_Oplus__class_Oplus_001t__Nat__Onat, type,
    plus_plus_nat : nat > nat > nat).
thf(sy_c_Groups_Ozero__class_Ozero_001t__Nat__Onat, type,
    zero_zero_nat : nat).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Ostate__not__singleton, type,
    hoare_405891322gleton : $o).
thf(sy_c_Nat_OSuc, type,
    suc : nat > nat).
thf(sy_c_Nat_Osize__class_Osize_001t__Com__Ocom, type,
    size_size_com : com > nat).
thf(sy_c_Natural_Oevaln, type,
    evaln : com > state > nat > state > $o).
thf(sy_c_Orderings_Oord__class_Oless_001t__Nat__Onat, type,
    ord_less_nat : nat > nat > $o).
thf(sy_v_n, type,
    n : nat).
thf(sy_v_x1a, type,
    x1a : a > state > $o).
thf(sy_v_x2a, type,
    x2a : com).
thf(sy_v_x3a, type,
    x3a : a > state > $o).

% Relevant facts (119)
thf(fact_0_nat_Oinject, axiom,
    ((![X2 : nat, Y2 : nat]: (((suc @ X2) = (suc @ Y2)) = (X2 = Y2))))). % nat.inject
thf(fact_1_old_Onat_Oinject, axiom,
    ((![Nat : nat, Nat2 : nat]: (((suc @ Nat) = (suc @ Nat2)) = (Nat = Nat2))))). % old.nat.inject
thf(fact_2_evaln__Suc, axiom,
    ((![C : com, S : state, N : nat, S2 : state]: ((evaln @ C @ S @ N @ S2) => (evaln @ C @ S @ (suc @ N) @ S2))))). % evaln_Suc
thf(fact_3_evaln__max2, axiom,
    ((![C1 : com, S1 : state, N1 : nat, T1 : state, C2 : com, S22 : state, N2 : nat, T2 : state]: ((evaln @ C1 @ S1 @ N1 @ T1) => ((evaln @ C2 @ S22 @ N2 @ T2) => (?[N3 : nat]: ((evaln @ C1 @ S1 @ N3 @ T1) & (evaln @ C2 @ S22 @ N3 @ T2)))))))). % evaln_max2
thf(fact_4_Suc__inject, axiom,
    ((![X : nat, Y : nat]: (((suc @ X) = (suc @ Y)) => (X = Y))))). % Suc_inject
thf(fact_5_n__not__Suc__n, axiom,
    ((![N : nat]: (~ ((N = (suc @ N))))))). % n_not_Suc_n
thf(fact_6_single__stateE, axiom,
    ((hoare_405891322gleton => (![T : state]: (~ ((![S3 : state]: (S3 = T)))))))). % single_stateE
thf(fact_7_state__not__singleton__def, axiom,
    ((hoare_405891322gleton = (?[S4 : state]: (?[T3 : state]: (~ ((S4 = T3)))))))). % state_not_singleton_def
thf(fact_8_evaln_OSkip, axiom,
    ((![S : state, N : nat]: (evaln @ skip @ S @ N @ S)))). % evaln.Skip
thf(fact_9_evaln__elim__cases_I1_J, axiom,
    ((![S : state, N : nat, T4 : state]: ((evaln @ skip @ S @ N @ T4) => (T4 = S))))). % evaln_elim_cases(1)
thf(fact_10_evaln_OSemi, axiom,
    ((![C0 : com, S0 : state, N : nat, S1 : state, C1 : com, S22 : state]: ((evaln @ C0 @ S0 @ N @ S1) => ((evaln @ C1 @ S1 @ N @ S22) => (evaln @ (semi @ C0 @ C1) @ S0 @ N @ S22)))))). % evaln.Semi
thf(fact_11_evaln__elim__cases_I4_J, axiom,
    ((![C1 : com, C2 : com, S : state, N : nat, T4 : state]: ((evaln @ (semi @ C1 @ C2) @ S @ N @ T4) => (~ ((![S12 : state]: ((evaln @ C1 @ S @ N @ S12) => (~ ((evaln @ C2 @ S12 @ N @ T4))))))))))). % evaln_elim_cases(4)
thf(fact_12_evaln_OIfFalse, axiom,
    ((![B : state > $o, S : state, C1 : com, N : nat, S1 : state, C0 : com]: ((~ ((B @ S))) => ((evaln @ C1 @ S @ N @ S1) => (evaln @ (cond @ B @ C0 @ C1) @ S @ N @ S1)))))). % evaln.IfFalse
thf(fact_13_evaln_OIfTrue, axiom,
    ((![B : state > $o, S : state, C0 : com, N : nat, S1 : state, C1 : com]: ((B @ S) => ((evaln @ C0 @ S @ N @ S1) => (evaln @ (cond @ B @ C0 @ C1) @ S @ N @ S1)))))). % evaln.IfTrue
thf(fact_14_nat_Odistinct_I1_J, axiom,
    ((![X2 : nat]: (~ ((zero_zero_nat = (suc @ X2))))))). % nat.distinct(1)
thf(fact_15_old_Onat_Odistinct_I2_J, axiom,
    ((![Nat2 : nat]: (~ (((suc @ Nat2) = zero_zero_nat)))))). % old.nat.distinct(2)
thf(fact_16_old_Onat_Odistinct_I1_J, axiom,
    ((![Nat2 : nat]: (~ ((zero_zero_nat = (suc @ Nat2))))))). % old.nat.distinct(1)
thf(fact_17_nat_OdiscI, axiom,
    ((![Nat : nat, X2 : nat]: ((Nat = (suc @ X2)) => (~ ((Nat = zero_zero_nat))))))). % nat.discI
thf(fact_18_nat__induct, axiom,
    ((![P : nat > $o, N : nat]: ((P @ zero_zero_nat) => ((![N3 : nat]: ((P @ N3) => (P @ (suc @ N3)))) => (P @ N)))))). % nat_induct
thf(fact_19_diff__induct, axiom,
    ((![P : nat > nat > $o, M : nat, N : nat]: ((![X3 : nat]: (P @ X3 @ zero_zero_nat)) => ((![Y3 : nat]: (P @ zero_zero_nat @ (suc @ Y3))) => ((![X3 : nat, Y3 : nat]: ((P @ X3 @ Y3) => (P @ (suc @ X3) @ (suc @ Y3)))) => (P @ M @ N))))))). % diff_induct
thf(fact_20_zero__induct, axiom,
    ((![P : nat > $o, K : nat]: ((P @ K) => ((![N3 : nat]: ((P @ (suc @ N3)) => (P @ N3))) => (P @ zero_zero_nat)))))). % zero_induct
thf(fact_21_Suc__neq__Zero, axiom,
    ((![M : nat]: (~ (((suc @ M) = zero_zero_nat)))))). % Suc_neq_Zero
thf(fact_22_Zero__neq__Suc, axiom,
    ((![M : nat]: (~ ((zero_zero_nat = (suc @ M))))))). % Zero_neq_Suc
thf(fact_23_Zero__not__Suc, axiom,
    ((![M : nat]: (~ ((zero_zero_nat = (suc @ M))))))). % Zero_not_Suc
thf(fact_24_old_Onat_Oexhaust, axiom,
    ((![Y : nat]: ((~ ((Y = zero_zero_nat))) => (~ ((![Nat3 : nat]: (~ ((Y = (suc @ Nat3))))))))))). % old.nat.exhaust
thf(fact_25_old_Onat_Oinducts, axiom,
    ((![P : nat > $o, Nat : nat]: ((P @ zero_zero_nat) => ((![Nat3 : nat]: ((P @ Nat3) => (P @ (suc @ Nat3)))) => (P @ Nat)))))). % old.nat.inducts
thf(fact_26_not0__implies__Suc, axiom,
    ((![N : nat]: ((~ ((N = zero_zero_nat))) => (?[M2 : nat]: (N = (suc @ M2))))))). % not0_implies_Suc
thf(fact_27_evaln__elim__cases_I5_J, axiom,
    ((![B : state > $o, C1 : com, C2 : com, S : state, N : nat, T4 : state]: ((evaln @ (cond @ B @ C1 @ C2) @ S @ N @ T4) => (((B @ S) => (~ ((evaln @ C1 @ S @ N @ T4)))) => (~ (((~ ((B @ S))) => (~ ((evaln @ C2 @ S @ N @ T4))))))))))). % evaln_elim_cases(5)
thf(fact_28_com_Oinject_I3_J, axiom,
    ((![X41 : com, X42 : com, Y41 : com, Y42 : com]: (((semi @ X41 @ X42) = (semi @ Y41 @ Y42)) = (((X41 = Y41)) & ((X42 = Y42))))))). % com.inject(3)
thf(fact_29_com_Oinject_I4_J, axiom,
    ((![X51 : state > $o, X52 : com, X53 : com, Y51 : state > $o, Y52 : com, Y53 : com]: (((cond @ X51 @ X52 @ X53) = (cond @ Y51 @ Y52 @ Y53)) = (((X51 = Y51)) & ((((X52 = Y52)) & ((X53 = Y53))))))))). % com.inject(4)
thf(fact_30_com_Odistinct_I5_J, axiom,
    ((![X41 : com, X42 : com]: (~ ((skip = (semi @ X41 @ X42))))))). % com.distinct(5)
thf(fact_31_com_Odistinct_I7_J, axiom,
    ((![X51 : state > $o, X52 : com, X53 : com]: (~ ((skip = (cond @ X51 @ X52 @ X53))))))). % com.distinct(7)
thf(fact_32_com_Odistinct_I37_J, axiom,
    ((![X41 : com, X42 : com, X51 : state > $o, X52 : com, X53 : com]: (~ (((semi @ X41 @ X42) = (cond @ X51 @ X52 @ X53))))))). % com.distinct(37)
thf(fact_33_zero__reorient, axiom,
    ((![X : nat]: ((zero_zero_nat = X) = (X = zero_zero_nat))))). % zero_reorient
thf(fact_34_com_Osize__gen_I1_J, axiom,
    (((size_com @ skip) = zero_zero_nat))). % com.size_gen(1)
thf(fact_35_com_Osize_I9_J, axiom,
    (((size_size_com @ skip) = zero_zero_nat))). % com.size(9)
thf(fact_36_zero__natural_Orsp, axiom,
    ((zero_zero_nat = zero_zero_nat))). % zero_natural.rsp
thf(fact_37_less__Suc0, axiom,
    ((![N : nat]: ((ord_less_nat @ N @ (suc @ zero_zero_nat)) = (N = zero_zero_nat))))). % less_Suc0
thf(fact_38_not__gr__zero, axiom,
    ((![N : nat]: ((~ ((ord_less_nat @ zero_zero_nat @ N))) = (N = zero_zero_nat))))). % not_gr_zero
thf(fact_39_lessI, axiom,
    ((![N : nat]: (ord_less_nat @ N @ (suc @ N))))). % lessI
thf(fact_40_Suc__mono, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ M @ N) => (ord_less_nat @ (suc @ M) @ (suc @ N)))))). % Suc_mono
thf(fact_41_Suc__less__eq, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ (suc @ M) @ (suc @ N)) = (ord_less_nat @ M @ N))))). % Suc_less_eq
thf(fact_42_neq0__conv, axiom,
    ((![N : nat]: ((~ ((N = zero_zero_nat))) = (ord_less_nat @ zero_zero_nat @ N))))). % neq0_conv
thf(fact_43_less__nat__zero__code, axiom,
    ((![N : nat]: (~ ((ord_less_nat @ N @ zero_zero_nat)))))). % less_nat_zero_code
thf(fact_44_bot__nat__0_Onot__eq__extremum, axiom,
    ((![A : nat]: ((~ ((A = zero_zero_nat))) = (ord_less_nat @ zero_zero_nat @ A))))). % bot_nat_0.not_eq_extremum
thf(fact_45_zero__less__Suc, axiom,
    ((![N : nat]: (ord_less_nat @ zero_zero_nat @ (suc @ N))))). % zero_less_Suc
thf(fact_46_size__neq__size__imp__neq, axiom,
    ((![X : com, Y : com]: ((~ (((size_size_com @ X) = (size_size_com @ Y)))) => (~ ((X = Y))))))). % size_neq_size_imp_neq
thf(fact_47_nat__neq__iff, axiom,
    ((![M : nat, N : nat]: ((~ ((M = N))) = (((ord_less_nat @ M @ N)) | ((ord_less_nat @ N @ M))))))). % nat_neq_iff
thf(fact_48_less__not__refl, axiom,
    ((![N : nat]: (~ ((ord_less_nat @ N @ N)))))). % less_not_refl
thf(fact_49_less__not__refl2, axiom,
    ((![N : nat, M : nat]: ((ord_less_nat @ N @ M) => (~ ((M = N))))))). % less_not_refl2
thf(fact_50_less__not__refl3, axiom,
    ((![S : nat, T4 : nat]: ((ord_less_nat @ S @ T4) => (~ ((S = T4))))))). % less_not_refl3
thf(fact_51_less__irrefl__nat, axiom,
    ((![N : nat]: (~ ((ord_less_nat @ N @ N)))))). % less_irrefl_nat
thf(fact_52_nat__less__induct, axiom,
    ((![P : nat > $o, N : nat]: ((![N3 : nat]: ((![M3 : nat]: ((ord_less_nat @ M3 @ N3) => (P @ M3))) => (P @ N3))) => (P @ N))))). % nat_less_induct
thf(fact_53_infinite__descent, axiom,
    ((![P : nat > $o, N : nat]: ((![N3 : nat]: ((~ ((P @ N3))) => (?[M3 : nat]: ((ord_less_nat @ M3 @ N3) & (~ ((P @ M3))))))) => (P @ N))))). % infinite_descent
thf(fact_54_linorder__neqE__nat, axiom,
    ((![X : nat, Y : nat]: ((~ ((X = Y))) => ((~ ((ord_less_nat @ X @ Y))) => (ord_less_nat @ Y @ X)))))). % linorder_neqE_nat
thf(fact_55_lift__Suc__mono__less, axiom,
    ((![F : nat > nat, N : nat, N4 : nat]: ((![N3 : nat]: (ord_less_nat @ (F @ N3) @ (F @ (suc @ N3)))) => ((ord_less_nat @ N @ N4) => (ord_less_nat @ (F @ N) @ (F @ N4))))))). % lift_Suc_mono_less
thf(fact_56_lift__Suc__mono__less__iff, axiom,
    ((![F : nat > nat, N : nat, M : nat]: ((![N3 : nat]: (ord_less_nat @ (F @ N3) @ (F @ (suc @ N3)))) => ((ord_less_nat @ (F @ N) @ (F @ M)) = (ord_less_nat @ N @ M)))))). % lift_Suc_mono_less_iff
thf(fact_57_gr__zeroI, axiom,
    ((![N : nat]: ((~ ((N = zero_zero_nat))) => (ord_less_nat @ zero_zero_nat @ N))))). % gr_zeroI
thf(fact_58_not__less__zero, axiom,
    ((![N : nat]: (~ ((ord_less_nat @ N @ zero_zero_nat)))))). % not_less_zero
thf(fact_59_gr__implies__not__zero, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ M @ N) => (~ ((N = zero_zero_nat))))))). % gr_implies_not_zero
thf(fact_60_zero__less__iff__neq__zero, axiom,
    ((![N : nat]: ((ord_less_nat @ zero_zero_nat @ N) = (~ ((N = zero_zero_nat))))))). % zero_less_iff_neq_zero
thf(fact_61_Nat_OlessE, axiom,
    ((![I : nat, K : nat]: ((ord_less_nat @ I @ K) => ((~ ((K = (suc @ I)))) => (~ ((![J : nat]: ((ord_less_nat @ I @ J) => (~ ((K = (suc @ J))))))))))))). % Nat.lessE
thf(fact_62_Suc__lessD, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ (suc @ M) @ N) => (ord_less_nat @ M @ N))))). % Suc_lessD
thf(fact_63_Suc__lessE, axiom,
    ((![I : nat, K : nat]: ((ord_less_nat @ (suc @ I) @ K) => (~ ((![J : nat]: ((ord_less_nat @ I @ J) => (~ ((K = (suc @ J)))))))))))). % Suc_lessE
thf(fact_64_Suc__lessI, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ M @ N) => ((~ (((suc @ M) = N))) => (ord_less_nat @ (suc @ M) @ N)))))). % Suc_lessI
thf(fact_65_less__SucE, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ M @ (suc @ N)) => ((~ ((ord_less_nat @ M @ N))) => (M = N)))))). % less_SucE
thf(fact_66_less__SucI, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ M @ N) => (ord_less_nat @ M @ (suc @ N)))))). % less_SucI
thf(fact_67_Ex__less__Suc, axiom,
    ((![N : nat, P : nat > $o]: ((?[I2 : nat]: (((ord_less_nat @ I2 @ (suc @ N))) & ((P @ I2)))) = (((P @ N)) | ((?[I2 : nat]: (((ord_less_nat @ I2 @ N)) & ((P @ I2)))))))))). % Ex_less_Suc
thf(fact_68_less__Suc__eq, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ M @ (suc @ N)) = (((ord_less_nat @ M @ N)) | ((M = N))))))). % less_Suc_eq
thf(fact_69_not__less__eq, axiom,
    ((![M : nat, N : nat]: ((~ ((ord_less_nat @ M @ N))) = (ord_less_nat @ N @ (suc @ M)))))). % not_less_eq
thf(fact_70_All__less__Suc, axiom,
    ((![N : nat, P : nat > $o]: ((![I2 : nat]: (((ord_less_nat @ I2 @ (suc @ N))) => ((P @ I2)))) = (((P @ N)) & ((![I2 : nat]: (((ord_less_nat @ I2 @ N)) => ((P @ I2)))))))))). % All_less_Suc
thf(fact_71_Suc__less__eq2, axiom,
    ((![N : nat, M : nat]: ((ord_less_nat @ (suc @ N) @ M) = (?[M4 : nat]: (((M = (suc @ M4))) & ((ord_less_nat @ N @ M4)))))))). % Suc_less_eq2
thf(fact_72_less__antisym, axiom,
    ((![N : nat, M : nat]: ((~ ((ord_less_nat @ N @ M))) => ((ord_less_nat @ N @ (suc @ M)) => (M = N)))))). % less_antisym
thf(fact_73_Suc__less__SucD, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ (suc @ M) @ (suc @ N)) => (ord_less_nat @ M @ N))))). % Suc_less_SucD
thf(fact_74_less__trans__Suc, axiom,
    ((![I : nat, J2 : nat, K : nat]: ((ord_less_nat @ I @ J2) => ((ord_less_nat @ J2 @ K) => (ord_less_nat @ (suc @ I) @ K)))))). % less_trans_Suc
thf(fact_75_less__Suc__induct, axiom,
    ((![I : nat, J2 : nat, P : nat > nat > $o]: ((ord_less_nat @ I @ J2) => ((![I3 : nat]: (P @ I3 @ (suc @ I3))) => ((![I3 : nat, J : nat, K2 : nat]: ((ord_less_nat @ I3 @ J) => ((ord_less_nat @ J @ K2) => ((P @ I3 @ J) => ((P @ J @ K2) => (P @ I3 @ K2)))))) => (P @ I @ J2))))))). % less_Suc_induct
thf(fact_76_strict__inc__induct, axiom,
    ((![I : nat, J2 : nat, P : nat > $o]: ((ord_less_nat @ I @ J2) => ((![I3 : nat]: ((J2 = (suc @ I3)) => (P @ I3))) => ((![I3 : nat]: ((ord_less_nat @ I3 @ J2) => ((P @ (suc @ I3)) => (P @ I3)))) => (P @ I))))))). % strict_inc_induct
thf(fact_77_not__less__less__Suc__eq, axiom,
    ((![N : nat, M : nat]: ((~ ((ord_less_nat @ N @ M))) => ((ord_less_nat @ N @ (suc @ M)) = (N = M)))))). % not_less_less_Suc_eq
thf(fact_78_gr0I, axiom,
    ((![N : nat]: ((~ ((N = zero_zero_nat))) => (ord_less_nat @ zero_zero_nat @ N))))). % gr0I
thf(fact_79_not__gr0, axiom,
    ((![N : nat]: ((~ ((ord_less_nat @ zero_zero_nat @ N))) = (N = zero_zero_nat))))). % not_gr0
thf(fact_80_not__less0, axiom,
    ((![N : nat]: (~ ((ord_less_nat @ N @ zero_zero_nat)))))). % not_less0
thf(fact_81_less__zeroE, axiom,
    ((![N : nat]: (~ ((ord_less_nat @ N @ zero_zero_nat)))))). % less_zeroE
thf(fact_82_gr__implies__not0, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ M @ N) => (~ ((N = zero_zero_nat))))))). % gr_implies_not0
thf(fact_83_infinite__descent0, axiom,
    ((![P : nat > $o, N : nat]: ((P @ zero_zero_nat) => ((![N3 : nat]: ((ord_less_nat @ zero_zero_nat @ N3) => ((~ ((P @ N3))) => (?[M3 : nat]: ((ord_less_nat @ M3 @ N3) & (~ ((P @ M3)))))))) => (P @ N)))))). % infinite_descent0
thf(fact_84_bot__nat__0_Oextremum__strict, axiom,
    ((![A : nat]: (~ ((ord_less_nat @ A @ zero_zero_nat)))))). % bot_nat_0.extremum_strict
thf(fact_85_less__Suc__eq__0__disj, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ M @ (suc @ N)) = (((M = zero_zero_nat)) | ((?[J3 : nat]: (((M = (suc @ J3))) & ((ord_less_nat @ J3 @ N)))))))))). % less_Suc_eq_0_disj
thf(fact_86_gr0__implies__Suc, axiom,
    ((![N : nat]: ((ord_less_nat @ zero_zero_nat @ N) => (?[M2 : nat]: (N = (suc @ M2))))))). % gr0_implies_Suc
thf(fact_87_All__less__Suc2, axiom,
    ((![N : nat, P : nat > $o]: ((![I2 : nat]: (((ord_less_nat @ I2 @ (suc @ N))) => ((P @ I2)))) = (((P @ zero_zero_nat)) & ((![I2 : nat]: (((ord_less_nat @ I2 @ N)) => ((P @ (suc @ I2))))))))))). % All_less_Suc2
thf(fact_88_gr0__conv__Suc, axiom,
    ((![N : nat]: ((ord_less_nat @ zero_zero_nat @ N) = (?[M5 : nat]: (N = (suc @ M5))))))). % gr0_conv_Suc
thf(fact_89_Ex__less__Suc2, axiom,
    ((![N : nat, P : nat > $o]: ((?[I2 : nat]: (((ord_less_nat @ I2 @ (suc @ N))) & ((P @ I2)))) = (((P @ zero_zero_nat)) | ((?[I2 : nat]: (((ord_less_nat @ I2 @ N)) & ((P @ (suc @ I2))))))))))). % Ex_less_Suc2
thf(fact_90_less__numeral__extra_I3_J, axiom,
    ((~ ((ord_less_nat @ zero_zero_nat @ zero_zero_nat))))). % less_numeral_extra(3)
thf(fact_91_com_Osize_I12_J, axiom,
    ((![X41 : com, X42 : com]: ((size_size_com @ (semi @ X41 @ X42)) = (plus_plus_nat @ (plus_plus_nat @ (size_size_com @ X41) @ (size_size_com @ X42)) @ (suc @ zero_zero_nat)))))). % com.size(12)
thf(fact_92_com_Osize__gen_I4_J, axiom,
    ((![X41 : com, X42 : com]: ((size_com @ (semi @ X41 @ X42)) = (plus_plus_nat @ (plus_plus_nat @ (size_com @ X41) @ (size_com @ X42)) @ (suc @ zero_zero_nat)))))). % com.size_gen(4)
thf(fact_93_com_Osize_I13_J, axiom,
    ((![X51 : state > $o, X52 : com, X53 : com]: ((size_size_com @ (cond @ X51 @ X52 @ X53)) = (plus_plus_nat @ (plus_plus_nat @ (size_size_com @ X52) @ (size_size_com @ X53)) @ (suc @ zero_zero_nat)))))). % com.size(13)
thf(fact_94_add__right__cancel, axiom,
    ((![B : nat, A : nat, C : nat]: (((plus_plus_nat @ B @ A) = (plus_plus_nat @ C @ A)) = (B = C))))). % add_right_cancel
thf(fact_95_add__left__cancel, axiom,
    ((![A : nat, B : nat, C : nat]: (((plus_plus_nat @ A @ B) = (plus_plus_nat @ A @ C)) = (B = C))))). % add_left_cancel
thf(fact_96_add_Oleft__neutral, axiom,
    ((![A : nat]: ((plus_plus_nat @ zero_zero_nat @ A) = A)))). % add.left_neutral
thf(fact_97_add_Oright__neutral, axiom,
    ((![A : nat]: ((plus_plus_nat @ A @ zero_zero_nat) = A)))). % add.right_neutral
thf(fact_98_add__cancel__left__left, axiom,
    ((![B : nat, A : nat]: (((plus_plus_nat @ B @ A) = A) = (B = zero_zero_nat))))). % add_cancel_left_left
thf(fact_99_add__cancel__left__right, axiom,
    ((![A : nat, B : nat]: (((plus_plus_nat @ A @ B) = A) = (B = zero_zero_nat))))). % add_cancel_left_right
thf(fact_100_add__cancel__right__left, axiom,
    ((![A : nat, B : nat]: ((A = (plus_plus_nat @ B @ A)) = (B = zero_zero_nat))))). % add_cancel_right_left
thf(fact_101_add__cancel__right__right, axiom,
    ((![A : nat, B : nat]: ((A = (plus_plus_nat @ A @ B)) = (B = zero_zero_nat))))). % add_cancel_right_right
thf(fact_102_add__eq__0__iff__both__eq__0, axiom,
    ((![X : nat, Y : nat]: (((plus_plus_nat @ X @ Y) = zero_zero_nat) = (((X = zero_zero_nat)) & ((Y = zero_zero_nat))))))). % add_eq_0_iff_both_eq_0
thf(fact_103_zero__eq__add__iff__both__eq__0, axiom,
    ((![X : nat, Y : nat]: ((zero_zero_nat = (plus_plus_nat @ X @ Y)) = (((X = zero_zero_nat)) & ((Y = zero_zero_nat))))))). % zero_eq_add_iff_both_eq_0
thf(fact_104_add__less__cancel__right, axiom,
    ((![A : nat, C : nat, B : nat]: ((ord_less_nat @ (plus_plus_nat @ A @ C) @ (plus_plus_nat @ B @ C)) = (ord_less_nat @ A @ B))))). % add_less_cancel_right
thf(fact_105_add__less__cancel__left, axiom,
    ((![C : nat, A : nat, B : nat]: ((ord_less_nat @ (plus_plus_nat @ C @ A) @ (plus_plus_nat @ C @ B)) = (ord_less_nat @ A @ B))))). % add_less_cancel_left
thf(fact_106_add__Suc__right, axiom,
    ((![M : nat, N : nat]: ((plus_plus_nat @ M @ (suc @ N)) = (suc @ (plus_plus_nat @ M @ N)))))). % add_Suc_right
thf(fact_107_Nat_Oadd__0__right, axiom,
    ((![M : nat]: ((plus_plus_nat @ M @ zero_zero_nat) = M)))). % Nat.add_0_right
thf(fact_108_add__is__0, axiom,
    ((![M : nat, N : nat]: (((plus_plus_nat @ M @ N) = zero_zero_nat) = (((M = zero_zero_nat)) & ((N = zero_zero_nat))))))). % add_is_0
thf(fact_109_nat__add__left__cancel__less, axiom,
    ((![K : nat, M : nat, N : nat]: ((ord_less_nat @ (plus_plus_nat @ K @ M) @ (plus_plus_nat @ K @ N)) = (ord_less_nat @ M @ N))))). % nat_add_left_cancel_less
thf(fact_110_add__less__same__cancel1, axiom,
    ((![B : nat, A : nat]: ((ord_less_nat @ (plus_plus_nat @ B @ A) @ B) = (ord_less_nat @ A @ zero_zero_nat))))). % add_less_same_cancel1
thf(fact_111_add__less__same__cancel2, axiom,
    ((![A : nat, B : nat]: ((ord_less_nat @ (plus_plus_nat @ A @ B) @ B) = (ord_less_nat @ A @ zero_zero_nat))))). % add_less_same_cancel2
thf(fact_112_less__add__same__cancel1, axiom,
    ((![A : nat, B : nat]: ((ord_less_nat @ A @ (plus_plus_nat @ A @ B)) = (ord_less_nat @ zero_zero_nat @ B))))). % less_add_same_cancel1
thf(fact_113_less__add__same__cancel2, axiom,
    ((![A : nat, B : nat]: ((ord_less_nat @ A @ (plus_plus_nat @ B @ A)) = (ord_less_nat @ zero_zero_nat @ B))))). % less_add_same_cancel2
thf(fact_114_add__gr__0, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ zero_zero_nat @ (plus_plus_nat @ M @ N)) = (((ord_less_nat @ zero_zero_nat @ M)) | ((ord_less_nat @ zero_zero_nat @ N))))))). % add_gr_0
thf(fact_115_add__right__imp__eq, axiom,
    ((![B : nat, A : nat, C : nat]: (((plus_plus_nat @ B @ A) = (plus_plus_nat @ C @ A)) => (B = C))))). % add_right_imp_eq
thf(fact_116_add__left__imp__eq, axiom,
    ((![A : nat, B : nat, C : nat]: (((plus_plus_nat @ A @ B) = (plus_plus_nat @ A @ C)) => (B = C))))). % add_left_imp_eq
thf(fact_117_add_Oleft__commute, axiom,
    ((![B : nat, A : nat, C : nat]: ((plus_plus_nat @ B @ (plus_plus_nat @ A @ C)) = (plus_plus_nat @ A @ (plus_plus_nat @ B @ C)))))). % add.left_commute
thf(fact_118_add_Ocommute, axiom,
    ((plus_plus_nat = (^[A2 : nat]: (^[B2 : nat]: (plus_plus_nat @ B2 @ A2)))))). % add.commute

% Conjectures (1)
thf(conj_0, conjecture,
    (((?[Z : a, S5 : state]: ((x1a @ Z @ S5) & (?[S6 : state]: ((evaln @ x2a @ S5 @ (suc @ n) @ S6) & (~ ((x3a @ Z @ S6))))))) | (![Z2 : a, S3 : state]: ((~ ((x1a @ Z2 @ S3))) | (![S7 : state]: ((~ ((evaln @ x2a @ S3 @ n @ S7))) | (x3a @ Z2 @ S7)))))))).
