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

% Could-be-implicit typings (17)
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__Set__Oset_It__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, type,
    set_op1111598910on_val : $tType).
thf(ty_n_t__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, type,
    option2118145160on_val : $tType).
thf(ty_n_t__Set__Oset_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, type,
    set_Pr2075231726on_val : $tType).
thf(ty_n_t__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, type,
    produc266837688on_val : $tType).
thf(ty_n_t__Set__Oset_It__Option__Ooption_It__Value__Oval_J_J, type,
    set_option_val : $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__Option__Ooption_It__Type__Oty_J_J, type,
    set_option_ty : $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__Option__Ooption_It__Type__Oty_J, type,
    option_ty : $tType).
thf(ty_n_t__List__Olist_It__String__Ochar_J, type,
    list_char : $tType).
thf(ty_n_t__Set__Oset_It__Value__Oval_J, type,
    set_val : $tType).
thf(ty_n_t__Set__Oset_It__Type__Oty_J, type,
    set_ty : $tType).
thf(ty_n_t__Value__Oval, type,
    val : $tType).
thf(ty_n_t__Type__Oty, type,
    ty : $tType).
thf(ty_n_t__Nat__Onat, type,
    nat : $tType).

% Explicit typings (68)
thf(sy_c_Conform_Oconf_001t__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, type,
    conf_P93989998t_char : list_P1234162913t_char > (nat > option2118145160on_val) > val > ty > $o).
thf(sy_c_Conform_Olconf_001t__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, type,
    lconf_485928294t_char : list_P1234162913t_char > (nat > option2118145160on_val) > (list_char > option_val) > (list_char > option_ty) > $o).
thf(sy_c_Expr_Oexp_OLAss_001t__List__Olist_It__String__Ochar_J, type,
    lAss_list_char : 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_Fun_Ofun__upd_001t__List__Olist_It__String__Ochar_J_001t__Option__Ooption_It__Type__Oty_J, type,
    fun_up9191ion_ty : (list_char > option_ty) > list_char > option_ty > list_char > option_ty).
thf(sy_c_Fun_Ofun__upd_001t__List__Olist_It__String__Ochar_J_001t__Option__Ooption_It__Value__Oval_J, type,
    fun_up1252458416on_val : (list_char > option_val) > list_char > option_val > list_char > option_val).
thf(sy_c_If_001t__Option__Ooption_It__Value__Oval_J, type,
    if_option_val : $o > option_val > option_val > option_val).
thf(sy_c_Map_Odom_001t__List__Olist_It__String__Ochar_J_001t__Type__Oty, type,
    dom_list_char_ty : (list_char > option_ty) > set_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__Type__Oty, type,
    map_add_list_char_ty : (list_char > option_ty) > (list_char > option_ty) > list_char > option_ty).
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_Map_Omap__le_001t__List__Olist_It__String__Ochar_J_001t__Type__Oty, type,
    map_le_list_char_ty : (list_char > option_ty) > (list_char > option_ty) > $o).
thf(sy_c_Map_Omap__le_001t__List__Olist_It__String__Ochar_J_001t__Value__Oval, type,
    map_le_list_char_val : (list_char > option_val) > (list_char > option_val) > $o).
thf(sy_c_Objects_Otypeof__h, type,
    typeof_h : (nat > option2118145160on_val) > val > option_ty).
thf(sy_c_Option_Ocombine__options_001t__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, type,
    combin1801280889on_val : (produc266837688on_val > produc266837688on_val > produc266837688on_val) > option2118145160on_val > option2118145160on_val > option2118145160on_val).
thf(sy_c_Option_Ocombine__options_001t__Type__Oty, type,
    combine_options_ty : (ty > ty > ty) > option_ty > option_ty > option_ty).
thf(sy_c_Option_Ocombine__options_001t__Value__Oval, type,
    combine_options_val : (val > val > val) > option_val > option_val > option_val).
thf(sy_c_Option_Ooption_ONone_001t__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, type,
    none_P1535574167on_val : option2118145160on_val).
thf(sy_c_Option_Ooption_ONone_001t__Type__Oty, type,
    none_ty : option_ty).
thf(sy_c_Option_Ooption_ONone_001t__Value__Oval, type,
    none_val : option_val).
thf(sy_c_Option_Ooption_OSome_001t__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, type,
    some_P1299442195on_val : produc266837688on_val > option2118145160on_val).
thf(sy_c_Option_Ooption_OSome_001t__Type__Oty, type,
    some_ty : ty > option_ty).
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__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, type,
    case_o1187854213on_val : $o > (produc266837688on_val > $o) > option2118145160on_val > $o).
thf(sy_c_Option_Ooption_Ocase__option_001_Eo_001t__Type__Oty, type,
    case_option_o_ty : $o > (ty > $o) > option_ty > $o).
thf(sy_c_Option_Ooption_Ocase__option_001_Eo_001t__Value__Oval, type,
    case_option_o_val : $o > (val > $o) > option_val > $o).
thf(sy_c_Option_Ooption_Ocase__option_001t__Option__Ooption_It__Type__Oty_J_001t__Type__Oty, type,
    case_o105137099_ty_ty : option_ty > (ty > option_ty) > option_ty > option_ty).
thf(sy_c_Option_Ooption_Ocase__option_001t__Option__Ooption_It__Value__Oval_J_001t__Value__Oval, type,
    case_o535067101al_val : option_val > (val > option_val) > option_val > option_val).
thf(sy_c_Option_Ooption_Omap__option_001t__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_001t__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, type,
    map_op525271421on_val : (produc266837688on_val > produc266837688on_val) > option2118145160on_val > option2118145160on_val).
thf(sy_c_Option_Ooption_Omap__option_001t__Type__Oty_001t__Type__Oty, type,
    map_option_ty_ty : (ty > ty) > option_ty > option_ty).
thf(sy_c_Option_Ooption_Omap__option_001t__Type__Oty_001t__Value__Oval, type,
    map_option_ty_val : (ty > val) > option_ty > option_val).
thf(sy_c_Option_Ooption_Omap__option_001t__Value__Oval_001t__Type__Oty, type,
    map_option_val_ty : (val > ty) > option_val > option_ty).
thf(sy_c_Option_Ooption_Omap__option_001t__Value__Oval_001t__Value__Oval, type,
    map_option_val_val : (val > val) > option_val > option_val).
thf(sy_c_Option_Ooption_Othe_001t__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, type,
    the_Pr901949220on_val : option2118145160on_val > produc266837688on_val).
thf(sy_c_Option_Ooption_Othe_001t__Type__Oty, type,
    the_ty : option_ty > ty).
