% 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_296__3252872_1 ) ; }
% This file was generated by Isabelle (most likely Sledgehammer)
% 2020-12-16 14:13:36.623

% Could-be-implicit typings (9)
thf(ty_n_t__Set__Oset_It__Hoare____Mirabelle____raqjowkjvm__Otriple_Itf__a_J_J, type,
    set_Ho137910533iple_a : $tType).
thf(ty_n_t__Hoare____Mirabelle____raqjowkjvm__Otriple_Itf__a_J, type,
    hoare_1678595023iple_a : $tType).
thf(ty_n_t__Com__Ovname, type,
    vname : $tType).
thf(ty_n_t__Com__Ostate, type,
    state : $tType).
thf(ty_n_t__Com__Opname, type,
    pname : $tType).
thf(ty_n_t__Nat__Onat, type,
    nat : $tType).
thf(ty_n_t__Com__Oloc, type,
    loc : $tType).
thf(ty_n_t__Com__Ocom, type,
    com : $tType).
thf(ty_n_tf__a, type,
    a : $tType).

% Explicit typings (32)
thf(sy_c_Com_Ocom_OAss, type,
    ass : vname > (state > nat) > com).
thf(sy_c_Com_Ocom_OBODY, type,
    body : pname > com).
thf(sy_c_Com_Ocom_OCall, type,
    call : vname > pname > (state > nat) > com).
thf(sy_c_Com_Ocom_OCond, type,
    cond : (state > $o) > com > com > com).
thf(sy_c_Com_Ocom_OLocal, type,
    local : loc > (state > nat) > 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_OWhile, type,
    while : (state > $o) > 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_Ohoare__valids_001tf__a, type,
    hoare_1775499016lids_a : set_Ho137910533iple_a > set_Ho137910533iple_a > $o).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Ostate__not__singleton, type,
    hoare_405891322gleton : $o).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Otriple_Osize__triple_001tf__a, type,
    hoare_201533281iple_a : (a > nat) > hoare_1678595023iple_a > nat).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Otriple_Otriple_001tf__a, type,
    hoare_719046530iple_a : (a > state > $o) > com > (a > state > $o) > hoare_1678595023iple_a).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Otriple__valid_001tf__a, type,
    hoare_1926814542alid_a : nat > hoare_1678595023iple_a > $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_Nat_Osize__class_Osize_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_Itf__a_J, type,
    size_s648929379iple_a : hoare_1678595023iple_a > nat).
thf(sy_c_Natural_Oevaln, type,
    evaln : com > state > nat > state > $o).
thf(sy_c_member_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_Itf__a_J, type,
    member1332298086iple_a : hoare_1678595023iple_a > set_Ho137910533iple_a > $o).
thf(sy_v_Ga, type,
    ga : set_Ho137910533iple_a).
thf(sy_v_P, type,
    p : a > state > $o).
thf(sy_v_Q, type,
    q : a > state > $o).
thf(sy_v_R, type,
    r : a > state > $o).
thf(sy_v_Z, type,
    z : a).
thf(sy_v_c, type,
    c : com).
thf(sy_v_d, type,
    d : com).
thf(sy_v_n, type,
    n : nat).
thf(sy_v_s, type,
    s : state).
thf(sy_v_s1, type,
    s1 : state).
thf(sy_v_s_H, type,
    s2 : state).

% Relevant facts (121)
thf(fact_0_evaln__max2, axiom,
    ((![C1 : com, S1 : state, N1 : nat, T1 : state, C2 : com, S2 : state, N2 : nat, T2 : state]: ((evaln @ C1 @ S1 @ N1 @ T1) => ((evaln @ C2 @ S2 @ N2 @ T2) => (?[N : nat]: ((evaln @ C1 @ S1 @ N @ T1) & (evaln @ C2 @ S2 @ N @ T2)))))))). % evaln_max2
thf(fact_1_triple__valid__def2, axiom,
    ((![N3 : nat, P : a > state > $o, C : com, Q : a > state > $o]: ((hoare_1926814542alid_a @ N3 @ (hoare_719046530iple_a @ P @ C @ Q)) = (![Z : a]: (![S : state]: (((P @ Z @ S)) => ((![S3 : state]: (((evaln @ C @ S @ N3 @ S3)) => ((Q @ Z @ S3)))))))))))). % triple_valid_def2
