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

% Could-be-implicit typings (6)
thf(ty_n_t__Set__Oset_It__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J_J, type,
    set_Ho840737317_state : $tType).
thf(ty_n_t__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J, type,
    hoare_958474565_state : $tType).
thf(ty_n_t__Com__Ovname, type,
    vname : $tType).
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).

% Explicit typings (27)
thf(sy_c_Com_Ocom_OAss, type,
    ass : vname > (state > nat) > com).
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_OWhile, type,
    while : (state > $o) > com > com).
thf(sy_c_Fun_Ocomp_001_Eo_001_Eo_001t__Com__Ostate, type,
    comp_o_o_state : ($o > $o) > (state > $o) > state > $o).
thf(sy_c_HOL_OThe_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J, type,
    the_Ho1908033100_state : (hoare_958474565_state > $o) > hoare_958474565_state).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_OMGT, type,
    hoare_Mirabelle_MGT : com > hoare_958474565_state).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Ohoare__derivs_001t__Com__Ostate, type,
    hoare_604442164_state : set_Ho840737317_state > set_Ho840737317_state > $o).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Ohoare__valids_001t__Com__Ostate, type,
    hoare_318887606_state : set_Ho840737317_state > set_Ho840737317_state > $o).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Opeek__and_001t__Com__Ostate, type,
    hoare_1541087502_state : (state > state > $o) > (state > $o) > state > state > $o).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Ostate__not__singleton, type,
    hoare_405891322gleton : $o).
thf(sy_c_Hoare__Mirabelle__raqjowkjvm_Otriple_Otriple_001t__Com__Ostate, type,
    hoare_1659279548_state : (state > state > $o) > com > (state > state > $o) > hoare_958474565_state).
thf(sy_c_Natural_Oevalc, type,
    evalc : com > state > state > $o).
thf(sy_c_Natural_Oevaln, type,
    evaln : com > state > nat > state > $o).
thf(sy_c_Natural_Oupdate, type,
    update : state > vname > nat > state).
thf(sy_c_Orderings_Obot__class_Obot_001_062_It__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J_M_Eo_J, type,
    bot_bo1428770700tate_o : hoare_958474565_state > $o).
thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J_J, type,
    bot_bo105666705_state : set_Ho840737317_state).
thf(sy_c_Set_OCollect_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J, type,
    collec305460656_state : (hoare_958474565_state > $o) > set_Ho840737317_state).
thf(sy_c_Set_Oinsert_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J, type,
    insert776267541_state : hoare_958474565_state > set_Ho840737317_state > set_Ho840737317_state).
thf(sy_c_Set_Ois__empty_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J, type,
    is_emp266830871_state : set_Ho840737317_state > $o).
thf(sy_c_Set_Ois__singleton_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J, type,
    is_sin536631353_state : set_Ho840737317_state > $o).
thf(sy_c_Set_Opairwise_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J, type,
    pairwi17519280_state : (hoare_958474565_state > hoare_958474565_state > $o) > set_Ho840737317_state > $o).
thf(sy_c_Set_Othe__elem_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J, type,
    the_el1300254266_state : set_Ho840737317_state > hoare_958474565_state).
thf(sy_c_member_001t__Hoare____Mirabelle____raqjowkjvm__Otriple_It__Com__Ostate_J, type,
    member109514606_state : hoare_958474565_state > set_Ho840737317_state > $o).
thf(sy_v_G, type,
    g : set_Ho840737317_state).
thf(sy_v_c, type,
    c : com).

% Relevant facts (113)
thf(fact_0_triple_Oinject, axiom,
    ((![X1 : state > state > $o, X2 : com, X3 : state > state > $o, Y1 : state > state > $o, Y2 : com, Y3 : state > state > $o]: (((hoare_1659279548_state @ X1 @ X2 @ X3) = (hoare_1659279548_state @ Y1 @ Y2 @ Y3)) = (((X1 = Y1)) & ((((X2 = Y2)) & ((X3 = Y3))))))))). % triple.inject
thf(fact_1_escape, axiom,
    ((![P : state > state > $o, G : set_Ho840737317_state, C : com, Q : state > state > $o]: ((![Z : state, S : state]: ((P @ Z @ S) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ (^[Za : state]: (^[S2 : state]: (S2 = S))) @ C @ (^[Z2 : state]: (Q @ Z))) @ bot_bo105666705_state)))) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ C @ Q) @ bot_bo105666705_state)))))). % escape
thf(fact_2_MGT__def, axiom,
    ((hoare_Mirabelle_MGT = (^[C2 : com]: (hoare_1659279548_state @ (^[Y : state]: (^[Z3 : state]: (Y = Z3))) @ C2 @ (evalc @ C2)))))). % MGT_def