thf(sy_c_Option_Ooption_Othe_001t__Value__Oval, type,
    the_val : option_val > val).
thf(sy_c_Option_Othese_001t__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, type,
    these_538817979on_val : set_op1111598910on_val > set_Pr2075231726on_val).
thf(sy_c_Option_Othese_001t__Type__Oty, type,
    these_ty : set_option_ty > set_ty).
thf(sy_c_Option_Othese_001t__Value__Oval, type,
    these_val : set_option_val > set_val).
thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_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, type,
    top_to624090270on_val : set_Pr2075231726on_val).
thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__Type__Oty_J, type,
    top_top_set_ty : set_ty).
thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__Value__Oval_J, type,
    top_top_set_val : set_val).
thf(sy_c_Set_OCollect_001t__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, type,
    collec636865885on_val : (option2118145160on_val > $o) > set_op1111598910on_val).
thf(sy_c_Set_OCollect_001t__Option__Ooption_It__Type__Oty_J, type,
    collect_option_ty : (option_ty > $o) > set_option_ty).
thf(sy_c_Set_OCollect_001t__Option__Ooption_It__Value__Oval_J, type,
    collect_option_val : (option_val > $o) > set_option_val).
thf(sy_c_Set_Oimage_001t__List__Olist_It__String__Ochar_J_001t__Option__Ooption_It__Value__Oval_J, type,
    image_669655864on_val : (list_char > option_val) > set_list_char > set_option_val).
thf(sy_c_Set_Oimage_001t__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_001t__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, type,
    image_846255303on_val : (option2118145160on_val > produc266837688on_val) > set_op1111598910on_val > set_Pr2075231726on_val).
thf(sy_c_Set_Oimage_001t__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_001t__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, type,
    image_2103153479on_val : (produc266837688on_val > option2118145160on_val) > set_Pr2075231726on_val > set_op1111598910on_val).
thf(sy_c_Set_Oimage_001t__Type__Oty_001t__Option__Ooption_It__Type__Oty_J, type,
    image_ty_option_ty : (ty > option_ty) > set_ty > set_option_ty).
thf(sy_c_Set_Oimage_001t__Value__Oval_001t__Option__Ooption_It__Value__Oval_J, type,
    image_val_option_val : (val > option_val) > set_val > set_option_val).
thf(sy_c_TypeRel_Owiden_001t__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, type,
    widen_917054840t_char : list_P1234162913t_char > ty > ty > $o).
thf(sy_c_Type_Oty_OVoid, type,
    void : ty).
thf(sy_c_Value_Odefault__val, type,
    default_val : ty > val).
thf(sy_c_Value_Oval_OUnit, type,
    unit : val).
thf(sy_c_WellTypeRT_OWTrt, type,
    wTrt : list_P1234162913t_char > (nat > option2118145160on_val) > (list_char > option_ty) > exp_list_char > ty > $o).
thf(sy_c_member_001t__List__Olist_It__String__Ochar_J, type,
    member_list_char : list_char > set_list_char > $o).
thf(sy_c_member_001t__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, type,
    member1048249375on_val : option2118145160on_val > set_op1111598910on_val > $o).
thf(sy_c_member_001t__Option__Ooption_It__Type__Oty_J, type,
    member_option_ty : option_ty > set_option_ty > $o).
thf(sy_c_member_001t__Option__Ooption_It__Value__Oval_J, type,
    member_option_val : option_val > set_option_val > $o).
thf(sy_c_member_001t__Type__Oty, type,
    member_ty : ty > set_ty > $o).
thf(sy_c_member_001t__Value__Oval, type,
    member_val : val > set_val > $o).
thf(sy_v_E____, type,
    e : list_char > option_ty).
thf(sy_v_P, type,
    p : list_P1234162913t_char).
thf(sy_v_T____, type,
    t : ty).
thf(sy_v_V______, type,
    v : list_char).
thf(sy_v_ha______, type,
    ha : nat > option2118145160on_val).
thf(sy_v_la______, type,
    la : list_char > option_val).
thf(sy_v_v______, type,
    v2 : val).

% Relevant facts (131)
thf(fact_0_RedLAss_Oprems_I2_J, axiom,
    ((lconf_485928294t_char @ p @ ha @ la @ e))). % RedLAss.prems(2)
thf(fact_1_RedLAss_Oprems_I1_J, axiom,
    ((wTrt @ p @ ha @ e @ (lAss_list_char @ v @ (val_list_char @ v2)) @ t))). % RedLAss.prems(1)
thf(fact_2_fun__upd__upd, axiom,
    ((![F : list_char > option_val, X : list_char, Y : option_val, Z : option_val]: ((fun_up1252458416on_val @ (fun_up1252458416on_val @ F @ X @ Y) @ X @ Z) = (fun_up1252458416on_val @ F @ X @ Z))))). % fun_upd_upd
thf(fact_3_fun__upd__triv, axiom,
    ((![F : list_char > option_val, X : list_char]: ((fun_up1252458416on_val @ F @ X @ (F @ X)) = F)))). % fun_upd_triv
thf(fact_4_fun__upd__apply, axiom,
    ((fun_up1252458416on_val = (^[F2 : list_char > option_val]: (^[X2 : list_char]: (^[Y2 : option_val]: (^[Z2 : list_char]: (if_option_val @ (Z2 = X2) @ Y2 @ (F2 @ Z2))))))))). % fun_upd_apply
thf(fact_5_option_Oinject, axiom,
    ((![X22 : val, Y22 : val]: (((some_val @ X22) = (some_val @ Y22)) = (X22 = Y22))))). % option.inject
thf(fact_6_option_Oinject, axiom,
    ((![X22 : ty, Y22 : ty]: (((some_ty @ X22) = (some_ty @ Y22)) = (X22 = Y22))))). % option.inject
thf(fact_7_map__upd__eqD1, axiom,
    ((![M : list_char > option_val, A : list_char, X : val, N : list_char > option_val, Y : val]: (((fun_up1252458416on_val @ M @ A @ (some_val @ X)) = (fun_up1252458416on_val @ N @ A @ (some_val @ Y))) => (X = Y))))). % map_upd_eqD1
thf(fact_8_map__upd__triv, axiom,
    ((![T : list_char > option_val, K : list_char, X : val]: (((T @ K) = (some_val @ X)) => ((fun_up1252458416on_val @ T @ K @ (some_val @ X)) = T))))). % map_upd_triv
