% 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/TypeSafe/prob_164__5335670_1 ) ; }
% This file was generated by Isabelle (most likely Sledgehammer)
% 2020-12-16 14:19:49.785

% Could-be-implicit typings (9)
thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__List__Olist_It__String__Ochar_J_Mt__Product____Type__Oprod_It__List__Olist_It__String__Ochar_J_Mt__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_It__List__Olist_It__String__Ochar_J_Mt__Type__Oty_J_J_Mt__List__Olist_It__Product____Type__Oprod_It__List__Olist_It__String__Ochar_J_Mt__Product____Type__Oprod_It__List__Olist_It__Type__Oty_J_Mt__Product____Type__Oprod_It__Type__Oty_Mt__Product____Type__Oprod_It__List__Olist_It__List__Olist_It__String__Ochar_J_J_Mt__Expr__Oexp_It__List__Olist_It__String__Ochar_J_J_J_J_J_J_J_J_J_J_J, type,
    list_P1234162913t_char : $tType).
thf(ty_n_t__Product____Type__Oprod_I_062_It__Nat__Onat_Mt__Option__Ooption_It__Product____Type__Oprod_It__List__Olist_It__String__Ochar_J_M_062_It__Product____Type__Oprod_It__List__Olist_It__String__Ochar_J_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Value__Oval_J_J_J_J_J_M_062_It__List__Olist_It__String__Ochar_J_Mt__Option__Ooption_It__Value__Oval_J_J_J, type,
    produc515445032on_val : $tType).
thf(ty_n_t__Option__Ooption_It__Set__Oset_It__List__Olist_It__String__Ochar_J_J_J, type,
    option_set_list_char : $tType).
thf(ty_n_t__Expr__Oexp_It__List__Olist_It__String__Ochar_J_J, type,
    exp_list_char : $tType).
thf(ty_n_t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    set_list_char : $tType).
thf(ty_n_t__Option__Ooption_It__Value__Oval_J, type,
    option_val : $tType).
thf(ty_n_t__List__Olist_It__String__Ochar_J, type,
    list_char : $tType).
thf(ty_n_t__Value__Oval, type,
    val : $tType).
thf(ty_n_t__Expr__Obop, type,
    bop : $tType).

% Explicit typings (30)
thf(sy_c_BigStep_Oeval, type,
    eval : list_P1234162913t_char > exp_list_char > produc515445032on_val > exp_list_char > produc515445032on_val > $o).
thf(sy_c_DefAss_O_092_060D_062_001t__List__Olist_It__String__Ochar_J, type,
    d_list_char : exp_list_char > option_set_list_char > $o).
thf(sy_c_DefAss_Ohyper__subset_001t__List__Olist_It__String__Ochar_J, type,
    hyper_1448788648t_char : option_set_list_char > option_set_list_char > $o).
thf(sy_c_Expr_Oexp_OBinOp_001t__List__Olist_It__String__Ochar_J, type,
    binOp_list_char : exp_list_char > bop > exp_list_char > exp_list_char).
thf(sy_c_Expr_Oexp_OCond_001t__List__Olist_It__String__Ochar_J, type,
    cond_list_char : exp_list_char > exp_list_char > exp_list_char > exp_list_char).
thf(sy_c_Expr_Oexp_OSeq_001t__List__Olist_It__String__Ochar_J, type,
    seq_list_char : exp_list_char > exp_list_char > exp_list_char).
thf(sy_c_Expr_Oexp_OVal_001t__List__Olist_It__String__Ochar_J, type,
    val_list_char : val > exp_list_char).
thf(sy_c_Expr_Oexp_OWhile_001t__List__Olist_It__String__Ochar_J, type,
    while_list_char : exp_list_char > exp_list_char > exp_list_char).
thf(sy_c_Expr_Oexp_Othrow_001t__List__Olist_It__String__Ochar_J, type,
    throw_list_char : exp_list_char > exp_list_char).
thf(sy_c_Map_Odom_001t__List__Olist_It__String__Ochar_J_001t__Value__Oval, type,
    dom_list_char_val : (list_char > option_val) > set_list_char).
thf(sy_c_Map_Omap__add_001t__List__Olist_It__String__Ochar_J_001t__Value__Oval, type,
    map_ad1615113112ar_val : (list_char > option_val) > (list_char > option_val) > list_char > option_val).
thf(sy_c_Option_Ocombine__options_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    combin255359704t_char : (set_list_char > set_list_char > set_list_char) > option_set_list_char > option_set_list_char > option_set_list_char).
thf(sy_c_Option_Ois__none_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    is_non1429751099t_char : option_set_list_char > $o).
thf(sy_c_Option_Ooption_ONone_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    none_set_list_char : option_set_list_char).
thf(sy_c_Option_Ooption_ONone_001t__Value__Oval, type,
    none_val : option_val).