thf(fact_2_triple__valid__Suc, axiom,
    ((![N3 : nat, T : hoare_1678595023iple_a]: ((hoare_1926814542alid_a @ (suc @ N3) @ T) => (hoare_1926814542alid_a @ N3 @ T))))). % triple_valid_Suc
thf(fact_3_single__stateE, axiom,
    ((hoare_405891322gleton => (![T3 : state]: (~ ((![S4 : state]: (S4 = T3)))))))). % single_stateE
thf(fact_4_state__not__singleton__def, axiom,
    ((hoare_405891322gleton = (?[S : state]: (?[T4 : state]: (~ ((S = T4)))))))). % state_not_singleton_def
thf(fact_5_hoare__valids__def, axiom,
    ((hoare_1775499016lids_a = (^[G : set_Ho137910533iple_a]: (^[Ts : set_Ho137910533iple_a]: (![N4 : nat]: (((![X : hoare_1678595023iple_a]: (((member1332298086iple_a @ X @ G)) => ((hoare_1926814542alid_a @ N4 @ X))))) => ((![X : hoare_1678595023iple_a]: (((member1332298086iple_a @ X @ Ts)) => ((hoare_1926814542alid_a @ N4 @ X)))))))))))). % hoare_valids_def
thf(fact_6_evaln__elim__cases_I1_J, axiom,
    ((![S5 : state, N3 : nat, T : state]: ((evaln @ skip @ S5 @ N3 @ T) => (T = S5))))). % evaln_elim_cases(1)
thf(fact_7_evaln_OSkip, axiom,
    ((![S5 : state, N3 : nat]: (evaln @ skip @ S5 @ N3 @ S5)))). % evaln.Skip
thf(fact_8_evaln__elim__cases_I4_J, axiom,
    ((![C1 : com, C2 : com, S5 : state, N3 : nat, T : state]: ((evaln @ (semi @ C1 @ C2) @ S5 @ N3 @ T) => (~ ((![S12 : state]: ((evaln @ C1 @ S5 @ N3 @ S12) => (~ ((evaln @ C2 @ S12 @ N3 @ T))))))))))). % evaln_elim_cases(4)
thf(fact_9_evaln_OSemi, axiom,
    ((![C0 : com, S0 : state, N3 : nat, S1 : state, C1 : com, S2 : state]: ((evaln @ C0 @ S0 @ N3 @ S1) => ((evaln @ C1 @ S1 @ N3 @ S2) => (evaln @ (semi @ C0 @ C1) @ S0 @ N3 @ S2)))))). % evaln.Semi
thf(fact_10_evaln__elim__cases_I5_J, axiom,
    ((![B : state > $o, C1 : com, C2 : com, S5 : state, N3 : nat, T : state]: ((evaln @ (cond @ B @ C1 @ C2) @ S5 @ N3 @ T) => (((B @ S5) => (~ ((evaln @ C1 @ S5 @ N3 @ T)))) => (~ (((~ ((B @ S5))) => (~ ((evaln @ C2 @ S5 @ N3 @ T))))))))))). % evaln_elim_cases(5)
thf(fact_11_evaln_OIfTrue, axiom,
    ((![B : state > $o, S5 : state, C0 : com, N3 : nat, S1 : state, C1 : com]: ((B @ S5) => ((evaln @ C0 @ S5 @ N3 @ S1) => (evaln @ (cond @ B @ C0 @ C1) @ S5 @ N3 @ S1)))))). % evaln.IfTrue
thf(fact_12_triple_Oinject, axiom,
    ((![X1 : a > state > $o, X2 : com, X3 : a > state > $o, Y1 : a > state > $o, Y2 : com, Y3 : a > state > $o]: (((hoare_719046530iple_a @ X1 @ X2 @ X3) = (hoare_719046530iple_a @ Y1 @ Y2 @ Y3)) = (((X1 = Y1)) & ((((X2 = Y2)) & ((X3 = Y3))))))))). % triple.inject
thf(fact_13_triple_Oinduct, axiom,
    ((![P : hoare_1678595023iple_a > $o, Triple : hoare_1678595023iple_a]: ((![X1a : a > state > $o, X2a : com, X3a : a > state > $o]: (P @ (hoare_719046530iple_a @ X1a @ X2a @ X3a))) => (P @ Triple))))). % triple.induct
thf(fact_14_triple_Oexhaust, axiom,
    ((![Y : hoare_1678595023iple_a]: (~ ((![X12 : a > state > $o, X22 : com, X32 : a > state > $o]: (~ ((Y = (hoare_719046530iple_a @ X12 @ X22 @ X32)))))))))). % triple.exhaust