thf(fact_9_map__upd__Some__unfold, axiom,
    ((![M : list_char > option_val, A : list_char, B : val, X : list_char, Y : val]: (((fun_up1252458416on_val @ M @ A @ (some_val @ B) @ X) = (some_val @ Y)) = (((((X = A)) & ((B = Y)))) | ((((~ ((X = A)))) & (((M @ X) = (some_val @ Y)))))))))). % map_upd_Some_unfold
thf(fact_10_fun__upd__def, axiom,
    ((fun_up1252458416on_val = (^[F2 : list_char > option_val]: (^[A2 : list_char]: (^[B2 : option_val]: (^[X2 : list_char]: (if_option_val @ (X2 = A2) @ B2 @ (F2 @ X2))))))))). % fun_upd_def
thf(fact_11_fun__upd__eqD, axiom,
    ((![F : list_char > option_val, X : list_char, Y : option_val, G : list_char > option_val, Z : option_val]: (((fun_up1252458416on_val @ F @ X @ Y) = (fun_up1252458416on_val @ G @ X @ Z)) => (Y = Z))))). % fun_upd_eqD
thf(fact_12_fun__upd__idem, axiom,
    ((![F : list_char > option_val, X : list_char, Y : option_val]: (((F @ X) = Y) => ((fun_up1252458416on_val @ F @ X @ Y) = F))))). % fun_upd_idem
thf(fact_13_fun__upd__same, axiom,
    ((![F : list_char > option_val, X : list_char, Y : option_val]: ((fun_up1252458416on_val @ F @ X @ Y @ X) = Y)))). % fun_upd_same
thf(fact_14_fun__upd__other, axiom,
    ((![Z : list_char, X : list_char, F : list_char > option_val, Y : option_val]: ((~ ((Z = X))) => ((fun_up1252458416on_val @ F @ X @ Y @ Z) = (F @ Z)))))). % fun_upd_other
thf(fact_15_fun__upd__idem__iff, axiom,
    ((![F : list_char > option_val, X : list_char, Y : option_val]: (((fun_up1252458416on_val @ F @ X @ Y) = F) = ((F @ X) = Y))))). % fun_upd_idem_iff
thf(fact_16_fun__upd__twist, axiom,
    ((![A : list_char, C : list_char, M : list_char > option_val, B : option_val, D : option_val]: ((~ ((A = C))) => ((fun_up1252458416on_val @ (fun_up1252458416on_val @ M @ A @ B) @ C @ D) = (fun_up1252458416on_val @ (fun_up1252458416on_val @ M @ C @ D) @ A @ B)))))). % fun_upd_twist
thf(fact_17_exp_Oinject_I6_J, axiom,
    ((![X61 : list_char, X62 : exp_list_char, Y61 : list_char, Y62 : exp_list_char]: (((lAss_list_char @ X61 @ X62) = (lAss_list_char @ Y61 @ Y62)) = (((X61 = Y61)) & ((X62 = Y62))))))). % exp.inject(6)
thf(fact_18_exp_Oinject_I3_J, axiom,
    ((![X3 : val, Y3 : val]: (((val_list_char @ X3) = (val_list_char @ Y3)) = (X3 = Y3))))). % exp.inject(3)
thf(fact_19_exp_Odistinct_I59_J, axiom,
    ((![X3 : val, X61 : list_char, X62 : exp_list_char]: (~ (((val_list_char @ X3) = (lAss_list_char @ X61 @ X62))))))). % exp.distinct(59)
thf(fact_20_lconf__upd2, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, L : list_char > option_val, E : list_char > option_ty, V : val, T2 : ty, V2 : list_char]: ((lconf_485928294t_char @ P @ H @ L @ E) => ((conf_P93989998t_char @ P @ H @ V @ T2) => (lconf_485928294t_char @ P @ H @ (fun_up1252458416on_val @ L @ V2 @ (some_val @ V)) @ (fun_up9191ion_ty @ E @ V2 @ (some_ty @ T2)))))))). % lconf_upd2
thf(fact_21_lconf__upd, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, L : list_char > option_val, E : list_char > option_ty, V : val, T2 : ty, V2 : list_char]: ((lconf_485928294t_char @ P @ H @ L @ E) => ((conf_P93989998t_char @ P @ H @ V @ T2) => (((E @ V2) = (some_ty @ T2)) => (lconf_485928294t_char @ P @ H @ (fun_up1252458416on_val @ L @ V2 @ (some_val @ V)) @ E))))))). % lconf_upd
thf(fact_22_map__add__upd, axiom,
    ((![F : list_char > option_val, G : list_char > option_val, X : list_char, Y : val]: ((map_ad1615113112ar_val @ F @ (fun_up1252458416on_val @ G @ X @ (some_val @ Y))) = (fun_up1252458416on_val @ (map_ad1615113112ar_val @ F @ G) @ X @ (some_val @ Y)))))). % map_add_upd
thf(fact_23_image__map__upd, axiom,
    ((![X : list_char, A3 : set_list_char, M : list_char > option_val, Y : val]: ((~ ((member_list_char @ X @ A3))) => ((image_669655864on_val @ (fun_up1252458416on_val @ M @ X @ (some_val @ Y)) @ A3) = (image_669655864on_val @ M @ A3)))))). % image_map_upd
thf(fact_24_combine__options__simps_I3_J, axiom,
    ((![F : val > val > val, A : val, B : val]: ((combine_options_val @ F @ (some_val @ A) @ (some_val @ B)) = (some_val @ (F @ A @ B)))))). % combine_options_simps(3)
thf(fact_25_combine__options__simps_I3_J, axiom,
    ((![F : ty > ty > ty, A : ty, B : ty]: ((combine_options_ty @ F @ (some_ty @ A) @ (some_ty @ B)) = (some_ty @ (F @ A @ B)))))). % combine_options_simps(3)
thf(fact_26_lconf__def, axiom,
    ((lconf_485928294t_char = (^[P2 : list_P1234162913t_char]: (^[H2 : nat > option2118145160on_val]: (^[L2 : list_char > option_val]: (^[E2 : list_char > option_ty]: (![V3 : list_char]: (![V4 : val]: ((((L2 @ V3) = (some_val @ V4))) => ((?[T3 : ty]: ((((E2 @ V3) = (some_ty @ T3))) & ((conf_P93989998t_char @ P2 @ H2 @ V4 @ T3))))))))))))))). % lconf_def
thf(fact_27_these__image__Some__eq, axiom,
    ((![A3 : set_val]: ((these_val @ (image_val_option_val @ some_val @ A3)) = A3)))). % these_image_Some_eq
thf(fact_28_these__image__Some__eq, axiom,
    ((![A3 : set_ty]: ((these_ty @ (image_ty_option_ty @ some_ty @ A3)) = A3)))). % these_image_Some_eq
