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

% Could-be-implicit typings (14)
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__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__List__Olist_It__Product____Type__Oprod_It__Product____Type__Oprod_It__List__Olist_It__String__Ochar_J_Mt__List__Olist_It__String__Ochar_J_J_Mt__Type__Oty_J_J, type,
    list_P1991792281har_ty : $tType).
thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__String__Ochar_J_Mt__List__Olist_It__String__Ochar_J_J, type,
    produc1257910179t_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__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__Option__Ooption_It__Nat__Onat_J, type,
    option_nat : $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__Type__Oty, type,
    ty : $tType).
thf(ty_n_t__Nat__Onat, type,
    nat : $tType).

% Explicit typings (57)
thf(sy_c_Conform_Ohconf_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,
    hconf_1244167010t_char : list_P1234162913t_char > (nat > option2118145160on_val) > $o).
thf(sy_c_Conform_Ooconf_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,
    oconf_454120169t_char : list_P1234162913t_char > (nat > option2118145160on_val) > produc266837688on_val > $o).
thf(sy_c_Exceptions_Opreallocated, type,
    preallocated : (nat > option2118145160on_val) > $o).
thf(sy_c_Expr_Oexp_Onew_001t__List__Olist_It__String__Ochar_J, type,
    new_list_char : list_char > 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__Nat__Onat_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,
    fun_up262443479on_val : (nat > option2118145160on_val) > nat > option2118145160on_val > nat > option2118145160on_val).
thf(sy_c_HOL_OThe_001t__List__Olist_It__Product____Type__Oprod_It__Product____Type__Oprod_It__List__Olist_It__String__Ochar_J_Mt__List__Olist_It__String__Ochar_J_J_Mt__Type__Oty_J_J, type,
    the_li2019826130har_ty : (list_P1991792281har_ty > $o) > list_P1991792281har_ty).
thf(sy_c_If_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,
    if_opt451925058on_val : $o > option2118145160on_val > option2118145160on_val > option2118145160on_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__Nat__Onat_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_le931214383on_val : (nat > option2118145160on_val) > (nat > option2118145160on_val) > $o).
thf(sy_c_Objects_Ohext, type,
    hext : (nat > option2118145160on_val) > (nat > option2118145160on_val) > $o).
thf(sy_c_Objects_Oinit__fields, type,
    init_fields : list_P1991792281har_ty > produc1257910179t_char > option_val).
thf(sy_c_Objects_Onew__Addr, type,
    new_Addr : (nat > option2118145160on_val) > option_nat).
thf(sy_c_Objects_Otypeof__h, type,
    typeof_h : (nat > option2118145160on_val) > val > option_ty).
thf(sy_c_Option_Obind_001t__Nat__Onat_001t__Nat__Onat, type,
    bind_nat_nat : option_nat > (nat > option_nat) > option_nat).
thf(sy_c_Option_Obind_001t__Nat__Onat_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,
    bind_n1135451720on_val : option_nat > (nat > option2118145160on_val) > option2118145160on_val).
thf(sy_c_Option_Obind_001t__Nat__Onat_001t__Type__Oty, type,
    bind_nat_ty : option_nat > (nat > option_ty) > option_ty).
thf(sy_c_Option_Obind_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__Nat__Onat, type,
    bind_P1650321352al_nat : option2118145160on_val > (produc266837688on_val > option_nat) > option_nat).
thf(sy_c_Option_Obind_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,
    bind_P160759472on_val : option2118145160on_val > (produc266837688on_val > option2118145160on_val) > option2118145160on_val).
thf(sy_c_Option_Obind_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__Type__Oty, type,
    bind_P607896367val_ty : option2118145160on_val > (produc266837688on_val > option_ty) > option_ty).
thf(sy_c_Option_Obind_001t__Type__Oty_001t__Nat__Onat, type,
    bind_ty_nat : option_ty > (ty > option_nat) > option_nat).
thf(sy_c_Option_Obind_001t__Type__Oty_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,
    bind_t689210159on_val : option_ty > (ty > option2118145160on_val) > option2118145160on_val).
thf(sy_c_Option_Obind_001t__Type__Oty_001t__Type__Oty, type,
    bind_ty_ty : option_ty > (ty > option_ty) > option_ty).
thf(sy_c_Option_Ocombine__options_001t__Nat__Onat, type,
    combine_options_nat : (nat > nat > nat) > option_nat > option_nat > option_nat).
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_Ois__none_001t__Nat__Onat, type,
    is_none_nat : option_nat > $o).
thf(sy_c_Option_Ois__none_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,
    is_non1389277148on_val : option2118145160on_val > $o).
thf(sy_c_Option_Ois__none_001t__Type__Oty, type,
    is_none_ty : option_ty > $o).
thf(sy_c_Option_Ooption_ONone_001t__Nat__Onat, type,
    none_nat : option_nat).
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_OSome_001t__Nat__Onat, type,
    some_nat : nat > option_nat).
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_Ocase__option_001_Eo_001t__Nat__Onat, type,
    case_option_o_nat : $o > (nat > $o) > option_nat > $o).
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_001t__Option__Ooption_It__Nat__Onat_J_001t__Nat__Onat, type,
    case_o1104735357at_nat : option_nat > (nat > option_nat) > option_nat > option_nat).
thf(sy_c_Option_Ooption_Ocase__option_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,
    case_o815592781on_val : option2118145160on_val > (produc266837688on_val > option2118145160on_val) > option2118145160on_val > option2118145160on_val).
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_Othe_001t__Nat__Onat, type,
    the_nat : option_nat > nat).
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_Product__Type_OPair_001t__List__Olist_It__String__Ochar_J_001_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, type,
    produc904988266on_val : list_char > (produc1257910179t_char > option_val) > produc266837688on_val).
thf(sy_c_TypeRel_OFields_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,
    fields1441617180t_char : list_P1234162913t_char > list_char > list_P1991792281har_ty > $o).
thf(sy_c_TypeRel_Ofields_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,
    fields1811926268t_char : list_P1234162913t_char > list_char > list_P1991792281har_ty).
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__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,
    member1296415951on_val : produc266837688on_val > set_Pr2075231726on_val > $o).
thf(sy_v_C____, type,
    c : list_char).
thf(sy_v_E____, type,
    e : list_char > option_ty).
thf(sy_v_FDTs____, type,
    fDTs : list_P1991792281har_ty).
thf(sy_v_P, type,
    p : list_P1234162913t_char).
thf(sy_v_T____, type,
    t : ty).
thf(sy_v_a____, type,
    a : nat).
thf(sy_v_h_Ha____, type,
    h_a : nat > option2118145160on_val).
thf(sy_v_ha____, type,
    ha : nat > option2118145160on_val).

% Relevant facts (194)
thf(fact_0_new, axiom,
    (((new_Addr @ ha) = (some_nat @ a)))). % new
thf(fact_1_hconf, axiom,
    ((hconf_1244167010t_char @ p @ ha))). % hconf
thf(fact_2_not__None__eq, axiom,
    ((![X : option_nat]: ((~ ((X = none_nat))) = (?[Y : nat]: (X = (some_nat @ Y))))))). % not_None_eq
thf(fact_3_not__None__eq, axiom,
    ((![X : option2118145160on_val]: ((~ ((X = none_P1535574167on_val))) = (?[Y : produc266837688on_val]: (X = (some_P1299442195on_val @ Y))))))). % not_None_eq
thf(fact_4_not__None__eq, axiom,
    ((![X : option_ty]: ((~ ((X = none_ty))) = (?[Y : ty]: (X = (some_ty @ Y))))))). % not_None_eq
thf(fact_5_not__Some__eq, axiom,
    ((![X : option_nat]: ((![Y : nat]: (~ ((X = (some_nat @ Y))))) = (X = none_nat))))). % not_Some_eq
thf(fact_6_not__Some__eq, axiom,
    ((![X : option2118145160on_val]: ((![Y : produc266837688on_val]: (~ ((X = (some_P1299442195on_val @ Y))))) = (X = none_P1535574167on_val))))). % not_Some_eq
thf(fact_7_not__Some__eq, axiom,
    ((![X : option_ty]: ((![Y : ty]: (~ ((X = (some_ty @ Y))))) = (X = none_ty))))). % not_Some_eq
thf(fact_8_option_Odistinct_I1_J, axiom,
    ((![X2 : nat]: (~ ((none_nat = (some_nat @ X2))))))). % option.distinct(1)