thf(fact_15_triples__valid__Suc, axiom,
    ((![Ts2 : set_Ho137910533iple_a, N3 : nat]: ((![X4 : hoare_1678595023iple_a]: ((member1332298086iple_a @ X4 @ Ts2) => (hoare_1926814542alid_a @ (suc @ N3) @ X4))) => (![X5 : hoare_1678595023iple_a]: ((member1332298086iple_a @ X5 @ Ts2) => (hoare_1926814542alid_a @ N3 @ X5))))))). % triples_valid_Suc
thf(fact_16_evaln__Suc, axiom,
    ((![C : com, S5 : state, N3 : nat, S6 : state]: ((evaln @ C @ S5 @ N3 @ S6) => (evaln @ C @ S5 @ (suc @ N3) @ S6))))). % evaln_Suc
thf(fact_17_evaln_OIfFalse, axiom,
    ((![B : state > $o, S5 : state, C1 : com, N3 : nat, S1 : state, C0 : com]: ((~ ((B @ S5))) => ((evaln @ C1 @ S5 @ N3 @ S1) => (evaln @ (cond @ B @ C0 @ C1) @ S5 @ N3 @ S1)))))). % evaln.IfFalse
thf(fact_18_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_19_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_20_com_Odistinct_I5_J, axiom,
    ((![X41 : com, X42 : com]: (~ ((skip = (semi @ X41 @ X42))))))). % com.distinct(5)
thf(fact_21_nat_Oinject, axiom,
    ((![X2 : nat, Y2 : nat]: (((suc @ X2) = (suc @ Y2)) = (X2 = Y2))))). % nat.inject
thf(fact_22_old_Onat_Oinject, axiom,
    ((![Nat : nat, Nat2 : nat]: (((suc @ Nat) = (suc @ Nat2)) = (Nat = Nat2))))). % old.nat.inject
thf(fact_23_com_Odistinct_I7_J, axiom,
    ((![X51 : state > $o, X52 : com, X53 : com]: (~ ((skip = (cond @ X51 @ X52 @ X53))))))). % com.distinct(7)
thf(fact_24_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_25_n__not__Suc__n, axiom,
    ((![N3 : nat]: (~ ((N3 = (suc @ N3))))))). % n_not_Suc_n
thf(fact_26_Suc__inject, axiom,
    ((![X6 : nat, Y : nat]: (((suc @ X6) = (suc @ Y)) => (X6 = Y))))). % Suc_inject
thf(fact_27_triple_Osize__gen, axiom,
    ((![X6 : a > nat, X1 : a > state > $o, X2 : com, X3 : a > state > $o]: ((hoare_201533281iple_a @ X6 @ (hoare_719046530iple_a @ X1 @ X2 @ X3)) = (suc @ zero_zero_nat))))). % triple.size_gen
thf(fact_28_nat_Odistinct_I1_J, axiom,
    ((![X2 : nat]: (~ ((zero_zero_nat = (suc @ X2))))))). % nat.distinct(1)
thf(fact_29_old_Onat_Odistinct_I2_J, axiom,
    ((![Nat2 : nat]: (~ (((suc @ Nat2) = zero_zero_nat)))))). % old.nat.distinct(2)
thf(fact_30_old_Onat_Odistinct_I1_J, axiom,
    ((![Nat2 : nat]: (~ ((zero_zero_nat = (suc @ Nat2))))))). % old.nat.distinct(1)
thf(fact_31_nat_OdiscI, axiom,
    ((![Nat : nat, X2 : nat]: ((Nat = (suc @ X2)) => (~ ((Nat = zero_zero_nat))))))). % nat.discI
thf(fact_32_nat__induct, axiom,
    ((![P : nat > $o, N3 : nat]: ((P @ zero_zero_nat) => ((![N : nat]: ((P @ N) => (P @ (suc @ N)))) => (P @ N3)))))). % nat_induct
thf(fact_33_diff__induct, axiom,
    ((![P : nat > nat > $o, M : nat, N3 : nat]: ((![X4 : nat]: (P @ X4 @ zero_zero_nat)) => ((![Y4 : nat]: (P @ zero_zero_nat @ (suc @ Y4))) => ((![X4 : nat, Y4 : nat]: ((P @ X4 @ Y4) => (P @ (suc @ X4) @ (suc @ Y4)))) => (P @ M @ N3))))))). % diff_induct