thf(fact_29_in__these__eq, axiom,
    ((![X : val, A3 : set_option_val]: ((member_val @ X @ (these_val @ A3)) = (member_option_val @ (some_val @ X) @ A3))))). % in_these_eq
thf(fact_30_in__these__eq, axiom,
    ((![X : ty, A3 : set_option_ty]: ((member_ty @ X @ (these_ty @ A3)) = (member_option_ty @ (some_ty @ X) @ A3))))). % in_these_eq
thf(fact_31_Some__image__these__eq, axiom,
    ((![A3 : set_op1111598910on_val]: ((image_2103153479on_val @ some_P1299442195on_val @ (these_538817979on_val @ A3)) = (collec636865885on_val @ (^[X2 : option2118145160on_val]: (((member1048249375on_val @ X2 @ A3)) & ((~ ((X2 = none_P1535574167on_val))))))))))). % Some_image_these_eq
thf(fact_32_Some__image__these__eq, axiom,
    ((![A3 : set_option_val]: ((image_val_option_val @ some_val @ (these_val @ A3)) = (collect_option_val @ (^[X2 : option_val]: (((member_option_val @ X2 @ A3)) & ((~ ((X2 = none_val))))))))))). % Some_image_these_eq
thf(fact_33_Some__image__these__eq, axiom,
    ((![A3 : set_option_ty]: ((image_ty_option_ty @ some_ty @ (these_ty @ A3)) = (collect_option_ty @ (^[X2 : option_ty]: (((member_option_ty @ X2 @ A3)) & ((~ ((X2 = none_ty))))))))))). % Some_image_these_eq
thf(fact_34_combine__options__def, axiom,
    ((combine_options_val = (^[F2 : val > val > val]: (^[X2 : option_val]: (^[Y2 : option_val]: (case_o535067101al_val @ Y2 @ (^[Z2 : val]: (case_o535067101al_val @ (some_val @ Z2) @ (^[Aa : val]: (some_val @ (F2 @ Z2 @ Aa))) @ Y2)) @ X2))))))). % combine_options_def
thf(fact_35_combine__options__def, axiom,
    ((combine_options_ty = (^[F2 : ty > ty > ty]: (^[X2 : option_ty]: (^[Y2 : option_ty]: (case_o105137099_ty_ty @ Y2 @ (^[Z2 : ty]: (case_o105137099_ty_ty @ (some_ty @ Z2) @ (^[Aa : ty]: (some_ty @ (F2 @ Z2 @ Aa))) @ Y2)) @ X2))))))). % combine_options_def
thf(fact_36_map__add__upd__left, axiom,
    ((![M : list_char, E22 : list_char > option_val, E1 : list_char > option_val, U1 : val]: ((~ ((member_list_char @ M @ (dom_list_char_val @ E22)))) => ((map_ad1615113112ar_val @ (fun_up1252458416on_val @ E1 @ M @ (some_val @ U1)) @ E22) = (fun_up1252458416on_val @ (map_ad1615113112ar_val @ E1 @ E22) @ M @ (some_val @ U1))))))). % map_add_upd_left
thf(fact_37_lconf__empty, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, E : list_char > option_ty]: (lconf_485928294t_char @ P @ H @ (^[X2 : list_char]: none_val) @ E)))). % lconf_empty
thf(fact_38_not__None__eq, axiom,
    ((![X : option2118145160on_val]: ((~ ((X = none_P1535574167on_val))) = (?[Y2 : produc266837688on_val]: (X = (some_P1299442195on_val @ Y2))))))). % not_None_eq
thf(fact_39_not__None__eq, axiom,
    ((![X : option_val]: ((~ ((X = none_val))) = (?[Y2 : val]: (X = (some_val @ Y2))))))). % not_None_eq
thf(fact_40_not__None__eq, axiom,
    ((![X : option_ty]: ((~ ((X = none_ty))) = (?[Y2 : ty]: (X = (some_ty @ Y2))))))). % not_None_eq
thf(fact_41_not__Some__eq, axiom,
    ((![X : option2118145160on_val]: ((![Y2 : produc266837688on_val]: (~ ((X = (some_P1299442195on_val @ Y2))))) = (X = none_P1535574167on_val))))). % not_Some_eq
thf(fact_42_not__Some__eq, axiom,
    ((![X : option_val]: ((![Y2 : val]: (~ ((X = (some_val @ Y2))))) = (X = none_val))))). % not_Some_eq
thf(fact_43_not__Some__eq, axiom,
    ((![X : option_ty]: ((![Y2 : ty]: (~ ((X = (some_ty @ Y2))))) = (X = none_ty))))). % not_Some_eq
thf(fact_44_combine__options__simps_I2_J, axiom,
    ((![F : produc266837688on_val > produc266837688on_val > produc266837688on_val, X : option2118145160on_val]: ((combin1801280889on_val @ F @ X @ none_P1535574167on_val) = X)))). % combine_options_simps(2)
thf(fact_45_combine__options__simps_I1_J, axiom,
    ((![F : produc266837688on_val > produc266837688on_val > produc266837688on_val, Y : option2118145160on_val]: ((combin1801280889on_val @ F @ none_P1535574167on_val @ Y) = Y)))). % combine_options_simps(1)
thf(fact_46_empty__upd__none, axiom,
    ((![X : list_char]: ((fun_up1252458416on_val @ (^[X2 : list_char]: none_val) @ X @ none_val) = (^[X2 : list_char]: none_val))))). % empty_upd_none
thf(fact_47_option_Odistinct_I1_J, axiom,
    ((![X22 : produc266837688on_val]: (~ ((none_P1535574167on_val = (some_P1299442195on_val @ X22))))))). % option.distinct(1)
thf(fact_48_option_Odistinct_I1_J, axiom,
    ((![X22 : val]: (~ ((none_val = (some_val @ X22))))))). % option.distinct(1)
thf(fact_49_option_Odistinct_I1_J, axiom,
    ((![X22 : ty]: (~ ((none_ty = (some_ty @ X22))))))). % option.distinct(1)
thf(fact_50_option_OdiscI, axiom,
    ((![Option : option2118145160on_val, X22 : produc266837688on_val]: ((Option = (some_P1299442195on_val @ X22)) => (~ ((Option = none_P1535574167on_val))))))). % option.discI
thf(fact_51_option_OdiscI, axiom,
    ((![Option : option_val, X22 : val]: ((Option = (some_val @ X22)) => (~ ((Option = none_val))))))). % option.discI
thf(fact_52_option_OdiscI, axiom,
    ((![Option : option_ty, X22 : ty]: ((Option = (some_ty @ X22)) => (~ ((Option = none_ty))))))). % option.discI