thf(fact_9_option_Odistinct_I1_J, axiom,
    ((![X2 : produc266837688on_val]: (~ ((none_P1535574167on_val = (some_P1299442195on_val @ X2))))))). % option.distinct(1)
thf(fact_10_option_Odistinct_I1_J, axiom,
    ((![X2 : ty]: (~ ((none_ty = (some_ty @ X2))))))). % option.distinct(1)
thf(fact_11_option_OdiscI, axiom,
    ((![Option : option_nat, X2 : nat]: ((Option = (some_nat @ X2)) => (~ ((Option = none_nat))))))). % option.discI
thf(fact_12_option_OdiscI, axiom,
    ((![Option : option2118145160on_val, X2 : produc266837688on_val]: ((Option = (some_P1299442195on_val @ X2)) => (~ ((Option = none_P1535574167on_val))))))). % option.discI
thf(fact_13_option_OdiscI, axiom,
    ((![Option : option_ty, X2 : ty]: ((Option = (some_ty @ X2)) => (~ ((Option = none_ty))))))). % option.discI
thf(fact_14_option_Oexhaust, axiom,
    ((![Y2 : option_nat]: ((~ ((Y2 = none_nat))) => (~ ((![X22 : nat]: (~ ((Y2 = (some_nat @ X22))))))))))). % option.exhaust
thf(fact_15_option_Oexhaust, axiom,
    ((![Y2 : option2118145160on_val]: ((~ ((Y2 = none_P1535574167on_val))) => (~ ((![X22 : produc266837688on_val]: (~ ((Y2 = (some_P1299442195on_val @ X22))))))))))). % option.exhaust
thf(fact_16_option_Oexhaust, axiom,
    ((![Y2 : option_ty]: ((~ ((Y2 = none_ty))) => (~ ((![X22 : ty]: (~ ((Y2 = (some_ty @ X22))))))))))). % option.exhaust
thf(fact_17_option_Oinducts, axiom,
    ((![P : option_nat > $o, Option : option_nat]: ((P @ none_nat) => ((![X3 : nat]: (P @ (some_nat @ X3))) => (P @ Option)))))). % option.inducts
thf(fact_18_option_Oinducts, axiom,
    ((![P : option2118145160on_val > $o, Option : option2118145160on_val]: ((P @ none_P1535574167on_val) => ((![X3 : produc266837688on_val]: (P @ (some_P1299442195on_val @ X3))) => (P @ Option)))))). % option.inducts
thf(fact_19_option_Oinducts, axiom,
    ((![P : option_ty > $o, Option : option_ty]: ((P @ none_ty) => ((![X3 : ty]: (P @ (some_ty @ X3))) => (P @ Option)))))). % option.inducts
thf(fact_20_split__option__ex, axiom,
    (((^[P2 : option_nat > $o]: (?[X4 : option_nat]: (P2 @ X4))) = (^[P3 : option_nat > $o]: (((P3 @ none_nat)) | ((?[X5 : nat]: (P3 @ (some_nat @ X5))))))))). % split_option_ex
thf(fact_21_split__option__ex, axiom,
    (((^[P2 : option2118145160on_val > $o]: (?[X4 : option2118145160on_val]: (P2 @ X4))) = (^[P3 : option2118145160on_val > $o]: (((P3 @ none_P1535574167on_val)) | ((?[X5 : produc266837688on_val]: (P3 @ (some_P1299442195on_val @ X5))))))))). % split_option_ex
thf(fact_22_split__option__ex, axiom,
    (((^[P2 : option_ty > $o]: (?[X4 : option_ty]: (P2 @ X4))) = (^[P3 : option_ty > $o]: (((P3 @ none_ty)) | ((?[X5 : ty]: (P3 @ (some_ty @ X5))))))))). % split_option_ex
thf(fact_23_split__option__all, axiom,
    (((^[P2 : option_nat > $o]: (![X4 : option_nat]: (P2 @ X4))) = (^[P3 : option_nat > $o]: (((P3 @ none_nat)) & ((![X5 : nat]: (P3 @ (some_nat @ X5))))))))). % split_option_all
thf(fact_24_split__option__all, axiom,
    (((^[P2 : option2118145160on_val > $o]: (![X4 : option2118145160on_val]: (P2 @ X4))) = (^[P3 : option2118145160on_val > $o]: (((P3 @ none_P1535574167on_val)) & ((![X5 : produc266837688on_val]: (P3 @ (some_P1299442195on_val @ X5))))))))). % split_option_all
thf(fact_25_split__option__all, axiom,
    (((^[P2 : option_ty > $o]: (![X4 : option_ty]: (P2 @ X4))) = (^[P3 : option_ty > $o]: (((P3 @ none_ty)) & ((![X5 : ty]: (P3 @ (some_ty @ X5))))))))). % split_option_all
thf(fact_26_combine__options__cases, axiom,
    ((![X : option_nat, P : option_nat > option_nat > $o, Y2 : option_nat]: (((X = none_nat) => (P @ X @ Y2)) => (((Y2 = none_nat) => (P @ X @ Y2)) => ((![A : nat, B : nat]: ((X = (some_nat @ A)) => ((Y2 = (some_nat @ B)) => (P @ X @ Y2)))) => (P @ X @ Y2))))))). % combine_options_cases
thf(fact_27_combine__options__cases, axiom,
    ((![X : option_nat, P : option_nat > option2118145160on_val > $o, Y2 : option2118145160on_val]: (((X = none_nat) => (P @ X @ Y2)) => (((Y2 = none_P1535574167on_val) => (P @ X @ Y2)) => ((![A : nat, B : produc266837688on_val]: ((X = (some_nat @ A)) => ((Y2 = (some_P1299442195on_val @ B)) => (P @ X @ Y2)))) => (P @ X @ Y2))))))). % combine_options_cases
thf(fact_28_combine__options__cases, axiom,
    ((![X : option_nat, P : option_nat > option_ty > $o, Y2 : option_ty]: (((X = none_nat) => (P @ X @ Y2)) => (((Y2 = none_ty) => (P @ X @ Y2)) => ((![A : nat, B : ty]: ((X = (some_nat @ A)) => ((Y2 = (some_ty @ B)) => (P @ X @ Y2)))) => (P @ X @ Y2))))))). % combine_options_cases
thf(fact_29_combine__options__cases, axiom,
    ((![X : option2118145160on_val, P : option2118145160on_val > option_nat > $o, Y2 : option_nat]: (((X = none_P1535574167on_val) => (P @ X @ Y2)) => (((Y2 = none_nat) => (P @ X @ Y2)) => ((![A : produc266837688on_val, B : nat]: ((X = (some_P1299442195on_val @ A)) => ((Y2 = (some_nat @ B)) => (P @ X @ Y2)))) => (P @ X @ Y2))))))). % combine_options_cases
thf(fact_30_combine__options__cases, axiom,
    ((![X : option2118145160on_val, P : option2118145160on_val > option2118145160on_val > $o, Y2 : option2118145160on_val]: (((X = none_P1535574167on_val) => (P @ X @ Y2)) => (((Y2 = none_P1535574167on_val) => (P @ X @ Y2)) => ((![A : produc266837688on_val, B : produc266837688on_val]: ((X = (some_P1299442195on_val @ A)) => ((Y2 = (some_P1299442195on_val @ B)) => (P @ X @ Y2)))) => (P @ X @ Y2))))))). % combine_options_cases
thf(fact_31_combine__options__cases, axiom,
    ((![X : option2118145160on_val, P : option2118145160on_val > option_ty > $o, Y2 : option_ty]: (((X = none_P1535574167on_val) => (P @ X @ Y2)) => (((Y2 = none_ty) => (P @ X @ Y2)) => ((![A : produc266837688on_val, B : ty]: ((X = (some_P1299442195on_val @ A)) => ((Y2 = (some_ty @ B)) => (P @ X @ Y2)))) => (P @ X @ Y2))))))). % combine_options_cases
thf(fact_32_combine__options__cases, axiom,
    ((![X : option_ty, P : option_ty > option_nat > $o, Y2 : option_nat]: (((X = none_ty) => (P @ X @ Y2)) => (((Y2 = none_nat) => (P @ X @ Y2)) => ((![A : ty, B : nat]: ((X = (some_ty @ A)) => ((Y2 = (some_nat @ B)) => (P @ X @ Y2)))) => (P @ X @ Y2))))))). % combine_options_cases