thf(fact_34_zero__induct, axiom,
    ((![P : nat > $o, K : nat]: ((P @ K) => ((![N : nat]: ((P @ (suc @ N)) => (P @ N))) => (P @ zero_zero_nat)))))). % zero_induct
thf(fact_35_Suc__neq__Zero, axiom,
    ((![M : nat]: (~ (((suc @ M) = zero_zero_nat)))))). % Suc_neq_Zero
thf(fact_36_Zero__neq__Suc, axiom,
    ((![M : nat]: (~ ((zero_zero_nat = (suc @ M))))))). % Zero_neq_Suc
thf(fact_37_Zero__not__Suc, axiom,
    ((![M : nat]: (~ ((zero_zero_nat = (suc @ M))))))). % Zero_not_Suc
thf(fact_38_old_Onat_Oexhaust, axiom,
    ((![Y : nat]: ((~ ((Y = zero_zero_nat))) => (~ ((![Nat3 : nat]: (~ ((Y = (suc @ Nat3))))))))))). % old.nat.exhaust
thf(fact_39_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_40_not0__implies__Suc, axiom,
    ((![N3 : nat]: ((~ ((N3 = zero_zero_nat))) => (?[M2 : nat]: (N3 = (suc @ M2))))))). % not0_implies_Suc
thf(fact_41_triple_Osize_I2_J, axiom,
    ((![X1 : a > state > $o, X2 : com, X3 : a > state > $o]: ((size_s648929379iple_a @ (hoare_719046530iple_a @ X1 @ X2 @ X3)) = (suc @ zero_zero_nat))))). % triple.size(2)
thf(fact_42_Body__triple__valid__0, axiom,
    ((![P : a > state > $o, Pn : pname, Q : a > state > $o]: (hoare_1926814542alid_a @ zero_zero_nat @ (hoare_719046530iple_a @ P @ (body @ Pn) @ Q))))). % Body_triple_valid_0
thf(fact_43_com_Osize__gen_I1_J, axiom,
    (((size_com @ skip) = zero_zero_nat))). % com.size_gen(1)
thf(fact_44_com_Osize_I9_J, axiom,
    (((size_size_com @ skip) = zero_zero_nat))). % com.size(9)
thf(fact_45_zero__natural_Orsp, axiom,
    ((zero_zero_nat = zero_zero_nat))). % zero_natural.rsp
thf(fact_46_com_Oinject_I6_J, axiom,
    ((![X7 : pname, Y7 : pname]: (((body @ X7) = (body @ Y7)) = (X7 = Y7))))). % com.inject(6)
thf(fact_47_com_Osize__gen_I7_J, axiom,
    ((![X7 : pname]: ((size_com @ (body @ X7)) = zero_zero_nat)))). % com.size_gen(7)
thf(fact_48_com_Osize_I15_J, axiom,
    ((![X7 : pname]: ((size_size_com @ (body @ X7)) = zero_zero_nat)))). % com.size(15)
thf(fact_49_size__neq__size__imp__neq, axiom,
    ((![X6 : com, Y : com]: ((~ (((size_size_com @ X6) = (size_size_com @ Y)))) => (~ ((X6 = Y))))))). % size_neq_size_imp_neq
thf(fact_50_com_Odistinct_I47_J, axiom,
    ((![X51 : state > $o, X52 : com, X53 : com, X7 : pname]: (~ (((cond @ X51 @ X52 @ X53) = (body @ X7))))))). % com.distinct(47)
thf(fact_51_com_Odistinct_I41_J, axiom,
    ((![X41 : com, X42 : com, X7 : pname]: (~ (((semi @ X41 @ X42) = (body @ X7))))))). % com.distinct(41)
thf(fact_52_com_Odistinct_I11_J, axiom,
    ((![X7 : pname]: (~ ((skip = (body @ X7))))))). % com.distinct(11)
thf(fact_53_zero__reorient, axiom,
    ((![X6 : nat]: ((zero_zero_nat = X6) = (X6 = zero_zero_nat))))). % zero_reorient
thf(fact_54_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_55_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_56_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_57_com_Osize__gen_I5_J, axiom,
    ((![X51 : state > $o, X52 : com, X53 : com]: ((size_com @ (cond @ X51 @ X52 @ X53)) = (plus_plus_nat @ (plus_plus_nat @ (size_com @ X52) @ (size_com @ X53)) @ (suc @ zero_zero_nat)))))). % com.size_gen(5)