thf(fact_53_option_Oexhaust, axiom,
    ((![Y : option2118145160on_val]: ((~ ((Y = none_P1535574167on_val))) => (~ ((![X23 : produc266837688on_val]: (~ ((Y = (some_P1299442195on_val @ X23))))))))))). % option.exhaust
thf(fact_54_option_Oexhaust, axiom,
    ((![Y : option_val]: ((~ ((Y = none_val))) => (~ ((![X23 : val]: (~ ((Y = (some_val @ X23))))))))))). % option.exhaust
thf(fact_55_option_Oexhaust, axiom,
    ((![Y : option_ty]: ((~ ((Y = none_ty))) => (~ ((![X23 : ty]: (~ ((Y = (some_ty @ X23))))))))))). % option.exhaust
thf(fact_56_option_Oinducts, axiom,
    ((![P : option2118145160on_val > $o, Option : option2118145160on_val]: ((P @ none_P1535574167on_val) => ((![X4 : produc266837688on_val]: (P @ (some_P1299442195on_val @ X4))) => (P @ Option)))))). % option.inducts
thf(fact_57_option_Oinducts, axiom,
    ((![P : option_val > $o, Option : option_val]: ((P @ none_val) => ((![X4 : val]: (P @ (some_val @ X4))) => (P @ Option)))))). % option.inducts
thf(fact_58_option_Oinducts, axiom,
    ((![P : option_ty > $o, Option : option_ty]: ((P @ none_ty) => ((![X4 : ty]: (P @ (some_ty @ X4))) => (P @ Option)))))). % option.inducts
thf(fact_59_split__option__ex, axiom,
    (((^[P3 : option2118145160on_val > $o]: (?[X5 : option2118145160on_val]: (P3 @ X5))) = (^[P2 : option2118145160on_val > $o]: (((P2 @ none_P1535574167on_val)) | ((?[X2 : produc266837688on_val]: (P2 @ (some_P1299442195on_val @ X2))))))))). % split_option_ex
thf(fact_60_split__option__ex, axiom,
    (((^[P3 : option_val > $o]: (?[X5 : option_val]: (P3 @ X5))) = (^[P2 : option_val > $o]: (((P2 @ none_val)) | ((?[X2 : val]: (P2 @ (some_val @ X2))))))))). % split_option_ex
thf(fact_61_split__option__ex, axiom,
    (((^[P3 : option_ty > $o]: (?[X5 : option_ty]: (P3 @ X5))) = (^[P2 : option_ty > $o]: (((P2 @ none_ty)) | ((?[X2 : ty]: (P2 @ (some_ty @ X2))))))))). % split_option_ex
thf(fact_62_split__option__all, axiom,
    (((^[P3 : option2118145160on_val > $o]: (![X5 : option2118145160on_val]: (P3 @ X5))) = (^[P2 : option2118145160on_val > $o]: (((P2 @ none_P1535574167on_val)) & ((![X2 : produc266837688on_val]: (P2 @ (some_P1299442195on_val @ X2))))))))). % split_option_all
thf(fact_63_split__option__all, axiom,
    (((^[P3 : option_val > $o]: (![X5 : option_val]: (P3 @ X5))) = (^[P2 : option_val > $o]: (((P2 @ none_val)) & ((![X2 : val]: (P2 @ (some_val @ X2))))))))). % split_option_all
thf(fact_64_split__option__all, axiom,
    (((^[P3 : option_ty > $o]: (![X5 : option_ty]: (P3 @ X5))) = (^[P2 : option_ty > $o]: (((P2 @ none_ty)) & ((![X2 : ty]: (P2 @ (some_ty @ X2))))))))). % split_option_all
thf(fact_65_combine__options__cases, axiom,
    ((![X : option2118145160on_val, P : option2118145160on_val > option2118145160on_val > $o, Y : option2118145160on_val]: (((X = none_P1535574167on_val) => (P @ X @ Y)) => (((Y = none_P1535574167on_val) => (P @ X @ Y)) => ((![A4 : produc266837688on_val, B3 : produc266837688on_val]: ((X = (some_P1299442195on_val @ A4)) => ((Y = (some_P1299442195on_val @ B3)) => (P @ X @ Y)))) => (P @ X @ Y))))))). % combine_options_cases
thf(fact_66_combine__options__cases, axiom,
    ((![X : option2118145160on_val, P : option2118145160on_val > option_val > $o, Y : option_val]: (((X = none_P1535574167on_val) => (P @ X @ Y)) => (((Y = none_val) => (P @ X @ Y)) => ((![A4 : produc266837688on_val, B3 : val]: ((X = (some_P1299442195on_val @ A4)) => ((Y = (some_val @ B3)) => (P @ X @ Y)))) => (P @ X @ Y))))))). % combine_options_cases
thf(fact_67_combine__options__cases, axiom,
    ((![X : option2118145160on_val, P : option2118145160on_val > option_ty > $o, Y : option_ty]: (((X = none_P1535574167on_val) => (P @ X @ Y)) => (((Y = none_ty) => (P @ X @ Y)) => ((![A4 : produc266837688on_val, B3 : ty]: ((X = (some_P1299442195on_val @ A4)) => ((Y = (some_ty @ B3)) => (P @ X @ Y)))) => (P @ X @ Y))))))). % combine_options_cases
thf(fact_68_combine__options__cases, axiom,
    ((![X : option_val, P : option_val > option2118145160on_val > $o, Y : option2118145160on_val]: (((X = none_val) => (P @ X @ Y)) => (((Y = none_P1535574167on_val) => (P @ X @ Y)) => ((![A4 : val, B3 : produc266837688on_val]: ((X = (some_val @ A4)) => ((Y = (some_P1299442195on_val @ B3)) => (P @ X @ Y)))) => (P @ X @ Y))))))). % combine_options_cases
thf(fact_69_combine__options__cases, axiom,
    ((![X : option_val, P : option_val > option_val > $o, Y : option_val]: (((X = none_val) => (P @ X @ Y)) => (((Y = none_val) => (P @ X @ Y)) => ((![A4 : val, B3 : val]: ((X = (some_val @ A4)) => ((Y = (some_val @ B3)) => (P @ X @ Y)))) => (P @ X @ Y))))))). % combine_options_cases
thf(fact_70_combine__options__cases, axiom,
    ((![X : option_val, P : option_val > option_ty > $o, Y : option_ty]: (((X = none_val) => (P @ X @ Y)) => (((Y = none_ty) => (P @ X @ Y)) => ((![A4 : val, B3 : ty]: ((X = (some_val @ A4)) => ((Y = (some_ty @ B3)) => (P @ X @ Y)))) => (P @ X @ Y))))))). % combine_options_cases