thf(fact_33_combine__options__cases, axiom,
    ((![X : option_ty, P : option_ty > option2118145160on_val > $o, Y2 : option2118145160on_val]: (((X = none_ty) => (P @ X @ Y2)) => (((Y2 = none_P1535574167on_val) => (P @ X @ Y2)) => ((![A : ty, B : produc266837688on_val]: ((X = (some_ty @ A)) => ((Y2 = (some_P1299442195on_val @ B)) => (P @ X @ Y2)))) => (P @ X @ Y2))))))). % combine_options_cases
thf(fact_34_combine__options__cases, axiom,
    ((![X : option_ty, P : option_ty > option_ty > $o, Y2 : option_ty]: (((X = none_ty) => (P @ X @ Y2)) => (((Y2 = none_ty) => (P @ X @ Y2)) => ((![A : ty, B : ty]: ((X = (some_ty @ A)) => ((Y2 = (some_ty @ B)) => (P @ X @ Y2)))) => (P @ X @ Y2))))))). % combine_options_cases
thf(fact_35_new__Addr__SomeD, axiom,
    ((![H : nat > option2118145160on_val, A2 : nat]: (((new_Addr @ H) = (some_nat @ A2)) => ((H @ A2) = none_P1535574167on_val))))). % new_Addr_SomeD
thf(fact_36_option_Oinject, axiom,
    ((![X2 : nat, Y22 : nat]: (((some_nat @ X2) = (some_nat @ Y22)) = (X2 = Y22))))). % option.inject
thf(fact_37_option_Oinject, axiom,
    ((![X2 : produc266837688on_val, Y22 : produc266837688on_val]: (((some_P1299442195on_val @ X2) = (some_P1299442195on_val @ Y22)) = (X2 = Y22))))). % option.inject
thf(fact_38_option_Oinject, axiom,
    ((![X2 : ty, Y22 : ty]: (((some_ty @ X2) = (some_ty @ Y22)) = (X2 = Y22))))). % option.inject
thf(fact_39_RedNew_Oprems_I2_J, axiom,
    ((hconf_1244167010t_char @ p @ ha))). % RedNew.prems(2)
thf(fact_40_fields, axiom,
    ((fields1441617180t_char @ p @ c @ fDTs))). % fields
thf(fact_41_option_Ocollapse, axiom,
    ((![Option : option_nat]: ((~ ((Option = none_nat))) => ((some_nat @ (the_nat @ Option)) = Option))))). % option.collapse
thf(fact_42_option_Ocollapse, axiom,
    ((![Option : option2118145160on_val]: ((~ ((Option = none_P1535574167on_val))) => ((some_P1299442195on_val @ (the_Pr901949220on_val @ Option)) = Option))))). % option.collapse
thf(fact_43_option_Ocollapse, axiom,
    ((![Option : option_ty]: ((~ ((Option = none_ty))) => ((some_ty @ (the_ty @ Option)) = Option))))). % option.collapse
thf(fact_44_bind__split__asm, axiom,
    ((![P : option2118145160on_val > $o, M : option_nat, F : nat > option2118145160on_val]: ((P @ (bind_n1135451720on_val @ M @ F)) = (~ ((((((M = none_nat)) & ((~ ((P @ none_P1535574167on_val)))))) | ((?[X5 : nat]: (((M = (some_nat @ X5))) & ((~ ((P @ (F @ X5))))))))))))))). % bind_split_asm
thf(fact_45_bind__split__asm, axiom,
    ((![P : option_ty > $o, M : option_nat, F : nat > option_ty]: ((P @ (bind_nat_ty @ M @ F)) = (~ ((((((M = none_nat)) & ((~ ((P @ none_ty)))))) | ((?[X5 : nat]: (((M = (some_nat @ X5))) & ((~ ((P @ (F @ X5))))))))))))))). % bind_split_asm
thf(fact_46_bind__split__asm, axiom,
    ((![P : option_nat > $o, M : option_nat, F : nat > option_nat]: ((P @ (bind_nat_nat @ M @ F)) = (~ ((((((M = none_nat)) & ((~ ((P @ none_nat)))))) | ((?[X5 : nat]: (((M = (some_nat @ X5))) & ((~ ((P @ (F @ X5))))))))))))))). % bind_split_asm
thf(fact_47_bind__split__asm, axiom,
    ((![P : option2118145160on_val > $o, M : option2118145160on_val, F : produc266837688on_val > option2118145160on_val]: ((P @ (bind_P160759472on_val @ M @ F)) = (~ ((((((M = none_P1535574167on_val)) & ((~ ((P @ none_P1535574167on_val)))))) | ((?[X5 : produc266837688on_val]: (((M = (some_P1299442195on_val @ X5))) & ((~ ((P @ (F @ X5))))))))))))))). % bind_split_asm
thf(fact_48_bind__split__asm, axiom,
    ((![P : option_ty > $o, M : option2118145160on_val, F : produc266837688on_val > option_ty]: ((P @ (bind_P607896367val_ty @ M @ F)) = (~ ((((((M = none_P1535574167on_val)) & ((~ ((P @ none_ty)))))) | ((?[X5 : produc266837688on_val]: (((M = (some_P1299442195on_val @ X5))) & ((~ ((P @ (F @ X5))))))))))))))). % bind_split_asm
thf(fact_49_bind__split__asm, axiom,
    ((![P : option_nat > $o, M : option2118145160on_val, F : produc266837688on_val > option_nat]: ((P @ (bind_P1650321352al_nat @ M @ F)) = (~ ((((((M = none_P1535574167on_val)) & ((~ ((P @ none_nat)))))) | ((?[X5 : produc266837688on_val]: (((M = (some_P1299442195on_val @ X5))) & ((~ ((P @ (F @ X5))))))))))))))). % bind_split_asm
thf(fact_50_bind__split__asm, axiom,
    ((![P : option2118145160on_val > $o, M : option_ty, F : ty > option2118145160on_val]: ((P @ (bind_t689210159on_val @ M @ F)) = (~ ((((((M = none_ty)) & ((~ ((P @ none_P1535574167on_val)))))) | ((?[X5 : ty]: (((M = (some_ty @ X5))) & ((~ ((P @ (F @ X5))))))))))))))). % bind_split_asm
thf(fact_51_bind__split__asm, axiom,
    ((![P : option_ty > $o, M : option_ty, F : ty > option_ty]: ((P @ (bind_ty_ty @ M @ F)) = (~ ((((((M = none_ty)) & ((~ ((P @ none_ty)))))) | ((?[X5 : ty]: (((M = (some_ty @ X5))) & ((~ ((P @ (F @ X5))))))))))))))). % bind_split_asm
thf(fact_52_bind__split__asm, axiom,
    ((![P : option_nat > $o, M : option_ty, F : ty > option_nat]: ((P @ (bind_ty_nat @ M @ F)) = (~ ((((((M = none_ty)) & ((~ ((P @ none_nat)))))) | ((?[X5 : ty]: (((M = (some_ty @ X5))) & ((~ ((P @ (F @ X5))))))))))))))). % bind_split_asm
thf(fact_53_bind__split, axiom,
    ((![P : option2118145160on_val > $o, M : option_nat, F : nat > option2118145160on_val]: ((P @ (bind_n1135451720on_val @ M @ F)) = (((((M = none_nat)) => ((P @ none_P1535574167on_val)))) & ((![V : nat]: (((M = (some_nat @ V))) => ((P @ (F @ V))))))))))). % bind_split
thf(fact_54_bind__split, axiom,
    ((![P : option_ty > $o, M : option_nat, F : nat > option_ty]: ((P @ (bind_nat_ty @ M @ F)) = (((((M = none_nat)) => ((P @ none_ty)))) & ((![V : nat]: (((M = (some_nat @ V))) => ((P @ (F @ V))))))))))). % bind_split
thf(fact_55_bind__split, axiom,
    ((![P : option_nat > $o, M : option_nat, F : nat > option_nat]: ((P @ (bind_nat_nat @ M @ F)) = (((((M = none_nat)) => ((P @ none_nat)))) & ((![V : nat]: (((M = (some_nat @ V))) => ((P @ (F @ V))))))))))). % bind_split
thf(fact_56_bind__split, axiom,
    ((![P : option2118145160on_val > $o, M : option2118145160on_val, F : produc266837688on_val > option2118145160on_val]: ((P @ (bind_P160759472on_val @ M @ F)) = (((((M = none_P1535574167on_val)) => ((P @ none_P1535574167on_val)))) & ((![V : produc266837688on_val]: (((M = (some_P1299442195on_val @ V))) => ((P @ (F @ V))))))))))). % bind_split