thf(fact_58_com_Osize__gen_I2_J, axiom,
    ((![X21 : vname, X222 : state > nat]: ((size_com @ (ass @ X21 @ X222)) = zero_zero_nat)))). % com.size_gen(2)
thf(fact_59_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_60_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_61_com_Oinject_I1_J, axiom,
    ((![X21 : vname, X222 : state > nat, Y21 : vname, Y22 : state > nat]: (((ass @ X21 @ X222) = (ass @ Y21 @ Y22)) = (((X21 = Y21)) & ((X222 = Y22))))))). % com.inject(1)
thf(fact_62_zero__eq__add__iff__both__eq__0, axiom,
    ((![X6 : nat, Y : nat]: ((zero_zero_nat = (plus_plus_nat @ X6 @ Y)) = (((X6 = zero_zero_nat)) & ((Y = zero_zero_nat))))))). % zero_eq_add_iff_both_eq_0
thf(fact_63_add__eq__0__iff__both__eq__0, axiom,
    ((![X6 : nat, Y : nat]: (((plus_plus_nat @ X6 @ Y) = zero_zero_nat) = (((X6 = zero_zero_nat)) & ((Y = zero_zero_nat))))))). % add_eq_0_iff_both_eq_0
thf(fact_64_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_65_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_66_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_67_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_68_add_Oright__neutral, axiom,
    ((![A : nat]: ((plus_plus_nat @ A @ zero_zero_nat) = A)))). % add.right_neutral
thf(fact_69_add_Oleft__neutral, axiom,
    ((![A : nat]: ((plus_plus_nat @ zero_zero_nat @ A) = A)))). % add.left_neutral
thf(fact_70_add__Suc__right, axiom,
    ((![M : nat, N3 : nat]: ((plus_plus_nat @ M @ (suc @ N3)) = (suc @ (plus_plus_nat @ M @ N3)))))). % add_Suc_right
thf(fact_71_Nat_Oadd__0__right, axiom,
    ((![M : nat]: ((plus_plus_nat @ M @ zero_zero_nat) = M)))). % Nat.add_0_right
thf(fact_72_add__is__0, axiom,
    ((![M : nat, N3 : nat]: (((plus_plus_nat @ M @ N3) = zero_zero_nat) = (((M = zero_zero_nat)) & ((N3 = zero_zero_nat))))))). % add_is_0
thf(fact_73_comm__monoid__add__class_Oadd__0, axiom,
    ((![A : nat]: ((plus_plus_nat @ zero_zero_nat @ A) = A)))). % comm_monoid_add_class.add_0
thf(fact_74_add_Ocomm__neutral, axiom,
    ((![A : nat]: ((plus_plus_nat @ A @ zero_zero_nat) = A)))). % add.comm_neutral
thf(fact_75_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_76_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_77_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_78_add_Ocommute, axiom,
    ((plus_plus_nat = (^[A2 : nat]: (^[B2 : nat]: (plus_plus_nat @ B2 @ A2)))))). % add.commute
thf(fact_79_add_Oassoc, axiom,
    ((![A : nat, B : nat, C : nat]: ((plus_plus_nat @ (plus_plus_nat @ A @ B) @ C) = (plus_plus_nat @ A @ (plus_plus_nat @ B @ C)))))). % add.assoc
thf(fact_80_group__cancel_Oadd2, axiom,
    ((![B3 : nat, K : nat, B : nat, A : nat]: ((B3 = (plus_plus_nat @ K @ B)) => ((plus_plus_nat @ A @ B3) = (plus_plus_nat @ K @ (plus_plus_nat @ A @ B))))))). % group_cancel.add2
thf(fact_81_group__cancel_Oadd1, axiom,
    ((![A3 : nat, K : nat, A : nat, B : nat]: ((A3 = (plus_plus_nat @ K @ A)) => ((plus_plus_nat @ A3 @ B) = (plus_plus_nat @ K @ (plus_plus_nat @ A @ B))))))). % group_cancel.add1
thf(fact_82_add__mono__thms__linordered__semiring_I4_J, axiom,
    ((![I : nat, J : nat, K : nat, L : nat]: (((I = J) & (K = L)) => ((plus_plus_nat @ I @ K) = (plus_plus_nat @ J @ L)))))). % add_mono_thms_linordered_semiring(4)
thf(fact_83_ab__semigroup__add__class_Oadd__ac_I1_J, axiom,
    ((![A : nat, B : nat, C : nat]: ((plus_plus_nat @ (plus_plus_nat @ A @ B) @ C) = (plus_plus_nat @ A @ (plus_plus_nat @ B @ C)))))). % ab_semigroup_add_class.add_ac(1)
