TPTP Problem File: SLH0528^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : SLH0000^1 : TPTP v8.2.0. Released v8.2.0.
% Domain   : Archive of Formal Proofs
% Problem  :
% Version  : Especial.
% English  :

% Refs     : [Des23] Desharnais (2023), Email to Geoff Sutcliffe
% Source   : [Des23]
% Names    : Combinable_Wands/0002_PartialHeapSA/prob_00328_011489__7298334_1 [Des23]

% Status   : Theorem
% Rating   : ? v8.2.0
% Syntax   : Number of formulae    : 1551 ( 590 unt; 515 typ;   0 def)
%            Number of atoms       : 2716 (1726 equ;   0 cnn)
%            Maximal formula atoms :   14 (   2 avg)
%            Number of connectives : 7745 ( 437   ~;  54   |; 178   &;6163   @)
%                                         (   0 <=>; 913  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   20 (   5 avg)
%            Number of types       :   55 (  54 usr)
%            Number of type conns  : 2532 (2532   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :  464 ( 461 usr;  41 con; 0-4 aty)
%            Number of variables   : 2799 ( 312   ^;2396   !;  91   ?;2799   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2023-01-19 09:08:35.845
%------------------------------------------------------------------------------
% Could-be-implicit typings (54)
thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_J,type,
    list_P5521618065476132895on_val: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_J,type,
    set_Pr4305388979797279737on_val: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    produc1317171644805857433on_val: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_Mt__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J_J,type,
    produc5803078220529002682t_char: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__PartialHeapSA__Ostate_J_J,type,
    list_P5536455655026101949_state: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__PartialHeapSA__Ostate_J_J,type,
    set_Pr6040071838687925911_state: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Mask__Oval_J_J,type,
    list_P7552871840895951722al_val: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Mask__Oval_J_J,type,
    set_Pr5678771902342202384al_val: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__PartialHeapSA__Ostate_J,type,
    produc3589956252253634615_state: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Mask__Oval_J,type,
    produc4587312360482870618al_val: $tType ).

thf(ty_n_t__Set__Oset_It__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_J,type,
    set_op6240181410663953058on_val: $tType ).

thf(ty_n_t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    option8887860577033306220on_val: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    list_P8058578141249370668on_val: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    set_Pr7649655576376376530on_val: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    produc9003781588162623004on_val: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_Mt__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    produc2489117125269924006t_char: $tType ).

thf(ty_n_t__Set__Oset_It__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    set_op8153969091884965280on_val: $tType ).

thf(ty_n_t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    option5747939881698552298on_val: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Mask__Oval_J_J,type,
    list_P375024181684815772ar_val: $tType ).

thf(ty_n_t__Set__Oset_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    set_Pr1004501353197068112on_val: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Mask__Oval_J_J,type,
    set_Pr7730668076155855478ar_val: $tType ).

thf(ty_n_t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_J,type,
    option3572569098863364761r_prat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    produc3933091914578511633r_prat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Option__Ooption_It__PartialHeapSA__Ostate_J_Mt__Option__Ooption_It__PartialHeapSA__Ostate_J_J,type,
    produc3142500478612311029_state: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Mask__Oval_J,type,
    produc4494260595660908054ar_val: $tType ).

thf(ty_n_t__List__Olist_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_J,type,
    list_P6121108298706723033r_prat: $tType ).

thf(ty_n_t__Set__Oset_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_J,type,
    set_Pr3433046674199179443r_prat: $tType ).

thf(ty_n_t__Set__Oset_It__Option__Ooption_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J_J,type,
    set_op9137726805559506488t_char: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Option__Ooption_It__Mask__Oval_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    produc5122021904355189735on_val: $tType ).

thf(ty_n_t__Option__Ooption_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    option2736423997234022232t_char: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    list_P8003064839462976920t_char: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    set_Pr2507339680178222706t_char: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    produc1457211279475724562t_char: $tType ).

thf(ty_n_t__Set__Oset_It__Option__Ooption_It__List__Olist_It__String__Ochar_J_J_J,type,
    set_option_list_char: $tType ).

thf(ty_n_t__Option__Ooption_It__Option__Ooption_It__PartialHeapSA__Ostate_J_J,type,
    option_option_state: $tType ).

thf(ty_n_t__Set__Oset_It__Option__Ooption_It__PartialHeapSA__Ostate_J_J,type,
    set_option_state: $tType ).

thf(ty_n_t__Option__Ooption_It__Option__Ooption_It__Mask__Oval_J_J,type,
    option_option_val: $tType ).

thf(ty_n_t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    option_list_char: $tType ).

thf(ty_n_t__Set__Oset_It__Option__Ooption_It__Mask__Oval_J_J,type,
    set_option_val: $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__PartialHeapSA__Ostate_J,type,
    option_state: $tType ).

thf(ty_n_t__List__Olist_It__PartialHeapSA__Ostate_J,type,
    list_state: $tType ).

thf(ty_n_t__Set__Oset_It__PartialHeapSA__Ostate_J,type,
    set_state: $tType ).

thf(ty_n_t__Option__Ooption_It__Mask__Oval_J,type,
    option_val: $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__List__Olist_It__Mask__Oval_J,type,
    list_val: $tType ).

thf(ty_n_t__List__Olist_It__Nat__Onat_J,type,
    list_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Mask__Oval_J,type,
    set_val: $tType ).

thf(ty_n_t__Set__Oset_It__Nat__Onat_J,type,
    set_nat: $tType ).

thf(ty_n_t__PartialHeapSA__Ostate,type,
    state: $tType ).

thf(ty_n_t__PosRat__Oprat,type,
    prat: $tType ).

thf(ty_n_t__Mask__Oval,type,
    val: $tType ).

thf(ty_n_t__Nat__Onat,type,
    nat: $tType ).

% Explicit typings (461)
thf(sy_c_BNF__Def_OGrp_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    bNF_Gr7204040508389623334on_val: set_op6240181410663953058on_val > ( option8887860577033306220on_val > option5747939881698552298on_val ) > option8887860577033306220on_val > option5747939881698552298on_val > $o ).

thf(sy_c_BNF__Def_OGrp_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_J,type,
    bNF_Gr4505501571886485853r_prat: set_op6240181410663953058on_val > ( option8887860577033306220on_val > option3572569098863364761r_prat ) > option8887860577033306220on_val > option3572569098863364761r_prat > $o ).

thf(sy_c_BNF__Def_OGrp_001t__Option__Ooption_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    bNF_Gr8228872360220102203t_char: set_op9137726805559506488t_char > ( option2736423997234022232t_char > option_list_char ) > option2736423997234022232t_char > option_list_char > $o ).

thf(sy_c_BNF__Def_OGrp_001t__Option__Ooption_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J_001t__Option__Ooption_It__Nat__Onat_J,type,
    bNF_Gr8209631520120356778on_nat: set_op9137726805559506488t_char > ( option2736423997234022232t_char > option_nat ) > option2736423997234022232t_char > option_nat > $o ).

thf(sy_c_BNF__Def_Orel__fun_001t__Mask__Oval_001t__Mask__Oval_001t__Option__Ooption_It__Mask__Oval_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    bNF_re7986259651653764189on_val: ( val > val > $o ) > ( option_val > option_val > $o ) > ( val > option_val ) > ( val > option_val ) > $o ).

thf(sy_c_BNF__Def_Orel__fun_001t__Mask__Oval_001t__PartialHeapSA__Ostate_001t__Option__Ooption_It__Mask__Oval_J_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    bNF_re724738890469284915_state: ( val > state > $o ) > ( option_val > option_state > $o ) > ( val > option_val ) > ( state > option_state ) > $o ).

thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_It__Mask__Oval_J_001t__Option__Ooption_It__Mask__Oval_J_001_Eo_001_Eo,type,
    bNF_re8803170646668426653al_o_o: ( option_val > option_val > $o ) > ( $o > $o > $o ) > ( option_val > $o ) > ( option_val > $o ) > $o ).

thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_It__Mask__Oval_J_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001_Eo_001_Eo,type,
    bNF_re9208312572002657588te_o_o: ( option_val > option_state > $o ) > ( $o > $o > $o ) > ( option_val > $o ) > ( option_state > $o ) > $o ).

thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__Option__Ooption_It__Mask__Oval_J_001_Eo_001_Eo,type,
    bNF_re3324221780734229534al_o_o: ( option_state > option_val > $o ) > ( $o > $o > $o ) > ( option_state > $o ) > ( option_val > $o ) > $o ).

thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001_Eo_001_Eo,type,
    bNF_re6905797707481504115te_o_o: ( option_state > option_state > $o ) > ( $o > $o > $o ) > ( option_state > $o ) > ( option_state > $o ) > $o ).

thf(sy_c_BNF__Def_Orel__fun_001t__PartialHeapSA__Ostate_001t__Mask__Oval_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    bNF_re3246193597797267091on_val: ( state > val > $o ) > ( option_state > option_val > $o ) > ( state > option_state ) > ( val > option_val ) > $o ).

thf(sy_c_BNF__Def_Orel__fun_001t__PartialHeapSA__Ostate_001t__PartialHeapSA__Ostate_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    bNF_re349789735553525609_state: ( state > state > $o ) > ( option_state > option_state > $o ) > ( state > option_state ) > ( state > option_state ) > $o ).

thf(sy_c_Finite__Set_Ofinite_001t__Mask__Oval,type,
    finite_finite_val: set_val > $o ).

thf(sy_c_Finite__Set_Ofinite_001t__Option__Ooption_It__Mask__Oval_J,type,
    finite4212117559080419824on_val: set_option_val > $o ).

thf(sy_c_Finite__Set_Ofinite_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    finite3180955649987104801_state: set_option_state > $o ).

thf(sy_c_Finite__Set_Ofinite_001t__PartialHeapSA__Ostate,type,
    finite_finite_state: set_state > $o ).

thf(sy_c_Finite__Set_Ofinite_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    finite8324237431073730739on_val: set_Pr7649655576376376530on_val > $o ).

thf(sy_c_Finite__Set_Ofold_001t__Mask__Oval_001t__Option__Ooption_It__Mask__Oval_J,type,
    finite4564359178381958990on_val: ( val > option_val > option_val ) > option_val > set_val > option_val ).

thf(sy_c_Finite__Set_Ofold_001t__PartialHeapSA__Ostate_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    finite8091670487289438734_state: ( state > option_state > option_state ) > option_state > set_state > option_state ).

thf(sy_c_Fun_Obij__betw_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    bij_be532653817181524272on_val: ( produc9003781588162623004on_val > produc9003781588162623004on_val ) > set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val > $o ).

thf(sy_c_Fun_Ocomp_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    comp_P4400950274061688490r_prat: ( ( produc1457211279475724562t_char > option_val ) > option5747939881698552298on_val ) > ( ( produc1457211279475724562t_char > prat ) > produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ).

thf(sy_c_Fun_Ocomp_001t__List__Olist_It__String__Ochar_J_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J_001t__Nat__Onat,type,
    comp_l4346807716514216519ar_nat: ( list_char > option_list_char ) > ( nat > list_char ) > nat > option_list_char ).

thf(sy_c_Fun_Ocomp_001t__Option__Ooption_It__Mask__Oval_J_001t__Mask__Oval_001t__Mask__Oval,type,
    comp_o5604524432708427236al_val: ( option_val > val ) > ( val > option_val ) > val > val ).

thf(sy_c_Fun_Ocomp_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__PartialHeapSA__Ostate_001t__PartialHeapSA__Ostate,type,
    comp_o4916166309651032803_state: ( option_state > state ) > ( state > option_state ) > state > state ).

thf(sy_c_Fun_Ocomp_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    comp_P6513993558795193993on_val: ( produc9003781588162623004on_val > option8887860577033306220on_val ) > ( produc9003781588162623004on_val > produc9003781588162623004on_val ) > produc9003781588162623004on_val > option8887860577033306220on_val ).

thf(sy_c_Fun_Ofun__upd_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    fun_up1601731230164360576on_val: ( ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ) > ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val > ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ).

thf(sy_c_Fun_Ofun__upd_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001t__PosRat__Oprat,type,
    fun_up9120501182914450918t_prat: ( ( produc1457211279475724562t_char > prat ) > prat ) > ( produc1457211279475724562t_char > prat ) > prat > ( produc1457211279475724562t_char > prat ) > prat ).

thf(sy_c_Fun_Ofun__upd_001t__Mask__Oval_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    fun_up7032939564753911157t_char: ( val > option_list_char ) > val > option_list_char > val > option_list_char ).

thf(sy_c_Fun_Ofun__upd_001t__Mask__Oval_001t__Option__Ooption_It__Mask__Oval_J,type,
    fun_up735531404784515971on_val: ( val > option_val ) > val > option_val > val > option_val ).

thf(sy_c_Fun_Ofun__upd_001t__Mask__Oval_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    fun_up7100790768922270414_state: ( val > option_state ) > val > option_state > val > option_state ).

thf(sy_c_Fun_Ofun__upd_001t__Nat__Onat_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    fun_up4009399622604172288t_char: ( nat > option_list_char ) > nat > option_list_char > nat > option_list_char ).

thf(sy_c_Fun_Ofun__upd_001t__Nat__Onat_001t__Option__Ooption_It__Mask__Oval_J,type,
    fun_up810121132392276792on_val: ( nat > option_val ) > nat > option_val > nat > option_val ).

thf(sy_c_Fun_Ofun__upd_001t__Nat__Onat_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    fun_up5089051266557015257_state: ( nat > option_state ) > nat > option_state > nat > option_state ).

thf(sy_c_Fun_Ofun__upd_001t__Option__Ooption_It__Mask__Oval_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    fun_up8761876891205509693on_val: ( option_val > option_val ) > option_val > option_val > option_val > option_val ).

thf(sy_c_Fun_Ofun__upd_001t__Option__Ooption_It__Mask__Oval_J_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    fun_up2039547756584784788_state: ( option_val > option_state ) > option_val > option_state > option_val > option_state ).

thf(sy_c_Fun_Ofun__upd_001t__PartialHeapSA__Ostate_001t__PosRat__Oprat,type,
    fun_upd_state_prat: ( state > prat ) > state > prat > state > prat ).

thf(sy_c_Fun_Ofun__upd_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    fun_up8559965269643824108on_val: ( produc9003781588162623004on_val > option_val ) > produc9003781588162623004on_val > option_val > produc9003781588162623004on_val > option_val ).

thf(sy_c_Fun_Ofun__upd_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    fun_up6681822530636708645_state: ( produc9003781588162623004on_val > option_state ) > produc9003781588162623004on_val > option_state > produc9003781588162623004on_val > option_state ).

thf(sy_c_Fun_Ofun__upd_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    fun_up273046073882939271on_val: ( produc9003781588162623004on_val > option8887860577033306220on_val ) > produc9003781588162623004on_val > option8887860577033306220on_val > produc9003781588162623004on_val > option8887860577033306220on_val ).

thf(sy_c_Fun_Ofun__upd_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PosRat__Oprat,type,
    fun_up322103695952382443l_prat: ( produc9003781588162623004on_val > prat ) > produc9003781588162623004on_val > prat > produc9003781588162623004on_val > prat ).

thf(sy_c_Fun_Ofun__upd_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    fun_up5735975307950539954on_val: ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val > produc1457211279475724562t_char > option_val ).

thf(sy_c_Fun_Ofun__upd_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__PosRat__Oprat,type,
    fun_up829850848796697765r_prat: ( produc1457211279475724562t_char > prat ) > produc1457211279475724562t_char > prat > produc1457211279475724562t_char > prat ).

thf(sy_c_Fun_Ofun__upd_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_001t__PosRat__Oprat,type,
    fun_up4040928134582614060l_prat: ( produc1317171644805857433on_val > prat ) > produc1317171644805857433on_val > prat > produc1317171644805857433on_val > prat ).

thf(sy_c_Fun_Oid_001t__Mask__Oval,type,
    id_val: val > val ).

thf(sy_c_Fun_Oid_001t__PartialHeapSA__Ostate,type,
    id_state: state > state ).

thf(sy_c_Fun_Oinj__on_001t__Mask__Oval_001t__Option__Ooption_It__Mask__Oval_J,type,
    inj_on4074814566786472055on_val: ( val > option_val ) > set_val > $o ).

thf(sy_c_Fun_Oinj__on_001t__PartialHeapSA__Ostate_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    inj_on3577428053172332983_state: ( state > option_state ) > set_state > $o ).

thf(sy_c_Fun_Oinj__on_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    inj_on3812695684120442372r_prat: ( produc9003781588162623004on_val > produc1457211279475724562t_char > prat ) > set_Pr7649655576376376530on_val > $o ).

thf(sy_c_Fun_Oinj__on_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    inj_on7948954794846770859on_val: ( produc9003781588162623004on_val > produc9003781588162623004on_val ) > set_Pr7649655576376376530on_val > $o ).

thf(sy_c_Fun_Oinj__on_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Nat__Onat,type,
    inj_on2499120878504899377ar_nat: ( produc1457211279475724562t_char > nat ) > set_Pr2507339680178222706t_char > $o ).

thf(sy_c_Fun_Oinj__on_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    inj_on4474484569326248358on_val: ( produc1457211279475724562t_char > option_val ) > set_Pr2507339680178222706t_char > $o ).

thf(sy_c_Fun_Othe__inv__into_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    the_in8616418995011220461on_val: set_Pr7649655576376376530on_val > ( produc9003781588162623004on_val > produc9003781588162623004on_val ) > produc9003781588162623004on_val > produc9003781588162623004on_val ).

thf(sy_c_Groups_Ominus__class_Ominus_001t__Set__Oset_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    minus_9160195963678339755on_val: set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val ).

thf(sy_c_If_001t__Mask__Oval,type,
    if_val: $o > val > val > val ).

thf(sy_c_If_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    if_opt6509584284076893604on_val: $o > option5747939881698552298on_val > option5747939881698552298on_val > option5747939881698552298on_val ).

thf(sy_c_If_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    if_option_list_char: $o > option_list_char > option_list_char > option_list_char ).

thf(sy_c_If_001t__Option__Ooption_It__Mask__Oval_J,type,
    if_option_val: $o > option_val > option_val > option_val ).

thf(sy_c_If_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    if_option_state: $o > option_state > option_state > option_state ).

thf(sy_c_If_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    if_opt2965748431298708774on_val: $o > option8887860577033306220on_val > option8887860577033306220on_val > option8887860577033306220on_val ).

thf(sy_c_If_001t__PosRat__Oprat,type,
    if_prat: $o > prat > prat > prat ).

thf(sy_c_Lattices_Oinf__class_Oinf_001t__Set__Oset_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    inf_in3544766959038609504t_char: set_Pr2507339680178222706t_char > set_Pr2507339680178222706t_char > set_Pr2507339680178222706t_char ).

thf(sy_c_Lattices_Osup__class_Osup_001t__Set__Oset_It__Mask__Oval_J,type,
    sup_sup_set_val: set_val > set_val > set_val ).

thf(sy_c_Lattices_Osup__class_Osup_001t__Set__Oset_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    sup_su7506060154676209150on_val: set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val ).

thf(sy_c_Lattices_Osup__class_Osup_001t__Set__Oset_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    sup_su7899656352754981958t_char: set_Pr2507339680178222706t_char > set_Pr2507339680178222706t_char > set_Pr2507339680178222706t_char ).

thf(sy_c_Lattices_Osup__class_Osup_001t__Set__Oset_It__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Mask__Oval_J_J,type,
    sup_su5754804325903363146ar_val: set_Pr7730668076155855478ar_val > set_Pr7730668076155855478ar_val > set_Pr7730668076155855478ar_val ).

thf(sy_c_Lattices__Big_Osemilattice__set_001t__Mask__Oval,type,
    lattic1688671459694253327et_val: ( val > val > val ) > $o ).

thf(sy_c_Lattices__Big_Osemilattice__set_001t__PartialHeapSA__Ostate,type,
    lattic1830746154417612460_state: ( state > state > state ) > $o ).

thf(sy_c_Lattices__Big_Osemilattice__set_OF_001t__Mask__Oval,type,
    lattic7553830378228561755_F_val: ( val > val > val ) > set_val > val ).

thf(sy_c_Lattices__Big_Osemilattice__set_OF_001t__PartialHeapSA__Ostate,type,
    lattic8707496982837646688_state: ( state > state > state ) > set_state > state ).

thf(sy_c_List_Oappend_001t__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Mask__Oval_J,type,
    append2405376958821693873ar_val: list_P375024181684815772ar_val > list_P375024181684815772ar_val > list_P375024181684815772ar_val ).

thf(sy_c_List_Odistinct_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    distin8840078896927665228r_prat: list_P6121108298706723033r_prat > $o ).

thf(sy_c_List_Odistinct_001t__Nat__Onat,type,
    distinct_nat: list_nat > $o ).

thf(sy_c_List_Odistinct_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    distin602967888454099555on_val: list_P8058578141249370668on_val > $o ).

thf(sy_c_List_Ofind_001t__Mask__Oval,type,
    find_val: ( val > $o ) > list_val > option_val ).

thf(sy_c_List_Ofind_001t__PartialHeapSA__Ostate,type,
    find_state: ( state > $o ) > list_state > option_state ).

thf(sy_c_List_Ofind_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    find_P7418167508921316608on_val: ( produc9003781588162623004on_val > $o ) > list_P8058578141249370668on_val > option8887860577033306220on_val ).

thf(sy_c_List_Ofoldr_001t__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Mask__Oval_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    foldr_426452288693369417on_val: ( produc4494260595660908054ar_val > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val ) > list_P375024181684815772ar_val > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val ).

thf(sy_c_List_Olist_OCons_001t__Mask__Oval,type,
    cons_val: val > list_val > list_val ).

thf(sy_c_List_Olist_OCons_001t__PartialHeapSA__Ostate,type,
    cons_state: state > list_state > list_state ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    cons_P1300772314254706406on_val: produc9003781588162623004on_val > list_P8058578141249370668on_val > list_P8058578141249370668on_val ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    cons_P6700496888814104776t_char: produc1457211279475724562t_char > list_P8003064839462976920t_char > list_P8003064839462976920t_char ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    cons_P1869654434729225551on_val: produc1317171644805857433on_val > list_P5521618065476132895on_val > list_P5521618065476132895on_val ).

thf(sy_c_List_Olist_ONil_001t__Mask__Oval,type,
    nil_val: list_val ).

thf(sy_c_List_Olist_ONil_001t__PartialHeapSA__Ostate,type,
    nil_state: list_state ).

thf(sy_c_List_Olist_Omap_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    map_Pr6126389625903360171on_val: ( ( produc1457211279475724562t_char > prat ) > produc9003781588162623004on_val ) > list_P6121108298706723033r_prat > list_P8058578141249370668on_val ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    map_na9203830342147005692t_char: ( nat > produc1457211279475724562t_char ) > list_nat > list_P8003064839462976920t_char ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    map_Pr7735014948560838385r_prat: ( produc9003781588162623004on_val > produc1457211279475724562t_char > prat ) > list_P8058578141249370668on_val > list_P6121108298706723033r_prat ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    map_Pr201512126527963679al_val: ( produc9003781588162623004on_val > val ) > list_P8058578141249370668on_val > list_val ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    map_Pr4168196228874954140_state: ( produc9003781588162623004on_val > state ) > list_P8058578141249370668on_val > list_state ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    map_Pr6762588844207200055on_val: ( produc9003781588162623004on_val > produc1317171644805857433on_val ) > list_P8058578141249370668on_val > list_P5521618065476132895on_val ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Nat__Onat,type,
    map_Pr2525441637447625118ar_nat: ( produc1457211279475724562t_char > nat ) > list_P8003064839462976920t_char > list_nat ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    map_Pr2662348860696421617on_val: ( produc1317171644805857433on_val > produc9003781588162623004on_val ) > list_P5521618065476132895on_val > list_P8058578141249370668on_val ).

thf(sy_c_List_Olist_Oset_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    set_Pr7516010431435912040r_prat: list_P6121108298706723033r_prat > set_Pr3433046674199179443r_prat ).

thf(sy_c_List_Olist_Oset_001t__Mask__Oval,type,
    set_val2: list_val > set_val ).

thf(sy_c_List_Olist_Oset_001t__Nat__Onat,type,
    set_nat2: list_nat > set_nat ).

thf(sy_c_List_Olist_Oset_001t__PartialHeapSA__Ostate,type,
    set_state2: list_state > set_state ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    set_Pr1015909255637879367on_val: list_P8058578141249370668on_val > set_Pr7649655576376376530on_val ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    set_Pr4422032998922688679t_char: list_P8003064839462976920t_char > set_Pr2507339680178222706t_char ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Mask__Oval_J,type,
    set_Pr8419001214735528069al_val: list_P7552871840895951722al_val > set_Pr5678771902342202384al_val ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__PartialHeapSA__Ostate_J,type,
    set_Pr5697038692337814348_state: list_P5536455655026101949_state > set_Pr6040071838687925911_state ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    set_Pr5935206576607725998on_val: list_P5521618065476132895on_val > set_Pr4305388979797279737on_val ).

thf(sy_c_List_Onth_001t__Mask__Oval,type,
    nth_val: list_val > nat > val ).

thf(sy_c_List_Onth_001t__PartialHeapSA__Ostate,type,
    nth_state: list_state > nat > state ).

thf(sy_c_List_Orev_001t__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Mask__Oval_J,type,
    rev_Pr6055279906267038332ar_val: list_P375024181684815772ar_val > list_P375024181684815772ar_val ).

thf(sy_c_List_Otake_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    take_P84704344506987694on_val: nat > list_P8058578141249370668on_val > list_P8058578141249370668on_val ).

thf(sy_c_List_Ozip_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    zip_Pr897381525307642348al_val: list_P8058578141249370668on_val > list_val > list_P7552871840895951722al_val ).

thf(sy_c_List_Ozip_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    zip_Pr183230366627191183_state: list_P8058578141249370668on_val > list_state > list_P5536455655026101949_state ).

thf(sy_c_List_Ozip_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    zip_Pr909124973800381606ar_val: list_P8003064839462976920t_char > list_val > list_P375024181684815772ar_val ).

thf(sy_c_Map_Odom_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    dom_Pr4152820065153570843on_val: ( ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ) > set_Pr3433046674199179443r_prat ).

thf(sy_c_Map_Odom_001t__Mask__Oval_001t__List__Olist_It__String__Ochar_J,type,
    dom_val_list_char: ( val > option_list_char ) > set_val ).

thf(sy_c_Map_Odom_001t__Mask__Oval_001t__Mask__Oval,type,
    dom_val_val: ( val > option_val ) > set_val ).

thf(sy_c_Map_Odom_001t__Mask__Oval_001t__PartialHeapSA__Ostate,type,
    dom_val_state: ( val > option_state ) > set_val ).

thf(sy_c_Map_Odom_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    dom_nat_list_char: ( nat > option_list_char ) > set_nat ).

thf(sy_c_Map_Odom_001t__Nat__Onat_001t__Mask__Oval,type,
    dom_nat_val: ( nat > option_val ) > set_nat ).

thf(sy_c_Map_Odom_001t__Nat__Onat_001t__PartialHeapSA__Ostate,type,
    dom_nat_state: ( nat > option_state ) > set_nat ).

thf(sy_c_Map_Odom_001t__Option__Ooption_It__Mask__Oval_J_001t__List__Olist_It__String__Ochar_J,type,
    dom_op1123738440007651926t_char: ( option_val > option_list_char ) > set_option_val ).

thf(sy_c_Map_Odom_001t__Option__Ooption_It__Mask__Oval_J_001t__Mask__Oval,type,
    dom_option_val_val: ( option_val > option_val ) > set_option_val ).

thf(sy_c_Map_Odom_001t__Option__Ooption_It__Mask__Oval_J_001t__PartialHeapSA__Ostate,type,
    dom_option_val_state: ( option_val > option_state ) > set_option_val ).

thf(sy_c_Map_Odom_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__List__Olist_It__String__Ochar_J,type,
    dom_op2927896937727732287t_char: ( option_state > option_list_char ) > set_option_state ).

thf(sy_c_Map_Odom_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__Mask__Oval,type,
    dom_option_state_val: ( option_state > option_val ) > set_option_state ).

thf(sy_c_Map_Odom_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__PartialHeapSA__Ostate,type,
    dom_op8569336450220619928_state: ( option_state > option_state ) > set_option_state ).

thf(sy_c_Map_Odom_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    dom_Pr7381289304162206737al_val: ( produc9003781588162623004on_val > option_val ) > set_Pr7649655576376376530on_val ).

thf(sy_c_Map_Odom_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    dom_Pr4448331044451638570_state: ( produc9003781588162623004on_val > option_state ) > set_Pr7649655576376376530on_val ).

thf(sy_c_Map_Odom_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    dom_Pr2742230247756046988on_val: ( produc9003781588162623004on_val > option8887860577033306220on_val ) > set_Pr7649655576376376530on_val ).

thf(sy_c_Map_Odom_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    dom_Pr8989479155164304065ar_val: ( produc1457211279475724562t_char > option_val ) > set_Pr2507339680178222706t_char ).

thf(sy_c_Map_Ograph_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    graph_1288227317702120175on_val: ( ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ) > set_Pr7649655576376376530on_val ).

thf(sy_c_Map_Ograph_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    graph_nat_list_char: ( nat > option_list_char ) > set_Pr2507339680178222706t_char ).

thf(sy_c_Map_Ograph_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    graph_6108330199704490680on_val: ( produc9003781588162623004on_val > option8887860577033306220on_val ) > set_Pr4305388979797279737on_val ).

thf(sy_c_Map_Ograph_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    graph_1733029056113894637ar_val: ( produc1457211279475724562t_char > option_val ) > set_Pr7730668076155855478ar_val ).

thf(sy_c_Map_Omap__add_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    map_ad2898753242718228216on_val: ( ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ) > ( ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ) > ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ).

thf(sy_c_Map_Omap__add_001t__Mask__Oval_001t__List__Olist_It__String__Ochar_J,type,
    map_ad6513282191902725485t_char: ( val > option_list_char ) > ( val > option_list_char ) > val > option_list_char ).

thf(sy_c_Map_Omap__add_001t__Mask__Oval_001t__Mask__Oval,type,
    map_add_val_val: ( val > option_val ) > ( val > option_val ) > val > option_val ).

thf(sy_c_Map_Omap__add_001t__Mask__Oval_001t__PartialHeapSA__Ostate,type,
    map_add_val_state: ( val > option_state ) > ( val > option_state ) > val > option_state ).

thf(sy_c_Map_Omap__add_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    map_ad208561015412637672t_char: ( nat > option_list_char ) > ( nat > option_list_char ) > nat > option_list_char ).

thf(sy_c_Map_Omap__add_001t__Nat__Onat_001t__Mask__Oval,type,
    map_add_nat_val: ( nat > option_val ) > ( nat > option_val ) > nat > option_val ).

thf(sy_c_Map_Omap__add_001t__Nat__Onat_001t__PartialHeapSA__Ostate,type,
    map_add_nat_state: ( nat > option_state ) > ( nat > option_state ) > nat > option_state ).

thf(sy_c_Map_Omap__add_001t__Option__Ooption_It__Mask__Oval_J_001t__Mask__Oval,type,
    map_ad2791809220819668783al_val: ( option_val > option_val ) > ( option_val > option_val ) > option_val > option_val ).

thf(sy_c_Map_Omap__add_001t__Option__Ooption_It__Mask__Oval_J_001t__PartialHeapSA__Ostate,type,
    map_ad1596397661948740748_state: ( option_val > option_state ) > ( option_val > option_state ) > option_val > option_state ).

thf(sy_c_Map_Omap__add_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    map_ad5466549115852757998al_val: ( produc9003781588162623004on_val > option_val ) > ( produc9003781588162623004on_val > option_val ) > produc9003781588162623004on_val > option_val ).

thf(sy_c_Map_Omap__add_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    map_ad2629041965313307917_state: ( produc9003781588162623004on_val > option_state ) > ( produc9003781588162623004on_val > option_state ) > produc9003781588162623004on_val > option_state ).

thf(sy_c_Map_Omap__add_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    map_ad6375351378680859759on_val: ( produc9003781588162623004on_val > option8887860577033306220on_val ) > ( produc9003781588162623004on_val > option8887860577033306220on_val ) > produc9003781588162623004on_val > option8887860577033306220on_val ).

thf(sy_c_Map_Omap__add_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    map_ad2908576761495157028ar_val: ( produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val ).

thf(sy_c_Map_Omap__le_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    map_le7591542393800649736on_val: ( ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ) > ( ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ) > $o ).

thf(sy_c_Map_Omap__le_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    map_le_nat_list_char: ( nat > option_list_char ) > ( nat > option_list_char ) > $o ).

thf(sy_c_Map_Omap__le_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    map_le662008219874789630al_val: ( produc9003781588162623004on_val > option_val ) > ( produc9003781588162623004on_val > option_val ) > $o ).

thf(sy_c_Map_Omap__le_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    map_le2714403320317326333_state: ( produc9003781588162623004on_val > option_state ) > ( produc9003781588162623004on_val > option_state ) > $o ).

thf(sy_c_Map_Omap__le_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    map_le1786601613863086943on_val: ( produc9003781588162623004on_val > option8887860577033306220on_val ) > ( produc9003781588162623004on_val > option8887860577033306220on_val ) > $o ).

thf(sy_c_Map_Omap__le_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    map_le3432596473071271956ar_val: ( produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > option_val ) > $o ).

thf(sy_c_Map_Omap__of_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    map_of8940823041123231434on_val: list_P8058578141249370668on_val > ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ).

thf(sy_c_Map_Omap__of_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    map_of_nat_list_char: list_P8003064839462976920t_char > nat > option_list_char ).

thf(sy_c_Map_Omap__of_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    map_of5667034440649354688al_val: list_P7552871840895951722al_val > produc9003781588162623004on_val > option_val ).

thf(sy_c_Map_Omap__of_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    map_of2328580218031654075_state: list_P5536455655026101949_state > produc9003781588162623004on_val > option_state ).

thf(sy_c_Map_Omap__of_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    map_of2499293770471829533on_val: list_P5521618065476132895on_val > produc9003781588162623004on_val > option8887860577033306220on_val ).

thf(sy_c_Map_Omap__of_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    map_of6844234013878170066ar_val: list_P375024181684815772ar_val > produc1457211279475724562t_char > option_val ).

thf(sy_c_Map_Omap__upds_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    map_up8749164644216650349al_val: ( produc9003781588162623004on_val > option_val ) > list_P8058578141249370668on_val > list_val > produc9003781588162623004on_val > option_val ).

thf(sy_c_Map_Omap__upds_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    map_up1579866409222595534_state: ( produc9003781588162623004on_val > option_state ) > list_P8058578141249370668on_val > list_state > produc9003781588162623004on_val > option_state ).

thf(sy_c_Map_Omap__upds_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    map_up5062815548473444197ar_val: ( produc1457211279475724562t_char > option_val ) > list_P8003064839462976920t_char > list_val > produc1457211279475724562t_char > option_val ).

thf(sy_c_Map_Oran_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    ran_Pr878516737976613822on_val: ( ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ) > set_Pr1004501353197068112on_val ).

thf(sy_c_Map_Oran_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    ran_nat_list_char: ( nat > option_list_char ) > set_list_char ).

thf(sy_c_Map_Oran_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    ran_Pr786515303459910110ar_val: ( produc1457211279475724562t_char > option_val ) > set_val ).

thf(sy_c_Map_Orestrict__map_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    restri7594233908965391805on_val: ( ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ) > set_Pr3433046674199179443r_prat > ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val ).

thf(sy_c_Map_Orestrict__map_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    restri7497266720855523683t_char: ( nat > option_list_char ) > set_nat > nat > option_list_char ).

thf(sy_c_Map_Orestrict__map_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    restri5251746167140823987al_val: ( produc9003781588162623004on_val > option_val ) > set_Pr7649655576376376530on_val > produc9003781588162623004on_val > option_val ).

thf(sy_c_Map_Orestrict__map_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    restri5336766904122854152_state: ( produc9003781588162623004on_val > option_state ) > set_Pr7649655576376376530on_val > produc9003781588162623004on_val > option_state ).

thf(sy_c_Map_Orestrict__map_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    restri2354629191430751338on_val: ( produc9003781588162623004on_val > option8887860577033306220on_val ) > set_Pr7649655576376376530on_val > produc9003781588162623004on_val > option8887860577033306220on_val ).

thf(sy_c_Mask_Oadd__acc_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    add_ac6043276672051819257t_char: ( produc1457211279475724562t_char > prat ) > produc1457211279475724562t_char > prat > produc1457211279475724562t_char > prat ).

thf(sy_c_Mask_Oadd__masks_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    add_ma5081279659257173972r_prat: ( ( produc1457211279475724562t_char > prat ) > prat ) > ( ( produc1457211279475724562t_char > prat ) > prat ) > ( produc1457211279475724562t_char > prat ) > prat ).

thf(sy_c_Mask_Oadd__masks_001t__PartialHeapSA__Ostate,type,
    add_masks_state: ( state > prat ) > ( state > prat ) > state > prat ).

thf(sy_c_Mask_Oadd__masks_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    add_ma7175289307942684891on_val: ( produc9003781588162623004on_val > prat ) > ( produc9003781588162623004on_val > prat ) > produc9003781588162623004on_val > prat ).

thf(sy_c_Mask_Oadd__masks_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    add_ma6586698345353345811t_char: ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > prat ) > produc1457211279475724562t_char > prat ).

thf(sy_c_Mask_Oadd__masks_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    add_ma2842950146128053786on_val: ( produc1317171644805857433on_val > prat ) > ( produc1317171644805857433on_val > prat ) > produc1317171644805857433on_val > prat ).

thf(sy_c_Mask_Oadd__masks__rel_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    add_ma2412268806269088278t_char: produc5803078220529002682t_char > produc5803078220529002682t_char > $o ).

thf(sy_c_Mask_Oempty__mask_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    empty_6616431780912394577r_prat: ( produc1457211279475724562t_char > prat ) > prat ).

thf(sy_c_Mask_Oempty__mask_001t__PartialHeapSA__Ostate,type,
    empty_mask_state: state > prat ).

thf(sy_c_Mask_Oempty__mask_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    empty_6102255041883331742on_val: produc9003781588162623004on_val > prat ).

thf(sy_c_Mask_Oempty__mask_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    empty_3446695950879338768t_char: produc1457211279475724562t_char > prat ).

thf(sy_c_Mask_Oempty__mask_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    empty_4129289814623480215on_val: produc1317171644805857433on_val > prat ).

thf(sy_c_Mask_Oempty__mask__rel_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    empty_3412554051312619034r_prat: ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > prat ) > $o ).

thf(sy_c_Mask_Oempty__mask__rel_001t__PartialHeapSA__Ostate,type,
    empty_mask_rel_state: state > state > $o ).

thf(sy_c_Mask_Oempty__mask__rel_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    empty_5847456986941130773on_val: produc9003781588162623004on_val > produc9003781588162623004on_val > $o ).

thf(sy_c_Mask_Oempty__mask__rel_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    empty_8141283858255108185t_char: produc1457211279475724562t_char > produc1457211279475724562t_char > $o ).

thf(sy_c_Mask_Oempty__mask__rel_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    empty_1698368654852286560on_val: produc1317171644805857433on_val > produc1317171644805857433on_val > $o ).

thf(sy_c_Mask_Ofull__mask,type,
    full_mask: produc1457211279475724562t_char > prat ).

thf(sy_c_Mask_Ogreater__mask_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    greate7680731506090375811t_char: ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > prat ) > $o ).

thf(sy_c_Mask_Omultiply__mask,type,
    multiply_mask: prat > ( produc1457211279475724562t_char > prat ) > produc1457211279475724562t_char > prat ).

thf(sy_c_Mask_Onull_001t__Nat__Onat,type,
    null_nat: nat ).

thf(sy_c_Mask_Opre__get__h_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    pre_ge1486375753531218896on_val: produc9003781588162623004on_val > produc1457211279475724562t_char > option_val ).

thf(sy_c_Mask_Opre__get__h_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    pre_ge5139353195879713175on_val: produc1317171644805857433on_val > produc9003781588162623004on_val ).

thf(sy_c_Mask_Opre__get__h__rel_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    pre_ge6140436789258014353on_val: produc9003781588162623004on_val > produc9003781588162623004on_val > $o ).

thf(sy_c_Mask_Opre__get__h__rel_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    pre_ge7436079647097740950on_val: produc1317171644805857433on_val > produc1317171644805857433on_val > $o ).

thf(sy_c_Mask_Opre__get__m_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    pre_ge8481574585653477131on_val: produc9003781588162623004on_val > produc1457211279475724562t_char > prat ).

thf(sy_c_Mask_Opre__get__m_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    pre_ge2740421702909910421t_char: produc1457211279475724562t_char > nat ).

thf(sy_c_Mask_Opre__get__m_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    pre_ge6899797224320663452on_val: produc1317171644805857433on_val > produc9003781588162623004on_val ).

thf(sy_c_Mask_Opre__get__m__rel_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    pre_ge4462515927930180886on_val: produc9003781588162623004on_val > produc9003781588162623004on_val > $o ).

thf(sy_c_Mask_Opre__get__m__rel_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    pre_ge8748858970926381898t_char: produc1457211279475724562t_char > produc1457211279475724562t_char > $o ).

thf(sy_c_Mask_Opre__get__m__rel_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    pre_ge1694281482089598673on_val: produc1317171644805857433on_val > produc1317171644805857433on_val > $o ).

thf(sy_c_Mask_Ouni__mask_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    uni_ma8757825773229499086r_prat: ( produc1457211279475724562t_char > prat ) > prat > ( produc1457211279475724562t_char > prat ) > prat ).

thf(sy_c_Mask_Ouni__mask_001t__PartialHeapSA__Ostate,type,
    uni_mask_state: state > prat > state > prat ).

thf(sy_c_Mask_Ouni__mask_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    uni_ma3016027189315475553on_val: produc9003781588162623004on_val > prat > produc9003781588162623004on_val > prat ).

thf(sy_c_Mask_Ouni__mask_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    uni_ma6578582744724537101t_char: produc1457211279475724562t_char > prat > produc1457211279475724562t_char > prat ).

thf(sy_c_Mask_Ouni__mask_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    uni_ma2802115457281451284on_val: produc1317171644805857433on_val > prat > produc1317171644805857433on_val > prat ).

thf(sy_c_Mask_Ouni__mask__rel_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    uni_ma1788645471123007132t_char: produc3933091914578511633r_prat > produc3933091914578511633r_prat > $o ).

thf(sy_c_Mask_Oupdate__dm_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    update5099441844846592839t_char: ( produc1457211279475724562t_char > $o ) > ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > prat ) > produc1457211279475724562t_char > $o ).

thf(sy_c_Mask_Oupper__bounded,type,
    upper_bounded: ( produc1457211279475724562t_char > prat ) > prat > $o ).

thf(sy_c_Mask_Ovalid__mask,type,
    valid_mask: ( produc1457211279475724562t_char > prat ) > $o ).

thf(sy_c_Mask_Ovalid__mask__rel,type,
    valid_mask_rel: ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > prat ) > $o ).

thf(sy_c_Mask_Ovalid__null,type,
    valid_null: ( produc1457211279475724562t_char > prat ) > $o ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Mask__Oval_J,type,
    size_size_list_val: list_val > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__PartialHeapSA__Ostate_J,type,
    size_size_list_state: list_state > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    size_s4492361580139269312on_val: list_P8058578141249370668on_val > nat ).

thf(sy_c_Option_Obind_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    bind_P4424090778364213876on_val: option5747939881698552298on_val > ( ( produc1457211279475724562t_char > option_val ) > option5747939881698552298on_val ) > option5747939881698552298on_val ).

thf(sy_c_Option_Obind_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_001t__Mask__Oval,type,
    bind_P5848121846087789735al_val: option5747939881698552298on_val > ( ( produc1457211279475724562t_char > option_val ) > option_val ) > option_val ).

thf(sy_c_Option_Obind_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_001t__PartialHeapSA__Ostate,type,
    bind_P6102080752330912020_state: option5747939881698552298on_val > ( ( produc1457211279475724562t_char > option_val ) > option_state ) > option_state ).

thf(sy_c_Option_Obind_001t__List__Olist_It__String__Ochar_J_001t__List__Olist_It__String__Ochar_J,type,
    bind_l7575086113700739714t_char: option_list_char > ( list_char > option_list_char ) > option_list_char ).

thf(sy_c_Option_Obind_001t__List__Olist_It__String__Ochar_J_001t__Mask__Oval,type,
    bind_list_char_val: option_list_char > ( list_char > option_val ) > option_val ).

thf(sy_c_Option_Obind_001t__List__Olist_It__String__Ochar_J_001t__PartialHeapSA__Ostate,type,
    bind_list_char_state: option_list_char > ( list_char > option_state ) > option_state ).

thf(sy_c_Option_Obind_001t__Mask__Oval_001t__List__Olist_It__String__Ochar_J,type,
    bind_val_list_char: option_val > ( val > option_list_char ) > option_list_char ).

thf(sy_c_Option_Obind_001t__Mask__Oval_001t__Mask__Oval,type,
    bind_val_val: option_val > ( val > option_val ) > option_val ).

thf(sy_c_Option_Obind_001t__Mask__Oval_001t__PartialHeapSA__Ostate,type,
    bind_val_state: option_val > ( val > option_state ) > option_state ).

thf(sy_c_Option_Obind_001t__PartialHeapSA__Ostate_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    bind_s7388421589535509396on_val: option_state > ( state > option5747939881698552298on_val ) > option5747939881698552298on_val ).

thf(sy_c_Option_Obind_001t__PartialHeapSA__Ostate_001t__List__Olist_It__String__Ochar_J,type,
    bind_state_list_char: option_state > ( state > option_list_char ) > option_list_char ).

thf(sy_c_Option_Obind_001t__PartialHeapSA__Ostate_001t__Mask__Oval,type,
    bind_state_val: option_state > ( state > option_val ) > option_val ).

thf(sy_c_Option_Obind_001t__PartialHeapSA__Ostate_001t__PartialHeapSA__Ostate,type,
    bind_state_state: option_state > ( state > option_state ) > option_state ).

thf(sy_c_Option_Obind_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    bind_P8603646205577311397al_val: option8887860577033306220on_val > ( produc9003781588162623004on_val > option_val ) > option_val ).

thf(sy_c_Option_Obind_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    bind_P2178757275261240214_state: option8887860577033306220on_val > ( produc9003781588162623004on_val > option_state ) > option_state ).

thf(sy_c_Option_Obind_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    bind_P2485767298420691192on_val: option8887860577033306220on_val > ( produc9003781588162623004on_val > option8887860577033306220on_val ) > option8887860577033306220on_val ).

thf(sy_c_Option_Ocombine__options_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    combin3271118981050854363on_val: ( ( produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val ) > option5747939881698552298on_val > option5747939881698552298on_val > option5747939881698552298on_val ).

thf(sy_c_Option_Ocombine__options_001t__List__Olist_It__String__Ochar_J,type,
    combin4118143342443788322t_char: ( list_char > list_char > list_char ) > option_list_char > option_list_char > option_list_char ).

thf(sy_c_Option_Ocombine__options_001t__Mask__Oval,type,
    combine_options_val: ( val > val > val ) > option_val > option_val > option_val ).

thf(sy_c_Option_Ocombine__options_001t__PartialHeapSA__Ostate,type,
    combin3633514924185701883_state: ( state > state > state ) > option_state > option_state > option_state ).

thf(sy_c_Option_Ocombine__options_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    combin6222804963853957469on_val: ( produc9003781588162623004on_val > produc9003781588162623004on_val > produc9003781588162623004on_val ) > option8887860577033306220on_val > option8887860577033306220on_val > option8887860577033306220on_val ).

thf(sy_c_Option_Ois__none_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    is_non6205214127102033982on_val: option5747939881698552298on_val > $o ).

thf(sy_c_Option_Ois__none_001t__List__Olist_It__String__Ochar_J,type,
    is_none_list_char: option_list_char > $o ).

thf(sy_c_Option_Ois__none_001t__Mask__Oval,type,
    is_none_val: option_val > $o ).

thf(sy_c_Option_Ois__none_001t__PartialHeapSA__Ostate,type,
    is_none_state: option_state > $o ).

thf(sy_c_Option_Ois__none_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    is_non3468859156093823296on_val: option8887860577033306220on_val > $o ).

thf(sy_c_Option_Ooption_ONone_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    none_P1334921381875262201on_val: option5747939881698552298on_val ).

thf(sy_c_Option_Ooption_ONone_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    none_P6742040017396684084r_prat: option3572569098863364761r_prat ).

thf(sy_c_Option_Ooption_ONone_001t__List__Olist_It__String__Ochar_J,type,
    none_list_char: option_list_char ).

thf(sy_c_Option_Ooption_ONone_001t__Mask__Oval,type,
    none_val: option_val ).

thf(sy_c_Option_Ooption_ONone_001t__Nat__Onat,type,
    none_nat: option_nat ).

thf(sy_c_Option_Ooption_ONone_001t__Option__Ooption_It__Mask__Oval_J,type,
    none_option_val: option_option_val ).

thf(sy_c_Option_Ooption_ONone_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    none_option_state: option_option_state ).

thf(sy_c_Option_Ooption_ONone_001t__PartialHeapSA__Ostate,type,
    none_state: option_state ).

thf(sy_c_Option_Ooption_ONone_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    none_P8728355543607141243on_val: option8887860577033306220on_val ).

thf(sy_c_Option_Ooption_ONone_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    none_P5486107665612286067t_char: option2736423997234022232t_char ).

thf(sy_c_Option_Ooption_OSome_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    some_P7669353234731512949on_val: ( produc1457211279475724562t_char > option_val ) > option5747939881698552298on_val ).

thf(sy_c_Option_Ooption_OSome_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    some_P8530153984677361336r_prat: ( produc1457211279475724562t_char > prat ) > option3572569098863364761r_prat ).

thf(sy_c_Option_Ooption_OSome_001t__List__Olist_It__String__Ochar_J,type,
    some_list_char: list_char > option_list_char ).

thf(sy_c_Option_Ooption_OSome_001t__Mask__Oval,type,
    some_val: val > option_val ).

thf(sy_c_Option_Ooption_OSome_001t__Nat__Onat,type,
    some_nat: nat > option_nat ).

thf(sy_c_Option_Ooption_OSome_001t__Option__Ooption_It__Mask__Oval_J,type,
    some_option_val: option_val > option_option_val ).

thf(sy_c_Option_Ooption_OSome_001t__PartialHeapSA__Ostate,type,
    some_state: state > option_state ).

thf(sy_c_Option_Ooption_OSome_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    some_P2581650809551911671on_val: produc9003781588162623004on_val > option8887860577033306220on_val ).

thf(sy_c_Option_Ooption_OSome_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    some_P6851457240968045559t_char: produc1457211279475724562t_char > option2736423997234022232t_char ).

thf(sy_c_Option_Ooption_Ocase__option_001_Eo_001t__Mask__Oval,type,
    case_option_o_val: $o > ( val > $o ) > option_val > $o ).

thf(sy_c_Option_Ooption_Ocase__option_001_Eo_001t__PartialHeapSA__Ostate,type,
    case_option_o_state: $o > ( state > $o ) > option_state > $o ).

thf(sy_c_Option_Ooption_Ocase__option_001t__Mask__Oval_001t__Mask__Oval,type,
    case_option_val_val: val > ( val > val ) > option_val > val ).

thf(sy_c_Option_Ooption_Ocase__option_001t__Option__Ooption_It__Mask__Oval_J_001t__Mask__Oval,type,
    case_o7794706883426356101al_val: option_val > ( val > option_val ) > option_val > option_val ).

thf(sy_c_Option_Ooption_Ocase__option_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__PartialHeapSA__Ostate,type,
    case_o8916064052540797265_state: option_state > ( state > option_state ) > option_state > option_state ).

thf(sy_c_Option_Ooption_Ocase__option_001t__PartialHeapSA__Ostate_001t__PartialHeapSA__Ostate,type,
    case_o2102410670496921089_state: state > ( state > state ) > option_state > state ).

thf(sy_c_Option_Ooption_Omap__option_001t__Mask__Oval_001t__Mask__Oval,type,
    map_option_val_val: ( val > val ) > option_val > option_val ).

thf(sy_c_Option_Ooption_Omap__option_001t__Mask__Oval_001t__PartialHeapSA__Ostate,type,
    map_option_val_state: ( val > state ) > option_val > option_state ).

thf(sy_c_Option_Ooption_Omap__option_001t__PartialHeapSA__Ostate_001t__Mask__Oval,type,
    map_option_state_val: ( state > val ) > option_state > option_val ).

thf(sy_c_Option_Ooption_Omap__option_001t__PartialHeapSA__Ostate_001t__PartialHeapSA__Ostate,type,
    map_op2726735944305651201_state: ( state > state ) > option_state > option_state ).

thf(sy_c_Option_Ooption_Omap__option_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    map_op5305211447164704579on_val: ( produc9003781588162623004on_val > produc1457211279475724562t_char > option_val ) > option8887860577033306220on_val > option5747939881698552298on_val ).

thf(sy_c_Option_Ooption_Omap__option_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    map_op457311912167326058r_prat: ( produc9003781588162623004on_val > produc1457211279475724562t_char > prat ) > option8887860577033306220on_val > option3572569098863364761r_prat ).

thf(sy_c_Option_Ooption_Omap__option_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    map_op7709461780610975941on_val: ( produc9003781588162623004on_val > produc9003781588162623004on_val ) > option8887860577033306220on_val > option8887860577033306220on_val ).

thf(sy_c_Option_Ooption_Omap__option_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__List__Olist_It__String__Ochar_J,type,
    map_op1953669867509794472t_char: ( produc1457211279475724562t_char > list_char ) > option2736423997234022232t_char > option_list_char ).

thf(sy_c_Option_Ooption_Omap__option_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Nat__Onat,type,
    map_op2304244586335077271ar_nat: ( produc1457211279475724562t_char > nat ) > option2736423997234022232t_char > option_nat ).

thf(sy_c_Option_Ooption_Opred__option_001t__Mask__Oval,type,
    pred_option_val: ( val > $o ) > option_val > $o ).

thf(sy_c_Option_Ooption_Opred__option_001t__PartialHeapSA__Ostate,type,
    pred_option_state: ( state > $o ) > option_state > $o ).

thf(sy_c_Option_Ooption_Opred__option_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    pred_o6356550725404909017on_val: ( produc9003781588162623004on_val > $o ) > option8887860577033306220on_val > $o ).

thf(sy_c_Option_Ooption_Orel__option_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    rel_op7555592896143267045on_val: ( ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > option_val ) > $o ) > option3572569098863364761r_prat > option5747939881698552298on_val > $o ).

thf(sy_c_Option_Ooption_Orel__option_001t__Mask__Oval_001t__Mask__Oval,type,
    rel_option_val_val: ( val > val > $o ) > option_val > option_val > $o ).

thf(sy_c_Option_Ooption_Orel__option_001t__Mask__Oval_001t__PartialHeapSA__Ostate,type,
    rel_option_val_state: ( val > state > $o ) > option_val > option_state > $o ).

thf(sy_c_Option_Ooption_Orel__option_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    rel_op2494113632589343803t_char: ( nat > list_char > $o ) > option_nat > option_list_char > $o ).

thf(sy_c_Option_Ooption_Orel__option_001t__PartialHeapSA__Ostate_001t__Mask__Oval,type,
    rel_option_state_val: ( state > val > $o ) > option_state > option_val > $o ).

thf(sy_c_Option_Ooption_Orel__option_001t__PartialHeapSA__Ostate_001t__PartialHeapSA__Ostate,type,
    rel_op4316599310523903102_state: ( state > state > $o ) > option_state > option_state > $o ).

thf(sy_c_Option_Ooption_Orel__option_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    rel_op346525543737320258on_val: ( produc9003781588162623004on_val > produc9003781588162623004on_val > $o ) > option8887860577033306220on_val > option8887860577033306220on_val > $o ).

thf(sy_c_Option_Ooption_Oset__option_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    set_op1770538635792728844on_val: option5747939881698552298on_val > set_Pr1004501353197068112on_val ).

thf(sy_c_Option_Ooption_Oset__option_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    set_op923924987228895969r_prat: option3572569098863364761r_prat > set_Pr3433046674199179443r_prat ).

thf(sy_c_Option_Ooption_Oset__option_001t__List__Olist_It__String__Ochar_J,type,
    set_option_list_char2: option_list_char > set_list_char ).

thf(sy_c_Option_Ooption_Oset__option_001t__Mask__Oval,type,
    set_option_val2: option_val > set_val ).

thf(sy_c_Option_Ooption_Oset__option_001t__Nat__Onat,type,
    set_option_nat: option_nat > set_nat ).

thf(sy_c_Option_Ooption_Oset__option_001t__Option__Ooption_It__Mask__Oval_J,type,
    set_op911010586042427349on_val: option_option_val > set_option_val ).

thf(sy_c_Option_Ooption_Oset__option_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    set_op5162993263733338108_state: option_option_state > set_option_state ).

thf(sy_c_Option_Ooption_Oset__option_001t__PartialHeapSA__Ostate,type,
    set_option_state2: option_state > set_state ).

thf(sy_c_Option_Ooption_Oset__option_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    set_op9004752959087400718on_val: option8887860577033306220on_val > set_Pr7649655576376376530on_val ).

thf(sy_c_Option_Ooption_Oset__option_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    set_op7440730737645789856t_char: option2736423997234022232t_char > set_Pr2507339680178222706t_char ).

thf(sy_c_Option_Ooption_Othe_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    the_Pr646328391962797958on_val: option5747939881698552298on_val > produc1457211279475724562t_char > option_val ).

thf(sy_c_Option_Ooption_Othe_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    the_Pr3206600365949932263r_prat: option3572569098863364761r_prat > produc1457211279475724562t_char > prat ).

thf(sy_c_Option_Ooption_Othe_001t__List__Olist_It__String__Ochar_J,type,
    the_list_char: option_list_char > list_char ).

thf(sy_c_Option_Ooption_Othe_001t__Mask__Oval,type,
    the_val: option_val > val ).

thf(sy_c_Option_Ooption_Othe_001t__Nat__Onat,type,
    the_nat: option_nat > nat ).

thf(sy_c_Option_Ooption_Othe_001t__Option__Ooption_It__Mask__Oval_J,type,
    the_option_val: option_option_val > option_val ).

thf(sy_c_Option_Ooption_Othe_001t__PartialHeapSA__Ostate,type,
    the_state: option_state > state ).

thf(sy_c_Option_Ooption_Othe_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    the_Pr3639693038709580936on_val: option8887860577033306220on_val > produc9003781588162623004on_val ).

thf(sy_c_Option_Ooption_Othe_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    the_Pr4674812069856641446t_char: option2736423997234022232t_char > produc1457211279475724562t_char ).

thf(sy_c_Option_Othese_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    these_602426935119867933on_val: set_op8153969091884965280on_val > set_Pr1004501353197068112on_val ).

thf(sy_c_Option_Othese_001t__List__Olist_It__String__Ochar_J,type,
    these_list_char: set_option_list_char > set_list_char ).

thf(sy_c_Option_Othese_001t__Mask__Oval,type,
    these_val: set_option_val > set_val ).

thf(sy_c_Option_Othese_001t__PartialHeapSA__Ostate,type,
    these_state: set_option_state > set_state ).

thf(sy_c_Option_Othese_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    these_3919539662624406175on_val: set_op6240181410663953058on_val > set_Pr7649655576376376530on_val ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    bot_bo5671083314777306084on_val: set_Pr1004501353197068112on_val ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__List__Olist_It__String__Ochar_J_J,type,
    bot_bo8503570744482963627t_char: set_list_char ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Mask__Oval_J,type,
    bot_bot_set_val: set_val ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Nat__Onat_J,type,
    bot_bot_set_nat: set_nat ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Option__Ooption_It__Mask__Oval_J_J,type,
    bot_bo5906790151302476563on_val: set_option_val ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Option__Ooption_It__PartialHeapSA__Ostate_J_J,type,
    bot_bo710180891245420500_state: set_option_state ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__PartialHeapSA__Ostate_J,type,
    bot_bot_set_state: set_state ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    bot_bo6722054719108133734on_val: set_Pr7649655576376376530on_val ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    bot_bo1414094081888755934t_char: set_Pr2507339680178222706t_char ).

thf(sy_c_Orderings_Oord__class_Oless_001t__Nat__Onat,type,
    ord_less_nat: nat > nat > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    ord_le6900622908513426738on_val: set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    ord_le6315511645215477266t_char: set_Pr2507339680178222706t_char > set_Pr2507339680178222706t_char > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_J,type,
    ord_le7224449410216889241on_val: set_Pr4305388979797279737on_val > set_Pr4305388979797279737on_val > $o ).

thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__Mask__Oval_J,type,
    top_top_set_val: set_val ).

thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__Option__Ooption_It__Mask__Oval_J_J,type,
    top_to853123400021307383on_val: set_option_val ).

thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__Option__Ooption_It__PartialHeapSA__Ostate_J_J,type,
    top_to7666338855062656496_state: set_option_state ).

thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__PartialHeapSA__Ostate_J,type,
    top_top_set_state: set_state ).

thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    top_to1561438921946393474on_val: set_Pr7649655576376376530on_val ).

thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    top_to1250346684925019074t_char: set_Pr2507339680178222706t_char ).

thf(sy_c_PartialHeapSA_Oadd__states,type,
    add_states: produc9003781588162623004on_val > produc9003781588162623004on_val > produc9003781588162623004on_val ).

thf(sy_c_PartialHeapSA_Oadd__states__rel,type,
    add_states_rel: produc1317171644805857433on_val > produc1317171644805857433on_val > $o ).

thf(sy_c_PartialHeapSA_Ocompatible,type,
    compatible: produc9003781588162623004on_val > produc9003781588162623004on_val > $o ).

thf(sy_c_PartialHeapSA_Ocompatible__heaps,type,
    compatible_heaps: ( produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > option_val ) > $o ).

thf(sy_c_PartialHeapSA_Ocompatible__options_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    compat2032066794789061494on_val: option5747939881698552298on_val > option5747939881698552298on_val > $o ).

thf(sy_c_PartialHeapSA_Ocompatible__options_001t__List__Olist_It__String__Ochar_J,type,
    compat7573737823326560701t_char: option_list_char > option_list_char > $o ).

thf(sy_c_PartialHeapSA_Ocompatible__options_001t__Mask__Oval,type,
    compat7209469420100717861ns_val: option_val > option_val > $o ).

thf(sy_c_PartialHeapSA_Ocompatible__options_001t__PartialHeapSA__Ostate,type,
    compat2278460363914054422_state: option_state > option_state > $o ).

thf(sy_c_PartialHeapSA_Ocompatible__options_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    compat6602494657299208312on_val: option8887860577033306220on_val > option8887860577033306220on_val > $o ).

thf(sy_c_PartialHeapSA_Ocompatible__options__rel_001t__Mask__Oval,type,
    compat8294034345482142370el_val: produc5122021904355189735on_val > produc5122021904355189735on_val > $o ).

thf(sy_c_PartialHeapSA_Ocompatible__options__rel_001t__PartialHeapSA__Ostate,type,
    compat1844074344818064729_state: produc3142500478612311029_state > produc3142500478612311029_state > $o ).

thf(sy_c_PartialHeapSA_Ocore,type,
    core: state > state ).

thf(sy_c_PartialHeapSA_Oempty__heap_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    empty_7512026568161686585ar_val: produc1457211279475724562t_char > option_val ).

thf(sy_c_PartialHeapSA_Oget__h,type,
    get_h: state > produc1457211279475724562t_char > option_val ).

thf(sy_c_PartialHeapSA_Oget__h__rel,type,
    get_h_rel: state > state > $o ).

thf(sy_c_PartialHeapSA_Oget__m,type,
    get_m: state > produc1457211279475724562t_char > prat ).

thf(sy_c_PartialHeapSA_Oget__m__rel,type,
    get_m_rel: state > state > $o ).

thf(sy_c_PartialHeapSA_Olarger__heap_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    larger6282481774126526705al_val: ( produc9003781588162623004on_val > option_val ) > ( produc9003781588162623004on_val > option_val ) > $o ).

thf(sy_c_PartialHeapSA_Olarger__heap_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    larger2674307862311229514_state: ( produc9003781588162623004on_val > option_state ) > ( produc9003781588162623004on_val > option_state ) > $o ).

thf(sy_c_PartialHeapSA_Olarger__heap_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval,type,
    larger1532547405891354081ar_val: ( produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > option_val ) > $o ).

thf(sy_c_PartialHeapSA_Oplus,type,
    plus: state > state > option_state ).

thf(sy_c_PartialHeapSA_Ostable,type,
    stable: state > $o ).

thf(sy_c_PartialHeapSA_Ostate_OAbs__state,type,
    abs_state: produc9003781588162623004on_val > state ).

thf(sy_c_PartialHeapSA_Ostate_ORep__state,type,
    rep_state: state > produc9003781588162623004on_val ).

thf(sy_c_PartialHeapSA_Ounit,type,
    unit: state ).

thf(sy_c_PartialHeapSA_Ovalid__heap,type,
    valid_heap: ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > option_val ) > $o ).

thf(sy_c_PartialHeapSA_Ovalid__state,type,
    valid_state: produc9003781588162623004on_val > $o ).

thf(sy_c_PartialHeapSA_Ovalid__state__rel,type,
    valid_state_rel: produc9003781588162623004on_val > produc9003781588162623004on_val > $o ).

thf(sy_c_PosRat_Ohalf,type,
    half: prat ).

thf(sy_c_PosRat_Opadd,type,
    padd: prat > prat > prat ).

thf(sy_c_PosRat_Opdiv,type,
    pdiv: prat > prat > prat ).

thf(sy_c_PosRat_Opgt,type,
    pgt: prat > prat > $o ).

thf(sy_c_PosRat_Opgte,type,
    pgte: prat > prat > $o ).

thf(sy_c_PosRat_Opinv,type,
    pinv: prat > prat ).

thf(sy_c_PosRat_Opmult,type,
    pmult: prat > prat > prat ).

thf(sy_c_PosRat_Opnone,type,
    pnone: prat ).

thf(sy_c_PosRat_Oppos,type,
    ppos: prat > $o ).

thf(sy_c_PosRat_Opwrite,type,
    pwrite: prat ).

thf(sy_c_Product__Type_OPair_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    produc74620467203698198on_val: ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > option_val ) > produc9003781588162623004on_val ).

thf(sy_c_Product__Type_OPair_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_Mt__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    produc2957999048406202538t_char: ( produc1457211279475724562t_char > prat ) > produc2489117125269924006t_char > produc5803078220529002682t_char ).

thf(sy_c_Product__Type_OPair_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    produc2591414526589101846t_char: ( produc1457211279475724562t_char > prat ) > produc1457211279475724562t_char > produc2489117125269924006t_char ).

thf(sy_c_Product__Type_OPair_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    produc120197956887798346t_char: nat > list_char > produc1457211279475724562t_char ).

thf(sy_c_Product__Type_OPair_001t__Option__Ooption_It__Mask__Oval_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    produc904852209897547607on_val: option_val > option_val > produc5122021904355189735on_val ).

thf(sy_c_Product__Type_OPair_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    produc9160152616361873709_state: option_state > option_state > produc3142500478612311029_state ).

thf(sy_c_Product__Type_OPair_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    produc4958730763592889809on_val: produc9003781588162623004on_val > produc9003781588162623004on_val > produc1317171644805857433on_val ).

thf(sy_c_Product__Type_OPair_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__PosRat__Oprat,type,
    produc2920179824973321483r_prat: produc1457211279475724562t_char > prat > produc3933091914578511633r_prat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_001_Eo,type,
    produc5248837549992124053_val_o: ( ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > option_val ) > $o ) > produc9003781588162623004on_val > $o ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J_001_Eo,type,
    produc8526122873445342073char_o: ( nat > list_char > $o ) > produc1457211279475724562t_char > $o ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Mask__Oval_001_062_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    produc6541823961022407022on_val: ( produc1457211279475724562t_char > val > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val ) > produc4494260595660908054ar_val > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val ).

thf(sy_c_Product__Type_Oprod_Ofst_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    produc5239619271231976746on_val: produc9003781588162623004on_val > produc1457211279475724562t_char > prat ).

thf(sy_c_Product__Type_Oprod_Ofst_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    produc6204653154488278070t_char: produc1457211279475724562t_char > nat ).

thf(sy_c_Product__Type_Oprod_Ofst_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Mask__Oval,type,
    produc4782051922924837920al_val: produc4587312360482870618al_val > produc9003781588162623004on_val ).

thf(sy_c_Product__Type_Oprod_Ofst_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__PartialHeapSA__Ostate,type,
    produc6734235122797862491_state: produc3589956252253634615_state > produc9003781588162623004on_val ).

thf(sy_c_Product__Type_Oprod_Ofst_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    produc3129717363260770749on_val: produc1317171644805857433on_val > produc9003781588162623004on_val ).

thf(sy_c_Product__Type_Oprod_Osnd_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    produc2319605628138516840on_val: produc9003781588162623004on_val > produc1457211279475724562t_char > option_val ).

thf(sy_c_Product__Type_Oprod_Osnd_001t__Nat__Onat_001t__List__Olist_It__String__Ochar_J,type,
    produc1900778367047502200t_char: produc1457211279475724562t_char > list_char ).

thf(sy_c_Product__Type_Oprod_Osnd_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    produc437328469718437375on_val: produc1317171644805857433on_val > produc9003781588162623004on_val ).

thf(sy_c_Relation_Oconversep_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_J,type,
    conver7264604305941033974r_prat: ( option8887860577033306220on_val > option3572569098863364761r_prat > $o ) > option3572569098863364761r_prat > option8887860577033306220on_val > $o ).

thf(sy_c_Relation_Oconversep_001t__Option__Ooption_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J_001t__Option__Ooption_It__Nat__Onat_J,type,
    conver779780868667509187on_nat: ( option2736423997234022232t_char > option_nat > $o ) > option_nat > option2736423997234022232t_char > $o ).

thf(sy_c_Relation_Orelcompp_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_J_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    relcom6540676319459279872on_val: ( option3572569098863364761r_prat > option8887860577033306220on_val > $o ) > ( option8887860577033306220on_val > option5747939881698552298on_val > $o ) > option3572569098863364761r_prat > option5747939881698552298on_val > $o ).

thf(sy_c_Relation_Orelcompp_001t__Option__Ooption_It__Nat__Onat_J_001t__Option__Ooption_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    relcom4704765297650120440t_char: ( option_nat > option2736423997234022232t_char > $o ) > ( option2736423997234022232t_char > option_list_char > $o ) > option_nat > option_list_char > $o ).

thf(sy_c_Set_OCollect_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    collec8455114619259388271on_val: ( ( produc1457211279475724562t_char > option_val ) > $o ) > set_Pr1004501353197068112on_val ).

thf(sy_c_Set_OCollect_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    collec7093475260167521854r_prat: ( ( produc1457211279475724562t_char > prat ) > $o ) > set_Pr3433046674199179443r_prat ).

thf(sy_c_Set_OCollect_001t__Mask__Oval,type,
    collect_val: ( val > $o ) > set_val ).

thf(sy_c_Set_OCollect_001t__Nat__Onat,type,
    collect_nat: ( nat > $o ) > set_nat ).

thf(sy_c_Set_OCollect_001t__Option__Ooption_It__Mask__Oval_J,type,
    collect_option_val: ( option_val > $o ) > set_option_val ).

thf(sy_c_Set_OCollect_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    collect_option_state: ( option_state > $o ) > set_option_state ).

thf(sy_c_Set_OCollect_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    collec6281439769543645121on_val: ( option8887860577033306220on_val > $o ) > set_op6240181410663953058on_val ).

thf(sy_c_Set_OCollect_001t__Option__Ooption_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    collec3561702660602934339t_char: ( option2736423997234022232t_char > $o ) > set_op9137726805559506488t_char ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    collec7475294502966882545on_val: ( produc9003781588162623004on_val > $o ) > set_Pr7649655576376376530on_val ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    collec2458894688891239037t_char: ( produc1457211279475724562t_char > $o ) > set_Pr2507339680178222706t_char ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    collec5166231387257825412on_val: ( produc1317171644805857433on_val > $o ) > set_Pr4305388979797279737on_val ).

thf(sy_c_Set_Oimage_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    image_5626594990718149899on_val: ( ( produc1457211279475724562t_char > option_val ) > option5747939881698552298on_val ) > set_Pr1004501353197068112on_val > set_op8153969091884965280on_val ).

thf(sy_c_Set_Oimage_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    image_1459058096221225002on_val: ( ( produc1457211279475724562t_char > prat ) > produc9003781588162623004on_val ) > set_Pr3433046674199179443r_prat > set_Pr7649655576376376530on_val ).

thf(sy_c_Set_Oimage_001t__List__Olist_It__String__Ochar_J_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    image_4379178946295307545t_char: ( list_char > option_list_char ) > set_list_char > set_option_list_char ).

thf(sy_c_Set_Oimage_001t__Mask__Oval_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    image_7372873807906076653t_char: ( val > option_list_char ) > set_val > set_option_list_char ).

thf(sy_c_Set_Oimage_001t__Mask__Oval_001t__Option__Ooption_It__Mask__Oval_J,type,
    image_val_option_val: ( val > option_val ) > set_val > set_option_val ).

thf(sy_c_Set_Oimage_001t__Mask__Oval_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    image_8370355904157991238_state: ( val > option_state ) > set_val > set_option_state ).

thf(sy_c_Set_Oimage_001t__Nat__Onat_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    image_570131288342041480t_char: ( nat > option_list_char ) > set_nat > set_option_list_char ).

thf(sy_c_Set_Oimage_001t__Nat__Onat_001t__Option__Ooption_It__Mask__Oval_J,type,
    image_nat_option_val: ( nat > option_val ) > set_nat > set_option_val ).

thf(sy_c_Set_Oimage_001t__Nat__Onat_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    image_8240249968597053537_state: ( nat > option_state ) > set_nat > set_option_state ).

thf(sy_c_Set_Oimage_001t__Nat__Onat_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    image_1003422490162143483t_char: ( nat > produc1457211279475724562t_char ) > set_nat > set_Pr2507339680178222706t_char ).

thf(sy_c_Set_Oimage_001t__Option__Ooption_It__Mask__Oval_J_001t__Mask__Oval,type,
    image_option_val_val: ( option_val > val ) > set_option_val > set_val ).

thf(sy_c_Set_Oimage_001t__Option__Ooption_It__Mask__Oval_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    image_5994708315261978053on_val: ( option_val > option_val ) > set_option_val > set_option_val ).

thf(sy_c_Set_Oimage_001t__Option__Ooption_It__Mask__Oval_J_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    image_2662813144889517580_state: ( option_val > option_state ) > set_option_val > set_option_state ).

thf(sy_c_Set_Oimage_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_001t__PartialHeapSA__Ostate,type,
    image_3532137647693456075_state: ( option_state > state ) > set_option_state > set_state ).

thf(sy_c_Set_Oimage_001t__PartialHeapSA__Ostate_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    image_6076465424260689483_state: ( state > option_state ) > set_state > set_option_state ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    image_2330660378567450301on_val: ( produc9003781588162623004on_val > produc1457211279475724562t_char > option_val ) > set_Pr7649655576376376530on_val > set_Pr1004501353197068112on_val ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    image_3067683418878703216r_prat: ( produc9003781588162623004on_val > produc1457211279475724562t_char > prat ) > set_Pr7649655576376376530on_val > set_Pr3433046674199179443r_prat ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    image_453284115904594532on_val: ( produc9003781588162623004on_val > option_val ) > set_Pr7649655576376376530on_val > set_option_val ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    image_2102623794538073773_state: ( produc9003781588162623004on_val > option_state ) > set_Pr7649655576376376530on_val > set_option_state ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    image_4416128703135814415on_val: ( produc9003781588162623004on_val > option8887860577033306220on_val ) > set_Pr7649655576376376530on_val > set_op6240181410663953058on_val ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    image_4170889944715819327on_val: ( produc9003781588162623004on_val > produc9003781588162623004on_val ) > set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    image_4249794487667743926on_val: ( produc9003781588162623004on_val > produc1317171644805857433on_val ) > set_Pr7649655576376376530on_val > set_Pr4305388979797279737on_val ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__List__Olist_It__String__Ochar_J,type,
    image_3034139768025083822t_char: ( produc1457211279475724562t_char > list_char ) > set_Pr2507339680178222706t_char > set_list_char ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Nat__Onat,type,
    image_3548405822317538717ar_nat: ( produc1457211279475724562t_char > nat ) > set_Pr2507339680178222706t_char > set_nat ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_001t__Option__Ooption_It__Mask__Oval_J,type,
    image_4269386950610408506on_val: ( produc1457211279475724562t_char > option_val ) > set_Pr2507339680178222706t_char > set_option_val ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Mask__Oval_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    image_8672218912373160061on_val: ( produc4587312360482870618al_val > produc9003781588162623004on_val ) > set_Pr5678771902342202384al_val > set_Pr7649655576376376530on_val ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__PartialHeapSA__Ostate_J_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    image_3733899853514731534on_val: ( produc3589956252253634615_state > produc9003781588162623004on_val ) > set_Pr6040071838687925911_state > set_Pr7649655576376376530on_val ).

thf(sy_c_Set_Oinsert_001t__Mask__Oval,type,
    insert_val: val > set_val > set_val ).

thf(sy_c_Set_Oinsert_001t__Option__Ooption_It__Mask__Oval_J,type,
    insert_option_val: option_val > set_option_val > set_option_val ).

thf(sy_c_Set_Oinsert_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    insert_option_state: option_state > set_option_state > set_option_state ).

thf(sy_c_Set_Oinsert_001t__PartialHeapSA__Ostate,type,
    insert_state: state > set_state > set_state ).

thf(sy_c_Set_Oinsert_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    insert3030518898131756108on_val: produc9003781588162623004on_val > set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val ).

thf(sy_c_Set_Oinsert_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    insert3372640069787401954t_char: produc1457211279475724562t_char > set_Pr2507339680178222706t_char > set_Pr2507339680178222706t_char ).

thf(sy_c_Set_Oinsert_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    insert7062705985672971881on_val: produc1317171644805857433on_val > set_Pr4305388979797279737on_val > set_Pr4305388979797279737on_val ).

thf(sy_c_Typedef_Otype__definition_001t__PartialHeapSA__Ostate_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    type_d7385716227342696708on_val: ( state > produc9003781588162623004on_val ) > ( produc9003781588162623004on_val > state ) > set_Pr7649655576376376530on_val > $o ).

thf(sy_c_Wellfounded_Oaccp_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    accp_P4765339447491148764r_prat: ( ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > prat ) > $o ) > ( produc1457211279475724562t_char > prat ) > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__PartialHeapSA__Ostate,type,
    accp_state: ( state > state > $o ) > state > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    accp_P4405556307444930259on_val: ( produc9003781588162623004on_val > produc9003781588162623004on_val > $o ) > produc9003781588162623004on_val > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_Mt__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J_J,type,
    accp_P224314924008452035t_char: ( produc5803078220529002682t_char > produc5803078220529002682t_char > $o ) > produc5803078220529002682t_char > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    accp_P8892882183480857371t_char: ( produc1457211279475724562t_char > produc1457211279475724562t_char > $o ) > produc1457211279475724562t_char > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_It__Option__Ooption_It__Mask__Oval_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    accp_P4269981079083053040on_val: ( produc5122021904355189735on_val > produc5122021904355189735on_val > $o ) > produc5122021904355189735on_val > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_It__Option__Ooption_It__PartialHeapSA__Ostate_J_Mt__Option__Ooption_It__PartialHeapSA__Ostate_J_J,type,
    accp_P7183347322223220350_state: ( produc3142500478612311029_state > produc3142500478612311029_state > $o ) > produc3142500478612311029_state > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    accp_P6797916352740768290on_val: ( produc1317171644805857433on_val > produc1317171644805857433on_val > $o ) > produc1317171644805857433on_val > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    accp_P8956218777217113800r_prat: ( produc3933091914578511633r_prat > produc3933091914578511633r_prat > $o ) > produc3933091914578511633r_prat > $o ).

thf(sy_c_member_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J,type,
    member1577473829074448177on_val: ( produc1457211279475724562t_char > option_val ) > set_Pr1004501353197068112on_val > $o ).

thf(sy_c_member_001_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J,type,
    member2336342582916103932r_prat: ( produc1457211279475724562t_char > prat ) > set_Pr3433046674199179443r_prat > $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__Mask__Oval,type,
    member_val: val > set_val > $o ).

thf(sy_c_member_001t__Nat__Onat,type,
    member_nat: nat > set_nat > $o ).

thf(sy_c_member_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    member7216203038034776961on_val: option5747939881698552298on_val > set_op8153969091884965280on_val > $o ).

thf(sy_c_member_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J,type,
    member873824481883127368t_char: option_list_char > set_option_list_char > $o ).

thf(sy_c_member_001t__Option__Ooption_It__Mask__Oval_J,type,
    member_option_val: option_val > set_option_val > $o ).

thf(sy_c_member_001t__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    member_option_state: option_state > set_option_state > $o ).

thf(sy_c_member_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    member4602090469187516291on_val: option8887860577033306220on_val > set_op6240181410663953058on_val > $o ).

thf(sy_c_member_001t__Option__Ooption_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_J,type,
    member1900516542280067841t_char: option2736423997234022232t_char > set_op9137726805559506488t_char > $o ).

thf(sy_c_member_001t__PartialHeapSA__Ostate,type,
    member_state: state > set_state > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J,type,
    member2879030624002546611on_val: produc9003781588162623004on_val > set_Pr7649655576376376530on_val > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J,type,
    member484235747325421115t_char: produc1457211279475724562t_char > set_Pr2507339680178222706t_char > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_Mt__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J,type,
    member6505152944228695362on_val: produc1317171644805857433on_val > set_Pr4305388979797279737on_val > $o ).

thf(sy_v_a,type,
    a: state ).

thf(sy_v_ab,type,
    ab: state ).

thf(sy_v_b,type,
    b: state ).

thf(sy_v_bc,type,
    bc: state ).

thf(sy_v_c,type,
    c: state ).

thf(sy_v_x____,type,
    x: state ).

thf(sy_v_y____,type,
    y: state ).

% Relevant facts (1020)
thf(fact_0__092_060open_062Some_Ay_A_061_Aa_A_092_060oplus_062_Abc_092_060close_062,axiom,
    ( ( some_state @ y )
    = ( plus @ a @ bc ) ) ).

% \<open>Some y = a \<oplus> bc\<close>
thf(fact_1_Some,axiom,
    ( ( plus @ ab @ c )
    = ( some_state @ x ) ) ).

% Some
thf(fact_2__092_060open_062_092_060And_062thesis_O_A_I_092_060And_062y_O_ASome_Ay_A_061_Aa_A_092_060oplus_062_Abc_A_092_060Longrightarrow_062_Athesis_J_A_092_060Longrightarrow_062_Athesis_092_060close_062,axiom,
    ~ ! [Y: state] :
        ( ( some_state @ Y )
       != ( plus @ a @ bc ) ) ).

% \<open>\<And>thesis. (\<And>y. Some y = a \<oplus> bc \<Longrightarrow> thesis) \<Longrightarrow> thesis\<close>
thf(fact_3_assms,axiom,
    ( ( ( plus @ a @ b )
      = ( some_state @ ab ) )
    & ( ( plus @ b @ c )
      = ( some_state @ bc ) ) ) ).

% assms
thf(fact_4_commutative,axiom,
    ( plus
    = ( ^ [A: state,B: state] : ( plus @ B @ A ) ) ) ).

% commutative
thf(fact_5__092_060open_062compatible__heaps_A_Iget__h_Aa_J_A_Iget__h_Ab_A_L_L_Aget__h_Ac_J_092_060close_062,axiom,
    compatible_heaps @ ( get_h @ a ) @ ( map_ad2908576761495157028ar_val @ ( get_h @ b ) @ ( get_h @ c ) ) ).

% \<open>compatible_heaps (get_h a) (get_h b ++ get_h c)\<close>
thf(fact_6__092_060open_062compatible__heaps_A_Iget__h_Aa_A_L_L_Aget__h_Ab_J_A_Iget__h_Ac_J_092_060close_062,axiom,
    compatible_heaps @ ( map_ad2908576761495157028ar_val @ ( get_h @ a ) @ ( get_h @ b ) ) @ ( get_h @ c ) ).

% \<open>compatible_heaps (get_h a ++ get_h b) (get_h c)\<close>
thf(fact_7__092_060open_062valid__mask_A_Iadd__masks_A_Iget__m_Aa_J_A_Iadd__masks_A_Iget__m_Ab_J_A_Iget__m_Ac_J_J_J_092_060close_062,axiom,
    valid_mask @ ( add_ma6586698345353345811t_char @ ( get_m @ a ) @ ( add_ma6586698345353345811t_char @ ( get_m @ b ) @ ( get_m @ c ) ) ) ).

% \<open>valid_mask (add_masks (get_m a) (add_masks (get_m b) (get_m c)))\<close>
thf(fact_8_plus__charact_I1_J,axiom,
    ! [A2: state,B2: state,X: state] :
      ( ( ( plus @ A2 @ B2 )
        = ( some_state @ X ) )
     => ( ( get_m @ X )
        = ( add_ma6586698345353345811t_char @ ( get_m @ A2 ) @ ( get_m @ B2 ) ) ) ) ).

% plus_charact(1)
thf(fact_9_plus__charact_I2_J,axiom,
    ! [A2: state,B2: state,X: state] :
      ( ( ( plus @ A2 @ B2 )
        = ( some_state @ X ) )
     => ( ( get_h @ X )
        = ( map_ad2908576761495157028ar_val @ ( get_h @ A2 ) @ ( get_h @ B2 ) ) ) ) ).

% plus_charact(2)
thf(fact_10_larger__heap__anti,axiom,
    ! [A2: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A2 @ B2 )
     => ( ( larger1532547405891354081ar_val @ B2 @ A2 )
       => ( A2 = B2 ) ) ) ).

% larger_heap_anti
thf(fact_11_larger__heap__refl,axiom,
    ! [H: produc1457211279475724562t_char > option_val] : ( larger1532547405891354081ar_val @ H @ H ) ).

% larger_heap_refl
thf(fact_12_larger__heap__trans,axiom,
    ! [A2: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val,C: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A2 @ B2 )
     => ( ( larger1532547405891354081ar_val @ B2 @ C )
       => ( larger1532547405891354081ar_val @ A2 @ C ) ) ) ).

% larger_heap_trans
thf(fact_13_larger__heapI,axiom,
    ! [H: produc1457211279475724562t_char > option_val,H2: produc1457211279475724562t_char > option_val] :
      ( ! [Hl: produc1457211279475724562t_char,X2: val] :
          ( ( ( H @ Hl )
            = ( some_val @ X2 ) )
         => ( ( H2 @ Hl )
            = ( some_val @ X2 ) ) )
     => ( larger1532547405891354081ar_val @ H2 @ H ) ) ).

% larger_heapI
thf(fact_14_larger__heap__def,axiom,
    ( larger1532547405891354081ar_val
    = ( ^ [H3: produc1457211279475724562t_char > option_val,H4: produc1457211279475724562t_char > option_val] :
        ! [Hl2: produc1457211279475724562t_char,X3: val] :
          ( ( ( H4 @ Hl2 )
            = ( some_val @ X3 ) )
         => ( ( H3 @ Hl2 )
            = ( some_val @ X3 ) ) ) ) ) ).

% larger_heap_def
thf(fact_15_larger__heap__comp,axiom,
    ! [A2: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val,C: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A2 @ B2 )
     => ( ( compatible_heaps @ A2 @ C )
       => ( compatible_heaps @ B2 @ C ) ) ) ).

% larger_heap_comp
thf(fact_16_larger__heap__plus,axiom,
    ! [A2: produc9003781588162623004on_val > option_val,B2: produc9003781588162623004on_val > option_val,C: produc9003781588162623004on_val > option_val] :
      ( ( larger6282481774126526705al_val @ A2 @ B2 )
     => ( ( larger6282481774126526705al_val @ A2 @ C )
       => ( larger6282481774126526705al_val @ A2 @ ( map_ad5466549115852757998al_val @ B2 @ C ) ) ) ) ).

% larger_heap_plus
thf(fact_17_larger__heap__plus,axiom,
    ! [A2: produc9003781588162623004on_val > option_state,B2: produc9003781588162623004on_val > option_state,C: produc9003781588162623004on_val > option_state] :
      ( ( larger2674307862311229514_state @ A2 @ B2 )
     => ( ( larger2674307862311229514_state @ A2 @ C )
       => ( larger2674307862311229514_state @ A2 @ ( map_ad2629041965313307917_state @ B2 @ C ) ) ) ) ).

% larger_heap_plus
thf(fact_18_larger__heap__plus,axiom,
    ! [A2: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val,C: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A2 @ B2 )
     => ( ( larger1532547405891354081ar_val @ A2 @ C )
       => ( larger1532547405891354081ar_val @ A2 @ ( map_ad2908576761495157028ar_val @ B2 @ C ) ) ) ) ).

% larger_heap_plus
thf(fact_19_compatible__heaps__sum,axiom,
    ! [A2: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val,C: produc1457211279475724562t_char > option_val] :
      ( ( compatible_heaps @ A2 @ B2 )
     => ( ( compatible_heaps @ A2 @ C )
       => ( compatible_heaps @ A2 @ ( map_ad2908576761495157028ar_val @ B2 @ C ) ) ) ) ).

% compatible_heaps_sum
thf(fact_20_compatible__heaps__comm,axiom,
    ! [A2: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val] :
      ( ( compatible_heaps @ A2 @ B2 )
     => ( ( map_ad2908576761495157028ar_val @ A2 @ B2 )
        = ( map_ad2908576761495157028ar_val @ B2 @ A2 ) ) ) ).

% compatible_heaps_comm
thf(fact_21_larger__heaps__sum__ineq,axiom,
    ! [A3: produc1457211279475724562t_char > option_val,A2: produc1457211279475724562t_char > option_val,B3: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A3 @ A2 )
     => ( ( larger1532547405891354081ar_val @ B3 @ B2 )
       => ( ( compatible_heaps @ A3 @ B3 )
         => ( larger1532547405891354081ar_val @ ( map_ad2908576761495157028ar_val @ A3 @ B3 ) @ ( map_ad2908576761495157028ar_val @ A2 @ B2 ) ) ) ) ) ).

% larger_heaps_sum_ineq
thf(fact_22_larger__compatible__sum__heaps,axiom,
    ! [A2: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val,Y2: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A2 @ X )
     => ( ( larger1532547405891354081ar_val @ B2 @ Y2 )
       => ( ( compatible_heaps @ A2 @ B2 )
         => ( compatible_heaps @ X @ Y2 ) ) ) ) ).

% larger_compatible_sum_heaps
thf(fact_23_map__add__find__right,axiom,
    ! [N: produc9003781588162623004on_val > option_state,K: produc9003781588162623004on_val,Xx: state,M: produc9003781588162623004on_val > option_state] :
      ( ( ( N @ K )
        = ( some_state @ Xx ) )
     => ( ( map_ad2629041965313307917_state @ M @ N @ K )
        = ( some_state @ Xx ) ) ) ).

% map_add_find_right
thf(fact_24_map__add__find__right,axiom,
    ! [N: produc9003781588162623004on_val > option_val,K: produc9003781588162623004on_val,Xx: val,M: produc9003781588162623004on_val > option_val] :
      ( ( ( N @ K )
        = ( some_val @ Xx ) )
     => ( ( map_ad5466549115852757998al_val @ M @ N @ K )
        = ( some_val @ Xx ) ) ) ).

% map_add_find_right
thf(fact_25_map__add__find__right,axiom,
    ! [N: produc1457211279475724562t_char > option_val,K: produc1457211279475724562t_char,Xx: val,M: produc1457211279475724562t_char > option_val] :
      ( ( ( N @ K )
        = ( some_val @ Xx ) )
     => ( ( map_ad2908576761495157028ar_val @ M @ N @ K )
        = ( some_val @ Xx ) ) ) ).

% map_add_find_right
thf(fact_26_map__add__assoc,axiom,
    ! [M1: produc9003781588162623004on_val > option_val,M2: produc9003781588162623004on_val > option_val,M3: produc9003781588162623004on_val > option_val] :
      ( ( map_ad5466549115852757998al_val @ M1 @ ( map_ad5466549115852757998al_val @ M2 @ M3 ) )
      = ( map_ad5466549115852757998al_val @ ( map_ad5466549115852757998al_val @ M1 @ M2 ) @ M3 ) ) ).

% map_add_assoc
thf(fact_27_map__add__assoc,axiom,
    ! [M1: produc9003781588162623004on_val > option_state,M2: produc9003781588162623004on_val > option_state,M3: produc9003781588162623004on_val > option_state] :
      ( ( map_ad2629041965313307917_state @ M1 @ ( map_ad2629041965313307917_state @ M2 @ M3 ) )
      = ( map_ad2629041965313307917_state @ ( map_ad2629041965313307917_state @ M1 @ M2 ) @ M3 ) ) ).

% map_add_assoc
thf(fact_28_map__add__assoc,axiom,
    ! [M1: produc1457211279475724562t_char > option_val,M2: produc1457211279475724562t_char > option_val,M3: produc1457211279475724562t_char > option_val] :
      ( ( map_ad2908576761495157028ar_val @ M1 @ ( map_ad2908576761495157028ar_val @ M2 @ M3 ) )
      = ( map_ad2908576761495157028ar_val @ ( map_ad2908576761495157028ar_val @ M1 @ M2 ) @ M3 ) ) ).

% map_add_assoc
thf(fact_29_option_Oinject,axiom,
    ! [X22: produc9003781588162623004on_val,Y22: produc9003781588162623004on_val] :
      ( ( ( some_P2581650809551911671on_val @ X22 )
        = ( some_P2581650809551911671on_val @ Y22 ) )
      = ( X22 = Y22 ) ) ).

% option.inject
thf(fact_30_option_Oinject,axiom,
    ! [X22: list_char,Y22: list_char] :
      ( ( ( some_list_char @ X22 )
        = ( some_list_char @ Y22 ) )
      = ( X22 = Y22 ) ) ).

% option.inject
thf(fact_31_option_Oinject,axiom,
    ! [X22: produc1457211279475724562t_char > option_val,Y22: produc1457211279475724562t_char > option_val] :
      ( ( ( some_P7669353234731512949on_val @ X22 )
        = ( some_P7669353234731512949on_val @ Y22 ) )
      = ( X22 = Y22 ) ) ).

% option.inject
thf(fact_32_option_Oinject,axiom,
    ! [X22: state,Y22: state] :
      ( ( ( some_state @ X22 )
        = ( some_state @ Y22 ) )
      = ( X22 = Y22 ) ) ).

% option.inject
thf(fact_33_option_Oinject,axiom,
    ! [X22: val,Y22: val] :
      ( ( ( some_val @ X22 )
        = ( some_val @ Y22 ) )
      = ( X22 = Y22 ) ) ).

% option.inject
thf(fact_34_upper__valid,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( valid_mask @ A2 )
     => ( ( A2
          = ( add_ma6586698345353345811t_char @ B2 @ C ) )
       => ( ( valid_mask @ B2 )
          & ( valid_mask @ C ) ) ) ) ).

% upper_valid
thf(fact_35_upper__valid__aux,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( valid_mask @ A2 )
     => ( ( A2
          = ( add_ma6586698345353345811t_char @ B2 @ C ) )
       => ( valid_mask @ B2 ) ) ) ).

% upper_valid_aux
thf(fact_36_plus__ab__defined,axiom,
    ! [Phi: state,Phi2: state] :
      ( ( ( plus @ Phi @ Phi2 )
       != none_state )
      = ( ( compatible_heaps @ ( get_h @ Phi ) @ ( get_h @ Phi2 ) )
        & ( valid_mask @ ( add_ma6586698345353345811t_char @ ( get_m @ Phi ) @ ( get_m @ Phi2 ) ) ) ) ) ).

% plus_ab_defined
thf(fact_37_add__masks__asso,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( add_ma6586698345353345811t_char @ ( add_ma6586698345353345811t_char @ A2 @ B2 ) @ C )
      = ( add_ma6586698345353345811t_char @ A2 @ ( add_ma6586698345353345811t_char @ B2 @ C ) ) ) ).

% add_masks_asso
thf(fact_38_add__masks__comm,axiom,
    ( add_ma6586698345353345811t_char
    = ( ^ [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat] : ( add_ma6586698345353345811t_char @ B @ A ) ) ) ).

% add_masks_comm
thf(fact_39_add__masks__cancellative,axiom,
    ! [B2: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat,D: produc1457211279475724562t_char > prat] :
      ( ( ( add_ma6586698345353345811t_char @ B2 @ C )
        = ( add_ma6586698345353345811t_char @ B2 @ D ) )
     => ( C = D ) ) ).

% add_masks_cancellative
thf(fact_40_compatible__heaps__def,axiom,
    ( compatible_heaps
    = ( ^ [H4: produc1457211279475724562t_char > option_val,H3: produc1457211279475724562t_char > option_val] :
        ! [Hl2: produc1457211279475724562t_char] : ( compat7209469420100717861ns_val @ ( H4 @ Hl2 ) @ ( H3 @ Hl2 ) ) ) ) ).

% compatible_heaps_def
thf(fact_41_compatible__options_Oelims_I3_J,axiom,
    ! [X: option8887860577033306220on_val,Xa: option8887860577033306220on_val] :
      ( ~ ( compat6602494657299208312on_val @ X @ Xa )
     => ~ ! [A4: produc9003781588162623004on_val] :
            ( ( X
              = ( some_P2581650809551911671on_val @ A4 ) )
           => ! [B4: produc9003781588162623004on_val] :
                ( ( Xa
                  = ( some_P2581650809551911671on_val @ B4 ) )
               => ( A4 = B4 ) ) ) ) ).

% compatible_options.elims(3)
thf(fact_42_compatible__options_Oelims_I3_J,axiom,
    ! [X: option_list_char,Xa: option_list_char] :
      ( ~ ( compat7573737823326560701t_char @ X @ Xa )
     => ~ ! [A4: list_char] :
            ( ( X
              = ( some_list_char @ A4 ) )
           => ! [B4: list_char] :
                ( ( Xa
                  = ( some_list_char @ B4 ) )
               => ( A4 = B4 ) ) ) ) ).

% compatible_options.elims(3)
thf(fact_43_compatible__options_Oelims_I3_J,axiom,
    ! [X: option5747939881698552298on_val,Xa: option5747939881698552298on_val] :
      ( ~ ( compat2032066794789061494on_val @ X @ Xa )
     => ~ ! [A4: produc1457211279475724562t_char > option_val] :
            ( ( X
              = ( some_P7669353234731512949on_val @ A4 ) )
           => ! [B4: produc1457211279475724562t_char > option_val] :
                ( ( Xa
                  = ( some_P7669353234731512949on_val @ B4 ) )
               => ( A4 = B4 ) ) ) ) ).

% compatible_options.elims(3)
thf(fact_44_compatible__options_Oelims_I3_J,axiom,
    ! [X: option_state,Xa: option_state] :
      ( ~ ( compat2278460363914054422_state @ X @ Xa )
     => ~ ! [A4: state] :
            ( ( X
              = ( some_state @ A4 ) )
           => ! [B4: state] :
                ( ( Xa
                  = ( some_state @ B4 ) )
               => ( A4 = B4 ) ) ) ) ).

% compatible_options.elims(3)
thf(fact_45_compatible__options_Oelims_I3_J,axiom,
    ! [X: option_val,Xa: option_val] :
      ( ~ ( compat7209469420100717861ns_val @ X @ Xa )
     => ~ ! [A4: val] :
            ( ( X
              = ( some_val @ A4 ) )
           => ! [B4: val] :
                ( ( Xa
                  = ( some_val @ B4 ) )
               => ( A4 = B4 ) ) ) ) ).

% compatible_options.elims(3)
thf(fact_46_compatible__options_Osimps_I1_J,axiom,
    ! [A2: produc9003781588162623004on_val,B2: produc9003781588162623004on_val] :
      ( ( compat6602494657299208312on_val @ ( some_P2581650809551911671on_val @ A2 ) @ ( some_P2581650809551911671on_val @ B2 ) )
      = ( A2 = B2 ) ) ).

% compatible_options.simps(1)
thf(fact_47_compatible__options_Osimps_I1_J,axiom,
    ! [A2: list_char,B2: list_char] :
      ( ( compat7573737823326560701t_char @ ( some_list_char @ A2 ) @ ( some_list_char @ B2 ) )
      = ( A2 = B2 ) ) ).

% compatible_options.simps(1)
thf(fact_48_compatible__options_Osimps_I1_J,axiom,
    ! [A2: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val] :
      ( ( compat2032066794789061494on_val @ ( some_P7669353234731512949on_val @ A2 ) @ ( some_P7669353234731512949on_val @ B2 ) )
      = ( A2 = B2 ) ) ).

% compatible_options.simps(1)
thf(fact_49_compatible__options_Osimps_I1_J,axiom,
    ! [A2: state,B2: state] :
      ( ( compat2278460363914054422_state @ ( some_state @ A2 ) @ ( some_state @ B2 ) )
      = ( A2 = B2 ) ) ).

% compatible_options.simps(1)
thf(fact_50_compatible__options_Osimps_I1_J,axiom,
    ! [A2: val,B2: val] :
      ( ( compat7209469420100717861ns_val @ ( some_val @ A2 ) @ ( some_val @ B2 ) )
      = ( A2 = B2 ) ) ).

% compatible_options.simps(1)
thf(fact_51_not__Some__eq,axiom,
    ! [X: option8887860577033306220on_val] :
      ( ( ! [Y3: produc9003781588162623004on_val] :
            ( X
           != ( some_P2581650809551911671on_val @ Y3 ) ) )
      = ( X = none_P8728355543607141243on_val ) ) ).

% not_Some_eq
thf(fact_52_not__Some__eq,axiom,
    ! [X: option_list_char] :
      ( ( ! [Y3: list_char] :
            ( X
           != ( some_list_char @ Y3 ) ) )
      = ( X = none_list_char ) ) ).

% not_Some_eq
thf(fact_53_not__Some__eq,axiom,
    ! [X: option5747939881698552298on_val] :
      ( ( ! [Y3: produc1457211279475724562t_char > option_val] :
            ( X
           != ( some_P7669353234731512949on_val @ Y3 ) ) )
      = ( X = none_P1334921381875262201on_val ) ) ).

% not_Some_eq
thf(fact_54_not__Some__eq,axiom,
    ! [X: option_state] :
      ( ( ! [Y3: state] :
            ( X
           != ( some_state @ Y3 ) ) )
      = ( X = none_state ) ) ).

% not_Some_eq
thf(fact_55_not__Some__eq,axiom,
    ! [X: option_val] :
      ( ( ! [Y3: val] :
            ( X
           != ( some_val @ Y3 ) ) )
      = ( X = none_val ) ) ).

% not_Some_eq
thf(fact_56_not__None__eq,axiom,
    ! [X: option8887860577033306220on_val] :
      ( ( X != none_P8728355543607141243on_val )
      = ( ? [Y3: produc9003781588162623004on_val] :
            ( X
            = ( some_P2581650809551911671on_val @ Y3 ) ) ) ) ).

% not_None_eq
thf(fact_57_not__None__eq,axiom,
    ! [X: option_list_char] :
      ( ( X != none_list_char )
      = ( ? [Y3: list_char] :
            ( X
            = ( some_list_char @ Y3 ) ) ) ) ).

% not_None_eq
thf(fact_58_not__None__eq,axiom,
    ! [X: option5747939881698552298on_val] :
      ( ( X != none_P1334921381875262201on_val )
      = ( ? [Y3: produc1457211279475724562t_char > option_val] :
            ( X
            = ( some_P7669353234731512949on_val @ Y3 ) ) ) ) ).

% not_None_eq
thf(fact_59_not__None__eq,axiom,
    ! [X: option_state] :
      ( ( X != none_state )
      = ( ? [Y3: state] :
            ( X
            = ( some_state @ Y3 ) ) ) ) ).

% not_None_eq
thf(fact_60_not__None__eq,axiom,
    ! [X: option_val] :
      ( ( X != none_val )
      = ( ? [Y3: val] :
            ( X
            = ( some_val @ Y3 ) ) ) ) ).

% not_None_eq
thf(fact_61_map__add__eq__empty__iff,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state] :
      ( ( ( map_ad2629041965313307917_state @ F @ G )
        = ( ^ [X3: produc9003781588162623004on_val] : none_state ) )
      = ( ( F
          = ( ^ [X3: produc9003781588162623004on_val] : none_state ) )
        & ( G
          = ( ^ [X3: produc9003781588162623004on_val] : none_state ) ) ) ) ).

% map_add_eq_empty_iff
thf(fact_62_map__add__eq__empty__iff,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val] :
      ( ( ( map_ad5466549115852757998al_val @ F @ G )
        = ( ^ [X3: produc9003781588162623004on_val] : none_val ) )
      = ( ( F
          = ( ^ [X3: produc9003781588162623004on_val] : none_val ) )
        & ( G
          = ( ^ [X3: produc9003781588162623004on_val] : none_val ) ) ) ) ).

% map_add_eq_empty_iff
thf(fact_63_map__add__eq__empty__iff,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] :
      ( ( ( map_ad2908576761495157028ar_val @ F @ G )
        = ( ^ [X3: produc1457211279475724562t_char] : none_val ) )
      = ( ( F
          = ( ^ [X3: produc1457211279475724562t_char] : none_val ) )
        & ( G
          = ( ^ [X3: produc1457211279475724562t_char] : none_val ) ) ) ) ).

% map_add_eq_empty_iff
thf(fact_64_map__add__None,axiom,
    ! [M: produc9003781588162623004on_val > option_state,N: produc9003781588162623004on_val > option_state,K: produc9003781588162623004on_val] :
      ( ( ( map_ad2629041965313307917_state @ M @ N @ K )
        = none_state )
      = ( ( ( N @ K )
          = none_state )
        & ( ( M @ K )
          = none_state ) ) ) ).

% map_add_None
thf(fact_65_map__add__None,axiom,
    ! [M: produc9003781588162623004on_val > option_val,N: produc9003781588162623004on_val > option_val,K: produc9003781588162623004on_val] :
      ( ( ( map_ad5466549115852757998al_val @ M @ N @ K )
        = none_val )
      = ( ( ( N @ K )
          = none_val )
        & ( ( M @ K )
          = none_val ) ) ) ).

% map_add_None
thf(fact_66_map__add__None,axiom,
    ! [M: produc1457211279475724562t_char > option_val,N: produc1457211279475724562t_char > option_val,K: produc1457211279475724562t_char] :
      ( ( ( map_ad2908576761495157028ar_val @ M @ N @ K )
        = none_val )
      = ( ( ( N @ K )
          = none_val )
        & ( ( M @ K )
          = none_val ) ) ) ).

% map_add_None
thf(fact_67_compatible__options_Osimps_I2_J,axiom,
    ! [Uv: option8887860577033306220on_val] : ( compat6602494657299208312on_val @ none_P8728355543607141243on_val @ Uv ) ).

% compatible_options.simps(2)
thf(fact_68_compatible__options_Osimps_I2_J,axiom,
    ! [Uv: option_list_char] : ( compat7573737823326560701t_char @ none_list_char @ Uv ) ).

% compatible_options.simps(2)
thf(fact_69_compatible__options_Osimps_I2_J,axiom,
    ! [Uv: option5747939881698552298on_val] : ( compat2032066794789061494on_val @ none_P1334921381875262201on_val @ Uv ) ).

% compatible_options.simps(2)
thf(fact_70_compatible__options_Osimps_I2_J,axiom,
    ! [Uv: option_state] : ( compat2278460363914054422_state @ none_state @ Uv ) ).

% compatible_options.simps(2)
thf(fact_71_compatible__options_Osimps_I2_J,axiom,
    ! [Uv: option_val] : ( compat7209469420100717861ns_val @ none_val @ Uv ) ).

% compatible_options.simps(2)
thf(fact_72_compatible__options_Osimps_I3_J,axiom,
    ! [Uu: option8887860577033306220on_val] : ( compat6602494657299208312on_val @ Uu @ none_P8728355543607141243on_val ) ).

% compatible_options.simps(3)
thf(fact_73_compatible__options_Osimps_I3_J,axiom,
    ! [Uu: option_list_char] : ( compat7573737823326560701t_char @ Uu @ none_list_char ) ).

% compatible_options.simps(3)
thf(fact_74_compatible__options_Osimps_I3_J,axiom,
    ! [Uu: option5747939881698552298on_val] : ( compat2032066794789061494on_val @ Uu @ none_P1334921381875262201on_val ) ).

% compatible_options.simps(3)
thf(fact_75_compatible__options_Osimps_I3_J,axiom,
    ! [Uu: option_state] : ( compat2278460363914054422_state @ Uu @ none_state ) ).

% compatible_options.simps(3)
thf(fact_76_compatible__options_Osimps_I3_J,axiom,
    ! [Uu: option_val] : ( compat7209469420100717861ns_val @ Uu @ none_val ) ).

% compatible_options.simps(3)
thf(fact_77_combine__options__cases,axiom,
    ! [X: option_state,P: option_state > option_state > $o,Y2: option_state] :
      ( ( ( X = none_state )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_state )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: state,B4: state] :
              ( ( X
                = ( some_state @ A4 ) )
             => ( ( Y2
                  = ( some_state @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_78_combine__options__cases,axiom,
    ! [X: option_state,P: option_state > option_val > $o,Y2: option_val] :
      ( ( ( X = none_state )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_val )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: state,B4: val] :
              ( ( X
                = ( some_state @ A4 ) )
             => ( ( Y2
                  = ( some_val @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_79_combine__options__cases,axiom,
    ! [X: option_val,P: option_val > option_state > $o,Y2: option_state] :
      ( ( ( X = none_val )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_state )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: val,B4: state] :
              ( ( X
                = ( some_val @ A4 ) )
             => ( ( Y2
                  = ( some_state @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_80_combine__options__cases,axiom,
    ! [X: option_val,P: option_val > option_val > $o,Y2: option_val] :
      ( ( ( X = none_val )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_val )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: val,B4: val] :
              ( ( X
                = ( some_val @ A4 ) )
             => ( ( Y2
                  = ( some_val @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_81_combine__options__cases,axiom,
    ! [X: option_state,P: option_state > option_list_char > $o,Y2: option_list_char] :
      ( ( ( X = none_state )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_list_char )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: state,B4: list_char] :
              ( ( X
                = ( some_state @ A4 ) )
             => ( ( Y2
                  = ( some_list_char @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_82_combine__options__cases,axiom,
    ! [X: option_val,P: option_val > option_list_char > $o,Y2: option_list_char] :
      ( ( ( X = none_val )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_list_char )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: val,B4: list_char] :
              ( ( X
                = ( some_val @ A4 ) )
             => ( ( Y2
                  = ( some_list_char @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_83_combine__options__cases,axiom,
    ! [X: option_list_char,P: option_list_char > option_state > $o,Y2: option_state] :
      ( ( ( X = none_list_char )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_state )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: list_char,B4: state] :
              ( ( X
                = ( some_list_char @ A4 ) )
             => ( ( Y2
                  = ( some_state @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_84_combine__options__cases,axiom,
    ! [X: option_list_char,P: option_list_char > option_val > $o,Y2: option_val] :
      ( ( ( X = none_list_char )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_val )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: list_char,B4: val] :
              ( ( X
                = ( some_list_char @ A4 ) )
             => ( ( Y2
                  = ( some_val @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_85_combine__options__cases,axiom,
    ! [X: option_list_char,P: option_list_char > option_list_char > $o,Y2: option_list_char] :
      ( ( ( X = none_list_char )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_list_char )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: list_char,B4: list_char] :
              ( ( X
                = ( some_list_char @ A4 ) )
             => ( ( Y2
                  = ( some_list_char @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_86_combine__options__cases,axiom,
    ! [X: option_state,P: option_state > option5747939881698552298on_val > $o,Y2: option5747939881698552298on_val] :
      ( ( ( X = none_state )
       => ( P @ X @ Y2 ) )
     => ( ( ( Y2 = none_P1334921381875262201on_val )
         => ( P @ X @ Y2 ) )
       => ( ! [A4: state,B4: produc1457211279475724562t_char > option_val] :
              ( ( X
                = ( some_state @ A4 ) )
             => ( ( Y2
                  = ( some_P7669353234731512949on_val @ B4 ) )
               => ( P @ X @ Y2 ) ) )
         => ( P @ X @ Y2 ) ) ) ) ).

% combine_options_cases
thf(fact_87_split__option__all,axiom,
    ( ( ^ [P2: option8887860577033306220on_val > $o] :
        ! [X4: option8887860577033306220on_val] : ( P2 @ X4 ) )
    = ( ^ [P3: option8887860577033306220on_val > $o] :
          ( ( P3 @ none_P8728355543607141243on_val )
          & ! [X3: produc9003781588162623004on_val] : ( P3 @ ( some_P2581650809551911671on_val @ X3 ) ) ) ) ) ).

% split_option_all
thf(fact_88_split__option__all,axiom,
    ( ( ^ [P2: option_list_char > $o] :
        ! [X4: option_list_char] : ( P2 @ X4 ) )
    = ( ^ [P3: option_list_char > $o] :
          ( ( P3 @ none_list_char )
          & ! [X3: list_char] : ( P3 @ ( some_list_char @ X3 ) ) ) ) ) ).

% split_option_all
thf(fact_89_split__option__all,axiom,
    ( ( ^ [P2: option5747939881698552298on_val > $o] :
        ! [X4: option5747939881698552298on_val] : ( P2 @ X4 ) )
    = ( ^ [P3: option5747939881698552298on_val > $o] :
          ( ( P3 @ none_P1334921381875262201on_val )
          & ! [X3: produc1457211279475724562t_char > option_val] : ( P3 @ ( some_P7669353234731512949on_val @ X3 ) ) ) ) ) ).

% split_option_all
thf(fact_90_split__option__all,axiom,
    ( ( ^ [P2: option_state > $o] :
        ! [X4: option_state] : ( P2 @ X4 ) )
    = ( ^ [P3: option_state > $o] :
          ( ( P3 @ none_state )
          & ! [X3: state] : ( P3 @ ( some_state @ X3 ) ) ) ) ) ).

% split_option_all
thf(fact_91_split__option__all,axiom,
    ( ( ^ [P2: option_val > $o] :
        ! [X4: option_val] : ( P2 @ X4 ) )
    = ( ^ [P3: option_val > $o] :
          ( ( P3 @ none_val )
          & ! [X3: val] : ( P3 @ ( some_val @ X3 ) ) ) ) ) ).

% split_option_all
thf(fact_92_split__option__ex,axiom,
    ( ( ^ [P2: option8887860577033306220on_val > $o] :
        ? [X4: option8887860577033306220on_val] : ( P2 @ X4 ) )
    = ( ^ [P3: option8887860577033306220on_val > $o] :
          ( ( P3 @ none_P8728355543607141243on_val )
          | ? [X3: produc9003781588162623004on_val] : ( P3 @ ( some_P2581650809551911671on_val @ X3 ) ) ) ) ) ).

% split_option_ex
thf(fact_93_split__option__ex,axiom,
    ( ( ^ [P2: option_list_char > $o] :
        ? [X4: option_list_char] : ( P2 @ X4 ) )
    = ( ^ [P3: option_list_char > $o] :
          ( ( P3 @ none_list_char )
          | ? [X3: list_char] : ( P3 @ ( some_list_char @ X3 ) ) ) ) ) ).

% split_option_ex
thf(fact_94_split__option__ex,axiom,
    ( ( ^ [P2: option5747939881698552298on_val > $o] :
        ? [X4: option5747939881698552298on_val] : ( P2 @ X4 ) )
    = ( ^ [P3: option5747939881698552298on_val > $o] :
          ( ( P3 @ none_P1334921381875262201on_val )
          | ? [X3: produc1457211279475724562t_char > option_val] : ( P3 @ ( some_P7669353234731512949on_val @ X3 ) ) ) ) ) ).

% split_option_ex
thf(fact_95_split__option__ex,axiom,
    ( ( ^ [P2: option_state > $o] :
        ? [X4: option_state] : ( P2 @ X4 ) )
    = ( ^ [P3: option_state > $o] :
          ( ( P3 @ none_state )
          | ? [X3: state] : ( P3 @ ( some_state @ X3 ) ) ) ) ) ).

% split_option_ex
thf(fact_96_split__option__ex,axiom,
    ( ( ^ [P2: option_val > $o] :
        ? [X4: option_val] : ( P2 @ X4 ) )
    = ( ^ [P3: option_val > $o] :
          ( ( P3 @ none_val )
          | ? [X3: val] : ( P3 @ ( some_val @ X3 ) ) ) ) ) ).

% split_option_ex
thf(fact_97_option_Oexhaust,axiom,
    ! [Y2: option8887860577033306220on_val] :
      ( ( Y2 != none_P8728355543607141243on_val )
     => ~ ! [X23: produc9003781588162623004on_val] :
            ( Y2
           != ( some_P2581650809551911671on_val @ X23 ) ) ) ).

% option.exhaust
thf(fact_98_option_Oexhaust,axiom,
    ! [Y2: option_list_char] :
      ( ( Y2 != none_list_char )
     => ~ ! [X23: list_char] :
            ( Y2
           != ( some_list_char @ X23 ) ) ) ).

% option.exhaust
thf(fact_99_option_Oexhaust,axiom,
    ! [Y2: option5747939881698552298on_val] :
      ( ( Y2 != none_P1334921381875262201on_val )
     => ~ ! [X23: produc1457211279475724562t_char > option_val] :
            ( Y2
           != ( some_P7669353234731512949on_val @ X23 ) ) ) ).

% option.exhaust
thf(fact_100_option_Oexhaust,axiom,
    ! [Y2: option_state] :
      ( ( Y2 != none_state )
     => ~ ! [X23: state] :
            ( Y2
           != ( some_state @ X23 ) ) ) ).

% option.exhaust
thf(fact_101_option_Oexhaust,axiom,
    ! [Y2: option_val] :
      ( ( Y2 != none_val )
     => ~ ! [X23: val] :
            ( Y2
           != ( some_val @ X23 ) ) ) ).

% option.exhaust
thf(fact_102_mem__Collect__eq,axiom,
    ! [A2: val,P: val > $o] :
      ( ( member_val @ A2 @ ( collect_val @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_103_mem__Collect__eq,axiom,
    ! [A2: nat,P: nat > $o] :
      ( ( member_nat @ A2 @ ( collect_nat @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_104_mem__Collect__eq,axiom,
    ! [A2: produc1457211279475724562t_char > option_val,P: ( produc1457211279475724562t_char > option_val ) > $o] :
      ( ( member1577473829074448177on_val @ A2 @ ( collec8455114619259388271on_val @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_105_mem__Collect__eq,axiom,
    ! [A2: produc1457211279475724562t_char > prat,P: ( produc1457211279475724562t_char > prat ) > $o] :
      ( ( member2336342582916103932r_prat @ A2 @ ( collec7093475260167521854r_prat @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_106_mem__Collect__eq,axiom,
    ! [A2: produc1457211279475724562t_char,P: produc1457211279475724562t_char > $o] :
      ( ( member484235747325421115t_char @ A2 @ ( collec2458894688891239037t_char @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_107_mem__Collect__eq,axiom,
    ! [A2: option_state,P: option_state > $o] :
      ( ( member_option_state @ A2 @ ( collect_option_state @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_108_mem__Collect__eq,axiom,
    ! [A2: option2736423997234022232t_char,P: option2736423997234022232t_char > $o] :
      ( ( member1900516542280067841t_char @ A2 @ ( collec3561702660602934339t_char @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_109_mem__Collect__eq,axiom,
    ! [A2: option8887860577033306220on_val,P: option8887860577033306220on_val > $o] :
      ( ( member4602090469187516291on_val @ A2 @ ( collec6281439769543645121on_val @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_110_mem__Collect__eq,axiom,
    ! [A2: option_val,P: option_val > $o] :
      ( ( member_option_val @ A2 @ ( collect_option_val @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_111_mem__Collect__eq,axiom,
    ! [A2: produc9003781588162623004on_val,P: produc9003781588162623004on_val > $o] :
      ( ( member2879030624002546611on_val @ A2 @ ( collec7475294502966882545on_val @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_112_Collect__mem__eq,axiom,
    ! [A5: set_val] :
      ( ( collect_val
        @ ^ [X3: val] : ( member_val @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_113_Collect__mem__eq,axiom,
    ! [A5: set_nat] :
      ( ( collect_nat
        @ ^ [X3: nat] : ( member_nat @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_114_Collect__mem__eq,axiom,
    ! [A5: set_Pr1004501353197068112on_val] :
      ( ( collec8455114619259388271on_val
        @ ^ [X3: produc1457211279475724562t_char > option_val] : ( member1577473829074448177on_val @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_115_Collect__mem__eq,axiom,
    ! [A5: set_Pr3433046674199179443r_prat] :
      ( ( collec7093475260167521854r_prat
        @ ^ [X3: produc1457211279475724562t_char > prat] : ( member2336342582916103932r_prat @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_116_Collect__mem__eq,axiom,
    ! [A5: set_Pr2507339680178222706t_char] :
      ( ( collec2458894688891239037t_char
        @ ^ [X3: produc1457211279475724562t_char] : ( member484235747325421115t_char @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_117_Collect__mem__eq,axiom,
    ! [A5: set_option_state] :
      ( ( collect_option_state
        @ ^ [X3: option_state] : ( member_option_state @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_118_Collect__mem__eq,axiom,
    ! [A5: set_op9137726805559506488t_char] :
      ( ( collec3561702660602934339t_char
        @ ^ [X3: option2736423997234022232t_char] : ( member1900516542280067841t_char @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_119_Collect__mem__eq,axiom,
    ! [A5: set_op6240181410663953058on_val] :
      ( ( collec6281439769543645121on_val
        @ ^ [X3: option8887860577033306220on_val] : ( member4602090469187516291on_val @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_120_Collect__mem__eq,axiom,
    ! [A5: set_option_val] :
      ( ( collect_option_val
        @ ^ [X3: option_val] : ( member_option_val @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_121_Collect__mem__eq,axiom,
    ! [A5: set_Pr7649655576376376530on_val] :
      ( ( collec7475294502966882545on_val
        @ ^ [X3: produc9003781588162623004on_val] : ( member2879030624002546611on_val @ X3 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_122_Collect__cong,axiom,
    ! [P: produc1457211279475724562t_char > $o,Q: produc1457211279475724562t_char > $o] :
      ( ! [X2: produc1457211279475724562t_char] :
          ( ( P @ X2 )
          = ( Q @ X2 ) )
     => ( ( collec2458894688891239037t_char @ P )
        = ( collec2458894688891239037t_char @ Q ) ) ) ).

% Collect_cong
thf(fact_123_Collect__cong,axiom,
    ! [P: option_state > $o,Q: option_state > $o] :
      ( ! [X2: option_state] :
          ( ( P @ X2 )
          = ( Q @ X2 ) )
     => ( ( collect_option_state @ P )
        = ( collect_option_state @ Q ) ) ) ).

% Collect_cong
thf(fact_124_Collect__cong,axiom,
    ! [P: option2736423997234022232t_char > $o,Q: option2736423997234022232t_char > $o] :
      ( ! [X2: option2736423997234022232t_char] :
          ( ( P @ X2 )
          = ( Q @ X2 ) )
     => ( ( collec3561702660602934339t_char @ P )
        = ( collec3561702660602934339t_char @ Q ) ) ) ).

% Collect_cong
thf(fact_125_Collect__cong,axiom,
    ! [P: option8887860577033306220on_val > $o,Q: option8887860577033306220on_val > $o] :
      ( ! [X2: option8887860577033306220on_val] :
          ( ( P @ X2 )
          = ( Q @ X2 ) )
     => ( ( collec6281439769543645121on_val @ P )
        = ( collec6281439769543645121on_val @ Q ) ) ) ).

% Collect_cong
thf(fact_126_Collect__cong,axiom,
    ! [P: option_val > $o,Q: option_val > $o] :
      ( ! [X2: option_val] :
          ( ( P @ X2 )
          = ( Q @ X2 ) )
     => ( ( collect_option_val @ P )
        = ( collect_option_val @ Q ) ) ) ).

% Collect_cong
thf(fact_127_Collect__cong,axiom,
    ! [P: produc9003781588162623004on_val > $o,Q: produc9003781588162623004on_val > $o] :
      ( ! [X2: produc9003781588162623004on_val] :
          ( ( P @ X2 )
          = ( Q @ X2 ) )
     => ( ( collec7475294502966882545on_val @ P )
        = ( collec7475294502966882545on_val @ Q ) ) ) ).

% Collect_cong
thf(fact_128_option_OdiscI,axiom,
    ! [Option: option8887860577033306220on_val,X22: produc9003781588162623004on_val] :
      ( ( Option
        = ( some_P2581650809551911671on_val @ X22 ) )
     => ( Option != none_P8728355543607141243on_val ) ) ).

% option.discI
thf(fact_129_option_OdiscI,axiom,
    ! [Option: option_list_char,X22: list_char] :
      ( ( Option
        = ( some_list_char @ X22 ) )
     => ( Option != none_list_char ) ) ).

% option.discI
thf(fact_130_option_OdiscI,axiom,
    ! [Option: option5747939881698552298on_val,X22: produc1457211279475724562t_char > option_val] :
      ( ( Option
        = ( some_P7669353234731512949on_val @ X22 ) )
     => ( Option != none_P1334921381875262201on_val ) ) ).

% option.discI
thf(fact_131_option_OdiscI,axiom,
    ! [Option: option_state,X22: state] :
      ( ( Option
        = ( some_state @ X22 ) )
     => ( Option != none_state ) ) ).

% option.discI
thf(fact_132_option_OdiscI,axiom,
    ! [Option: option_val,X22: val] :
      ( ( Option
        = ( some_val @ X22 ) )
     => ( Option != none_val ) ) ).

% option.discI
thf(fact_133_option_Odistinct_I1_J,axiom,
    ! [X22: produc9003781588162623004on_val] :
      ( none_P8728355543607141243on_val
     != ( some_P2581650809551911671on_val @ X22 ) ) ).

% option.distinct(1)
thf(fact_134_option_Odistinct_I1_J,axiom,
    ! [X22: list_char] :
      ( none_list_char
     != ( some_list_char @ X22 ) ) ).

% option.distinct(1)
thf(fact_135_option_Odistinct_I1_J,axiom,
    ! [X22: produc1457211279475724562t_char > option_val] :
      ( none_P1334921381875262201on_val
     != ( some_P7669353234731512949on_val @ X22 ) ) ).

% option.distinct(1)
thf(fact_136_option_Odistinct_I1_J,axiom,
    ! [X22: state] :
      ( none_state
     != ( some_state @ X22 ) ) ).

% option.distinct(1)
thf(fact_137_option_Odistinct_I1_J,axiom,
    ! [X22: val] :
      ( none_val
     != ( some_val @ X22 ) ) ).

% option.distinct(1)
thf(fact_138_compatible__options_Oelims_I1_J,axiom,
    ! [X: option8887860577033306220on_val,Xa: option8887860577033306220on_val,Y2: $o] :
      ( ( ( compat6602494657299208312on_val @ X @ Xa )
        = Y2 )
     => ( ! [A4: produc9003781588162623004on_val] :
            ( ( X
              = ( some_P2581650809551911671on_val @ A4 ) )
           => ! [B4: produc9003781588162623004on_val] :
                ( ( Xa
                  = ( some_P2581650809551911671on_val @ B4 ) )
               => ( Y2
                  = ( A4 != B4 ) ) ) )
       => ( ( ( X = none_P8728355543607141243on_val )
           => ~ Y2 )
         => ~ ( ( Xa = none_P8728355543607141243on_val )
             => ~ Y2 ) ) ) ) ).

% compatible_options.elims(1)
thf(fact_139_compatible__options_Oelims_I1_J,axiom,
    ! [X: option_list_char,Xa: option_list_char,Y2: $o] :
      ( ( ( compat7573737823326560701t_char @ X @ Xa )
        = Y2 )
     => ( ! [A4: list_char] :
            ( ( X
              = ( some_list_char @ A4 ) )
           => ! [B4: list_char] :
                ( ( Xa
                  = ( some_list_char @ B4 ) )
               => ( Y2
                  = ( A4 != B4 ) ) ) )
       => ( ( ( X = none_list_char )
           => ~ Y2 )
         => ~ ( ( Xa = none_list_char )
             => ~ Y2 ) ) ) ) ).

% compatible_options.elims(1)
thf(fact_140_compatible__options_Oelims_I1_J,axiom,
    ! [X: option5747939881698552298on_val,Xa: option5747939881698552298on_val,Y2: $o] :
      ( ( ( compat2032066794789061494on_val @ X @ Xa )
        = Y2 )
     => ( ! [A4: produc1457211279475724562t_char > option_val] :
            ( ( X
              = ( some_P7669353234731512949on_val @ A4 ) )
           => ! [B4: produc1457211279475724562t_char > option_val] :
                ( ( Xa
                  = ( some_P7669353234731512949on_val @ B4 ) )
               => ( Y2
                  = ( A4 != B4 ) ) ) )
       => ( ( ( X = none_P1334921381875262201on_val )
           => ~ Y2 )
         => ~ ( ( Xa = none_P1334921381875262201on_val )
             => ~ Y2 ) ) ) ) ).

% compatible_options.elims(1)
thf(fact_141_compatible__options_Oelims_I1_J,axiom,
    ! [X: option_state,Xa: option_state,Y2: $o] :
      ( ( ( compat2278460363914054422_state @ X @ Xa )
        = Y2 )
     => ( ! [A4: state] :
            ( ( X
              = ( some_state @ A4 ) )
           => ! [B4: state] :
                ( ( Xa
                  = ( some_state @ B4 ) )
               => ( Y2
                  = ( A4 != B4 ) ) ) )
       => ( ( ( X = none_state )
           => ~ Y2 )
         => ~ ( ( Xa = none_state )
             => ~ Y2 ) ) ) ) ).

% compatible_options.elims(1)
thf(fact_142_compatible__options_Oelims_I1_J,axiom,
    ! [X: option_val,Xa: option_val,Y2: $o] :
      ( ( ( compat7209469420100717861ns_val @ X @ Xa )
        = Y2 )
     => ( ! [A4: val] :
            ( ( X
              = ( some_val @ A4 ) )
           => ! [B4: val] :
                ( ( Xa
                  = ( some_val @ B4 ) )
               => ( Y2
                  = ( A4 != B4 ) ) ) )
       => ( ( ( X = none_val )
           => ~ Y2 )
         => ~ ( ( Xa = none_val )
             => ~ Y2 ) ) ) ) ).

% compatible_options.elims(1)
thf(fact_143_compatible__options_Oelims_I2_J,axiom,
    ! [X: option8887860577033306220on_val,Xa: option8887860577033306220on_val] :
      ( ( compat6602494657299208312on_val @ X @ Xa )
     => ( ! [A4: produc9003781588162623004on_val] :
            ( ( X
              = ( some_P2581650809551911671on_val @ A4 ) )
           => ! [B4: produc9003781588162623004on_val] :
                ( ( Xa
                  = ( some_P2581650809551911671on_val @ B4 ) )
               => ( A4 != B4 ) ) )
       => ( ( X != none_P8728355543607141243on_val )
         => ( Xa = none_P8728355543607141243on_val ) ) ) ) ).

% compatible_options.elims(2)
thf(fact_144_compatible__options_Oelims_I2_J,axiom,
    ! [X: option_list_char,Xa: option_list_char] :
      ( ( compat7573737823326560701t_char @ X @ Xa )
     => ( ! [A4: list_char] :
            ( ( X
              = ( some_list_char @ A4 ) )
           => ! [B4: list_char] :
                ( ( Xa
                  = ( some_list_char @ B4 ) )
               => ( A4 != B4 ) ) )
       => ( ( X != none_list_char )
         => ( Xa = none_list_char ) ) ) ) ).

% compatible_options.elims(2)
thf(fact_145_compatible__options_Oelims_I2_J,axiom,
    ! [X: option5747939881698552298on_val,Xa: option5747939881698552298on_val] :
      ( ( compat2032066794789061494on_val @ X @ Xa )
     => ( ! [A4: produc1457211279475724562t_char > option_val] :
            ( ( X
              = ( some_P7669353234731512949on_val @ A4 ) )
           => ! [B4: produc1457211279475724562t_char > option_val] :
                ( ( Xa
                  = ( some_P7669353234731512949on_val @ B4 ) )
               => ( A4 != B4 ) ) )
       => ( ( X != none_P1334921381875262201on_val )
         => ( Xa = none_P1334921381875262201on_val ) ) ) ) ).

% compatible_options.elims(2)
thf(fact_146_compatible__options_Oelims_I2_J,axiom,
    ! [X: option_state,Xa: option_state] :
      ( ( compat2278460363914054422_state @ X @ Xa )
     => ( ! [A4: state] :
            ( ( X
              = ( some_state @ A4 ) )
           => ! [B4: state] :
                ( ( Xa
                  = ( some_state @ B4 ) )
               => ( A4 != B4 ) ) )
       => ( ( X != none_state )
         => ( Xa = none_state ) ) ) ) ).

% compatible_options.elims(2)
thf(fact_147_compatible__options_Oelims_I2_J,axiom,
    ! [X: option_val,Xa: option_val] :
      ( ( compat7209469420100717861ns_val @ X @ Xa )
     => ( ! [A4: val] :
            ( ( X
              = ( some_val @ A4 ) )
           => ! [B4: val] :
                ( ( Xa
                  = ( some_val @ B4 ) )
               => ( A4 != B4 ) ) )
       => ( ( X != none_val )
         => ( Xa = none_val ) ) ) ) ).

% compatible_options.elims(2)
thf(fact_148_compatible__heapsI,axiom,
    ! [H: produc1457211279475724562t_char > option_val,H2: produc1457211279475724562t_char > option_val] :
      ( ! [Hl: produc1457211279475724562t_char,A4: val,B4: val] :
          ( ( ( H @ Hl )
            = ( some_val @ A4 ) )
         => ( ( ( H2 @ Hl )
              = ( some_val @ B4 ) )
           => ( A4 = B4 ) ) )
     => ( compatible_heaps @ H @ H2 ) ) ).

% compatible_heapsI
thf(fact_149_map__add__Some__iff,axiom,
    ! [M: produc9003781588162623004on_val > option_state,N: produc9003781588162623004on_val > option_state,K: produc9003781588162623004on_val,X: state] :
      ( ( ( map_ad2629041965313307917_state @ M @ N @ K )
        = ( some_state @ X ) )
      = ( ( ( N @ K )
          = ( some_state @ X ) )
        | ( ( ( N @ K )
            = none_state )
          & ( ( M @ K )
            = ( some_state @ X ) ) ) ) ) ).

% map_add_Some_iff
thf(fact_150_map__add__Some__iff,axiom,
    ! [M: produc9003781588162623004on_val > option_val,N: produc9003781588162623004on_val > option_val,K: produc9003781588162623004on_val,X: val] :
      ( ( ( map_ad5466549115852757998al_val @ M @ N @ K )
        = ( some_val @ X ) )
      = ( ( ( N @ K )
          = ( some_val @ X ) )
        | ( ( ( N @ K )
            = none_val )
          & ( ( M @ K )
            = ( some_val @ X ) ) ) ) ) ).

% map_add_Some_iff
thf(fact_151_map__add__Some__iff,axiom,
    ! [M: produc1457211279475724562t_char > option_val,N: produc1457211279475724562t_char > option_val,K: produc1457211279475724562t_char,X: val] :
      ( ( ( map_ad2908576761495157028ar_val @ M @ N @ K )
        = ( some_val @ X ) )
      = ( ( ( N @ K )
          = ( some_val @ X ) )
        | ( ( ( N @ K )
            = none_val )
          & ( ( M @ K )
            = ( some_val @ X ) ) ) ) ) ).

% map_add_Some_iff
thf(fact_152_map__add__SomeD,axiom,
    ! [M: produc9003781588162623004on_val > option_state,N: produc9003781588162623004on_val > option_state,K: produc9003781588162623004on_val,X: state] :
      ( ( ( map_ad2629041965313307917_state @ M @ N @ K )
        = ( some_state @ X ) )
     => ( ( ( N @ K )
          = ( some_state @ X ) )
        | ( ( ( N @ K )
            = none_state )
          & ( ( M @ K )
            = ( some_state @ X ) ) ) ) ) ).

% map_add_SomeD
thf(fact_153_map__add__SomeD,axiom,
    ! [M: produc9003781588162623004on_val > option_val,N: produc9003781588162623004on_val > option_val,K: produc9003781588162623004on_val,X: val] :
      ( ( ( map_ad5466549115852757998al_val @ M @ N @ K )
        = ( some_val @ X ) )
     => ( ( ( N @ K )
          = ( some_val @ X ) )
        | ( ( ( N @ K )
            = none_val )
          & ( ( M @ K )
            = ( some_val @ X ) ) ) ) ) ).

% map_add_SomeD
thf(fact_154_map__add__SomeD,axiom,
    ! [M: produc1457211279475724562t_char > option_val,N: produc1457211279475724562t_char > option_val,K: produc1457211279475724562t_char,X: val] :
      ( ( ( map_ad2908576761495157028ar_val @ M @ N @ K )
        = ( some_val @ X ) )
     => ( ( ( N @ K )
          = ( some_val @ X ) )
        | ( ( ( N @ K )
            = none_val )
          & ( ( M @ K )
            = ( some_val @ X ) ) ) ) ) ).

% map_add_SomeD
thf(fact_155_empty__heap__def,axiom,
    ( empty_7512026568161686585ar_val
    = ( ^ [Hl2: produc1457211279475724562t_char] : none_val ) ) ).

% empty_heap_def
thf(fact_156_valid__mask__full__mask,axiom,
    valid_mask @ full_mask ).

% valid_mask_full_mask
thf(fact_157_add__masks__equiv__valid__null,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat] :
      ( ( valid_null @ ( add_ma6586698345353345811t_char @ A2 @ B2 ) )
      = ( ( valid_null @ A2 )
        & ( valid_null @ B2 ) ) ) ).

% add_masks_equiv_valid_null
thf(fact_158_option_Ocollapse,axiom,
    ! [Option: option8887860577033306220on_val] :
      ( ( Option != none_P8728355543607141243on_val )
     => ( ( some_P2581650809551911671on_val @ ( the_Pr3639693038709580936on_val @ Option ) )
        = Option ) ) ).

% option.collapse
thf(fact_159_option_Ocollapse,axiom,
    ! [Option: option_list_char] :
      ( ( Option != none_list_char )
     => ( ( some_list_char @ ( the_list_char @ Option ) )
        = Option ) ) ).

% option.collapse
thf(fact_160_option_Ocollapse,axiom,
    ! [Option: option5747939881698552298on_val] :
      ( ( Option != none_P1334921381875262201on_val )
     => ( ( some_P7669353234731512949on_val @ ( the_Pr646328391962797958on_val @ Option ) )
        = Option ) ) ).

% option.collapse
thf(fact_161_option_Ocollapse,axiom,
    ! [Option: option_state] :
      ( ( Option != none_state )
     => ( ( some_state @ ( the_state @ Option ) )
        = Option ) ) ).

% option.collapse
thf(fact_162_option_Ocollapse,axiom,
    ! [Option: option_val] :
      ( ( Option != none_val )
     => ( ( some_val @ ( the_val @ Option ) )
        = Option ) ) ).

% option.collapse
thf(fact_163_minus__empty,axiom,
    ! [Pi: ( produc1457211279475724562t_char > prat ) > prat] :
      ( Pi
      = ( add_ma5081279659257173972r_prat @ Pi @ empty_6616431780912394577r_prat ) ) ).

% minus_empty
thf(fact_164_minus__empty,axiom,
    ! [Pi: state > prat] :
      ( Pi
      = ( add_masks_state @ Pi @ empty_mask_state ) ) ).

% minus_empty
thf(fact_165_minus__empty,axiom,
    ! [Pi: produc9003781588162623004on_val > prat] :
      ( Pi
      = ( add_ma7175289307942684891on_val @ Pi @ empty_6102255041883331742on_val ) ) ).

% minus_empty
thf(fact_166_minus__empty,axiom,
    ! [Pi: produc1317171644805857433on_val > prat] :
      ( Pi
      = ( add_ma2842950146128053786on_val @ Pi @ empty_4129289814623480215on_val ) ) ).

% minus_empty
thf(fact_167_minus__empty,axiom,
    ! [Pi: produc1457211279475724562t_char > prat] :
      ( Pi
      = ( add_ma6586698345353345811t_char @ Pi @ empty_3446695950879338768t_char ) ) ).

% minus_empty
thf(fact_168_bind__split,axiom,
    ! [P: option_state > $o,M: option_state,F: state > option_state] :
      ( ( P @ ( bind_state_state @ M @ F ) )
      = ( ( ( M = none_state )
         => ( P @ none_state ) )
        & ! [V: state] :
            ( ( M
              = ( some_state @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_169_bind__split,axiom,
    ! [P: option_val > $o,M: option_state,F: state > option_val] :
      ( ( P @ ( bind_state_val @ M @ F ) )
      = ( ( ( M = none_state )
         => ( P @ none_val ) )
        & ! [V: state] :
            ( ( M
              = ( some_state @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_170_bind__split,axiom,
    ! [P: option_state > $o,M: option_val,F: val > option_state] :
      ( ( P @ ( bind_val_state @ M @ F ) )
      = ( ( ( M = none_val )
         => ( P @ none_state ) )
        & ! [V: val] :
            ( ( M
              = ( some_val @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_171_bind__split,axiom,
    ! [P: option_val > $o,M: option_val,F: val > option_val] :
      ( ( P @ ( bind_val_val @ M @ F ) )
      = ( ( ( M = none_val )
         => ( P @ none_val ) )
        & ! [V: val] :
            ( ( M
              = ( some_val @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_172_bind__split,axiom,
    ! [P: option_list_char > $o,M: option_state,F: state > option_list_char] :
      ( ( P @ ( bind_state_list_char @ M @ F ) )
      = ( ( ( M = none_state )
         => ( P @ none_list_char ) )
        & ! [V: state] :
            ( ( M
              = ( some_state @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_173_bind__split,axiom,
    ! [P: option_list_char > $o,M: option_val,F: val > option_list_char] :
      ( ( P @ ( bind_val_list_char @ M @ F ) )
      = ( ( ( M = none_val )
         => ( P @ none_list_char ) )
        & ! [V: val] :
            ( ( M
              = ( some_val @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_174_bind__split,axiom,
    ! [P: option_state > $o,M: option_list_char,F: list_char > option_state] :
      ( ( P @ ( bind_list_char_state @ M @ F ) )
      = ( ( ( M = none_list_char )
         => ( P @ none_state ) )
        & ! [V: list_char] :
            ( ( M
              = ( some_list_char @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_175_bind__split,axiom,
    ! [P: option_val > $o,M: option_list_char,F: list_char > option_val] :
      ( ( P @ ( bind_list_char_val @ M @ F ) )
      = ( ( ( M = none_list_char )
         => ( P @ none_val ) )
        & ! [V: list_char] :
            ( ( M
              = ( some_list_char @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_176_bind__split,axiom,
    ! [P: option_list_char > $o,M: option_list_char,F: list_char > option_list_char] :
      ( ( P @ ( bind_l7575086113700739714t_char @ M @ F ) )
      = ( ( ( M = none_list_char )
         => ( P @ none_list_char ) )
        & ! [V: list_char] :
            ( ( M
              = ( some_list_char @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_177_bind__split,axiom,
    ! [P: option5747939881698552298on_val > $o,M: option_state,F: state > option5747939881698552298on_val] :
      ( ( P @ ( bind_s7388421589535509396on_val @ M @ F ) )
      = ( ( ( M = none_state )
         => ( P @ none_P1334921381875262201on_val ) )
        & ! [V: state] :
            ( ( M
              = ( some_state @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_178_bind__split__asm,axiom,
    ! [P: option_state > $o,M: option_state,F: state > option_state] :
      ( ( P @ ( bind_state_state @ M @ F ) )
      = ( ~ ( ( ( M = none_state )
              & ~ ( P @ none_state ) )
            | ? [X3: state] :
                ( ( M
                  = ( some_state @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_179_bind__split__asm,axiom,
    ! [P: option_val > $o,M: option_state,F: state > option_val] :
      ( ( P @ ( bind_state_val @ M @ F ) )
      = ( ~ ( ( ( M = none_state )
              & ~ ( P @ none_val ) )
            | ? [X3: state] :
                ( ( M
                  = ( some_state @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_180_bind__split__asm,axiom,
    ! [P: option_state > $o,M: option_val,F: val > option_state] :
      ( ( P @ ( bind_val_state @ M @ F ) )
      = ( ~ ( ( ( M = none_val )
              & ~ ( P @ none_state ) )
            | ? [X3: val] :
                ( ( M
                  = ( some_val @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_181_bind__split__asm,axiom,
    ! [P: option_val > $o,M: option_val,F: val > option_val] :
      ( ( P @ ( bind_val_val @ M @ F ) )
      = ( ~ ( ( ( M = none_val )
              & ~ ( P @ none_val ) )
            | ? [X3: val] :
                ( ( M
                  = ( some_val @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_182_bind__split__asm,axiom,
    ! [P: option_list_char > $o,M: option_state,F: state > option_list_char] :
      ( ( P @ ( bind_state_list_char @ M @ F ) )
      = ( ~ ( ( ( M = none_state )
              & ~ ( P @ none_list_char ) )
            | ? [X3: state] :
                ( ( M
                  = ( some_state @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_183_bind__split__asm,axiom,
    ! [P: option_list_char > $o,M: option_val,F: val > option_list_char] :
      ( ( P @ ( bind_val_list_char @ M @ F ) )
      = ( ~ ( ( ( M = none_val )
              & ~ ( P @ none_list_char ) )
            | ? [X3: val] :
                ( ( M
                  = ( some_val @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_184_bind__split__asm,axiom,
    ! [P: option_state > $o,M: option_list_char,F: list_char > option_state] :
      ( ( P @ ( bind_list_char_state @ M @ F ) )
      = ( ~ ( ( ( M = none_list_char )
              & ~ ( P @ none_state ) )
            | ? [X3: list_char] :
                ( ( M
                  = ( some_list_char @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_185_bind__split__asm,axiom,
    ! [P: option_val > $o,M: option_list_char,F: list_char > option_val] :
      ( ( P @ ( bind_list_char_val @ M @ F ) )
      = ( ~ ( ( ( M = none_list_char )
              & ~ ( P @ none_val ) )
            | ? [X3: list_char] :
                ( ( M
                  = ( some_list_char @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_186_bind__split__asm,axiom,
    ! [P: option_list_char > $o,M: option_list_char,F: list_char > option_list_char] :
      ( ( P @ ( bind_l7575086113700739714t_char @ M @ F ) )
      = ( ~ ( ( ( M = none_list_char )
              & ~ ( P @ none_list_char ) )
            | ? [X3: list_char] :
                ( ( M
                  = ( some_list_char @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_187_bind__split__asm,axiom,
    ! [P: option5747939881698552298on_val > $o,M: option_state,F: state > option5747939881698552298on_val] :
      ( ( P @ ( bind_s7388421589535509396on_val @ M @ F ) )
      = ( ~ ( ( ( M = none_state )
              & ~ ( P @ none_P1334921381875262201on_val ) )
            | ? [X3: state] :
                ( ( M
                  = ( some_state @ X3 ) )
                & ~ ( P @ ( F @ X3 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_188_bind__runit,axiom,
    ! [X: option8887860577033306220on_val] :
      ( ( bind_P2485767298420691192on_val @ X @ some_P2581650809551911671on_val )
      = X ) ).

% bind_runit
thf(fact_189_bind__runit,axiom,
    ! [X: option_list_char] :
      ( ( bind_l7575086113700739714t_char @ X @ some_list_char )
      = X ) ).

% bind_runit
thf(fact_190_bind__runit,axiom,
    ! [X: option5747939881698552298on_val] :
      ( ( bind_P4424090778364213876on_val @ X @ some_P7669353234731512949on_val )
      = X ) ).

% bind_runit
thf(fact_191_bind__runit,axiom,
    ! [X: option_state] :
      ( ( bind_state_state @ X @ some_state )
      = X ) ).

% bind_runit
thf(fact_192_bind__runit,axiom,
    ! [X: option_val] :
      ( ( bind_val_val @ X @ some_val )
      = X ) ).

% bind_runit
thf(fact_193_bind__option__cong__code,axiom,
    ! [X: option_val,Y2: option_val,F: val > option_val] :
      ( ( X = Y2 )
     => ( ( bind_val_val @ X @ F )
        = ( bind_val_val @ Y2 @ F ) ) ) ).

% bind_option_cong_code
thf(fact_194_bind__option__cong__code,axiom,
    ! [X: option_val,Y2: option_val,F: val > option_state] :
      ( ( X = Y2 )
     => ( ( bind_val_state @ X @ F )
        = ( bind_val_state @ Y2 @ F ) ) ) ).

% bind_option_cong_code
thf(fact_195_bind__option__cong__code,axiom,
    ! [X: option_state,Y2: option_state,F: state > option_val] :
      ( ( X = Y2 )
     => ( ( bind_state_val @ X @ F )
        = ( bind_state_val @ Y2 @ F ) ) ) ).

% bind_option_cong_code
thf(fact_196_bind__option__cong__code,axiom,
    ! [X: option_state,Y2: option_state,F: state > option_state] :
      ( ( X = Y2 )
     => ( ( bind_state_state @ X @ F )
        = ( bind_state_state @ Y2 @ F ) ) ) ).

% bind_option_cong_code
thf(fact_197_bind__eq__None__conv,axiom,
    ! [A2: option_state,F: state > option_state] :
      ( ( ( bind_state_state @ A2 @ F )
        = none_state )
      = ( ( A2 = none_state )
        | ( ( F @ ( the_state @ A2 ) )
          = none_state ) ) ) ).

% bind_eq_None_conv
thf(fact_198_bind__eq__None__conv,axiom,
    ! [A2: option_val,F: val > option_state] :
      ( ( ( bind_val_state @ A2 @ F )
        = none_state )
      = ( ( A2 = none_val )
        | ( ( F @ ( the_val @ A2 ) )
          = none_state ) ) ) ).

% bind_eq_None_conv
thf(fact_199_bind__eq__None__conv,axiom,
    ! [A2: option_state,F: state > option_val] :
      ( ( ( bind_state_val @ A2 @ F )
        = none_val )
      = ( ( A2 = none_state )
        | ( ( F @ ( the_state @ A2 ) )
          = none_val ) ) ) ).

% bind_eq_None_conv
thf(fact_200_bind__eq__None__conv,axiom,
    ! [A2: option_val,F: val > option_val] :
      ( ( ( bind_val_val @ A2 @ F )
        = none_val )
      = ( ( A2 = none_val )
        | ( ( F @ ( the_val @ A2 ) )
          = none_val ) ) ) ).

% bind_eq_None_conv
thf(fact_201_bind__eq__None__conv,axiom,
    ! [A2: option_list_char,F: list_char > option_state] :
      ( ( ( bind_list_char_state @ A2 @ F )
        = none_state )
      = ( ( A2 = none_list_char )
        | ( ( F @ ( the_list_char @ A2 ) )
          = none_state ) ) ) ).

% bind_eq_None_conv
thf(fact_202_bind__eq__None__conv,axiom,
    ! [A2: option_list_char,F: list_char > option_val] :
      ( ( ( bind_list_char_val @ A2 @ F )
        = none_val )
      = ( ( A2 = none_list_char )
        | ( ( F @ ( the_list_char @ A2 ) )
          = none_val ) ) ) ).

% bind_eq_None_conv
thf(fact_203_bind__eq__None__conv,axiom,
    ! [A2: option_state,F: state > option_list_char] :
      ( ( ( bind_state_list_char @ A2 @ F )
        = none_list_char )
      = ( ( A2 = none_state )
        | ( ( F @ ( the_state @ A2 ) )
          = none_list_char ) ) ) ).

% bind_eq_None_conv
thf(fact_204_bind__eq__None__conv,axiom,
    ! [A2: option_val,F: val > option_list_char] :
      ( ( ( bind_val_list_char @ A2 @ F )
        = none_list_char )
      = ( ( A2 = none_val )
        | ( ( F @ ( the_val @ A2 ) )
          = none_list_char ) ) ) ).

% bind_eq_None_conv
thf(fact_205_bind__eq__None__conv,axiom,
    ! [A2: option_list_char,F: list_char > option_list_char] :
      ( ( ( bind_l7575086113700739714t_char @ A2 @ F )
        = none_list_char )
      = ( ( A2 = none_list_char )
        | ( ( F @ ( the_list_char @ A2 ) )
          = none_list_char ) ) ) ).

% bind_eq_None_conv
thf(fact_206_bind__eq__None__conv,axiom,
    ! [A2: option5747939881698552298on_val,F: ( produc1457211279475724562t_char > option_val ) > option_state] :
      ( ( ( bind_P6102080752330912020_state @ A2 @ F )
        = none_state )
      = ( ( A2 = none_P1334921381875262201on_val )
        | ( ( F @ ( the_Pr646328391962797958on_val @ A2 ) )
          = none_state ) ) ) ).

% bind_eq_None_conv
thf(fact_207_option_Osel,axiom,
    ! [X22: produc9003781588162623004on_val] :
      ( ( the_Pr3639693038709580936on_val @ ( some_P2581650809551911671on_val @ X22 ) )
      = X22 ) ).

% option.sel
thf(fact_208_option_Osel,axiom,
    ! [X22: list_char] :
      ( ( the_list_char @ ( some_list_char @ X22 ) )
      = X22 ) ).

% option.sel
thf(fact_209_option_Osel,axiom,
    ! [X22: produc1457211279475724562t_char > option_val] :
      ( ( the_Pr646328391962797958on_val @ ( some_P7669353234731512949on_val @ X22 ) )
      = X22 ) ).

% option.sel
thf(fact_210_option_Osel,axiom,
    ! [X22: state] :
      ( ( the_state @ ( some_state @ X22 ) )
      = X22 ) ).

% option.sel
thf(fact_211_option_Osel,axiom,
    ! [X22: val] :
      ( ( the_val @ ( some_val @ X22 ) )
      = X22 ) ).

% option.sel
thf(fact_212_option_Oexpand,axiom,
    ! [Option: option8887860577033306220on_val,Option2: option8887860577033306220on_val] :
      ( ( ( Option = none_P8728355543607141243on_val )
        = ( Option2 = none_P8728355543607141243on_val ) )
     => ( ( ( Option != none_P8728355543607141243on_val )
         => ( ( Option2 != none_P8728355543607141243on_val )
           => ( ( the_Pr3639693038709580936on_val @ Option )
              = ( the_Pr3639693038709580936on_val @ Option2 ) ) ) )
       => ( Option = Option2 ) ) ) ).

% option.expand
thf(fact_213_option_Oexpand,axiom,
    ! [Option: option_list_char,Option2: option_list_char] :
      ( ( ( Option = none_list_char )
        = ( Option2 = none_list_char ) )
     => ( ( ( Option != none_list_char )
         => ( ( Option2 != none_list_char )
           => ( ( the_list_char @ Option )
              = ( the_list_char @ Option2 ) ) ) )
       => ( Option = Option2 ) ) ) ).

% option.expand
thf(fact_214_option_Oexpand,axiom,
    ! [Option: option5747939881698552298on_val,Option2: option5747939881698552298on_val] :
      ( ( ( Option = none_P1334921381875262201on_val )
        = ( Option2 = none_P1334921381875262201on_val ) )
     => ( ( ( Option != none_P1334921381875262201on_val )
         => ( ( Option2 != none_P1334921381875262201on_val )
           => ( ( the_Pr646328391962797958on_val @ Option )
              = ( the_Pr646328391962797958on_val @ Option2 ) ) ) )
       => ( Option = Option2 ) ) ) ).

% option.expand
thf(fact_215_option_Oexpand,axiom,
    ! [Option: option_state,Option2: option_state] :
      ( ( ( Option = none_state )
        = ( Option2 = none_state ) )
     => ( ( ( Option != none_state )
         => ( ( Option2 != none_state )
           => ( ( the_state @ Option )
              = ( the_state @ Option2 ) ) ) )
       => ( Option = Option2 ) ) ) ).

% option.expand
thf(fact_216_option_Oexpand,axiom,
    ! [Option: option_val,Option2: option_val] :
      ( ( ( Option = none_val )
        = ( Option2 = none_val ) )
     => ( ( ( Option != none_val )
         => ( ( Option2 != none_val )
           => ( ( the_val @ Option )
              = ( the_val @ Option2 ) ) ) )
       => ( Option = Option2 ) ) ) ).

% option.expand
thf(fact_217_bind_Obind__lunit,axiom,
    ! [X: state,F: state > option_val] :
      ( ( bind_state_val @ ( some_state @ X ) @ F )
      = ( F @ X ) ) ).

% bind.bind_lunit
thf(fact_218_bind_Obind__lunit,axiom,
    ! [X: state,F: state > option_state] :
      ( ( bind_state_state @ ( some_state @ X ) @ F )
      = ( F @ X ) ) ).

% bind.bind_lunit
thf(fact_219_bind_Obind__lunit,axiom,
    ! [X: val,F: val > option_val] :
      ( ( bind_val_val @ ( some_val @ X ) @ F )
      = ( F @ X ) ) ).

% bind.bind_lunit
thf(fact_220_bind_Obind__lunit,axiom,
    ! [X: val,F: val > option_state] :
      ( ( bind_val_state @ ( some_val @ X ) @ F )
      = ( F @ X ) ) ).

% bind.bind_lunit
thf(fact_221_Option_Obind__cong,axiom,
    ! [X: option_state,Y2: option_state,F: state > option_val,G: state > option_val] :
      ( ( X = Y2 )
     => ( ! [A4: state] :
            ( ( Y2
              = ( some_state @ A4 ) )
           => ( ( F @ A4 )
              = ( G @ A4 ) ) )
       => ( ( bind_state_val @ X @ F )
          = ( bind_state_val @ Y2 @ G ) ) ) ) ).

% Option.bind_cong
thf(fact_222_Option_Obind__cong,axiom,
    ! [X: option_state,Y2: option_state,F: state > option_state,G: state > option_state] :
      ( ( X = Y2 )
     => ( ! [A4: state] :
            ( ( Y2
              = ( some_state @ A4 ) )
           => ( ( F @ A4 )
              = ( G @ A4 ) ) )
       => ( ( bind_state_state @ X @ F )
          = ( bind_state_state @ Y2 @ G ) ) ) ) ).

% Option.bind_cong
thf(fact_223_Option_Obind__cong,axiom,
    ! [X: option_val,Y2: option_val,F: val > option_val,G: val > option_val] :
      ( ( X = Y2 )
     => ( ! [A4: val] :
            ( ( Y2
              = ( some_val @ A4 ) )
           => ( ( F @ A4 )
              = ( G @ A4 ) ) )
       => ( ( bind_val_val @ X @ F )
          = ( bind_val_val @ Y2 @ G ) ) ) ) ).

% Option.bind_cong
thf(fact_224_Option_Obind__cong,axiom,
    ! [X: option_val,Y2: option_val,F: val > option_state,G: val > option_state] :
      ( ( X = Y2 )
     => ( ! [A4: val] :
            ( ( Y2
              = ( some_val @ A4 ) )
           => ( ( F @ A4 )
              = ( G @ A4 ) ) )
       => ( ( bind_val_state @ X @ F )
          = ( bind_val_state @ Y2 @ G ) ) ) ) ).

% Option.bind_cong
thf(fact_225_bind__eq__Some__conv,axiom,
    ! [F: option_state,G: state > option_state,X: state] :
      ( ( ( bind_state_state @ F @ G )
        = ( some_state @ X ) )
      = ( ? [Y3: state] :
            ( ( F
              = ( some_state @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_state @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_226_bind__eq__Some__conv,axiom,
    ! [F: option_val,G: val > option_state,X: state] :
      ( ( ( bind_val_state @ F @ G )
        = ( some_state @ X ) )
      = ( ? [Y3: val] :
            ( ( F
              = ( some_val @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_state @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_227_bind__eq__Some__conv,axiom,
    ! [F: option_state,G: state > option_val,X: val] :
      ( ( ( bind_state_val @ F @ G )
        = ( some_val @ X ) )
      = ( ? [Y3: state] :
            ( ( F
              = ( some_state @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_val @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_228_bind__eq__Some__conv,axiom,
    ! [F: option_val,G: val > option_val,X: val] :
      ( ( ( bind_val_val @ F @ G )
        = ( some_val @ X ) )
      = ( ? [Y3: val] :
            ( ( F
              = ( some_val @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_val @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_229_bind__eq__Some__conv,axiom,
    ! [F: option_list_char,G: list_char > option_state,X: state] :
      ( ( ( bind_list_char_state @ F @ G )
        = ( some_state @ X ) )
      = ( ? [Y3: list_char] :
            ( ( F
              = ( some_list_char @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_state @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_230_bind__eq__Some__conv,axiom,
    ! [F: option_list_char,G: list_char > option_val,X: val] :
      ( ( ( bind_list_char_val @ F @ G )
        = ( some_val @ X ) )
      = ( ? [Y3: list_char] :
            ( ( F
              = ( some_list_char @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_val @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_231_bind__eq__Some__conv,axiom,
    ! [F: option_state,G: state > option_list_char,X: list_char] :
      ( ( ( bind_state_list_char @ F @ G )
        = ( some_list_char @ X ) )
      = ( ? [Y3: state] :
            ( ( F
              = ( some_state @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_list_char @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_232_bind__eq__Some__conv,axiom,
    ! [F: option_val,G: val > option_list_char,X: list_char] :
      ( ( ( bind_val_list_char @ F @ G )
        = ( some_list_char @ X ) )
      = ( ? [Y3: val] :
            ( ( F
              = ( some_val @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_list_char @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_233_bind__eq__Some__conv,axiom,
    ! [F: option_list_char,G: list_char > option_list_char,X: list_char] :
      ( ( ( bind_l7575086113700739714t_char @ F @ G )
        = ( some_list_char @ X ) )
      = ( ? [Y3: list_char] :
            ( ( F
              = ( some_list_char @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_list_char @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_234_bind__eq__Some__conv,axiom,
    ! [F: option5747939881698552298on_val,G: ( produc1457211279475724562t_char > option_val ) > option_state,X: state] :
      ( ( ( bind_P6102080752330912020_state @ F @ G )
        = ( some_state @ X ) )
      = ( ? [Y3: produc1457211279475724562t_char > option_val] :
            ( ( F
              = ( some_P7669353234731512949on_val @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_state @ X ) ) ) ) ) ).

% bind_eq_Some_conv
thf(fact_235_bind_Obind__lzero,axiom,
    ! [F: state > option_state] :
      ( ( bind_state_state @ none_state @ F )
      = none_state ) ).

% bind.bind_lzero
thf(fact_236_bind_Obind__lzero,axiom,
    ! [F: state > option_val] :
      ( ( bind_state_val @ none_state @ F )
      = none_val ) ).

% bind.bind_lzero
thf(fact_237_bind_Obind__lzero,axiom,
    ! [F: val > option_state] :
      ( ( bind_val_state @ none_val @ F )
      = none_state ) ).

% bind.bind_lzero
thf(fact_238_bind_Obind__lzero,axiom,
    ! [F: val > option_val] :
      ( ( bind_val_val @ none_val @ F )
      = none_val ) ).

% bind.bind_lzero
thf(fact_239_bind_Obind__lzero,axiom,
    ! [F: state > option_list_char] :
      ( ( bind_state_list_char @ none_state @ F )
      = none_list_char ) ).

% bind.bind_lzero
thf(fact_240_bind_Obind__lzero,axiom,
    ! [F: val > option_list_char] :
      ( ( bind_val_list_char @ none_val @ F )
      = none_list_char ) ).

% bind.bind_lzero
thf(fact_241_bind_Obind__lzero,axiom,
    ! [F: list_char > option_state] :
      ( ( bind_list_char_state @ none_list_char @ F )
      = none_state ) ).

% bind.bind_lzero
thf(fact_242_bind_Obind__lzero,axiom,
    ! [F: list_char > option_val] :
      ( ( bind_list_char_val @ none_list_char @ F )
      = none_val ) ).

% bind.bind_lzero
thf(fact_243_bind_Obind__lzero,axiom,
    ! [F: list_char > option_list_char] :
      ( ( bind_l7575086113700739714t_char @ none_list_char @ F )
      = none_list_char ) ).

% bind.bind_lzero
thf(fact_244_bind_Obind__lzero,axiom,
    ! [F: state > option5747939881698552298on_val] :
      ( ( bind_s7388421589535509396on_val @ none_state @ F )
      = none_P1334921381875262201on_val ) ).

% bind.bind_lzero
thf(fact_245_valid__empty,axiom,
    valid_mask @ empty_3446695950879338768t_char ).

% valid_empty
thf(fact_246_option_Oexhaust__sel,axiom,
    ! [Option: option8887860577033306220on_val] :
      ( ( Option != none_P8728355543607141243on_val )
     => ( Option
        = ( some_P2581650809551911671on_val @ ( the_Pr3639693038709580936on_val @ Option ) ) ) ) ).

% option.exhaust_sel
thf(fact_247_option_Oexhaust__sel,axiom,
    ! [Option: option_list_char] :
      ( ( Option != none_list_char )
     => ( Option
        = ( some_list_char @ ( the_list_char @ Option ) ) ) ) ).

% option.exhaust_sel
thf(fact_248_option_Oexhaust__sel,axiom,
    ! [Option: option5747939881698552298on_val] :
      ( ( Option != none_P1334921381875262201on_val )
     => ( Option
        = ( some_P7669353234731512949on_val @ ( the_Pr646328391962797958on_val @ Option ) ) ) ) ).

% option.exhaust_sel
thf(fact_249_option_Oexhaust__sel,axiom,
    ! [Option: option_state] :
      ( ( Option != none_state )
     => ( Option
        = ( some_state @ ( the_state @ Option ) ) ) ) ).

% option.exhaust_sel
thf(fact_250_option_Oexhaust__sel,axiom,
    ! [Option: option_val] :
      ( ( Option != none_val )
     => ( Option
        = ( some_val @ ( the_val @ Option ) ) ) ) ).

% option.exhaust_sel
thf(fact_251_option_Osplit__sel__asm,axiom,
    ! [P: option_state > $o,F1: option_state,F2: state > option_state,Option: option_state] :
      ( ( P @ ( case_o8916064052540797265_state @ F1 @ F2 @ Option ) )
      = ( ~ ( ( ( Option = none_state )
              & ~ ( P @ F1 ) )
            | ( ( Option
                = ( some_state @ ( the_state @ Option ) ) )
              & ~ ( P @ ( F2 @ ( the_state @ Option ) ) ) ) ) ) ) ).

% option.split_sel_asm
thf(fact_252_option_Osplit__sel__asm,axiom,
    ! [P: option_val > $o,F1: option_val,F2: val > option_val,Option: option_val] :
      ( ( P @ ( case_o7794706883426356101al_val @ F1 @ F2 @ Option ) )
      = ( ~ ( ( ( Option = none_val )
              & ~ ( P @ F1 ) )
            | ( ( Option
                = ( some_val @ ( the_val @ Option ) ) )
              & ~ ( P @ ( F2 @ ( the_val @ Option ) ) ) ) ) ) ) ).

% option.split_sel_asm
thf(fact_253_option_Osplit__sel__asm,axiom,
    ! [P: val > $o,F1: val,F2: val > val,Option: option_val] :
      ( ( P @ ( case_option_val_val @ F1 @ F2 @ Option ) )
      = ( ~ ( ( ( Option = none_val )
              & ~ ( P @ F1 ) )
            | ( ( Option
                = ( some_val @ ( the_val @ Option ) ) )
              & ~ ( P @ ( F2 @ ( the_val @ Option ) ) ) ) ) ) ) ).

% option.split_sel_asm
thf(fact_254_option_Osplit__sel__asm,axiom,
    ! [P: $o > $o,F1: $o,F2: state > $o,Option: option_state] :
      ( ( P @ ( case_option_o_state @ F1 @ F2 @ Option ) )
      = ( ~ ( ( ( Option = none_state )
              & ~ ( P @ F1 ) )
            | ( ( Option
                = ( some_state @ ( the_state @ Option ) ) )
              & ~ ( P @ ( F2 @ ( the_state @ Option ) ) ) ) ) ) ) ).

% option.split_sel_asm
thf(fact_255_option_Osplit__sel__asm,axiom,
    ! [P: $o > $o,F1: $o,F2: val > $o,Option: option_val] :
      ( ( P @ ( case_option_o_val @ F1 @ F2 @ Option ) )
      = ( ~ ( ( ( Option = none_val )
              & ~ ( P @ F1 ) )
            | ( ( Option
                = ( some_val @ ( the_val @ Option ) ) )
              & ~ ( P @ ( F2 @ ( the_val @ Option ) ) ) ) ) ) ) ).

% option.split_sel_asm
thf(fact_256_option_Osplit__sel,axiom,
    ! [P: option_state > $o,F1: option_state,F2: state > option_state,Option: option_state] :
      ( ( P @ ( case_o8916064052540797265_state @ F1 @ F2 @ Option ) )
      = ( ( ( Option = none_state )
         => ( P @ F1 ) )
        & ( ( Option
            = ( some_state @ ( the_state @ Option ) ) )
         => ( P @ ( F2 @ ( the_state @ Option ) ) ) ) ) ) ).

% option.split_sel
thf(fact_257_option_Osplit__sel,axiom,
    ! [P: option_val > $o,F1: option_val,F2: val > option_val,Option: option_val] :
      ( ( P @ ( case_o7794706883426356101al_val @ F1 @ F2 @ Option ) )
      = ( ( ( Option = none_val )
         => ( P @ F1 ) )
        & ( ( Option
            = ( some_val @ ( the_val @ Option ) ) )
         => ( P @ ( F2 @ ( the_val @ Option ) ) ) ) ) ) ).

% option.split_sel
thf(fact_258_option_Osplit__sel,axiom,
    ! [P: val > $o,F1: val,F2: val > val,Option: option_val] :
      ( ( P @ ( case_option_val_val @ F1 @ F2 @ Option ) )
      = ( ( ( Option = none_val )
         => ( P @ F1 ) )
        & ( ( Option
            = ( some_val @ ( the_val @ Option ) ) )
         => ( P @ ( F2 @ ( the_val @ Option ) ) ) ) ) ) ).

% option.split_sel
thf(fact_259_option_Osplit__sel,axiom,
    ! [P: $o > $o,F1: $o,F2: state > $o,Option: option_state] :
      ( ( P @ ( case_option_o_state @ F1 @ F2 @ Option ) )
      = ( ( ( Option = none_state )
         => ( P @ F1 ) )
        & ( ( Option
            = ( some_state @ ( the_state @ Option ) ) )
         => ( P @ ( F2 @ ( the_state @ Option ) ) ) ) ) ) ).

% option.split_sel
thf(fact_260_option_Osplit__sel,axiom,
    ! [P: $o > $o,F1: $o,F2: val > $o,Option: option_val] :
      ( ( P @ ( case_option_o_val @ F1 @ F2 @ Option ) )
      = ( ( ( Option = none_val )
         => ( P @ F1 ) )
        & ( ( Option
            = ( some_val @ ( the_val @ Option ) ) )
         => ( P @ ( F2 @ ( the_val @ Option ) ) ) ) ) ) ).

% option.split_sel
thf(fact_261_valid__larger__mask,axiom,
    ( valid_mask
    = ( greate7680731506090375811t_char @ full_mask ) ) ).

% valid_larger_mask
thf(fact_262_is__none__bind,axiom,
    ! [F: option_val,G: val > option_val] :
      ( ( is_none_val @ ( bind_val_val @ F @ G ) )
      = ( ( is_none_val @ F )
        | ( is_none_val @ ( G @ ( the_val @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_263_is__none__bind,axiom,
    ! [F: option_val,G: val > option_state] :
      ( ( is_none_state @ ( bind_val_state @ F @ G ) )
      = ( ( is_none_val @ F )
        | ( is_none_state @ ( G @ ( the_val @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_264_is__none__bind,axiom,
    ! [F: option_state,G: state > option_val] :
      ( ( is_none_val @ ( bind_state_val @ F @ G ) )
      = ( ( is_none_state @ F )
        | ( is_none_val @ ( G @ ( the_state @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_265_is__none__bind,axiom,
    ! [F: option_state,G: state > option_state] :
      ( ( is_none_state @ ( bind_state_state @ F @ G ) )
      = ( ( is_none_state @ F )
        | ( is_none_state @ ( G @ ( the_state @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_266_is__none__bind,axiom,
    ! [F: option8887860577033306220on_val,G: produc9003781588162623004on_val > option_val] :
      ( ( is_none_val @ ( bind_P8603646205577311397al_val @ F @ G ) )
      = ( ( is_non3468859156093823296on_val @ F )
        | ( is_none_val @ ( G @ ( the_Pr3639693038709580936on_val @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_267_is__none__bind,axiom,
    ! [F: option8887860577033306220on_val,G: produc9003781588162623004on_val > option_state] :
      ( ( is_none_state @ ( bind_P2178757275261240214_state @ F @ G ) )
      = ( ( is_non3468859156093823296on_val @ F )
        | ( is_none_state @ ( G @ ( the_Pr3639693038709580936on_val @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_268_is__none__bind,axiom,
    ! [F: option_list_char,G: list_char > option_val] :
      ( ( is_none_val @ ( bind_list_char_val @ F @ G ) )
      = ( ( is_none_list_char @ F )
        | ( is_none_val @ ( G @ ( the_list_char @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_269_is__none__bind,axiom,
    ! [F: option_list_char,G: list_char > option_state] :
      ( ( is_none_state @ ( bind_list_char_state @ F @ G ) )
      = ( ( is_none_list_char @ F )
        | ( is_none_state @ ( G @ ( the_list_char @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_270_is__none__bind,axiom,
    ! [F: option5747939881698552298on_val,G: ( produc1457211279475724562t_char > option_val ) > option_val] :
      ( ( is_none_val @ ( bind_P5848121846087789735al_val @ F @ G ) )
      = ( ( is_non6205214127102033982on_val @ F )
        | ( is_none_val @ ( G @ ( the_Pr646328391962797958on_val @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_271_is__none__bind,axiom,
    ! [F: option5747939881698552298on_val,G: ( produc1457211279475724562t_char > option_val ) > option_state] :
      ( ( is_none_state @ ( bind_P6102080752330912020_state @ F @ G ) )
      = ( ( is_non6205214127102033982on_val @ F )
        | ( is_none_state @ ( G @ ( the_Pr646328391962797958on_val @ F ) ) ) ) ) ).

% is_none_bind
thf(fact_272_option_Ocase__eq__if,axiom,
    ( case_o8916064052540797265_state
    = ( ^ [F12: option_state,F22: state > option_state,Option3: option_state] : ( if_option_state @ ( Option3 = none_state ) @ F12 @ ( F22 @ ( the_state @ Option3 ) ) ) ) ) ).

% option.case_eq_if
thf(fact_273_option_Ocase__eq__if,axiom,
    ( case_o7794706883426356101al_val
    = ( ^ [F12: option_val,F22: val > option_val,Option3: option_val] : ( if_option_val @ ( Option3 = none_val ) @ F12 @ ( F22 @ ( the_val @ Option3 ) ) ) ) ) ).

% option.case_eq_if
thf(fact_274_option_Ocase__eq__if,axiom,
    ( case_option_val_val
    = ( ^ [F12: val,F22: val > val,Option3: option_val] : ( if_val @ ( Option3 = none_val ) @ F12 @ ( F22 @ ( the_val @ Option3 ) ) ) ) ) ).

% option.case_eq_if
thf(fact_275_option_Ocase__eq__if,axiom,
    ( case_option_o_state
    = ( ^ [F12: $o,F22: state > $o,Option3: option_state] :
          ( ( ( Option3 = none_state )
           => F12 )
          & ( ( Option3 != none_state )
           => ( F22 @ ( the_state @ Option3 ) ) ) ) ) ) ).

% option.case_eq_if
thf(fact_276_option_Ocase__eq__if,axiom,
    ( case_option_o_val
    = ( ^ [F12: $o,F22: val > $o,Option3: option_val] :
          ( ( ( Option3 = none_val )
           => F12 )
          & ( ( Option3 != none_val )
           => ( F22 @ ( the_val @ Option3 ) ) ) ) ) ) ).

% option.case_eq_if
thf(fact_277_PartialHeapSA_Ostable__def,axiom,
    ( stable
    = ( ^ [Phi3: state] :
        ! [Hl2: produc1457211279475724562t_char] :
          ( ( ppos @ ( get_m @ Phi3 @ Hl2 ) )
          = ( ( get_h @ Phi3 @ Hl2 )
           != none_val ) ) ) ) ).

% PartialHeapSA.stable_def
thf(fact_278_option_Oset__sel,axiom,
    ! [A2: option_option_val] :
      ( ( A2 != none_option_val )
     => ( member_option_val @ ( the_option_val @ A2 ) @ ( set_op911010586042427349on_val @ A2 ) ) ) ).

% option.set_sel
thf(fact_279_option_Oset__sel,axiom,
    ! [A2: option_nat] :
      ( ( A2 != none_nat )
     => ( member_nat @ ( the_nat @ A2 ) @ ( set_option_nat @ A2 ) ) ) ).

% option.set_sel
thf(fact_280_option_Oset__sel,axiom,
    ! [A2: option3572569098863364761r_prat] :
      ( ( A2 != none_P6742040017396684084r_prat )
     => ( member2336342582916103932r_prat @ ( the_Pr3206600365949932263r_prat @ A2 ) @ ( set_op923924987228895969r_prat @ A2 ) ) ) ).

% option.set_sel
thf(fact_281_option_Oset__sel,axiom,
    ! [A2: option_list_char] :
      ( ( A2 != none_list_char )
     => ( member_list_char @ ( the_list_char @ A2 ) @ ( set_option_list_char2 @ A2 ) ) ) ).

% option.set_sel
thf(fact_282_option_Oset__sel,axiom,
    ! [A2: option5747939881698552298on_val] :
      ( ( A2 != none_P1334921381875262201on_val )
     => ( member1577473829074448177on_val @ ( the_Pr646328391962797958on_val @ A2 ) @ ( set_op1770538635792728844on_val @ A2 ) ) ) ).

% option.set_sel
thf(fact_283_option_Oset__sel,axiom,
    ! [A2: option2736423997234022232t_char] :
      ( ( A2 != none_P5486107665612286067t_char )
     => ( member484235747325421115t_char @ ( the_Pr4674812069856641446t_char @ A2 ) @ ( set_op7440730737645789856t_char @ A2 ) ) ) ).

% option.set_sel
thf(fact_284_option_Oset__sel,axiom,
    ! [A2: option8887860577033306220on_val] :
      ( ( A2 != none_P8728355543607141243on_val )
     => ( member2879030624002546611on_val @ ( the_Pr3639693038709580936on_val @ A2 ) @ ( set_op9004752959087400718on_val @ A2 ) ) ) ).

% option.set_sel
thf(fact_285_option_Oset__sel,axiom,
    ! [A2: option_state] :
      ( ( A2 != none_state )
     => ( member_state @ ( the_state @ A2 ) @ ( set_option_state2 @ A2 ) ) ) ).

% option.set_sel
thf(fact_286_option_Oset__sel,axiom,
    ! [A2: option_val] :
      ( ( A2 != none_val )
     => ( member_val @ ( the_val @ A2 ) @ ( set_option_val2 @ A2 ) ) ) ).

% option.set_sel
thf(fact_287_map__add__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y2: state] :
      ( ( map_ad2629041965313307917_state @ F @ ( fun_up6681822530636708645_state @ G @ X @ ( some_state @ Y2 ) ) )
      = ( fun_up6681822530636708645_state @ ( map_ad2629041965313307917_state @ F @ G ) @ X @ ( some_state @ Y2 ) ) ) ).

% map_add_upd
thf(fact_288_map__add__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y2: val] :
      ( ( map_ad5466549115852757998al_val @ F @ ( fun_up8559965269643824108on_val @ G @ X @ ( some_val @ Y2 ) ) )
      = ( fun_up8559965269643824108on_val @ ( map_ad5466549115852757998al_val @ F @ G ) @ X @ ( some_val @ Y2 ) ) ) ).

% map_add_upd
thf(fact_289_map__add__upd,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,G: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( map_ad6375351378680859759on_val @ F @ ( fun_up273046073882939271on_val @ G @ X @ ( some_P2581650809551911671on_val @ Y2 ) ) )
      = ( fun_up273046073882939271on_val @ ( map_ad6375351378680859759on_val @ F @ G ) @ X @ ( some_P2581650809551911671on_val @ Y2 ) ) ) ).

% map_add_upd
thf(fact_290_map__add__upd,axiom,
    ! [F: nat > option_list_char,G: nat > option_list_char,X: nat,Y2: list_char] :
      ( ( map_ad208561015412637672t_char @ F @ ( fun_up4009399622604172288t_char @ G @ X @ ( some_list_char @ Y2 ) ) )
      = ( fun_up4009399622604172288t_char @ ( map_ad208561015412637672t_char @ F @ G ) @ X @ ( some_list_char @ Y2 ) ) ) ).

% map_add_upd
thf(fact_291_map__add__upd,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,G: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y2: produc1457211279475724562t_char > option_val] :
      ( ( map_ad2898753242718228216on_val @ F @ ( fun_up1601731230164360576on_val @ G @ X @ ( some_P7669353234731512949on_val @ Y2 ) ) )
      = ( fun_up1601731230164360576on_val @ ( map_ad2898753242718228216on_val @ F @ G ) @ X @ ( some_P7669353234731512949on_val @ Y2 ) ) ) ).

% map_add_upd
thf(fact_292_map__add__upd,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char,Y2: val] :
      ( ( map_ad2908576761495157028ar_val @ F @ ( fun_up5735975307950539954on_val @ G @ X @ ( some_val @ Y2 ) ) )
      = ( fun_up5735975307950539954on_val @ ( map_ad2908576761495157028ar_val @ F @ G ) @ X @ ( some_val @ Y2 ) ) ) ).

% map_add_upd
thf(fact_293_combine__options__simps_I2_J,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val > produc9003781588162623004on_val,X: option8887860577033306220on_val] :
      ( ( combin6222804963853957469on_val @ F @ X @ none_P8728355543607141243on_val )
      = X ) ).

% combine_options_simps(2)
thf(fact_294_combine__options__simps_I2_J,axiom,
    ! [F: list_char > list_char > list_char,X: option_list_char] :
      ( ( combin4118143342443788322t_char @ F @ X @ none_list_char )
      = X ) ).

% combine_options_simps(2)
thf(fact_295_combine__options__simps_I2_J,axiom,
    ! [F: ( produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val,X: option5747939881698552298on_val] :
      ( ( combin3271118981050854363on_val @ F @ X @ none_P1334921381875262201on_val )
      = X ) ).

% combine_options_simps(2)
thf(fact_296_combine__options__simps_I2_J,axiom,
    ! [F: state > state > state,X: option_state] :
      ( ( combin3633514924185701883_state @ F @ X @ none_state )
      = X ) ).

% combine_options_simps(2)
thf(fact_297_combine__options__simps_I2_J,axiom,
    ! [F: val > val > val,X: option_val] :
      ( ( combine_options_val @ F @ X @ none_val )
      = X ) ).

% combine_options_simps(2)
thf(fact_298_elem__set,axiom,
    ! [X: option_val,Xo: option_option_val] :
      ( ( member_option_val @ X @ ( set_op911010586042427349on_val @ Xo ) )
      = ( Xo
        = ( some_option_val @ X ) ) ) ).

% elem_set
thf(fact_299_elem__set,axiom,
    ! [X: nat,Xo: option_nat] :
      ( ( member_nat @ X @ ( set_option_nat @ Xo ) )
      = ( Xo
        = ( some_nat @ X ) ) ) ).

% elem_set
thf(fact_300_elem__set,axiom,
    ! [X: produc1457211279475724562t_char > prat,Xo: option3572569098863364761r_prat] :
      ( ( member2336342582916103932r_prat @ X @ ( set_op923924987228895969r_prat @ Xo ) )
      = ( Xo
        = ( some_P8530153984677361336r_prat @ X ) ) ) ).

% elem_set
thf(fact_301_elem__set,axiom,
    ! [X: list_char,Xo: option_list_char] :
      ( ( member_list_char @ X @ ( set_option_list_char2 @ Xo ) )
      = ( Xo
        = ( some_list_char @ X ) ) ) ).

% elem_set
thf(fact_302_elem__set,axiom,
    ! [X: produc1457211279475724562t_char > option_val,Xo: option5747939881698552298on_val] :
      ( ( member1577473829074448177on_val @ X @ ( set_op1770538635792728844on_val @ Xo ) )
      = ( Xo
        = ( some_P7669353234731512949on_val @ X ) ) ) ).

% elem_set
thf(fact_303_elem__set,axiom,
    ! [X: produc1457211279475724562t_char,Xo: option2736423997234022232t_char] :
      ( ( member484235747325421115t_char @ X @ ( set_op7440730737645789856t_char @ Xo ) )
      = ( Xo
        = ( some_P6851457240968045559t_char @ X ) ) ) ).

% elem_set
thf(fact_304_elem__set,axiom,
    ! [X: produc9003781588162623004on_val,Xo: option8887860577033306220on_val] :
      ( ( member2879030624002546611on_val @ X @ ( set_op9004752959087400718on_val @ Xo ) )
      = ( Xo
        = ( some_P2581650809551911671on_val @ X ) ) ) ).

% elem_set
thf(fact_305_elem__set,axiom,
    ! [X: state,Xo: option_state] :
      ( ( member_state @ X @ ( set_option_state2 @ Xo ) )
      = ( Xo
        = ( some_state @ X ) ) ) ).

% elem_set
thf(fact_306_elem__set,axiom,
    ! [X: val,Xo: option_val] :
      ( ( member_val @ X @ ( set_option_val2 @ Xo ) )
      = ( Xo
        = ( some_val @ X ) ) ) ).

% elem_set
thf(fact_307_is__none__code_I2_J,axiom,
    ! [X: produc9003781588162623004on_val] :
      ~ ( is_non3468859156093823296on_val @ ( some_P2581650809551911671on_val @ X ) ) ).

% is_none_code(2)
thf(fact_308_is__none__code_I2_J,axiom,
    ! [X: list_char] :
      ~ ( is_none_list_char @ ( some_list_char @ X ) ) ).

% is_none_code(2)
thf(fact_309_is__none__code_I2_J,axiom,
    ! [X: produc1457211279475724562t_char > option_val] :
      ~ ( is_non6205214127102033982on_val @ ( some_P7669353234731512949on_val @ X ) ) ).

% is_none_code(2)
thf(fact_310_is__none__code_I2_J,axiom,
    ! [X: state] :
      ~ ( is_none_state @ ( some_state @ X ) ) ).

% is_none_code(2)
thf(fact_311_is__none__code_I2_J,axiom,
    ! [X: val] :
      ~ ( is_none_val @ ( some_val @ X ) ) ).

% is_none_code(2)
thf(fact_312_is__none__code_I1_J,axiom,
    is_non3468859156093823296on_val @ none_P8728355543607141243on_val ).

% is_none_code(1)
thf(fact_313_is__none__code_I1_J,axiom,
    is_none_list_char @ none_list_char ).

% is_none_code(1)
thf(fact_314_is__none__code_I1_J,axiom,
    is_non6205214127102033982on_val @ none_P1334921381875262201on_val ).

% is_none_code(1)
thf(fact_315_is__none__code_I1_J,axiom,
    is_none_state @ none_state ).

% is_none_code(1)
thf(fact_316_is__none__code_I1_J,axiom,
    is_none_val @ none_val ).

% is_none_code(1)
thf(fact_317_combine__options__simps_I3_J,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val > produc9003781588162623004on_val,A2: produc9003781588162623004on_val,B2: produc9003781588162623004on_val] :
      ( ( combin6222804963853957469on_val @ F @ ( some_P2581650809551911671on_val @ A2 ) @ ( some_P2581650809551911671on_val @ B2 ) )
      = ( some_P2581650809551911671on_val @ ( F @ A2 @ B2 ) ) ) ).

% combine_options_simps(3)
thf(fact_318_combine__options__simps_I3_J,axiom,
    ! [F: list_char > list_char > list_char,A2: list_char,B2: list_char] :
      ( ( combin4118143342443788322t_char @ F @ ( some_list_char @ A2 ) @ ( some_list_char @ B2 ) )
      = ( some_list_char @ ( F @ A2 @ B2 ) ) ) ).

% combine_options_simps(3)
thf(fact_319_combine__options__simps_I3_J,axiom,
    ! [F: ( produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val,A2: produc1457211279475724562t_char > option_val,B2: produc1457211279475724562t_char > option_val] :
      ( ( combin3271118981050854363on_val @ F @ ( some_P7669353234731512949on_val @ A2 ) @ ( some_P7669353234731512949on_val @ B2 ) )
      = ( some_P7669353234731512949on_val @ ( F @ A2 @ B2 ) ) ) ).

% combine_options_simps(3)
thf(fact_320_combine__options__simps_I3_J,axiom,
    ! [F: state > state > state,A2: state,B2: state] :
      ( ( combin3633514924185701883_state @ F @ ( some_state @ A2 ) @ ( some_state @ B2 ) )
      = ( some_state @ ( F @ A2 @ B2 ) ) ) ).

% combine_options_simps(3)
thf(fact_321_combine__options__simps_I3_J,axiom,
    ! [F: val > val > val,A2: val,B2: val] :
      ( ( combine_options_val @ F @ ( some_val @ A2 ) @ ( some_val @ B2 ) )
      = ( some_val @ ( F @ A2 @ B2 ) ) ) ).

% combine_options_simps(3)
thf(fact_322_combine__options__simps_I1_J,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val > produc9003781588162623004on_val,Y2: option8887860577033306220on_val] :
      ( ( combin6222804963853957469on_val @ F @ none_P8728355543607141243on_val @ Y2 )
      = Y2 ) ).

% combine_options_simps(1)
thf(fact_323_combine__options__simps_I1_J,axiom,
    ! [F: list_char > list_char > list_char,Y2: option_list_char] :
      ( ( combin4118143342443788322t_char @ F @ none_list_char @ Y2 )
      = Y2 ) ).

% combine_options_simps(1)
thf(fact_324_combine__options__simps_I1_J,axiom,
    ! [F: ( produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val,Y2: option5747939881698552298on_val] :
      ( ( combin3271118981050854363on_val @ F @ none_P1334921381875262201on_val @ Y2 )
      = Y2 ) ).

% combine_options_simps(1)
thf(fact_325_combine__options__simps_I1_J,axiom,
    ! [F: state > state > state,Y2: option_state] :
      ( ( combin3633514924185701883_state @ F @ none_state @ Y2 )
      = Y2 ) ).

% combine_options_simps(1)
thf(fact_326_combine__options__simps_I1_J,axiom,
    ! [F: val > val > val,Y2: option_val] :
      ( ( combine_options_val @ F @ none_val @ Y2 )
      = Y2 ) ).

% combine_options_simps(1)
thf(fact_327_greater__mask__properties_I3_J,axiom,
    ! [Pi2: produc1457211279475724562t_char > prat,Pi: produc1457211279475724562t_char > prat] :
      ( ( ( greate7680731506090375811t_char @ Pi2 @ Pi )
        & ( greate7680731506090375811t_char @ Pi @ Pi2 ) )
     => ( Pi = Pi2 ) ) ).

% greater_mask_properties(3)
thf(fact_328_greater__mask__properties_I2_J,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( ( greate7680731506090375811t_char @ A2 @ B2 )
        & ( greate7680731506090375811t_char @ B2 @ C ) )
     => ( greate7680731506090375811t_char @ A2 @ C ) ) ).

% greater_mask_properties(2)
thf(fact_329_greater__mask__properties_I1_J,axiom,
    ! [Pi: produc1457211279475724562t_char > prat] : ( greate7680731506090375811t_char @ Pi @ Pi ) ).

% greater_mask_properties(1)
thf(fact_330_combine__options__assoc,axiom,
    ! [F: val > val > val,X: option_val,Y2: option_val,Z: option_val] :
      ( ! [X2: val,Y: val,Z2: val] :
          ( ( F @ ( F @ X2 @ Y ) @ Z2 )
          = ( F @ X2 @ ( F @ Y @ Z2 ) ) )
     => ( ( combine_options_val @ F @ ( combine_options_val @ F @ X @ Y2 ) @ Z )
        = ( combine_options_val @ F @ X @ ( combine_options_val @ F @ Y2 @ Z ) ) ) ) ).

% combine_options_assoc
thf(fact_331_combine__options__assoc,axiom,
    ! [F: state > state > state,X: option_state,Y2: option_state,Z: option_state] :
      ( ! [X2: state,Y: state,Z2: state] :
          ( ( F @ ( F @ X2 @ Y ) @ Z2 )
          = ( F @ X2 @ ( F @ Y @ Z2 ) ) )
     => ( ( combin3633514924185701883_state @ F @ ( combin3633514924185701883_state @ F @ X @ Y2 ) @ Z )
        = ( combin3633514924185701883_state @ F @ X @ ( combin3633514924185701883_state @ F @ Y2 @ Z ) ) ) ) ).

% combine_options_assoc
thf(fact_332_combine__options__commute,axiom,
    ! [F: val > val > val,X: option_val,Y2: option_val] :
      ( ! [X2: val,Y: val] :
          ( ( F @ X2 @ Y )
          = ( F @ Y @ X2 ) )
     => ( ( combine_options_val @ F @ X @ Y2 )
        = ( combine_options_val @ F @ Y2 @ X ) ) ) ).

% combine_options_commute
thf(fact_333_combine__options__commute,axiom,
    ! [F: state > state > state,X: option_state,Y2: option_state] :
      ( ! [X2: state,Y: state] :
          ( ( F @ X2 @ Y )
          = ( F @ Y @ X2 ) )
     => ( ( combin3633514924185701883_state @ F @ X @ Y2 )
        = ( combin3633514924185701883_state @ F @ Y2 @ X ) ) ) ).

% combine_options_commute
thf(fact_334_combine__options__left__commute,axiom,
    ! [F: val > val > val,Y2: option_val,X: option_val,Z: option_val] :
      ( ! [X2: val,Y: val] :
          ( ( F @ X2 @ Y )
          = ( F @ Y @ X2 ) )
     => ( ! [X2: val,Y: val,Z2: val] :
            ( ( F @ ( F @ X2 @ Y ) @ Z2 )
            = ( F @ X2 @ ( F @ Y @ Z2 ) ) )
       => ( ( combine_options_val @ F @ Y2 @ ( combine_options_val @ F @ X @ Z ) )
          = ( combine_options_val @ F @ X @ ( combine_options_val @ F @ Y2 @ Z ) ) ) ) ) ).

% combine_options_left_commute
thf(fact_335_combine__options__left__commute,axiom,
    ! [F: state > state > state,Y2: option_state,X: option_state,Z: option_state] :
      ( ! [X2: state,Y: state] :
          ( ( F @ X2 @ Y )
          = ( F @ Y @ X2 ) )
     => ( ! [X2: state,Y: state,Z2: state] :
            ( ( F @ ( F @ X2 @ Y ) @ Z2 )
            = ( F @ X2 @ ( F @ Y @ Z2 ) ) )
       => ( ( combin3633514924185701883_state @ F @ Y2 @ ( combin3633514924185701883_state @ F @ X @ Z ) )
          = ( combin3633514924185701883_state @ F @ X @ ( combin3633514924185701883_state @ F @ Y2 @ Z ) ) ) ) ) ).

% combine_options_left_commute
thf(fact_336_map__upd__Some__unfold,axiom,
    ! [M: produc9003781588162623004on_val > option_state,A2: produc9003781588162623004on_val,B2: state,X: produc9003781588162623004on_val,Y2: state] :
      ( ( ( fun_up6681822530636708645_state @ M @ A2 @ ( some_state @ B2 ) @ X )
        = ( some_state @ Y2 ) )
      = ( ( ( X = A2 )
          & ( B2 = Y2 ) )
        | ( ( X != A2 )
          & ( ( M @ X )
            = ( some_state @ Y2 ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_337_map__upd__Some__unfold,axiom,
    ! [M: produc9003781588162623004on_val > option_val,A2: produc9003781588162623004on_val,B2: val,X: produc9003781588162623004on_val,Y2: val] :
      ( ( ( fun_up8559965269643824108on_val @ M @ A2 @ ( some_val @ B2 ) @ X )
        = ( some_val @ Y2 ) )
      = ( ( ( X = A2 )
          & ( B2 = Y2 ) )
        | ( ( X != A2 )
          & ( ( M @ X )
            = ( some_val @ Y2 ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_338_map__upd__Some__unfold,axiom,
    ! [M: produc9003781588162623004on_val > option8887860577033306220on_val,A2: produc9003781588162623004on_val,B2: produc9003781588162623004on_val,X: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( ( fun_up273046073882939271on_val @ M @ A2 @ ( some_P2581650809551911671on_val @ B2 ) @ X )
        = ( some_P2581650809551911671on_val @ Y2 ) )
      = ( ( ( X = A2 )
          & ( B2 = Y2 ) )
        | ( ( X != A2 )
          & ( ( M @ X )
            = ( some_P2581650809551911671on_val @ Y2 ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_339_map__upd__Some__unfold,axiom,
    ! [M: nat > option_list_char,A2: nat,B2: list_char,X: nat,Y2: list_char] :
      ( ( ( fun_up4009399622604172288t_char @ M @ A2 @ ( some_list_char @ B2 ) @ X )
        = ( some_list_char @ Y2 ) )
      = ( ( ( X = A2 )
          & ( B2 = Y2 ) )
        | ( ( X != A2 )
          & ( ( M @ X )
            = ( some_list_char @ Y2 ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_340_map__upd__Some__unfold,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char > prat,Y2: produc1457211279475724562t_char > option_val] :
      ( ( ( fun_up1601731230164360576on_val @ M @ A2 @ ( some_P7669353234731512949on_val @ B2 ) @ X )
        = ( some_P7669353234731512949on_val @ Y2 ) )
      = ( ( ( X = A2 )
          & ( B2 = Y2 ) )
        | ( ( X != A2 )
          & ( ( M @ X )
            = ( some_P7669353234731512949on_val @ Y2 ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_341_map__upd__triv,axiom,
    ! [T: produc9003781588162623004on_val > option_state,K: produc9003781588162623004on_val,X: state] :
      ( ( ( T @ K )
        = ( some_state @ X ) )
     => ( ( fun_up6681822530636708645_state @ T @ K @ ( some_state @ X ) )
        = T ) ) ).

% map_upd_triv
thf(fact_342_map__upd__triv,axiom,
    ! [T: produc9003781588162623004on_val > option_val,K: produc9003781588162623004on_val,X: val] :
      ( ( ( T @ K )
        = ( some_val @ X ) )
     => ( ( fun_up8559965269643824108on_val @ T @ K @ ( some_val @ X ) )
        = T ) ) ).

% map_upd_triv
thf(fact_343_map__upd__triv,axiom,
    ! [T: produc9003781588162623004on_val > option8887860577033306220on_val,K: produc9003781588162623004on_val,X: produc9003781588162623004on_val] :
      ( ( ( T @ K )
        = ( some_P2581650809551911671on_val @ X ) )
     => ( ( fun_up273046073882939271on_val @ T @ K @ ( some_P2581650809551911671on_val @ X ) )
        = T ) ) ).

% map_upd_triv
thf(fact_344_map__upd__triv,axiom,
    ! [T: nat > option_list_char,K: nat,X: list_char] :
      ( ( ( T @ K )
        = ( some_list_char @ X ) )
     => ( ( fun_up4009399622604172288t_char @ T @ K @ ( some_list_char @ X ) )
        = T ) ) ).

% map_upd_triv
thf(fact_345_map__upd__triv,axiom,
    ! [T: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,K: produc1457211279475724562t_char > prat,X: produc1457211279475724562t_char > option_val] :
      ( ( ( T @ K )
        = ( some_P7669353234731512949on_val @ X ) )
     => ( ( fun_up1601731230164360576on_val @ T @ K @ ( some_P7669353234731512949on_val @ X ) )
        = T ) ) ).

% map_upd_triv
thf(fact_346_map__upd__eqD1,axiom,
    ! [M: produc9003781588162623004on_val > option_state,A2: produc9003781588162623004on_val,X: state,N: produc9003781588162623004on_val > option_state,Y2: state] :
      ( ( ( fun_up6681822530636708645_state @ M @ A2 @ ( some_state @ X ) )
        = ( fun_up6681822530636708645_state @ N @ A2 @ ( some_state @ Y2 ) ) )
     => ( X = Y2 ) ) ).

% map_upd_eqD1
thf(fact_347_map__upd__eqD1,axiom,
    ! [M: produc9003781588162623004on_val > option_val,A2: produc9003781588162623004on_val,X: val,N: produc9003781588162623004on_val > option_val,Y2: val] :
      ( ( ( fun_up8559965269643824108on_val @ M @ A2 @ ( some_val @ X ) )
        = ( fun_up8559965269643824108on_val @ N @ A2 @ ( some_val @ Y2 ) ) )
     => ( X = Y2 ) ) ).

% map_upd_eqD1
thf(fact_348_map__upd__eqD1,axiom,
    ! [M: produc9003781588162623004on_val > option8887860577033306220on_val,A2: produc9003781588162623004on_val,X: produc9003781588162623004on_val,N: produc9003781588162623004on_val > option8887860577033306220on_val,Y2: produc9003781588162623004on_val] :
      ( ( ( fun_up273046073882939271on_val @ M @ A2 @ ( some_P2581650809551911671on_val @ X ) )
        = ( fun_up273046073882939271on_val @ N @ A2 @ ( some_P2581650809551911671on_val @ Y2 ) ) )
     => ( X = Y2 ) ) ).

% map_upd_eqD1
thf(fact_349_map__upd__eqD1,axiom,
    ! [M: nat > option_list_char,A2: nat,X: list_char,N: nat > option_list_char,Y2: list_char] :
      ( ( ( fun_up4009399622604172288t_char @ M @ A2 @ ( some_list_char @ X ) )
        = ( fun_up4009399622604172288t_char @ N @ A2 @ ( some_list_char @ Y2 ) ) )
     => ( X = Y2 ) ) ).

% map_upd_eqD1
thf(fact_350_map__upd__eqD1,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A2: produc1457211279475724562t_char > prat,X: produc1457211279475724562t_char > option_val,N: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,Y2: produc1457211279475724562t_char > option_val] :
      ( ( ( fun_up1601731230164360576on_val @ M @ A2 @ ( some_P7669353234731512949on_val @ X ) )
        = ( fun_up1601731230164360576on_val @ N @ A2 @ ( some_P7669353234731512949on_val @ Y2 ) ) )
     => ( X = Y2 ) ) ).

% map_upd_eqD1
thf(fact_351_ospec,axiom,
    ! [A5: option_list_char,P: list_char > $o,X: list_char] :
      ( ! [X2: list_char] :
          ( ( member_list_char @ X2 @ ( set_option_list_char2 @ A5 ) )
         => ( P @ X2 ) )
     => ( ( A5
          = ( some_list_char @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_352_ospec,axiom,
    ! [A5: option5747939881698552298on_val,P: ( produc1457211279475724562t_char > option_val ) > $o,X: produc1457211279475724562t_char > option_val] :
      ( ! [X2: produc1457211279475724562t_char > option_val] :
          ( ( member1577473829074448177on_val @ X2 @ ( set_op1770538635792728844on_val @ A5 ) )
         => ( P @ X2 ) )
     => ( ( A5
          = ( some_P7669353234731512949on_val @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_353_ospec,axiom,
    ! [A5: option8887860577033306220on_val,P: produc9003781588162623004on_val > $o,X: produc9003781588162623004on_val] :
      ( ! [X2: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X2 @ ( set_op9004752959087400718on_val @ A5 ) )
         => ( P @ X2 ) )
     => ( ( A5
          = ( some_P2581650809551911671on_val @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_354_ospec,axiom,
    ! [A5: option2736423997234022232t_char,P: produc1457211279475724562t_char > $o,X: produc1457211279475724562t_char] :
      ( ! [X2: produc1457211279475724562t_char] :
          ( ( member484235747325421115t_char @ X2 @ ( set_op7440730737645789856t_char @ A5 ) )
         => ( P @ X2 ) )
     => ( ( A5
          = ( some_P6851457240968045559t_char @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_355_ospec,axiom,
    ! [A5: option_state,P: state > $o,X: state] :
      ( ! [X2: state] :
          ( ( member_state @ X2 @ ( set_option_state2 @ A5 ) )
         => ( P @ X2 ) )
     => ( ( A5
          = ( some_state @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_356_ospec,axiom,
    ! [A5: option_val,P: val > $o,X: val] :
      ( ! [X2: val] :
          ( ( member_val @ X2 @ ( set_option_val2 @ A5 ) )
         => ( P @ X2 ) )
     => ( ( A5
          = ( some_val @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_357_option_Oset__intros,axiom,
    ! [X22: option_val] : ( member_option_val @ X22 @ ( set_op911010586042427349on_val @ ( some_option_val @ X22 ) ) ) ).

% option.set_intros
thf(fact_358_option_Oset__intros,axiom,
    ! [X22: nat] : ( member_nat @ X22 @ ( set_option_nat @ ( some_nat @ X22 ) ) ) ).

% option.set_intros
thf(fact_359_option_Oset__intros,axiom,
    ! [X22: produc1457211279475724562t_char > prat] : ( member2336342582916103932r_prat @ X22 @ ( set_op923924987228895969r_prat @ ( some_P8530153984677361336r_prat @ X22 ) ) ) ).

% option.set_intros
thf(fact_360_option_Oset__intros,axiom,
    ! [X22: list_char] : ( member_list_char @ X22 @ ( set_option_list_char2 @ ( some_list_char @ X22 ) ) ) ).

% option.set_intros
thf(fact_361_option_Oset__intros,axiom,
    ! [X22: produc1457211279475724562t_char > option_val] : ( member1577473829074448177on_val @ X22 @ ( set_op1770538635792728844on_val @ ( some_P7669353234731512949on_val @ X22 ) ) ) ).

% option.set_intros
thf(fact_362_option_Oset__intros,axiom,
    ! [X22: produc1457211279475724562t_char] : ( member484235747325421115t_char @ X22 @ ( set_op7440730737645789856t_char @ ( some_P6851457240968045559t_char @ X22 ) ) ) ).

% option.set_intros
thf(fact_363_option_Oset__intros,axiom,
    ! [X22: produc9003781588162623004on_val] : ( member2879030624002546611on_val @ X22 @ ( set_op9004752959087400718on_val @ ( some_P2581650809551911671on_val @ X22 ) ) ) ).

% option.set_intros
thf(fact_364_option_Oset__intros,axiom,
    ! [X22: state] : ( member_state @ X22 @ ( set_option_state2 @ ( some_state @ X22 ) ) ) ).

% option.set_intros
thf(fact_365_option_Oset__intros,axiom,
    ! [X22: val] : ( member_val @ X22 @ ( set_option_val2 @ ( some_val @ X22 ) ) ) ).

% option.set_intros
thf(fact_366_option_Oset__cases,axiom,
    ! [E: option_val,A2: option_option_val] :
      ( ( member_option_val @ E @ ( set_op911010586042427349on_val @ A2 ) )
     => ( A2
        = ( some_option_val @ E ) ) ) ).

% option.set_cases
thf(fact_367_option_Oset__cases,axiom,
    ! [E: nat,A2: option_nat] :
      ( ( member_nat @ E @ ( set_option_nat @ A2 ) )
     => ( A2
        = ( some_nat @ E ) ) ) ).

% option.set_cases
thf(fact_368_option_Oset__cases,axiom,
    ! [E: produc1457211279475724562t_char > prat,A2: option3572569098863364761r_prat] :
      ( ( member2336342582916103932r_prat @ E @ ( set_op923924987228895969r_prat @ A2 ) )
     => ( A2
        = ( some_P8530153984677361336r_prat @ E ) ) ) ).

% option.set_cases
thf(fact_369_option_Oset__cases,axiom,
    ! [E: list_char,A2: option_list_char] :
      ( ( member_list_char @ E @ ( set_option_list_char2 @ A2 ) )
     => ( A2
        = ( some_list_char @ E ) ) ) ).

% option.set_cases
thf(fact_370_option_Oset__cases,axiom,
    ! [E: produc1457211279475724562t_char > option_val,A2: option5747939881698552298on_val] :
      ( ( member1577473829074448177on_val @ E @ ( set_op1770538635792728844on_val @ A2 ) )
     => ( A2
        = ( some_P7669353234731512949on_val @ E ) ) ) ).

% option.set_cases
thf(fact_371_option_Oset__cases,axiom,
    ! [E: produc1457211279475724562t_char,A2: option2736423997234022232t_char] :
      ( ( member484235747325421115t_char @ E @ ( set_op7440730737645789856t_char @ A2 ) )
     => ( A2
        = ( some_P6851457240968045559t_char @ E ) ) ) ).

% option.set_cases
thf(fact_372_option_Oset__cases,axiom,
    ! [E: produc9003781588162623004on_val,A2: option8887860577033306220on_val] :
      ( ( member2879030624002546611on_val @ E @ ( set_op9004752959087400718on_val @ A2 ) )
     => ( A2
        = ( some_P2581650809551911671on_val @ E ) ) ) ).

% option.set_cases
thf(fact_373_option_Oset__cases,axiom,
    ! [E: state,A2: option_state] :
      ( ( member_state @ E @ ( set_option_state2 @ A2 ) )
     => ( A2
        = ( some_state @ E ) ) ) ).

% option.set_cases
thf(fact_374_option_Oset__cases,axiom,
    ! [E: val,A2: option_val] :
      ( ( member_val @ E @ ( set_option_val2 @ A2 ) )
     => ( A2
        = ( some_val @ E ) ) ) ).

% option.set_cases
thf(fact_375_option_Osimps_I5_J,axiom,
    ! [F1: option_state,F2: state > option_state,X22: state] :
      ( ( case_o8916064052540797265_state @ F1 @ F2 @ ( some_state @ X22 ) )
      = ( F2 @ X22 ) ) ).

% option.simps(5)
thf(fact_376_option_Osimps_I5_J,axiom,
    ! [F1: option_val,F2: val > option_val,X22: val] :
      ( ( case_o7794706883426356101al_val @ F1 @ F2 @ ( some_val @ X22 ) )
      = ( F2 @ X22 ) ) ).

% option.simps(5)
thf(fact_377_option_Osimps_I5_J,axiom,
    ! [F1: val,F2: val > val,X22: val] :
      ( ( case_option_val_val @ F1 @ F2 @ ( some_val @ X22 ) )
      = ( F2 @ X22 ) ) ).

% option.simps(5)
thf(fact_378_option_Osimps_I5_J,axiom,
    ! [F1: $o,F2: state > $o,X22: state] :
      ( ( case_option_o_state @ F1 @ F2 @ ( some_state @ X22 ) )
      = ( F2 @ X22 ) ) ).

% option.simps(5)
thf(fact_379_option_Osimps_I5_J,axiom,
    ! [F1: $o,F2: val > $o,X22: val] :
      ( ( case_option_o_val @ F1 @ F2 @ ( some_val @ X22 ) )
      = ( F2 @ X22 ) ) ).

% option.simps(5)
thf(fact_380_bind__option__cong,axiom,
    ! [X: option_val,Y2: option_val,F: val > option_val,G: val > option_val] :
      ( ( X = Y2 )
     => ( ! [Z2: val] :
            ( ( member_val @ Z2 @ ( set_option_val2 @ Y2 ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( bind_val_val @ X @ F )
          = ( bind_val_val @ Y2 @ G ) ) ) ) ).

% bind_option_cong
thf(fact_381_bind__option__cong,axiom,
    ! [X: option_val,Y2: option_val,F: val > option_state,G: val > option_state] :
      ( ( X = Y2 )
     => ( ! [Z2: val] :
            ( ( member_val @ Z2 @ ( set_option_val2 @ Y2 ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( bind_val_state @ X @ F )
          = ( bind_val_state @ Y2 @ G ) ) ) ) ).

% bind_option_cong
thf(fact_382_bind__option__cong,axiom,
    ! [X: option_state,Y2: option_state,F: state > option_val,G: state > option_val] :
      ( ( X = Y2 )
     => ( ! [Z2: state] :
            ( ( member_state @ Z2 @ ( set_option_state2 @ Y2 ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( bind_state_val @ X @ F )
          = ( bind_state_val @ Y2 @ G ) ) ) ) ).

% bind_option_cong
thf(fact_383_bind__option__cong,axiom,
    ! [X: option_state,Y2: option_state,F: state > option_state,G: state > option_state] :
      ( ( X = Y2 )
     => ( ! [Z2: state] :
            ( ( member_state @ Z2 @ ( set_option_state2 @ Y2 ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( bind_state_state @ X @ F )
          = ( bind_state_state @ Y2 @ G ) ) ) ) ).

% bind_option_cong
thf(fact_384_option_Osimps_I4_J,axiom,
    ! [F1: option_state,F2: state > option_state] :
      ( ( case_o8916064052540797265_state @ F1 @ F2 @ none_state )
      = F1 ) ).

% option.simps(4)
thf(fact_385_option_Osimps_I4_J,axiom,
    ! [F1: option_val,F2: val > option_val] :
      ( ( case_o7794706883426356101al_val @ F1 @ F2 @ none_val )
      = F1 ) ).

% option.simps(4)
thf(fact_386_option_Osimps_I4_J,axiom,
    ! [F1: val,F2: val > val] :
      ( ( case_option_val_val @ F1 @ F2 @ none_val )
      = F1 ) ).

% option.simps(4)
thf(fact_387_option_Osimps_I4_J,axiom,
    ! [F1: $o,F2: state > $o] :
      ( ( case_option_o_state @ F1 @ F2 @ none_state )
      = F1 ) ).

% option.simps(4)
thf(fact_388_option_Osimps_I4_J,axiom,
    ! [F1: $o,F2: val > $o] :
      ( ( case_option_o_val @ F1 @ F2 @ none_val )
      = F1 ) ).

% option.simps(4)
thf(fact_389_is__none__simps_I2_J,axiom,
    ! [X: produc9003781588162623004on_val] :
      ~ ( is_non3468859156093823296on_val @ ( some_P2581650809551911671on_val @ X ) ) ).

% is_none_simps(2)
thf(fact_390_is__none__simps_I2_J,axiom,
    ! [X: list_char] :
      ~ ( is_none_list_char @ ( some_list_char @ X ) ) ).

% is_none_simps(2)
thf(fact_391_is__none__simps_I2_J,axiom,
    ! [X: produc1457211279475724562t_char > option_val] :
      ~ ( is_non6205214127102033982on_val @ ( some_P7669353234731512949on_val @ X ) ) ).

% is_none_simps(2)
thf(fact_392_is__none__simps_I2_J,axiom,
    ! [X: state] :
      ~ ( is_none_state @ ( some_state @ X ) ) ).

% is_none_simps(2)
thf(fact_393_is__none__simps_I2_J,axiom,
    ! [X: val] :
      ~ ( is_none_val @ ( some_val @ X ) ) ).

% is_none_simps(2)
thf(fact_394_Option_Ois__none__def,axiom,
    ( is_non3468859156093823296on_val
    = ( ^ [X3: option8887860577033306220on_val] : ( X3 = none_P8728355543607141243on_val ) ) ) ).

% Option.is_none_def
thf(fact_395_Option_Ois__none__def,axiom,
    ( is_none_list_char
    = ( ^ [X3: option_list_char] : ( X3 = none_list_char ) ) ) ).

% Option.is_none_def
thf(fact_396_Option_Ois__none__def,axiom,
    ( is_non6205214127102033982on_val
    = ( ^ [X3: option5747939881698552298on_val] : ( X3 = none_P1334921381875262201on_val ) ) ) ).

% Option.is_none_def
thf(fact_397_Option_Ois__none__def,axiom,
    ( is_none_state
    = ( ^ [X3: option_state] : ( X3 = none_state ) ) ) ).

% Option.is_none_def
thf(fact_398_Option_Ois__none__def,axiom,
    ( is_none_val
    = ( ^ [X3: option_val] : ( X3 = none_val ) ) ) ).

% Option.is_none_def
thf(fact_399_is__none__simps_I1_J,axiom,
    is_non3468859156093823296on_val @ none_P8728355543607141243on_val ).

% is_none_simps(1)
thf(fact_400_is__none__simps_I1_J,axiom,
    is_none_list_char @ none_list_char ).

% is_none_simps(1)
thf(fact_401_is__none__simps_I1_J,axiom,
    is_non6205214127102033982on_val @ none_P1334921381875262201on_val ).

% is_none_simps(1)
thf(fact_402_is__none__simps_I1_J,axiom,
    is_none_state @ none_state ).

% is_none_simps(1)
thf(fact_403_is__none__simps_I1_J,axiom,
    is_none_val @ none_val ).

% is_none_simps(1)
thf(fact_404_const__sum__mask__greater,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat,D: produc1457211279475724562t_char > prat] :
      ( ( ( add_ma6586698345353345811t_char @ A2 @ B2 )
        = ( add_ma6586698345353345811t_char @ C @ D ) )
     => ( ( greate7680731506090375811t_char @ A2 @ C )
       => ( greate7680731506090375811t_char @ D @ B2 ) ) ) ).

% const_sum_mask_greater
thf(fact_405_greater__mask__decomp,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( greate7680731506090375811t_char @ A2 @ ( add_ma6586698345353345811t_char @ B2 @ C ) )
     => ? [A1: produc1457211279475724562t_char > prat,A22: produc1457211279475724562t_char > prat] :
          ( ( A2
            = ( add_ma6586698345353345811t_char @ A1 @ A22 ) )
          & ( greate7680731506090375811t_char @ A1 @ B2 )
          & ( greate7680731506090375811t_char @ A22 @ C ) ) ) ).

% greater_mask_decomp
thf(fact_406_greater__mask__def,axiom,
    ( greate7680731506090375811t_char
    = ( ^ [Pi3: produc1457211279475724562t_char > prat,Pi4: produc1457211279475724562t_char > prat] :
        ? [R: produc1457211279475724562t_char > prat] :
          ( Pi3
          = ( add_ma6586698345353345811t_char @ Pi4 @ R ) ) ) ) ).

% greater_mask_def
thf(fact_407_map__upd__nonempty,axiom,
    ! [T: produc9003781588162623004on_val > option_state,K: produc9003781588162623004on_val,X: state] :
      ( ( fun_up6681822530636708645_state @ T @ K @ ( some_state @ X ) )
     != ( ^ [X3: produc9003781588162623004on_val] : none_state ) ) ).

% map_upd_nonempty
thf(fact_408_map__upd__nonempty,axiom,
    ! [T: produc9003781588162623004on_val > option_val,K: produc9003781588162623004on_val,X: val] :
      ( ( fun_up8559965269643824108on_val @ T @ K @ ( some_val @ X ) )
     != ( ^ [X3: produc9003781588162623004on_val] : none_val ) ) ).

% map_upd_nonempty
thf(fact_409_map__upd__nonempty,axiom,
    ! [T: produc9003781588162623004on_val > option8887860577033306220on_val,K: produc9003781588162623004on_val,X: produc9003781588162623004on_val] :
      ( ( fun_up273046073882939271on_val @ T @ K @ ( some_P2581650809551911671on_val @ X ) )
     != ( ^ [X3: produc9003781588162623004on_val] : none_P8728355543607141243on_val ) ) ).

% map_upd_nonempty
thf(fact_410_map__upd__nonempty,axiom,
    ! [T: nat > option_list_char,K: nat,X: list_char] :
      ( ( fun_up4009399622604172288t_char @ T @ K @ ( some_list_char @ X ) )
     != ( ^ [X3: nat] : none_list_char ) ) ).

% map_upd_nonempty
thf(fact_411_map__upd__nonempty,axiom,
    ! [T: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,K: produc1457211279475724562t_char > prat,X: produc1457211279475724562t_char > option_val] :
      ( ( fun_up1601731230164360576on_val @ T @ K @ ( some_P7669353234731512949on_val @ X ) )
     != ( ^ [X3: produc1457211279475724562t_char > prat] : none_P1334921381875262201on_val ) ) ).

% map_upd_nonempty
thf(fact_412_fun__upd__apply,axiom,
    ( fun_up6681822530636708645_state
    = ( ^ [F3: produc9003781588162623004on_val > option_state,X3: produc9003781588162623004on_val,Y3: option_state,Z3: produc9003781588162623004on_val] : ( if_option_state @ ( Z3 = X3 ) @ Y3 @ ( F3 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_413_fun__upd__apply,axiom,
    ( fun_up273046073882939271on_val
    = ( ^ [F3: produc9003781588162623004on_val > option8887860577033306220on_val,X3: produc9003781588162623004on_val,Y3: option8887860577033306220on_val,Z3: produc9003781588162623004on_val] : ( if_opt2965748431298708774on_val @ ( Z3 = X3 ) @ Y3 @ ( F3 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_414_fun__upd__apply,axiom,
    ( fun_up8559965269643824108on_val
    = ( ^ [F3: produc9003781588162623004on_val > option_val,X3: produc9003781588162623004on_val,Y3: option_val,Z3: produc9003781588162623004on_val] : ( if_option_val @ ( Z3 = X3 ) @ Y3 @ ( F3 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_415_fun__upd__apply,axiom,
    ( fun_up4009399622604172288t_char
    = ( ^ [F3: nat > option_list_char,X3: nat,Y3: option_list_char,Z3: nat] : ( if_option_list_char @ ( Z3 = X3 ) @ Y3 @ ( F3 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_416_fun__upd__apply,axiom,
    ( fun_up1601731230164360576on_val
    = ( ^ [F3: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X3: produc1457211279475724562t_char > prat,Y3: option5747939881698552298on_val,Z3: produc1457211279475724562t_char > prat] : ( if_opt6509584284076893604on_val @ ( Z3 = X3 ) @ Y3 @ ( F3 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_417_fun__upd__triv,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val] :
      ( ( fun_up6681822530636708645_state @ F @ X @ ( F @ X ) )
      = F ) ).

% fun_upd_triv
thf(fact_418_fun__upd__triv,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val] :
      ( ( fun_up273046073882939271on_val @ F @ X @ ( F @ X ) )
      = F ) ).

% fun_upd_triv
thf(fact_419_fun__upd__triv,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val] :
      ( ( fun_up8559965269643824108on_val @ F @ X @ ( F @ X ) )
      = F ) ).

% fun_upd_triv
thf(fact_420_fun__upd__triv,axiom,
    ! [F: nat > option_list_char,X: nat] :
      ( ( fun_up4009399622604172288t_char @ F @ X @ ( F @ X ) )
      = F ) ).

% fun_upd_triv
thf(fact_421_fun__upd__triv,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat] :
      ( ( fun_up1601731230164360576on_val @ F @ X @ ( F @ X ) )
      = F ) ).

% fun_upd_triv
thf(fact_422_fun__upd__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y2: option_state,Z: option_state] :
      ( ( fun_up6681822530636708645_state @ ( fun_up6681822530636708645_state @ F @ X @ Y2 ) @ X @ Z )
      = ( fun_up6681822530636708645_state @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_423_fun__upd__upd,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y2: option8887860577033306220on_val,Z: option8887860577033306220on_val] :
      ( ( fun_up273046073882939271on_val @ ( fun_up273046073882939271on_val @ F @ X @ Y2 ) @ X @ Z )
      = ( fun_up273046073882939271on_val @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_424_fun__upd__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y2: option_val,Z: option_val] :
      ( ( fun_up8559965269643824108on_val @ ( fun_up8559965269643824108on_val @ F @ X @ Y2 ) @ X @ Z )
      = ( fun_up8559965269643824108on_val @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_425_fun__upd__upd,axiom,
    ! [F: nat > option_list_char,X: nat,Y2: option_list_char,Z: option_list_char] :
      ( ( fun_up4009399622604172288t_char @ ( fun_up4009399622604172288t_char @ F @ X @ Y2 ) @ X @ Z )
      = ( fun_up4009399622604172288t_char @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_426_fun__upd__upd,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y2: option5747939881698552298on_val,Z: option5747939881698552298on_val] :
      ( ( fun_up1601731230164360576on_val @ ( fun_up1601731230164360576on_val @ F @ X @ Y2 ) @ X @ Z )
      = ( fun_up1601731230164360576on_val @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_427_valid__heap__def,axiom,
    ( valid_heap
    = ( ^ [Pi4: produc1457211279475724562t_char > prat,H4: produc1457211279475724562t_char > option_val] :
        ! [Hl2: produc1457211279475724562t_char] :
          ( ( ppos @ ( Pi4 @ Hl2 ) )
         => ( ( H4 @ Hl2 )
           != none_val ) ) ) ) ).

% valid_heap_def
thf(fact_428_valid__heapI,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,H: produc1457211279475724562t_char > option_val] :
      ( ! [Hl: produc1457211279475724562t_char] :
          ( ( ppos @ ( Pi @ Hl ) )
         => ( ( H @ Hl )
           != none_val ) )
     => ( valid_heap @ Pi @ H ) ) ).

% valid_heapI
thf(fact_429_map__le__imp__upd__le,axiom,
    ! [M1: produc9003781588162623004on_val > option_state,M2: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y2: state] :
      ( ( map_le2714403320317326333_state @ M1 @ M2 )
     => ( map_le2714403320317326333_state @ ( fun_up6681822530636708645_state @ M1 @ X @ none_state ) @ ( fun_up6681822530636708645_state @ M2 @ X @ ( some_state @ Y2 ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_430_map__le__imp__upd__le,axiom,
    ! [M1: produc1457211279475724562t_char > option_val,M2: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char,Y2: val] :
      ( ( map_le3432596473071271956ar_val @ M1 @ M2 )
     => ( map_le3432596473071271956ar_val @ ( fun_up5735975307950539954on_val @ M1 @ X @ none_val ) @ ( fun_up5735975307950539954on_val @ M2 @ X @ ( some_val @ Y2 ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_431_map__le__imp__upd__le,axiom,
    ! [M1: produc9003781588162623004on_val > option_val,M2: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y2: val] :
      ( ( map_le662008219874789630al_val @ M1 @ M2 )
     => ( map_le662008219874789630al_val @ ( fun_up8559965269643824108on_val @ M1 @ X @ none_val ) @ ( fun_up8559965269643824108on_val @ M2 @ X @ ( some_val @ Y2 ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_432_map__le__imp__upd__le,axiom,
    ! [M1: produc9003781588162623004on_val > option8887860577033306220on_val,M2: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( map_le1786601613863086943on_val @ M1 @ M2 )
     => ( map_le1786601613863086943on_val @ ( fun_up273046073882939271on_val @ M1 @ X @ none_P8728355543607141243on_val ) @ ( fun_up273046073882939271on_val @ M2 @ X @ ( some_P2581650809551911671on_val @ Y2 ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_433_map__le__imp__upd__le,axiom,
    ! [M1: nat > option_list_char,M2: nat > option_list_char,X: nat,Y2: list_char] :
      ( ( map_le_nat_list_char @ M1 @ M2 )
     => ( map_le_nat_list_char @ ( fun_up4009399622604172288t_char @ M1 @ X @ none_list_char ) @ ( fun_up4009399622604172288t_char @ M2 @ X @ ( some_list_char @ Y2 ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_434_map__le__imp__upd__le,axiom,
    ! [M1: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,M2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y2: produc1457211279475724562t_char > option_val] :
      ( ( map_le7591542393800649736on_val @ M1 @ M2 )
     => ( map_le7591542393800649736on_val @ ( fun_up1601731230164360576on_val @ M1 @ X @ none_P1334921381875262201on_val ) @ ( fun_up1601731230164360576on_val @ M2 @ X @ ( some_P7669353234731512949on_val @ Y2 ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_435_fun__upd__idem__iff,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y2: option_state] :
      ( ( ( fun_up6681822530636708645_state @ F @ X @ Y2 )
        = F )
      = ( ( F @ X )
        = Y2 ) ) ).

% fun_upd_idem_iff
thf(fact_436_fun__upd__idem__iff,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y2: option8887860577033306220on_val] :
      ( ( ( fun_up273046073882939271on_val @ F @ X @ Y2 )
        = F )
      = ( ( F @ X )
        = Y2 ) ) ).

% fun_upd_idem_iff
thf(fact_437_fun__upd__idem__iff,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y2: option_val] :
      ( ( ( fun_up8559965269643824108on_val @ F @ X @ Y2 )
        = F )
      = ( ( F @ X )
        = Y2 ) ) ).

% fun_upd_idem_iff
thf(fact_438_fun__upd__idem__iff,axiom,
    ! [F: nat > option_list_char,X: nat,Y2: option_list_char] :
      ( ( ( fun_up4009399622604172288t_char @ F @ X @ Y2 )
        = F )
      = ( ( F @ X )
        = Y2 ) ) ).

% fun_upd_idem_iff
thf(fact_439_fun__upd__idem__iff,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y2: option5747939881698552298on_val] :
      ( ( ( fun_up1601731230164360576on_val @ F @ X @ Y2 )
        = F )
      = ( ( F @ X )
        = Y2 ) ) ).

% fun_upd_idem_iff
thf(fact_440_map__le__antisym,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] :
      ( ( map_le3432596473071271956ar_val @ F @ G )
     => ( ( map_le3432596473071271956ar_val @ G @ F )
       => ( F = G ) ) ) ).

% map_le_antisym
thf(fact_441_map__le__trans,axiom,
    ! [M1: produc1457211279475724562t_char > option_val,M2: produc1457211279475724562t_char > option_val,M3: produc1457211279475724562t_char > option_val] :
      ( ( map_le3432596473071271956ar_val @ M1 @ M2 )
     => ( ( map_le3432596473071271956ar_val @ M2 @ M3 )
       => ( map_le3432596473071271956ar_val @ M1 @ M3 ) ) ) ).

% map_le_trans
thf(fact_442_map__le__refl,axiom,
    ! [F: produc1457211279475724562t_char > option_val] : ( map_le3432596473071271956ar_val @ F @ F ) ).

% map_le_refl
thf(fact_443_map__le__map__add,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val] : ( map_le662008219874789630al_val @ F @ ( map_ad5466549115852757998al_val @ G @ F ) ) ).

% map_le_map_add
thf(fact_444_map__le__map__add,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state] : ( map_le2714403320317326333_state @ F @ ( map_ad2629041965313307917_state @ G @ F ) ) ).

% map_le_map_add
thf(fact_445_map__le__map__add,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] : ( map_le3432596473071271956ar_val @ F @ ( map_ad2908576761495157028ar_val @ G @ F ) ) ).

% map_le_map_add
thf(fact_446_map__add__le__mapE,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val,H: produc9003781588162623004on_val > option_val] :
      ( ( map_le662008219874789630al_val @ ( map_ad5466549115852757998al_val @ F @ G ) @ H )
     => ( map_le662008219874789630al_val @ G @ H ) ) ).

% map_add_le_mapE
thf(fact_447_map__add__le__mapE,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state,H: produc9003781588162623004on_val > option_state] :
      ( ( map_le2714403320317326333_state @ ( map_ad2629041965313307917_state @ F @ G ) @ H )
     => ( map_le2714403320317326333_state @ G @ H ) ) ).

% map_add_le_mapE
thf(fact_448_map__add__le__mapE,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val,H: produc1457211279475724562t_char > option_val] :
      ( ( map_le3432596473071271956ar_val @ ( map_ad2908576761495157028ar_val @ F @ G ) @ H )
     => ( map_le3432596473071271956ar_val @ G @ H ) ) ).

% map_add_le_mapE
thf(fact_449_map__add__le__mapI,axiom,
    ! [F: produc9003781588162623004on_val > option_val,H: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val] :
      ( ( map_le662008219874789630al_val @ F @ H )
     => ( ( map_le662008219874789630al_val @ G @ H )
       => ( map_le662008219874789630al_val @ ( map_ad5466549115852757998al_val @ F @ G ) @ H ) ) ) ).

% map_add_le_mapI
thf(fact_450_map__add__le__mapI,axiom,
    ! [F: produc9003781588162623004on_val > option_state,H: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state] :
      ( ( map_le2714403320317326333_state @ F @ H )
     => ( ( map_le2714403320317326333_state @ G @ H )
       => ( map_le2714403320317326333_state @ ( map_ad2629041965313307917_state @ F @ G ) @ H ) ) ) ).

% map_add_le_mapI
thf(fact_451_map__add__le__mapI,axiom,
    ! [F: produc1457211279475724562t_char > option_val,H: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] :
      ( ( map_le3432596473071271956ar_val @ F @ H )
     => ( ( map_le3432596473071271956ar_val @ G @ H )
       => ( map_le3432596473071271956ar_val @ ( map_ad2908576761495157028ar_val @ F @ G ) @ H ) ) ) ).

% map_add_le_mapI
thf(fact_452_map__add__subsumed1,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val] :
      ( ( map_le662008219874789630al_val @ F @ G )
     => ( ( map_ad5466549115852757998al_val @ F @ G )
        = G ) ) ).

% map_add_subsumed1
thf(fact_453_map__add__subsumed1,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state] :
      ( ( map_le2714403320317326333_state @ F @ G )
     => ( ( map_ad2629041965313307917_state @ F @ G )
        = G ) ) ).

% map_add_subsumed1
thf(fact_454_map__add__subsumed1,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] :
      ( ( map_le3432596473071271956ar_val @ F @ G )
     => ( ( map_ad2908576761495157028ar_val @ F @ G )
        = G ) ) ).

% map_add_subsumed1
thf(fact_455_map__add__subsumed2,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val] :
      ( ( map_le662008219874789630al_val @ F @ G )
     => ( ( map_ad5466549115852757998al_val @ G @ F )
        = G ) ) ).

% map_add_subsumed2
thf(fact_456_map__add__subsumed2,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state] :
      ( ( map_le2714403320317326333_state @ F @ G )
     => ( ( map_ad2629041965313307917_state @ G @ F )
        = G ) ) ).

% map_add_subsumed2
thf(fact_457_map__add__subsumed2,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] :
      ( ( map_le3432596473071271956ar_val @ F @ G )
     => ( ( map_ad2908576761495157028ar_val @ G @ F )
        = G ) ) ).

% map_add_subsumed2
thf(fact_458_map__le__iff__map__add__commute,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val] :
      ( ( map_le662008219874789630al_val @ F @ ( map_ad5466549115852757998al_val @ F @ G ) )
      = ( ( map_ad5466549115852757998al_val @ F @ G )
        = ( map_ad5466549115852757998al_val @ G @ F ) ) ) ).

% map_le_iff_map_add_commute
thf(fact_459_map__le__iff__map__add__commute,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state] :
      ( ( map_le2714403320317326333_state @ F @ ( map_ad2629041965313307917_state @ F @ G ) )
      = ( ( map_ad2629041965313307917_state @ F @ G )
        = ( map_ad2629041965313307917_state @ G @ F ) ) ) ).

% map_le_iff_map_add_commute
thf(fact_460_map__le__iff__map__add__commute,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] :
      ( ( map_le3432596473071271956ar_val @ F @ ( map_ad2908576761495157028ar_val @ F @ G ) )
      = ( ( map_ad2908576761495157028ar_val @ F @ G )
        = ( map_ad2908576761495157028ar_val @ G @ F ) ) ) ).

% map_le_iff_map_add_commute
thf(fact_461_map__le__upd,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val,A2: produc1457211279475724562t_char,B2: option_val] :
      ( ( map_le3432596473071271956ar_val @ F @ G )
     => ( map_le3432596473071271956ar_val @ ( fun_up5735975307950539954on_val @ F @ A2 @ B2 ) @ ( fun_up5735975307950539954on_val @ G @ A2 @ B2 ) ) ) ).

% map_le_upd
thf(fact_462_map__le__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state,A2: produc9003781588162623004on_val,B2: option_state] :
      ( ( map_le2714403320317326333_state @ F @ G )
     => ( map_le2714403320317326333_state @ ( fun_up6681822530636708645_state @ F @ A2 @ B2 ) @ ( fun_up6681822530636708645_state @ G @ A2 @ B2 ) ) ) ).

% map_le_upd
thf(fact_463_map__le__upd,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,G: produc9003781588162623004on_val > option8887860577033306220on_val,A2: produc9003781588162623004on_val,B2: option8887860577033306220on_val] :
      ( ( map_le1786601613863086943on_val @ F @ G )
     => ( map_le1786601613863086943on_val @ ( fun_up273046073882939271on_val @ F @ A2 @ B2 ) @ ( fun_up273046073882939271on_val @ G @ A2 @ B2 ) ) ) ).

% map_le_upd
thf(fact_464_map__le__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val,A2: produc9003781588162623004on_val,B2: option_val] :
      ( ( map_le662008219874789630al_val @ F @ G )
     => ( map_le662008219874789630al_val @ ( fun_up8559965269643824108on_val @ F @ A2 @ B2 ) @ ( fun_up8559965269643824108on_val @ G @ A2 @ B2 ) ) ) ).

% map_le_upd
thf(fact_465_map__le__upd,axiom,
    ! [F: nat > option_list_char,G: nat > option_list_char,A2: nat,B2: option_list_char] :
      ( ( map_le_nat_list_char @ F @ G )
     => ( map_le_nat_list_char @ ( fun_up4009399622604172288t_char @ F @ A2 @ B2 ) @ ( fun_up4009399622604172288t_char @ G @ A2 @ B2 ) ) ) ).

% map_le_upd
thf(fact_466_map__le__upd,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,G: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A2: produc1457211279475724562t_char > prat,B2: option5747939881698552298on_val] :
      ( ( map_le7591542393800649736on_val @ F @ G )
     => ( map_le7591542393800649736on_val @ ( fun_up1601731230164360576on_val @ F @ A2 @ B2 ) @ ( fun_up1601731230164360576on_val @ G @ A2 @ B2 ) ) ) ).

% map_le_upd
thf(fact_467_upd__None__map__le,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val] : ( map_le2714403320317326333_state @ ( fun_up6681822530636708645_state @ F @ X @ none_state ) @ F ) ).

% upd_None_map_le
thf(fact_468_upd__None__map__le,axiom,
    ! [F: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char] : ( map_le3432596473071271956ar_val @ ( fun_up5735975307950539954on_val @ F @ X @ none_val ) @ F ) ).

% upd_None_map_le
thf(fact_469_upd__None__map__le,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val] : ( map_le662008219874789630al_val @ ( fun_up8559965269643824108on_val @ F @ X @ none_val ) @ F ) ).

% upd_None_map_le
thf(fact_470_upd__None__map__le,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val] : ( map_le1786601613863086943on_val @ ( fun_up273046073882939271on_val @ F @ X @ none_P8728355543607141243on_val ) @ F ) ).

% upd_None_map_le
thf(fact_471_upd__None__map__le,axiom,
    ! [F: nat > option_list_char,X: nat] : ( map_le_nat_list_char @ ( fun_up4009399622604172288t_char @ F @ X @ none_list_char ) @ F ) ).

% upd_None_map_le
thf(fact_472_upd__None__map__le,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat] : ( map_le7591542393800649736on_val @ ( fun_up1601731230164360576on_val @ F @ X @ none_P1334921381875262201on_val ) @ F ) ).

% upd_None_map_le
thf(fact_473_fun__upd__def,axiom,
    ( fun_up6681822530636708645_state
    = ( ^ [F3: produc9003781588162623004on_val > option_state,A: produc9003781588162623004on_val,B: option_state,X3: produc9003781588162623004on_val] : ( if_option_state @ ( X3 = A ) @ B @ ( F3 @ X3 ) ) ) ) ).

% fun_upd_def
thf(fact_474_fun__upd__def,axiom,
    ( fun_up273046073882939271on_val
    = ( ^ [F3: produc9003781588162623004on_val > option8887860577033306220on_val,A: produc9003781588162623004on_val,B: option8887860577033306220on_val,X3: produc9003781588162623004on_val] : ( if_opt2965748431298708774on_val @ ( X3 = A ) @ B @ ( F3 @ X3 ) ) ) ) ).

% fun_upd_def
thf(fact_475_fun__upd__def,axiom,
    ( fun_up8559965269643824108on_val
    = ( ^ [F3: produc9003781588162623004on_val > option_val,A: produc9003781588162623004on_val,B: option_val,X3: produc9003781588162623004on_val] : ( if_option_val @ ( X3 = A ) @ B @ ( F3 @ X3 ) ) ) ) ).

% fun_upd_def
thf(fact_476_fun__upd__def,axiom,
    ( fun_up4009399622604172288t_char
    = ( ^ [F3: nat > option_list_char,A: nat,B: option_list_char,X3: nat] : ( if_option_list_char @ ( X3 = A ) @ B @ ( F3 @ X3 ) ) ) ) ).

% fun_upd_def
thf(fact_477_fun__upd__def,axiom,
    ( fun_up1601731230164360576on_val
    = ( ^ [F3: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A: produc1457211279475724562t_char > prat,B: option5747939881698552298on_val,X3: produc1457211279475724562t_char > prat] : ( if_opt6509584284076893604on_val @ ( X3 = A ) @ B @ ( F3 @ X3 ) ) ) ) ).

% fun_upd_def
thf(fact_478_fun__upd__eqD,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y2: option_state,G: produc9003781588162623004on_val > option_state,Z: option_state] :
      ( ( ( fun_up6681822530636708645_state @ F @ X @ Y2 )
        = ( fun_up6681822530636708645_state @ G @ X @ Z ) )
     => ( Y2 = Z ) ) ).

% fun_upd_eqD
thf(fact_479_fun__upd__eqD,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y2: option8887860577033306220on_val,G: produc9003781588162623004on_val > option8887860577033306220on_val,Z: option8887860577033306220on_val] :
      ( ( ( fun_up273046073882939271on_val @ F @ X @ Y2 )
        = ( fun_up273046073882939271on_val @ G @ X @ Z ) )
     => ( Y2 = Z ) ) ).

% fun_upd_eqD
thf(fact_480_fun__upd__eqD,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y2: option_val,G: produc9003781588162623004on_val > option_val,Z: option_val] :
      ( ( ( fun_up8559965269643824108on_val @ F @ X @ Y2 )
        = ( fun_up8559965269643824108on_val @ G @ X @ Z ) )
     => ( Y2 = Z ) ) ).

% fun_upd_eqD
thf(fact_481_fun__upd__eqD,axiom,
    ! [F: nat > option_list_char,X: nat,Y2: option_list_char,G: nat > option_list_char,Z: option_list_char] :
      ( ( ( fun_up4009399622604172288t_char @ F @ X @ Y2 )
        = ( fun_up4009399622604172288t_char @ G @ X @ Z ) )
     => ( Y2 = Z ) ) ).

% fun_upd_eqD
thf(fact_482_fun__upd__eqD,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y2: option5747939881698552298on_val,G: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,Z: option5747939881698552298on_val] :
      ( ( ( fun_up1601731230164360576on_val @ F @ X @ Y2 )
        = ( fun_up1601731230164360576on_val @ G @ X @ Z ) )
     => ( Y2 = Z ) ) ).

% fun_upd_eqD
thf(fact_483_fun__upd__idem,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y2: option_state] :
      ( ( ( F @ X )
        = Y2 )
     => ( ( fun_up6681822530636708645_state @ F @ X @ Y2 )
        = F ) ) ).

% fun_upd_idem
thf(fact_484_fun__upd__idem,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y2: option8887860577033306220on_val] :
      ( ( ( F @ X )
        = Y2 )
     => ( ( fun_up273046073882939271on_val @ F @ X @ Y2 )
        = F ) ) ).

% fun_upd_idem
thf(fact_485_fun__upd__idem,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y2: option_val] :
      ( ( ( F @ X )
        = Y2 )
     => ( ( fun_up8559965269643824108on_val @ F @ X @ Y2 )
        = F ) ) ).

% fun_upd_idem
thf(fact_486_fun__upd__idem,axiom,
    ! [F: nat > option_list_char,X: nat,Y2: option_list_char] :
      ( ( ( F @ X )
        = Y2 )
     => ( ( fun_up4009399622604172288t_char @ F @ X @ Y2 )
        = F ) ) ).

% fun_upd_idem
thf(fact_487_fun__upd__idem,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y2: option5747939881698552298on_val] :
      ( ( ( F @ X )
        = Y2 )
     => ( ( fun_up1601731230164360576on_val @ F @ X @ Y2 )
        = F ) ) ).

% fun_upd_idem
thf(fact_488_fun__upd__same,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y2: option_state] :
      ( ( fun_up6681822530636708645_state @ F @ X @ Y2 @ X )
      = Y2 ) ).

% fun_upd_same
thf(fact_489_fun__upd__same,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y2: option8887860577033306220on_val] :
      ( ( fun_up273046073882939271on_val @ F @ X @ Y2 @ X )
      = Y2 ) ).

% fun_upd_same
thf(fact_490_fun__upd__same,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y2: option_val] :
      ( ( fun_up8559965269643824108on_val @ F @ X @ Y2 @ X )
      = Y2 ) ).

% fun_upd_same
thf(fact_491_fun__upd__same,axiom,
    ! [F: nat > option_list_char,X: nat,Y2: option_list_char] :
      ( ( fun_up4009399622604172288t_char @ F @ X @ Y2 @ X )
      = Y2 ) ).

% fun_upd_same
thf(fact_492_fun__upd__same,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y2: option5747939881698552298on_val] :
      ( ( fun_up1601731230164360576on_val @ F @ X @ Y2 @ X )
      = Y2 ) ).

% fun_upd_same
thf(fact_493_fun__upd__other,axiom,
    ! [Z: produc9003781588162623004on_val,X: produc9003781588162623004on_val,F: produc9003781588162623004on_val > option_state,Y2: option_state] :
      ( ( Z != X )
     => ( ( fun_up6681822530636708645_state @ F @ X @ Y2 @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_494_fun__upd__other,axiom,
    ! [Z: produc9003781588162623004on_val,X: produc9003781588162623004on_val,F: produc9003781588162623004on_val > option8887860577033306220on_val,Y2: option8887860577033306220on_val] :
      ( ( Z != X )
     => ( ( fun_up273046073882939271on_val @ F @ X @ Y2 @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_495_fun__upd__other,axiom,
    ! [Z: produc9003781588162623004on_val,X: produc9003781588162623004on_val,F: produc9003781588162623004on_val > option_val,Y2: option_val] :
      ( ( Z != X )
     => ( ( fun_up8559965269643824108on_val @ F @ X @ Y2 @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_496_fun__upd__other,axiom,
    ! [Z: nat,X: nat,F: nat > option_list_char,Y2: option_list_char] :
      ( ( Z != X )
     => ( ( fun_up4009399622604172288t_char @ F @ X @ Y2 @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_497_fun__upd__other,axiom,
    ! [Z: produc1457211279475724562t_char > prat,X: produc1457211279475724562t_char > prat,F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,Y2: option5747939881698552298on_val] :
      ( ( Z != X )
     => ( ( fun_up1601731230164360576on_val @ F @ X @ Y2 @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_498_fun__upd__twist,axiom,
    ! [A2: produc9003781588162623004on_val,C: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_state,B2: option_state,D: option_state] :
      ( ( A2 != C )
     => ( ( fun_up6681822530636708645_state @ ( fun_up6681822530636708645_state @ M @ A2 @ B2 ) @ C @ D )
        = ( fun_up6681822530636708645_state @ ( fun_up6681822530636708645_state @ M @ C @ D ) @ A2 @ B2 ) ) ) ).

% fun_upd_twist
thf(fact_499_fun__upd__twist,axiom,
    ! [A2: produc9003781588162623004on_val,C: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option8887860577033306220on_val,B2: option8887860577033306220on_val,D: option8887860577033306220on_val] :
      ( ( A2 != C )
     => ( ( fun_up273046073882939271on_val @ ( fun_up273046073882939271on_val @ M @ A2 @ B2 ) @ C @ D )
        = ( fun_up273046073882939271on_val @ ( fun_up273046073882939271on_val @ M @ C @ D ) @ A2 @ B2 ) ) ) ).

% fun_upd_twist
thf(fact_500_fun__upd__twist,axiom,
    ! [A2: produc9003781588162623004on_val,C: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_val,B2: option_val,D: option_val] :
      ( ( A2 != C )
     => ( ( fun_up8559965269643824108on_val @ ( fun_up8559965269643824108on_val @ M @ A2 @ B2 ) @ C @ D )
        = ( fun_up8559965269643824108on_val @ ( fun_up8559965269643824108on_val @ M @ C @ D ) @ A2 @ B2 ) ) ) ).

% fun_upd_twist
thf(fact_501_fun__upd__twist,axiom,
    ! [A2: nat,C: nat,M: nat > option_list_char,B2: option_list_char,D: option_list_char] :
      ( ( A2 != C )
     => ( ( fun_up4009399622604172288t_char @ ( fun_up4009399622604172288t_char @ M @ A2 @ B2 ) @ C @ D )
        = ( fun_up4009399622604172288t_char @ ( fun_up4009399622604172288t_char @ M @ C @ D ) @ A2 @ B2 ) ) ) ).

% fun_upd_twist
thf(fact_502_fun__upd__twist,axiom,
    ! [A2: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat,M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,B2: option5747939881698552298on_val,D: option5747939881698552298on_val] :
      ( ( A2 != C )
     => ( ( fun_up1601731230164360576on_val @ ( fun_up1601731230164360576on_val @ M @ A2 @ B2 ) @ C @ D )
        = ( fun_up1601731230164360576on_val @ ( fun_up1601731230164360576on_val @ M @ C @ D ) @ A2 @ B2 ) ) ) ).

% fun_upd_twist
thf(fact_503_uni__mask_Osimps,axiom,
    ( uni_ma8757825773229499086r_prat
    = ( fun_up9120501182914450918t_prat @ empty_6616431780912394577r_prat ) ) ).

% uni_mask.simps
thf(fact_504_uni__mask_Osimps,axiom,
    ( uni_mask_state
    = ( fun_upd_state_prat @ empty_mask_state ) ) ).

% uni_mask.simps
thf(fact_505_uni__mask_Osimps,axiom,
    ( uni_ma3016027189315475553on_val
    = ( fun_up322103695952382443l_prat @ empty_6102255041883331742on_val ) ) ).

% uni_mask.simps
thf(fact_506_uni__mask_Osimps,axiom,
    ( uni_ma2802115457281451284on_val
    = ( fun_up4040928134582614060l_prat @ empty_4129289814623480215on_val ) ) ).

% uni_mask.simps
thf(fact_507_uni__mask_Osimps,axiom,
    ( uni_ma6578582744724537101t_char
    = ( fun_up829850848796697765r_prat @ empty_3446695950879338768t_char ) ) ).

% uni_mask.simps
thf(fact_508_uni__mask_Oelims,axiom,
    ! [X: produc1457211279475724562t_char > prat,Xa: prat,Y2: ( produc1457211279475724562t_char > prat ) > prat] :
      ( ( ( uni_ma8757825773229499086r_prat @ X @ Xa )
        = Y2 )
     => ( Y2
        = ( fun_up9120501182914450918t_prat @ empty_6616431780912394577r_prat @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_509_uni__mask_Oelims,axiom,
    ! [X: state,Xa: prat,Y2: state > prat] :
      ( ( ( uni_mask_state @ X @ Xa )
        = Y2 )
     => ( Y2
        = ( fun_upd_state_prat @ empty_mask_state @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_510_uni__mask_Oelims,axiom,
    ! [X: produc9003781588162623004on_val,Xa: prat,Y2: produc9003781588162623004on_val > prat] :
      ( ( ( uni_ma3016027189315475553on_val @ X @ Xa )
        = Y2 )
     => ( Y2
        = ( fun_up322103695952382443l_prat @ empty_6102255041883331742on_val @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_511_uni__mask_Oelims,axiom,
    ! [X: produc1317171644805857433on_val,Xa: prat,Y2: produc1317171644805857433on_val > prat] :
      ( ( ( uni_ma2802115457281451284on_val @ X @ Xa )
        = Y2 )
     => ( Y2
        = ( fun_up4040928134582614060l_prat @ empty_4129289814623480215on_val @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_512_uni__mask_Oelims,axiom,
    ! [X: produc1457211279475724562t_char,Xa: prat,Y2: produc1457211279475724562t_char > prat] :
      ( ( ( uni_ma6578582744724537101t_char @ X @ Xa )
        = Y2 )
     => ( Y2
        = ( fun_up829850848796697765r_prat @ empty_3446695950879338768t_char @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_513_map__add__upd__left,axiom,
    ! [M: produc1457211279475724562t_char,E2: produc1457211279475724562t_char > option_val,E1: produc1457211279475724562t_char > option_val,U1: val] :
      ( ~ ( member484235747325421115t_char @ M @ ( dom_Pr8989479155164304065ar_val @ E2 ) )
     => ( ( map_ad2908576761495157028ar_val @ ( fun_up5735975307950539954on_val @ E1 @ M @ ( some_val @ U1 ) ) @ E2 )
        = ( fun_up5735975307950539954on_val @ ( map_ad2908576761495157028ar_val @ E1 @ E2 ) @ M @ ( some_val @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_514_map__add__upd__left,axiom,
    ! [M: produc9003781588162623004on_val,E2: produc9003781588162623004on_val > option_state,E1: produc9003781588162623004on_val > option_state,U1: state] :
      ( ~ ( member2879030624002546611on_val @ M @ ( dom_Pr4448331044451638570_state @ E2 ) )
     => ( ( map_ad2629041965313307917_state @ ( fun_up6681822530636708645_state @ E1 @ M @ ( some_state @ U1 ) ) @ E2 )
        = ( fun_up6681822530636708645_state @ ( map_ad2629041965313307917_state @ E1 @ E2 ) @ M @ ( some_state @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_515_map__add__upd__left,axiom,
    ! [M: produc9003781588162623004on_val,E2: produc9003781588162623004on_val > option_val,E1: produc9003781588162623004on_val > option_val,U1: val] :
      ( ~ ( member2879030624002546611on_val @ M @ ( dom_Pr7381289304162206737al_val @ E2 ) )
     => ( ( map_ad5466549115852757998al_val @ ( fun_up8559965269643824108on_val @ E1 @ M @ ( some_val @ U1 ) ) @ E2 )
        = ( fun_up8559965269643824108on_val @ ( map_ad5466549115852757998al_val @ E1 @ E2 ) @ M @ ( some_val @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_516_map__add__upd__left,axiom,
    ! [M: val,E2: val > option_state,E1: val > option_state,U1: state] :
      ( ~ ( member_val @ M @ ( dom_val_state @ E2 ) )
     => ( ( map_add_val_state @ ( fun_up7100790768922270414_state @ E1 @ M @ ( some_state @ U1 ) ) @ E2 )
        = ( fun_up7100790768922270414_state @ ( map_add_val_state @ E1 @ E2 ) @ M @ ( some_state @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_517_map__add__upd__left,axiom,
    ! [M: nat,E2: nat > option_state,E1: nat > option_state,U1: state] :
      ( ~ ( member_nat @ M @ ( dom_nat_state @ E2 ) )
     => ( ( map_add_nat_state @ ( fun_up5089051266557015257_state @ E1 @ M @ ( some_state @ U1 ) ) @ E2 )
        = ( fun_up5089051266557015257_state @ ( map_add_nat_state @ E1 @ E2 ) @ M @ ( some_state @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_518_map__add__upd__left,axiom,
    ! [M: val,E2: val > option_val,E1: val > option_val,U1: val] :
      ( ~ ( member_val @ M @ ( dom_val_val @ E2 ) )
     => ( ( map_add_val_val @ ( fun_up735531404784515971on_val @ E1 @ M @ ( some_val @ U1 ) ) @ E2 )
        = ( fun_up735531404784515971on_val @ ( map_add_val_val @ E1 @ E2 ) @ M @ ( some_val @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_519_map__add__upd__left,axiom,
    ! [M: nat,E2: nat > option_val,E1: nat > option_val,U1: val] :
      ( ~ ( member_nat @ M @ ( dom_nat_val @ E2 ) )
     => ( ( map_add_nat_val @ ( fun_up810121132392276792on_val @ E1 @ M @ ( some_val @ U1 ) ) @ E2 )
        = ( fun_up810121132392276792on_val @ ( map_add_nat_val @ E1 @ E2 ) @ M @ ( some_val @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_520_map__add__upd__left,axiom,
    ! [M: option_val,E2: option_val > option_state,E1: option_val > option_state,U1: state] :
      ( ~ ( member_option_val @ M @ ( dom_option_val_state @ E2 ) )
     => ( ( map_ad1596397661948740748_state @ ( fun_up2039547756584784788_state @ E1 @ M @ ( some_state @ U1 ) ) @ E2 )
        = ( fun_up2039547756584784788_state @ ( map_ad1596397661948740748_state @ E1 @ E2 ) @ M @ ( some_state @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_521_map__add__upd__left,axiom,
    ! [M: option_val,E2: option_val > option_val,E1: option_val > option_val,U1: val] :
      ( ~ ( member_option_val @ M @ ( dom_option_val_val @ E2 ) )
     => ( ( map_ad2791809220819668783al_val @ ( fun_up8761876891205509693on_val @ E1 @ M @ ( some_val @ U1 ) ) @ E2 )
        = ( fun_up8761876891205509693on_val @ ( map_ad2791809220819668783al_val @ E1 @ E2 ) @ M @ ( some_val @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_522_map__add__upd__left,axiom,
    ! [M: val,E2: val > option_list_char,E1: val > option_list_char,U1: list_char] :
      ( ~ ( member_val @ M @ ( dom_val_list_char @ E2 ) )
     => ( ( map_ad6513282191902725485t_char @ ( fun_up7032939564753911157t_char @ E1 @ M @ ( some_list_char @ U1 ) ) @ E2 )
        = ( fun_up7032939564753911157t_char @ ( map_ad6513282191902725485t_char @ E1 @ E2 ) @ M @ ( some_list_char @ U1 ) ) ) ) ).

% map_add_upd_left
thf(fact_523_mult__greater,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,P4: prat] :
      ( ( greate7680731506090375811t_char @ A2 @ B2 )
     => ( greate7680731506090375811t_char @ ( multiply_mask @ P4 @ A2 ) @ ( multiply_mask @ P4 @ B2 ) ) ) ).

% mult_greater
thf(fact_524_set__empty__eq,axiom,
    ! [Xo: option_list_char] :
      ( ( ( set_option_list_char2 @ Xo )
        = bot_bo8503570744482963627t_char )
      = ( Xo = none_list_char ) ) ).

% set_empty_eq
thf(fact_525_set__empty__eq,axiom,
    ! [Xo: option5747939881698552298on_val] :
      ( ( ( set_op1770538635792728844on_val @ Xo )
        = bot_bo5671083314777306084on_val )
      = ( Xo = none_P1334921381875262201on_val ) ) ).

% set_empty_eq
thf(fact_526_set__empty__eq,axiom,
    ! [Xo: option_option_state] :
      ( ( ( set_op5162993263733338108_state @ Xo )
        = bot_bo710180891245420500_state )
      = ( Xo = none_option_state ) ) ).

% set_empty_eq
thf(fact_527_set__empty__eq,axiom,
    ! [Xo: option_option_val] :
      ( ( ( set_op911010586042427349on_val @ Xo )
        = bot_bo5906790151302476563on_val )
      = ( Xo = none_option_val ) ) ).

% set_empty_eq
thf(fact_528_set__empty__eq,axiom,
    ! [Xo: option8887860577033306220on_val] :
      ( ( ( set_op9004752959087400718on_val @ Xo )
        = bot_bo6722054719108133734on_val )
      = ( Xo = none_P8728355543607141243on_val ) ) ).

% set_empty_eq
thf(fact_529_set__empty__eq,axiom,
    ! [Xo: option2736423997234022232t_char] :
      ( ( ( set_op7440730737645789856t_char @ Xo )
        = bot_bo1414094081888755934t_char )
      = ( Xo = none_P5486107665612286067t_char ) ) ).

% set_empty_eq
thf(fact_530_set__empty__eq,axiom,
    ! [Xo: option_state] :
      ( ( ( set_option_state2 @ Xo )
        = bot_bot_set_state )
      = ( Xo = none_state ) ) ).

% set_empty_eq
thf(fact_531_set__empty__eq,axiom,
    ! [Xo: option_val] :
      ( ( ( set_option_val2 @ Xo )
        = bot_bot_set_val )
      = ( Xo = none_val ) ) ).

% set_empty_eq
thf(fact_532_update__trans,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,Pi2: produc1457211279475724562t_char > prat,Pi5: produc1457211279475724562t_char > prat,Dm: produc1457211279475724562t_char > $o] :
      ( ( greate7680731506090375811t_char @ Pi @ Pi2 )
     => ( ( greate7680731506090375811t_char @ Pi2 @ Pi5 )
       => ( ( update5099441844846592839t_char @ ( update5099441844846592839t_char @ Dm @ Pi @ Pi2 ) @ Pi2 @ Pi5 )
          = ( update5099441844846592839t_char @ Dm @ Pi @ Pi5 ) ) ) ) ).

% update_trans
thf(fact_533_fun__upd__None__if__notin__dom,axiom,
    ! [K: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_state] :
      ( ~ ( member2879030624002546611on_val @ K @ ( dom_Pr4448331044451638570_state @ M ) )
     => ( ( fun_up6681822530636708645_state @ M @ K @ none_state )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_534_fun__upd__None__if__notin__dom,axiom,
    ! [K: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_val] :
      ( ~ ( member2879030624002546611on_val @ K @ ( dom_Pr7381289304162206737al_val @ M ) )
     => ( ( fun_up8559965269643824108on_val @ M @ K @ none_val )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_535_fun__upd__None__if__notin__dom,axiom,
    ! [K: val,M: val > option_state] :
      ( ~ ( member_val @ K @ ( dom_val_state @ M ) )
     => ( ( fun_up7100790768922270414_state @ M @ K @ none_state )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_536_fun__upd__None__if__notin__dom,axiom,
    ! [K: nat,M: nat > option_state] :
      ( ~ ( member_nat @ K @ ( dom_nat_state @ M ) )
     => ( ( fun_up5089051266557015257_state @ M @ K @ none_state )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_537_fun__upd__None__if__notin__dom,axiom,
    ! [K: val,M: val > option_val] :
      ( ~ ( member_val @ K @ ( dom_val_val @ M ) )
     => ( ( fun_up735531404784515971on_val @ M @ K @ none_val )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_538_fun__upd__None__if__notin__dom,axiom,
    ! [K: nat,M: nat > option_val] :
      ( ~ ( member_nat @ K @ ( dom_nat_val @ M ) )
     => ( ( fun_up810121132392276792on_val @ M @ K @ none_val )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_539_fun__upd__None__if__notin__dom,axiom,
    ! [K: option_val,M: option_val > option_state] :
      ( ~ ( member_option_val @ K @ ( dom_option_val_state @ M ) )
     => ( ( fun_up2039547756584784788_state @ M @ K @ none_state )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_540_fun__upd__None__if__notin__dom,axiom,
    ! [K: option_val,M: option_val > option_val] :
      ( ~ ( member_option_val @ K @ ( dom_option_val_val @ M ) )
     => ( ( fun_up8761876891205509693on_val @ M @ K @ none_val )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_541_fun__upd__None__if__notin__dom,axiom,
    ! [K: val,M: val > option_list_char] :
      ( ~ ( member_val @ K @ ( dom_val_list_char @ M ) )
     => ( ( fun_up7032939564753911157t_char @ M @ K @ none_list_char )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_542_fun__upd__None__if__notin__dom,axiom,
    ! [K: nat,M: nat > option_list_char] :
      ( ~ ( member_nat @ K @ ( dom_nat_list_char @ M ) )
     => ( ( fun_up4009399622604172288t_char @ M @ K @ none_list_char )
        = M ) ) ).

% fun_upd_None_if_notin_dom
thf(fact_543_image__map__upd,axiom,
    ! [X: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,M: produc9003781588162623004on_val > option_state,Y2: state] :
      ( ~ ( member2879030624002546611on_val @ X @ A5 )
     => ( ( image_2102623794538073773_state @ ( fun_up6681822530636708645_state @ M @ X @ ( some_state @ Y2 ) ) @ A5 )
        = ( image_2102623794538073773_state @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_544_image__map__upd,axiom,
    ! [X: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,M: produc9003781588162623004on_val > option_val,Y2: val] :
      ( ~ ( member2879030624002546611on_val @ X @ A5 )
     => ( ( image_453284115904594532on_val @ ( fun_up8559965269643824108on_val @ M @ X @ ( some_val @ Y2 ) ) @ A5 )
        = ( image_453284115904594532on_val @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_545_image__map__upd,axiom,
    ! [X: val,A5: set_val,M: val > option_state,Y2: state] :
      ( ~ ( member_val @ X @ A5 )
     => ( ( image_8370355904157991238_state @ ( fun_up7100790768922270414_state @ M @ X @ ( some_state @ Y2 ) ) @ A5 )
        = ( image_8370355904157991238_state @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_546_image__map__upd,axiom,
    ! [X: nat,A5: set_nat,M: nat > option_state,Y2: state] :
      ( ~ ( member_nat @ X @ A5 )
     => ( ( image_8240249968597053537_state @ ( fun_up5089051266557015257_state @ M @ X @ ( some_state @ Y2 ) ) @ A5 )
        = ( image_8240249968597053537_state @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_547_image__map__upd,axiom,
    ! [X: val,A5: set_val,M: val > option_val,Y2: val] :
      ( ~ ( member_val @ X @ A5 )
     => ( ( image_val_option_val @ ( fun_up735531404784515971on_val @ M @ X @ ( some_val @ Y2 ) ) @ A5 )
        = ( image_val_option_val @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_548_image__map__upd,axiom,
    ! [X: nat,A5: set_nat,M: nat > option_val,Y2: val] :
      ( ~ ( member_nat @ X @ A5 )
     => ( ( image_nat_option_val @ ( fun_up810121132392276792on_val @ M @ X @ ( some_val @ Y2 ) ) @ A5 )
        = ( image_nat_option_val @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_549_image__map__upd,axiom,
    ! [X: option_val,A5: set_option_val,M: option_val > option_state,Y2: state] :
      ( ~ ( member_option_val @ X @ A5 )
     => ( ( image_2662813144889517580_state @ ( fun_up2039547756584784788_state @ M @ X @ ( some_state @ Y2 ) ) @ A5 )
        = ( image_2662813144889517580_state @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_550_image__map__upd,axiom,
    ! [X: option_val,A5: set_option_val,M: option_val > option_val,Y2: val] :
      ( ~ ( member_option_val @ X @ A5 )
     => ( ( image_5994708315261978053on_val @ ( fun_up8761876891205509693on_val @ M @ X @ ( some_val @ Y2 ) ) @ A5 )
        = ( image_5994708315261978053on_val @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_551_image__map__upd,axiom,
    ! [X: val,A5: set_val,M: val > option_list_char,Y2: list_char] :
      ( ~ ( member_val @ X @ A5 )
     => ( ( image_7372873807906076653t_char @ ( fun_up7032939564753911157t_char @ M @ X @ ( some_list_char @ Y2 ) ) @ A5 )
        = ( image_7372873807906076653t_char @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_552_image__map__upd,axiom,
    ! [X: nat,A5: set_nat,M: nat > option_list_char,Y2: list_char] :
      ( ~ ( member_nat @ X @ A5 )
     => ( ( image_570131288342041480t_char @ ( fun_up4009399622604172288t_char @ M @ X @ ( some_list_char @ Y2 ) ) @ A5 )
        = ( image_570131288342041480t_char @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_553_option_Osimps_I14_J,axiom,
    ( ( set_option_list_char2 @ none_list_char )
    = bot_bo8503570744482963627t_char ) ).

% option.simps(14)
thf(fact_554_option_Osimps_I14_J,axiom,
    ( ( set_op1770538635792728844on_val @ none_P1334921381875262201on_val )
    = bot_bo5671083314777306084on_val ) ).

% option.simps(14)
thf(fact_555_option_Osimps_I14_J,axiom,
    ( ( set_op5162993263733338108_state @ none_option_state )
    = bot_bo710180891245420500_state ) ).

% option.simps(14)
thf(fact_556_option_Osimps_I14_J,axiom,
    ( ( set_op911010586042427349on_val @ none_option_val )
    = bot_bo5906790151302476563on_val ) ).

% option.simps(14)
thf(fact_557_option_Osimps_I14_J,axiom,
    ( ( set_op9004752959087400718on_val @ none_P8728355543607141243on_val )
    = bot_bo6722054719108133734on_val ) ).

% option.simps(14)
thf(fact_558_option_Osimps_I14_J,axiom,
    ( ( set_op7440730737645789856t_char @ none_P5486107665612286067t_char )
    = bot_bo1414094081888755934t_char ) ).

% option.simps(14)
thf(fact_559_option_Osimps_I14_J,axiom,
    ( ( set_option_state2 @ none_state )
    = bot_bot_set_state ) ).

% option.simps(14)
thf(fact_560_option_Osimps_I14_J,axiom,
    ( ( set_option_val2 @ none_val )
    = bot_bot_set_val ) ).

% option.simps(14)
thf(fact_561_dom__eq__empty__conv,axiom,
    ! [F: val > option_state] :
      ( ( ( dom_val_state @ F )
        = bot_bot_set_val )
      = ( F
        = ( ^ [X3: val] : none_state ) ) ) ).

% dom_eq_empty_conv
thf(fact_562_dom__eq__empty__conv,axiom,
    ! [F: val > option_val] :
      ( ( ( dom_val_val @ F )
        = bot_bot_set_val )
      = ( F
        = ( ^ [X3: val] : none_val ) ) ) ).

% dom_eq_empty_conv
thf(fact_563_dom__eq__empty__conv,axiom,
    ! [F: nat > option_list_char] :
      ( ( ( dom_nat_list_char @ F )
        = bot_bot_set_nat )
      = ( F
        = ( ^ [X3: nat] : none_list_char ) ) ) ).

% dom_eq_empty_conv
thf(fact_564_dom__eq__empty__conv,axiom,
    ! [F: option_state > option_state] :
      ( ( ( dom_op8569336450220619928_state @ F )
        = bot_bo710180891245420500_state )
      = ( F
        = ( ^ [X3: option_state] : none_state ) ) ) ).

% dom_eq_empty_conv
thf(fact_565_dom__eq__empty__conv,axiom,
    ! [F: option_state > option_val] :
      ( ( ( dom_option_state_val @ F )
        = bot_bo710180891245420500_state )
      = ( F
        = ( ^ [X3: option_state] : none_val ) ) ) ).

% dom_eq_empty_conv
thf(fact_566_dom__eq__empty__conv,axiom,
    ! [F: option_val > option_state] :
      ( ( ( dom_option_val_state @ F )
        = bot_bo5906790151302476563on_val )
      = ( F
        = ( ^ [X3: option_val] : none_state ) ) ) ).

% dom_eq_empty_conv
thf(fact_567_dom__eq__empty__conv,axiom,
    ! [F: option_val > option_val] :
      ( ( ( dom_option_val_val @ F )
        = bot_bo5906790151302476563on_val )
      = ( F
        = ( ^ [X3: option_val] : none_val ) ) ) ).

% dom_eq_empty_conv
thf(fact_568_dom__eq__empty__conv,axiom,
    ! [F: val > option_list_char] :
      ( ( ( dom_val_list_char @ F )
        = bot_bot_set_val )
      = ( F
        = ( ^ [X3: val] : none_list_char ) ) ) ).

% dom_eq_empty_conv
thf(fact_569_dom__eq__empty__conv,axiom,
    ! [F: option_state > option_list_char] :
      ( ( ( dom_op2927896937727732287t_char @ F )
        = bot_bo710180891245420500_state )
      = ( F
        = ( ^ [X3: option_state] : none_list_char ) ) ) ).

% dom_eq_empty_conv
thf(fact_570_dom__eq__empty__conv,axiom,
    ! [F: option_val > option_list_char] :
      ( ( ( dom_op1123738440007651926t_char @ F )
        = bot_bo5906790151302476563on_val )
      = ( F
        = ( ^ [X3: option_val] : none_list_char ) ) ) ).

% dom_eq_empty_conv
thf(fact_571_update__dm__same,axiom,
    ! [Dm: produc1457211279475724562t_char > $o,Pi: produc1457211279475724562t_char > prat] :
      ( ( update5099441844846592839t_char @ Dm @ Pi @ Pi )
      = Dm ) ).

% update_dm_same
thf(fact_572_domI,axiom,
    ! [M: produc9003781588162623004on_val > option_state,A2: produc9003781588162623004on_val,B2: state] :
      ( ( ( M @ A2 )
        = ( some_state @ B2 ) )
     => ( member2879030624002546611on_val @ A2 @ ( dom_Pr4448331044451638570_state @ M ) ) ) ).

% domI
thf(fact_573_domI,axiom,
    ! [M: produc9003781588162623004on_val > option_val,A2: produc9003781588162623004on_val,B2: val] :
      ( ( ( M @ A2 )
        = ( some_val @ B2 ) )
     => ( member2879030624002546611on_val @ A2 @ ( dom_Pr7381289304162206737al_val @ M ) ) ) ).

% domI
thf(fact_574_domI,axiom,
    ! [M: val > option_state,A2: val,B2: state] :
      ( ( ( M @ A2 )
        = ( some_state @ B2 ) )
     => ( member_val @ A2 @ ( dom_val_state @ M ) ) ) ).

% domI
thf(fact_575_domI,axiom,
    ! [M: nat > option_state,A2: nat,B2: state] :
      ( ( ( M @ A2 )
        = ( some_state @ B2 ) )
     => ( member_nat @ A2 @ ( dom_nat_state @ M ) ) ) ).

% domI
thf(fact_576_domI,axiom,
    ! [M: val > option_val,A2: val,B2: val] :
      ( ( ( M @ A2 )
        = ( some_val @ B2 ) )
     => ( member_val @ A2 @ ( dom_val_val @ M ) ) ) ).

% domI
thf(fact_577_domI,axiom,
    ! [M: nat > option_val,A2: nat,B2: val] :
      ( ( ( M @ A2 )
        = ( some_val @ B2 ) )
     => ( member_nat @ A2 @ ( dom_nat_val @ M ) ) ) ).

% domI
thf(fact_578_domI,axiom,
    ! [M: option_val > option_state,A2: option_val,B2: state] :
      ( ( ( M @ A2 )
        = ( some_state @ B2 ) )
     => ( member_option_val @ A2 @ ( dom_option_val_state @ M ) ) ) ).

% domI
thf(fact_579_domI,axiom,
    ! [M: option_val > option_val,A2: option_val,B2: val] :
      ( ( ( M @ A2 )
        = ( some_val @ B2 ) )
     => ( member_option_val @ A2 @ ( dom_option_val_val @ M ) ) ) ).

% domI
thf(fact_580_domI,axiom,
    ! [M: val > option_list_char,A2: val,B2: list_char] :
      ( ( ( M @ A2 )
        = ( some_list_char @ B2 ) )
     => ( member_val @ A2 @ ( dom_val_list_char @ M ) ) ) ).

% domI
thf(fact_581_domI,axiom,
    ! [M: nat > option_list_char,A2: nat,B2: list_char] :
      ( ( ( M @ A2 )
        = ( some_list_char @ B2 ) )
     => ( member_nat @ A2 @ ( dom_nat_list_char @ M ) ) ) ).

% domI
thf(fact_582_domD,axiom,
    ! [A2: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_state] :
      ( ( member2879030624002546611on_val @ A2 @ ( dom_Pr4448331044451638570_state @ M ) )
     => ? [B4: state] :
          ( ( M @ A2 )
          = ( some_state @ B4 ) ) ) ).

% domD
thf(fact_583_domD,axiom,
    ! [A2: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_val] :
      ( ( member2879030624002546611on_val @ A2 @ ( dom_Pr7381289304162206737al_val @ M ) )
     => ? [B4: val] :
          ( ( M @ A2 )
          = ( some_val @ B4 ) ) ) ).

% domD
thf(fact_584_domD,axiom,
    ! [A2: val,M: val > option_state] :
      ( ( member_val @ A2 @ ( dom_val_state @ M ) )
     => ? [B4: state] :
          ( ( M @ A2 )
          = ( some_state @ B4 ) ) ) ).

% domD
thf(fact_585_domD,axiom,
    ! [A2: nat,M: nat > option_state] :
      ( ( member_nat @ A2 @ ( dom_nat_state @ M ) )
     => ? [B4: state] :
          ( ( M @ A2 )
          = ( some_state @ B4 ) ) ) ).

% domD
thf(fact_586_domD,axiom,
    ! [A2: val,M: val > option_val] :
      ( ( member_val @ A2 @ ( dom_val_val @ M ) )
     => ? [B4: val] :
          ( ( M @ A2 )
          = ( some_val @ B4 ) ) ) ).

% domD
thf(fact_587_domD,axiom,
    ! [A2: nat,M: nat > option_val] :
      ( ( member_nat @ A2 @ ( dom_nat_val @ M ) )
     => ? [B4: val] :
          ( ( M @ A2 )
          = ( some_val @ B4 ) ) ) ).

% domD
thf(fact_588_domD,axiom,
    ! [A2: option_val,M: option_val > option_state] :
      ( ( member_option_val @ A2 @ ( dom_option_val_state @ M ) )
     => ? [B4: state] :
          ( ( M @ A2 )
          = ( some_state @ B4 ) ) ) ).

% domD
thf(fact_589_domD,axiom,
    ! [A2: option_val,M: option_val > option_val] :
      ( ( member_option_val @ A2 @ ( dom_option_val_val @ M ) )
     => ? [B4: val] :
          ( ( M @ A2 )
          = ( some_val @ B4 ) ) ) ).

% domD
thf(fact_590_domD,axiom,
    ! [A2: val,M: val > option_list_char] :
      ( ( member_val @ A2 @ ( dom_val_list_char @ M ) )
     => ? [B4: list_char] :
          ( ( M @ A2 )
          = ( some_list_char @ B4 ) ) ) ).

% domD
thf(fact_591_domD,axiom,
    ! [A2: nat,M: nat > option_list_char] :
      ( ( member_nat @ A2 @ ( dom_nat_list_char @ M ) )
     => ? [B4: list_char] :
          ( ( M @ A2 )
          = ( some_list_char @ B4 ) ) ) ).

% domD
thf(fact_592_domIff,axiom,
    ! [A2: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_state] :
      ( ( member2879030624002546611on_val @ A2 @ ( dom_Pr4448331044451638570_state @ M ) )
      = ( ( M @ A2 )
       != none_state ) ) ).

% domIff
thf(fact_593_domIff,axiom,
    ! [A2: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_val] :
      ( ( member2879030624002546611on_val @ A2 @ ( dom_Pr7381289304162206737al_val @ M ) )
      = ( ( M @ A2 )
       != none_val ) ) ).

% domIff
thf(fact_594_domIff,axiom,
    ! [A2: val,M: val > option_state] :
      ( ( member_val @ A2 @ ( dom_val_state @ M ) )
      = ( ( M @ A2 )
       != none_state ) ) ).

% domIff
thf(fact_595_domIff,axiom,
    ! [A2: nat,M: nat > option_state] :
      ( ( member_nat @ A2 @ ( dom_nat_state @ M ) )
      = ( ( M @ A2 )
       != none_state ) ) ).

% domIff
thf(fact_596_domIff,axiom,
    ! [A2: val,M: val > option_val] :
      ( ( member_val @ A2 @ ( dom_val_val @ M ) )
      = ( ( M @ A2 )
       != none_val ) ) ).

% domIff
thf(fact_597_domIff,axiom,
    ! [A2: nat,M: nat > option_val] :
      ( ( member_nat @ A2 @ ( dom_nat_val @ M ) )
      = ( ( M @ A2 )
       != none_val ) ) ).

% domIff
thf(fact_598_domIff,axiom,
    ! [A2: option_val,M: option_val > option_state] :
      ( ( member_option_val @ A2 @ ( dom_option_val_state @ M ) )
      = ( ( M @ A2 )
       != none_state ) ) ).

% domIff
thf(fact_599_domIff,axiom,
    ! [A2: option_val,M: option_val > option_val] :
      ( ( member_option_val @ A2 @ ( dom_option_val_val @ M ) )
      = ( ( M @ A2 )
       != none_val ) ) ).

% domIff
thf(fact_600_domIff,axiom,
    ! [A2: val,M: val > option_list_char] :
      ( ( member_val @ A2 @ ( dom_val_list_char @ M ) )
      = ( ( M @ A2 )
       != none_list_char ) ) ).

% domIff
thf(fact_601_domIff,axiom,
    ! [A2: nat,M: nat > option_list_char] :
      ( ( member_nat @ A2 @ ( dom_nat_list_char @ M ) )
      = ( ( M @ A2 )
       != none_list_char ) ) ).

% domIff
thf(fact_602_map__add__dom__app__simps_I1_J,axiom,
    ! [M: produc9003781588162623004on_val,L2: produc9003781588162623004on_val > option8887860577033306220on_val,L1: produc9003781588162623004on_val > option8887860577033306220on_val] :
      ( ( member2879030624002546611on_val @ M @ ( dom_Pr2742230247756046988on_val @ L2 ) )
     => ( ( map_ad6375351378680859759on_val @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(1)
thf(fact_603_map__add__dom__app__simps_I1_J,axiom,
    ! [M: nat,L2: nat > option_list_char,L1: nat > option_list_char] :
      ( ( member_nat @ M @ ( dom_nat_list_char @ L2 ) )
     => ( ( map_ad208561015412637672t_char @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(1)
thf(fact_604_map__add__dom__app__simps_I1_J,axiom,
    ! [M: produc1457211279475724562t_char > prat,L2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,L1: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ( member2336342582916103932r_prat @ M @ ( dom_Pr4152820065153570843on_val @ L2 ) )
     => ( ( map_ad2898753242718228216on_val @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(1)
thf(fact_605_map__add__dom__app__simps_I1_J,axiom,
    ! [M: produc9003781588162623004on_val,L2: produc9003781588162623004on_val > option_val,L1: produc9003781588162623004on_val > option_val] :
      ( ( member2879030624002546611on_val @ M @ ( dom_Pr7381289304162206737al_val @ L2 ) )
     => ( ( map_ad5466549115852757998al_val @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(1)
thf(fact_606_map__add__dom__app__simps_I1_J,axiom,
    ! [M: produc9003781588162623004on_val,L2: produc9003781588162623004on_val > option_state,L1: produc9003781588162623004on_val > option_state] :
      ( ( member2879030624002546611on_val @ M @ ( dom_Pr4448331044451638570_state @ L2 ) )
     => ( ( map_ad2629041965313307917_state @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(1)
thf(fact_607_map__add__dom__app__simps_I1_J,axiom,
    ! [M: produc1457211279475724562t_char,L2: produc1457211279475724562t_char > option_val,L1: produc1457211279475724562t_char > option_val] :
      ( ( member484235747325421115t_char @ M @ ( dom_Pr8989479155164304065ar_val @ L2 ) )
     => ( ( map_ad2908576761495157028ar_val @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(1)
thf(fact_608_map__add__dom__app__simps_I2_J,axiom,
    ! [M: produc9003781588162623004on_val,L1: produc9003781588162623004on_val > option8887860577033306220on_val,L2: produc9003781588162623004on_val > option8887860577033306220on_val] :
      ( ~ ( member2879030624002546611on_val @ M @ ( dom_Pr2742230247756046988on_val @ L1 ) )
     => ( ( map_ad6375351378680859759on_val @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(2)
thf(fact_609_map__add__dom__app__simps_I2_J,axiom,
    ! [M: nat,L1: nat > option_list_char,L2: nat > option_list_char] :
      ( ~ ( member_nat @ M @ ( dom_nat_list_char @ L1 ) )
     => ( ( map_ad208561015412637672t_char @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(2)
thf(fact_610_map__add__dom__app__simps_I2_J,axiom,
    ! [M: produc1457211279475724562t_char > prat,L1: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,L2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ~ ( member2336342582916103932r_prat @ M @ ( dom_Pr4152820065153570843on_val @ L1 ) )
     => ( ( map_ad2898753242718228216on_val @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(2)
thf(fact_611_map__add__dom__app__simps_I2_J,axiom,
    ! [M: produc9003781588162623004on_val,L1: produc9003781588162623004on_val > option_val,L2: produc9003781588162623004on_val > option_val] :
      ( ~ ( member2879030624002546611on_val @ M @ ( dom_Pr7381289304162206737al_val @ L1 ) )
     => ( ( map_ad5466549115852757998al_val @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(2)
thf(fact_612_map__add__dom__app__simps_I2_J,axiom,
    ! [M: produc9003781588162623004on_val,L1: produc9003781588162623004on_val > option_state,L2: produc9003781588162623004on_val > option_state] :
      ( ~ ( member2879030624002546611on_val @ M @ ( dom_Pr4448331044451638570_state @ L1 ) )
     => ( ( map_ad2629041965313307917_state @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(2)
thf(fact_613_map__add__dom__app__simps_I2_J,axiom,
    ! [M: produc1457211279475724562t_char,L1: produc1457211279475724562t_char > option_val,L2: produc1457211279475724562t_char > option_val] :
      ( ~ ( member484235747325421115t_char @ M @ ( dom_Pr8989479155164304065ar_val @ L1 ) )
     => ( ( map_ad2908576761495157028ar_val @ L1 @ L2 @ M )
        = ( L2 @ M ) ) ) ).

% map_add_dom_app_simps(2)
thf(fact_614_map__add__dom__app__simps_I3_J,axiom,
    ! [M: produc9003781588162623004on_val,L2: produc9003781588162623004on_val > option8887860577033306220on_val,L1: produc9003781588162623004on_val > option8887860577033306220on_val] :
      ( ~ ( member2879030624002546611on_val @ M @ ( dom_Pr2742230247756046988on_val @ L2 ) )
     => ( ( map_ad6375351378680859759on_val @ L1 @ L2 @ M )
        = ( L1 @ M ) ) ) ).

% map_add_dom_app_simps(3)
thf(fact_615_map__add__dom__app__simps_I3_J,axiom,
    ! [M: nat,L2: nat > option_list_char,L1: nat > option_list_char] :
      ( ~ ( member_nat @ M @ ( dom_nat_list_char @ L2 ) )
     => ( ( map_ad208561015412637672t_char @ L1 @ L2 @ M )
        = ( L1 @ M ) ) ) ).

% map_add_dom_app_simps(3)
thf(fact_616_map__add__dom__app__simps_I3_J,axiom,
    ! [M: produc1457211279475724562t_char > prat,L2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,L1: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ~ ( member2336342582916103932r_prat @ M @ ( dom_Pr4152820065153570843on_val @ L2 ) )
     => ( ( map_ad2898753242718228216on_val @ L1 @ L2 @ M )
        = ( L1 @ M ) ) ) ).

% map_add_dom_app_simps(3)
thf(fact_617_map__add__dom__app__simps_I3_J,axiom,
    ! [M: produc9003781588162623004on_val,L2: produc9003781588162623004on_val > option_val,L1: produc9003781588162623004on_val > option_val] :
      ( ~ ( member2879030624002546611on_val @ M @ ( dom_Pr7381289304162206737al_val @ L2 ) )
     => ( ( map_ad5466549115852757998al_val @ L1 @ L2 @ M )
        = ( L1 @ M ) ) ) ).

% map_add_dom_app_simps(3)
thf(fact_618_map__add__dom__app__simps_I3_J,axiom,
    ! [M: produc9003781588162623004on_val,L2: produc9003781588162623004on_val > option_state,L1: produc9003781588162623004on_val > option_state] :
      ( ~ ( member2879030624002546611on_val @ M @ ( dom_Pr4448331044451638570_state @ L2 ) )
     => ( ( map_ad2629041965313307917_state @ L1 @ L2 @ M )
        = ( L1 @ M ) ) ) ).

% map_add_dom_app_simps(3)
thf(fact_619_map__add__dom__app__simps_I3_J,axiom,
    ! [M: produc1457211279475724562t_char,L2: produc1457211279475724562t_char > option_val,L1: produc1457211279475724562t_char > option_val] :
      ( ~ ( member484235747325421115t_char @ M @ ( dom_Pr8989479155164304065ar_val @ L2 ) )
     => ( ( map_ad2908576761495157028ar_val @ L1 @ L2 @ M )
        = ( L1 @ M ) ) ) ).

% map_add_dom_app_simps(3)
thf(fact_620_map__le__def,axiom,
    ( map_le2714403320317326333_state
    = ( ^ [M_1: produc9003781588162623004on_val > option_state,M_2: produc9003781588162623004on_val > option_state] :
        ! [X3: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X3 @ ( dom_Pr4448331044451638570_state @ M_1 ) )
         => ( ( M_1 @ X3 )
            = ( M_2 @ X3 ) ) ) ) ) ).

% map_le_def
thf(fact_621_map__le__def,axiom,
    ( map_le1786601613863086943on_val
    = ( ^ [M_1: produc9003781588162623004on_val > option8887860577033306220on_val,M_2: produc9003781588162623004on_val > option8887860577033306220on_val] :
        ! [X3: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X3 @ ( dom_Pr2742230247756046988on_val @ M_1 ) )
         => ( ( M_1 @ X3 )
            = ( M_2 @ X3 ) ) ) ) ) ).

% map_le_def
thf(fact_622_map__le__def,axiom,
    ( map_le662008219874789630al_val
    = ( ^ [M_1: produc9003781588162623004on_val > option_val,M_2: produc9003781588162623004on_val > option_val] :
        ! [X3: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X3 @ ( dom_Pr7381289304162206737al_val @ M_1 ) )
         => ( ( M_1 @ X3 )
            = ( M_2 @ X3 ) ) ) ) ) ).

% map_le_def
thf(fact_623_map__le__def,axiom,
    ( map_le_nat_list_char
    = ( ^ [M_1: nat > option_list_char,M_2: nat > option_list_char] :
        ! [X3: nat] :
          ( ( member_nat @ X3 @ ( dom_nat_list_char @ M_1 ) )
         => ( ( M_1 @ X3 )
            = ( M_2 @ X3 ) ) ) ) ) ).

% map_le_def
thf(fact_624_map__le__def,axiom,
    ( map_le7591542393800649736on_val
    = ( ^ [M_1: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,M_2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
        ! [X3: produc1457211279475724562t_char > prat] :
          ( ( member2336342582916103932r_prat @ X3 @ ( dom_Pr4152820065153570843on_val @ M_1 ) )
         => ( ( M_1 @ X3 )
            = ( M_2 @ X3 ) ) ) ) ) ).

% map_le_def
thf(fact_625_map__le__def,axiom,
    ( map_le3432596473071271956ar_val
    = ( ^ [M_1: produc1457211279475724562t_char > option_val,M_2: produc1457211279475724562t_char > option_val] :
        ! [X3: produc1457211279475724562t_char] :
          ( ( member484235747325421115t_char @ X3 @ ( dom_Pr8989479155164304065ar_val @ M_1 ) )
         => ( ( M_1 @ X3 )
            = ( M_2 @ X3 ) ) ) ) ) ).

% map_le_def
thf(fact_626_None__notin__image__Some,axiom,
    ! [A5: set_Pr7649655576376376530on_val] :
      ~ ( member4602090469187516291on_val @ none_P8728355543607141243on_val @ ( image_4416128703135814415on_val @ some_P2581650809551911671on_val @ A5 ) ) ).

% None_notin_image_Some
thf(fact_627_None__notin__image__Some,axiom,
    ! [A5: set_list_char] :
      ~ ( member873824481883127368t_char @ none_list_char @ ( image_4379178946295307545t_char @ some_list_char @ A5 ) ) ).

% None_notin_image_Some
thf(fact_628_None__notin__image__Some,axiom,
    ! [A5: set_Pr1004501353197068112on_val] :
      ~ ( member7216203038034776961on_val @ none_P1334921381875262201on_val @ ( image_5626594990718149899on_val @ some_P7669353234731512949on_val @ A5 ) ) ).

% None_notin_image_Some
thf(fact_629_None__notin__image__Some,axiom,
    ! [A5: set_state] :
      ~ ( member_option_state @ none_state @ ( image_6076465424260689483_state @ some_state @ A5 ) ) ).

% None_notin_image_Some
thf(fact_630_None__notin__image__Some,axiom,
    ! [A5: set_val] :
      ~ ( member_option_val @ none_val @ ( image_val_option_val @ some_val @ A5 ) ) ).

% None_notin_image_Some
thf(fact_631_mult__distr__masks,axiom,
    ! [A2: prat,B2: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( multiply_mask @ A2 @ ( add_ma6586698345353345811t_char @ B2 @ C ) )
      = ( add_ma6586698345353345811t_char @ ( multiply_mask @ A2 @ B2 ) @ ( multiply_mask @ A2 @ C ) ) ) ).

% mult_distr_masks
thf(fact_632_add__acc__uni__mask,axiom,
    ( add_ac6043276672051819257t_char
    = ( ^ [Pi4: produc1457211279475724562t_char > prat,Hl2: produc1457211279475724562t_char,P5: prat] : ( add_ma6586698345353345811t_char @ Pi4 @ ( uni_ma6578582744724537101t_char @ Hl2 @ P5 ) ) ) ) ).

% add_acc_uni_mask
thf(fact_633_these__image__Some__eq,axiom,
    ! [A5: set_list_char] :
      ( ( these_list_char @ ( image_4379178946295307545t_char @ some_list_char @ A5 ) )
      = A5 ) ).

% these_image_Some_eq
thf(fact_634_these__image__Some__eq,axiom,
    ! [A5: set_Pr1004501353197068112on_val] :
      ( ( these_602426935119867933on_val @ ( image_5626594990718149899on_val @ some_P7669353234731512949on_val @ A5 ) )
      = A5 ) ).

% these_image_Some_eq
thf(fact_635_these__image__Some__eq,axiom,
    ! [A5: set_state] :
      ( ( these_state @ ( image_6076465424260689483_state @ some_state @ A5 ) )
      = A5 ) ).

% these_image_Some_eq
thf(fact_636_these__image__Some__eq,axiom,
    ! [A5: set_val] :
      ( ( these_val @ ( image_val_option_val @ some_val @ A5 ) )
      = A5 ) ).

% these_image_Some_eq
thf(fact_637_notin__range__Some,axiom,
    ! [X: option_state] :
      ( ( ~ ( member_option_state @ X @ ( image_6076465424260689483_state @ some_state @ top_top_set_state ) ) )
      = ( X = none_state ) ) ).

% notin_range_Some
thf(fact_638_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_639_map__add__comm,axiom,
    ! [M1: produc1457211279475724562t_char > option_val,M2: produc1457211279475724562t_char > option_val] :
      ( ( ( inf_in3544766959038609504t_char @ ( dom_Pr8989479155164304065ar_val @ M1 ) @ ( dom_Pr8989479155164304065ar_val @ M2 ) )
        = bot_bo1414094081888755934t_char )
     => ( ( map_ad2908576761495157028ar_val @ M1 @ M2 )
        = ( map_ad2908576761495157028ar_val @ M2 @ M1 ) ) ) ).

% map_add_comm
thf(fact_640_option_Osimps_I15_J,axiom,
    ! [X22: state] :
      ( ( set_option_state2 @ ( some_state @ X22 ) )
      = ( insert_state @ X22 @ bot_bot_set_state ) ) ).

% option.simps(15)
thf(fact_641_option_Osimps_I15_J,axiom,
    ! [X22: val] :
      ( ( set_option_val2 @ ( some_val @ X22 ) )
      = ( insert_val @ X22 @ bot_bot_set_val ) ) ).

% option.simps(15)
thf(fact_642_greater__mask__uniI,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,Hl3: produc1457211279475724562t_char,R2: prat] :
      ( ( pgte @ ( Pi @ Hl3 ) @ R2 )
     => ( greate7680731506090375811t_char @ Pi @ ( uni_ma6578582744724537101t_char @ Hl3 @ R2 ) ) ) ).

% greater_mask_uniI
thf(fact_643_restrict__out,axiom,
    ! [X: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,M: produc9003781588162623004on_val > option_state] :
      ( ~ ( member2879030624002546611on_val @ X @ A5 )
     => ( ( restri5336766904122854152_state @ M @ A5 @ X )
        = none_state ) ) ).

% restrict_out
thf(fact_644_restrict__out,axiom,
    ! [X: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,M: produc9003781588162623004on_val > option_val] :
      ( ~ ( member2879030624002546611on_val @ X @ A5 )
     => ( ( restri5251746167140823987al_val @ M @ A5 @ X )
        = none_val ) ) ).

% restrict_out
thf(fact_645_these__insert__None,axiom,
    ! [A5: set_option_state] :
      ( ( these_state @ ( insert_option_state @ none_state @ A5 ) )
      = ( these_state @ A5 ) ) ).

% these_insert_None
thf(fact_646_these__insert__None,axiom,
    ! [A5: set_option_val] :
      ( ( these_val @ ( insert_option_val @ none_val @ A5 ) )
      = ( these_val @ A5 ) ) ).

% these_insert_None
thf(fact_647_these__insert__Some,axiom,
    ! [X: state,A5: set_option_state] :
      ( ( these_state @ ( insert_option_state @ ( some_state @ X ) @ A5 ) )
      = ( insert_state @ X @ ( these_state @ A5 ) ) ) ).

% these_insert_Some
thf(fact_648_these__insert__Some,axiom,
    ! [X: val,A5: set_option_val] :
      ( ( these_val @ ( insert_option_val @ ( some_val @ X ) @ A5 ) )
      = ( insert_val @ X @ ( these_val @ A5 ) ) ) ).

% these_insert_Some
thf(fact_649_UNIV__option__conv,axiom,
    ( top_to7666338855062656496_state
    = ( insert_option_state @ none_state @ ( image_6076465424260689483_state @ some_state @ top_top_set_state ) ) ) ).

% UNIV_option_conv
thf(fact_650_UNIV__option__conv,axiom,
    ( top_to853123400021307383on_val
    = ( insert_option_val @ none_val @ ( image_val_option_val @ some_val @ top_top_set_val ) ) ) ).

% UNIV_option_conv
thf(fact_651_these__not__empty__eq,axiom,
    ! [B5: set_option_state] :
      ( ( ( these_state @ B5 )
       != bot_bot_set_state )
      = ( ( B5 != bot_bo710180891245420500_state )
        & ( B5
         != ( insert_option_state @ none_state @ bot_bo710180891245420500_state ) ) ) ) ).

% these_not_empty_eq
thf(fact_652_these__not__empty__eq,axiom,
    ! [B5: set_option_val] :
      ( ( ( these_val @ B5 )
       != bot_bot_set_val )
      = ( ( B5 != bot_bo5906790151302476563on_val )
        & ( B5
         != ( insert_option_val @ none_val @ bot_bo5906790151302476563on_val ) ) ) ) ).

% these_not_empty_eq
thf(fact_653_these__empty__eq,axiom,
    ! [B5: set_option_state] :
      ( ( ( these_state @ B5 )
        = bot_bot_set_state )
      = ( ( B5 = bot_bo710180891245420500_state )
        | ( B5
          = ( insert_option_state @ none_state @ bot_bo710180891245420500_state ) ) ) ) ).

% these_empty_eq
thf(fact_654_these__empty__eq,axiom,
    ! [B5: set_option_val] :
      ( ( ( these_val @ B5 )
        = bot_bot_set_val )
      = ( ( B5 = bot_bo5906790151302476563on_val )
        | ( B5
          = ( insert_option_val @ none_val @ bot_bo5906790151302476563on_val ) ) ) ) ).

% these_empty_eq
thf(fact_655_restrict__map__def,axiom,
    ( restri5336766904122854152_state
    = ( ^ [M4: produc9003781588162623004on_val > option_state,A6: set_Pr7649655576376376530on_val,X3: produc9003781588162623004on_val] : ( if_option_state @ ( member2879030624002546611on_val @ X3 @ A6 ) @ ( M4 @ X3 ) @ none_state ) ) ) ).

% restrict_map_def
thf(fact_656_restrict__map__def,axiom,
    ( restri5251746167140823987al_val
    = ( ^ [M4: produc9003781588162623004on_val > option_val,A6: set_Pr7649655576376376530on_val,X3: produc9003781588162623004on_val] : ( if_option_val @ ( member2879030624002546611on_val @ X3 @ A6 ) @ ( M4 @ X3 ) @ none_val ) ) ) ).

% restrict_map_def
thf(fact_657_greater__mask__equiv__def,axiom,
    ( greate7680731506090375811t_char
    = ( ^ [Pi3: produc1457211279475724562t_char > prat,Pi4: produc1457211279475724562t_char > prat] :
        ! [Hl2: produc1457211279475724562t_char] : ( pgte @ ( Pi3 @ Hl2 ) @ ( Pi4 @ Hl2 ) ) ) ) ).

% greater_mask_equiv_def
thf(fact_658_greater__maskI,axiom,
    ! [Pi2: produc1457211279475724562t_char > prat,Pi: produc1457211279475724562t_char > prat] :
      ( ! [Hl: produc1457211279475724562t_char] : ( pgte @ ( Pi2 @ Hl ) @ ( Pi @ Hl ) )
     => ( greate7680731506090375811t_char @ Pi2 @ Pi ) ) ).

% greater_maskI
thf(fact_659_in__these__eq,axiom,
    ! [X: produc9003781588162623004on_val,A5: set_op6240181410663953058on_val] :
      ( ( member2879030624002546611on_val @ X @ ( these_3919539662624406175on_val @ A5 ) )
      = ( member4602090469187516291on_val @ ( some_P2581650809551911671on_val @ X ) @ A5 ) ) ).

% in_these_eq
thf(fact_660_in__these__eq,axiom,
    ! [X: state,A5: set_option_state] :
      ( ( member_state @ X @ ( these_state @ A5 ) )
      = ( member_option_state @ ( some_state @ X ) @ A5 ) ) ).

% in_these_eq
thf(fact_661_in__these__eq,axiom,
    ! [X: val,A5: set_option_val] :
      ( ( member_val @ X @ ( these_val @ A5 ) )
      = ( member_option_val @ ( some_val @ X ) @ A5 ) ) ).

% in_these_eq
thf(fact_662_greater__mask__uni__equiv,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,Hl3: produc1457211279475724562t_char,R2: prat] :
      ( ( greate7680731506090375811t_char @ Pi @ ( uni_ma6578582744724537101t_char @ Hl3 @ R2 ) )
      = ( pgte @ ( Pi @ Hl3 ) @ R2 ) ) ).

% greater_mask_uni_equiv
thf(fact_663_fun__upd__None__restrict,axiom,
    ! [X: produc9003781588162623004on_val,D2: set_Pr7649655576376376530on_val,M: produc9003781588162623004on_val > option_state] :
      ( ( ( member2879030624002546611on_val @ X @ D2 )
       => ( ( fun_up6681822530636708645_state @ ( restri5336766904122854152_state @ M @ D2 ) @ X @ none_state )
          = ( restri5336766904122854152_state @ M @ ( minus_9160195963678339755on_val @ D2 @ ( insert3030518898131756108on_val @ X @ bot_bo6722054719108133734on_val ) ) ) ) )
      & ( ~ ( member2879030624002546611on_val @ X @ D2 )
       => ( ( fun_up6681822530636708645_state @ ( restri5336766904122854152_state @ M @ D2 ) @ X @ none_state )
          = ( restri5336766904122854152_state @ M @ D2 ) ) ) ) ).

% fun_upd_None_restrict
thf(fact_664_fun__upd__None__restrict,axiom,
    ! [X: produc9003781588162623004on_val,D2: set_Pr7649655576376376530on_val,M: produc9003781588162623004on_val > option_val] :
      ( ( ( member2879030624002546611on_val @ X @ D2 )
       => ( ( fun_up8559965269643824108on_val @ ( restri5251746167140823987al_val @ M @ D2 ) @ X @ none_val )
          = ( restri5251746167140823987al_val @ M @ ( minus_9160195963678339755on_val @ D2 @ ( insert3030518898131756108on_val @ X @ bot_bo6722054719108133734on_val ) ) ) ) )
      & ( ~ ( member2879030624002546611on_val @ X @ D2 )
       => ( ( fun_up8559965269643824108on_val @ ( restri5251746167140823987al_val @ M @ D2 ) @ X @ none_val )
          = ( restri5251746167140823987al_val @ M @ D2 ) ) ) ) ).

% fun_upd_None_restrict
thf(fact_665_valid__mult,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,P4: prat] :
      ( ( valid_mask @ Pi )
     => ( ( pgte @ pwrite @ P4 )
       => ( valid_mask @ ( multiply_mask @ P4 @ Pi ) ) ) ) ).

% valid_mult
thf(fact_666_mult__write__mask,axiom,
    ! [Pi: produc1457211279475724562t_char > prat] :
      ( ( multiply_mask @ pwrite @ Pi )
      = Pi ) ).

% mult_write_mask
thf(fact_667_ran__map__add,axiom,
    ! [M1: produc1457211279475724562t_char > option_val,M2: produc1457211279475724562t_char > option_val] :
      ( ( ( inf_in3544766959038609504t_char @ ( dom_Pr8989479155164304065ar_val @ M1 ) @ ( dom_Pr8989479155164304065ar_val @ M2 ) )
        = bot_bo1414094081888755934t_char )
     => ( ( ran_Pr786515303459910110ar_val @ ( map_ad2908576761495157028ar_val @ M1 @ M2 ) )
        = ( sup_sup_set_val @ ( ran_Pr786515303459910110ar_val @ M1 ) @ ( ran_Pr786515303459910110ar_val @ M2 ) ) ) ) ).

% ran_map_add
thf(fact_668_half__between__0__1,axiom,
    ( ( ppos @ half )
    & ( pgt @ pwrite @ half ) ) ).

% half_between_0_1
thf(fact_669_pdiv__smaller,axiom,
    ! [A2: prat,B2: prat] :
      ( ( pgte @ A2 @ B2 )
     => ( ( ppos @ A2 )
       => ( pgte @ pwrite @ ( pdiv @ B2 @ A2 ) ) ) ) ).

% pdiv_smaller
thf(fact_670_dom__map__add,axiom,
    ! [M: produc1457211279475724562t_char > option_val,N: produc1457211279475724562t_char > option_val] :
      ( ( dom_Pr8989479155164304065ar_val @ ( map_ad2908576761495157028ar_val @ M @ N ) )
      = ( sup_su7899656352754981958t_char @ ( dom_Pr8989479155164304065ar_val @ N ) @ ( dom_Pr8989479155164304065ar_val @ M ) ) ) ).

% dom_map_add
thf(fact_671_inj__on__map__add__dom,axiom,
    ! [M: produc1457211279475724562t_char > option_val,M5: produc1457211279475724562t_char > option_val] :
      ( ( inj_on4474484569326248358on_val @ ( map_ad2908576761495157028ar_val @ M @ M5 ) @ ( dom_Pr8989479155164304065ar_val @ M5 ) )
      = ( inj_on4474484569326248358on_val @ M5 @ ( dom_Pr8989479155164304065ar_val @ M5 ) ) ) ).

% inj_on_map_add_dom
thf(fact_672_ppos__add,axiom,
    ! [A2: prat,B2: prat] :
      ( ( ppos @ A2 )
     => ( ppos @ ( padd @ A2 @ B2 ) ) ) ).

% ppos_add
thf(fact_673_inj__Some,axiom,
    ! [A5: set_state] : ( inj_on3577428053172332983_state @ some_state @ A5 ) ).

% inj_Some
thf(fact_674_inj__Some,axiom,
    ! [A5: set_val] : ( inj_on4074814566786472055on_val @ some_val @ A5 ) ).

% inj_Some
thf(fact_675_sum__coeff,axiom,
    ! [A2: prat,B2: prat] :
      ( ( ppos @ A2 )
     => ( ( ppos @ B2 )
       => ( ( padd @ ( pdiv @ A2 @ ( padd @ A2 @ B2 ) ) @ ( pdiv @ B2 @ ( padd @ A2 @ B2 ) ) )
          = pwrite ) ) ) ).

% sum_coeff
thf(fact_676_add__masks_Oelims,axiom,
    ! [X: produc1457211279475724562t_char > prat,Xa: produc1457211279475724562t_char > prat,Xb: produc1457211279475724562t_char,Y2: prat] :
      ( ( ( add_ma6586698345353345811t_char @ X @ Xa @ Xb )
        = Y2 )
     => ( Y2
        = ( padd @ ( X @ Xb ) @ ( Xa @ Xb ) ) ) ) ).

% add_masks.elims
thf(fact_677_add__masks_Osimps,axiom,
    ( add_ma6586698345353345811t_char
    = ( ^ [Pi3: produc1457211279475724562t_char > prat,Pi4: produc1457211279475724562t_char > prat,Hl2: produc1457211279475724562t_char] : ( padd @ ( Pi3 @ Hl2 ) @ ( Pi4 @ Hl2 ) ) ) ) ).

% add_masks.simps
thf(fact_678_finite__range__Some,axiom,
    ( ( finite3180955649987104801_state @ ( image_6076465424260689483_state @ some_state @ top_top_set_state ) )
    = ( finite_finite_state @ top_top_set_state ) ) ).

% finite_range_Some
thf(fact_679_finite__range__Some,axiom,
    ( ( finite4212117559080419824on_val @ ( image_val_option_val @ some_val @ top_top_set_val ) )
    = ( finite_finite_val @ top_top_set_val ) ) ).

% finite_range_Some
thf(fact_680_inj__image__mem__iff,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val,A2: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val] :
      ( ( inj_on7948954794846770859on_val @ F @ top_to1561438921946393474on_val )
     => ( ( member2879030624002546611on_val @ ( F @ A2 ) @ ( image_4170889944715819327on_val @ F @ A5 ) )
        = ( member2879030624002546611on_val @ A2 @ A5 ) ) ) ).

% inj_image_mem_iff
thf(fact_681_inj__img__insertE,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,X: produc9003781588162623004on_val,B5: set_Pr7649655576376376530on_val] :
      ( ( inj_on7948954794846770859on_val @ F @ A5 )
     => ( ~ ( member2879030624002546611on_val @ X @ B5 )
       => ( ( ( insert3030518898131756108on_val @ X @ B5 )
            = ( image_4170889944715819327on_val @ F @ A5 ) )
         => ~ ! [X5: produc9003781588162623004on_val,A7: set_Pr7649655576376376530on_val] :
                ( ~ ( member2879030624002546611on_val @ X5 @ A7 )
               => ( ( A5
                    = ( insert3030518898131756108on_val @ X5 @ A7 ) )
                 => ( ( X
                      = ( F @ X5 ) )
                   => ( B5
                     != ( image_4170889944715819327on_val @ F @ A7 ) ) ) ) ) ) ) ) ).

% inj_img_insertE
thf(fact_682_mult__add__states,axiom,
    ! [A2: prat,B2: prat,Pi: produc1457211279475724562t_char > prat] :
      ( ( multiply_mask @ ( padd @ A2 @ B2 ) @ Pi )
      = ( add_ma6586698345353345811t_char @ ( multiply_mask @ A2 @ Pi ) @ ( multiply_mask @ B2 @ Pi ) ) ) ).

% mult_add_states
thf(fact_683_valid__sum_I2_J,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,Ma: prat,Mb: prat] :
      ( ( valid_mask @ A2 )
     => ( ( valid_mask @ B2 )
       => ( ( upper_bounded @ A2 @ Ma )
         => ( ( upper_bounded @ B2 @ Mb )
           => ( ( pgte @ pwrite @ ( padd @ Ma @ Mb ) )
             => ( upper_bounded @ ( add_ma6586698345353345811t_char @ A2 @ B2 ) @ ( padd @ Ma @ Mb ) ) ) ) ) ) ) ).

% valid_sum(2)
thf(fact_684_valid__sum_I1_J,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,Ma: prat,Mb: prat] :
      ( ( valid_mask @ A2 )
     => ( ( valid_mask @ B2 )
       => ( ( upper_bounded @ A2 @ Ma )
         => ( ( upper_bounded @ B2 @ Mb )
           => ( ( pgte @ pwrite @ ( padd @ Ma @ Mb ) )
             => ( valid_mask @ ( add_ma6586698345353345811t_char @ A2 @ B2 ) ) ) ) ) ) ) ).

% valid_sum(1)
thf(fact_685_graph__map__add,axiom,
    ! [M1: produc1457211279475724562t_char > option_val,M2: produc1457211279475724562t_char > option_val] :
      ( ( ( inf_in3544766959038609504t_char @ ( dom_Pr8989479155164304065ar_val @ M1 ) @ ( dom_Pr8989479155164304065ar_val @ M2 ) )
        = bot_bo1414094081888755934t_char )
     => ( ( graph_1733029056113894637ar_val @ ( map_ad2908576761495157028ar_val @ M1 @ M2 ) )
        = ( sup_su5754804325903363146ar_val @ ( graph_1733029056113894637ar_val @ M1 ) @ ( graph_1733029056113894637ar_val @ M2 ) ) ) ) ).

% graph_map_add
thf(fact_686_upper__boundedI,axiom,
    ! [P4: prat,Pi: produc1457211279475724562t_char > prat] :
      ( ! [Hl: produc1457211279475724562t_char] : ( pgte @ P4 @ ( Pi @ Hl ) )
     => ( upper_bounded @ Pi @ P4 ) ) ).

% upper_boundedI
thf(fact_687_upper__bounded__def,axiom,
    ( upper_bounded
    = ( ^ [Pi4: produc1457211279475724562t_char > prat,P5: prat] :
        ! [Hl2: produc1457211279475724562t_char] : ( pgte @ P5 @ ( Pi4 @ Hl2 ) ) ) ) ).

% upper_bounded_def
thf(fact_688_upper__bounded__bigger,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,A2: prat,B2: prat] :
      ( ( upper_bounded @ Pi @ A2 )
     => ( ( pgte @ B2 @ A2 )
       => ( upper_bounded @ Pi @ B2 ) ) ) ).

% upper_bounded_bigger
thf(fact_689_valid__multiply,axiom,
    ! [A2: produc1457211279475724562t_char > prat,Ma: prat,P4: prat] :
      ( ( valid_mask @ A2 )
     => ( ( upper_bounded @ A2 @ Ma )
       => ( ( pgte @ pwrite @ ( pmult @ Ma @ P4 ) )
         => ( valid_mask @ ( multiply_mask @ P4 @ A2 ) ) ) ) ) ).

% valid_multiply
thf(fact_690_graph__map__upd,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,K: produc1457211279475724562t_char > prat,V2: produc1457211279475724562t_char > option_val] :
      ( ( graph_1288227317702120175on_val @ ( fun_up1601731230164360576on_val @ M @ K @ ( some_P7669353234731512949on_val @ V2 ) ) )
      = ( insert3030518898131756108on_val @ ( produc74620467203698198on_val @ K @ V2 ) @ ( graph_1288227317702120175on_val @ ( fun_up1601731230164360576on_val @ M @ K @ none_P1334921381875262201on_val ) ) ) ) ).

% graph_map_upd
thf(fact_691_graph__map__upd,axiom,
    ! [M: produc9003781588162623004on_val > option8887860577033306220on_val,K: produc9003781588162623004on_val,V2: produc9003781588162623004on_val] :
      ( ( graph_6108330199704490680on_val @ ( fun_up273046073882939271on_val @ M @ K @ ( some_P2581650809551911671on_val @ V2 ) ) )
      = ( insert7062705985672971881on_val @ ( produc4958730763592889809on_val @ K @ V2 ) @ ( graph_6108330199704490680on_val @ ( fun_up273046073882939271on_val @ M @ K @ none_P8728355543607141243on_val ) ) ) ) ).

% graph_map_upd
thf(fact_692_graph__map__upd,axiom,
    ! [M: nat > option_list_char,K: nat,V2: list_char] :
      ( ( graph_nat_list_char @ ( fun_up4009399622604172288t_char @ M @ K @ ( some_list_char @ V2 ) ) )
      = ( insert3372640069787401954t_char @ ( produc120197956887798346t_char @ K @ V2 ) @ ( graph_nat_list_char @ ( fun_up4009399622604172288t_char @ M @ K @ none_list_char ) ) ) ) ).

% graph_map_upd
thf(fact_693_finite__range__map__of__map__add,axiom,
    ! [F: produc1457211279475724562t_char > option_val,L: list_P375024181684815772ar_val] :
      ( ( finite4212117559080419824on_val @ ( image_4269386950610408506on_val @ F @ top_to1250346684925019074t_char ) )
     => ( finite4212117559080419824on_val @ ( image_4269386950610408506on_val @ ( map_ad2908576761495157028ar_val @ F @ ( map_of6844234013878170066ar_val @ L ) ) @ top_to1250346684925019074t_char ) ) ) ).

% finite_range_map_of_map_add
thf(fact_694_pinv__inverts,axiom,
    ! [A2: prat,B2: prat] :
      ( ( pgte @ A2 @ B2 )
     => ( ( ppos @ B2 )
       => ( pgte @ ( pinv @ B2 ) @ ( pinv @ A2 ) ) ) ) ).

% pinv_inverts
thf(fact_695_ssubsetI,axiom,
    ! [A5: set_Pr7649655576376376530on_val,B5: set_Pr7649655576376376530on_val] :
      ( ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
          ( ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ Pi6 @ H5 ) @ A5 )
         => ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ Pi6 @ H5 ) @ B5 ) )
     => ( ord_le6900622908513426738on_val @ A5 @ B5 ) ) ).

% ssubsetI
thf(fact_696_ssubsetI,axiom,
    ! [A5: set_Pr4305388979797279737on_val,B5: set_Pr4305388979797279737on_val] :
      ( ! [Pi6: produc9003781588162623004on_val,H5: produc9003781588162623004on_val] :
          ( ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ Pi6 @ H5 ) @ A5 )
         => ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ Pi6 @ H5 ) @ B5 ) )
     => ( ord_le7224449410216889241on_val @ A5 @ B5 ) ) ).

% ssubsetI
thf(fact_697_ssubsetI,axiom,
    ! [A5: set_Pr2507339680178222706t_char,B5: set_Pr2507339680178222706t_char] :
      ( ! [Pi6: nat,H5: list_char] :
          ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ Pi6 @ H5 ) @ A5 )
         => ( member484235747325421115t_char @ ( produc120197956887798346t_char @ Pi6 @ H5 ) @ B5 ) )
     => ( ord_le6315511645215477266t_char @ A5 @ B5 ) ) ).

% ssubsetI
thf(fact_698_the__inv__into__into,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,X: produc9003781588162623004on_val,B5: set_Pr7649655576376376530on_val] :
      ( ( inj_on7948954794846770859on_val @ F @ A5 )
     => ( ( member2879030624002546611on_val @ X @ ( image_4170889944715819327on_val @ F @ A5 ) )
       => ( ( ord_le6900622908513426738on_val @ A5 @ B5 )
         => ( member2879030624002546611on_val @ ( the_in8616418995011220461on_val @ A5 @ F @ X ) @ B5 ) ) ) ) ).

% the_inv_into_into
thf(fact_699_pmult__ppos,axiom,
    ! [A2: prat,B2: prat] :
      ( ( ppos @ A2 )
     => ( ( ppos @ B2 )
       => ( ppos @ ( pmult @ A2 @ B2 ) ) ) ) ).

% pmult_ppos
thf(fact_700_pinv__pmult__ok,axiom,
    ! [P4: prat] :
      ( ( ppos @ P4 )
     => ( ( pmult @ P4 @ ( pinv @ P4 ) )
        = pwrite ) ) ).

% pinv_pmult_ok
thf(fact_701_multiply__mask__def,axiom,
    ( multiply_mask
    = ( ^ [P5: prat,Pi4: produc1457211279475724562t_char > prat,Hl2: produc1457211279475724562t_char] : ( pmult @ P5 @ ( Pi4 @ Hl2 ) ) ) ) ).

% multiply_mask_def
thf(fact_702_compatible__options_Ocases,axiom,
    ! [X: produc3142500478612311029_state] :
      ( ! [A4: state,B4: state] :
          ( X
         != ( produc9160152616361873709_state @ ( some_state @ A4 ) @ ( some_state @ B4 ) ) )
     => ( ! [Uv2: option_state] :
            ( X
           != ( produc9160152616361873709_state @ none_state @ Uv2 ) )
       => ~ ! [Uu2: option_state] :
              ( X
             != ( produc9160152616361873709_state @ Uu2 @ none_state ) ) ) ) ).

% compatible_options.cases
thf(fact_703_compatible__options_Ocases,axiom,
    ! [X: produc5122021904355189735on_val] :
      ( ! [A4: val,B4: val] :
          ( X
         != ( produc904852209897547607on_val @ ( some_val @ A4 ) @ ( some_val @ B4 ) ) )
     => ( ! [Uv2: option_val] :
            ( X
           != ( produc904852209897547607on_val @ none_val @ Uv2 ) )
       => ~ ! [Uu2: option_val] :
              ( X
             != ( produc904852209897547607on_val @ Uu2 @ none_val ) ) ) ) ).

% compatible_options.cases
thf(fact_704_inj__on__image__mem__iff,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val,B5: set_Pr7649655576376376530on_val,A2: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val] :
      ( ( inj_on7948954794846770859on_val @ F @ B5 )
     => ( ( member2879030624002546611on_val @ A2 @ B5 )
       => ( ( ord_le6900622908513426738on_val @ A5 @ B5 )
         => ( ( member2879030624002546611on_val @ ( F @ A2 ) @ ( image_4170889944715819327on_val @ F @ A5 ) )
            = ( member2879030624002546611on_val @ A2 @ A5 ) ) ) ) ) ).

% inj_on_image_mem_iff
thf(fact_705_in__graphD,axiom,
    ! [K: produc1457211279475724562t_char > prat,V2: produc1457211279475724562t_char > option_val,M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ K @ V2 ) @ ( graph_1288227317702120175on_val @ M ) )
     => ( ( M @ K )
        = ( some_P7669353234731512949on_val @ V2 ) ) ) ).

% in_graphD
thf(fact_706_in__graphD,axiom,
    ! [K: produc9003781588162623004on_val,V2: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option8887860577033306220on_val] :
      ( ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ K @ V2 ) @ ( graph_6108330199704490680on_val @ M ) )
     => ( ( M @ K )
        = ( some_P2581650809551911671on_val @ V2 ) ) ) ).

% in_graphD
thf(fact_707_in__graphD,axiom,
    ! [K: nat,V2: list_char,M: nat > option_list_char] :
      ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ V2 ) @ ( graph_nat_list_char @ M ) )
     => ( ( M @ K )
        = ( some_list_char @ V2 ) ) ) ).

% in_graphD
thf(fact_708_in__graphI,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,K: produc1457211279475724562t_char > prat,V2: produc1457211279475724562t_char > option_val] :
      ( ( ( M @ K )
        = ( some_P7669353234731512949on_val @ V2 ) )
     => ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ K @ V2 ) @ ( graph_1288227317702120175on_val @ M ) ) ) ).

% in_graphI
thf(fact_709_in__graphI,axiom,
    ! [M: produc9003781588162623004on_val > option8887860577033306220on_val,K: produc9003781588162623004on_val,V2: produc9003781588162623004on_val] :
      ( ( ( M @ K )
        = ( some_P2581650809551911671on_val @ V2 ) )
     => ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ K @ V2 ) @ ( graph_6108330199704490680on_val @ M ) ) ) ).

% in_graphI
thf(fact_710_in__graphI,axiom,
    ! [M: nat > option_list_char,K: nat,V2: list_char] :
      ( ( ( M @ K )
        = ( some_list_char @ V2 ) )
     => ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ V2 ) @ ( graph_nat_list_char @ M ) ) ) ).

% in_graphI
thf(fact_711_graph__restrictD_I1_J,axiom,
    ! [K: produc1457211279475724562t_char > prat,V2: produc1457211279475724562t_char > option_val,M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A5: set_Pr3433046674199179443r_prat] :
      ( ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ K @ V2 ) @ ( graph_1288227317702120175on_val @ ( restri7594233908965391805on_val @ M @ A5 ) ) )
     => ( member2336342582916103932r_prat @ K @ A5 ) ) ).

% graph_restrictD(1)
thf(fact_712_graph__restrictD_I1_J,axiom,
    ! [K: produc9003781588162623004on_val,V2: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option8887860577033306220on_val,A5: set_Pr7649655576376376530on_val] :
      ( ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ K @ V2 ) @ ( graph_6108330199704490680on_val @ ( restri2354629191430751338on_val @ M @ A5 ) ) )
     => ( member2879030624002546611on_val @ K @ A5 ) ) ).

% graph_restrictD(1)
thf(fact_713_graph__restrictD_I1_J,axiom,
    ! [K: nat,V2: list_char,M: nat > option_list_char,A5: set_nat] :
      ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ V2 ) @ ( graph_nat_list_char @ ( restri7497266720855523683t_char @ M @ A5 ) ) )
     => ( member_nat @ K @ A5 ) ) ).

% graph_restrictD(1)
thf(fact_714_ppos__inv,axiom,
    ! [P4: prat] :
      ( ( ppos @ P4 )
     => ( ppos @ ( pinv @ P4 ) ) ) ).

% ppos_inv
thf(fact_715_pinv__double__half,axiom,
    ! [P4: prat] :
      ( ( ppos @ P4 )
     => ( ( pmult @ half @ ( pinv @ P4 ) )
        = ( pinv @ ( padd @ P4 @ P4 ) ) ) ) ).

% pinv_double_half
thf(fact_716_pmult__pdiv__cancel,axiom,
    ! [A2: prat,X: prat] :
      ( ( ppos @ A2 )
     => ( ( pmult @ A2 @ ( pdiv @ X @ A2 ) )
        = X ) ) ).

% pmult_pdiv_cancel
thf(fact_717_upper__bounded__smaller,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,A2: prat,P4: prat] :
      ( ( upper_bounded @ Pi @ A2 )
     => ( upper_bounded @ ( multiply_mask @ P4 @ Pi ) @ ( pmult @ P4 @ A2 ) ) ) ).

% upper_bounded_smaller
thf(fact_718_graph__restrictD_I2_J,axiom,
    ! [K: produc1457211279475724562t_char > prat,V2: produc1457211279475724562t_char > option_val,M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A5: set_Pr3433046674199179443r_prat] :
      ( ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ K @ V2 ) @ ( graph_1288227317702120175on_val @ ( restri7594233908965391805on_val @ M @ A5 ) ) )
     => ( ( M @ K )
        = ( some_P7669353234731512949on_val @ V2 ) ) ) ).

% graph_restrictD(2)
thf(fact_719_graph__restrictD_I2_J,axiom,
    ! [K: produc9003781588162623004on_val,V2: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option8887860577033306220on_val,A5: set_Pr7649655576376376530on_val] :
      ( ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ K @ V2 ) @ ( graph_6108330199704490680on_val @ ( restri2354629191430751338on_val @ M @ A5 ) ) )
     => ( ( M @ K )
        = ( some_P2581650809551911671on_val @ V2 ) ) ) ).

% graph_restrictD(2)
thf(fact_720_graph__restrictD_I2_J,axiom,
    ! [K: nat,V2: list_char,M: nat > option_list_char,A5: set_nat] :
      ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ V2 ) @ ( graph_nat_list_char @ ( restri7497266720855523683t_char @ M @ A5 ) ) )
     => ( ( M @ K )
        = ( some_list_char @ V2 ) ) ) ).

% graph_restrictD(2)
thf(fact_721_add__states_Oelims,axiom,
    ! [X: produc9003781588162623004on_val,Xa: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( ( add_states @ X @ Xa )
        = Y2 )
     => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
            ( ( X
              = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
           => ! [Pi7: produc1457211279475724562t_char > prat,H6: produc1457211279475724562t_char > option_val] :
                ( ( Xa
                  = ( produc74620467203698198on_val @ Pi7 @ H6 ) )
               => ( Y2
                 != ( produc74620467203698198on_val @ ( add_ma6586698345353345811t_char @ Pi6 @ Pi7 ) @ ( map_ad2908576761495157028ar_val @ H5 @ H6 ) ) ) ) ) ) ).

% add_states.elims
thf(fact_722_add__states_Osimps,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,H: produc1457211279475724562t_char > option_val,Pi2: produc1457211279475724562t_char > prat,H2: produc1457211279475724562t_char > option_val] :
      ( ( add_states @ ( produc74620467203698198on_val @ Pi @ H ) @ ( produc74620467203698198on_val @ Pi2 @ H2 ) )
      = ( produc74620467203698198on_val @ ( add_ma6586698345353345811t_char @ Pi @ Pi2 ) @ ( map_ad2908576761495157028ar_val @ H @ H2 ) ) ) ).

% add_states.simps
thf(fact_723_valid__stateI,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,H: produc1457211279475724562t_char > option_val] :
      ( ( valid_mask @ Pi )
     => ( ! [Hl: produc1457211279475724562t_char] :
            ( ( ppos @ ( Pi @ Hl ) )
           => ( ( H @ Hl )
             != none_val ) )
       => ( valid_state @ ( produc74620467203698198on_val @ Pi @ H ) ) ) ) ).

% valid_stateI
thf(fact_724_core__def,axiom,
    ( core
    = ( ^ [Phi3: state] : ( abs_state @ ( produc74620467203698198on_val @ empty_3446695950879338768t_char @ ( get_h @ Phi3 ) ) ) ) ) ).

% core_def
thf(fact_725_get__h__m,axiom,
    ( rep_state
    = ( ^ [X3: state] : ( produc74620467203698198on_val @ ( get_m @ X3 ) @ ( get_h @ X3 ) ) ) ) ).

% get_h_m
thf(fact_726_valid__state_Osimps,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,H: produc1457211279475724562t_char > option_val] :
      ( ( valid_state @ ( produc74620467203698198on_val @ Pi @ H ) )
      = ( ( valid_mask @ Pi )
        & ( valid_heap @ Pi @ H ) ) ) ).

% valid_state.simps
thf(fact_727_valid__state_Oelims_I1_J,axiom,
    ! [X: produc9003781588162623004on_val,Y2: $o] :
      ( ( ( valid_state @ X )
        = Y2 )
     => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
            ( ( X
              = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
           => ( Y2
              = ( ~ ( ( valid_mask @ Pi6 )
                    & ( valid_heap @ Pi6 @ H5 ) ) ) ) ) ) ).

% valid_state.elims(1)
thf(fact_728_add__states_Ocases,axiom,
    ! [X: produc1317171644805857433on_val] :
      ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val,Pi7: produc1457211279475724562t_char > prat,H6: produc1457211279475724562t_char > option_val] :
          ( X
         != ( produc4958730763592889809on_val @ ( produc74620467203698198on_val @ Pi6 @ H5 ) @ ( produc74620467203698198on_val @ Pi7 @ H6 ) ) ) ).

% add_states.cases
thf(fact_729_valid__state_Ocases,axiom,
    ! [X: produc9003781588162623004on_val] :
      ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
          ( X
         != ( produc74620467203698198on_val @ Pi6 @ H5 ) ) ).

% valid_state.cases
thf(fact_730_Rep__state__inverse,axiom,
    ! [X: state] :
      ( ( abs_state @ ( rep_state @ X ) )
      = X ) ).

% Rep_state_inverse
thf(fact_731_Rep__state__inject,axiom,
    ! [X: state,Y2: state] :
      ( ( ( rep_state @ X )
        = ( rep_state @ Y2 ) )
      = ( X = Y2 ) ) ).

% Rep_state_inject
thf(fact_732_valid__state__decompose,axiom,
    ! [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat,H: produc1457211279475724562t_char > option_val] :
      ( ( valid_state @ ( produc74620467203698198on_val @ ( add_ma6586698345353345811t_char @ A2 @ B2 ) @ H ) )
     => ( valid_state @ ( produc74620467203698198on_val @ A2 @ H ) ) ) ).

% valid_state_decompose
thf(fact_733_valid__pre__unit,axiom,
    valid_state @ ( produc74620467203698198on_val @ empty_3446695950879338768t_char @ empty_7512026568161686585ar_val ) ).

% valid_pre_unit
thf(fact_734_valid__state_Oelims_I3_J,axiom,
    ! [X: produc9003781588162623004on_val] :
      ( ~ ( valid_state @ X )
     => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
            ( ( X
              = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
           => ( ( valid_mask @ Pi6 )
              & ( valid_heap @ Pi6 @ H5 ) ) ) ) ).

% valid_state.elims(3)
thf(fact_735_valid__state_Oelims_I2_J,axiom,
    ! [X: produc9003781588162623004on_val] :
      ( ( valid_state @ X )
     => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
            ( ( X
              = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
           => ~ ( ( valid_mask @ Pi6 )
                & ( valid_heap @ Pi6 @ H5 ) ) ) ) ).

% valid_state.elims(2)
thf(fact_736_unit__def,axiom,
    ( unit
    = ( abs_state @ ( produc74620467203698198on_val @ empty_3446695950879338768t_char @ empty_7512026568161686585ar_val ) ) ) ).

% unit_def
thf(fact_737_plus__def,axiom,
    ( plus
    = ( ^ [A: state,B: state] : ( if_option_state @ ( compatible @ ( rep_state @ A ) @ ( rep_state @ B ) ) @ ( some_state @ ( abs_state @ ( add_states @ ( rep_state @ A ) @ ( rep_state @ B ) ) ) ) @ none_state ) ) ) ).

% plus_def
thf(fact_738_add__states_Opelims,axiom,
    ! [X: produc9003781588162623004on_val,Xa: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( ( add_states @ X @ Xa )
        = Y2 )
     => ( ( accp_P6797916352740768290on_val @ add_states_rel @ ( produc4958730763592889809on_val @ X @ Xa ) )
       => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
              ( ( X
                = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
             => ! [Pi7: produc1457211279475724562t_char > prat,H6: produc1457211279475724562t_char > option_val] :
                  ( ( Xa
                    = ( produc74620467203698198on_val @ Pi7 @ H6 ) )
                 => ( ( Y2
                      = ( produc74620467203698198on_val @ ( add_ma6586698345353345811t_char @ Pi6 @ Pi7 ) @ ( map_ad2908576761495157028ar_val @ H5 @ H6 ) ) )
                   => ~ ( accp_P6797916352740768290on_val @ add_states_rel @ ( produc4958730763592889809on_val @ ( produc74620467203698198on_val @ Pi6 @ H5 ) @ ( produc74620467203698198on_val @ Pi7 @ H6 ) ) ) ) ) ) ) ) ).

% add_states.pelims
thf(fact_739_uni__mask_Opelims,axiom,
    ! [X: produc1457211279475724562t_char,Xa: prat,Y2: produc1457211279475724562t_char > prat] :
      ( ( ( uni_ma6578582744724537101t_char @ X @ Xa )
        = Y2 )
     => ( ( accp_P8956218777217113800r_prat @ uni_ma1788645471123007132t_char @ ( produc2920179824973321483r_prat @ X @ Xa ) )
       => ~ ( ( Y2
              = ( fun_up829850848796697765r_prat @ empty_3446695950879338768t_char @ X @ Xa ) )
           => ~ ( accp_P8956218777217113800r_prat @ uni_ma1788645471123007132t_char @ ( produc2920179824973321483r_prat @ X @ Xa ) ) ) ) ) ).

% uni_mask.pelims
thf(fact_740_map__option__eq__Some,axiom,
    ! [F: state > state,Xo: option_state,Y2: state] :
      ( ( ( map_op2726735944305651201_state @ F @ Xo )
        = ( some_state @ Y2 ) )
      = ( ? [Z3: state] :
            ( ( Xo
              = ( some_state @ Z3 ) )
            & ( ( F @ Z3 )
              = Y2 ) ) ) ) ).

% map_option_eq_Some
thf(fact_741_map__option__eq__Some,axiom,
    ! [F: val > state,Xo: option_val,Y2: state] :
      ( ( ( map_option_val_state @ F @ Xo )
        = ( some_state @ Y2 ) )
      = ( ? [Z3: val] :
            ( ( Xo
              = ( some_val @ Z3 ) )
            & ( ( F @ Z3 )
              = Y2 ) ) ) ) ).

% map_option_eq_Some
thf(fact_742_map__option__eq__Some,axiom,
    ! [F: state > val,Xo: option_state,Y2: val] :
      ( ( ( map_option_state_val @ F @ Xo )
        = ( some_val @ Y2 ) )
      = ( ? [Z3: state] :
            ( ( Xo
              = ( some_state @ Z3 ) )
            & ( ( F @ Z3 )
              = Y2 ) ) ) ) ).

% map_option_eq_Some
thf(fact_743_map__option__eq__Some,axiom,
    ! [F: val > val,Xo: option_val,Y2: val] :
      ( ( ( map_option_val_val @ F @ Xo )
        = ( some_val @ Y2 ) )
      = ( ? [Z3: val] :
            ( ( Xo
              = ( some_val @ Z3 ) )
            & ( ( F @ Z3 )
              = Y2 ) ) ) ) ).

% map_option_eq_Some
thf(fact_744_option_Omap__disc__iff,axiom,
    ! [F: state > state,A2: option_state] :
      ( ( ( map_op2726735944305651201_state @ F @ A2 )
        = none_state )
      = ( A2 = none_state ) ) ).

% option.map_disc_iff
thf(fact_745_option_Omap__disc__iff,axiom,
    ! [F: val > state,A2: option_val] :
      ( ( ( map_option_val_state @ F @ A2 )
        = none_state )
      = ( A2 = none_val ) ) ).

% option.map_disc_iff
thf(fact_746_option_Omap__disc__iff,axiom,
    ! [F: state > val,A2: option_state] :
      ( ( ( map_option_state_val @ F @ A2 )
        = none_val )
      = ( A2 = none_state ) ) ).

% option.map_disc_iff
thf(fact_747_option_Omap__disc__iff,axiom,
    ! [F: val > val,A2: option_val] :
      ( ( ( map_option_val_val @ F @ A2 )
        = none_val )
      = ( A2 = none_val ) ) ).

% option.map_disc_iff
thf(fact_748_map__option__is__None,axiom,
    ! [F: state > state,Opt: option_state] :
      ( ( ( map_op2726735944305651201_state @ F @ Opt )
        = none_state )
      = ( Opt = none_state ) ) ).

% map_option_is_None
thf(fact_749_map__option__is__None,axiom,
    ! [F: val > state,Opt: option_val] :
      ( ( ( map_option_val_state @ F @ Opt )
        = none_state )
      = ( Opt = none_val ) ) ).

% map_option_is_None
thf(fact_750_map__option__is__None,axiom,
    ! [F: state > val,Opt: option_state] :
      ( ( ( map_option_state_val @ F @ Opt )
        = none_val )
      = ( Opt = none_state ) ) ).

% map_option_is_None
thf(fact_751_map__option__is__None,axiom,
    ! [F: val > val,Opt: option_val] :
      ( ( ( map_option_val_val @ F @ Opt )
        = none_val )
      = ( Opt = none_val ) ) ).

% map_option_is_None
thf(fact_752_None__eq__map__option__iff,axiom,
    ! [F: state > state,X: option_state] :
      ( ( none_state
        = ( map_op2726735944305651201_state @ F @ X ) )
      = ( X = none_state ) ) ).

% None_eq_map_option_iff
thf(fact_753_None__eq__map__option__iff,axiom,
    ! [F: val > state,X: option_val] :
      ( ( none_state
        = ( map_option_val_state @ F @ X ) )
      = ( X = none_val ) ) ).

% None_eq_map_option_iff
thf(fact_754_None__eq__map__option__iff,axiom,
    ! [F: state > val,X: option_state] :
      ( ( none_val
        = ( map_option_state_val @ F @ X ) )
      = ( X = none_state ) ) ).

% None_eq_map_option_iff
thf(fact_755_None__eq__map__option__iff,axiom,
    ! [F: val > val,X: option_val] :
      ( ( none_val
        = ( map_option_val_val @ F @ X ) )
      = ( X = none_val ) ) ).

% None_eq_map_option_iff
thf(fact_756_option_Osimps_I9_J,axiom,
    ! [F: state > state,X22: state] :
      ( ( map_op2726735944305651201_state @ F @ ( some_state @ X22 ) )
      = ( some_state @ ( F @ X22 ) ) ) ).

% option.simps(9)
thf(fact_757_option_Osimps_I9_J,axiom,
    ! [F: state > val,X22: state] :
      ( ( map_option_state_val @ F @ ( some_state @ X22 ) )
      = ( some_val @ ( F @ X22 ) ) ) ).

% option.simps(9)
thf(fact_758_option_Osimps_I9_J,axiom,
    ! [F: val > state,X22: val] :
      ( ( map_option_val_state @ F @ ( some_val @ X22 ) )
      = ( some_state @ ( F @ X22 ) ) ) ).

% option.simps(9)
thf(fact_759_option_Osimps_I9_J,axiom,
    ! [F: val > val,X22: val] :
      ( ( map_option_val_val @ F @ ( some_val @ X22 ) )
      = ( some_val @ ( F @ X22 ) ) ) ).

% option.simps(9)
thf(fact_760_option_Osimps_I8_J,axiom,
    ! [F: state > state] :
      ( ( map_op2726735944305651201_state @ F @ none_state )
      = none_state ) ).

% option.simps(8)
thf(fact_761_option_Osimps_I8_J,axiom,
    ! [F: state > val] :
      ( ( map_option_state_val @ F @ none_state )
      = none_val ) ).

% option.simps(8)
thf(fact_762_option_Osimps_I8_J,axiom,
    ! [F: val > state] :
      ( ( map_option_val_state @ F @ none_val )
      = none_state ) ).

% option.simps(8)
thf(fact_763_option_Osimps_I8_J,axiom,
    ! [F: val > val] :
      ( ( map_option_val_val @ F @ none_val )
      = none_val ) ).

% option.simps(8)
thf(fact_764_map__option__idI,axiom,
    ! [X: option8887860577033306220on_val,F: produc9003781588162623004on_val > produc9003781588162623004on_val] :
      ( ! [Y: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ Y @ ( set_op9004752959087400718on_val @ X ) )
         => ( ( F @ Y )
            = Y ) )
     => ( ( map_op7709461780610975941on_val @ F @ X )
        = X ) ) ).

% map_option_idI
thf(fact_765_option_Omap__ident__strong,axiom,
    ! [T: option8887860577033306220on_val,F: produc9003781588162623004on_val > produc9003781588162623004on_val] :
      ( ! [Z2: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ Z2 @ ( set_op9004752959087400718on_val @ T ) )
         => ( ( F @ Z2 )
            = Z2 ) )
     => ( ( map_op7709461780610975941on_val @ F @ T )
        = T ) ) ).

% option.map_ident_strong
thf(fact_766_add__masks_Opelims,axiom,
    ! [X: produc1457211279475724562t_char > prat,Xa: produc1457211279475724562t_char > prat,Xb: produc1457211279475724562t_char,Y2: prat] :
      ( ( ( add_ma6586698345353345811t_char @ X @ Xa @ Xb )
        = Y2 )
     => ( ( accp_P224314924008452035t_char @ add_ma2412268806269088278t_char @ ( produc2957999048406202538t_char @ X @ ( produc2591414526589101846t_char @ Xa @ Xb ) ) )
       => ~ ( ( Y2
              = ( padd @ ( X @ Xb ) @ ( Xa @ Xb ) ) )
           => ~ ( accp_P224314924008452035t_char @ add_ma2412268806269088278t_char @ ( produc2957999048406202538t_char @ X @ ( produc2591414526589101846t_char @ Xa @ Xb ) ) ) ) ) ) ).

% add_masks.pelims
thf(fact_767_valid__state_Opelims_I3_J,axiom,
    ! [X: produc9003781588162623004on_val] :
      ( ~ ( valid_state @ X )
     => ( ( accp_P4405556307444930259on_val @ valid_state_rel @ X )
       => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
              ( ( X
                = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
             => ( ( accp_P4405556307444930259on_val @ valid_state_rel @ ( produc74620467203698198on_val @ Pi6 @ H5 ) )
               => ( ( valid_mask @ Pi6 )
                  & ( valid_heap @ Pi6 @ H5 ) ) ) ) ) ) ).

% valid_state.pelims(3)
thf(fact_768_valid__state_Opelims_I2_J,axiom,
    ! [X: produc9003781588162623004on_val] :
      ( ( valid_state @ X )
     => ( ( accp_P4405556307444930259on_val @ valid_state_rel @ X )
       => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
              ( ( X
                = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
             => ( ( accp_P4405556307444930259on_val @ valid_state_rel @ ( produc74620467203698198on_val @ Pi6 @ H5 ) )
               => ~ ( ( valid_mask @ Pi6 )
                    & ( valid_heap @ Pi6 @ H5 ) ) ) ) ) ) ).

% valid_state.pelims(2)
thf(fact_769_bij__betw__apply,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,B5: set_Pr7649655576376376530on_val,A2: produc9003781588162623004on_val] :
      ( ( bij_be532653817181524272on_val @ F @ A5 @ B5 )
     => ( ( member2879030624002546611on_val @ A2 @ A5 )
       => ( member2879030624002546611on_val @ ( F @ A2 ) @ B5 ) ) ) ).

% bij_betw_apply
thf(fact_770_bij__betw__iff__bijections,axiom,
    ( bij_be532653817181524272on_val
    = ( ^ [F3: produc9003781588162623004on_val > produc9003781588162623004on_val,A6: set_Pr7649655576376376530on_val,B6: set_Pr7649655576376376530on_val] :
        ? [G2: produc9003781588162623004on_val > produc9003781588162623004on_val] :
          ( ! [X3: produc9003781588162623004on_val] :
              ( ( member2879030624002546611on_val @ X3 @ A6 )
             => ( ( member2879030624002546611on_val @ ( F3 @ X3 ) @ B6 )
                & ( ( G2 @ ( F3 @ X3 ) )
                  = X3 ) ) )
          & ! [X3: produc9003781588162623004on_val] :
              ( ( member2879030624002546611on_val @ X3 @ B6 )
             => ( ( member2879030624002546611on_val @ ( G2 @ X3 ) @ A6 )
                & ( ( F3 @ ( G2 @ X3 ) )
                  = X3 ) ) ) ) ) ) ).

% bij_betw_iff_bijections
thf(fact_771_notIn__Un__bij__betw3,axiom,
    ! [B2: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,F: produc9003781588162623004on_val > produc9003781588162623004on_val,A8: set_Pr7649655576376376530on_val] :
      ( ~ ( member2879030624002546611on_val @ B2 @ A5 )
     => ( ~ ( member2879030624002546611on_val @ ( F @ B2 ) @ A8 )
       => ( ( bij_be532653817181524272on_val @ F @ A5 @ A8 )
          = ( bij_be532653817181524272on_val @ F @ ( sup_su7506060154676209150on_val @ A5 @ ( insert3030518898131756108on_val @ B2 @ bot_bo6722054719108133734on_val ) ) @ ( sup_su7506060154676209150on_val @ A8 @ ( insert3030518898131756108on_val @ ( F @ B2 ) @ bot_bo6722054719108133734on_val ) ) ) ) ) ) ).

% notIn_Un_bij_betw3
thf(fact_772_notIn__Un__bij__betw,axiom,
    ! [B2: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,F: produc9003781588162623004on_val > produc9003781588162623004on_val,A8: set_Pr7649655576376376530on_val] :
      ( ~ ( member2879030624002546611on_val @ B2 @ A5 )
     => ( ~ ( member2879030624002546611on_val @ ( F @ B2 ) @ A8 )
       => ( ( bij_be532653817181524272on_val @ F @ A5 @ A8 )
         => ( bij_be532653817181524272on_val @ F @ ( sup_su7506060154676209150on_val @ A5 @ ( insert3030518898131756108on_val @ B2 @ bot_bo6722054719108133734on_val ) ) @ ( sup_su7506060154676209150on_val @ A8 @ ( insert3030518898131756108on_val @ ( F @ B2 ) @ bot_bo6722054719108133734on_val ) ) ) ) ) ) ).

% notIn_Un_bij_betw
thf(fact_773_valid__state_Opelims_I1_J,axiom,
    ! [X: produc9003781588162623004on_val,Y2: $o] :
      ( ( ( valid_state @ X )
        = Y2 )
     => ( ( accp_P4405556307444930259on_val @ valid_state_rel @ X )
       => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
              ( ( X
                = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
             => ( ( Y2
                  = ( ( valid_mask @ Pi6 )
                    & ( valid_heap @ Pi6 @ H5 ) ) )
               => ~ ( accp_P4405556307444930259on_val @ valid_state_rel @ ( produc74620467203698198on_val @ Pi6 @ H5 ) ) ) ) ) ) ).

% valid_state.pelims(1)
thf(fact_774_comp__the__Some,axiom,
    ( ( comp_o4916166309651032803_state @ the_state @ some_state )
    = id_state ) ).

% comp_the_Some
thf(fact_775_comp__the__Some,axiom,
    ( ( comp_o5604524432708427236al_val @ the_val @ some_val )
    = id_val ) ).

% comp_the_Some
thf(fact_776_map__of__Cons__code_I2_J,axiom,
    ! [L: produc1457211279475724562t_char > prat,K: produc1457211279475724562t_char > prat,V2: produc1457211279475724562t_char > option_val,Ps: list_P8058578141249370668on_val] :
      ( ( ( L = K )
       => ( ( map_of8940823041123231434on_val @ ( cons_P1300772314254706406on_val @ ( produc74620467203698198on_val @ L @ V2 ) @ Ps ) @ K )
          = ( some_P7669353234731512949on_val @ V2 ) ) )
      & ( ( L != K )
       => ( ( map_of8940823041123231434on_val @ ( cons_P1300772314254706406on_val @ ( produc74620467203698198on_val @ L @ V2 ) @ Ps ) @ K )
          = ( map_of8940823041123231434on_val @ Ps @ K ) ) ) ) ).

% map_of_Cons_code(2)
thf(fact_777_map__of__Cons__code_I2_J,axiom,
    ! [L: produc9003781588162623004on_val,K: produc9003781588162623004on_val,V2: produc9003781588162623004on_val,Ps: list_P5521618065476132895on_val] :
      ( ( ( L = K )
       => ( ( map_of2499293770471829533on_val @ ( cons_P1869654434729225551on_val @ ( produc4958730763592889809on_val @ L @ V2 ) @ Ps ) @ K )
          = ( some_P2581650809551911671on_val @ V2 ) ) )
      & ( ( L != K )
       => ( ( map_of2499293770471829533on_val @ ( cons_P1869654434729225551on_val @ ( produc4958730763592889809on_val @ L @ V2 ) @ Ps ) @ K )
          = ( map_of2499293770471829533on_val @ Ps @ K ) ) ) ) ).

% map_of_Cons_code(2)
thf(fact_778_map__of__Cons__code_I2_J,axiom,
    ! [L: nat,K: nat,V2: list_char,Ps: list_P8003064839462976920t_char] :
      ( ( ( L = K )
       => ( ( map_of_nat_list_char @ ( cons_P6700496888814104776t_char @ ( produc120197956887798346t_char @ L @ V2 ) @ Ps ) @ K )
          = ( some_list_char @ V2 ) ) )
      & ( ( L != K )
       => ( ( map_of_nat_list_char @ ( cons_P6700496888814104776t_char @ ( produc120197956887798346t_char @ L @ V2 ) @ Ps ) @ K )
          = ( map_of_nat_list_char @ Ps @ K ) ) ) ) ).

% map_of_Cons_code(2)
thf(fact_779_map__of__SomeD,axiom,
    ! [Xs: list_P8058578141249370668on_val,K: produc1457211279475724562t_char > prat,Y2: produc1457211279475724562t_char > option_val] :
      ( ( ( map_of8940823041123231434on_val @ Xs @ K )
        = ( some_P7669353234731512949on_val @ Y2 ) )
     => ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ K @ Y2 ) @ ( set_Pr1015909255637879367on_val @ Xs ) ) ) ).

% map_of_SomeD
thf(fact_780_map__of__SomeD,axiom,
    ! [Xs: list_P5521618065476132895on_val,K: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( ( map_of2499293770471829533on_val @ Xs @ K )
        = ( some_P2581650809551911671on_val @ Y2 ) )
     => ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ K @ Y2 ) @ ( set_Pr5935206576607725998on_val @ Xs ) ) ) ).

% map_of_SomeD
thf(fact_781_map__of__SomeD,axiom,
    ! [Xs: list_P8003064839462976920t_char,K: nat,Y2: list_char] :
      ( ( ( map_of_nat_list_char @ Xs @ K )
        = ( some_list_char @ Y2 ) )
     => ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ Y2 ) @ ( set_Pr4422032998922688679t_char @ Xs ) ) ) ).

% map_of_SomeD
thf(fact_782_weak__map__of__SomeI,axiom,
    ! [K: produc1457211279475724562t_char > prat,X: produc1457211279475724562t_char > option_val,L: list_P8058578141249370668on_val] :
      ( ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ K @ X ) @ ( set_Pr1015909255637879367on_val @ L ) )
     => ? [X2: produc1457211279475724562t_char > option_val] :
          ( ( map_of8940823041123231434on_val @ L @ K )
          = ( some_P7669353234731512949on_val @ X2 ) ) ) ).

% weak_map_of_SomeI
thf(fact_783_weak__map__of__SomeI,axiom,
    ! [K: produc9003781588162623004on_val,X: produc9003781588162623004on_val,L: list_P5521618065476132895on_val] :
      ( ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ K @ X ) @ ( set_Pr5935206576607725998on_val @ L ) )
     => ? [X2: produc9003781588162623004on_val] :
          ( ( map_of2499293770471829533on_val @ L @ K )
          = ( some_P2581650809551911671on_val @ X2 ) ) ) ).

% weak_map_of_SomeI
thf(fact_784_weak__map__of__SomeI,axiom,
    ! [K: nat,X: list_char,L: list_P8003064839462976920t_char] :
      ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ X ) @ ( set_Pr4422032998922688679t_char @ L ) )
     => ? [X2: list_char] :
          ( ( map_of_nat_list_char @ L @ K )
          = ( some_list_char @ X2 ) ) ) ).

% weak_map_of_SomeI
thf(fact_785_map__upds__twist,axiom,
    ! [A2: produc9003781588162623004on_val,As: list_P8058578141249370668on_val,M: produc9003781588162623004on_val > option_state,B2: state,Bs: list_state] :
      ( ~ ( member2879030624002546611on_val @ A2 @ ( set_Pr1015909255637879367on_val @ As ) )
     => ( ( map_up1579866409222595534_state @ ( fun_up6681822530636708645_state @ M @ A2 @ ( some_state @ B2 ) ) @ As @ Bs )
        = ( fun_up6681822530636708645_state @ ( map_up1579866409222595534_state @ M @ As @ Bs ) @ A2 @ ( some_state @ B2 ) ) ) ) ).

% map_upds_twist
thf(fact_786_map__upds__twist,axiom,
    ! [A2: produc9003781588162623004on_val,As: list_P8058578141249370668on_val,M: produc9003781588162623004on_val > option_val,B2: val,Bs: list_val] :
      ( ~ ( member2879030624002546611on_val @ A2 @ ( set_Pr1015909255637879367on_val @ As ) )
     => ( ( map_up8749164644216650349al_val @ ( fun_up8559965269643824108on_val @ M @ A2 @ ( some_val @ B2 ) ) @ As @ Bs )
        = ( fun_up8559965269643824108on_val @ ( map_up8749164644216650349al_val @ M @ As @ Bs ) @ A2 @ ( some_val @ B2 ) ) ) ) ).

% map_upds_twist
thf(fact_787_dom__map__of__conv__image__fst,axiom,
    ! [Xys: list_P8058578141249370668on_val] :
      ( ( dom_Pr4152820065153570843on_val @ ( map_of8940823041123231434on_val @ Xys ) )
      = ( image_3067683418878703216r_prat @ produc5239619271231976746on_val @ ( set_Pr1015909255637879367on_val @ Xys ) ) ) ).

% dom_map_of_conv_image_fst
thf(fact_788_dom__map__of__conv__image__fst,axiom,
    ! [Xys: list_P8003064839462976920t_char] :
      ( ( dom_nat_list_char @ ( map_of_nat_list_char @ Xys ) )
      = ( image_3548405822317538717ar_nat @ produc6204653154488278070t_char @ ( set_Pr4422032998922688679t_char @ Xys ) ) ) ).

% dom_map_of_conv_image_fst
thf(fact_789_map__add__upds,axiom,
    ! [M1: produc1457211279475724562t_char > option_val,M2: produc1457211279475724562t_char > option_val,Xs: list_P8003064839462976920t_char,Ys: list_val] :
      ( ( map_ad2908576761495157028ar_val @ M1 @ ( map_up5062815548473444197ar_val @ M2 @ Xs @ Ys ) )
      = ( map_up5062815548473444197ar_val @ ( map_ad2908576761495157028ar_val @ M1 @ M2 ) @ Xs @ Ys ) ) ).

% map_add_upds
thf(fact_790_inj__on__fst__graph,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] : ( inj_on3812695684120442372r_prat @ produc5239619271231976746on_val @ ( graph_1288227317702120175on_val @ M ) ) ).

% inj_on_fst_graph
thf(fact_791_inj__on__fst__graph,axiom,
    ! [M: nat > option_list_char] : ( inj_on2499120878504899377ar_nat @ produc6204653154488278070t_char @ ( graph_nat_list_char @ M ) ) ).

% inj_on_fst_graph
thf(fact_792_map__of__eq__dom,axiom,
    ! [Xs: list_P8058578141249370668on_val,Ys: list_P8058578141249370668on_val] :
      ( ( ( map_of8940823041123231434on_val @ Xs )
        = ( map_of8940823041123231434on_val @ Ys ) )
     => ( ( image_3067683418878703216r_prat @ produc5239619271231976746on_val @ ( set_Pr1015909255637879367on_val @ Xs ) )
        = ( image_3067683418878703216r_prat @ produc5239619271231976746on_val @ ( set_Pr1015909255637879367on_val @ Ys ) ) ) ) ).

% map_of_eq_dom
thf(fact_793_map__of__eq__dom,axiom,
    ! [Xs: list_P8003064839462976920t_char,Ys: list_P8003064839462976920t_char] :
      ( ( ( map_of_nat_list_char @ Xs )
        = ( map_of_nat_list_char @ Ys ) )
     => ( ( image_3548405822317538717ar_nat @ produc6204653154488278070t_char @ ( set_Pr4422032998922688679t_char @ Xs ) )
        = ( image_3548405822317538717ar_nat @ produc6204653154488278070t_char @ ( set_Pr4422032998922688679t_char @ Ys ) ) ) ) ).

% map_of_eq_dom
thf(fact_794_graph__domD,axiom,
    ! [X: produc9003781588162623004on_val,M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ( member2879030624002546611on_val @ X @ ( graph_1288227317702120175on_val @ M ) )
     => ( member2336342582916103932r_prat @ ( produc5239619271231976746on_val @ X ) @ ( dom_Pr4152820065153570843on_val @ M ) ) ) ).

% graph_domD
thf(fact_795_graph__domD,axiom,
    ! [X: produc1457211279475724562t_char,M: nat > option_list_char] :
      ( ( member484235747325421115t_char @ X @ ( graph_nat_list_char @ M ) )
     => ( member_nat @ ( produc6204653154488278070t_char @ X ) @ ( dom_nat_list_char @ M ) ) ) ).

% graph_domD
thf(fact_796_fst__graph__eq__dom,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ( image_3067683418878703216r_prat @ produc5239619271231976746on_val @ ( graph_1288227317702120175on_val @ M ) )
      = ( dom_Pr4152820065153570843on_val @ M ) ) ).

% fst_graph_eq_dom
thf(fact_797_fst__graph__eq__dom,axiom,
    ! [M: nat > option_list_char] :
      ( ( image_3548405822317538717ar_nat @ produc6204653154488278070t_char @ ( graph_nat_list_char @ M ) )
      = ( dom_nat_list_char @ M ) ) ).

% fst_graph_eq_dom
thf(fact_798_get__pre_I2_J,axiom,
    ( get_m
    = ( ^ [X3: state] : ( produc5239619271231976746on_val @ ( rep_state @ X3 ) ) ) ) ).

% get_pre(2)
thf(fact_799_get__m_Oelims,axiom,
    ! [X: state,Y2: produc1457211279475724562t_char > prat] :
      ( ( ( get_m @ X )
        = Y2 )
     => ( Y2
        = ( produc5239619271231976746on_val @ ( rep_state @ X ) ) ) ) ).

% get_m.elims
thf(fact_800_get__m_Osimps,axiom,
    ( get_m
    = ( ^ [A: state] : ( produc5239619271231976746on_val @ ( rep_state @ A ) ) ) ) ).

% get_m.simps
thf(fact_801_map__of__eq__None__iff,axiom,
    ! [Xys: list_P5536455655026101949_state,X: produc9003781588162623004on_val] :
      ( ( ( map_of2328580218031654075_state @ Xys @ X )
        = none_state )
      = ( ~ ( member2879030624002546611on_val @ X @ ( image_3733899853514731534on_val @ produc6734235122797862491_state @ ( set_Pr5697038692337814348_state @ Xys ) ) ) ) ) ).

% map_of_eq_None_iff
thf(fact_802_map__of__eq__None__iff,axiom,
    ! [Xys: list_P7552871840895951722al_val,X: produc9003781588162623004on_val] :
      ( ( ( map_of5667034440649354688al_val @ Xys @ X )
        = none_val )
      = ( ~ ( member2879030624002546611on_val @ X @ ( image_8672218912373160061on_val @ produc4782051922924837920al_val @ ( set_Pr8419001214735528069al_val @ Xys ) ) ) ) ) ).

% map_of_eq_None_iff
thf(fact_803_map__of__eq__None__iff,axiom,
    ! [Xys: list_P8058578141249370668on_val,X: produc1457211279475724562t_char > prat] :
      ( ( ( map_of8940823041123231434on_val @ Xys @ X )
        = none_P1334921381875262201on_val )
      = ( ~ ( member2336342582916103932r_prat @ X @ ( image_3067683418878703216r_prat @ produc5239619271231976746on_val @ ( set_Pr1015909255637879367on_val @ Xys ) ) ) ) ) ).

% map_of_eq_None_iff
thf(fact_804_map__of__eq__None__iff,axiom,
    ! [Xys: list_P8003064839462976920t_char,X: nat] :
      ( ( ( map_of_nat_list_char @ Xys @ X )
        = none_list_char )
      = ( ~ ( member_nat @ X @ ( image_3548405822317538717ar_nat @ produc6204653154488278070t_char @ ( set_Pr4422032998922688679t_char @ Xys ) ) ) ) ) ).

% map_of_eq_None_iff
thf(fact_805_compatibleI__old,axiom,
    ! [Phi: produc9003781588162623004on_val,Phi2: produc9003781588162623004on_val] :
      ( ! [Hl: produc1457211279475724562t_char,X2: val,Y: val] :
          ( ( ( ( produc2319605628138516840on_val @ Phi @ Hl )
              = ( some_val @ X2 ) )
            & ( ( produc2319605628138516840on_val @ Phi2 @ Hl )
              = ( some_val @ Y ) ) )
         => ( X2 = Y ) )
     => ( ( valid_mask @ ( add_ma6586698345353345811t_char @ ( produc5239619271231976746on_val @ Phi ) @ ( produc5239619271231976746on_val @ Phi2 ) ) )
       => ( compatible @ Phi @ Phi2 ) ) ) ).

% compatibleI_old
thf(fact_806_map__of_Osimps_I2_J,axiom,
    ! [P4: produc1457211279475724562t_char,Ps: list_P8003064839462976920t_char] :
      ( ( map_of_nat_list_char @ ( cons_P6700496888814104776t_char @ P4 @ Ps ) )
      = ( fun_up4009399622604172288t_char @ ( map_of_nat_list_char @ Ps ) @ ( produc6204653154488278070t_char @ P4 ) @ ( some_list_char @ ( produc1900778367047502200t_char @ P4 ) ) ) ) ).

% map_of.simps(2)
thf(fact_807_map__of_Osimps_I2_J,axiom,
    ! [P4: produc9003781588162623004on_val,Ps: list_P8058578141249370668on_val] :
      ( ( map_of8940823041123231434on_val @ ( cons_P1300772314254706406on_val @ P4 @ Ps ) )
      = ( fun_up1601731230164360576on_val @ ( map_of8940823041123231434on_val @ Ps ) @ ( produc5239619271231976746on_val @ P4 ) @ ( some_P7669353234731512949on_val @ ( produc2319605628138516840on_val @ P4 ) ) ) ) ).

% map_of.simps(2)
thf(fact_808_compatible__def,axiom,
    ( compatible
    = ( ^ [Phi3: produc9003781588162623004on_val,Phi4: produc9003781588162623004on_val] :
          ( ( compatible_heaps @ ( produc2319605628138516840on_val @ Phi3 ) @ ( produc2319605628138516840on_val @ Phi4 ) )
          & ( valid_mask @ ( add_ma6586698345353345811t_char @ ( produc5239619271231976746on_val @ Phi3 ) @ ( produc5239619271231976746on_val @ Phi4 ) ) ) ) ) ) ).

% compatible_def
thf(fact_809_get__h_Osimps,axiom,
    ( get_h
    = ( ^ [A: state] : ( produc2319605628138516840on_val @ ( rep_state @ A ) ) ) ) ).

% get_h.simps
thf(fact_810_get__h_Oelims,axiom,
    ! [X: state,Y2: produc1457211279475724562t_char > option_val] :
      ( ( ( get_h @ X )
        = Y2 )
     => ( Y2
        = ( produc2319605628138516840on_val @ ( rep_state @ X ) ) ) ) ).

% get_h.elims
thf(fact_811_get__pre_I1_J,axiom,
    ( get_h
    = ( ^ [X3: state] : ( produc2319605628138516840on_val @ ( rep_state @ X3 ) ) ) ) ).

% get_pre(1)
thf(fact_812_graph__ranD,axiom,
    ! [X: produc9003781588162623004on_val,M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ( member2879030624002546611on_val @ X @ ( graph_1288227317702120175on_val @ M ) )
     => ( member1577473829074448177on_val @ ( produc2319605628138516840on_val @ X ) @ ( ran_Pr878516737976613822on_val @ M ) ) ) ).

% graph_ranD
thf(fact_813_snd__graph__ran,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ( image_2330660378567450301on_val @ produc2319605628138516840on_val @ ( graph_1288227317702120175on_val @ M ) )
      = ( ran_Pr878516737976613822on_val @ M ) ) ).

% snd_graph_ran
thf(fact_814_map__upd__upds__conv__if,axiom,
    ! [X: produc9003781588162623004on_val,Ys: list_state,Xs: list_P8058578141249370668on_val,F: produc9003781588162623004on_val > option_state,Y2: state] :
      ( ( ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ ( take_P84704344506987694on_val @ ( size_size_list_state @ Ys ) @ Xs ) ) )
       => ( ( map_up1579866409222595534_state @ ( fun_up6681822530636708645_state @ F @ X @ ( some_state @ Y2 ) ) @ Xs @ Ys )
          = ( map_up1579866409222595534_state @ F @ Xs @ Ys ) ) )
      & ( ~ ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ ( take_P84704344506987694on_val @ ( size_size_list_state @ Ys ) @ Xs ) ) )
       => ( ( map_up1579866409222595534_state @ ( fun_up6681822530636708645_state @ F @ X @ ( some_state @ Y2 ) ) @ Xs @ Ys )
          = ( fun_up6681822530636708645_state @ ( map_up1579866409222595534_state @ F @ Xs @ Ys ) @ X @ ( some_state @ Y2 ) ) ) ) ) ).

% map_upd_upds_conv_if
thf(fact_815_map__upd__upds__conv__if,axiom,
    ! [X: produc9003781588162623004on_val,Ys: list_val,Xs: list_P8058578141249370668on_val,F: produc9003781588162623004on_val > option_val,Y2: val] :
      ( ( ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ ( take_P84704344506987694on_val @ ( size_size_list_val @ Ys ) @ Xs ) ) )
       => ( ( map_up8749164644216650349al_val @ ( fun_up8559965269643824108on_val @ F @ X @ ( some_val @ Y2 ) ) @ Xs @ Ys )
          = ( map_up8749164644216650349al_val @ F @ Xs @ Ys ) ) )
      & ( ~ ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ ( take_P84704344506987694on_val @ ( size_size_list_val @ Ys ) @ Xs ) ) )
       => ( ( map_up8749164644216650349al_val @ ( fun_up8559965269643824108on_val @ F @ X @ ( some_val @ Y2 ) ) @ Xs @ Ys )
          = ( fun_up8559965269643824108on_val @ ( map_up8749164644216650349al_val @ F @ Xs @ Ys ) @ X @ ( some_val @ Y2 ) ) ) ) ) ).

% map_upd_upds_conv_if
thf(fact_816_map__of__zip__upd,axiom,
    ! [Ys: list_state,Xs: list_P8058578141249370668on_val,Zs: list_state,X: produc9003781588162623004on_val,Y2: state,Z: state] :
      ( ( ( size_size_list_state @ Ys )
        = ( size_s4492361580139269312on_val @ Xs ) )
     => ( ( ( size_size_list_state @ Zs )
          = ( size_s4492361580139269312on_val @ Xs ) )
       => ( ~ ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ Xs ) )
         => ( ( ( fun_up6681822530636708645_state @ ( map_of2328580218031654075_state @ ( zip_Pr183230366627191183_state @ Xs @ Ys ) ) @ X @ ( some_state @ Y2 ) )
              = ( fun_up6681822530636708645_state @ ( map_of2328580218031654075_state @ ( zip_Pr183230366627191183_state @ Xs @ Zs ) ) @ X @ ( some_state @ Z ) ) )
           => ( ( map_of2328580218031654075_state @ ( zip_Pr183230366627191183_state @ Xs @ Ys ) )
              = ( map_of2328580218031654075_state @ ( zip_Pr183230366627191183_state @ Xs @ Zs ) ) ) ) ) ) ) ).

% map_of_zip_upd
thf(fact_817_map__of__zip__upd,axiom,
    ! [Ys: list_val,Xs: list_P8058578141249370668on_val,Zs: list_val,X: produc9003781588162623004on_val,Y2: val,Z: val] :
      ( ( ( size_size_list_val @ Ys )
        = ( size_s4492361580139269312on_val @ Xs ) )
     => ( ( ( size_size_list_val @ Zs )
          = ( size_s4492361580139269312on_val @ Xs ) )
       => ( ~ ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ Xs ) )
         => ( ( ( fun_up8559965269643824108on_val @ ( map_of5667034440649354688al_val @ ( zip_Pr897381525307642348al_val @ Xs @ Ys ) ) @ X @ ( some_val @ Y2 ) )
              = ( fun_up8559965269643824108on_val @ ( map_of5667034440649354688al_val @ ( zip_Pr897381525307642348al_val @ Xs @ Zs ) ) @ X @ ( some_val @ Z ) ) )
           => ( ( map_of5667034440649354688al_val @ ( zip_Pr897381525307642348al_val @ Xs @ Ys ) )
              = ( map_of5667034440649354688al_val @ ( zip_Pr897381525307642348al_val @ Xs @ Zs ) ) ) ) ) ) ) ).

% map_of_zip_upd
thf(fact_818_map__of__zip__is__None,axiom,
    ! [Xs: list_P8058578141249370668on_val,Ys: list_state,X: produc9003781588162623004on_val] :
      ( ( ( size_s4492361580139269312on_val @ Xs )
        = ( size_size_list_state @ Ys ) )
     => ( ( ( map_of2328580218031654075_state @ ( zip_Pr183230366627191183_state @ Xs @ Ys ) @ X )
          = none_state )
        = ( ~ ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ Xs ) ) ) ) ) ).

% map_of_zip_is_None
thf(fact_819_map__of__zip__is__None,axiom,
    ! [Xs: list_P8058578141249370668on_val,Ys: list_val,X: produc9003781588162623004on_val] :
      ( ( ( size_s4492361580139269312on_val @ Xs )
        = ( size_size_list_val @ Ys ) )
     => ( ( ( map_of5667034440649354688al_val @ ( zip_Pr897381525307642348al_val @ Xs @ Ys ) @ X )
          = none_val )
        = ( ~ ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ Xs ) ) ) ) ) ).

% map_of_zip_is_None
thf(fact_820_map__of__zip__is__Some,axiom,
    ! [Xs: list_P8058578141249370668on_val,Ys: list_state,X: produc9003781588162623004on_val] :
      ( ( ( size_s4492361580139269312on_val @ Xs )
        = ( size_size_list_state @ Ys ) )
     => ( ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ Xs ) )
        = ( ? [Y3: state] :
              ( ( map_of2328580218031654075_state @ ( zip_Pr183230366627191183_state @ Xs @ Ys ) @ X )
              = ( some_state @ Y3 ) ) ) ) ) ).

% map_of_zip_is_Some
thf(fact_821_map__of__zip__is__Some,axiom,
    ! [Xs: list_P8058578141249370668on_val,Ys: list_val,X: produc9003781588162623004on_val] :
      ( ( ( size_s4492361580139269312on_val @ Xs )
        = ( size_size_list_val @ Ys ) )
     => ( ( member2879030624002546611on_val @ X @ ( set_Pr1015909255637879367on_val @ Xs ) )
        = ( ? [Y3: val] :
              ( ( map_of5667034440649354688al_val @ ( zip_Pr897381525307642348al_val @ Xs @ Ys ) @ X )
              = ( some_val @ Y3 ) ) ) ) ) ).

% map_of_zip_is_Some
thf(fact_822_map__of__zip__map,axiom,
    ! [Xs: list_P8058578141249370668on_val,F: produc9003781588162623004on_val > state] :
      ( ( map_of2328580218031654075_state @ ( zip_Pr183230366627191183_state @ Xs @ ( map_Pr4168196228874954140_state @ F @ Xs ) ) )
      = ( ^ [X3: produc9003781588162623004on_val] : ( if_option_state @ ( member2879030624002546611on_val @ X3 @ ( set_Pr1015909255637879367on_val @ Xs ) ) @ ( some_state @ ( F @ X3 ) ) @ none_state ) ) ) ).

% map_of_zip_map
thf(fact_823_map__of__zip__map,axiom,
    ! [Xs: list_P8058578141249370668on_val,F: produc9003781588162623004on_val > val] :
      ( ( map_of5667034440649354688al_val @ ( zip_Pr897381525307642348al_val @ Xs @ ( map_Pr201512126527963679al_val @ F @ Xs ) ) )
      = ( ^ [X3: produc9003781588162623004on_val] : ( if_option_val @ ( member2879030624002546611on_val @ X3 @ ( set_Pr1015909255637879367on_val @ Xs ) ) @ ( some_val @ ( F @ X3 ) ) @ none_val ) ) ) ).

% map_of_zip_map
thf(fact_824_map__upds__def,axiom,
    ( map_up5062815548473444197ar_val
    = ( ^ [M4: produc1457211279475724562t_char > option_val,Xs2: list_P8003064839462976920t_char,Ys2: list_val] : ( map_ad2908576761495157028ar_val @ M4 @ ( map_of6844234013878170066ar_val @ ( rev_Pr6055279906267038332ar_val @ ( zip_Pr909124973800381606ar_val @ Xs2 @ Ys2 ) ) ) ) ) ) ).

% map_upds_def
thf(fact_825_pre__get__h_Oelims,axiom,
    ! [X: produc9003781588162623004on_val,Y2: produc1457211279475724562t_char > option_val] :
      ( ( ( pre_ge1486375753531218896on_val @ X )
        = Y2 )
     => ( Y2
        = ( produc2319605628138516840on_val @ X ) ) ) ).

% pre_get_h.elims
thf(fact_826_map__of__eq__Some__iff,axiom,
    ! [Xys: list_P5521618065476132895on_val,X: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( distin602967888454099555on_val @ ( map_Pr2662348860696421617on_val @ produc3129717363260770749on_val @ Xys ) )
     => ( ( ( map_of2499293770471829533on_val @ Xys @ X )
          = ( some_P2581650809551911671on_val @ Y2 ) )
        = ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ X @ Y2 ) @ ( set_Pr5935206576607725998on_val @ Xys ) ) ) ) ).

% map_of_eq_Some_iff
thf(fact_827_map__of__eq__Some__iff,axiom,
    ! [Xys: list_P8058578141249370668on_val,X: produc1457211279475724562t_char > prat,Y2: produc1457211279475724562t_char > option_val] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xys ) )
     => ( ( ( map_of8940823041123231434on_val @ Xys @ X )
          = ( some_P7669353234731512949on_val @ Y2 ) )
        = ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ X @ Y2 ) @ ( set_Pr1015909255637879367on_val @ Xys ) ) ) ) ).

% map_of_eq_Some_iff
thf(fact_828_map__of__eq__Some__iff,axiom,
    ! [Xys: list_P8003064839462976920t_char,X: nat,Y2: list_char] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xys ) )
     => ( ( ( map_of_nat_list_char @ Xys @ X )
          = ( some_list_char @ Y2 ) )
        = ( member484235747325421115t_char @ ( produc120197956887798346t_char @ X @ Y2 ) @ ( set_Pr4422032998922688679t_char @ Xys ) ) ) ) ).

% map_of_eq_Some_iff
thf(fact_829_Some__eq__map__of__iff,axiom,
    ! [Xys: list_P5521618065476132895on_val,Y2: produc9003781588162623004on_val,X: produc9003781588162623004on_val] :
      ( ( distin602967888454099555on_val @ ( map_Pr2662348860696421617on_val @ produc3129717363260770749on_val @ Xys ) )
     => ( ( ( some_P2581650809551911671on_val @ Y2 )
          = ( map_of2499293770471829533on_val @ Xys @ X ) )
        = ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ X @ Y2 ) @ ( set_Pr5935206576607725998on_val @ Xys ) ) ) ) ).

% Some_eq_map_of_iff
thf(fact_830_Some__eq__map__of__iff,axiom,
    ! [Xys: list_P8058578141249370668on_val,Y2: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char > prat] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xys ) )
     => ( ( ( some_P7669353234731512949on_val @ Y2 )
          = ( map_of8940823041123231434on_val @ Xys @ X ) )
        = ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ X @ Y2 ) @ ( set_Pr1015909255637879367on_val @ Xys ) ) ) ) ).

% Some_eq_map_of_iff
thf(fact_831_Some__eq__map__of__iff,axiom,
    ! [Xys: list_P8003064839462976920t_char,Y2: list_char,X: nat] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xys ) )
     => ( ( ( some_list_char @ Y2 )
          = ( map_of_nat_list_char @ Xys @ X ) )
        = ( member484235747325421115t_char @ ( produc120197956887798346t_char @ X @ Y2 ) @ ( set_Pr4422032998922688679t_char @ Xys ) ) ) ) ).

% Some_eq_map_of_iff
thf(fact_832_map__of__is__SomeI,axiom,
    ! [Xys: list_P5521618065476132895on_val,X: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( distin602967888454099555on_val @ ( map_Pr2662348860696421617on_val @ produc3129717363260770749on_val @ Xys ) )
     => ( ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ X @ Y2 ) @ ( set_Pr5935206576607725998on_val @ Xys ) )
       => ( ( map_of2499293770471829533on_val @ Xys @ X )
          = ( some_P2581650809551911671on_val @ Y2 ) ) ) ) ).

% map_of_is_SomeI
thf(fact_833_map__of__is__SomeI,axiom,
    ! [Xys: list_P8058578141249370668on_val,X: produc1457211279475724562t_char > prat,Y2: produc1457211279475724562t_char > option_val] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xys ) )
     => ( ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ X @ Y2 ) @ ( set_Pr1015909255637879367on_val @ Xys ) )
       => ( ( map_of8940823041123231434on_val @ Xys @ X )
          = ( some_P7669353234731512949on_val @ Y2 ) ) ) ) ).

% map_of_is_SomeI
thf(fact_834_map__of__is__SomeI,axiom,
    ! [Xys: list_P8003064839462976920t_char,X: nat,Y2: list_char] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xys ) )
     => ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ X @ Y2 ) @ ( set_Pr4422032998922688679t_char @ Xys ) )
       => ( ( map_of_nat_list_char @ Xys @ X )
          = ( some_list_char @ Y2 ) ) ) ) ).

% map_of_is_SomeI
thf(fact_835_eq__key__imp__eq__value,axiom,
    ! [Xs: list_P5521618065476132895on_val,K: produc9003781588162623004on_val,V1: produc9003781588162623004on_val,V22: produc9003781588162623004on_val] :
      ( ( distin602967888454099555on_val @ ( map_Pr2662348860696421617on_val @ produc3129717363260770749on_val @ Xs ) )
     => ( ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ K @ V1 ) @ ( set_Pr5935206576607725998on_val @ Xs ) )
       => ( ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ K @ V22 ) @ ( set_Pr5935206576607725998on_val @ Xs ) )
         => ( V1 = V22 ) ) ) ) ).

% eq_key_imp_eq_value
thf(fact_836_eq__key__imp__eq__value,axiom,
    ! [Xs: list_P8058578141249370668on_val,K: produc1457211279475724562t_char > prat,V1: produc1457211279475724562t_char > option_val,V22: produc1457211279475724562t_char > option_val] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xs ) )
     => ( ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ K @ V1 ) @ ( set_Pr1015909255637879367on_val @ Xs ) )
       => ( ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ K @ V22 ) @ ( set_Pr1015909255637879367on_val @ Xs ) )
         => ( V1 = V22 ) ) ) ) ).

% eq_key_imp_eq_value
thf(fact_837_eq__key__imp__eq__value,axiom,
    ! [Xs: list_P8003064839462976920t_char,K: nat,V1: list_char,V22: list_char] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xs ) )
     => ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ V1 ) @ ( set_Pr4422032998922688679t_char @ Xs ) )
       => ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ V22 ) @ ( set_Pr4422032998922688679t_char @ Xs ) )
         => ( V1 = V22 ) ) ) ) ).

% eq_key_imp_eq_value
thf(fact_838_map__of__inject__set,axiom,
    ! [Xs: list_P8058578141249370668on_val,Ys: list_P8058578141249370668on_val] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xs ) )
     => ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Ys ) )
       => ( ( ( map_of8940823041123231434on_val @ Xs )
            = ( map_of8940823041123231434on_val @ Ys ) )
          = ( ( set_Pr1015909255637879367on_val @ Xs )
            = ( set_Pr1015909255637879367on_val @ Ys ) ) ) ) ) ).

% map_of_inject_set
thf(fact_839_map__of__inject__set,axiom,
    ! [Xs: list_P8003064839462976920t_char,Ys: list_P8003064839462976920t_char] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xs ) )
     => ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Ys ) )
       => ( ( ( map_of_nat_list_char @ Xs )
            = ( map_of_nat_list_char @ Ys ) )
          = ( ( set_Pr4422032998922688679t_char @ Xs )
            = ( set_Pr4422032998922688679t_char @ Ys ) ) ) ) ) ).

% map_of_inject_set
thf(fact_840_graph__map__of__if__distinct__dom,axiom,
    ! [Al: list_P8058578141249370668on_val] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Al ) )
     => ( ( graph_1288227317702120175on_val @ ( map_of8940823041123231434on_val @ Al ) )
        = ( set_Pr1015909255637879367on_val @ Al ) ) ) ).

% graph_map_of_if_distinct_dom
thf(fact_841_graph__map__of__if__distinct__dom,axiom,
    ! [Al: list_P8003064839462976920t_char] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Al ) )
     => ( ( graph_nat_list_char @ ( map_of_nat_list_char @ Al ) )
        = ( set_Pr4422032998922688679t_char @ Al ) ) ) ).

% graph_map_of_if_distinct_dom
thf(fact_842_map__of__eqI,axiom,
    ! [Xs: list_P8058578141249370668on_val,Ys: list_P8058578141249370668on_val] :
      ( ( ( set_Pr7516010431435912040r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xs ) )
        = ( set_Pr7516010431435912040r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Ys ) ) )
     => ( ! [X2: produc1457211279475724562t_char > prat] :
            ( ( member2336342582916103932r_prat @ X2 @ ( set_Pr7516010431435912040r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xs ) ) )
           => ( ( map_of8940823041123231434on_val @ Xs @ X2 )
              = ( map_of8940823041123231434on_val @ Ys @ X2 ) ) )
       => ( ( map_of8940823041123231434on_val @ Xs )
          = ( map_of8940823041123231434on_val @ Ys ) ) ) ) ).

% map_of_eqI
thf(fact_843_map__of__eqI,axiom,
    ! [Xs: list_P8003064839462976920t_char,Ys: list_P8003064839462976920t_char] :
      ( ( ( set_nat2 @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xs ) )
        = ( set_nat2 @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Ys ) ) )
     => ( ! [X2: nat] :
            ( ( member_nat @ X2 @ ( set_nat2 @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xs ) ) )
           => ( ( map_of_nat_list_char @ Xs @ X2 )
              = ( map_of_nat_list_char @ Ys @ X2 ) ) )
       => ( ( map_of_nat_list_char @ Xs )
          = ( map_of_nat_list_char @ Ys ) ) ) ) ).

% map_of_eqI
thf(fact_844_ran__distinct,axiom,
    ! [Al: list_P8003064839462976920t_char] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Al ) )
     => ( ( ran_nat_list_char @ ( map_of_nat_list_char @ Al ) )
        = ( image_3034139768025083822t_char @ produc1900778367047502200t_char @ ( set_Pr4422032998922688679t_char @ Al ) ) ) ) ).

% ran_distinct
thf(fact_845_ran__distinct,axiom,
    ! [Al: list_P8058578141249370668on_val] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Al ) )
     => ( ( ran_Pr878516737976613822on_val @ ( map_of8940823041123231434on_val @ Al ) )
        = ( image_2330660378567450301on_val @ produc2319605628138516840on_val @ ( set_Pr1015909255637879367on_val @ Al ) ) ) ) ).

% ran_distinct
thf(fact_846_pre__get__h_Osimps,axiom,
    pre_ge1486375753531218896on_val = produc2319605628138516840on_val ).

% pre_get_h.simps
thf(fact_847_pre__get__h_Opelims,axiom,
    ! [X: produc1317171644805857433on_val,Y2: produc9003781588162623004on_val] :
      ( ( ( pre_ge5139353195879713175on_val @ X )
        = Y2 )
     => ( ( accp_P6797916352740768290on_val @ pre_ge7436079647097740950on_val @ X )
       => ~ ( ( Y2
              = ( produc437328469718437375on_val @ X ) )
           => ~ ( accp_P6797916352740768290on_val @ pre_ge7436079647097740950on_val @ X ) ) ) ) ).

% pre_get_h.pelims
thf(fact_848_pre__get__h_Opelims,axiom,
    ! [X: produc9003781588162623004on_val,Y2: produc1457211279475724562t_char > option_val] :
      ( ( ( pre_ge1486375753531218896on_val @ X )
        = Y2 )
     => ( ( accp_P4405556307444930259on_val @ pre_ge6140436789258014353on_val @ X )
       => ~ ( ( Y2
              = ( produc2319605628138516840on_val @ X ) )
           => ~ ( accp_P4405556307444930259on_val @ pre_ge6140436789258014353on_val @ X ) ) ) ) ).

% pre_get_h.pelims
thf(fact_849_pre__get__m_Osimps,axiom,
    pre_ge8481574585653477131on_val = produc5239619271231976746on_val ).

% pre_get_m.simps
thf(fact_850_pre__get__m_Osimps,axiom,
    pre_ge2740421702909910421t_char = produc6204653154488278070t_char ).

% pre_get_m.simps
thf(fact_851_pre__get__m_Oelims,axiom,
    ! [X: produc9003781588162623004on_val,Y2: produc1457211279475724562t_char > prat] :
      ( ( ( pre_ge8481574585653477131on_val @ X )
        = Y2 )
     => ( Y2
        = ( produc5239619271231976746on_val @ X ) ) ) ).

% pre_get_m.elims
thf(fact_852_pre__get__m_Oelims,axiom,
    ! [X: produc1457211279475724562t_char,Y2: nat] :
      ( ( ( pre_ge2740421702909910421t_char @ X )
        = Y2 )
     => ( Y2
        = ( produc6204653154488278070t_char @ X ) ) ) ).

% pre_get_m.elims
thf(fact_853_pre__get__m_Opelims,axiom,
    ! [X: produc1317171644805857433on_val,Y2: produc9003781588162623004on_val] :
      ( ( ( pre_ge6899797224320663452on_val @ X )
        = Y2 )
     => ( ( accp_P6797916352740768290on_val @ pre_ge1694281482089598673on_val @ X )
       => ~ ( ( Y2
              = ( produc3129717363260770749on_val @ X ) )
           => ~ ( accp_P6797916352740768290on_val @ pre_ge1694281482089598673on_val @ X ) ) ) ) ).

% pre_get_m.pelims
thf(fact_854_pre__get__m_Opelims,axiom,
    ! [X: produc9003781588162623004on_val,Y2: produc1457211279475724562t_char > prat] :
      ( ( ( pre_ge8481574585653477131on_val @ X )
        = Y2 )
     => ( ( accp_P4405556307444930259on_val @ pre_ge4462515927930180886on_val @ X )
       => ~ ( ( Y2
              = ( produc5239619271231976746on_val @ X ) )
           => ~ ( accp_P4405556307444930259on_val @ pre_ge4462515927930180886on_val @ X ) ) ) ) ).

% pre_get_m.pelims
thf(fact_855_pre__get__m_Opelims,axiom,
    ! [X: produc1457211279475724562t_char,Y2: nat] :
      ( ( ( pre_ge2740421702909910421t_char @ X )
        = Y2 )
     => ( ( accp_P8892882183480857371t_char @ pre_ge8748858970926381898t_char @ X )
       => ~ ( ( Y2
              = ( produc6204653154488278070t_char @ X ) )
           => ~ ( accp_P8892882183480857371t_char @ pre_ge8748858970926381898t_char @ X ) ) ) ) ).

% pre_get_m.pelims
thf(fact_856_compatible__options_Opelims_I2_J,axiom,
    ! [X: option_state,Xa: option_state] :
      ( ( compat2278460363914054422_state @ X @ Xa )
     => ( ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ X @ Xa ) )
       => ( ! [A4: state] :
              ( ( X
                = ( some_state @ A4 ) )
             => ! [B4: state] :
                  ( ( Xa
                    = ( some_state @ B4 ) )
                 => ( ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ ( some_state @ A4 ) @ ( some_state @ B4 ) ) )
                   => ( A4 != B4 ) ) ) )
         => ( ( ( X = none_state )
             => ~ ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ none_state @ Xa ) ) )
           => ~ ( ( Xa = none_state )
               => ~ ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ X @ none_state ) ) ) ) ) ) ) ).

% compatible_options.pelims(2)
thf(fact_857_compatible__options_Opelims_I2_J,axiom,
    ! [X: option_val,Xa: option_val] :
      ( ( compat7209469420100717861ns_val @ X @ Xa )
     => ( ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ X @ Xa ) )
       => ( ! [A4: val] :
              ( ( X
                = ( some_val @ A4 ) )
             => ! [B4: val] :
                  ( ( Xa
                    = ( some_val @ B4 ) )
                 => ( ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ ( some_val @ A4 ) @ ( some_val @ B4 ) ) )
                   => ( A4 != B4 ) ) ) )
         => ( ( ( X = none_val )
             => ~ ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ none_val @ Xa ) ) )
           => ~ ( ( Xa = none_val )
               => ~ ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ X @ none_val ) ) ) ) ) ) ) ).

% compatible_options.pelims(2)
thf(fact_858_compatible__options_Opelims_I1_J,axiom,
    ! [X: option_state,Xa: option_state,Y2: $o] :
      ( ( ( compat2278460363914054422_state @ X @ Xa )
        = Y2 )
     => ( ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ X @ Xa ) )
       => ( ! [A4: state] :
              ( ( X
                = ( some_state @ A4 ) )
             => ! [B4: state] :
                  ( ( Xa
                    = ( some_state @ B4 ) )
                 => ( ( Y2
                      = ( A4 = B4 ) )
                   => ~ ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ ( some_state @ A4 ) @ ( some_state @ B4 ) ) ) ) ) )
         => ( ( ( X = none_state )
             => ( Y2
               => ~ ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ none_state @ Xa ) ) ) )
           => ~ ( ( Xa = none_state )
               => ( Y2
                 => ~ ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ X @ none_state ) ) ) ) ) ) ) ) ).

% compatible_options.pelims(1)
thf(fact_859_compatible__options_Opelims_I1_J,axiom,
    ! [X: option_val,Xa: option_val,Y2: $o] :
      ( ( ( compat7209469420100717861ns_val @ X @ Xa )
        = Y2 )
     => ( ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ X @ Xa ) )
       => ( ! [A4: val] :
              ( ( X
                = ( some_val @ A4 ) )
             => ! [B4: val] :
                  ( ( Xa
                    = ( some_val @ B4 ) )
                 => ( ( Y2
                      = ( A4 = B4 ) )
                   => ~ ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ ( some_val @ A4 ) @ ( some_val @ B4 ) ) ) ) ) )
         => ( ( ( X = none_val )
             => ( Y2
               => ~ ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ none_val @ Xa ) ) ) )
           => ~ ( ( Xa = none_val )
               => ( Y2
                 => ~ ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ X @ none_val ) ) ) ) ) ) ) ) ).

% compatible_options.pelims(1)
thf(fact_860_compatible__options_Opelims_I3_J,axiom,
    ! [X: option_state,Xa: option_state] :
      ( ~ ( compat2278460363914054422_state @ X @ Xa )
     => ( ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ X @ Xa ) )
       => ~ ! [A4: state] :
              ( ( X
                = ( some_state @ A4 ) )
             => ! [B4: state] :
                  ( ( Xa
                    = ( some_state @ B4 ) )
                 => ( ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ ( some_state @ A4 ) @ ( some_state @ B4 ) ) )
                   => ( A4 = B4 ) ) ) ) ) ) ).

% compatible_options.pelims(3)
thf(fact_861_compatible__options_Opelims_I3_J,axiom,
    ! [X: option_val,Xa: option_val] :
      ( ~ ( compat7209469420100717861ns_val @ X @ Xa )
     => ( ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ X @ Xa ) )
       => ~ ! [A4: val] :
              ( ( X
                = ( some_val @ A4 ) )
             => ! [B4: val] :
                  ( ( Xa
                    = ( some_val @ B4 ) )
                 => ( ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ ( some_val @ A4 ) @ ( some_val @ B4 ) ) )
                   => ( A4 = B4 ) ) ) ) ) ) ).

% compatible_options.pelims(3)
thf(fact_862_get__m_Opelims,axiom,
    ! [X: state,Y2: produc1457211279475724562t_char > prat] :
      ( ( ( get_m @ X )
        = Y2 )
     => ( ( accp_state @ get_m_rel @ X )
       => ~ ( ( Y2
              = ( produc5239619271231976746on_val @ ( rep_state @ X ) ) )
           => ~ ( accp_state @ get_m_rel @ X ) ) ) ) ).

% get_m.pelims
thf(fact_863_get__h_Opelims,axiom,
    ! [X: state,Y2: produc1457211279475724562t_char > option_val] :
      ( ( ( get_h @ X )
        = Y2 )
     => ( ( accp_state @ get_h_rel @ X )
       => ~ ( ( Y2
              = ( produc2319605628138516840on_val @ ( rep_state @ X ) ) )
           => ~ ( accp_state @ get_h_rel @ X ) ) ) ) ).

% get_h.pelims
thf(fact_864_find__None__iff2,axiom,
    ! [P: produc9003781588162623004on_val > $o,Xs: list_P8058578141249370668on_val] :
      ( ( none_P8728355543607141243on_val
        = ( find_P7418167508921316608on_val @ P @ Xs ) )
      = ( ~ ? [X3: produc9003781588162623004on_val] :
              ( ( member2879030624002546611on_val @ X3 @ ( set_Pr1015909255637879367on_val @ Xs ) )
              & ( P @ X3 ) ) ) ) ).

% find_None_iff2
thf(fact_865_find__None__iff2,axiom,
    ! [P: state > $o,Xs: list_state] :
      ( ( none_state
        = ( find_state @ P @ Xs ) )
      = ( ~ ? [X3: state] :
              ( ( member_state @ X3 @ ( set_state2 @ Xs ) )
              & ( P @ X3 ) ) ) ) ).

% find_None_iff2
thf(fact_866_find__None__iff2,axiom,
    ! [P: val > $o,Xs: list_val] :
      ( ( none_val
        = ( find_val @ P @ Xs ) )
      = ( ~ ? [X3: val] :
              ( ( member_val @ X3 @ ( set_val2 @ Xs ) )
              & ( P @ X3 ) ) ) ) ).

% find_None_iff2
thf(fact_867_find__None__iff,axiom,
    ! [P: produc9003781588162623004on_val > $o,Xs: list_P8058578141249370668on_val] :
      ( ( ( find_P7418167508921316608on_val @ P @ Xs )
        = none_P8728355543607141243on_val )
      = ( ~ ? [X3: produc9003781588162623004on_val] :
              ( ( member2879030624002546611on_val @ X3 @ ( set_Pr1015909255637879367on_val @ Xs ) )
              & ( P @ X3 ) ) ) ) ).

% find_None_iff
thf(fact_868_find__None__iff,axiom,
    ! [P: state > $o,Xs: list_state] :
      ( ( ( find_state @ P @ Xs )
        = none_state )
      = ( ~ ? [X3: state] :
              ( ( member_state @ X3 @ ( set_state2 @ Xs ) )
              & ( P @ X3 ) ) ) ) ).

% find_None_iff
thf(fact_869_find__None__iff,axiom,
    ! [P: val > $o,Xs: list_val] :
      ( ( ( find_val @ P @ Xs )
        = none_val )
      = ( ~ ? [X3: val] :
              ( ( member_val @ X3 @ ( set_val2 @ Xs ) )
              & ( P @ X3 ) ) ) ) ).

% find_None_iff
thf(fact_870_find_Osimps_I2_J,axiom,
    ! [P: state > $o,X: state,Xs: list_state] :
      ( ( ( P @ X )
       => ( ( find_state @ P @ ( cons_state @ X @ Xs ) )
          = ( some_state @ X ) ) )
      & ( ~ ( P @ X )
       => ( ( find_state @ P @ ( cons_state @ X @ Xs ) )
          = ( find_state @ P @ Xs ) ) ) ) ).

% find.simps(2)
thf(fact_871_find_Osimps_I2_J,axiom,
    ! [P: val > $o,X: val,Xs: list_val] :
      ( ( ( P @ X )
       => ( ( find_val @ P @ ( cons_val @ X @ Xs ) )
          = ( some_val @ X ) ) )
      & ( ~ ( P @ X )
       => ( ( find_val @ P @ ( cons_val @ X @ Xs ) )
          = ( find_val @ P @ Xs ) ) ) ) ).

% find.simps(2)
thf(fact_872_map__of__map__restrict,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > produc1457211279475724562t_char > option_val,Ks: list_P6121108298706723033r_prat] :
      ( ( map_of8940823041123231434on_val
        @ ( map_Pr6126389625903360171on_val
          @ ^ [K2: produc1457211279475724562t_char > prat] : ( produc74620467203698198on_val @ K2 @ ( F @ K2 ) )
          @ Ks ) )
      = ( restri7594233908965391805on_val @ ( comp_P4400950274061688490r_prat @ some_P7669353234731512949on_val @ F ) @ ( set_Pr7516010431435912040r_prat @ Ks ) ) ) ).

% map_of_map_restrict
thf(fact_873_map__of__map__restrict,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val,Ks: list_P8058578141249370668on_val] :
      ( ( map_of2499293770471829533on_val
        @ ( map_Pr6762588844207200055on_val
          @ ^ [K2: produc9003781588162623004on_val] : ( produc4958730763592889809on_val @ K2 @ ( F @ K2 ) )
          @ Ks ) )
      = ( restri2354629191430751338on_val @ ( comp_P6513993558795193993on_val @ some_P2581650809551911671on_val @ F ) @ ( set_Pr1015909255637879367on_val @ Ks ) ) ) ).

% map_of_map_restrict
thf(fact_874_map__of__map__restrict,axiom,
    ! [F: nat > list_char,Ks: list_nat] :
      ( ( map_of_nat_list_char
        @ ( map_na9203830342147005692t_char
          @ ^ [K2: nat] : ( produc120197956887798346t_char @ K2 @ ( F @ K2 ) )
          @ Ks ) )
      = ( restri7497266720855523683t_char @ ( comp_l4346807716514216519ar_nat @ some_list_char @ F ) @ ( set_nat2 @ Ks ) ) ) ).

% map_of_map_restrict
thf(fact_875_empty__map__add,axiom,
    ! [M: produc1457211279475724562t_char > option_val] :
      ( ( map_ad2908576761495157028ar_val
        @ ^ [X3: produc1457211279475724562t_char] : none_val
        @ M )
      = M ) ).

% empty_map_add
thf(fact_876_map__add__empty,axiom,
    ! [M: produc1457211279475724562t_char > option_val] :
      ( ( map_ad2908576761495157028ar_val @ M
        @ ^ [X3: produc1457211279475724562t_char] : none_val )
      = M ) ).

% map_add_empty
thf(fact_877_empty__eq__map__add__iff,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] :
      ( ( ( ^ [X3: produc1457211279475724562t_char] : none_val )
        = ( map_ad2908576761495157028ar_val @ F @ G ) )
      = ( ( F
          = ( ^ [X3: produc1457211279475724562t_char] : none_val ) )
        & ( G
          = ( ^ [X3: produc1457211279475724562t_char] : none_val ) ) ) ) ).

% empty_eq_map_add_iff
thf(fact_878_combine__options__def,axiom,
    ( combin3633514924185701883_state
    = ( ^ [F3: state > state > state,X3: option_state,Y3: option_state] :
          ( case_o8916064052540797265_state @ Y3
          @ ^ [Z3: state] :
              ( case_o8916064052540797265_state @ ( some_state @ Z3 )
              @ ^ [Aa: state] : ( some_state @ ( F3 @ Z3 @ Aa ) )
              @ Y3 )
          @ X3 ) ) ) ).

% combine_options_def
thf(fact_879_combine__options__def,axiom,
    ( combine_options_val
    = ( ^ [F3: val > val > val,X3: option_val,Y3: option_val] :
          ( case_o7794706883426356101al_val @ Y3
          @ ^ [Z3: val] :
              ( case_o7794706883426356101al_val @ ( some_val @ Z3 )
              @ ^ [Aa: val] : ( some_val @ ( F3 @ Z3 @ Aa ) )
              @ Y3 )
          @ X3 ) ) ) ).

% combine_options_def
thf(fact_880_case__optionE,axiom,
    ! [P: $o,Q: state > $o,X: option_state] :
      ( ( case_option_o_state @ P @ Q @ X )
     => ( ( ( X = none_state )
         => ~ P )
       => ~ ! [Y: state] :
              ( ( X
                = ( some_state @ Y ) )
             => ~ ( Q @ Y ) ) ) ) ).

% case_optionE
thf(fact_881_case__optionE,axiom,
    ! [P: $o,Q: val > $o,X: option_val] :
      ( ( case_option_o_val @ P @ Q @ X )
     => ( ( ( X = none_val )
         => ~ P )
       => ~ ! [Y: val] :
              ( ( X
                = ( some_val @ Y ) )
             => ~ ( Q @ Y ) ) ) ) ).

% case_optionE
thf(fact_882_dom__def,axiom,
    ( dom_Pr4448331044451638570_state
    = ( ^ [M4: produc9003781588162623004on_val > option_state] :
          ( collec7475294502966882545on_val
          @ ^ [A: produc9003781588162623004on_val] :
              ( ( M4 @ A )
             != none_state ) ) ) ) ).

% dom_def
thf(fact_883_dom__def,axiom,
    ( dom_Pr7381289304162206737al_val
    = ( ^ [M4: produc9003781588162623004on_val > option_val] :
          ( collec7475294502966882545on_val
          @ ^ [A: produc9003781588162623004on_val] :
              ( ( M4 @ A )
             != none_val ) ) ) ) ).

% dom_def
thf(fact_884_map__add__def,axiom,
    ( map_ad2908576761495157028ar_val
    = ( ^ [M12: produc1457211279475724562t_char > option_val,M22: produc1457211279475724562t_char > option_val,X3: produc1457211279475724562t_char] : ( case_o7794706883426356101al_val @ ( M12 @ X3 ) @ some_val @ ( M22 @ X3 ) ) ) ) ).

% map_add_def
thf(fact_885_option_Odisc__eq__case_I1_J,axiom,
    ! [Option: option_state] :
      ( ( Option = none_state )
      = ( case_option_o_state @ $true
        @ ^ [Uu3: state] : $false
        @ Option ) ) ).

% option.disc_eq_case(1)
thf(fact_886_option_Odisc__eq__case_I1_J,axiom,
    ! [Option: option_val] :
      ( ( Option = none_val )
      = ( case_option_o_val @ $true
        @ ^ [Uu3: val] : $false
        @ Option ) ) ).

% option.disc_eq_case(1)
thf(fact_887_option_Odisc__eq__case_I2_J,axiom,
    ! [Option: option_state] :
      ( ( Option != none_state )
      = ( case_option_o_state @ $false
        @ ^ [Uu3: state] : $true
        @ Option ) ) ).

% option.disc_eq_case(2)
thf(fact_888_option_Odisc__eq__case_I2_J,axiom,
    ! [Option: option_val] :
      ( ( Option != none_val )
      = ( case_option_o_val @ $false
        @ ^ [Uu3: val] : $true
        @ Option ) ) ).

% option.disc_eq_case(2)
thf(fact_889_Option_Othese__def,axiom,
    ( these_state
    = ( ^ [A6: set_option_state] :
          ( image_3532137647693456075_state @ the_state
          @ ( collect_option_state
            @ ^ [X3: option_state] :
                ( ( member_option_state @ X3 @ A6 )
                & ( X3 != none_state ) ) ) ) ) ) ).

% Option.these_def
thf(fact_890_Option_Othese__def,axiom,
    ( these_val
    = ( ^ [A6: set_option_val] :
          ( image_option_val_val @ the_val
          @ ( collect_option_val
            @ ^ [X3: option_val] :
                ( ( member_option_val @ X3 @ A6 )
                & ( X3 != none_val ) ) ) ) ) ) ).

% Option.these_def
thf(fact_891_graph__fun__upd__None,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,K: produc1457211279475724562t_char > prat] :
      ( ( graph_1288227317702120175on_val @ ( fun_up1601731230164360576on_val @ M @ K @ none_P1334921381875262201on_val ) )
      = ( collec7475294502966882545on_val
        @ ^ [E3: produc9003781588162623004on_val] :
            ( ( member2879030624002546611on_val @ E3 @ ( graph_1288227317702120175on_val @ M ) )
            & ( ( produc5239619271231976746on_val @ E3 )
             != K ) ) ) ) ).

% graph_fun_upd_None
thf(fact_892_graph__fun__upd__None,axiom,
    ! [M: nat > option_list_char,K: nat] :
      ( ( graph_nat_list_char @ ( fun_up4009399622604172288t_char @ M @ K @ none_list_char ) )
      = ( collec2458894688891239037t_char
        @ ^ [E3: produc1457211279475724562t_char] :
            ( ( member484235747325421115t_char @ E3 @ ( graph_nat_list_char @ M ) )
            & ( ( produc6204653154488278070t_char @ E3 )
             != K ) ) ) ) ).

% graph_fun_upd_None
thf(fact_893_graph__eq__to__snd__dom,axiom,
    ( graph_1288227317702120175on_val
    = ( ^ [M4: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
          ( image_1459058096221225002on_val
          @ ^ [X3: produc1457211279475724562t_char > prat] : ( produc74620467203698198on_val @ X3 @ ( the_Pr646328391962797958on_val @ ( M4 @ X3 ) ) )
          @ ( dom_Pr4152820065153570843on_val @ M4 ) ) ) ) ).

% graph_eq_to_snd_dom
thf(fact_894_graph__eq__to__snd__dom,axiom,
    ( graph_6108330199704490680on_val
    = ( ^ [M4: produc9003781588162623004on_val > option8887860577033306220on_val] :
          ( image_4249794487667743926on_val
          @ ^ [X3: produc9003781588162623004on_val] : ( produc4958730763592889809on_val @ X3 @ ( the_Pr3639693038709580936on_val @ ( M4 @ X3 ) ) )
          @ ( dom_Pr2742230247756046988on_val @ M4 ) ) ) ) ).

% graph_eq_to_snd_dom
thf(fact_895_graph__eq__to__snd__dom,axiom,
    ( graph_nat_list_char
    = ( ^ [M4: nat > option_list_char] :
          ( image_1003422490162143483t_char
          @ ^ [X3: nat] : ( produc120197956887798346t_char @ X3 @ ( the_list_char @ ( M4 @ X3 ) ) )
          @ ( dom_nat_list_char @ M4 ) ) ) ) ).

% graph_eq_to_snd_dom
thf(fact_896_Some__image__these__eq,axiom,
    ! [A5: set_option_state] :
      ( ( image_6076465424260689483_state @ some_state @ ( these_state @ A5 ) )
      = ( collect_option_state
        @ ^ [X3: option_state] :
            ( ( member_option_state @ X3 @ A5 )
            & ( X3 != none_state ) ) ) ) ).

% Some_image_these_eq
thf(fact_897_Some__image__these__eq,axiom,
    ! [A5: set_option_val] :
      ( ( image_val_option_val @ some_val @ ( these_val @ A5 ) )
      = ( collect_option_val
        @ ^ [X3: option_val] :
            ( ( member_option_val @ X3 @ A5 )
            & ( X3 != none_val ) ) ) ) ).

% Some_image_these_eq
thf(fact_898_finite__Map__induct,axiom,
    ! [M: produc9003781588162623004on_val > option_state,P: ( produc9003781588162623004on_val > option_state ) > $o] :
      ( ( finite8324237431073730739on_val @ ( dom_Pr4448331044451638570_state @ M ) )
     => ( ( P
          @ ^ [X3: produc9003781588162623004on_val] : none_state )
       => ( ! [K3: produc9003781588162623004on_val,V3: state,M6: produc9003781588162623004on_val > option_state] :
              ( ( finite8324237431073730739on_val @ ( dom_Pr4448331044451638570_state @ M6 ) )
             => ( ~ ( member2879030624002546611on_val @ K3 @ ( dom_Pr4448331044451638570_state @ M6 ) )
               => ( ( P @ M6 )
                 => ( P @ ( fun_up6681822530636708645_state @ M6 @ K3 @ ( some_state @ V3 ) ) ) ) ) )
         => ( P @ M ) ) ) ) ).

% finite_Map_induct
thf(fact_899_finite__Map__induct,axiom,
    ! [M: produc9003781588162623004on_val > option_val,P: ( produc9003781588162623004on_val > option_val ) > $o] :
      ( ( finite8324237431073730739on_val @ ( dom_Pr7381289304162206737al_val @ M ) )
     => ( ( P
          @ ^ [X3: produc9003781588162623004on_val] : none_val )
       => ( ! [K3: produc9003781588162623004on_val,V3: val,M6: produc9003781588162623004on_val > option_val] :
              ( ( finite8324237431073730739on_val @ ( dom_Pr7381289304162206737al_val @ M6 ) )
             => ( ~ ( member2879030624002546611on_val @ K3 @ ( dom_Pr7381289304162206737al_val @ M6 ) )
               => ( ( P @ M6 )
                 => ( P @ ( fun_up8559965269643824108on_val @ M6 @ K3 @ ( some_val @ V3 ) ) ) ) ) )
         => ( P @ M ) ) ) ) ).

% finite_Map_induct
thf(fact_900_map__of__map__keys,axiom,
    ! [Xs: list_P6121108298706723033r_prat,M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ( ( set_Pr7516010431435912040r_prat @ Xs )
        = ( dom_Pr4152820065153570843on_val @ M ) )
     => ( ( map_of8940823041123231434on_val
          @ ( map_Pr6126389625903360171on_val
            @ ^ [K2: produc1457211279475724562t_char > prat] : ( produc74620467203698198on_val @ K2 @ ( the_Pr646328391962797958on_val @ ( M @ K2 ) ) )
            @ Xs ) )
        = M ) ) ).

% map_of_map_keys
thf(fact_901_map__of__map__keys,axiom,
    ! [Xs: list_P8058578141249370668on_val,M: produc9003781588162623004on_val > option8887860577033306220on_val] :
      ( ( ( set_Pr1015909255637879367on_val @ Xs )
        = ( dom_Pr2742230247756046988on_val @ M ) )
     => ( ( map_of2499293770471829533on_val
          @ ( map_Pr6762588844207200055on_val
            @ ^ [K2: produc9003781588162623004on_val] : ( produc4958730763592889809on_val @ K2 @ ( the_Pr3639693038709580936on_val @ ( M @ K2 ) ) )
            @ Xs ) )
        = M ) ) ).

% map_of_map_keys
thf(fact_902_map__of__map__keys,axiom,
    ! [Xs: list_nat,M: nat > option_list_char] :
      ( ( ( set_nat2 @ Xs )
        = ( dom_nat_list_char @ M ) )
     => ( ( map_of_nat_list_char
          @ ( map_na9203830342147005692t_char
            @ ^ [K2: nat] : ( produc120197956887798346t_char @ K2 @ ( the_list_char @ ( M @ K2 ) ) )
            @ Xs ) )
        = M ) ) ).

% map_of_map_keys
thf(fact_903_find_Osimps_I1_J,axiom,
    ! [Uu: state > $o] :
      ( ( find_state @ Uu @ nil_state )
      = none_state ) ).

% find.simps(1)
thf(fact_904_find_Osimps_I1_J,axiom,
    ! [Uu: val > $o] :
      ( ( find_val @ Uu @ nil_val )
      = none_val ) ).

% find.simps(1)
thf(fact_905_set__map__of__compr,axiom,
    ! [Xs: list_P8058578141249370668on_val] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xs ) )
     => ( ( set_Pr1015909255637879367on_val @ Xs )
        = ( collec7475294502966882545on_val
          @ ( produc5248837549992124053_val_o
            @ ^ [K2: produc1457211279475724562t_char > prat,V: produc1457211279475724562t_char > option_val] :
                ( ( map_of8940823041123231434on_val @ Xs @ K2 )
                = ( some_P7669353234731512949on_val @ V ) ) ) ) ) ) ).

% set_map_of_compr
thf(fact_906_set__map__of__compr,axiom,
    ! [Xs: list_P8003064839462976920t_char] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xs ) )
     => ( ( set_Pr4422032998922688679t_char @ Xs )
        = ( collec2458894688891239037t_char
          @ ( produc8526122873445342073char_o
            @ ^ [K2: nat,V: list_char] :
                ( ( map_of_nat_list_char @ Xs @ K2 )
                = ( some_list_char @ V ) ) ) ) ) ) ).

% set_map_of_compr
thf(fact_907_option_Oin__rel,axiom,
    ( rel_op2494113632589343803t_char
    = ( ^ [R3: nat > list_char > $o,A: option_nat,B: option_list_char] :
        ? [Z3: option2736423997234022232t_char] :
          ( ( member1900516542280067841t_char @ Z3
            @ ( collec3561702660602934339t_char
              @ ^ [X3: option2736423997234022232t_char] : ( ord_le6315511645215477266t_char @ ( set_op7440730737645789856t_char @ X3 ) @ ( collec2458894688891239037t_char @ ( produc8526122873445342073char_o @ R3 ) ) ) ) )
          & ( ( map_op2304244586335077271ar_nat @ produc6204653154488278070t_char @ Z3 )
            = A )
          & ( ( map_op1953669867509794472t_char @ produc1900778367047502200t_char @ Z3 )
            = B ) ) ) ) ).

% option.in_rel
thf(fact_908_option_Oin__rel,axiom,
    ( rel_op7555592896143267045on_val
    = ( ^ [R3: ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > option_val ) > $o,A: option3572569098863364761r_prat,B: option5747939881698552298on_val] :
        ? [Z3: option8887860577033306220on_val] :
          ( ( member4602090469187516291on_val @ Z3
            @ ( collec6281439769543645121on_val
              @ ^ [X3: option8887860577033306220on_val] : ( ord_le6900622908513426738on_val @ ( set_op9004752959087400718on_val @ X3 ) @ ( collec7475294502966882545on_val @ ( produc5248837549992124053_val_o @ R3 ) ) ) ) )
          & ( ( map_op457311912167326058r_prat @ produc5239619271231976746on_val @ Z3 )
            = A )
          & ( ( map_op5305211447164704579on_val @ produc2319605628138516840on_val @ Z3 )
            = B ) ) ) ) ).

% option.in_rel
thf(fact_909_Abs__state__inverse,axiom,
    ! [Y2: produc9003781588162623004on_val] :
      ( ( member2879030624002546611on_val @ Y2
        @ ( collec7475294502966882545on_val
          @ ^ [Uu3: produc9003781588162623004on_val] :
            ? [Phi3: produc9003781588162623004on_val] :
              ( ( Uu3 = Phi3 )
              & ( valid_state @ Phi3 ) ) ) )
     => ( ( rep_state @ ( abs_state @ Y2 ) )
        = Y2 ) ) ).

% Abs_state_inverse
thf(fact_910_graph__def,axiom,
    ( graph_1288227317702120175on_val
    = ( ^ [M4: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
          ( collec7475294502966882545on_val
          @ ^ [Uu3: produc9003781588162623004on_val] :
            ? [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > option_val] :
              ( ( Uu3
                = ( produc74620467203698198on_val @ A @ B ) )
              & ( ( M4 @ A )
                = ( some_P7669353234731512949on_val @ B ) ) ) ) ) ) ).

% graph_def
thf(fact_911_graph__def,axiom,
    ( graph_6108330199704490680on_val
    = ( ^ [M4: produc9003781588162623004on_val > option8887860577033306220on_val] :
          ( collec5166231387257825412on_val
          @ ^ [Uu3: produc1317171644805857433on_val] :
            ? [A: produc9003781588162623004on_val,B: produc9003781588162623004on_val] :
              ( ( Uu3
                = ( produc4958730763592889809on_val @ A @ B ) )
              & ( ( M4 @ A )
                = ( some_P2581650809551911671on_val @ B ) ) ) ) ) ) ).

% graph_def
thf(fact_912_graph__def,axiom,
    ( graph_nat_list_char
    = ( ^ [M4: nat > option_list_char] :
          ( collec2458894688891239037t_char
          @ ^ [Uu3: produc1457211279475724562t_char] :
            ? [A: nat,B: list_char] :
              ( ( Uu3
                = ( produc120197956887798346t_char @ A @ B ) )
              & ( ( M4 @ A )
                = ( some_list_char @ B ) ) ) ) ) ) ).

% graph_def
thf(fact_913_rel__option__None1,axiom,
    ! [P: state > state > $o,X: option_state] :
      ( ( rel_op4316599310523903102_state @ P @ none_state @ X )
      = ( X = none_state ) ) ).

% rel_option_None1
thf(fact_914_rel__option__None1,axiom,
    ! [P: state > val > $o,X: option_val] :
      ( ( rel_option_state_val @ P @ none_state @ X )
      = ( X = none_val ) ) ).

% rel_option_None1
thf(fact_915_rel__option__None1,axiom,
    ! [P: val > state > $o,X: option_state] :
      ( ( rel_option_val_state @ P @ none_val @ X )
      = ( X = none_state ) ) ).

% rel_option_None1
thf(fact_916_rel__option__None1,axiom,
    ! [P: val > val > $o,X: option_val] :
      ( ( rel_option_val_val @ P @ none_val @ X )
      = ( X = none_val ) ) ).

% rel_option_None1
thf(fact_917_rel__option__None2,axiom,
    ! [P: state > state > $o,X: option_state] :
      ( ( rel_op4316599310523903102_state @ P @ X @ none_state )
      = ( X = none_state ) ) ).

% rel_option_None2
thf(fact_918_rel__option__None2,axiom,
    ! [P: val > state > $o,X: option_val] :
      ( ( rel_option_val_state @ P @ X @ none_state )
      = ( X = none_val ) ) ).

% rel_option_None2
thf(fact_919_rel__option__None2,axiom,
    ! [P: state > val > $o,X: option_state] :
      ( ( rel_option_state_val @ P @ X @ none_val )
      = ( X = none_state ) ) ).

% rel_option_None2
thf(fact_920_rel__option__None2,axiom,
    ! [P: val > val > $o,X: option_val] :
      ( ( rel_option_val_val @ P @ X @ none_val )
      = ( X = none_val ) ) ).

% rel_option_None2
thf(fact_921_option_Orel__inject_I2_J,axiom,
    ! [R4: state > state > $o,X22: state,Y22: state] :
      ( ( rel_op4316599310523903102_state @ R4 @ ( some_state @ X22 ) @ ( some_state @ Y22 ) )
      = ( R4 @ X22 @ Y22 ) ) ).

% option.rel_inject(2)
thf(fact_922_option_Orel__inject_I2_J,axiom,
    ! [R4: state > val > $o,X22: state,Y22: val] :
      ( ( rel_option_state_val @ R4 @ ( some_state @ X22 ) @ ( some_val @ Y22 ) )
      = ( R4 @ X22 @ Y22 ) ) ).

% option.rel_inject(2)
thf(fact_923_option_Orel__inject_I2_J,axiom,
    ! [R4: val > state > $o,X22: val,Y22: state] :
      ( ( rel_option_val_state @ R4 @ ( some_val @ X22 ) @ ( some_state @ Y22 ) )
      = ( R4 @ X22 @ Y22 ) ) ).

% option.rel_inject(2)
thf(fact_924_option_Orel__inject_I2_J,axiom,
    ! [R4: val > val > $o,X22: val,Y22: val] :
      ( ( rel_option_val_val @ R4 @ ( some_val @ X22 ) @ ( some_val @ Y22 ) )
      = ( R4 @ X22 @ Y22 ) ) ).

% option.rel_inject(2)
thf(fact_925_option_Orel__intros_I2_J,axiom,
    ! [R4: state > state > $o,X22: state,Y22: state] :
      ( ( R4 @ X22 @ Y22 )
     => ( rel_op4316599310523903102_state @ R4 @ ( some_state @ X22 ) @ ( some_state @ Y22 ) ) ) ).

% option.rel_intros(2)
thf(fact_926_option_Orel__intros_I2_J,axiom,
    ! [R4: state > val > $o,X22: state,Y22: val] :
      ( ( R4 @ X22 @ Y22 )
     => ( rel_option_state_val @ R4 @ ( some_state @ X22 ) @ ( some_val @ Y22 ) ) ) ).

% option.rel_intros(2)
thf(fact_927_option_Orel__intros_I2_J,axiom,
    ! [R4: val > state > $o,X22: val,Y22: state] :
      ( ( R4 @ X22 @ Y22 )
     => ( rel_option_val_state @ R4 @ ( some_val @ X22 ) @ ( some_state @ Y22 ) ) ) ).

% option.rel_intros(2)
thf(fact_928_option_Orel__intros_I2_J,axiom,
    ! [R4: val > val > $o,X22: val,Y22: val] :
      ( ( R4 @ X22 @ Y22 )
     => ( rel_option_val_val @ R4 @ ( some_val @ X22 ) @ ( some_val @ Y22 ) ) ) ).

% option.rel_intros(2)
thf(fact_929_option__rel__Some1,axiom,
    ! [A5: state > state > $o,X: state,Y2: option_state] :
      ( ( rel_op4316599310523903102_state @ A5 @ ( some_state @ X ) @ Y2 )
      = ( ? [Y4: state] :
            ( ( Y2
              = ( some_state @ Y4 ) )
            & ( A5 @ X @ Y4 ) ) ) ) ).

% option_rel_Some1
thf(fact_930_option__rel__Some1,axiom,
    ! [A5: state > val > $o,X: state,Y2: option_val] :
      ( ( rel_option_state_val @ A5 @ ( some_state @ X ) @ Y2 )
      = ( ? [Y4: val] :
            ( ( Y2
              = ( some_val @ Y4 ) )
            & ( A5 @ X @ Y4 ) ) ) ) ).

% option_rel_Some1
thf(fact_931_option__rel__Some1,axiom,
    ! [A5: val > state > $o,X: val,Y2: option_state] :
      ( ( rel_option_val_state @ A5 @ ( some_val @ X ) @ Y2 )
      = ( ? [Y4: state] :
            ( ( Y2
              = ( some_state @ Y4 ) )
            & ( A5 @ X @ Y4 ) ) ) ) ).

% option_rel_Some1
thf(fact_932_option__rel__Some1,axiom,
    ! [A5: val > val > $o,X: val,Y2: option_val] :
      ( ( rel_option_val_val @ A5 @ ( some_val @ X ) @ Y2 )
      = ( ? [Y4: val] :
            ( ( Y2
              = ( some_val @ Y4 ) )
            & ( A5 @ X @ Y4 ) ) ) ) ).

% option_rel_Some1
thf(fact_933_option__rel__Some2,axiom,
    ! [A5: state > state > $o,X: option_state,Y2: state] :
      ( ( rel_op4316599310523903102_state @ A5 @ X @ ( some_state @ Y2 ) )
      = ( ? [X6: state] :
            ( ( X
              = ( some_state @ X6 ) )
            & ( A5 @ X6 @ Y2 ) ) ) ) ).

% option_rel_Some2
thf(fact_934_option__rel__Some2,axiom,
    ! [A5: val > state > $o,X: option_val,Y2: state] :
      ( ( rel_option_val_state @ A5 @ X @ ( some_state @ Y2 ) )
      = ( ? [X6: val] :
            ( ( X
              = ( some_val @ X6 ) )
            & ( A5 @ X6 @ Y2 ) ) ) ) ).

% option_rel_Some2
thf(fact_935_option__rel__Some2,axiom,
    ! [A5: state > val > $o,X: option_state,Y2: val] :
      ( ( rel_option_state_val @ A5 @ X @ ( some_val @ Y2 ) )
      = ( ? [X6: state] :
            ( ( X
              = ( some_state @ X6 ) )
            & ( A5 @ X6 @ Y2 ) ) ) ) ).

% option_rel_Some2
thf(fact_936_option__rel__Some2,axiom,
    ! [A5: val > val > $o,X: option_val,Y2: val] :
      ( ( rel_option_val_val @ A5 @ X @ ( some_val @ Y2 ) )
      = ( ? [X6: val] :
            ( ( X
              = ( some_val @ X6 ) )
            & ( A5 @ X6 @ Y2 ) ) ) ) ).

% option_rel_Some2
thf(fact_937_option_Octr__transfer_I1_J,axiom,
    ! [R4: state > state > $o] : ( rel_op4316599310523903102_state @ R4 @ none_state @ none_state ) ).

% option.ctr_transfer(1)
thf(fact_938_option_Octr__transfer_I1_J,axiom,
    ! [R4: state > val > $o] : ( rel_option_state_val @ R4 @ none_state @ none_val ) ).

% option.ctr_transfer(1)
thf(fact_939_option_Octr__transfer_I1_J,axiom,
    ! [R4: val > state > $o] : ( rel_option_val_state @ R4 @ none_val @ none_state ) ).

% option.ctr_transfer(1)
thf(fact_940_option_Octr__transfer_I1_J,axiom,
    ! [R4: val > val > $o] : ( rel_option_val_val @ R4 @ none_val @ none_val ) ).

% option.ctr_transfer(1)
thf(fact_941_rel__option__reflI,axiom,
    ! [Y2: option8887860577033306220on_val,P: produc9003781588162623004on_val > produc9003781588162623004on_val > $o] :
      ( ! [X2: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X2 @ ( set_op9004752959087400718on_val @ Y2 ) )
         => ( P @ X2 @ X2 ) )
     => ( rel_op346525543737320258on_val @ P @ Y2 @ Y2 ) ) ).

% rel_option_reflI
thf(fact_942_option_Orel__refl__strong,axiom,
    ! [X: option8887860577033306220on_val,Ra: produc9003781588162623004on_val > produc9003781588162623004on_val > $o] :
      ( ! [Z2: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ Z2 @ ( set_op9004752959087400718on_val @ X ) )
         => ( Ra @ Z2 @ Z2 ) )
     => ( rel_op346525543737320258on_val @ Ra @ X @ X ) ) ).

% option.rel_refl_strong
thf(fact_943_option_Orel__mono__strong,axiom,
    ! [R4: produc9003781588162623004on_val > produc9003781588162623004on_val > $o,X: option8887860577033306220on_val,Y2: option8887860577033306220on_val,Ra: produc9003781588162623004on_val > produc9003781588162623004on_val > $o] :
      ( ( rel_op346525543737320258on_val @ R4 @ X @ Y2 )
     => ( ! [Z2: produc9003781588162623004on_val,Yb: produc9003781588162623004on_val] :
            ( ( member2879030624002546611on_val @ Z2 @ ( set_op9004752959087400718on_val @ X ) )
           => ( ( member2879030624002546611on_val @ Yb @ ( set_op9004752959087400718on_val @ Y2 ) )
             => ( ( R4 @ Z2 @ Yb )
               => ( Ra @ Z2 @ Yb ) ) ) )
       => ( rel_op346525543737320258on_val @ Ra @ X @ Y2 ) ) ) ).

% option.rel_mono_strong
thf(fact_944_option_Orel__cong,axiom,
    ! [X: option8887860577033306220on_val,Ya: option8887860577033306220on_val,Y2: option8887860577033306220on_val,Xa: option8887860577033306220on_val,R4: produc9003781588162623004on_val > produc9003781588162623004on_val > $o,Ra: produc9003781588162623004on_val > produc9003781588162623004on_val > $o] :
      ( ( X = Ya )
     => ( ( Y2 = Xa )
       => ( ! [Z2: produc9003781588162623004on_val,Yb: produc9003781588162623004on_val] :
              ( ( member2879030624002546611on_val @ Z2 @ ( set_op9004752959087400718on_val @ Ya ) )
             => ( ( member2879030624002546611on_val @ Yb @ ( set_op9004752959087400718on_val @ Xa ) )
               => ( ( R4 @ Z2 @ Yb )
                  = ( Ra @ Z2 @ Yb ) ) ) )
         => ( ( rel_op346525543737320258on_val @ R4 @ X @ Y2 )
            = ( rel_op346525543737320258on_val @ Ra @ Ya @ Xa ) ) ) ) ) ).

% option.rel_cong
thf(fact_945_option_Orel__distinct_I2_J,axiom,
    ! [R4: state > state > $o,Y22: state] :
      ~ ( rel_op4316599310523903102_state @ R4 @ ( some_state @ Y22 ) @ none_state ) ).

% option.rel_distinct(2)
thf(fact_946_option_Orel__distinct_I2_J,axiom,
    ! [R4: state > val > $o,Y22: state] :
      ~ ( rel_option_state_val @ R4 @ ( some_state @ Y22 ) @ none_val ) ).

% option.rel_distinct(2)
thf(fact_947_option_Orel__distinct_I2_J,axiom,
    ! [R4: val > state > $o,Y22: val] :
      ~ ( rel_option_val_state @ R4 @ ( some_val @ Y22 ) @ none_state ) ).

% option.rel_distinct(2)
thf(fact_948_option_Orel__distinct_I2_J,axiom,
    ! [R4: val > val > $o,Y22: val] :
      ~ ( rel_option_val_val @ R4 @ ( some_val @ Y22 ) @ none_val ) ).

% option.rel_distinct(2)
thf(fact_949_option_Orel__distinct_I1_J,axiom,
    ! [R4: state > state > $o,Y22: state] :
      ~ ( rel_op4316599310523903102_state @ R4 @ none_state @ ( some_state @ Y22 ) ) ).

% option.rel_distinct(1)
thf(fact_950_option_Orel__distinct_I1_J,axiom,
    ! [R4: val > state > $o,Y22: state] :
      ~ ( rel_option_val_state @ R4 @ none_val @ ( some_state @ Y22 ) ) ).

% option.rel_distinct(1)
thf(fact_951_option_Orel__distinct_I1_J,axiom,
    ! [R4: state > val > $o,Y22: val] :
      ~ ( rel_option_state_val @ R4 @ none_state @ ( some_val @ Y22 ) ) ).

% option.rel_distinct(1)
thf(fact_952_option_Orel__distinct_I1_J,axiom,
    ! [R4: val > val > $o,Y22: val] :
      ~ ( rel_option_val_val @ R4 @ none_val @ ( some_val @ Y22 ) ) ).

% option.rel_distinct(1)
thf(fact_953_option_Orel__cases,axiom,
    ! [R4: state > state > $o,A2: option_state,B2: option_state] :
      ( ( rel_op4316599310523903102_state @ R4 @ A2 @ B2 )
     => ( ( ( A2 = none_state )
         => ( B2 != none_state ) )
       => ~ ! [X2: state] :
              ( ( A2
                = ( some_state @ X2 ) )
             => ! [Y: state] :
                  ( ( B2
                    = ( some_state @ Y ) )
                 => ~ ( R4 @ X2 @ Y ) ) ) ) ) ).

% option.rel_cases
thf(fact_954_option_Orel__cases,axiom,
    ! [R4: state > val > $o,A2: option_state,B2: option_val] :
      ( ( rel_option_state_val @ R4 @ A2 @ B2 )
     => ( ( ( A2 = none_state )
         => ( B2 != none_val ) )
       => ~ ! [X2: state] :
              ( ( A2
                = ( some_state @ X2 ) )
             => ! [Y: val] :
                  ( ( B2
                    = ( some_val @ Y ) )
                 => ~ ( R4 @ X2 @ Y ) ) ) ) ) ).

% option.rel_cases
thf(fact_955_option_Orel__cases,axiom,
    ! [R4: val > state > $o,A2: option_val,B2: option_state] :
      ( ( rel_option_val_state @ R4 @ A2 @ B2 )
     => ( ( ( A2 = none_val )
         => ( B2 != none_state ) )
       => ~ ! [X2: val] :
              ( ( A2
                = ( some_val @ X2 ) )
             => ! [Y: state] :
                  ( ( B2
                    = ( some_state @ Y ) )
                 => ~ ( R4 @ X2 @ Y ) ) ) ) ) ).

% option.rel_cases
thf(fact_956_option_Orel__cases,axiom,
    ! [R4: val > val > $o,A2: option_val,B2: option_val] :
      ( ( rel_option_val_val @ R4 @ A2 @ B2 )
     => ( ( ( A2 = none_val )
         => ( B2 != none_val ) )
       => ~ ! [X2: val] :
              ( ( A2
                = ( some_val @ X2 ) )
             => ! [Y: val] :
                  ( ( B2
                    = ( some_val @ Y ) )
                 => ~ ( R4 @ X2 @ Y ) ) ) ) ) ).

% option.rel_cases
thf(fact_957_option_Orel__induct,axiom,
    ! [R4: state > state > $o,X: option_state,Y2: option_state,Q: option_state > option_state > $o] :
      ( ( rel_op4316599310523903102_state @ R4 @ X @ Y2 )
     => ( ( Q @ none_state @ none_state )
       => ( ! [A22: state,B22: state] :
              ( ( R4 @ A22 @ B22 )
             => ( Q @ ( some_state @ A22 ) @ ( some_state @ B22 ) ) )
         => ( Q @ X @ Y2 ) ) ) ) ).

% option.rel_induct
thf(fact_958_option_Orel__induct,axiom,
    ! [R4: state > val > $o,X: option_state,Y2: option_val,Q: option_state > option_val > $o] :
      ( ( rel_option_state_val @ R4 @ X @ Y2 )
     => ( ( Q @ none_state @ none_val )
       => ( ! [A22: state,B22: val] :
              ( ( R4 @ A22 @ B22 )
             => ( Q @ ( some_state @ A22 ) @ ( some_val @ B22 ) ) )
         => ( Q @ X @ Y2 ) ) ) ) ).

% option.rel_induct
thf(fact_959_option_Orel__induct,axiom,
    ! [R4: val > state > $o,X: option_val,Y2: option_state,Q: option_val > option_state > $o] :
      ( ( rel_option_val_state @ R4 @ X @ Y2 )
     => ( ( Q @ none_val @ none_state )
       => ( ! [A22: val,B22: state] :
              ( ( R4 @ A22 @ B22 )
             => ( Q @ ( some_val @ A22 ) @ ( some_state @ B22 ) ) )
         => ( Q @ X @ Y2 ) ) ) ) ).

% option.rel_induct
thf(fact_960_option_Orel__induct,axiom,
    ! [R4: val > val > $o,X: option_val,Y2: option_val,Q: option_val > option_val > $o] :
      ( ( rel_option_val_val @ R4 @ X @ Y2 )
     => ( ( Q @ none_val @ none_val )
       => ( ! [A22: val,B22: val] :
              ( ( R4 @ A22 @ B22 )
             => ( Q @ ( some_val @ A22 ) @ ( some_val @ B22 ) ) )
         => ( Q @ X @ Y2 ) ) ) ) ).

% option.rel_induct
thf(fact_961_option_Orel__sel,axiom,
    ( rel_op4316599310523903102_state
    = ( ^ [R3: state > state > $o,A: option_state,B: option_state] :
          ( ( ( A = none_state )
            = ( B = none_state ) )
          & ( ( A != none_state )
           => ( ( B != none_state )
             => ( R3 @ ( the_state @ A ) @ ( the_state @ B ) ) ) ) ) ) ) ).

% option.rel_sel
thf(fact_962_option_Orel__sel,axiom,
    ( rel_option_state_val
    = ( ^ [R3: state > val > $o,A: option_state,B: option_val] :
          ( ( ( A = none_state )
            = ( B = none_val ) )
          & ( ( A != none_state )
           => ( ( B != none_val )
             => ( R3 @ ( the_state @ A ) @ ( the_val @ B ) ) ) ) ) ) ) ).

% option.rel_sel
thf(fact_963_option_Orel__sel,axiom,
    ( rel_option_val_state
    = ( ^ [R3: val > state > $o,A: option_val,B: option_state] :
          ( ( ( A = none_val )
            = ( B = none_state ) )
          & ( ( A != none_val )
           => ( ( B != none_state )
             => ( R3 @ ( the_val @ A ) @ ( the_state @ B ) ) ) ) ) ) ) ).

% option.rel_sel
thf(fact_964_option_Orel__sel,axiom,
    ( rel_option_val_val
    = ( ^ [R3: val > val > $o,A: option_val,B: option_val] :
          ( ( ( A = none_val )
            = ( B = none_val ) )
          & ( ( A != none_val )
           => ( ( B != none_val )
             => ( R3 @ ( the_val @ A ) @ ( the_val @ B ) ) ) ) ) ) ) ).

% option.rel_sel
thf(fact_965_Rep__state,axiom,
    ! [X: state] :
      ( member2879030624002546611on_val @ ( rep_state @ X )
      @ ( collec7475294502966882545on_val
        @ ^ [Uu3: produc9003781588162623004on_val] :
          ? [Phi3: produc9003781588162623004on_val] :
            ( ( Uu3 = Phi3 )
            & ( valid_state @ Phi3 ) ) ) ) ).

% Rep_state
thf(fact_966_Rep__state__cases,axiom,
    ! [Y2: produc9003781588162623004on_val] :
      ( ( member2879030624002546611on_val @ Y2 @ ( collec7475294502966882545on_val @ valid_state ) )
     => ~ ! [X2: state] :
            ( Y2
           != ( rep_state @ X2 ) ) ) ).

% Rep_state_cases
thf(fact_967_Rep__state__induct,axiom,
    ! [Y2: produc9003781588162623004on_val,P: produc9003781588162623004on_val > $o] :
      ( ( member2879030624002546611on_val @ Y2
        @ ( collec7475294502966882545on_val
          @ ^ [Uu3: produc9003781588162623004on_val] :
            ? [Phi3: produc9003781588162623004on_val] :
              ( ( Uu3 = Phi3 )
              & ( valid_state @ Phi3 ) ) ) )
     => ( ! [X2: state] : ( P @ ( rep_state @ X2 ) )
       => ( P @ Y2 ) ) ) ).

% Rep_state_induct
thf(fact_968_Abs__state__cases,axiom,
    ! [X: state] :
      ~ ! [Y: produc9003781588162623004on_val] :
          ( ( X
            = ( abs_state @ Y ) )
         => ~ ( member2879030624002546611on_val @ Y @ ( collec7475294502966882545on_val @ valid_state ) ) ) ).

% Abs_state_cases
thf(fact_969_Abs__state__induct,axiom,
    ! [P: state > $o,X: state] :
      ( ! [Y: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ Y
            @ ( collec7475294502966882545on_val
              @ ^ [Uu3: produc9003781588162623004on_val] :
                ? [Phi3: produc9003781588162623004on_val] :
                  ( ( Uu3 = Phi3 )
                  & ( valid_state @ Phi3 ) ) ) )
         => ( P @ ( abs_state @ Y ) ) )
     => ( P @ X ) ) ).

% Abs_state_induct
thf(fact_970_Abs__state__inject,axiom,
    ! [X: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( member2879030624002546611on_val @ X
        @ ( collec7475294502966882545on_val
          @ ^ [Uu3: produc9003781588162623004on_val] :
            ? [Phi3: produc9003781588162623004on_val] :
              ( ( Uu3 = Phi3 )
              & ( valid_state @ Phi3 ) ) ) )
     => ( ( member2879030624002546611on_val @ Y2
          @ ( collec7475294502966882545on_val
            @ ^ [Uu3: produc9003781588162623004on_val] :
              ? [Phi3: produc9003781588162623004on_val] :
                ( ( Uu3 = Phi3 )
                & ( valid_state @ Phi3 ) ) ) )
       => ( ( ( abs_state @ X )
            = ( abs_state @ Y2 ) )
          = ( X = Y2 ) ) ) ) ).

% Abs_state_inject
thf(fact_971_type__definition__state,axiom,
    ( type_d7385716227342696708on_val @ rep_state @ abs_state
    @ ( collec7475294502966882545on_val
      @ ^ [Uu3: produc9003781588162623004on_val] :
        ? [Phi3: produc9003781588162623004on_val] :
          ( ( Uu3 = Phi3 )
          & ( valid_state @ Phi3 ) ) ) ) ).

% type_definition_state
thf(fact_972_map__of__append,axiom,
    ! [Xs: list_P375024181684815772ar_val,Ys: list_P375024181684815772ar_val] :
      ( ( map_of6844234013878170066ar_val @ ( append2405376958821693873ar_val @ Xs @ Ys ) )
      = ( map_ad2908576761495157028ar_val @ ( map_of6844234013878170066ar_val @ Ys ) @ ( map_of6844234013878170066ar_val @ Xs ) ) ) ).

% map_of_append
thf(fact_973_valid__maskI,axiom,
    ! [Pi: produc1457211279475724562t_char > prat] :
      ( ! [Hl: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( Pi @ Hl ) )
     => ( ! [F4: list_char] :
            ( ( Pi @ ( produc120197956887798346t_char @ null_nat @ F4 ) )
            = pnone )
       => ( valid_mask @ Pi ) ) ) ).

% valid_maskI
thf(fact_974_valid__mask_Osimps,axiom,
    ( valid_mask
    = ( ^ [Pi4: produc1457211279475724562t_char > prat] :
          ( ! [Hl2: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( Pi4 @ Hl2 ) )
          & ! [F3: list_char] :
              ( ( Pi4 @ ( produc120197956887798346t_char @ null_nat @ F3 ) )
              = pnone ) ) ) ) ).

% valid_mask.simps
thf(fact_975_valid__null__def,axiom,
    ( valid_null
    = ( ^ [Pi4: produc1457211279475724562t_char > prat] :
        ! [F3: list_char] :
          ( ( Pi4 @ ( produc120197956887798346t_char @ null_nat @ F3 ) )
          = pnone ) ) ) ).

% valid_null_def
thf(fact_976_ppos__eq__pnone,axiom,
    ( ppos
    = ( ^ [P5: prat] : ( P5 != pnone ) ) ) ).

% ppos_eq_pnone
thf(fact_977_empty__mask_Osimps,axiom,
    ( empty_3446695950879338768t_char
    = ( ^ [Hl2: produc1457211279475724562t_char] : pnone ) ) ).

% empty_mask.simps
thf(fact_978_empty__mask_Oelims,axiom,
    ! [X: produc1457211279475724562t_char,Y2: prat] :
      ( ( ( empty_3446695950879338768t_char @ X )
        = Y2 )
     => ( Y2 = pnone ) ) ).

% empty_mask.elims
thf(fact_979_full__mask__def,axiom,
    ( full_mask
    = ( ^ [Hl2: produc1457211279475724562t_char] :
          ( if_prat
          @ ( ( produc6204653154488278070t_char @ Hl2 )
            = null_nat )
          @ pnone
          @ pwrite ) ) ) ).

% full_mask_def
thf(fact_980_valid__mask_Oelims_I3_J,axiom,
    ! [X: produc1457211279475724562t_char > prat] :
      ( ~ ( valid_mask @ X )
     => ~ ( ! [Hl: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl ) )
          & ! [F4: list_char] :
              ( ( X @ ( produc120197956887798346t_char @ null_nat @ F4 ) )
              = pnone ) ) ) ).

% valid_mask.elims(3)
thf(fact_981_valid__mask_Oelims_I2_J,axiom,
    ! [X: produc1457211279475724562t_char > prat] :
      ( ( valid_mask @ X )
     => ( ! [Hl4: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl4 ) )
        & ! [F5: list_char] :
            ( ( X @ ( produc120197956887798346t_char @ null_nat @ F5 ) )
            = pnone ) ) ) ).

% valid_mask.elims(2)
thf(fact_982_valid__mask_Oelims_I1_J,axiom,
    ! [X: produc1457211279475724562t_char > prat,Y2: $o] :
      ( ( ( valid_mask @ X )
        = Y2 )
     => ( Y2
        = ( ! [Hl2: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl2 ) )
          & ! [F3: list_char] :
              ( ( X @ ( produc120197956887798346t_char @ null_nat @ F3 ) )
              = pnone ) ) ) ) ).

% valid_mask.elims(1)
thf(fact_983_empty__mask_Opelims,axiom,
    ! [X: produc1457211279475724562t_char,Y2: prat] :
      ( ( ( empty_3446695950879338768t_char @ X )
        = Y2 )
     => ( ( accp_P8892882183480857371t_char @ empty_8141283858255108185t_char @ X )
       => ~ ( ( Y2 = pnone )
           => ~ ( accp_P8892882183480857371t_char @ empty_8141283858255108185t_char @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_984_empty__mask_Opelims,axiom,
    ! [X: produc1317171644805857433on_val,Y2: prat] :
      ( ( ( empty_4129289814623480215on_val @ X )
        = Y2 )
     => ( ( accp_P6797916352740768290on_val @ empty_1698368654852286560on_val @ X )
       => ~ ( ( Y2 = pnone )
           => ~ ( accp_P6797916352740768290on_val @ empty_1698368654852286560on_val @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_985_empty__mask_Opelims,axiom,
    ! [X: produc9003781588162623004on_val,Y2: prat] :
      ( ( ( empty_6102255041883331742on_val @ X )
        = Y2 )
     => ( ( accp_P4405556307444930259on_val @ empty_5847456986941130773on_val @ X )
       => ~ ( ( Y2 = pnone )
           => ~ ( accp_P4405556307444930259on_val @ empty_5847456986941130773on_val @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_986_empty__mask_Opelims,axiom,
    ! [X: state,Y2: prat] :
      ( ( ( empty_mask_state @ X )
        = Y2 )
     => ( ( accp_state @ empty_mask_rel_state @ X )
       => ~ ( ( Y2 = pnone )
           => ~ ( accp_state @ empty_mask_rel_state @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_987_empty__mask_Opelims,axiom,
    ! [X: produc1457211279475724562t_char > prat,Y2: prat] :
      ( ( ( empty_6616431780912394577r_prat @ X )
        = Y2 )
     => ( ( accp_P4765339447491148764r_prat @ empty_3412554051312619034r_prat @ X )
       => ~ ( ( Y2 = pnone )
           => ~ ( accp_P4765339447491148764r_prat @ empty_3412554051312619034r_prat @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_988_valid__mask_Opelims_I3_J,axiom,
    ! [X: produc1457211279475724562t_char > prat] :
      ( ~ ( valid_mask @ X )
     => ( ( accp_P4765339447491148764r_prat @ valid_mask_rel @ X )
       => ~ ( ( accp_P4765339447491148764r_prat @ valid_mask_rel @ X )
           => ( ! [Hl: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl ) )
              & ! [F4: list_char] :
                  ( ( X @ ( produc120197956887798346t_char @ null_nat @ F4 ) )
                  = pnone ) ) ) ) ) ).

% valid_mask.pelims(3)
thf(fact_989_valid__mask_Opelims_I2_J,axiom,
    ! [X: produc1457211279475724562t_char > prat] :
      ( ( valid_mask @ X )
     => ( ( accp_P4765339447491148764r_prat @ valid_mask_rel @ X )
       => ~ ( ( accp_P4765339447491148764r_prat @ valid_mask_rel @ X )
           => ~ ( ! [Hl4: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl4 ) )
                & ! [F5: list_char] :
                    ( ( X @ ( produc120197956887798346t_char @ null_nat @ F5 ) )
                    = pnone ) ) ) ) ) ).

% valid_mask.pelims(2)
thf(fact_990_valid__mask_Opelims_I1_J,axiom,
    ! [X: produc1457211279475724562t_char > prat,Y2: $o] :
      ( ( ( valid_mask @ X )
        = Y2 )
     => ( ( accp_P4765339447491148764r_prat @ valid_mask_rel @ X )
       => ~ ( ( Y2
              = ( ! [Hl2: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl2 ) )
                & ! [F3: list_char] :
                    ( ( X @ ( produc120197956887798346t_char @ null_nat @ F3 ) )
                    = pnone ) ) )
           => ~ ( accp_P4765339447491148764r_prat @ valid_mask_rel @ X ) ) ) ) ).

% valid_mask.pelims(1)
thf(fact_991_option_Orel__compp__Grp,axiom,
    ( rel_op2494113632589343803t_char
    = ( ^ [R3: nat > list_char > $o] :
          ( relcom4704765297650120440t_char
          @ ( conver779780868667509187on_nat
            @ ( bNF_Gr8209631520120356778on_nat
              @ ( collec3561702660602934339t_char
                @ ^ [X3: option2736423997234022232t_char] : ( ord_le6315511645215477266t_char @ ( set_op7440730737645789856t_char @ X3 ) @ ( collec2458894688891239037t_char @ ( produc8526122873445342073char_o @ R3 ) ) ) )
              @ ( map_op2304244586335077271ar_nat @ produc6204653154488278070t_char ) ) )
          @ ( bNF_Gr8228872360220102203t_char
            @ ( collec3561702660602934339t_char
              @ ^ [X3: option2736423997234022232t_char] : ( ord_le6315511645215477266t_char @ ( set_op7440730737645789856t_char @ X3 ) @ ( collec2458894688891239037t_char @ ( produc8526122873445342073char_o @ R3 ) ) ) )
            @ ( map_op1953669867509794472t_char @ produc1900778367047502200t_char ) ) ) ) ) ).

% option.rel_compp_Grp
thf(fact_992_option_Orel__compp__Grp,axiom,
    ( rel_op7555592896143267045on_val
    = ( ^ [R3: ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > option_val ) > $o] :
          ( relcom6540676319459279872on_val
          @ ( conver7264604305941033974r_prat
            @ ( bNF_Gr4505501571886485853r_prat
              @ ( collec6281439769543645121on_val
                @ ^ [X3: option8887860577033306220on_val] : ( ord_le6900622908513426738on_val @ ( set_op9004752959087400718on_val @ X3 ) @ ( collec7475294502966882545on_val @ ( produc5248837549992124053_val_o @ R3 ) ) ) )
              @ ( map_op457311912167326058r_prat @ produc5239619271231976746on_val ) ) )
          @ ( bNF_Gr7204040508389623334on_val
            @ ( collec6281439769543645121on_val
              @ ^ [X3: option8887860577033306220on_val] : ( ord_le6900622908513426738on_val @ ( set_op9004752959087400718on_val @ X3 ) @ ( collec7475294502966882545on_val @ ( produc5248837549992124053_val_o @ R3 ) ) ) )
            @ ( map_op5305211447164704579on_val @ produc2319605628138516840on_val ) ) ) ) ) ).

% option.rel_compp_Grp
thf(fact_993_find__Some__iff,axiom,
    ! [P: state > $o,Xs: list_state,X: state] :
      ( ( ( find_state @ P @ Xs )
        = ( some_state @ X ) )
      = ( ? [I: nat] :
            ( ( ord_less_nat @ I @ ( size_size_list_state @ Xs ) )
            & ( P @ ( nth_state @ Xs @ I ) )
            & ( X
              = ( nth_state @ Xs @ I ) )
            & ! [J: nat] :
                ( ( ord_less_nat @ J @ I )
               => ~ ( P @ ( nth_state @ Xs @ J ) ) ) ) ) ) ).

% find_Some_iff
thf(fact_994_find__Some__iff,axiom,
    ! [P: val > $o,Xs: list_val,X: val] :
      ( ( ( find_val @ P @ Xs )
        = ( some_val @ X ) )
      = ( ? [I: nat] :
            ( ( ord_less_nat @ I @ ( size_size_list_val @ Xs ) )
            & ( P @ ( nth_val @ Xs @ I ) )
            & ( X
              = ( nth_val @ Xs @ I ) )
            & ! [J: nat] :
                ( ( ord_less_nat @ J @ I )
               => ~ ( P @ ( nth_val @ Xs @ J ) ) ) ) ) ) ).

% find_Some_iff
thf(fact_995_find__Some__iff2,axiom,
    ! [X: state,P: state > $o,Xs: list_state] :
      ( ( ( some_state @ X )
        = ( find_state @ P @ Xs ) )
      = ( ? [I: nat] :
            ( ( ord_less_nat @ I @ ( size_size_list_state @ Xs ) )
            & ( P @ ( nth_state @ Xs @ I ) )
            & ( X
              = ( nth_state @ Xs @ I ) )
            & ! [J: nat] :
                ( ( ord_less_nat @ J @ I )
               => ~ ( P @ ( nth_state @ Xs @ J ) ) ) ) ) ) ).

% find_Some_iff2
thf(fact_996_find__Some__iff2,axiom,
    ! [X: val,P: val > $o,Xs: list_val] :
      ( ( ( some_val @ X )
        = ( find_val @ P @ Xs ) )
      = ( ? [I: nat] :
            ( ( ord_less_nat @ I @ ( size_size_list_val @ Xs ) )
            & ( P @ ( nth_val @ Xs @ I ) )
            & ( X
              = ( nth_val @ Xs @ I ) )
            & ! [J: nat] :
                ( ( ord_less_nat @ J @ I )
               => ~ ( P @ ( nth_val @ Xs @ J ) ) ) ) ) ) ).

% find_Some_iff2
thf(fact_997_map__add__map__of__foldr,axiom,
    ! [M: produc1457211279475724562t_char > option_val,Ps: list_P375024181684815772ar_val] :
      ( ( map_ad2908576761495157028ar_val @ M @ ( map_of6844234013878170066ar_val @ Ps ) )
      = ( foldr_426452288693369417on_val
        @ ( produc6541823961022407022on_val
          @ ^ [K2: produc1457211279475724562t_char,V: val,M4: produc1457211279475724562t_char > option_val] : ( fun_up5735975307950539954on_val @ M4 @ K2 @ ( some_val @ V ) ) )
        @ Ps
        @ M ) ) ).

% map_add_map_of_foldr
thf(fact_998_semilattice__set_Oeq__fold_H,axiom,
    ! [F: state > state > state,A5: set_state] :
      ( ( lattic1830746154417612460_state @ F )
     => ( ( lattic8707496982837646688_state @ F @ A5 )
        = ( the_state
          @ ( finite8091670487289438734_state
            @ ^ [X3: state,Y3: option_state] : ( some_state @ ( case_o2102410670496921089_state @ X3 @ ( F @ X3 ) @ Y3 ) )
            @ none_state
            @ A5 ) ) ) ) ).

% semilattice_set.eq_fold'
thf(fact_999_semilattice__set_Oeq__fold_H,axiom,
    ! [F: val > val > val,A5: set_val] :
      ( ( lattic1688671459694253327et_val @ F )
     => ( ( lattic7553830378228561755_F_val @ F @ A5 )
        = ( the_val
          @ ( finite4564359178381958990on_val
            @ ^ [X3: val,Y3: option_val] : ( some_val @ ( case_option_val_val @ X3 @ ( F @ X3 ) @ Y3 ) )
            @ none_val
            @ A5 ) ) ) ) ).

% semilattice_set.eq_fold'
thf(fact_1000_semilattice__set_Oinfinite,axiom,
    ! [F: state > state > state,A5: set_state] :
      ( ( lattic1830746154417612460_state @ F )
     => ( ~ ( finite_finite_state @ A5 )
       => ( ( lattic8707496982837646688_state @ F @ A5 )
          = ( the_state @ none_state ) ) ) ) ).

% semilattice_set.infinite
thf(fact_1001_semilattice__set_Oinfinite,axiom,
    ! [F: val > val > val,A5: set_val] :
      ( ( lattic1688671459694253327et_val @ F )
     => ( ~ ( finite_finite_val @ A5 )
       => ( ( lattic7553830378228561755_F_val @ F @ A5 )
          = ( the_val @ none_val ) ) ) ) ).

% semilattice_set.infinite
thf(fact_1002_option_Odisc__transfer_I1_J,axiom,
    ! [R4: state > state > $o] :
      ( bNF_re6905797707481504115te_o_o @ ( rel_op4316599310523903102_state @ R4 )
      @ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
      @ ^ [Option3: option_state] : ( Option3 = none_state )
      @ ^ [Option3: option_state] : ( Option3 = none_state ) ) ).

% option.disc_transfer(1)
thf(fact_1003_option_Odisc__transfer_I1_J,axiom,
    ! [R4: state > val > $o] :
      ( bNF_re3324221780734229534al_o_o @ ( rel_option_state_val @ R4 )
      @ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
      @ ^ [Option3: option_state] : ( Option3 = none_state )
      @ ^ [Option3: option_val] : ( Option3 = none_val ) ) ).

% option.disc_transfer(1)
thf(fact_1004_option_Odisc__transfer_I1_J,axiom,
    ! [R4: val > state > $o] :
      ( bNF_re9208312572002657588te_o_o @ ( rel_option_val_state @ R4 )
      @ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
      @ ^ [Option3: option_val] : ( Option3 = none_val )
      @ ^ [Option3: option_state] : ( Option3 = none_state ) ) ).

% option.disc_transfer(1)
thf(fact_1005_option_Odisc__transfer_I1_J,axiom,
    ! [R4: val > val > $o] :
      ( bNF_re8803170646668426653al_o_o @ ( rel_option_val_val @ R4 )
      @ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
      @ ^ [Option3: option_val] : ( Option3 = none_val )
      @ ^ [Option3: option_val] : ( Option3 = none_val ) ) ).

% option.disc_transfer(1)
thf(fact_1006_option_Odisc__transfer_I2_J,axiom,
    ! [R4: state > state > $o] :
      ( bNF_re6905797707481504115te_o_o @ ( rel_op4316599310523903102_state @ R4 )
      @ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
      @ ^ [Option3: option_state] : ( Option3 != none_state )
      @ ^ [Option3: option_state] : ( Option3 != none_state ) ) ).

% option.disc_transfer(2)
thf(fact_1007_option_Odisc__transfer_I2_J,axiom,
    ! [R4: state > val > $o] :
      ( bNF_re3324221780734229534al_o_o @ ( rel_option_state_val @ R4 )
      @ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
      @ ^ [Option3: option_state] : ( Option3 != none_state )
      @ ^ [Option3: option_val] : ( Option3 != none_val ) ) ).

% option.disc_transfer(2)
thf(fact_1008_option_Odisc__transfer_I2_J,axiom,
    ! [R4: val > state > $o] :
      ( bNF_re9208312572002657588te_o_o @ ( rel_option_val_state @ R4 )
      @ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
      @ ^ [Option3: option_val] : ( Option3 != none_val )
      @ ^ [Option3: option_state] : ( Option3 != none_state ) ) ).

% option.disc_transfer(2)
thf(fact_1009_option_Odisc__transfer_I2_J,axiom,
    ! [R4: val > val > $o] :
      ( bNF_re8803170646668426653al_o_o @ ( rel_option_val_val @ R4 )
      @ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
      @ ^ [Option3: option_val] : ( Option3 != none_val )
      @ ^ [Option3: option_val] : ( Option3 != none_val ) ) ).

% option.disc_transfer(2)
thf(fact_1010_option_Octr__transfer_I2_J,axiom,
    ! [R4: state > state > $o] : ( bNF_re349789735553525609_state @ R4 @ ( rel_op4316599310523903102_state @ R4 ) @ some_state @ some_state ) ).

% option.ctr_transfer(2)
thf(fact_1011_option_Octr__transfer_I2_J,axiom,
    ! [R4: state > val > $o] : ( bNF_re3246193597797267091on_val @ R4 @ ( rel_option_state_val @ R4 ) @ some_state @ some_val ) ).

% option.ctr_transfer(2)
thf(fact_1012_option_Octr__transfer_I2_J,axiom,
    ! [R4: val > state > $o] : ( bNF_re724738890469284915_state @ R4 @ ( rel_option_val_state @ R4 ) @ some_val @ some_state ) ).

% option.ctr_transfer(2)
thf(fact_1013_option_Octr__transfer_I2_J,axiom,
    ! [R4: val > val > $o] : ( bNF_re7986259651653764189on_val @ R4 @ ( rel_option_val_val @ R4 ) @ some_val @ some_val ) ).

% option.ctr_transfer(2)
thf(fact_1014_option_Opred__inject_I2_J,axiom,
    ! [P: state > $o,A2: state] :
      ( ( pred_option_state @ P @ ( some_state @ A2 ) )
      = ( P @ A2 ) ) ).

% option.pred_inject(2)
thf(fact_1015_option_Opred__inject_I2_J,axiom,
    ! [P: val > $o,A2: val] :
      ( ( pred_option_val @ P @ ( some_val @ A2 ) )
      = ( P @ A2 ) ) ).

% option.pred_inject(2)
thf(fact_1016_option_Opred__inject_I1_J,axiom,
    ! [P: state > $o] : ( pred_option_state @ P @ none_state ) ).

% option.pred_inject(1)
thf(fact_1017_option_Opred__inject_I1_J,axiom,
    ! [P: val > $o] : ( pred_option_val @ P @ none_val ) ).

% option.pred_inject(1)
thf(fact_1018_option_Opred__mono__strong,axiom,
    ! [P: produc9003781588162623004on_val > $o,X: option8887860577033306220on_val,Pa: produc9003781588162623004on_val > $o] :
      ( ( pred_o6356550725404909017on_val @ P @ X )
     => ( ! [Z2: produc9003781588162623004on_val] :
            ( ( member2879030624002546611on_val @ Z2 @ ( set_op9004752959087400718on_val @ X ) )
           => ( ( P @ Z2 )
             => ( Pa @ Z2 ) ) )
       => ( pred_o6356550725404909017on_val @ Pa @ X ) ) ) ).

% option.pred_mono_strong
thf(fact_1019_option_Opred__cong,axiom,
    ! [X: option8887860577033306220on_val,Ya: option8887860577033306220on_val,P: produc9003781588162623004on_val > $o,Pa: produc9003781588162623004on_val > $o] :
      ( ( X = Ya )
     => ( ! [Z2: produc9003781588162623004on_val] :
            ( ( member2879030624002546611on_val @ Z2 @ ( set_op9004752959087400718on_val @ Ya ) )
           => ( ( P @ Z2 )
              = ( Pa @ Z2 ) ) )
       => ( ( pred_o6356550725404909017on_val @ P @ X )
          = ( pred_o6356550725404909017on_val @ Pa @ Ya ) ) ) ) ).

% option.pred_cong

% Helper facts (15)
thf(help_If_2_1_If_001t__Mask__Oval_T,axiom,
    ! [X: val,Y2: val] :
      ( ( if_val @ $false @ X @ Y2 )
      = Y2 ) ).

thf(help_If_1_1_If_001t__Mask__Oval_T,axiom,
    ! [X: val,Y2: val] :
      ( ( if_val @ $true @ X @ Y2 )
      = X ) ).

thf(help_If_2_1_If_001t__PosRat__Oprat_T,axiom,
    ! [X: prat,Y2: prat] :
      ( ( if_prat @ $false @ X @ Y2 )
      = Y2 ) ).

thf(help_If_1_1_If_001t__PosRat__Oprat_T,axiom,
    ! [X: prat,Y2: prat] :
      ( ( if_prat @ $true @ X @ Y2 )
      = X ) ).

thf(help_If_2_1_If_001t__Option__Ooption_It__Mask__Oval_J_T,axiom,
    ! [X: option_val,Y2: option_val] :
      ( ( if_option_val @ $false @ X @ Y2 )
      = Y2 ) ).

thf(help_If_1_1_If_001t__Option__Ooption_It__Mask__Oval_J_T,axiom,
    ! [X: option_val,Y2: option_val] :
      ( ( if_option_val @ $true @ X @ Y2 )
      = X ) ).

thf(help_If_2_1_If_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_T,axiom,
    ! [X: option_state,Y2: option_state] :
      ( ( if_option_state @ $false @ X @ Y2 )
      = Y2 ) ).

thf(help_If_1_1_If_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_T,axiom,
    ! [X: option_state,Y2: option_state] :
      ( ( if_option_state @ $true @ X @ Y2 )
      = X ) ).

thf(help_If_2_1_If_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J_T,axiom,
    ! [X: option_list_char,Y2: option_list_char] :
      ( ( if_option_list_char @ $false @ X @ Y2 )
      = Y2 ) ).

thf(help_If_1_1_If_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J_T,axiom,
    ! [X: option_list_char,Y2: option_list_char] :
      ( ( if_option_list_char @ $true @ X @ Y2 )
      = X ) ).

thf(help_If_2_1_If_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_T,axiom,
    ! [X: option5747939881698552298on_val,Y2: option5747939881698552298on_val] :
      ( ( if_opt6509584284076893604on_val @ $false @ X @ Y2 )
      = Y2 ) ).

thf(help_If_1_1_If_001t__Option__Ooption_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_T,axiom,
    ! [X: option5747939881698552298on_val,Y2: option5747939881698552298on_val] :
      ( ( if_opt6509584284076893604on_val @ $true @ X @ Y2 )
      = X ) ).

thf(help_If_3_1_If_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__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_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_T,axiom,
    ! [X: option8887860577033306220on_val,Y2: option8887860577033306220on_val] :
      ( ( if_opt2965748431298708774on_val @ $false @ X @ Y2 )
      = Y2 ) ).

thf(help_If_1_1_If_001t__Option__Ooption_It__Product____Type__Oprod_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_M_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__Option__Ooption_It__Mask__Oval_J_J_J_J_T,axiom,
    ! [X: option8887860577033306220on_val,Y2: option8887860577033306220on_val] :
      ( ( if_opt2965748431298708774on_val @ $true @ X @ Y2 )
      = X ) ).

% Conjectures (1)
thf(conj_0,conjecture,
    ( ( plus @ ab @ c )
    = ( plus @ a @ bc ) ) ).

%------------------------------------------------------------------------------