thf(fact_57_bind__split, axiom,
    ((![P : option_ty > $o, M : option2118145160on_val, F : produc266837688on_val > option_ty]: ((P @ (bind_P607896367val_ty @ M @ F)) = (((((M = none_P1535574167on_val)) => ((P @ none_ty)))) & ((![V : produc266837688on_val]: (((M = (some_P1299442195on_val @ V))) => ((P @ (F @ V))))))))))). % bind_split
thf(fact_58_bind__split, axiom,
    ((![P : option_nat > $o, M : option2118145160on_val, F : produc266837688on_val > option_nat]: ((P @ (bind_P1650321352al_nat @ M @ F)) = (((((M = none_P1535574167on_val)) => ((P @ none_nat)))) & ((![V : produc266837688on_val]: (((M = (some_P1299442195on_val @ V))) => ((P @ (F @ V))))))))))). % bind_split
thf(fact_59_bind__split, axiom,
    ((![P : option2118145160on_val > $o, M : option_ty, F : ty > option2118145160on_val]: ((P @ (bind_t689210159on_val @ M @ F)) = (((((M = none_ty)) => ((P @ none_P1535574167on_val)))) & ((![V : ty]: (((M = (some_ty @ V))) => ((P @ (F @ V))))))))))). % bind_split
thf(fact_60_bind__split, axiom,
    ((![P : option_ty > $o, M : option_ty, F : ty > option_ty]: ((P @ (bind_ty_ty @ M @ F)) = (((((M = none_ty)) => ((P @ none_ty)))) & ((![V : ty]: (((M = (some_ty @ V))) => ((P @ (F @ V))))))))))). % bind_split
thf(fact_61_bind__split, axiom,
    ((![P : option_nat > $o, M : option_ty, F : ty > option_nat]: ((P @ (bind_ty_nat @ M @ F)) = (((((M = none_ty)) => ((P @ none_nat)))) & ((![V : ty]: (((M = (some_ty @ V))) => ((P @ (F @ V))))))))))). % bind_split
thf(fact_62_option_Oexhaust__sel, axiom,
    ((![Option : option_nat]: ((~ ((Option = none_nat))) => (Option = (some_nat @ (the_nat @ Option))))))). % option.exhaust_sel
thf(fact_63_option_Oexhaust__sel, axiom,
    ((![Option : option2118145160on_val]: ((~ ((Option = none_P1535574167on_val))) => (Option = (some_P1299442195on_val @ (the_Pr901949220on_val @ Option))))))). % option.exhaust_sel
thf(fact_64_option_Oexhaust__sel, axiom,
    ((![Option : option_ty]: ((~ ((Option = none_ty))) => (Option = (some_ty @ (the_ty @ Option))))))). % option.exhaust_sel
thf(fact_65_combine__options__simps_I1_J, axiom,
    ((![F : produc266837688on_val > produc266837688on_val > produc266837688on_val, Y2 : option2118145160on_val]: ((combin1801280889on_val @ F @ none_P1535574167on_val @ Y2) = Y2)))). % combine_options_simps(1)
thf(fact_66_combine__options__simps_I1_J, axiom,
    ((![F : ty > ty > ty, Y2 : option_ty]: ((combine_options_ty @ F @ none_ty @ Y2) = Y2)))). % combine_options_simps(1)
thf(fact_67_combine__options__simps_I1_J, axiom,
    ((![F : nat > nat > nat, Y2 : option_nat]: ((combine_options_nat @ F @ none_nat @ Y2) = Y2)))). % combine_options_simps(1)
thf(fact_68_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_69_combine__options__simps_I2_J, axiom,
    ((![F : ty > ty > ty, X : option_ty]: ((combine_options_ty @ F @ X @ none_ty) = X)))). % combine_options_simps(2)
thf(fact_70_combine__options__simps_I2_J, axiom,
    ((![F : nat > nat > nat, X : option_nat]: ((combine_options_nat @ F @ X @ none_nat) = X)))). % combine_options_simps(2)
thf(fact_71_bind__runit, axiom,
    ((![X : option_nat]: ((bind_nat_nat @ X @ some_nat) = X)))). % bind_runit
thf(fact_72_bind__runit, axiom,
    ((![X : option2118145160on_val]: ((bind_P160759472on_val @ X @ some_P1299442195on_val) = X)))). % bind_runit
thf(fact_73_bind__runit, axiom,
    ((![X : option_ty]: ((bind_ty_ty @ X @ some_ty) = X)))). % bind_runit
thf(fact_74_combine__options__simps_I3_J, axiom,
    ((![F : nat > nat > nat, A2 : nat, B2 : nat]: ((combine_options_nat @ F @ (some_nat @ A2) @ (some_nat @ B2)) = (some_nat @ (F @ A2 @ B2)))))). % combine_options_simps(3)
thf(fact_75_combine__options__simps_I3_J, axiom,
    ((![F : produc266837688on_val > produc266837688on_val > produc266837688on_val, A2 : produc266837688on_val, B2 : produc266837688on_val]: ((combin1801280889on_val @ F @ (some_P1299442195on_val @ A2) @ (some_P1299442195on_val @ B2)) = (some_P1299442195on_val @ (F @ A2 @ B2)))))). % combine_options_simps(3)
thf(fact_76_combine__options__simps_I3_J, axiom,
    ((![F : ty > ty > ty, A2 : ty, B2 : ty]: ((combine_options_ty @ F @ (some_ty @ A2) @ (some_ty @ B2)) = (some_ty @ (F @ A2 @ B2)))))). % combine_options_simps(3)
thf(fact_77_bind__eq__None__conv, axiom,
    ((![A2 : option2118145160on_val, F : produc266837688on_val > option2118145160on_val]: (((bind_P160759472on_val @ A2 @ F) = none_P1535574167on_val) = (((A2 = none_P1535574167on_val)) | (((F @ (the_Pr901949220on_val @ A2)) = none_P1535574167on_val))))))). % bind_eq_None_conv
thf(fact_78_bind__eq__None__conv, axiom,
    ((![A2 : option_ty, F : ty > option2118145160on_val]: (((bind_t689210159on_val @ A2 @ F) = none_P1535574167on_val) = (((A2 = none_ty)) | (((F @ (the_ty @ A2)) = none_P1535574167on_val))))))). % bind_eq_None_conv
thf(fact_79_bind__eq__None__conv, axiom,
    ((![A2 : option_nat, F : nat > option2118145160on_val]: (((bind_n1135451720on_val @ A2 @ F) = none_P1535574167on_val) = (((A2 = none_nat)) | (((F @ (the_nat @ A2)) = none_P1535574167on_val))))))). % bind_eq_None_conv
thf(fact_80_bind__eq__None__conv, axiom,
    ((![A2 : option2118145160on_val, F : produc266837688on_val > option_ty]: (((bind_P607896367val_ty @ A2 @ F) = none_ty) = (((A2 = none_P1535574167on_val)) | (((F @ (the_Pr901949220on_val @ A2)) = none_ty))))))). % bind_eq_None_conv
thf(fact_81_bind__eq__None__conv, axiom,
    ((![A2 : option_ty, F : ty > option_ty]: (((bind_ty_ty @ A2 @ F) = none_ty) = (((A2 = none_ty)) | (((F @ (the_ty @ A2)) = none_ty))))))). % bind_eq_None_conv
thf(fact_82_bind__eq__None__conv, axiom,
    ((![A2 : option_nat, F : nat > option_ty]: (((bind_nat_ty @ A2 @ F) = none_ty) = (((A2 = none_nat)) | (((F @ (the_nat @ A2)) = none_ty))))))). % bind_eq_None_conv
thf(fact_83_bind__eq__None__conv, axiom,
    ((![A2 : option2118145160on_val, F : produc266837688on_val > option_nat]: (((bind_P1650321352al_nat @ A2 @ F) = none_nat) = (((A2 = none_P1535574167on_val)) | (((F @ (the_Pr901949220on_val @ A2)) = none_nat))))))). % bind_eq_None_conv
thf(fact_84_bind__eq__None__conv, axiom,
    ((![A2 : option_ty, F : ty > option_nat]: (((bind_ty_nat @ A2 @ F) = none_nat) = (((A2 = none_ty)) | (((F @ (the_ty @ A2)) = none_nat))))))). % bind_eq_None_conv