thf(sy_c_Option_Ooption_OSome_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    some_set_list_char : set_list_char > option_set_list_char).
thf(sy_c_Option_Ooption_OSome_001t__Value__Oval, type,
    some_val : val > option_val).
thf(sy_c_Option_Ooption_Ocase__option_001_Eo_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    case_o2113287396t_char : $o > (set_list_char > $o) > option_set_list_char > $o).
thf(sy_c_Option_Ooption_Ocase__option_001t__Option__Ooption_It__Set__Oset_It__List__Olist_It__String__Ochar_J_J_J_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    case_o1356160523t_char : option_set_list_char > (set_list_char > option_set_list_char) > option_set_list_char > option_set_list_char).
thf(sy_c_Option_Ooption_Omap__option_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    map_op251503035t_char : (set_list_char > set_list_char) > option_set_list_char > option_set_list_char).
thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    bot_bo1263509675t_char : set_list_char).
thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J, type,
    top_to748628679t_char : set_list_char).
thf(sy_c_Set_OCollect_001t__List__Olist_It__String__Ochar_J, type,
    collect_list_char : (list_char > $o) > set_list_char).
thf(sy_c_SmallStep_Oredp, type,
    redp : list_P1234162913t_char > exp_list_char > produc515445032on_val > exp_list_char > produc515445032on_val > $o).
thf(sy_c_Value_Oval_OBool, type,
    bool : $o > val).
thf(sy_c_Value_Oval_OUnit, type,
    unit : val).
thf(sy_c_member_001t__List__Olist_It__String__Ochar_J, type,
    member_list_char : list_char > set_list_char > $o).
thf(sy_v_b______, type,
    b : exp_list_char).
thf(sy_v_ba______, type,
    ba : list_char > option_val).
thf(sy_v_c______, type,
    c : exp_list_char).

% Relevant facts (85)
thf(fact_0_RedWhile_Oprems, axiom,
    ((d_list_char @ (while_list_char @ b @ c) @ (some_set_list_char @ (dom_list_char_val @ ba))))). % RedWhile.prems
thf(fact_1_exp_Oinject_I13_J, axiom,
    ((![X131 : exp_list_char, X132 : exp_list_char, Y131 : exp_list_char, Y132 : exp_list_char]: (((while_list_char @ X131 @ X132) = (while_list_char @ Y131 @ Y132)) = (((X131 = Y131)) & ((X132 = Y132))))))). % exp.inject(13)
thf(fact_2_exp_Oinject_I12_J, axiom,
    ((![X121 : exp_list_char, X122 : exp_list_char, X123 : exp_list_char, Y121 : exp_list_char, Y122 : exp_list_char, Y123 : exp_list_char]: (((cond_list_char @ X121 @ X122 @ X123) = (cond_list_char @ Y121 @ Y122 @ Y123)) = (((X121 = Y121)) & ((((X122 = Y122)) & ((X123 = Y123))))))))). % exp.inject(12)
thf(fact_3_exp_Oinject_I11_J, axiom,
    ((![X111 : exp_list_char, X112 : exp_list_char, Y111 : exp_list_char, Y112 : exp_list_char]: (((seq_list_char @ X111 @ X112) = (seq_list_char @ Y111 @ Y112)) = (((X111 = Y111)) & ((X112 = Y112))))))). % exp.inject(11)
thf(fact_4_exp_Oinject_I3_J, axiom,
    ((![X3 : val, Y3 : val]: (((val_list_char @ X3) = (val_list_char @ Y3)) = (X3 = Y3))))). % exp.inject(3)
thf(fact_5_option_Oinject, axiom,
    ((![X2 : set_list_char, Y2 : set_list_char]: (((some_set_list_char @ X2) = (some_set_list_char @ Y2)) = (X2 = Y2))))). % option.inject
thf(fact_6_exp_Odistinct_I199_J, axiom,
    ((![X121 : exp_list_char, X122 : exp_list_char, X123 : exp_list_char, X131 : exp_list_char, X132 : exp_list_char]: (~ (((cond_list_char @ X121 @ X122 @ X123) = (while_list_char @ X131 @ X132))))))). % exp.distinct(199)
thf(fact_7_exp_Odistinct_I193_J, axiom,
    ((![X111 : exp_list_char, X112 : exp_list_char, X131 : exp_list_char, X132 : exp_list_char]: (~ (((seq_list_char @ X111 @ X112) = (while_list_char @ X131 @ X132))))))). % exp.distinct(193)
thf(fact_8_exp_Odistinct_I191_J, axiom,
    ((![X111 : exp_list_char, X112 : exp_list_char, X121 : exp_list_char, X122 : exp_list_char, X123 : exp_list_char]: (~ (((seq_list_char @ X111 @ X112) = (cond_list_char @ X121 @ X122 @ X123))))))). % exp.distinct(191)
thf(fact_9__092_060D_062_Osimps_I3_J, axiom,
    ((![V : val, A : option_set_list_char]: (d_list_char @ (val_list_char @ V) @ A)))). % \<D>.simps(3)