thf(fact_3_conseq1, axiom,
    ((![G : set_Ho840737317_state, P2 : state > state > $o, C : com, Q : state > state > $o, P : state > state > $o]: ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P2 @ C @ Q) @ bot_bo105666705_state)) => ((![Z : state, S : state]: ((P @ Z @ S) => (P2 @ Z @ S))) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ C @ Q) @ bot_bo105666705_state))))))). % conseq1
thf(fact_4_conseq2, axiom,
    ((![G : set_Ho840737317_state, P : state > state > $o, C : com, Q2 : state > state > $o, Q : state > state > $o]: ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ C @ Q2) @ bot_bo105666705_state)) => ((![Z : state, S : state]: ((Q2 @ Z @ S) => (Q @ Z @ S))) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ C @ Q) @ bot_bo105666705_state))))))). % conseq2
thf(fact_5_conseq12, axiom,
    ((![G : set_Ho840737317_state, P2 : state > state > $o, C : com, Q2 : state > state > $o, P : state > state > $o, Q : state > state > $o]: ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P2 @ C @ Q2) @ bot_bo105666705_state)) => ((![Z : state, S : state]: ((P @ Z @ S) => (![S3 : state]: ((![Z4 : state]: ((P2 @ Z4 @ S) => (Q2 @ Z4 @ S3))) => (Q @ Z @ S3))))) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ C @ Q) @ bot_bo105666705_state))))))). % conseq12
thf(fact_6__Cconstant_C, axiom,
    ((![C3 : $o, G : set_Ho840737317_state, P : state > state > $o, C : com, Q : state > state > $o]: ((C3 => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ C @ Q) @ bot_bo105666705_state))) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ (^[Z5 : state]: (^[S4 : state]: (((P @ Z5 @ S4)) & (C3)))) @ C @ Q) @ bot_bo105666705_state)))))). % "constant"
thf(fact_7_MGT__alternI, axiom,
    ((![G : set_Ho840737317_state, C : com]: ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_Mirabelle_MGT @ C) @ bot_bo105666705_state)) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ (^[Z5 : state]: (^[S0 : state]: (![S1 : state]: (((evalc @ C @ S0 @ S1)) => ((Z5 = S1)))))) @ C @ (^[Y : state]: (^[Z3 : state]: (Y = Z3)))) @ bot_bo105666705_state)))))). % MGT_alternI
thf(fact_8_single__stateE, axiom,
    ((hoare_405891322gleton => (![T : state]: (~ ((![S : state]: (S = T)))))))). % single_stateE
thf(fact_9_triple_Oinduct, axiom,
    ((![P : hoare_958474565_state > $o, Triple : hoare_958474565_state]: ((![X1a : state > state > $o, X2a : com, X3a : state > state > $o]: (P @ (hoare_1659279548_state @ X1a @ X2a @ X3a))) => (P @ Triple))))). % triple.induct
thf(fact_10_derivs__insertD, axiom,
    ((![G : set_Ho840737317_state, T2 : hoare_958474565_state, Ts : set_Ho840737317_state]: ((hoare_604442164_state @ G @ (insert776267541_state @ T2 @ Ts)) => ((hoare_604442164_state @ G @ (insert776267541_state @ T2 @ bot_bo105666705_state)) & (hoare_604442164_state @ G @ Ts)))))). % derivs_insertD
thf(fact_11_triple_Oexhaust, axiom,
    ((![Y4 : hoare_958474565_state]: (~ ((![X12 : state > state > $o, X22 : com, X32 : state > state > $o]: (~ ((Y4 = (hoare_1659279548_state @ X12 @ X22 @ X32)))))))))). % triple.exhaust
thf(fact_12_cut, axiom,
    ((![G2 : set_Ho840737317_state, Ts : set_Ho840737317_state, G : set_Ho840737317_state]: ((hoare_604442164_state @ G2 @ Ts) => ((hoare_604442164_state @ G @ G2) => (hoare_604442164_state @ G @ Ts)))))). % cut
thf(fact_13_empty, axiom,
    ((![G : set_Ho840737317_state]: (hoare_604442164_state @ G @ bot_bo105666705_state)))). % empty
thf(fact_14_conseq, axiom,
    ((![P : state > state > $o, G : set_Ho840737317_state, C : com, Q : state > state > $o]: ((![Z : state, S : state]: ((P @ Z @ S) => (?[P3 : state > state > $o, Q3 : state > state > $o]: ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P3 @ C @ Q3) @ bot_bo105666705_state)) & (![S3 : state]: ((![Z4 : state]: ((P3 @ Z4 @ S) => (Q3 @ Z4 @ S3))) => (Q @ Z @ S3))))))) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ C @ Q) @ bot_bo105666705_state)))))). % conseq
thf(fact_15_hoare__derivs_Oinsert, axiom,
    ((![G : set_Ho840737317_state, T2 : hoare_958474565_state, Ts : set_Ho840737317_state]: ((hoare_604442164_state @ G @ (insert776267541_state @ T2 @ bot_bo105666705_state)) => ((hoare_604442164_state @ G @ Ts) => (hoare_604442164_state @ G @ (insert776267541_state @ T2 @ Ts))))))). % hoare_derivs.insert