thf(fact_85_bind__eq__None__conv, axiom,
    ((![A2 : option_nat, F : nat > option_nat]: (((bind_nat_nat @ A2 @ F) = none_nat) = (((A2 = none_nat)) | (((F @ (the_nat @ A2)) = none_nat))))))). % bind_eq_None_conv
thf(fact_86_option_Osel, axiom,
    ((![X2 : nat]: ((the_nat @ (some_nat @ X2)) = X2)))). % option.sel
thf(fact_87_option_Osel, axiom,
    ((![X2 : produc266837688on_val]: ((the_Pr901949220on_val @ (some_P1299442195on_val @ X2)) = X2)))). % option.sel
thf(fact_88_option_Osel, axiom,
    ((![X2 : ty]: ((the_ty @ (some_ty @ X2)) = X2)))). % option.sel
thf(fact_89_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_90_option_Oexpand, axiom,
    ((![Option : option_ty, Option2 : option_ty]: (((Option = none_ty) = (Option2 = none_ty)) => (((~ ((Option = none_ty))) => ((~ ((Option2 = none_ty))) => ((the_ty @ Option) = (the_ty @ Option2)))) => (Option = Option2)))))). % option.expand
thf(fact_91_option_Oexpand, axiom,
    ((![Option : option_nat, Option2 : option_nat]: (((Option = none_nat) = (Option2 = none_nat)) => (((~ ((Option = none_nat))) => ((~ ((Option2 = none_nat))) => ((the_nat @ Option) = (the_nat @ Option2)))) => (Option = Option2)))))). % option.expand
thf(fact_92_bind__eq__Some__conv, axiom,
    ((![F : option_nat, G : nat > option_nat, X : nat]: (((bind_nat_nat @ F @ G) = (some_nat @ X)) = (?[Y : nat]: (((F = (some_nat @ Y))) & (((G @ Y) = (some_nat @ X))))))))). % bind_eq_Some_conv
thf(fact_93_bind__eq__Some__conv, axiom,
    ((![F : option2118145160on_val, G : produc266837688on_val > option_nat, X : nat]: (((bind_P1650321352al_nat @ F @ G) = (some_nat @ X)) = (?[Y : produc266837688on_val]: (((F = (some_P1299442195on_val @ Y))) & (((G @ Y) = (some_nat @ X))))))))). % bind_eq_Some_conv
thf(fact_94_bind__eq__Some__conv, axiom,
    ((![F : option_ty, G : ty > option_nat, X : nat]: (((bind_ty_nat @ F @ G) = (some_nat @ X)) = (?[Y : ty]: (((F = (some_ty @ Y))) & (((G @ Y) = (some_nat @ X))))))))). % bind_eq_Some_conv
thf(fact_95_bind__eq__Some__conv, axiom,
    ((![F : option_nat, G : nat > option2118145160on_val, X : produc266837688on_val]: (((bind_n1135451720on_val @ F @ G) = (some_P1299442195on_val @ X)) = (?[Y : nat]: (((F = (some_nat @ Y))) & (((G @ Y) = (some_P1299442195on_val @ X))))))))). % bind_eq_Some_conv
thf(fact_96_bind__eq__Some__conv, axiom,
    ((![F : option2118145160on_val, G : produc266837688on_val > option2118145160on_val, X : produc266837688on_val]: (((bind_P160759472on_val @ F @ G) = (some_P1299442195on_val @ X)) = (?[Y : produc266837688on_val]: (((F = (some_P1299442195on_val @ Y))) & (((G @ Y) = (some_P1299442195on_val @ X))))))))). % bind_eq_Some_conv
thf(fact_97_bind__eq__Some__conv, axiom,
    ((![F : option_ty, G : ty > option2118145160on_val, X : produc266837688on_val]: (((bind_t689210159on_val @ F @ G) = (some_P1299442195on_val @ X)) = (?[Y : ty]: (((F = (some_ty @ Y))) & (((G @ Y) = (some_P1299442195on_val @ X))))))))). % bind_eq_Some_conv
thf(fact_98_bind__eq__Some__conv, axiom,
    ((![F : option_nat, G : nat > option_ty, X : ty]: (((bind_nat_ty @ F @ G) = (some_ty @ X)) = (?[Y : nat]: (((F = (some_nat @ Y))) & (((G @ Y) = (some_ty @ X))))))))). % bind_eq_Some_conv
thf(fact_99_bind__eq__Some__conv, axiom,
    ((![F : option2118145160on_val, G : produc266837688on_val > option_ty, X : ty]: (((bind_P607896367val_ty @ F @ G) = (some_ty @ X)) = (?[Y : produc266837688on_val]: (((F = (some_P1299442195on_val @ Y))) & (((G @ Y) = (some_ty @ X))))))))). % bind_eq_Some_conv
thf(fact_100_bind__eq__Some__conv, axiom,
    ((![F : option_ty, G : ty > option_ty, X : ty]: (((bind_ty_ty @ F @ G) = (some_ty @ X)) = (?[Y : ty]: (((F = (some_ty @ Y))) & (((G @ Y) = (some_ty @ X))))))))). % bind_eq_Some_conv
thf(fact_101_bind_Obind__lzero, axiom,
    ((![F : produc266837688on_val > option2118145160on_val]: ((bind_P160759472on_val @ none_P1535574167on_val @ F) = none_P1535574167on_val)))). % bind.bind_lzero
thf(fact_102_bind_Obind__lzero, axiom,
    ((![F : produc266837688on_val > option_ty]: ((bind_P607896367val_ty @ none_P1535574167on_val @ F) = none_ty)))). % bind.bind_lzero
thf(fact_103_bind_Obind__lzero, axiom,
    ((![F : produc266837688on_val > option_nat]: ((bind_P1650321352al_nat @ none_P1535574167on_val @ F) = none_nat)))). % bind.bind_lzero
thf(fact_104_bind_Obind__lzero, axiom,
    ((![F : ty > option2118145160on_val]: ((bind_t689210159on_val @ none_ty @ F) = none_P1535574167on_val)))). % bind.bind_lzero
thf(fact_105_bind_Obind__lzero, axiom,
    ((![F : ty > option_ty]: ((bind_ty_ty @ none_ty @ F) = none_ty)))). % bind.bind_lzero
thf(fact_106_bind_Obind__lzero, axiom,
    ((![F : ty > option_nat]: ((bind_ty_nat @ none_ty @ F) = none_nat)))). % bind.bind_lzero
thf(fact_107_bind_Obind__lzero, axiom,
    ((![F : nat > option2118145160on_val]: ((bind_n1135451720on_val @ none_nat @ F) = none_P1535574167on_val)))). % bind.bind_lzero
thf(fact_108_bind_Obind__lzero, axiom,
    ((![F : nat > option_ty]: ((bind_nat_ty @ none_nat @ F) = none_ty)))). % bind.bind_lzero
thf(fact_109_bind_Obind__lzero, axiom,
    ((![F : nat > option_nat]: ((bind_nat_nat @ none_nat @ F) = none_nat)))). % bind.bind_lzero
thf(fact_110_h_H, axiom,
    ((h_a = (fun_up262443479on_val @ ha @ a @ (some_P1299442195on_val @ (produc904988266on_val @ c @ (init_fields @ fDTs))))))). % h'
thf(fact_111_RedNew_Oprems_I1_J, axiom,
    ((wTrt @ p @ ha @ e @ (new_list_char @ c) @ t))). % RedNew.prems(1)
thf(fact_112_has__fields__fun, axiom,
    ((![P : list_P1234162913t_char, C : list_char, FDTs : list_P1991792281har_ty, FDTs2 : list_P1991792281har_ty]: ((fields1441617180t_char @ P @ C @ FDTs) => ((fields1441617180t_char @ P @ C @ FDTs2) => (FDTs2 = FDTs)))))). % has_fields_fun
thf(fact_113_combine__options__def, axiom,
    ((combine_options_nat = (^[F2 : nat > nat > nat]: (^[X5 : option_nat]: (^[Y : option_nat]: (case_o1104735357at_nat @ Y @ (^[Z : nat]: (case_o1104735357at_nat @ (some_nat @ Z) @ (^[Aa : nat]: (some_nat @ (F2 @ Z @ Aa))) @ Y)) @ X5))))))). % combine_options_def