thf(fact_71_combine__options__cases, axiom,
    ((![X : option_ty, P : option_ty > option2118145160on_val > $o, Y : option2118145160on_val]: (((X = none_ty) => (P @ X @ Y)) => (((Y = none_P1535574167on_val) => (P @ X @ Y)) => ((![A4 : ty, B3 : produc266837688on_val]: ((X = (some_ty @ A4)) => ((Y = (some_P1299442195on_val @ B3)) => (P @ X @ Y)))) => (P @ X @ Y))))))). % combine_options_cases
thf(fact_72_combine__options__cases, axiom,
    ((![X : option_ty, P : option_ty > option_val > $o, Y : option_val]: (((X = none_ty) => (P @ X @ Y)) => (((Y = none_val) => (P @ X @ Y)) => ((![A4 : ty, B3 : val]: ((X = (some_ty @ A4)) => ((Y = (some_val @ B3)) => (P @ X @ Y)))) => (P @ X @ Y))))))). % combine_options_cases
thf(fact_73_combine__options__cases, axiom,
    ((![X : option_ty, P : option_ty > option_ty > $o, Y : option_ty]: (((X = none_ty) => (P @ X @ Y)) => (((Y = none_ty) => (P @ X @ Y)) => ((![A4 : ty, B3 : ty]: ((X = (some_ty @ A4)) => ((Y = (some_ty @ B3)) => (P @ X @ Y)))) => (P @ X @ Y))))))). % combine_options_cases
thf(fact_74_map__upd__nonempty, axiom,
    ((![T : list_char > option_val, K : list_char, X : val]: (~ (((fun_up1252458416on_val @ T @ K @ (some_val @ X)) = (^[X2 : list_char]: none_val))))))). % map_upd_nonempty
thf(fact_75_None__notin__image__Some, axiom,
    ((![A3 : set_Pr2075231726on_val]: (~ ((member1048249375on_val @ none_P1535574167on_val @ (image_2103153479on_val @ some_P1299442195on_val @ A3))))))). % None_notin_image_Some
thf(fact_76_None__notin__image__Some, axiom,
    ((![A3 : set_val]: (~ ((member_option_val @ none_val @ (image_val_option_val @ some_val @ A3))))))). % None_notin_image_Some
thf(fact_77_None__notin__image__Some, axiom,
    ((![A3 : set_ty]: (~ ((member_option_ty @ none_ty @ (image_ty_option_ty @ some_ty @ A3))))))). % None_notin_image_Some
thf(fact_78_WTrtVal, axiom,
    ((![H : nat > option2118145160on_val, V : val, T2 : ty, P : list_P1234162913t_char, E : list_char > option_ty]: (((typeof_h @ H @ V) = (some_ty @ T2)) => (wTrt @ P @ H @ E @ (val_list_char @ V) @ T2))))). % WTrtVal
thf(fact_79_typeof__lit__typeof, axiom,
    ((![V : val, T2 : ty, H : nat > option2118145160on_val]: (((typeof_h @ (^[X2 : nat]: none_P1535574167on_val) @ V) = (some_ty @ T2)) => ((typeof_h @ H @ V) = (some_ty @ T2)))))). % typeof_lit_typeof
thf(fact_80_conf__def, axiom,
    ((conf_P93989998t_char = (^[P2 : list_P1234162913t_char]: (^[H2 : nat > option2118145160on_val]: (^[V4 : val]: (^[T3 : ty]: (?[T4 : ty]: ((((typeof_h @ H2 @ V4) = (some_ty @ T4))) & ((widen_917054840t_char @ P2 @ T4 @ T3))))))))))). % conf_def
thf(fact_81_map__le__imp__upd__le, axiom,
    ((![M1 : list_char > option_val, M2 : list_char > option_val, X : list_char, Y : val]: ((map_le_list_char_val @ M1 @ M2) => (map_le_list_char_val @ (fun_up1252458416on_val @ M1 @ X @ none_val) @ (fun_up1252458416on_val @ M2 @ X @ (some_val @ Y))))))). % map_le_imp_upd_le
thf(fact_82_map__le__imp__upd__le, axiom,
    ((![M1 : list_char > option_ty, M2 : list_char > option_ty, X : list_char, Y : ty]: ((map_le_list_char_ty @ M1 @ M2) => (map_le_list_char_ty @ (fun_up9191ion_ty @ M1 @ X @ none_ty) @ (fun_up9191ion_ty @ M2 @ X @ (some_ty @ Y))))))). % map_le_imp_upd_le
thf(fact_83_map__le__antisym, axiom,
    ((![F : list_char > option_ty, G : list_char > option_ty]: ((map_le_list_char_ty @ F @ G) => ((map_le_list_char_ty @ G @ F) => (F = G)))))). % map_le_antisym
thf(fact_84_map__le__trans, axiom,
    ((![M1 : list_char > option_ty, M2 : list_char > option_ty, M3 : list_char > option_ty]: ((map_le_list_char_ty @ M1 @ M2) => ((map_le_list_char_ty @ M2 @ M3) => (map_le_list_char_ty @ M1 @ M3)))))). % map_le_trans
thf(fact_85_map__le__refl, axiom,
    ((![F : list_char > option_ty]: (map_le_list_char_ty @ F @ F)))). % map_le_refl
thf(fact_86_WTrt__env__mono, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, E : list_char > option_ty, E3 : exp_list_char, T2 : ty, E4 : list_char > option_ty]: ((wTrt @ P @ H @ E @ E3 @ T2) => ((map_le_list_char_ty @ E @ E4) => (wTrt @ P @ H @ E4 @ E3 @ T2)))))). % WTrt_env_mono
thf(fact_87_map__le__upd, axiom,
    ((![F : list_char > option_ty, G : list_char > option_ty, A : list_char, B : option_ty]: ((map_le_list_char_ty @ F @ G) => (map_le_list_char_ty @ (fun_up9191ion_ty @ F @ A @ B) @ (fun_up9191ion_ty @ G @ A @ B)))))). % map_le_upd
thf(fact_88_map__le__upd, axiom,
    ((![F : list_char > option_val, G : list_char > option_val, A : list_char, B : option_val]: ((map_le_list_char_val @ F @ G) => (map_le_list_char_val @ (fun_up1252458416on_val @ F @ A @ B) @ (fun_up1252458416on_val @ G @ A @ B)))))). % map_le_upd