thf(fact_16_state__not__singleton__def, axiom,
    ((hoare_405891322gleton = (?[S4 : state]: (?[T3 : state]: (~ ((S4 = T3)))))))). % state_not_singleton_def
thf(fact_17_singleton__conv, axiom,
    ((![A : hoare_958474565_state]: ((collec305460656_state @ (^[X : hoare_958474565_state]: (X = A))) = (insert776267541_state @ A @ bot_bo105666705_state))))). % singleton_conv
thf(fact_18_singleton__conv2, axiom,
    ((![A : hoare_958474565_state]: ((collec305460656_state @ ((^[Y : hoare_958474565_state]: (^[Z3 : hoare_958474565_state]: (Y = Z3))) @ A)) = (insert776267541_state @ A @ bot_bo105666705_state))))). % singleton_conv2
thf(fact_19_singletonI, axiom,
    ((![A : hoare_958474565_state]: (member109514606_state @ A @ (insert776267541_state @ A @ bot_bo105666705_state))))). % singletonI
thf(fact_20_insertCI, axiom,
    ((![A : hoare_958474565_state, B : set_Ho840737317_state, B2 : hoare_958474565_state]: (((~ ((member109514606_state @ A @ B))) => (A = B2)) => (member109514606_state @ A @ (insert776267541_state @ B2 @ B)))))). % insertCI
thf(fact_21_insert__iff, axiom,
    ((![A : hoare_958474565_state, B2 : hoare_958474565_state, A2 : set_Ho840737317_state]: ((member109514606_state @ A @ (insert776267541_state @ B2 @ A2)) = (((A = B2)) | ((member109514606_state @ A @ A2))))))). % insert_iff
thf(fact_22_insert__absorb2, axiom,
    ((![X4 : hoare_958474565_state, A2 : set_Ho840737317_state]: ((insert776267541_state @ X4 @ (insert776267541_state @ X4 @ A2)) = (insert776267541_state @ X4 @ A2))))). % insert_absorb2
thf(fact_23_empty__iff, axiom,
    ((![C : hoare_958474565_state]: (~ ((member109514606_state @ C @ bot_bo105666705_state)))))). % empty_iff
thf(fact_24_all__not__in__conv, axiom,
    ((![A2 : set_Ho840737317_state]: ((![X : hoare_958474565_state]: (~ ((member109514606_state @ X @ A2)))) = (A2 = bot_bo105666705_state))))). % all_not_in_conv
thf(fact_25_Collect__empty__eq, axiom,
    ((![P : hoare_958474565_state > $o]: (((collec305460656_state @ P) = bot_bo105666705_state) = (![X : hoare_958474565_state]: (~ ((P @ X)))))))). % Collect_empty_eq
thf(fact_26_empty__Collect__eq, axiom,
    ((![P : hoare_958474565_state > $o]: ((bot_bo105666705_state = (collec305460656_state @ P)) = (![X : hoare_958474565_state]: (~ ((P @ X)))))))). % empty_Collect_eq
thf(fact_27_Collect__conv__if, axiom,
    ((![P : hoare_958474565_state > $o, A : hoare_958474565_state]: (((P @ A) => ((collec305460656_state @ (^[X : hoare_958474565_state]: (((X = A)) & ((P @ X))))) = (insert776267541_state @ A @ bot_bo105666705_state))) & ((~ ((P @ A))) => ((collec305460656_state @ (^[X : hoare_958474565_state]: (((X = A)) & ((P @ X))))) = bot_bo105666705_state)))))). % Collect_conv_if
thf(fact_28_bot__set__def, axiom,
    ((bot_bo105666705_state = (collec305460656_state @ bot_bo1428770700tate_o)))). % bot_set_def
thf(fact_29_ex__in__conv, axiom,
    ((![A2 : set_Ho840737317_state]: ((?[X : hoare_958474565_state]: (member109514606_state @ X @ A2)) = (~ ((A2 = bot_bo105666705_state))))))). % ex_in_conv
thf(fact_30_equals0I, axiom,
    ((![A2 : set_Ho840737317_state]: ((![Y5 : hoare_958474565_state]: (~ ((member109514606_state @ Y5 @ A2)))) => (A2 = bot_bo105666705_state))))). % equals0I
thf(fact_31_equals0D, axiom,
    ((![A2 : set_Ho840737317_state, A : hoare_958474565_state]: ((A2 = bot_bo105666705_state) => (~ ((member109514606_state @ A @ A2))))))). % equals0D
thf(fact_32_emptyE, axiom,
    ((![A : hoare_958474565_state]: (~ ((member109514606_state @ A @ bot_bo105666705_state)))))). % emptyE