thf(fact_114_combine__options__def, axiom,
    ((combin1801280889on_val = (^[F2 : produc266837688on_val > produc266837688on_val > produc266837688on_val]: (^[X5 : option2118145160on_val]: (^[Y : option2118145160on_val]: (case_o815592781on_val @ Y @ (^[Z : produc266837688on_val]: (case_o815592781on_val @ (some_P1299442195on_val @ Z) @ (^[Aa : produc266837688on_val]: (some_P1299442195on_val @ (F2 @ Z @ Aa))) @ Y)) @ X5))))))). % combine_options_def
thf(fact_115_combine__options__def, axiom,
    ((combine_options_ty = (^[F2 : ty > ty > ty]: (^[X5 : option_ty]: (^[Y : option_ty]: (case_o105137099_ty_ty @ Y @ (^[Z : ty]: (case_o105137099_ty_ty @ (some_ty @ Z) @ (^[Aa : ty]: (some_ty @ (F2 @ Z @ Aa))) @ Y)) @ X5))))))). % combine_options_def
thf(fact_116_is__none__code_I2_J, axiom,
    ((![X : nat]: (~ ((is_none_nat @ (some_nat @ X))))))). % is_none_code(2)
thf(fact_117_is__none__code_I2_J, axiom,
    ((![X : produc266837688on_val]: (~ ((is_non1389277148on_val @ (some_P1299442195on_val @ X))))))). % is_none_code(2)
thf(fact_118_is__none__code_I2_J, axiom,
    ((![X : ty]: (~ ((is_none_ty @ (some_ty @ X))))))). % is_none_code(2)
thf(fact_119_is__none__code_I1_J, axiom,
    ((is_non1389277148on_val @ none_P1535574167on_val))). % is_none_code(1)
thf(fact_120_is__none__code_I1_J, axiom,
    ((is_none_ty @ none_ty))). % is_none_code(1)
thf(fact_121_is__none__code_I1_J, axiom,
    ((is_none_nat @ none_nat))). % is_none_code(1)
thf(fact_122_is__none__simps_I2_J, axiom,
    ((![X : nat]: (~ ((is_none_nat @ (some_nat @ X))))))). % is_none_simps(2)
thf(fact_123_is__none__simps_I2_J, axiom,
    ((![X : produc266837688on_val]: (~ ((is_non1389277148on_val @ (some_P1299442195on_val @ X))))))). % is_none_simps(2)
thf(fact_124_is__none__simps_I2_J, axiom,
    ((![X : ty]: (~ ((is_none_ty @ (some_ty @ X))))))). % is_none_simps(2)
thf(fact_125_Option_Ois__none__def, axiom,
    ((is_non1389277148on_val = (^[X5 : option2118145160on_val]: (X5 = none_P1535574167on_val))))). % Option.is_none_def
thf(fact_126_Option_Ois__none__def, axiom,
    ((is_none_ty = (^[X5 : option_ty]: (X5 = none_ty))))). % Option.is_none_def
thf(fact_127_Option_Ois__none__def, axiom,
    ((is_none_nat = (^[X5 : option_nat]: (X5 = none_nat))))). % Option.is_none_def
thf(fact_128_is__none__simps_I1_J, axiom,
    ((is_non1389277148on_val @ none_P1535574167on_val))). % is_none_simps(1)
thf(fact_129_is__none__simps_I1_J, axiom,
    ((is_none_ty @ none_ty))). % is_none_simps(1)
thf(fact_130_is__none__simps_I1_J, axiom,
    ((is_none_nat @ none_nat))). % is_none_simps(1)
thf(fact_131_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_132_option_Odisc__eq__case_I1_J, axiom,
    ((![Option : option_ty]: ((Option = none_ty) = (case_option_o_ty @ $true @ (^[Uu : ty]: $false) @ Option))))). % option.disc_eq_case(1)
thf(fact_133_option_Odisc__eq__case_I1_J, axiom,
    ((![Option : option_nat]: ((Option = none_nat) = (case_option_o_nat @ $true @ (^[Uu : nat]: $false) @ Option))))). % option.disc_eq_case(1)
thf(fact_134_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_135_option_Odisc__eq__case_I2_J, axiom,
    ((![Option : option_ty]: ((~ ((Option = none_ty))) = (case_option_o_ty @ $false @ (^[Uu : ty]: $true) @ Option))))). % option.disc_eq_case(2)
thf(fact_136_option_Odisc__eq__case_I2_J, axiom,
    ((![Option : option_nat]: ((~ ((Option = none_nat))) = (case_option_o_nat @ $false @ (^[Uu : nat]: $true) @ Option))))). % option.disc_eq_case(2)
thf(fact_137_case__optionE, axiom,
    ((![P : $o, Q : nat > $o, X : option_nat]: ((case_option_o_nat @ P @ Q @ X) => (((X = none_nat) => (~ (P))) => (~ ((![Y3 : nat]: ((X = (some_nat @ Y3)) => (~ ((Q @ Y3)))))))))))). % case_optionE
thf(fact_138_case__optionE, axiom,
    ((![P : $o, Q : produc266837688on_val > $o, X : option2118145160on_val]: ((case_o1187854213on_val @ P @ Q @ X) => (((X = none_P1535574167on_val) => (~ (P))) => (~ ((![Y3 : produc266837688on_val]: ((X = (some_P1299442195on_val @ Y3)) => (~ ((Q @ Y3)))))))))))). % case_optionE
thf(fact_139_case__optionE, axiom,
    ((![P : $o, Q : ty > $o, X : option_ty]: ((case_option_o_ty @ P @ Q @ X) => (((X = none_ty) => (~ (P))) => (~ ((![Y3 : ty]: ((X = (some_ty @ Y3)) => (~ ((Q @ Y3)))))))))))). % case_optionE
thf(fact_140_empty__upd__none, axiom,
    ((![X : nat]: ((fun_up262443479on_val @ (^[X5 : nat]: none_P1535574167on_val) @ X @ none_P1535574167on_val) = (^[X5 : nat]: none_P1535574167on_val))))). % empty_upd_none
thf(fact_141_map__upd__nonempty, axiom,
    ((![T : nat > option2118145160on_val, K : nat, X : produc266837688on_val]: (~ (((fun_up262443479on_val @ T @ K @ (some_P1299442195on_val @ X)) = (^[X5 : nat]: none_P1535574167on_val))))))). % map_upd_nonempty
thf(fact_142_exp_Oinject_I1_J, axiom,
    ((![X1 : list_char, Y1 : list_char]: (((new_list_char @ X1) = (new_list_char @ Y1)) = (X1 = Y1))))). % exp.inject(1)
thf(fact_143_fun__upd__upd, axiom,
    ((![F : nat > option2118145160on_val, X : nat, Y2 : option2118145160on_val, Z2 : option2118145160on_val]: ((fun_up262443479on_val @ (fun_up262443479on_val @ F @ X @ Y2) @ X @ Z2) = (fun_up262443479on_val @ F @ X @ Z2))))). % fun_upd_upd
thf(fact_144_fun__upd__triv, axiom,
    ((![F : nat > option2118145160on_val, X : nat]: ((fun_up262443479on_val @ F @ X @ (F @ X)) = F)))). % fun_upd_triv
thf(fact_145_fun__upd__apply, axiom,
    ((fun_up262443479on_val = (^[F2 : nat > option2118145160on_val]: (^[X5 : nat]: (^[Y : option2118145160on_val]: (^[Z : nat]: (if_opt451925058on_val @ (Z = X5) @ Y @ (F2 @ Z))))))))). % fun_upd_apply
thf(fact_146_fun__upd__idem__iff, axiom,
    ((![F : nat > option2118145160on_val, X : nat, Y2 : option2118145160on_val]: (((fun_up262443479on_val @ F @ X @ Y2) = F) = ((F @ X) = Y2))))). % fun_upd_idem_iff
thf(fact_147_fun__upd__twist, axiom,
    ((![A2 : nat, C2 : nat, M : nat > option2118145160on_val, B2 : option2118145160on_val, D : option2118145160on_val]: ((~ ((A2 = C2))) => ((fun_up262443479on_val @ (fun_up262443479on_val @ M @ A2 @ B2) @ C2 @ D) = (fun_up262443479on_val @ (fun_up262443479on_val @ M @ C2 @ D) @ A2 @ B2)))))). % fun_upd_twist