thf(fact_84_add__Suc, axiom,
    ((![M : nat, N3 : nat]: ((plus_plus_nat @ (suc @ M) @ N3) = (suc @ (plus_plus_nat @ M @ N3)))))). % add_Suc
thf(fact_85_nat__arith_Osuc1, axiom,
    ((![A3 : nat, K : nat, A : nat]: ((A3 = (plus_plus_nat @ K @ A)) => ((suc @ A3) = (plus_plus_nat @ K @ (suc @ A))))))). % nat_arith.suc1
thf(fact_86_add__Suc__shift, axiom,
    ((![M : nat, N3 : nat]: ((plus_plus_nat @ (suc @ M) @ N3) = (plus_plus_nat @ M @ (suc @ N3)))))). % add_Suc_shift
thf(fact_87_plus__nat_Oadd__0, axiom,
    ((![N3 : nat]: ((plus_plus_nat @ zero_zero_nat @ N3) = N3)))). % plus_nat.add_0
thf(fact_88_add__eq__self__zero, axiom,
    ((![M : nat, N3 : nat]: (((plus_plus_nat @ M @ N3) = M) => (N3 = zero_zero_nat))))). % add_eq_self_zero
thf(fact_89_com_Odistinct_I23_J, axiom,
    ((![X21 : vname, X222 : state > nat, X7 : pname]: (~ (((ass @ X21 @ X222) = (body @ X7))))))). % com.distinct(23)
thf(fact_90_com_Odistinct_I19_J, axiom,
    ((![X21 : vname, X222 : state > nat, X51 : state > $o, X52 : com, X53 : com]: (~ (((ass @ X21 @ X222) = (cond @ X51 @ X52 @ X53))))))). % com.distinct(19)
thf(fact_91_com_Odistinct_I17_J, axiom,
    ((![X21 : vname, X222 : state > nat, X41 : com, X42 : com]: (~ (((ass @ X21 @ X222) = (semi @ X41 @ X42))))))). % com.distinct(17)
thf(fact_92_com_Odistinct_I1_J, axiom,
    ((![X21 : vname, X222 : state > nat]: (~ ((skip = (ass @ X21 @ X222))))))). % com.distinct(1)
thf(fact_93_add__is__1, axiom,
    ((![M : nat, N3 : nat]: (((plus_plus_nat @ M @ N3) = (suc @ zero_zero_nat)) = (((((M = (suc @ zero_zero_nat))) & ((N3 = zero_zero_nat)))) | ((((M = zero_zero_nat)) & ((N3 = (suc @ zero_zero_nat)))))))))). % add_is_1
thf(fact_94_one__is__add, axiom,
    ((![M : nat, N3 : nat]: (((suc @ zero_zero_nat) = (plus_plus_nat @ M @ N3)) = (((((M = (suc @ zero_zero_nat))) & ((N3 = zero_zero_nat)))) | ((((M = zero_zero_nat)) & ((N3 = (suc @ zero_zero_nat)))))))))). % one_is_add
thf(fact_95_com_Osize_I10_J, axiom,
    ((![X21 : vname, X222 : state > nat]: ((size_size_com @ (ass @ X21 @ X222)) = zero_zero_nat)))). % com.size(10)
thf(fact_96_Euclid__induct, axiom,
    ((![P : nat > nat > $o, A : nat, B : nat]: ((![A4 : nat, B4 : nat]: ((P @ A4 @ B4) = (P @ B4 @ A4))) => ((![A4 : nat]: (P @ A4 @ zero_zero_nat)) => ((![A4 : nat, B4 : nat]: ((P @ A4 @ B4) => (P @ A4 @ (plus_plus_nat @ A4 @ B4)))) => (P @ A @ B))))))). % Euclid_induct
thf(fact_97_verit__sum__simplify, axiom,
    ((![A : nat]: ((plus_plus_nat @ A @ zero_zero_nat) = A)))). % verit_sum_simplify
thf(fact_98_add__0__iff, axiom,
    ((![B : nat, A : nat]: ((B = (plus_plus_nat @ B @ A)) = (A = zero_zero_nat))))). % add_0_iff
thf(fact_99_com_Osize__gen_I3_J, axiom,
    ((![X31 : loc, X322 : state > nat, X33 : com]: ((size_com @ (local @ X31 @ X322 @ X33)) = (plus_plus_nat @ (size_com @ X33) @ (suc @ zero_zero_nat)))))). % com.size_gen(3)