thf(fact_10_domD, axiom,
    ((![A2 : list_char, M : list_char > option_val]: ((member_list_char @ A2 @ (dom_list_char_val @ M)) => (?[B : val]: ((M @ A2) = (some_val @ B))))))). % domD
thf(fact_11_domI, axiom,
    ((![M : list_char > option_val, A2 : list_char, B2 : val]: (((M @ A2) = (some_val @ B2)) => (member_list_char @ A2 @ (dom_list_char_val @ M)))))). % domI
thf(fact_12_exp_Odistinct_I73_J, axiom,
    ((![X3 : val, X131 : exp_list_char, X132 : exp_list_char]: (~ (((val_list_char @ X3) = (while_list_char @ X131 @ X132))))))). % exp.distinct(73)
thf(fact_13_exp_Odistinct_I69_J, axiom,
    ((![X3 : val, X111 : exp_list_char, X112 : exp_list_char]: (~ (((val_list_char @ X3) = (seq_list_char @ X111 @ X112))))))). % exp.distinct(69)
thf(fact_14_exp_Odistinct_I71_J, axiom,
    ((![X3 : val, X121 : exp_list_char, X122 : exp_list_char, X123 : exp_list_char]: (~ (((val_list_char @ X3) = (cond_list_char @ X121 @ X122 @ X123))))))). % exp.distinct(71)
thf(fact_15_redp__redsp_ORedWhile, axiom,
    ((![P : list_P1234162913t_char, B2 : exp_list_char, C : exp_list_char, S : produc515445032on_val]: (redp @ P @ (while_list_char @ B2 @ C) @ S @ (cond_list_char @ B2 @ (seq_list_char @ C @ (while_list_char @ B2 @ C)) @ (val_list_char @ unit)) @ S)))). % redp_redsp.RedWhile
thf(fact_16_unfold__while, axiom,
    ((![P : list_P1234162913t_char, B2 : exp_list_char, C : exp_list_char, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val]: ((eval @ P @ (while_list_char @ B2 @ C) @ S @ E @ S2) = (eval @ P @ (cond_list_char @ B2 @ (seq_list_char @ C @ (while_list_char @ B2 @ C)) @ (val_list_char @ unit)) @ S @ E @ S2))))). % unfold_while
thf(fact_17_dom__const, axiom,
    ((![F : list_char > val]: ((dom_list_char_val @ (^[X : list_char]: (some_val @ (F @ X)))) = top_to748628679t_char)))). % dom_const
thf(fact_18_D__mono_H, axiom,
    ((![E2 : exp_list_char, A : option_set_list_char, A3 : option_set_list_char]: ((d_list_char @ E2 @ A) => ((hyper_1448788648t_char @ A @ A3) => (d_list_char @ E2 @ A3)))))). % D_mono'
thf(fact_19_D__mono, axiom,
    ((![A : option_set_list_char, A3 : option_set_list_char, E2 : exp_list_char]: ((hyper_1448788648t_char @ A @ A3) => ((d_list_char @ E2 @ A) => (d_list_char @ E2 @ A3)))))). % D_mono
thf(fact_20_combine__options__simps_I3_J, axiom,
    ((![F : set_list_char > set_list_char > set_list_char, A2 : set_list_char, B2 : set_list_char]: ((combin255359704t_char @ F @ (some_set_list_char @ A2) @ (some_set_list_char @ B2)) = (some_set_list_char @ (F @ A2 @ B2)))))). % combine_options_simps(3)
thf(fact_21_is__none__code_I2_J, axiom,
    ((![X4 : set_list_char]: (~ ((is_non1429751099t_char @ (some_set_list_char @ X4))))))). % is_none_code(2)
thf(fact_22_redp__redsp_OSeqRed, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val, E_2 : exp_list_char]: ((redp @ P @ E2 @ S @ E @ S2) => (redp @ P @ (seq_list_char @ E2 @ E_2) @ S @ (seq_list_char @ E @ E_2) @ S2))))). % redp_redsp.SeqRed
thf(fact_23_redp__redsp_OCondRed, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val, E_1 : exp_list_char, E_2 : exp_list_char]: ((redp @ P @ E2 @ S @ E @ S2) => (redp @ P @ (cond_list_char @ E2 @ E_1 @ E_2) @ S @ (cond_list_char @ E @ E_1 @ E_2) @ S2))))). % redp_redsp.CondRed
thf(fact_24_redp__redsp_ORedSeq, axiom,
    ((![P : list_P1234162913t_char, V : val, E_2 : exp_list_char, S : produc515445032on_val]: (redp @ P @ (seq_list_char @ (val_list_char @ V) @ E_2) @ S @ E_2 @ S)))). % redp_redsp.RedSeq