thf(fact_148_fun__upd__other, axiom,
    ((![Z2 : nat, X : nat, F : nat > option2118145160on_val, Y2 : option2118145160on_val]: ((~ ((Z2 = X))) => ((fun_up262443479on_val @ F @ X @ Y2 @ Z2) = (F @ Z2)))))). % fun_upd_other
thf(fact_149_fun__upd__same, axiom,
    ((![F : nat > option2118145160on_val, X : nat, Y2 : option2118145160on_val]: ((fun_up262443479on_val @ F @ X @ Y2 @ X) = Y2)))). % fun_upd_same
thf(fact_150_fun__upd__idem, axiom,
    ((![F : nat > option2118145160on_val, X : nat, Y2 : option2118145160on_val]: (((F @ X) = Y2) => ((fun_up262443479on_val @ F @ X @ Y2) = F))))). % fun_upd_idem
thf(fact_151_fun__upd__eqD, axiom,
    ((![F : nat > option2118145160on_val, X : nat, Y2 : option2118145160on_val, G : nat > option2118145160on_val, Z2 : option2118145160on_val]: (((fun_up262443479on_val @ F @ X @ Y2) = (fun_up262443479on_val @ G @ X @ Z2)) => (Y2 = Z2))))). % fun_upd_eqD
thf(fact_152_fun__upd__def, axiom,
    ((fun_up262443479on_val = (^[F2 : nat > option2118145160on_val]: (^[A3 : nat]: (^[B3 : option2118145160on_val]: (^[X5 : nat]: (if_opt451925058on_val @ (X5 = A3) @ B3 @ (F2 @ X5))))))))). % fun_upd_def
thf(fact_153_map__upd__eqD1, axiom,
    ((![M : nat > option2118145160on_val, A2 : nat, X : produc266837688on_val, N : nat > option2118145160on_val, Y2 : produc266837688on_val]: (((fun_up262443479on_val @ M @ A2 @ (some_P1299442195on_val @ X)) = (fun_up262443479on_val @ N @ A2 @ (some_P1299442195on_val @ Y2))) => (X = Y2))))). % map_upd_eqD1
thf(fact_154_map__upd__triv, axiom,
    ((![T : nat > option2118145160on_val, K : nat, X : produc266837688on_val]: (((T @ K) = (some_P1299442195on_val @ X)) => ((fun_up262443479on_val @ T @ K @ (some_P1299442195on_val @ X)) = T))))). % map_upd_triv
thf(fact_155_map__upd__Some__unfold, axiom,
    ((![M : nat > option2118145160on_val, A2 : nat, B2 : produc266837688on_val, X : nat, Y2 : produc266837688on_val]: (((fun_up262443479on_val @ M @ A2 @ (some_P1299442195on_val @ B2) @ X) = (some_P1299442195on_val @ Y2)) = (((((X = A2)) & ((B2 = Y2)))) | ((((~ ((X = A2)))) & (((M @ X) = (some_P1299442195on_val @ Y2)))))))))). % map_upd_Some_unfold
thf(fact_156_old_Oprod_Oinject, axiom,
    ((![A2 : list_char, B2 : produc1257910179t_char > option_val, A4 : list_char, B4 : produc1257910179t_char > option_val]: (((produc904988266on_val @ A2 @ B2) = (produc904988266on_val @ A4 @ B4)) = (((A2 = A4)) & ((B2 = B4))))))). % old.prod.inject
thf(fact_157_prod_Oinject, axiom,
    ((![X1 : list_char, X2 : produc1257910179t_char > option_val, Y1 : list_char, Y22 : produc1257910179t_char > option_val]: (((produc904988266on_val @ X1 @ X2) = (produc904988266on_val @ Y1 @ Y22)) = (((X1 = Y1)) & ((X2 = Y22))))))). % prod.inject
thf(fact_158_fields__def2, axiom,
    ((![P : list_P1234162913t_char, C : list_char, FDTs : list_P1991792281har_ty]: ((fields1441617180t_char @ P @ C @ FDTs) => ((fields1811926268t_char @ P @ C) = FDTs))))). % fields_def2
thf(fact_159_surj__pair, axiom,
    ((![P4 : produc266837688on_val]: (?[X3 : list_char, Y3 : produc1257910179t_char > option_val]: (P4 = (produc904988266on_val @ X3 @ Y3)))))). % surj_pair
thf(fact_160_prod__cases, axiom,
    ((![P : produc266837688on_val > $o, P4 : produc266837688on_val]: ((![A : list_char, B : produc1257910179t_char > option_val]: (P @ (produc904988266on_val @ A @ B))) => (P @ P4))))). % prod_cases
thf(fact_161_Pair__inject, axiom,
    ((![A2 : list_char, B2 : produc1257910179t_char > option_val, A4 : list_char, B4 : produc1257910179t_char > option_val]: (((produc904988266on_val @ A2 @ B2) = (produc904988266on_val @ A4 @ B4)) => (~ (((A2 = A4) => (~ ((B2 = B4)))))))))). % Pair_inject
thf(fact_162_old_Oprod_Oexhaust, axiom,
    ((![Y2 : produc266837688on_val]: (~ ((![A : list_char, B : produc1257910179t_char > option_val]: (~ ((Y2 = (produc904988266on_val @ A @ B)))))))))). % old.prod.exhaust
thf(fact_163_old_Oprod_Oinducts, axiom,
    ((![P : produc266837688on_val > $o, Prod : produc266837688on_val]: ((![A : list_char, B : produc1257910179t_char > option_val]: (P @ (produc904988266on_val @ A @ B))) => (P @ Prod))))). % old.prod.inducts
thf(fact_164_hconf__new, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, A2 : nat, Obj : produc266837688on_val]: ((hconf_1244167010t_char @ P @ H) => (((H @ A2) = none_P1535574167on_val) => ((oconf_454120169t_char @ P @ H @ Obj) => (hconf_1244167010t_char @ P @ (fun_up262443479on_val @ H @ A2 @ (some_P1299442195on_val @ Obj))))))))). % hconf_new
thf(fact_165_hext__new, axiom,
    ((![H : nat > option2118145160on_val, A2 : nat, X : produc266837688on_val]: (((H @ A2) = none_P1535574167on_val) => (hext @ H @ (fun_up262443479on_val @ H @ A2 @ (some_P1299442195on_val @ X))))))). % hext_new
thf(fact_166_hext__refl, axiom,
    ((![H : nat > option2118145160on_val]: (hext @ H @ H)))). % hext_refl
thf(fact_167_hext__trans, axiom,
    ((![H : nat > option2118145160on_val, H2 : nat > option2118145160on_val, H3 : nat > option2118145160on_val]: ((hext @ H @ H2) => ((hext @ H2 @ H3) => (hext @ H @ H3)))))). % hext_trans
thf(fact_168_hconfD, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, A2 : nat, Obj : produc266837688on_val]: ((hconf_1244167010t_char @ P @ H) => (((H @ A2) = (some_P1299442195on_val @ Obj)) => (oconf_454120169t_char @ P @ H @ Obj)))))). % hconfD
thf(fact_169_hextI, axiom,
    ((![H : nat > option2118145160on_val, H2 : nat > option2118145160on_val]: ((![A : nat, C3 : list_char, Fs : produc1257910179t_char > option_val]: (((H @ A) = (some_P1299442195on_val @ (produc904988266on_val @ C3 @ Fs))) => (?[Fs2 : produc1257910179t_char > option_val]: ((H2 @ A) = (some_P1299442195on_val @ (produc904988266on_val @ C3 @ Fs2)))))) => (hext @ H @ H2))))). % hextI
thf(fact_170_hext__def, axiom,
    ((hext = (^[H4 : nat > option2118145160on_val]: (^[H5 : nat > option2118145160on_val]: (![A3 : nat]: (![C4 : list_char]: (![Fs3 : produc1257910179t_char > option_val]: ((((H4 @ A3) = (some_P1299442195on_val @ (produc904988266on_val @ C4 @ Fs3)))) => ((?[Fs4 : produc1257910179t_char > option_val]: ((H5 @ A3) = (some_P1299442195on_val @ (produc904988266on_val @ C4 @ Fs4)))))))))))))). % hext_def
thf(fact_171_hext__objD, axiom,
    ((![H : nat > option2118145160on_val, H2 : nat > option2118145160on_val, A2 : nat, C : list_char, Fs5 : produc1257910179t_char > option_val]: ((hext @ H @ H2) => (((H @ A2) = (some_P1299442195on_val @ (produc904988266on_val @ C @ Fs5))) => (?[Fs6 : produc1257910179t_char > option_val]: ((H2 @ A2) = (some_P1299442195on_val @ (produc904988266on_val @ C @ Fs6))))))))). % hext_objD