thf(fact_100_com_Oinject_I2_J, axiom,
    ((![X31 : loc, X322 : state > nat, X33 : com, Y31 : loc, Y32 : state > nat, Y33 : com]: (((local @ X31 @ X322 @ X33) = (local @ Y31 @ Y32 @ Y33)) = (((X31 = Y31)) & ((((X322 = Y32)) & ((X33 = Y33))))))))). % com.inject(2)
thf(fact_101_com_Odistinct_I33_J, axiom,
    ((![X31 : loc, X322 : state > nat, X33 : com, X7 : pname]: (~ (((local @ X31 @ X322 @ X33) = (body @ X7))))))). % com.distinct(33)
thf(fact_102_com_Odistinct_I29_J, axiom,
    ((![X31 : loc, X322 : state > nat, X33 : com, X51 : state > $o, X52 : com, X53 : com]: (~ (((local @ X31 @ X322 @ X33) = (cond @ X51 @ X52 @ X53))))))). % com.distinct(29)
thf(fact_103_com_Odistinct_I27_J, axiom,
    ((![X31 : loc, X322 : state > nat, X33 : com, X41 : com, X42 : com]: (~ (((local @ X31 @ X322 @ X33) = (semi @ X41 @ X42))))))). % com.distinct(27)
thf(fact_104_com_Odistinct_I15_J, axiom,
    ((![X21 : vname, X222 : state > nat, X31 : loc, X322 : state > nat, X33 : com]: (~ (((ass @ X21 @ X222) = (local @ X31 @ X322 @ X33))))))). % com.distinct(15)
thf(fact_105_com_Odistinct_I3_J, axiom,
    ((![X31 : loc, X322 : state > nat, X33 : com]: (~ ((skip = (local @ X31 @ X322 @ X33))))))). % com.distinct(3)
thf(fact_106_com_Osize_I11_J, axiom,
    ((![X31 : loc, X322 : state > nat, X33 : com]: ((size_size_com @ (local @ X31 @ X322 @ X33)) = (plus_plus_nat @ (size_size_com @ X33) @ (suc @ zero_zero_nat)))))). % com.size(11)
thf(fact_107_com_Osize_I14_J, axiom,
    ((![X61 : state > $o, X62 : com]: ((size_size_com @ (while @ X61 @ X62)) = (plus_plus_nat @ (size_size_com @ X62) @ (suc @ zero_zero_nat)))))). % com.size(14)
thf(fact_108_com_Osize__gen_I6_J, axiom,
    ((![X61 : state > $o, X62 : com]: ((size_com @ (while @ X61 @ X62)) = (plus_plus_nat @ (size_com @ X62) @ (suc @ zero_zero_nat)))))). % com.size_gen(6)
thf(fact_109_com_Oinject_I5_J, axiom,
    ((![X61 : state > $o, X62 : com, Y61 : state > $o, Y62 : com]: (((while @ X61 @ X62) = (while @ Y61 @ Y62)) = (((X61 = Y61)) & ((X62 = Y62))))))). % com.inject(5)
thf(fact_110_com_Odistinct_I31_J, axiom,
    ((![X31 : loc, X322 : state > nat, X33 : com, X61 : state > $o, X62 : com]: (~ (((local @ X31 @ X322 @ X33) = (while @ X61 @ X62))))))). % com.distinct(31)
thf(fact_111_evaln_OWhileTrue, axiom,
    ((![B : state > $o, S0 : state, C : com, N3 : nat, S1 : state, S2 : state]: ((B @ S0) => ((evaln @ C @ S0 @ N3 @ S1) => ((evaln @ (while @ B @ C) @ S1 @ N3 @ S2) => (evaln @ (while @ B @ C) @ S0 @ N3 @ S2))))))). % evaln.WhileTrue
thf(fact_112_evaln_OWhileFalse, axiom,
    ((![B : state > $o, S5 : state, C : com, N3 : nat]: ((~ ((B @ S5))) => (evaln @ (while @ B @ C) @ S5 @ N3 @ S5))))). % evaln.WhileFalse
thf(fact_113_evaln__WHILE__case, axiom,
    ((![B : state > $o, C : com, S5 : state, N3 : nat, T : state]: ((evaln @ (while @ B @ C) @ S5 @ N3 @ T) => (((T = S5) => (B @ S5)) => (~ (((B @ S5) => (![S12 : state]: ((evaln @ C @ S5 @ N3 @ S12) => (~ ((evaln @ (while @ B @ C) @ S12 @ N3 @ T))))))))))))). % evaln_WHILE_case