thf(fact_89_map__le__def, axiom,
    ((map_le_list_char_ty = (^[M_1 : list_char > option_ty]: (^[M_2 : list_char > option_ty]: (![X2 : list_char]: (((member_list_char @ X2 @ (dom_list_char_ty @ M_1))) => (((M_1 @ X2) = (M_2 @ X2)))))))))). % map_le_def
thf(fact_90_conf__widen, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, V : val, T2 : ty, T5 : ty]: ((conf_P93989998t_char @ P @ H @ V @ T2) => ((widen_917054840t_char @ P @ T2 @ T5) => (conf_P93989998t_char @ P @ H @ V @ T5)))))). % conf_widen
thf(fact_91_map__le__iff__map__add__commute, axiom,
    ((![F : list_char > option_ty, G : list_char > option_ty]: ((map_le_list_char_ty @ F @ (map_add_list_char_ty @ F @ G)) = ((map_add_list_char_ty @ F @ G) = (map_add_list_char_ty @ G @ F)))))). % map_le_iff_map_add_commute
thf(fact_92_map__add__subsumed2, axiom,
    ((![F : list_char > option_ty, G : list_char > option_ty]: ((map_le_list_char_ty @ F @ G) => ((map_add_list_char_ty @ G @ F) = G))))). % map_add_subsumed2
thf(fact_93_map__add__subsumed1, axiom,
    ((![F : list_char > option_ty, G : list_char > option_ty]: ((map_le_list_char_ty @ F @ G) => ((map_add_list_char_ty @ F @ G) = G))))). % map_add_subsumed1
thf(fact_94_map__add__le__mapI, axiom,
    ((![F : list_char > option_ty, H : list_char > option_ty, G : list_char > option_ty]: ((map_le_list_char_ty @ F @ H) => ((map_le_list_char_ty @ G @ H) => (map_le_list_char_ty @ (map_add_list_char_ty @ F @ G) @ H)))))). % map_add_le_mapI
thf(fact_95_map__add__le__mapE, axiom,
    ((![F : list_char > option_ty, G : list_char > option_ty, H : list_char > option_ty]: ((map_le_list_char_ty @ (map_add_list_char_ty @ F @ G) @ H) => (map_le_list_char_ty @ G @ H))))). % map_add_le_mapE
thf(fact_96_map__le__map__add, axiom,
    ((![F : list_char > option_ty, G : list_char > option_ty]: (map_le_list_char_ty @ F @ (map_add_list_char_ty @ G @ F))))). % map_le_map_add
thf(fact_97_map__le__empty, axiom,
    ((![G : list_char > option_ty]: (map_le_list_char_ty @ (^[X2 : list_char]: none_ty) @ G)))). % map_le_empty
thf(fact_98_option_Odisc__eq__case_I1_J, axiom,
    ((![Option : option2118145160on_val]: ((Option = none_P1535574167on_val) = (case_o1187854213on_val @ $true @ (^[Uu : produc266837688on_val]: $false) @ Option))))). % option.disc_eq_case(1)
thf(fact_99_option_Odisc__eq__case_I2_J, axiom,
    ((![Option : option2118145160on_val]: ((~ ((Option = none_P1535574167on_val))) = (case_o1187854213on_val @ $false @ (^[Uu : produc266837688on_val]: $true) @ Option))))). % option.disc_eq_case(2)
thf(fact_100_upd__None__map__le, axiom,
    ((![F : list_char > option_ty, X : list_char]: (map_le_list_char_ty @ (fun_up9191ion_ty @ F @ X @ none_ty) @ F)))). % upd_None_map_le
thf(fact_101_upd__None__map__le, axiom,
    ((![F : list_char > option_val, X : list_char]: (map_le_list_char_val @ (fun_up1252458416on_val @ F @ X @ none_val) @ F)))). % upd_None_map_le
thf(fact_102_case__optionE, axiom,
    ((![P : $o, Q : produc266837688on_val > $o, X : option2118145160on_val]: ((case_o1187854213on_val @ P @ Q @ X) => (((X = none_P1535574167on_val) => (~ (P))) => (~ ((![Y4 : produc266837688on_val]: ((X = (some_P1299442195on_val @ Y4)) => (~ ((Q @ Y4)))))))))))). % case_optionE
thf(fact_103_case__optionE, axiom,
    ((![P : $o, Q : val > $o, X : option_val]: ((case_option_o_val @ P @ Q @ X) => (((X = none_val) => (~ (P))) => (~ ((![Y4 : val]: ((X = (some_val @ Y4)) => (~ ((Q @ Y4)))))))))))). % case_optionE
thf(fact_104_case__optionE, axiom,
    ((![P : $o, Q : ty > $o, X : option_ty]: ((case_option_o_ty @ P @ Q @ X) => (((X = none_ty) => (~ (P))) => (~ ((![Y4 : ty]: ((X = (some_ty @ Y4)) => (~ ((Q @ Y4)))))))))))). % case_optionE
thf(fact_105_WTrt__elim__cases_I1_J, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, E : list_char > option_ty, V : list_char, E3 : exp_list_char, T2 : ty]: ((wTrt @ P @ H @ E @ (lAss_list_char @ V @ E3) @ T2) => (~ (((T2 = void) => (![T6 : ty]: (((E @ V) = (some_ty @ T6)) => (![T7 : ty]: ((wTrt @ P @ H @ E @ E3 @ T7) => (~ ((widen_917054840t_char @ P @ T7 @ T6)))))))))))))). % WTrt_elim_cases(1)
thf(fact_106_WTrtLAss, axiom,
    ((![E : list_char > option_ty, V2 : list_char, T2 : ty, P : list_P1234162913t_char, H : nat > option2118145160on_val, E3 : exp_list_char, T5 : ty]: (((E @ V2) = (some_ty @ T2)) => ((wTrt @ P @ H @ E @ E3 @ T5) => ((widen_917054840t_char @ P @ T5 @ T2) => (wTrt @ P @ H @ E @ (lAss_list_char @ V2 @ E3) @ void))))))). % WTrtLAss
thf(fact_107_typeof__h_Osimps_I1_J, axiom,
    ((![H : nat > option2118145160on_val]: ((typeof_h @ H @ unit) = (some_ty @ void))))). % typeof_h.simps(1)
thf(fact_108_option_Ocollapse, axiom,
    ((![Option : option2118145160on_val]: ((~ ((Option = none_P1535574167on_val))) => ((some_P1299442195on_val @ (the_Pr901949220on_val @ Option)) = Option))))). % option.collapse
thf(fact_109_option_Ocollapse, axiom,
    ((![Option : option_val]: ((~ ((Option = none_val))) => ((some_val @ (the_val @ Option)) = Option))))). % option.collapse