thf(fact_33_mk__disjoint__insert, axiom,
    ((![A : hoare_958474565_state, A2 : set_Ho840737317_state]: ((member109514606_state @ A @ A2) => (?[B3 : set_Ho840737317_state]: ((A2 = (insert776267541_state @ A @ B3)) & (~ ((member109514606_state @ A @ B3))))))))). % mk_disjoint_insert
thf(fact_34_insert__commute, axiom,
    ((![X4 : hoare_958474565_state, Y4 : hoare_958474565_state, A2 : set_Ho840737317_state]: ((insert776267541_state @ X4 @ (insert776267541_state @ Y4 @ A2)) = (insert776267541_state @ Y4 @ (insert776267541_state @ X4 @ A2)))))). % insert_commute
thf(fact_35_insert__eq__iff, axiom,
    ((![A : hoare_958474565_state, A2 : set_Ho840737317_state, B2 : hoare_958474565_state, B : set_Ho840737317_state]: ((~ ((member109514606_state @ A @ A2))) => ((~ ((member109514606_state @ B2 @ B))) => (((insert776267541_state @ A @ A2) = (insert776267541_state @ B2 @ B)) = (((((A = B2)) => ((A2 = B)))) & ((((~ ((A = B2)))) => ((?[C4 : set_Ho840737317_state]: (((A2 = (insert776267541_state @ B2 @ C4))) & ((((~ ((member109514606_state @ B2 @ C4)))) & ((((B = (insert776267541_state @ A @ C4))) & ((~ ((member109514606_state @ A @ C4)))))))))))))))))))). % insert_eq_iff
thf(fact_36_insert__absorb, axiom,
    ((![A : hoare_958474565_state, A2 : set_Ho840737317_state]: ((member109514606_state @ A @ A2) => ((insert776267541_state @ A @ A2) = A2))))). % insert_absorb
thf(fact_37_insert__ident, axiom,
    ((![X4 : hoare_958474565_state, A2 : set_Ho840737317_state, B : set_Ho840737317_state]: ((~ ((member109514606_state @ X4 @ A2))) => ((~ ((member109514606_state @ X4 @ B))) => (((insert776267541_state @ X4 @ A2) = (insert776267541_state @ X4 @ B)) = (A2 = B))))))). % insert_ident
thf(fact_38_Set_Oset__insert, axiom,
    ((![X4 : hoare_958474565_state, A2 : set_Ho840737317_state]: ((member109514606_state @ X4 @ A2) => (~ ((![B3 : set_Ho840737317_state]: ((A2 = (insert776267541_state @ X4 @ B3)) => (member109514606_state @ X4 @ B3))))))))). % Set.set_insert
thf(fact_39_insertI2, axiom,
    ((![A : hoare_958474565_state, B : set_Ho840737317_state, B2 : hoare_958474565_state]: ((member109514606_state @ A @ B) => (member109514606_state @ A @ (insert776267541_state @ B2 @ B)))))). % insertI2
thf(fact_40_insertI1, axiom,
    ((![A : hoare_958474565_state, B : set_Ho840737317_state]: (member109514606_state @ A @ (insert776267541_state @ A @ B))))). % insertI1
thf(fact_41_insertE, axiom,
    ((![A : hoare_958474565_state, B2 : hoare_958474565_state, A2 : set_Ho840737317_state]: ((member109514606_state @ A @ (insert776267541_state @ B2 @ A2)) => ((~ ((A = B2))) => (member109514606_state @ A @ A2)))))). % insertE
thf(fact_42_empty__def, axiom,
    ((bot_bo105666705_state = (collec305460656_state @ (^[X : hoare_958474565_state]: $false))))). % empty_def
thf(fact_43_insert__Collect, axiom,
    ((![A : hoare_958474565_state, P : hoare_958474565_state > $o]: ((insert776267541_state @ A @ (collec305460656_state @ P)) = (collec305460656_state @ (^[U : hoare_958474565_state]: (((~ ((U = A)))) => ((P @ U))))))))). % insert_Collect
thf(fact_44_insert__compr, axiom,
    ((insert776267541_state = (^[A3 : hoare_958474565_state]: (^[B4 : set_Ho840737317_state]: (collec305460656_state @ (^[X : hoare_958474565_state]: (((X = A3)) | ((member109514606_state @ X @ B4)))))))))). % insert_compr
thf(fact_45_singleton__inject, axiom,
    ((![A : hoare_958474565_state, B2 : hoare_958474565_state]: (((insert776267541_state @ A @ bot_bo105666705_state) = (insert776267541_state @ B2 @ bot_bo105666705_state)) => (A = B2))))). % singleton_inject
thf(fact_46_insert__not__empty, axiom,
    ((![A : hoare_958474565_state, A2 : set_Ho840737317_state]: (~ (((insert776267541_state @ A @ A2) = bot_bo105666705_state)))))). % insert_not_empty