thf(fact_114_com_Odistinct_I51_J, axiom,
    ((![X61 : state > $o, X62 : com, X7 : pname]: (~ (((while @ X61 @ X62) = (body @ X7))))))). % com.distinct(51)
thf(fact_115_com_Odistinct_I45_J, axiom,
    ((![X51 : state > $o, X52 : com, X53 : com, X61 : state > $o, X62 : com]: (~ (((cond @ X51 @ X52 @ X53) = (while @ X61 @ X62))))))). % com.distinct(45)
thf(fact_116_com_Odistinct_I39_J, axiom,
    ((![X41 : com, X42 : com, X61 : state > $o, X62 : com]: (~ (((semi @ X41 @ X42) = (while @ X61 @ X62))))))). % com.distinct(39)
thf(fact_117_com_Odistinct_I21_J, axiom,
    ((![X21 : vname, X222 : state > nat, X61 : state > $o, X62 : com]: (~ (((ass @ X21 @ X222) = (while @ X61 @ X62))))))). % com.distinct(21)
thf(fact_118_com_Odistinct_I9_J, axiom,
    ((![X61 : state > $o, X62 : com]: (~ ((skip = (while @ X61 @ X62))))))). % com.distinct(9)
thf(fact_119_com_Oexhaust, axiom,
    ((![Y : com]: ((~ ((Y = skip))) => ((![X212 : vname, X223 : state > nat]: (~ ((Y = (ass @ X212 @ X223))))) => ((![X312 : loc, X323 : state > nat, X332 : com]: (~ ((Y = (local @ X312 @ X323 @ X332))))) => ((![X412 : com, X422 : com]: (~ ((Y = (semi @ X412 @ X422))))) => ((![X512 : state > $o, X522 : com, X532 : com]: (~ ((Y = (cond @ X512 @ X522 @ X532))))) => ((![X612 : state > $o, X622 : com]: (~ ((Y = (while @ X612 @ X622))))) => ((![X72 : pname]: (~ ((Y = (body @ X72))))) => (~ ((![X81 : vname, X82 : pname, X83 : state > nat]: (~ ((Y = (call @ X81 @ X82 @ X83))))))))))))))))). % com.exhaust
thf(fact_120_com_Oinduct, axiom,
    ((![P : com > $o, Com : com]: ((P @ skip) => ((![X12 : vname, X22 : state > nat]: (P @ (ass @ X12 @ X22))) => ((![X12 : loc, X22 : state > nat, X32 : com]: ((P @ X32) => (P @ (local @ X12 @ X22 @ X32)))) => ((![X12 : com, X22 : com]: ((P @ X12) => ((P @ X22) => (P @ (semi @ X12 @ X22))))) => ((![X12 : state > $o, X22 : com, X32 : com]: ((P @ X22) => ((P @ X32) => (P @ (cond @ X12 @ X22 @ X32))))) => ((![X12 : state > $o, X22 : com]: ((P @ X22) => (P @ (while @ X12 @ X22)))) => ((![X4 : pname]: (P @ (body @ X4))) => ((![X12 : vname, X22 : pname, X32 : state > nat]: (P @ (call @ X12 @ X22 @ X32))) => (P @ Com)))))))))))). % com.induct

% Conjectures (7)
thf(conj_0, hypothesis,
    ((![X5 : hoare_1678595023iple_a]: ((member1332298086iple_a @ X5 @ ga) => (hoare_1926814542alid_a @ n @ X5))))).
thf(conj_1, hypothesis,
    ((![Z2 : a, S7 : state]: ((p @ Z2 @ S7) => (![S8 : state]: ((evaln @ c @ S7 @ n @ S8) => (q @ Z2 @ S8))))))).
thf(conj_2, hypothesis,
    ((![Z2 : a, S7 : state]: ((q @ Z2 @ S7) => (![S8 : state]: ((evaln @ d @ S7 @ n @ S8) => (r @ Z2 @ S8))))))).
thf(conj_3, hypothesis,
    ((p @ z @ s))).
thf(conj_4, hypothesis,
    ((evaln @ c @ s @ n @ s1))).
thf(conj_5, hypothesis,
    ((evaln @ d @ s1 @ n @ s2))).
thf(conj_6, conjecture,
    ((r @ z @ s2))).