thf(fact_25_is__none__simps_I2_J, axiom,
    ((![X4 : set_list_char]: (~ ((is_non1429751099t_char @ (some_set_list_char @ X4))))))). % is_none_simps(2)
thf(fact_26_Seq, axiom,
    ((![P : list_P1234162913t_char, E_0 : exp_list_char, S_0 : produc515445032on_val, V : val, S_1 : produc515445032on_val, E_1 : exp_list_char, E_2 : exp_list_char, S_2 : produc515445032on_val]: ((eval @ P @ E_0 @ S_0 @ (val_list_char @ V) @ S_1) => ((eval @ P @ E_1 @ S_1 @ E_2 @ S_2) => (eval @ P @ (seq_list_char @ E_0 @ E_1) @ S_0 @ E_2 @ S_2)))))). % Seq
thf(fact_27_eval__cases_I2_J, axiom,
    ((![P : list_P1234162913t_char, V : val, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val]: ((eval @ P @ (val_list_char @ V) @ S @ E @ S2) => (~ (((E = (val_list_char @ V)) => (~ ((S2 = S)))))))))). % eval_cases(2)
thf(fact_28_Val, axiom,
    ((![P : list_P1234162913t_char, V : val, S : produc515445032on_val]: (eval @ P @ (val_list_char @ V) @ S @ (val_list_char @ V) @ S)))). % Val
thf(fact_29_redp__redsp_ORedCondF, axiom,
    ((![P : list_P1234162913t_char, E_1 : exp_list_char, E_2 : exp_list_char, S : produc515445032on_val]: (redp @ P @ (cond_list_char @ (val_list_char @ (bool @ $false)) @ E_1 @ E_2) @ S @ E_2 @ S)))). % redp_redsp.RedCondF
thf(fact_30_CondT, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S_0 : produc515445032on_val, S_1 : produc515445032on_val, E_1 : exp_list_char, E : exp_list_char, S_2 : produc515445032on_val, E_2 : exp_list_char]: ((eval @ P @ E2 @ S_0 @ (val_list_char @ (bool @ $true)) @ S_1) => ((eval @ P @ E_1 @ S_1 @ E @ S_2) => (eval @ P @ (cond_list_char @ E2 @ E_1 @ E_2) @ S_0 @ E @ S_2)))))). % CondT
thf(fact_31_CondF, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S_0 : produc515445032on_val, S_1 : produc515445032on_val, E_2 : exp_list_char, E : exp_list_char, S_2 : produc515445032on_val, E_1 : exp_list_char]: ((eval @ P @ E2 @ S_0 @ (val_list_char @ (bool @ $false)) @ S_1) => ((eval @ P @ E_2 @ S_1 @ E @ S_2) => (eval @ P @ (cond_list_char @ E2 @ E_1 @ E_2) @ S_0 @ E @ S_2)))))). % CondF
thf(fact_32_WhileT, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S_0 : produc515445032on_val, S_1 : produc515445032on_val, C : exp_list_char, V_1 : val, S_2 : produc515445032on_val, E_3 : exp_list_char, S_3 : produc515445032on_val]: ((eval @ P @ E2 @ S_0 @ (val_list_char @ (bool @ $true)) @ S_1) => ((eval @ P @ C @ S_1 @ (val_list_char @ V_1) @ S_2) => ((eval @ P @ (while_list_char @ E2 @ C) @ S_2 @ E_3 @ S_3) => (eval @ P @ (while_list_char @ E2 @ C) @ S_0 @ E_3 @ S_3))))))). % WhileT
thf(fact_33_WhileF, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S_0 : produc515445032on_val, S_1 : produc515445032on_val, C : exp_list_char]: ((eval @ P @ E2 @ S_0 @ (val_list_char @ (bool @ $false)) @ S_1) => (eval @ P @ (while_list_char @ E2 @ C) @ S_0 @ (val_list_char @ unit) @ S_1))))). % WhileF
thf(fact_34_redp__redsp_ORedCondT, axiom,
    ((![P : list_P1234162913t_char, E_1 : exp_list_char, E_2 : exp_list_char, S : produc515445032on_val]: (redp @ P @ (cond_list_char @ (val_list_char @ (bool @ $true)) @ E_1 @ E_2) @ S @ E_1 @ S)))). % redp_redsp.RedCondT
thf(fact_35_val_Oinject_I1_J, axiom,
    ((![X3 : $o, Y3 : $o]: (((bool @ X3) = (bool @ Y3)) = (X3 = Y3))))). % val.inject(1)
thf(fact_36_val_Odistinct_I3_J, axiom,
    ((![X3 : $o]: (~ ((unit = (bool @ X3))))))). % val.distinct(3)