thf(fact_47_doubleton__eq__iff, axiom,
    ((![A : hoare_958474565_state, B2 : hoare_958474565_state, C : hoare_958474565_state, D : hoare_958474565_state]: (((insert776267541_state @ A @ (insert776267541_state @ B2 @ bot_bo105666705_state)) = (insert776267541_state @ C @ (insert776267541_state @ D @ bot_bo105666705_state))) = (((((A = C)) & ((B2 = D)))) | ((((A = D)) & ((B2 = C))))))))). % doubleton_eq_iff
thf(fact_48_singleton__iff, axiom,
    ((![B2 : hoare_958474565_state, A : hoare_958474565_state]: ((member109514606_state @ B2 @ (insert776267541_state @ A @ bot_bo105666705_state)) = (B2 = A))))). % singleton_iff
thf(fact_49_singletonD, axiom,
    ((![B2 : hoare_958474565_state, A : hoare_958474565_state]: ((member109514606_state @ B2 @ (insert776267541_state @ A @ bot_bo105666705_state)) => (B2 = A))))). % singletonD
thf(fact_50_Collect__conv__if2, axiom,
    ((![P : hoare_958474565_state > $o, A : hoare_958474565_state]: (((P @ A) => ((collec305460656_state @ (^[X : hoare_958474565_state]: (((A = X)) & ((P @ X))))) = (insert776267541_state @ A @ bot_bo105666705_state))) & ((~ ((P @ A))) => ((collec305460656_state @ (^[X : hoare_958474565_state]: (((A = X)) & ((P @ X))))) = bot_bo105666705_state)))))). % Collect_conv_if2
thf(fact_51_the__elem__eq, axiom,
    ((![X4 : hoare_958474565_state]: ((the_el1300254266_state @ (insert776267541_state @ X4 @ bot_bo105666705_state)) = X4)))). % the_elem_eq
thf(fact_52_is__singletonI, axiom,
    ((![X4 : hoare_958474565_state]: (is_sin536631353_state @ (insert776267541_state @ X4 @ bot_bo105666705_state))))). % is_singletonI
thf(fact_53_hoare__derivs_OSkip, axiom,
    ((![G : set_Ho840737317_state, P : state > state > $o]: (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ skip @ P) @ bot_bo105666705_state))))). % hoare_derivs.Skip
thf(fact_54_Comp, axiom,
    ((![G : set_Ho840737317_state, P : state > state > $o, C : com, Q : state > state > $o, D : com, R : state > state > $o]: ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ C @ Q) @ bot_bo105666705_state)) => ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ Q @ D @ R) @ bot_bo105666705_state)) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ (semi @ C @ D) @ R) @ bot_bo105666705_state))))))). % Comp
thf(fact_55_LoopF, axiom,
    ((![G : set_Ho840737317_state, P : state > state > $o, B2 : state > $o, C : com]: (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ (^[Z5 : state]: (^[S4 : state]: (((P @ Z5 @ S4)) & ((~ ((B2 @ S4))))))) @ (while @ B2 @ C) @ P) @ bot_bo105666705_state))))). % LoopF
thf(fact_56_Set_Ois__empty__def, axiom,
    ((is_emp266830871_state = (^[A4 : set_Ho840737317_state]: (A4 = bot_bo105666705_state))))). % Set.is_empty_def
thf(fact_57_is__singleton__def, axiom,
    ((is_sin536631353_state = (^[A4 : set_Ho840737317_state]: (?[X : hoare_958474565_state]: (A4 = (insert776267541_state @ X @ bot_bo105666705_state))))))). % is_singleton_def
thf(fact_58_is__singletonE, axiom,
    ((![A2 : set_Ho840737317_state]: ((is_sin536631353_state @ A2) => (~ ((![X5 : hoare_958474565_state]: (~ ((A2 = (insert776267541_state @ X5 @ bot_bo105666705_state))))))))))). % is_singletonE
thf(fact_59_is__singleton__the__elem, axiom,
    ((is_sin536631353_state = (^[A4 : set_Ho840737317_state]: (A4 = (insert776267541_state @ (the_el1300254266_state @ A4) @ bot_bo105666705_state)))))). % is_singleton_the_elem
thf(fact_60_is__singletonI_H, axiom,
    ((![A2 : set_Ho840737317_state]: ((~ ((A2 = bot_bo105666705_state))) => ((![X5 : hoare_958474565_state, Y5 : hoare_958474565_state]: ((member109514606_state @ X5 @ A2) => ((member109514606_state @ Y5 @ A2) => (X5 = Y5)))) => (is_sin536631353_state @ A2)))))). % is_singletonI'
thf(fact_61_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_62_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_63_com_Odistinct_I5_J, axiom,
    ((![X41 : com, X42 : com]: (~ ((skip = (semi @ X41 @ X42))))))). % com.distinct(5)