thf(fact_110_option_Ocollapse, axiom,
    ((![Option : option_ty]: ((~ ((Option = none_ty))) => ((some_ty @ (the_ty @ Option)) = Option))))). % option.collapse
thf(fact_111_option_Oexhaust__sel, axiom,
    ((![Option : option2118145160on_val]: ((~ ((Option = none_P1535574167on_val))) => (Option = (some_P1299442195on_val @ (the_Pr901949220on_val @ Option))))))). % option.exhaust_sel
thf(fact_112_option_Oexhaust__sel, axiom,
    ((![Option : option_val]: ((~ ((Option = none_val))) => (Option = (some_val @ (the_val @ Option))))))). % option.exhaust_sel
thf(fact_113_option_Oexhaust__sel, axiom,
    ((![Option : option_ty]: ((~ ((Option = none_ty))) => (Option = (some_ty @ (the_ty @ Option))))))). % option.exhaust_sel
thf(fact_114_option_Oexpand, axiom,
    ((![Option : option2118145160on_val, Option2 : option2118145160on_val]: (((Option = none_P1535574167on_val) = (Option2 = none_P1535574167on_val)) => (((~ ((Option = none_P1535574167on_val))) => ((~ ((Option2 = none_P1535574167on_val))) => ((the_Pr901949220on_val @ Option) = (the_Pr901949220on_val @ Option2)))) => (Option = Option2)))))). % option.expand
thf(fact_115_option_Osel, axiom,
    ((![X22 : val]: ((the_val @ (some_val @ X22)) = X22)))). % option.sel
thf(fact_116_option_Osel, axiom,
    ((![X22 : ty]: ((the_ty @ (some_ty @ X22)) = X22)))). % option.sel
thf(fact_117_Option_Othese__def, axiom,
    ((these_538817979on_val = (^[A5 : set_op1111598910on_val]: (image_846255303on_val @ the_Pr901949220on_val @ (collec636865885on_val @ (^[X2 : option2118145160on_val]: (((member1048249375on_val @ X2 @ A5)) & ((~ ((X2 = none_P1535574167on_val)))))))))))). % Option.these_def
thf(fact_118_default__val_Osimps_I1_J, axiom,
    (((default_val @ void) = unit))). % default_val.simps(1)
thf(fact_119_widen__trans, axiom,
    ((![P : list_P1234162913t_char, S : ty, U : ty, T2 : ty]: ((widen_917054840t_char @ P @ S @ U) => ((widen_917054840t_char @ P @ U @ T2) => (widen_917054840t_char @ P @ S @ T2)))))). % widen_trans
thf(fact_120_widen__refl, axiom,
    ((![P : list_P1234162913t_char, T2 : ty]: (widen_917054840t_char @ P @ T2 @ T2)))). % widen_refl
thf(fact_121_notin__range__Some, axiom,
    ((![X : option2118145160on_val]: ((~ ((member1048249375on_val @ X @ (image_2103153479on_val @ some_P1299442195on_val @ top_to624090270on_val)))) = (X = none_P1535574167on_val))))). % notin_range_Some
thf(fact_122_notin__range__Some, axiom,
    ((![X : option_val]: ((~ ((member_option_val @ X @ (image_val_option_val @ some_val @ top_top_set_val)))) = (X = none_val))))). % notin_range_Some
thf(fact_123_notin__range__Some, axiom,
    ((![X : option_ty]: ((~ ((member_option_ty @ X @ (image_ty_option_ty @ some_ty @ top_top_set_ty)))) = (X = none_ty))))). % notin_range_Some
thf(fact_124_map__option__eq__Some, axiom,
    ((![F : val > val, Xo : option_val, Y : val]: (((map_option_val_val @ F @ Xo) = (some_val @ Y)) = (?[Z2 : val]: (((Xo = (some_val @ Z2))) & (((F @ Z2) = Y)))))))). % map_option_eq_Some
thf(fact_125_map__option__eq__Some, axiom,
    ((![F : ty > val, Xo : option_ty, Y : val]: (((map_option_ty_val @ F @ Xo) = (some_val @ Y)) = (?[Z2 : ty]: (((Xo = (some_ty @ Z2))) & (((F @ Z2) = Y)))))))). % map_option_eq_Some
thf(fact_126_map__option__eq__Some, axiom,
    ((![F : val > ty, Xo : option_val, Y : ty]: (((map_option_val_ty @ F @ Xo) = (some_ty @ Y)) = (?[Z2 : val]: (((Xo = (some_val @ Z2))) & (((F @ Z2) = Y)))))))). % map_option_eq_Some
thf(fact_127_map__option__eq__Some, axiom,
    ((![F : ty > ty, Xo : option_ty, Y : ty]: (((map_option_ty_ty @ F @ Xo) = (some_ty @ Y)) = (?[Z2 : ty]: (((Xo = (some_ty @ Z2))) & (((F @ Z2) = Y)))))))). % map_option_eq_Some
thf(fact_128_map__option__is__None, axiom,
    ((![F : produc266837688on_val > produc266837688on_val, Opt : option2118145160on_val]: (((map_op525271421on_val @ F @ Opt) = none_P1535574167on_val) = (Opt = none_P1535574167on_val))))). % map_option_is_None
thf(fact_129_option_Omap__disc__iff, axiom,
    ((![F : produc266837688on_val > produc266837688on_val, A : option2118145160on_val]: (((map_op525271421on_val @ F @ A) = none_P1535574167on_val) = (A = none_P1535574167on_val))))). % option.map_disc_iff
thf(fact_130_None__eq__map__option__iff, axiom,
    ((![F : produc266837688on_val > produc266837688on_val, X : option2118145160on_val]: ((none_P1535574167on_val = (map_op525271421on_val @ F @ X)) = (X = none_P1535574167on_val))))). % None_eq_map_option_iff

% Helper facts (3)
thf(help_If_3_1_If_001t__Option__Ooption_It__Value__Oval_J_T, axiom,
    ((![P : $o]: ((P = $true) | (P = $false))))).
thf(help_If_2_1_If_001t__Option__Ooption_It__Value__Oval_J_T, axiom,
    ((![X : option_val, Y : option_val]: ((if_option_val @ $false @ X @ Y) = Y)))).
thf(help_If_1_1_If_001t__Option__Ooption_It__Value__Oval_J_T, axiom,
    ((![X : option_val, Y : option_val]: ((if_option_val @ $true @ X @ Y) = X)))).

% Conjectures (1)
thf(conj_0, conjecture,
    ((lconf_485928294t_char @ p @ ha @ (fun_up1252458416on_val @ la @ v @ (some_val @ v2)) @ e))).