thf(fact_172_oconf__init__fields, axiom,
    ((![P : list_P1234162913t_char, C : list_char, FDTs : list_P1991792281har_ty, H : nat > option2118145160on_val]: ((fields1441617180t_char @ P @ C @ FDTs) => (oconf_454120169t_char @ P @ H @ (produc904988266on_val @ C @ (init_fields @ FDTs))))))). % oconf_init_fields
thf(fact_173_hext__upd__obj, axiom,
    ((![H : nat > option2118145160on_val, A2 : nat, C : list_char, Fs5 : produc1257910179t_char > option_val, Fs7 : produc1257910179t_char > option_val]: (((H @ A2) = (some_P1299442195on_val @ (produc904988266on_val @ C @ Fs5))) => (hext @ H @ (fun_up262443479on_val @ H @ A2 @ (some_P1299442195on_val @ (produc904988266on_val @ C @ Fs7)))))))). % hext_upd_obj
thf(fact_174_hconf__upd__obj, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, A2 : nat, C : list_char, Fs5 : produc1257910179t_char > option_val, Fs7 : produc1257910179t_char > option_val]: ((hconf_1244167010t_char @ P @ H) => (((H @ A2) = (some_P1299442195on_val @ (produc904988266on_val @ C @ Fs5))) => ((oconf_454120169t_char @ P @ H @ (produc904988266on_val @ C @ Fs7)) => (hconf_1244167010t_char @ P @ (fun_up262443479on_val @ H @ A2 @ (some_P1299442195on_val @ (produc904988266on_val @ C @ Fs7)))))))))). % hconf_upd_obj
thf(fact_175_WTrt__hext__mono, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, E : list_char > option_ty, E2 : exp_list_char, T2 : ty, H2 : nat > option2118145160on_val]: ((wTrt @ P @ H @ E @ E2 @ T2) => ((hext @ H @ H2) => (wTrt @ P @ H2 @ E @ E2 @ T2)))))). % WTrt_hext_mono
thf(fact_176_hconf__def, axiom,
    ((hconf_1244167010t_char = (^[P3 : list_P1234162913t_char]: (^[H4 : nat > option2118145160on_val]: (((![A3 : nat]: (![Obj2 : produc266837688on_val]: ((((H4 @ A3) = (some_P1299442195on_val @ Obj2))) => ((oconf_454120169t_char @ P3 @ H4 @ Obj2)))))) & ((preallocated @ H4)))))))). % hconf_def
thf(fact_177_pred__equals__eq2, axiom,
    ((![R : set_Pr2075231726on_val, S : set_Pr2075231726on_val]: (((^[X5 : list_char]: (^[Y : produc1257910179t_char > option_val]: (member1296415951on_val @ (produc904988266on_val @ X5 @ Y) @ R))) = (^[X5 : list_char]: (^[Y : produc1257910179t_char > option_val]: (member1296415951on_val @ (produc904988266on_val @ X5 @ Y) @ S)))) = (R = S))))). % pred_equals_eq2
thf(fact_178_preallocated__new, axiom,
    ((![H : nat > option2118145160on_val, A2 : nat, X : produc266837688on_val]: ((preallocated @ H) => (((H @ A2) = none_P1535574167on_val) => (preallocated @ (fun_up262443479on_val @ H @ A2 @ (some_P1299442195on_val @ X)))))))). % preallocated_new
thf(fact_179_preallocated__upd__obj, axiom,
    ((![H : nat > option2118145160on_val, A2 : nat, C : list_char, Fs5 : produc1257910179t_char > option_val, Fs7 : produc1257910179t_char > option_val]: ((preallocated @ H) => (((H @ A2) = (some_P1299442195on_val @ (produc904988266on_val @ C @ Fs5))) => (preallocated @ (fun_up262443479on_val @ H @ A2 @ (some_P1299442195on_val @ (produc904988266on_val @ C @ Fs7))))))))). % preallocated_upd_obj
thf(fact_180_map__le__imp__upd__le, axiom,
    ((![M1 : nat > option2118145160on_val, M2 : nat > option2118145160on_val, X : nat, Y2 : produc266837688on_val]: ((map_le931214383on_val @ M1 @ M2) => (map_le931214383on_val @ (fun_up262443479on_val @ M1 @ X @ none_P1535574167on_val) @ (fun_up262443479on_val @ M2 @ X @ (some_P1299442195on_val @ Y2))))))). % map_le_imp_upd_le
thf(fact_181_map__le__imp__upd__le, axiom,
    ((![M1 : list_char > option_ty, M2 : list_char > option_ty, X : list_char, Y2 : 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 @ Y2))))))). % map_le_imp_upd_le
thf(fact_182_WTrt__env__mono, axiom,
    ((![P : list_P1234162913t_char, H : nat > option2118145160on_val, E : list_char > option_ty, E2 : exp_list_char, T2 : ty, E3 : list_char > option_ty]: ((wTrt @ P @ H @ E @ E2 @ T2) => ((map_le_list_char_ty @ E @ E3) => (wTrt @ P @ H @ E3 @ E2 @ T2)))))). % WTrt_env_mono
thf(fact_183_map__le__upd, axiom,
    ((![F : list_char > option_ty, G : list_char > option_ty, A2 : list_char, B2 : option_ty]: ((map_le_list_char_ty @ F @ G) => (map_le_list_char_ty @ (fun_up9191ion_ty @ F @ A2 @ B2) @ (fun_up9191ion_ty @ G @ A2 @ B2)))))). % map_le_upd
thf(fact_184_map__le__upd, axiom,
    ((![F : nat > option2118145160on_val, G : nat > option2118145160on_val, A2 : nat, B2 : option2118145160on_val]: ((map_le931214383on_val @ F @ G) => (map_le931214383on_val @ (fun_up262443479on_val @ F @ A2 @ B2) @ (fun_up262443479on_val @ G @ A2 @ B2)))))). % map_le_upd
thf(fact_185_map__le__refl, axiom,
    ((![F : list_char > option_ty]: (map_le_list_char_ty @ F @ F)))). % map_le_refl
thf(fact_186_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_187_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_188_map__le__empty, axiom,
    ((![G : list_char > option_ty]: (map_le_list_char_ty @ (^[X5 : list_char]: none_ty) @ G)))). % map_le_empty
thf(fact_189_upd__None__map__le, axiom,
    ((![F : nat > option2118145160on_val, X : nat]: (map_le931214383on_val @ (fun_up262443479on_val @ F @ X @ none_P1535574167on_val) @ F)))). % upd_None_map_le
thf(fact_190_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_191_fields__def, axiom,
    ((fields1811926268t_char = (^[P3 : list_P1234162913t_char]: (^[C4 : list_char]: (the_li2019826130har_ty @ (fields1441617180t_char @ P3 @ C4))))))). % fields_def
thf(fact_192_typeof__lit__typeof, axiom,
    ((![V2 : val, T2 : ty, H : nat > option2118145160on_val]: (((typeof_h @ (^[X5 : nat]: none_P1535574167on_val) @ V2) = (some_ty @ T2)) => ((typeof_h @ H @ V2) = (some_ty @ T2)))))). % typeof_lit_typeof
thf(fact_193_hext__typeof__mono, axiom,
    ((![H : nat > option2118145160on_val, H2 : nat > option2118145160on_val, V2 : val, T2 : ty]: ((hext @ H @ H2) => (((typeof_h @ H @ V2) = (some_ty @ T2)) => ((typeof_h @ H2 @ V2) = (some_ty @ T2))))))). % hext_typeof_mono

% Helper facts (3)
thf(help_If_3_1_If_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_T, axiom,
    ((![P : $o]: ((P = $true) | (P = $false))))).
thf(help_If_2_1_If_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_T, axiom,
    ((![X : option2118145160on_val, Y2 : option2118145160on_val]: ((if_opt451925058on_val @ $false @ X @ Y2) = Y2)))).
thf(help_If_1_1_If_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_T, axiom,
    ((![X : option2118145160on_val, Y2 : option2118145160on_val]: ((if_opt451925058on_val @ $true @ X @ Y2) = X)))).

% Conjectures (1)
thf(conj_0, conjecture,
    (((ha @ a) = none_P1535574167on_val))).