thf(fact_64_com_Odistinct_I9_J, axiom,
    ((![X61 : state > $o, X62 : com]: (~ ((skip = (while @ X61 @ X62))))))). % com.distinct(9)
thf(fact_65_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_66_evalc_OSkip, axiom,
    ((![S5 : state]: (evalc @ skip @ S5 @ S5)))). % evalc.Skip
thf(fact_67_evalc__elim__cases_I1_J, axiom,
    ((![S5 : state, T2 : state]: ((evalc @ skip @ S5 @ T2) => (T2 = S5))))). % evalc_elim_cases(1)
thf(fact_68_evalc_OSemi, axiom,
    ((![C0 : com, S02 : state, S12 : state, C1 : com, S22 : state]: ((evalc @ C0 @ S02 @ S12) => ((evalc @ C1 @ S12 @ S22) => (evalc @ (semi @ C0 @ C1) @ S02 @ S22)))))). % evalc.Semi
thf(fact_69_evalc__elim__cases_I4_J, axiom,
    ((![C1 : com, C22 : com, S5 : state, T2 : state]: ((evalc @ (semi @ C1 @ C22) @ S5 @ T2) => (~ ((![S13 : state]: ((evalc @ C1 @ S5 @ S13) => (~ ((evalc @ C22 @ S13 @ T2))))))))))). % evalc_elim_cases(4)
thf(fact_70_com__det, axiom,
    ((![C : com, S5 : state, T2 : state, U2 : state]: ((evalc @ C @ S5 @ T2) => ((evalc @ C @ S5 @ U2) => (U2 = T2)))))). % com_det
thf(fact_71_evalc_OWhileTrue, axiom,
    ((![B2 : state > $o, S02 : state, C : com, S12 : state, S22 : state]: ((B2 @ S02) => ((evalc @ C @ S02 @ S12) => ((evalc @ (while @ B2 @ C) @ S12 @ S22) => (evalc @ (while @ B2 @ C) @ S02 @ S22))))))). % evalc.WhileTrue
thf(fact_72_evalc_OWhileFalse, axiom,
    ((![B2 : state > $o, S5 : state, C : com]: ((~ ((B2 @ S5))) => (evalc @ (while @ B2 @ C) @ S5 @ S5))))). % evalc.WhileFalse
thf(fact_73_evalc__WHILE__case, axiom,
    ((![B2 : state > $o, C : com, S5 : state, T2 : state]: ((evalc @ (while @ B2 @ C) @ S5 @ T2) => (((T2 = S5) => (B2 @ S5)) => (~ (((B2 @ S5) => (![S13 : state]: ((evalc @ C @ S5 @ S13) => (~ ((evalc @ (while @ B2 @ C) @ S13 @ T2))))))))))))). % evalc_WHILE_case
thf(fact_74_bot__empty__eq, axiom,
    ((bot_bo1428770700tate_o = (^[X : hoare_958474565_state]: (member109514606_state @ X @ bot_bo105666705_state))))). % bot_empty_eq
thf(fact_75_Collect__empty__eq__bot, axiom,
    ((![P : hoare_958474565_state > $o]: (((collec305460656_state @ P) = bot_bo105666705_state) = (P = bot_bo1428770700tate_o))))). % Collect_empty_eq_bot
thf(fact_76_the__elem__def, axiom,
    ((the_el1300254266_state = (^[X6 : set_Ho840737317_state]: (the_Ho1908033100_state @ (^[X : hoare_958474565_state]: (X6 = (insert776267541_state @ X @ bot_bo105666705_state)))))))). % the_elem_def
thf(fact_77_Loop, axiom,
    ((![G : set_Ho840737317_state, P : state > state > $o, B2 : state > $o, C : com]: ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ (hoare_1541087502_state @ P @ B2) @ C @ P) @ bot_bo105666705_state)) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ (while @ B2 @ C) @ (hoare_1541087502_state @ P @ (comp_o_o_state @ (~) @ B2))) @ bot_bo105666705_state)))))). % Loop
thf(fact_78_Loop__sound__lemma, axiom,
    ((![G : set_Ho840737317_state, P : state > state > $o, B2 : state > $o, C : com]: ((hoare_318887606_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ (hoare_1541087502_state @ P @ B2) @ C @ P) @ bot_bo105666705_state)) => (hoare_318887606_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ (while @ B2 @ C) @ (hoare_1541087502_state @ P @ (comp_o_o_state @ (~) @ B2))) @ bot_bo105666705_state)))))). % Loop_sound_lemma
thf(fact_79_hoare__derivs_OIf, axiom,
    ((![G : set_Ho840737317_state, P : state > state > $o, B2 : state > $o, C : com, Q : state > state > $o, D : com]: ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ (hoare_1541087502_state @ P @ B2) @ C @ Q) @ bot_bo105666705_state)) => ((hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ (hoare_1541087502_state @ P @ (comp_o_o_state @ (~) @ B2)) @ D @ Q) @ bot_bo105666705_state)) => (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ P @ (cond @ B2 @ C @ D) @ Q) @ bot_bo105666705_state))))))). % hoare_derivs.If