thf(fact_37_eval__cases_I11_J, axiom,
    ((![P : list_P1234162913t_char, B2 : exp_list_char, C : exp_list_char, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val]: ((eval @ P @ (while_list_char @ B2 @ C) @ S @ E @ S2) => (((E = (val_list_char @ unit)) => (~ ((eval @ P @ B2 @ S @ (val_list_char @ (bool @ $false)) @ S2)))) => ((![S_12 : produc515445032on_val]: ((eval @ P @ B2 @ S @ (val_list_char @ (bool @ $true)) @ S_12) => (![V_12 : val, S_22 : produc515445032on_val]: ((eval @ P @ C @ S_12 @ (val_list_char @ V_12) @ S_22) => (~ ((eval @ P @ (while_list_char @ B2 @ C) @ S_22 @ E @ S2))))))) => ((![E3 : exp_list_char]: ((E = (throw_list_char @ E3)) => (~ ((eval @ P @ B2 @ S @ (throw_list_char @ E3) @ S2))))) => (~ ((![S_12 : produc515445032on_val, E3 : exp_list_char]: ((E = (throw_list_char @ E3)) => ((eval @ P @ B2 @ S @ (val_list_char @ (bool @ $true)) @ S_12) => (~ ((eval @ P @ C @ S_12 @ (throw_list_char @ E3) @ S2))))))))))))))). % eval_cases(11)
thf(fact_38_WhileBodyThrow, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S_0 : produc515445032on_val, S_1 : produc515445032on_val, C : exp_list_char, E : exp_list_char, S_2 : produc515445032on_val]: ((eval @ P @ E2 @ S_0 @ (val_list_char @ (bool @ $true)) @ S_1) => ((eval @ P @ C @ S_1 @ (throw_list_char @ E) @ S_2) => (eval @ P @ (while_list_char @ E2 @ C) @ S_0 @ (throw_list_char @ E) @ S_2)))))). % WhileBodyThrow
thf(fact_39_eval__cases_I10_J, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, E_1 : exp_list_char, E_2 : exp_list_char, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val]: ((eval @ P @ (cond_list_char @ E2 @ E_1 @ E_2) @ S @ E @ S2) => ((![S_12 : produc515445032on_val]: ((eval @ P @ E2 @ S @ (val_list_char @ (bool @ $true)) @ S_12) => (~ ((eval @ P @ E_1 @ S_12 @ E @ S2))))) => ((![S_12 : produc515445032on_val]: ((eval @ P @ E2 @ S @ (val_list_char @ (bool @ $false)) @ S_12) => (~ ((eval @ P @ E_2 @ S_12 @ E @ S2))))) => (~ ((![E3 : exp_list_char]: ((E = (throw_list_char @ E3)) => (~ ((eval @ P @ E2 @ S @ (throw_list_char @ E3) @ S2))))))))))))). % eval_cases(10)
thf(fact_40_combine__options__def, axiom,
    ((combin255359704t_char = (^[F2 : set_list_char > set_list_char > set_list_char]: (^[X : option_set_list_char]: (^[Y : option_set_list_char]: (case_o1356160523t_char @ Y @ (^[Z : set_list_char]: (case_o1356160523t_char @ (some_set_list_char @ Z) @ (^[Aa : set_list_char]: (some_set_list_char @ (F2 @ Z @ Aa))) @ Y)) @ X))))))). % combine_options_def
thf(fact_41_exp_Oinject_I14_J, axiom,
    ((![X14 : exp_list_char, Y14 : exp_list_char]: (((throw_list_char @ X14) = (throw_list_char @ Y14)) = (X14 = Y14))))). % exp.inject(14)
thf(fact_42_eval__evals_OThrowThrow, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S_0 : produc515445032on_val, E : exp_list_char, S_1 : produc515445032on_val]: ((eval @ P @ E2 @ S_0 @ (throw_list_char @ E) @ S_1) => (eval @ P @ (throw_list_char @ E2) @ S_0 @ (throw_list_char @ E) @ S_1))))). % eval_evals.ThrowThrow
thf(fact_43_exp_Odistinct_I75_J, axiom,
    ((![X3 : val, X14 : exp_list_char]: (~ (((val_list_char @ X3) = (throw_list_char @ X14))))))). % exp.distinct(75)
thf(fact_44_redp__redsp_OThrowThrow, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S : produc515445032on_val]: (redp @ P @ (throw_list_char @ (throw_list_char @ E2)) @ S @ (throw_list_char @ E2) @ S)))). % redp_redsp.ThrowThrow
thf(fact_45_redp__redsp_OThrowRed, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val]: ((redp @ P @ E2 @ S @ E @ S2) => (redp @ P @ (throw_list_char @ E2) @ S @ (throw_list_char @ E) @ S2))))). % redp_redsp.ThrowRed
thf(fact_46_exp_Odistinct_I195_J, axiom,
    ((![X111 : exp_list_char, X112 : exp_list_char, X14 : exp_list_char]: (~ (((seq_list_char @ X111 @ X112) = (throw_list_char @ X14))))))). % exp.distinct(195)