thf(fact_80_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_81_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_82_com_Odistinct_I7_J, axiom,
    ((![X51 : state > $o, X52 : com, X53 : com]: (~ ((skip = (cond @ X51 @ X52 @ X53))))))). % com.distinct(7)
thf(fact_83_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_84_evalc__elim__cases_I5_J, axiom,
    ((![B2 : state > $o, C1 : com, C22 : com, S5 : state, T2 : state]: ((evalc @ (cond @ B2 @ C1 @ C22) @ S5 @ T2) => (((B2 @ S5) => (~ ((evalc @ C1 @ S5 @ T2)))) => (~ (((~ ((B2 @ S5))) => (~ ((evalc @ C22 @ S5 @ T2))))))))))). % evalc_elim_cases(5)
thf(fact_85_evalc_OIfTrue, axiom,
    ((![B2 : state > $o, S5 : state, C0 : com, S12 : state, C1 : com]: ((B2 @ S5) => ((evalc @ C0 @ S5 @ S12) => (evalc @ (cond @ B2 @ C0 @ C1) @ S5 @ S12)))))). % evalc.IfTrue
thf(fact_86_evalc_OIfFalse, axiom,
    ((![B2 : state > $o, S5 : state, C1 : com, S12 : state, C0 : com]: ((~ ((B2 @ S5))) => ((evalc @ C1 @ S5 @ S12) => (evalc @ (cond @ B2 @ C0 @ C1) @ S5 @ S12)))))). % evalc.IfFalse
thf(fact_87_hoare__sound, axiom,
    ((![G : set_Ho840737317_state, Ts : set_Ho840737317_state]: ((hoare_604442164_state @ G @ Ts) => (hoare_318887606_state @ G @ Ts))))). % hoare_sound
thf(fact_88_Ass, axiom,
    ((![G : set_Ho840737317_state, P : state > state > $o, X7 : vname, A : state > nat]: (hoare_604442164_state @ G @ (insert776267541_state @ (hoare_1659279548_state @ (^[Z5 : state]: (^[S4 : state]: (P @ Z5 @ (update @ S4 @ X7 @ (A @ S4))))) @ (ass @ X7 @ A) @ P) @ bot_bo105666705_state))))). % Ass
thf(fact_89_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_90_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_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_evalc__elim__cases_I2_J, axiom,
    ((![X7 : vname, A : state > nat, S5 : state, T2 : state]: ((evalc @ (ass @ X7 @ A) @ S5 @ T2) => (T2 = (update @ S5 @ X7 @ (A @ S5))))))). % evalc_elim_cases(2)
thf(fact_94_evalc_OAssign, axiom,
    ((![X7 : vname, A : state > nat, S5 : state]: (evalc @ (ass @ X7 @ A) @ S5 @ (update @ S5 @ X7 @ (A @ S5)))))). % evalc.Assign
thf(fact_95_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_96_pairwise__singleton, axiom,
    ((![P : hoare_958474565_state > hoare_958474565_state > $o, A2 : hoare_958474565_state]: (pairwi17519280_state @ P @ (insert776267541_state @ A2 @ bot_bo105666705_state))))). % pairwise_singleton
thf(fact_97_evaln_OAssign, axiom,
    ((![X7 : vname, A : state > nat, S5 : state, N : nat]: (evaln @ (ass @ X7 @ A) @ S5 @ N @ (update @ S5 @ X7 @ (A @ S5)))))). % evaln.Assign
thf(fact_98_eval__eq, axiom,
    ((evalc = (^[C2 : com]: (^[S4 : state]: (^[T3 : state]: (?[N2 : nat]: (evaln @ C2 @ S4 @ N2 @ T3)))))))). % eval_eq
thf(fact_99_evalc__evaln, axiom,
    ((![C : com, S5 : state, T2 : state]: ((evalc @ C @ S5 @ T2) => (?[N3 : nat]: (evaln @ C @ S5 @ N3 @ T2)))))). % evalc_evaln
thf(fact_100_evaln__evalc, axiom,
    ((![C : com, S5 : state, N : nat, T2 : state]: ((evaln @ C @ S5 @ N @ T2) => (evalc @ C @ S5 @ T2))))). % evaln_evalc
thf(fact_101_evaln__WHILE__case, axiom,
    ((![B2 : state > $o, C : com, S5 : state, N : nat, T2 : state]: ((evaln @ (while @ B2 @ C) @ S5 @ N @ T2) => (((T2 = S5) => (B2 @ S5)) => (~ (((B2 @ S5) => (![S13 : state]: ((evaln @ C @ S5 @ N @ S13) => (~ ((evaln @ (while @ B2 @ C) @ S13 @ N @ T2))))))))))))). % evaln_WHILE_case