thf(fact_47_exp_Odistinct_I201_J, axiom,
    ((![X121 : exp_list_char, X122 : exp_list_char, X123 : exp_list_char, X14 : exp_list_char]: (~ (((cond_list_char @ X121 @ X122 @ X123) = (throw_list_char @ X14))))))). % exp.distinct(201)
thf(fact_48_exp_Odistinct_I205_J, axiom,
    ((![X131 : exp_list_char, X132 : exp_list_char, X14 : exp_list_char]: (~ (((while_list_char @ X131 @ X132) = (throw_list_char @ X14))))))). % exp.distinct(205)
thf(fact_49__092_060D_062_Osimps_I14_J, axiom,
    ((![E2 : exp_list_char, A : option_set_list_char]: ((d_list_char @ (throw_list_char @ E2) @ A) = (d_list_char @ E2 @ A))))). % \<D>.simps(14)
thf(fact_50_eval__evals_OSeqThrow, axiom,
    ((![P : list_P1234162913t_char, E_0 : exp_list_char, S_0 : produc515445032on_val, E2 : exp_list_char, S_1 : produc515445032on_val, E_1 : exp_list_char]: ((eval @ P @ E_0 @ S_0 @ (throw_list_char @ E2) @ S_1) => (eval @ P @ (seq_list_char @ E_0 @ E_1) @ S_0 @ (throw_list_char @ E2) @ S_1))))). % eval_evals.SeqThrow
thf(fact_51_eval__evals_OCondThrow, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S_0 : produc515445032on_val, E : exp_list_char, S_1 : produc515445032on_val, E_1 : exp_list_char, E_2 : exp_list_char]: ((eval @ P @ E2 @ S_0 @ (throw_list_char @ E) @ S_1) => (eval @ P @ (cond_list_char @ E2 @ E_1 @ E_2) @ S_0 @ (throw_list_char @ E) @ S_1))))). % eval_evals.CondThrow
thf(fact_52_redp__redsp_OSeqThrow, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, E_2 : exp_list_char, S : produc515445032on_val]: (redp @ P @ (seq_list_char @ (throw_list_char @ E2) @ E_2) @ S @ (throw_list_char @ E2) @ S)))). % redp_redsp.SeqThrow
thf(fact_53_WhileCondThrow, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S_0 : produc515445032on_val, E : exp_list_char, S_1 : produc515445032on_val, C : exp_list_char]: ((eval @ P @ E2 @ S_0 @ (throw_list_char @ E) @ S_1) => (eval @ P @ (while_list_char @ E2 @ C) @ S_0 @ (throw_list_char @ E) @ S_1))))). % WhileCondThrow
thf(fact_54_redp__redsp_OCondThrow, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, E_1 : exp_list_char, E_2 : exp_list_char, S : produc515445032on_val]: (redp @ P @ (cond_list_char @ (throw_list_char @ E2) @ E_1 @ E_2) @ S @ (throw_list_char @ E2) @ S)))). % redp_redsp.CondThrow
thf(fact_55_eval__cases_I9_J, axiom,
    ((![P : list_P1234162913t_char, E_1 : exp_list_char, E_2 : exp_list_char, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val]: ((eval @ P @ (seq_list_char @ E_1 @ E_2) @ S @ E @ S2) => ((![V2 : val, S_12 : produc515445032on_val]: ((eval @ P @ E_1 @ S @ (val_list_char @ V2) @ S_12) => (~ ((eval @ P @ E_2 @ S_12 @ E @ S2))))) => (~ ((![E4 : exp_list_char]: ((E = (throw_list_char @ E4)) => (~ ((eval @ P @ E_1 @ S @ (throw_list_char @ E4) @ S2)))))))))))). % eval_cases(9)
thf(fact_56_redp__redsp_OBinOpThrow2, axiom,
    ((![P : list_P1234162913t_char, V_1 : val, Bop : bop, E2 : exp_list_char, S : produc515445032on_val]: (redp @ P @ (binOp_list_char @ (val_list_char @ V_1) @ Bop @ (throw_list_char @ E2)) @ S @ (throw_list_char @ E2) @ S)))). % redp_redsp.BinOpThrow2
thf(fact_57_exp_Oinject_I4_J, axiom,
    ((![X41 : exp_list_char, X42 : bop, X43 : exp_list_char, Y41 : exp_list_char, Y42 : bop, Y43 : exp_list_char]: (((binOp_list_char @ X41 @ X42 @ X43) = (binOp_list_char @ Y41 @ Y42 @ Y43)) = (((X41 = Y41)) & ((((X42 = Y42)) & ((X43 = Y43))))))))). % exp.inject(4)
thf(fact_58_not__Some__eq, axiom,
    ((![X4 : option_set_list_char]: ((![Y : set_list_char]: (~ ((X4 = (some_set_list_char @ Y))))) = (X4 = none_set_list_char))))). % not_Some_eq