thf(fact_102_evaln_OWhileFalse, axiom,
    ((![B2 : state > $o, S5 : state, C : com, N : nat]: ((~ ((B2 @ S5))) => (evaln @ (while @ B2 @ C) @ S5 @ N @ S5))))). % evaln.WhileFalse
thf(fact_103_evaln_OWhileTrue, axiom,
    ((![B2 : state > $o, S02 : state, C : com, N : nat, S12 : state, S22 : state]: ((B2 @ S02) => ((evaln @ C @ S02 @ N @ S12) => ((evaln @ (while @ B2 @ C) @ S12 @ N @ S22) => (evaln @ (while @ B2 @ C) @ S02 @ N @ S22))))))). % evaln.WhileTrue
thf(fact_104_evaln_OSemi, axiom,
    ((![C0 : com, S02 : state, N : nat, S12 : state, C1 : com, S22 : state]: ((evaln @ C0 @ S02 @ N @ S12) => ((evaln @ C1 @ S12 @ N @ S22) => (evaln @ (semi @ C0 @ C1) @ S02 @ N @ S22)))))). % evaln.Semi
thf(fact_105_evaln__elim__cases_I4_J, axiom,
    ((![C1 : com, C22 : com, S5 : state, N : nat, T2 : state]: ((evaln @ (semi @ C1 @ C22) @ S5 @ N @ T2) => (~ ((![S13 : state]: ((evaln @ C1 @ S5 @ N @ S13) => (~ ((evaln @ C22 @ S13 @ N @ T2))))))))))). % evaln_elim_cases(4)
thf(fact_106_evaln_OSkip, axiom,
    ((![S5 : state, N : nat]: (evaln @ skip @ S5 @ N @ S5)))). % evaln.Skip
thf(fact_107_evaln__elim__cases_I1_J, axiom,
    ((![S5 : state, N : nat, T2 : state]: ((evaln @ skip @ S5 @ N @ T2) => (T2 = S5))))). % evaln_elim_cases(1)
thf(fact_108_pairwise__empty, axiom,
    ((![P : hoare_958474565_state > hoare_958474565_state > $o]: (pairwi17519280_state @ P @ bot_bo105666705_state)))). % pairwise_empty
thf(fact_109_evaln__max2, axiom,
    ((![C1 : com, S12 : state, N1 : nat, T1 : state, C22 : com, S22 : state, N22 : nat, T22 : state]: ((evaln @ C1 @ S12 @ N1 @ T1) => ((evaln @ C22 @ S22 @ N22 @ T22) => (?[N3 : nat]: ((evaln @ C1 @ S12 @ N3 @ T1) & (evaln @ C22 @ S22 @ N3 @ T22)))))))). % evaln_max2
thf(fact_110_pairwise__insert, axiom,
    ((![R2 : hoare_958474565_state > hoare_958474565_state > $o, X4 : hoare_958474565_state, S5 : set_Ho840737317_state]: ((pairwi17519280_state @ R2 @ (insert776267541_state @ X4 @ S5)) = (((![Y6 : hoare_958474565_state]: (((((member109514606_state @ Y6 @ S5)) & ((~ ((Y6 = X4)))))) => ((((R2 @ X4 @ Y6)) & ((R2 @ Y6 @ X4))))))) & ((pairwi17519280_state @ R2 @ S5))))))). % pairwise_insert
thf(fact_111_evaln_OIfFalse, axiom,
    ((![B2 : state > $o, S5 : state, C1 : com, N : nat, S12 : state, C0 : com]: ((~ ((B2 @ S5))) => ((evaln @ C1 @ S5 @ N @ S12) => (evaln @ (cond @ B2 @ C0 @ C1) @ S5 @ N @ S12)))))). % evaln.IfFalse
thf(fact_112_evaln_OIfTrue, axiom,
    ((![B2 : state > $o, S5 : state, C0 : com, N : nat, S12 : state, C1 : com]: ((B2 @ S5) => ((evaln @ C0 @ S5 @ N @ S12) => (evaln @ (cond @ B2 @ C0 @ C1) @ S5 @ N @ S12)))))). % evaln.IfTrue

% Conjectures (3)
thf(conj_0, hypothesis,
    (hoare_405891322gleton)).
thf(conj_1, hypothesis,
    ((hoare_604442164_state @ g @ (insert776267541_state @ (hoare_1659279548_state @ (^[Z5 : state]: (^[S0 : state]: (![S1 : state]: (((evalc @ c @ S0 @ S1)) => ((Z5 = S1)))))) @ c @ (^[Y : state]: (^[Z3 : state]: (Y = Z3)))) @ bot_bo105666705_state)))).
thf(conj_2, conjecture,
    ((hoare_604442164_state @ g @ (insert776267541_state @ (hoare_Mirabelle_MGT @ c) @ bot_bo105666705_state)))).