thf(fact_59_not__None__eq, axiom,
    ((![X4 : option_set_list_char]: ((~ ((X4 = none_set_list_char))) = (?[Y : set_list_char]: (X4 = (some_set_list_char @ Y))))))). % not_None_eq
thf(fact_60_redp__redsp_OBinOpRed1, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val, Bop : bop, E_2 : exp_list_char]: ((redp @ P @ E2 @ S @ E @ S2) => (redp @ P @ (binOp_list_char @ E2 @ Bop @ E_2) @ S @ (binOp_list_char @ E @ Bop @ E_2) @ S2))))). % redp_redsp.BinOpRed1
thf(fact_61_combine__options__cases, axiom,
    ((![X4 : option_set_list_char, P : option_set_list_char > option_set_list_char > $o, Y4 : option_set_list_char]: (((X4 = none_set_list_char) => (P @ X4 @ Y4)) => (((Y4 = none_set_list_char) => (P @ X4 @ Y4)) => ((![A4 : set_list_char, B : set_list_char]: ((X4 = (some_set_list_char @ A4)) => ((Y4 = (some_set_list_char @ B)) => (P @ X4 @ Y4)))) => (P @ X4 @ Y4))))))). % combine_options_cases
thf(fact_62_split__option__all, axiom,
    (((^[P2 : option_set_list_char > $o]: (![X5 : option_set_list_char]: (P2 @ X5))) = (^[P3 : option_set_list_char > $o]: (((P3 @ none_set_list_char)) & ((![X : set_list_char]: (P3 @ (some_set_list_char @ X))))))))). % split_option_all
thf(fact_63_split__option__ex, axiom,
    (((^[P2 : option_set_list_char > $o]: (?[X5 : option_set_list_char]: (P2 @ X5))) = (^[P3 : option_set_list_char > $o]: (((P3 @ none_set_list_char)) | ((?[X : set_list_char]: (P3 @ (some_set_list_char @ X))))))))). % split_option_ex
thf(fact_64_option_Oinducts, axiom,
    ((![P : option_set_list_char > $o, Option : option_set_list_char]: ((P @ none_set_list_char) => ((![X6 : set_list_char]: (P @ (some_set_list_char @ X6))) => (P @ Option)))))). % option.inducts
thf(fact_65_option_Oexhaust, axiom,
    ((![Y4 : option_set_list_char]: ((~ ((Y4 = none_set_list_char))) => (~ ((![X22 : set_list_char]: (~ ((Y4 = (some_set_list_char @ X22))))))))))). % option.exhaust
thf(fact_66_option_OdiscI, axiom,
    ((![Option : option_set_list_char, X2 : set_list_char]: ((Option = (some_set_list_char @ X2)) => (~ ((Option = none_set_list_char))))))). % option.discI
thf(fact_67_option_Odistinct_I1_J, axiom,
    ((![X2 : set_list_char]: (~ ((none_set_list_char = (some_set_list_char @ X2))))))). % option.distinct(1)
thf(fact_68_exp_Odistinct_I55_J, axiom,
    ((![X3 : val, X41 : exp_list_char, X42 : bop, X43 : exp_list_char]: (~ (((val_list_char @ X3) = (binOp_list_char @ X41 @ X42 @ X43))))))). % exp.distinct(55)
thf(fact_69_exp_Odistinct_I97_J, axiom,
    ((![X41 : exp_list_char, X42 : bop, X43 : exp_list_char, X14 : exp_list_char]: (~ (((binOp_list_char @ X41 @ X42 @ X43) = (throw_list_char @ X14))))))). % exp.distinct(97)
thf(fact_70_exp_Odistinct_I91_J, axiom,
    ((![X41 : exp_list_char, X42 : bop, X43 : exp_list_char, X111 : exp_list_char, X112 : exp_list_char]: (~ (((binOp_list_char @ X41 @ X42 @ X43) = (seq_list_char @ X111 @ X112))))))). % exp.distinct(91)
thf(fact_71_domIff, axiom,
    ((![A2 : list_char, M : list_char > option_val]: ((member_list_char @ A2 @ (dom_list_char_val @ M)) = (~ (((M @ A2) = none_val))))))). % domIff
thf(fact_72_exp_Odistinct_I93_J, axiom,
    ((![X41 : exp_list_char, X42 : bop, X43 : exp_list_char, X121 : exp_list_char, X122 : exp_list_char, X123 : exp_list_char]: (~ (((binOp_list_char @ X41 @ X42 @ X43) = (cond_list_char @ X121 @ X122 @ X123))))))). % exp.distinct(93)
thf(fact_73_exp_Odistinct_I95_J, axiom,
    ((![X41 : exp_list_char, X42 : bop, X43 : exp_list_char, X131 : exp_list_char, X132 : exp_list_char]: (~ (((binOp_list_char @ X41 @ X42 @ X43) = (while_list_char @ X131 @ X132))))))). % exp.distinct(95)
thf(fact_74_map__add__dom__app__simps_I1_J, axiom,
    ((![M : list_char, L2 : list_char > option_val, L1 : list_char > option_val]: ((member_list_char @ M @ (dom_list_char_val @ L2)) => ((map_ad1615113112ar_val @ L1 @ L2 @ M) = (L2 @ M)))))). % map_add_dom_app_simps(1)
thf(fact_75_map__add__dom__app__simps_I2_J, axiom,
    ((![M : list_char, L1 : list_char > option_val, L2 : list_char > option_val]: ((~ ((member_list_char @ M @ (dom_list_char_val @ L1)))) => ((map_ad1615113112ar_val @ L1 @ L2 @ M) = (L2 @ M)))))). % map_add_dom_app_simps(2)
thf(fact_76_map__add__dom__app__simps_I3_J, axiom,
    ((![M : list_char, L2 : list_char > option_val, L1 : list_char > option_val]: ((~ ((member_list_char @ M @ (dom_list_char_val @ L2)))) => ((map_ad1615113112ar_val @ L1 @ L2 @ M) = (L1 @ M)))))). % map_add_dom_app_simps(3)
thf(fact_77_dom__def, axiom,
    ((dom_list_char_val = (^[M2 : list_char > option_val]: (collect_list_char @ (^[A5 : list_char]: (~ (((M2 @ A5) = none_val))))))))). % dom_def
thf(fact_78_eval__evals_OBinOpThrow1, axiom,
    ((![P : list_P1234162913t_char, E_1 : exp_list_char, S_0 : produc515445032on_val, E2 : exp_list_char, S_1 : produc515445032on_val, Bop : bop, E_2 : exp_list_char]: ((eval @ P @ E_1 @ S_0 @ (throw_list_char @ E2) @ S_1) => (eval @ P @ (binOp_list_char @ E_1 @ Bop @ E_2) @ S_0 @ (throw_list_char @ E2) @ S_1))))). % eval_evals.BinOpThrow1
thf(fact_79_redp__redsp_OBinOpRed2, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, S : produc515445032on_val, E : exp_list_char, S2 : produc515445032on_val, V_1 : val, Bop : bop]: ((redp @ P @ E2 @ S @ E @ S2) => (redp @ P @ (binOp_list_char @ (val_list_char @ V_1) @ Bop @ E2) @ S @ (binOp_list_char @ (val_list_char @ V_1) @ Bop @ E) @ S2))))). % redp_redsp.BinOpRed2
thf(fact_80_redp__redsp_OBinOpThrow1, axiom,
    ((![P : list_P1234162913t_char, E2 : exp_list_char, Bop : bop, E_2 : exp_list_char, S : produc515445032on_val]: (redp @ P @ (binOp_list_char @ (throw_list_char @ E2) @ Bop @ E_2) @ S @ (throw_list_char @ E2) @ S)))). % redp_redsp.BinOpThrow1
thf(fact_81_case__optionE, axiom,
    ((![P : $o, Q : set_list_char > $o, X4 : option_set_list_char]: ((case_o2113287396t_char @ P @ Q @ X4) => (((X4 = none_set_list_char) => (~ (P))) => (~ ((![Y5 : set_list_char]: ((X4 = (some_set_list_char @ Y5)) => (~ ((Q @ Y5)))))))))))). % case_optionE
thf(fact_82_eval__evals_OBinOpThrow2, axiom,
    ((![P : list_P1234162913t_char, E_1 : exp_list_char, S_0 : produc515445032on_val, V_1 : val, S_1 : produc515445032on_val, E_2 : exp_list_char, E2 : exp_list_char, S_2 : produc515445032on_val, Bop : bop]: ((eval @ P @ E_1 @ S_0 @ (val_list_char @ V_1) @ S_1) => ((eval @ P @ E_2 @ S_1 @ (throw_list_char @ E2) @ S_2) => (eval @ P @ (binOp_list_char @ E_1 @ Bop @ E_2) @ S_0 @ (throw_list_char @ E2) @ S_2)))))). % eval_evals.BinOpThrow2
thf(fact_83_dom__empty, axiom,
    (((dom_list_char_val @ (^[X : list_char]: none_val)) = bot_bo1263509675t_char))). % dom_empty
thf(fact_84_map__option__eq__Some, axiom,
    ((![F : set_list_char > set_list_char, Xo : option_set_list_char, Y4 : set_list_char]: (((map_op251503035t_char @ F @ Xo) = (some_set_list_char @ Y4)) = (?[Z : set_list_char]: (((Xo = (some_set_list_char @ Z))) & (((F @ Z) = Y4)))))))). % map_option_eq_Some

% Conjectures (1)
thf(conj_0, conjecture,
    ((d_list_char @ (cond_list_char @ b @ (seq_list_char @ c @ (while_list_char @ b @ c)) @ (val_list_char @ unit)) @ (some_set_list_char @ (dom_list_char_val @ ba))))).
