TPTP Problem File: SLH0482^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_00227_006795__7255792_1 [Des23]

% Status   : Theorem
% Rating   : ? v8.2.0
% Syntax   : Number of formulae    : 1532 ( 586 unt; 503 typ;   0 def)
%            Number of atoms       : 2706 (1726 equ;   0 cnn)
%            Maximal formula atoms :   14 (   2 avg)
%            Number of connectives : 7671 ( 425   ~;  55   |; 178   &;6103   @)
%                                         (   0 <=>; 910  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   20 (   5 avg)
%            Number of types       :   53 (  52 usr)
%            Number of type conns  : 2526 (2526   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :  454 ( 451 usr;  37 con; 0-4 aty)
%            Number of variables   : 2780 ( 318   ^;2371   !;  91   ?;2780   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2023-01-19 09:08:33.101
%------------------------------------------------------------------------------
% Could-be-implicit typings (52)
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__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__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 (451)
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_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_J,type,
    inf_in7380704097939900321r_prat: set_Pr3433046674199179443r_prat > set_Pr3433046674199179443r_prat > set_Pr3433046674199179443r_prat ).

thf(sy_c_Lattices_Oinf__class_Oinf_001t__Set__Oset_It__Nat__Onat_J,type,
    inf_inf_set_nat: set_nat > set_nat > set_nat ).

thf(sy_c_Lattices_Oinf__class_Oinf_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,
    inf_in1079285664774927716on_val: set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val > set_Pr7649655576376376530on_val ).

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__Mask__Oval_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,
    restri8187230408314553963on_val: ( val > option5747939881698552298on_val ) > set_val > val > 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_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_v3756559123625202269on_val: option_val > ( val > option5747939881698552298on_val ) > option5747939881698552298on_val ).

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__Option__Ooption_It__PartialHeapSA__Ostate_J,type,
    some_option_state: option_state > option_option_state ).

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_char: 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_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_I_062_It__Product____Type__Oprod_It__Nat__Onat_Mt__List__Olist_It__String__Ochar_J_J_Mt__PosRat__Oprat_J_J,type,
    bot_bo3164680191535668511r_prat: set_Pr3433046674199179443r_prat ).

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__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__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__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__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__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_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,
    insert216038912599248202on_val: ( produc1457211279475724562t_char > option_val ) > set_Pr1004501353197068112on_val > set_Pr1004501353197068112on_val ).

thf(sy_c_Set_Oinsert_001t__List__Olist_It__String__Ochar_J,type,
    insert_list_char: list_char > set_list_char > set_list_char ).

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_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__092_060phi_062,type,
    phi: state ).

thf(sy_v__092_060phi_062_H,type,
    phi2: state ).

% Relevant facts (1012)
thf(fact_0__092_060open_062_092_060phi_062_A_092_060oplus_062_A_092_060phi_062_H_A_092_060noteq_062_ANone_A_092_060Longrightarrow_062_Acompatible__heaps_A_Iget__h_A_092_060phi_062_J_A_Iget__h_A_092_060phi_062_H_J_A_092_060and_062_Avalid__mask_A_Iadd__masks_A_Iget__m_A_092_060phi_062_J_A_Iget__m_A_092_060phi_062_H_J_J_092_060close_062,axiom,
    ( ( ( plus @ phi @ phi2 )
     != none_state )
   => ( ( compatible_heaps @ ( get_h @ phi ) @ ( get_h @ phi2 ) )
      & ( valid_mask @ ( add_ma6586698345353345811t_char @ ( get_m @ phi ) @ ( get_m @ phi2 ) ) ) ) ) ).

% \<open>\<phi> \<oplus> \<phi>' \<noteq> None \<Longrightarrow> compatible_heaps (get_h \<phi>) (get_h \<phi>') \<and> valid_mask (add_masks (get_m \<phi>) (get_m \<phi>'))\<close>
thf(fact_1_upper__valid,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( valid_mask @ A )
     => ( ( A
          = ( add_ma6586698345353345811t_char @ B @ C ) )
       => ( ( valid_mask @ B )
          & ( valid_mask @ C ) ) ) ) ).

% upper_valid
thf(fact_2_upper__valid__aux,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( valid_mask @ A )
     => ( ( A
          = ( add_ma6586698345353345811t_char @ B @ C ) )
       => ( valid_mask @ B ) ) ) ).

% upper_valid_aux
thf(fact_3_empty__heap__def,axiom,
    ( empty_7512026568161686585ar_val
    = ( ^ [Hl: produc1457211279475724562t_char] : none_val ) ) ).

% empty_heap_def
thf(fact_4_add__masks__asso,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( add_ma6586698345353345811t_char @ ( add_ma6586698345353345811t_char @ A @ B ) @ C )
      = ( add_ma6586698345353345811t_char @ A @ ( add_ma6586698345353345811t_char @ B @ C ) ) ) ).

% add_masks_asso
thf(fact_5_add__masks__comm,axiom,
    ( add_ma6586698345353345811t_char
    = ( ^ [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > prat] : ( add_ma6586698345353345811t_char @ B2 @ A2 ) ) ) ).

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

% add_masks_cancellative
thf(fact_7_compatible__heaps__def,axiom,
    ( compatible_heaps
    = ( ^ [H: produc1457211279475724562t_char > option_val,H2: produc1457211279475724562t_char > option_val] :
        ! [Hl: produc1457211279475724562t_char] : ( compat7209469420100717861ns_val @ ( H @ Hl ) @ ( H2 @ Hl ) ) ) ) ).

% compatible_heaps_def
thf(fact_8_compatible__options_Osimps_I3_J,axiom,
    ! [Uu: option8887860577033306220on_val] : ( compat6602494657299208312on_val @ Uu @ none_P8728355543607141243on_val ) ).

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

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

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

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

% compatible_options.simps(3)
thf(fact_13_compatible__options_Osimps_I2_J,axiom,
    ! [Uv: option8887860577033306220on_val] : ( compat6602494657299208312on_val @ none_P8728355543607141243on_val @ Uv ) ).

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

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

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

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

% compatible_options.simps(2)
thf(fact_18_larger__heap__comp,axiom,
    ! [A: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val,C: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A @ B )
     => ( ( compatible_heaps @ A @ C )
       => ( compatible_heaps @ B @ C ) ) ) ).

% larger_heap_comp
thf(fact_19_larger__compatible__sum__heaps,axiom,
    ! [A: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val,Y: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A @ X )
     => ( ( larger1532547405891354081ar_val @ B @ Y )
       => ( ( compatible_heaps @ A @ B )
         => ( compatible_heaps @ X @ Y ) ) ) ) ).

% larger_compatible_sum_heaps
thf(fact_20_larger__heap__trans,axiom,
    ! [A: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val,C: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A @ B )
     => ( ( larger1532547405891354081ar_val @ B @ C )
       => ( larger1532547405891354081ar_val @ A @ C ) ) ) ).

% larger_heap_trans
thf(fact_21_larger__heap__refl,axiom,
    ! [H3: produc1457211279475724562t_char > option_val] : ( larger1532547405891354081ar_val @ H3 @ H3 ) ).

% larger_heap_refl
thf(fact_22_larger__heap__anti,axiom,
    ! [A: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A @ B )
     => ( ( larger1532547405891354081ar_val @ B @ A )
       => ( A = B ) ) ) ).

% larger_heap_anti
thf(fact_23_valid__mask__full__mask,axiom,
    valid_mask @ full_mask ).

% valid_mask_full_mask
thf(fact_24_add__masks__equiv__valid__null,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat] :
      ( ( valid_null @ ( add_ma6586698345353345811t_char @ A @ B ) )
      = ( ( valid_null @ A )
        & ( valid_null @ B ) ) ) ).

% add_masks_equiv_valid_null
thf(fact_25_PartialHeapSA_Ostable__def,axiom,
    ( stable
    = ( ^ [Phi: state] :
        ! [Hl: produc1457211279475724562t_char] :
          ( ( ppos @ ( get_m @ Phi @ Hl ) )
          = ( ( get_h @ Phi @ Hl )
           != none_val ) ) ) ) ).

% PartialHeapSA.stable_def
thf(fact_26_larger__heaps__sum__ineq,axiom,
    ! [A3: produc1457211279475724562t_char > option_val,A: produc1457211279475724562t_char > option_val,B3: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A3 @ A )
     => ( ( larger1532547405891354081ar_val @ B3 @ B )
       => ( ( compatible_heaps @ A3 @ B3 )
         => ( larger1532547405891354081ar_val @ ( map_ad2908576761495157028ar_val @ A3 @ B3 ) @ ( map_ad2908576761495157028ar_val @ A @ B ) ) ) ) ) ).

% larger_heaps_sum_ineq
thf(fact_27_minus__empty,axiom,
    ! [Pi: ( produc1457211279475724562t_char > prat ) > prat] :
      ( Pi
      = ( add_ma5081279659257173972r_prat @ Pi @ empty_6616431780912394577r_prat ) ) ).

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

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

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

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

% minus_empty
thf(fact_32_combine__options__simps_I1_J,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val > produc9003781588162623004on_val,Y: option8887860577033306220on_val] :
      ( ( combin6222804963853957469on_val @ F @ none_P8728355543607141243on_val @ Y )
      = Y ) ).

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

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

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

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

% combine_options_simps(1)
thf(fact_37_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_38_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_39_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_40_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_41_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_42_compatible__options_Oelims_I1_J,axiom,
    ! [X: option8887860577033306220on_val,Xa: option8887860577033306220on_val,Y: $o] :
      ( ( ( compat6602494657299208312on_val @ X @ Xa )
        = Y )
     => ( ! [A4: produc9003781588162623004on_val] :
            ( ( X
              = ( some_P2581650809551911671on_val @ A4 ) )
           => ! [B4: produc9003781588162623004on_val] :
                ( ( Xa
                  = ( some_P2581650809551911671on_val @ B4 ) )
               => ( Y
                  = ( A4 != B4 ) ) ) )
       => ( ( ( X = none_P8728355543607141243on_val )
           => ~ Y )
         => ~ ( ( Xa = none_P8728355543607141243on_val )
             => ~ Y ) ) ) ) ).

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

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

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

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

% compatible_options.elims(1)
thf(fact_47_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_48_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_49_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_50_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_51_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_52_option_Oinject,axiom,
    ! [X2: produc9003781588162623004on_val,Y2: produc9003781588162623004on_val] :
      ( ( ( some_P2581650809551911671on_val @ X2 )
        = ( some_P2581650809551911671on_val @ Y2 ) )
      = ( X2 = Y2 ) ) ).

% option.inject
thf(fact_53_option_Oinject,axiom,
    ! [X2: list_char,Y2: list_char] :
      ( ( ( some_list_char @ X2 )
        = ( some_list_char @ Y2 ) )
      = ( X2 = Y2 ) ) ).

% option.inject
thf(fact_54_option_Oinject,axiom,
    ! [X2: produc1457211279475724562t_char > option_val,Y2: produc1457211279475724562t_char > option_val] :
      ( ( ( some_P7669353234731512949on_val @ X2 )
        = ( some_P7669353234731512949on_val @ Y2 ) )
      = ( X2 = Y2 ) ) ).

% option.inject
thf(fact_55_option_Oinject,axiom,
    ! [X2: val,Y2: val] :
      ( ( ( some_val @ X2 )
        = ( some_val @ Y2 ) )
      = ( X2 = Y2 ) ) ).

% option.inject
thf(fact_56_option_Oinject,axiom,
    ! [X2: state,Y2: state] :
      ( ( ( some_state @ X2 )
        = ( some_state @ Y2 ) )
      = ( X2 = Y2 ) ) ).

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

% not_None_eq
thf(fact_58_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_59_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_60_not__None__eq,axiom,
    ! [X: option_val] :
      ( ( X != none_val )
      = ( ? [Y3: val] :
            ( X
            = ( some_val @ Y3 ) ) ) ) ).

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

% not_None_eq
thf(fact_62_not__Some__eq,axiom,
    ! [X: option8887860577033306220on_val] :
      ( ( ! [Y3: produc9003781588162623004on_val] :
            ( X
           != ( some_P2581650809551911671on_val @ Y3 ) ) )
      = ( X = none_P8728355543607141243on_val ) ) ).

% not_Some_eq
thf(fact_63_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_64_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_65_not__Some__eq,axiom,
    ! [X: option_val] :
      ( ( ! [Y3: val] :
            ( X
           != ( some_val @ Y3 ) ) )
      = ( X = none_val ) ) ).

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

% not_Some_eq
thf(fact_67_combine__options__simps_I3_J,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val > produc9003781588162623004on_val,A: produc9003781588162623004on_val,B: produc9003781588162623004on_val] :
      ( ( combin6222804963853957469on_val @ F @ ( some_P2581650809551911671on_val @ A ) @ ( some_P2581650809551911671on_val @ B ) )
      = ( some_P2581650809551911671on_val @ ( F @ A @ B ) ) ) ).

% combine_options_simps(3)
thf(fact_68_combine__options__simps_I3_J,axiom,
    ! [F: list_char > list_char > list_char,A: list_char,B: list_char] :
      ( ( combin4118143342443788322t_char @ F @ ( some_list_char @ A ) @ ( some_list_char @ B ) )
      = ( some_list_char @ ( F @ A @ B ) ) ) ).

% combine_options_simps(3)
thf(fact_69_combine__options__simps_I3_J,axiom,
    ! [F: ( produc1457211279475724562t_char > option_val ) > ( produc1457211279475724562t_char > option_val ) > produc1457211279475724562t_char > option_val,A: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val] :
      ( ( combin3271118981050854363on_val @ F @ ( some_P7669353234731512949on_val @ A ) @ ( some_P7669353234731512949on_val @ B ) )
      = ( some_P7669353234731512949on_val @ ( F @ A @ B ) ) ) ).

% combine_options_simps(3)
thf(fact_70_combine__options__simps_I3_J,axiom,
    ! [F: val > val > val,A: val,B: val] :
      ( ( combine_options_val @ F @ ( some_val @ A ) @ ( some_val @ B ) )
      = ( some_val @ ( F @ A @ B ) ) ) ).

% combine_options_simps(3)
thf(fact_71_combine__options__simps_I3_J,axiom,
    ! [F: state > state > state,A: state,B: state] :
      ( ( combin3633514924185701883_state @ F @ ( some_state @ A ) @ ( some_state @ B ) )
      = ( some_state @ ( F @ A @ B ) ) ) ).

% combine_options_simps(3)
thf(fact_72_combine__options__assoc,axiom,
    ! [F: val > val > val,X: option_val,Y: option_val,Z: option_val] :
      ( ! [X3: val,Y4: val,Z2: val] :
          ( ( F @ ( F @ X3 @ Y4 ) @ Z2 )
          = ( F @ X3 @ ( F @ Y4 @ Z2 ) ) )
     => ( ( combine_options_val @ F @ ( combine_options_val @ F @ X @ Y ) @ Z )
        = ( combine_options_val @ F @ X @ ( combine_options_val @ F @ Y @ Z ) ) ) ) ).

% combine_options_assoc
thf(fact_73_combine__options__assoc,axiom,
    ! [F: state > state > state,X: option_state,Y: option_state,Z: option_state] :
      ( ! [X3: state,Y4: state,Z2: state] :
          ( ( F @ ( F @ X3 @ Y4 ) @ Z2 )
          = ( F @ X3 @ ( F @ Y4 @ Z2 ) ) )
     => ( ( combin3633514924185701883_state @ F @ ( combin3633514924185701883_state @ F @ X @ Y ) @ Z )
        = ( combin3633514924185701883_state @ F @ X @ ( combin3633514924185701883_state @ F @ Y @ Z ) ) ) ) ).

% combine_options_assoc
thf(fact_74_combine__options__commute,axiom,
    ! [F: val > val > val,X: option_val,Y: option_val] :
      ( ! [X3: val,Y4: val] :
          ( ( F @ X3 @ Y4 )
          = ( F @ Y4 @ X3 ) )
     => ( ( combine_options_val @ F @ X @ Y )
        = ( combine_options_val @ F @ Y @ X ) ) ) ).

% combine_options_commute
thf(fact_75_combine__options__commute,axiom,
    ! [F: state > state > state,X: option_state,Y: option_state] :
      ( ! [X3: state,Y4: state] :
          ( ( F @ X3 @ Y4 )
          = ( F @ Y4 @ X3 ) )
     => ( ( combin3633514924185701883_state @ F @ X @ Y )
        = ( combin3633514924185701883_state @ F @ Y @ X ) ) ) ).

% combine_options_commute
thf(fact_76_combine__options__left__commute,axiom,
    ! [F: val > val > val,Y: option_val,X: option_val,Z: option_val] :
      ( ! [X3: val,Y4: val] :
          ( ( F @ X3 @ Y4 )
          = ( F @ Y4 @ X3 ) )
     => ( ! [X3: val,Y4: val,Z2: val] :
            ( ( F @ ( F @ X3 @ Y4 ) @ Z2 )
            = ( F @ X3 @ ( F @ Y4 @ Z2 ) ) )
       => ( ( combine_options_val @ F @ Y @ ( combine_options_val @ F @ X @ Z ) )
          = ( combine_options_val @ F @ X @ ( combine_options_val @ F @ Y @ Z ) ) ) ) ) ).

% combine_options_left_commute
thf(fact_77_combine__options__left__commute,axiom,
    ! [F: state > state > state,Y: option_state,X: option_state,Z: option_state] :
      ( ! [X3: state,Y4: state] :
          ( ( F @ X3 @ Y4 )
          = ( F @ Y4 @ X3 ) )
     => ( ! [X3: state,Y4: state,Z2: state] :
            ( ( F @ ( F @ X3 @ Y4 ) @ Z2 )
            = ( F @ X3 @ ( F @ Y4 @ Z2 ) ) )
       => ( ( combin3633514924185701883_state @ F @ Y @ ( combin3633514924185701883_state @ F @ X @ Z ) )
          = ( combin3633514924185701883_state @ F @ X @ ( combin3633514924185701883_state @ F @ Y @ Z ) ) ) ) ) ).

% combine_options_left_commute
thf(fact_78_option_Odistinct_I1_J,axiom,
    ! [X2: produc9003781588162623004on_val] :
      ( none_P8728355543607141243on_val
     != ( some_P2581650809551911671on_val @ X2 ) ) ).

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

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

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

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

% option.distinct(1)
thf(fact_83_option_OdiscI,axiom,
    ! [Option: option8887860577033306220on_val,X2: produc9003781588162623004on_val] :
      ( ( Option
        = ( some_P2581650809551911671on_val @ X2 ) )
     => ( Option != none_P8728355543607141243on_val ) ) ).

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

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

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

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

% option.discI
thf(fact_88_option_Oexhaust,axiom,
    ! [Y: option8887860577033306220on_val] :
      ( ( Y != none_P8728355543607141243on_val )
     => ~ ! [X22: produc9003781588162623004on_val] :
            ( Y
           != ( some_P2581650809551911671on_val @ X22 ) ) ) ).

% option.exhaust
thf(fact_89_option_Oexhaust,axiom,
    ! [Y: option_list_char] :
      ( ( Y != none_list_char )
     => ~ ! [X22: list_char] :
            ( Y
           != ( some_list_char @ X22 ) ) ) ).

% option.exhaust
thf(fact_90_option_Oexhaust,axiom,
    ! [Y: option5747939881698552298on_val] :
      ( ( Y != none_P1334921381875262201on_val )
     => ~ ! [X22: produc1457211279475724562t_char > option_val] :
            ( Y
           != ( some_P7669353234731512949on_val @ X22 ) ) ) ).

% option.exhaust
thf(fact_91_option_Oexhaust,axiom,
    ! [Y: option_val] :
      ( ( Y != none_val )
     => ~ ! [X22: val] :
            ( Y
           != ( some_val @ X22 ) ) ) ).

% option.exhaust
thf(fact_92_option_Oexhaust,axiom,
    ! [Y: option_state] :
      ( ( Y != none_state )
     => ~ ! [X22: state] :
            ( Y
           != ( some_state @ X22 ) ) ) ).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

% combine_options_cases
thf(fact_132_combine__options__cases,axiom,
    ! [X: option_state,P: option_state > option_state > $o,Y: option_state] :
      ( ( ( X = none_state )
       => ( P @ X @ Y ) )
     => ( ( ( Y = none_state )
         => ( P @ X @ Y ) )
       => ( ! [A4: state,B4: state] :
              ( ( X
                = ( some_state @ A4 ) )
             => ( ( Y
                  = ( some_state @ B4 ) )
               => ( P @ X @ Y ) ) )
         => ( P @ X @ Y ) ) ) ) ).

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

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

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

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

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

% combine_options_cases
thf(fact_138_combine__options__cases,axiom,
    ! [X: option_val,P: option_val > option5747939881698552298on_val > $o,Y: option5747939881698552298on_val] :
      ( ( ( X = none_val )
       => ( P @ X @ Y ) )
     => ( ( ( Y = none_P1334921381875262201on_val )
         => ( P @ X @ Y ) )
       => ( ! [A4: val,B4: produc1457211279475724562t_char > option_val] :
              ( ( X
                = ( some_val @ A4 ) )
             => ( ( Y
                  = ( some_P7669353234731512949on_val @ B4 ) )
               => ( P @ X @ Y ) ) )
         => ( P @ X @ Y ) ) ) ) ).

% combine_options_cases
thf(fact_139_larger__heap__def,axiom,
    ( larger1532547405891354081ar_val
    = ( ^ [H2: produc1457211279475724562t_char > option_val,H: produc1457211279475724562t_char > option_val] :
        ! [Hl: produc1457211279475724562t_char,X4: val] :
          ( ( ( H @ Hl )
            = ( some_val @ X4 ) )
         => ( ( H2 @ Hl )
            = ( some_val @ X4 ) ) ) ) ) ).

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

% larger_heapI
thf(fact_141_compatible__heapsI,axiom,
    ! [H3: produc1457211279475724562t_char > option_val,H4: produc1457211279475724562t_char > option_val] :
      ( ! [Hl2: produc1457211279475724562t_char,A4: val,B4: val] :
          ( ( ( H3 @ Hl2 )
            = ( some_val @ A4 ) )
         => ( ( ( H4 @ Hl2 )
              = ( some_val @ B4 ) )
           => ( A4 = B4 ) ) )
     => ( compatible_heaps @ H3 @ H4 ) ) ).

% compatible_heapsI
thf(fact_142_compatible__options_Osimps_I1_J,axiom,
    ! [A: produc9003781588162623004on_val,B: produc9003781588162623004on_val] :
      ( ( compat6602494657299208312on_val @ ( some_P2581650809551911671on_val @ A ) @ ( some_P2581650809551911671on_val @ B ) )
      = ( A = B ) ) ).

% compatible_options.simps(1)
thf(fact_143_compatible__options_Osimps_I1_J,axiom,
    ! [A: list_char,B: list_char] :
      ( ( compat7573737823326560701t_char @ ( some_list_char @ A ) @ ( some_list_char @ B ) )
      = ( A = B ) ) ).

% compatible_options.simps(1)
thf(fact_144_compatible__options_Osimps_I1_J,axiom,
    ! [A: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val] :
      ( ( compat2032066794789061494on_val @ ( some_P7669353234731512949on_val @ A ) @ ( some_P7669353234731512949on_val @ B ) )
      = ( A = B ) ) ).

% compatible_options.simps(1)
thf(fact_145_compatible__options_Osimps_I1_J,axiom,
    ! [A: val,B: val] :
      ( ( compat7209469420100717861ns_val @ ( some_val @ A ) @ ( some_val @ B ) )
      = ( A = B ) ) ).

% compatible_options.simps(1)
thf(fact_146_compatible__options_Osimps_I1_J,axiom,
    ! [A: state,B: state] :
      ( ( compat2278460363914054422_state @ ( some_state @ A ) @ ( some_state @ B ) )
      = ( A = B ) ) ).

% compatible_options.simps(1)
thf(fact_147_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_148_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_149_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_150_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_151_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_152_compatible__heaps__sum,axiom,
    ! [A: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val,C: produc1457211279475724562t_char > option_val] :
      ( ( compatible_heaps @ A @ B )
     => ( ( compatible_heaps @ A @ C )
       => ( compatible_heaps @ A @ ( map_ad2908576761495157028ar_val @ B @ C ) ) ) ) ).

% compatible_heaps_sum
thf(fact_153_compatible__heaps__comm,axiom,
    ! [A: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val] :
      ( ( compatible_heaps @ A @ B )
     => ( ( map_ad2908576761495157028ar_val @ A @ B )
        = ( map_ad2908576761495157028ar_val @ B @ A ) ) ) ).

% compatible_heaps_comm
thf(fact_154_larger__heap__plus,axiom,
    ! [A: produc9003781588162623004on_val > option_state,B: produc9003781588162623004on_val > option_state,C: produc9003781588162623004on_val > option_state] :
      ( ( larger2674307862311229514_state @ A @ B )
     => ( ( larger2674307862311229514_state @ A @ C )
       => ( larger2674307862311229514_state @ A @ ( map_ad2629041965313307917_state @ B @ C ) ) ) ) ).

% larger_heap_plus
thf(fact_155_larger__heap__plus,axiom,
    ! [A: produc9003781588162623004on_val > option_val,B: produc9003781588162623004on_val > option_val,C: produc9003781588162623004on_val > option_val] :
      ( ( larger6282481774126526705al_val @ A @ B )
     => ( ( larger6282481774126526705al_val @ A @ C )
       => ( larger6282481774126526705al_val @ A @ ( map_ad5466549115852757998al_val @ B @ C ) ) ) ) ).

% larger_heap_plus
thf(fact_156_larger__heap__plus,axiom,
    ! [A: produc1457211279475724562t_char > option_val,B: produc1457211279475724562t_char > option_val,C: produc1457211279475724562t_char > option_val] :
      ( ( larger1532547405891354081ar_val @ A @ B )
     => ( ( larger1532547405891354081ar_val @ A @ C )
       => ( larger1532547405891354081ar_val @ A @ ( map_ad2908576761495157028ar_val @ B @ C ) ) ) ) ).

% larger_heap_plus
thf(fact_157_valid__empty,axiom,
    valid_mask @ empty_3446695950879338768t_char ).

% valid_empty
thf(fact_158_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_159_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_160_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_161_map__add__eq__empty__iff,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state] :
      ( ( ( map_ad2629041965313307917_state @ F @ G )
        = ( ^ [X4: produc9003781588162623004on_val] : none_state ) )
      = ( ( F
          = ( ^ [X4: produc9003781588162623004on_val] : none_state ) )
        & ( G
          = ( ^ [X4: produc9003781588162623004on_val] : none_state ) ) ) ) ).

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

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

% map_add_eq_empty_iff
thf(fact_164_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_165_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_166_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_167_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_168_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_169_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_170_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_171_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_172_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_173_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_174_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_175_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_176_valid__heapI,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,H3: produc1457211279475724562t_char > option_val] :
      ( ! [Hl2: produc1457211279475724562t_char] :
          ( ( ppos @ ( Pi @ Hl2 ) )
         => ( ( H3 @ Hl2 )
           != none_val ) )
     => ( valid_heap @ Pi @ H3 ) ) ).

% valid_heapI
thf(fact_177_valid__heap__def,axiom,
    ( valid_heap
    = ( ^ [Pi2: produc1457211279475724562t_char > prat,H: produc1457211279475724562t_char > option_val] :
        ! [Hl: produc1457211279475724562t_char] :
          ( ( ppos @ ( Pi2 @ Hl ) )
         => ( ( H @ Hl )
           != none_val ) ) ) ) ).

% valid_heap_def
thf(fact_178_valid__larger__mask,axiom,
    ( valid_mask
    = ( greate7680731506090375811t_char @ full_mask ) ) ).

% valid_larger_mask
thf(fact_179_greater__mask__properties_I1_J,axiom,
    ! [Pi: produc1457211279475724562t_char > prat] : ( greate7680731506090375811t_char @ Pi @ Pi ) ).

% greater_mask_properties(1)
thf(fact_180_greater__mask__properties_I2_J,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( ( greate7680731506090375811t_char @ A @ B )
        & ( greate7680731506090375811t_char @ B @ C ) )
     => ( greate7680731506090375811t_char @ A @ C ) ) ).

% greater_mask_properties(2)
thf(fact_181_greater__mask__properties_I3_J,axiom,
    ! [Pi3: produc1457211279475724562t_char > prat,Pi: produc1457211279475724562t_char > prat] :
      ( ( ( greate7680731506090375811t_char @ Pi3 @ Pi )
        & ( greate7680731506090375811t_char @ Pi @ Pi3 ) )
     => ( Pi = Pi3 ) ) ).

% greater_mask_properties(3)
thf(fact_182_const__sum__mask__greater,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat,D: produc1457211279475724562t_char > prat] :
      ( ( ( add_ma6586698345353345811t_char @ A @ B )
        = ( add_ma6586698345353345811t_char @ C @ D ) )
     => ( ( greate7680731506090375811t_char @ A @ C )
       => ( greate7680731506090375811t_char @ D @ B ) ) ) ).

% const_sum_mask_greater
thf(fact_183_greater__mask__decomp,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( greate7680731506090375811t_char @ A @ ( add_ma6586698345353345811t_char @ B @ C ) )
     => ? [A1: produc1457211279475724562t_char > prat,A22: produc1457211279475724562t_char > prat] :
          ( ( A
            = ( add_ma6586698345353345811t_char @ A1 @ A22 ) )
          & ( greate7680731506090375811t_char @ A1 @ B )
          & ( greate7680731506090375811t_char @ A22 @ C ) ) ) ).

% greater_mask_decomp
thf(fact_184_greater__mask__def,axiom,
    ( greate7680731506090375811t_char
    = ( ^ [Pi4: produc1457211279475724562t_char > prat,Pi2: produc1457211279475724562t_char > prat] :
        ? [R: produc1457211279475724562t_char > prat] :
          ( Pi4
          = ( add_ma6586698345353345811t_char @ Pi2 @ R ) ) ) ) ).

% greater_mask_def
thf(fact_185_mult__greater,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,P4: prat] :
      ( ( greate7680731506090375811t_char @ A @ B )
     => ( greate7680731506090375811t_char @ ( multiply_mask @ P4 @ A ) @ ( multiply_mask @ P4 @ B ) ) ) ).

% mult_greater
thf(fact_186_update__trans,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,Pi3: produc1457211279475724562t_char > prat,Pi5: produc1457211279475724562t_char > prat,Dm: produc1457211279475724562t_char > $o] :
      ( ( greate7680731506090375811t_char @ Pi @ Pi3 )
     => ( ( greate7680731506090375811t_char @ Pi3 @ Pi5 )
       => ( ( update5099441844846592839t_char @ ( update5099441844846592839t_char @ Dm @ Pi @ Pi3 ) @ Pi3 @ Pi5 )
          = ( update5099441844846592839t_char @ Dm @ Pi @ Pi5 ) ) ) ) ).

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

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

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

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

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

% option.collapse
thf(fact_192_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_193_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_194_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_195_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_196_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_197_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_198_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_199_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_200_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_201_bind__split,axiom,
    ! [P: option5747939881698552298on_val > $o,M: option_val,F: val > option5747939881698552298on_val] :
      ( ( P @ ( bind_v3756559123625202269on_val @ M @ F ) )
      = ( ( ( M = none_val )
         => ( P @ none_P1334921381875262201on_val ) )
        & ! [V: val] :
            ( ( M
              = ( some_val @ V ) )
           => ( P @ ( F @ V ) ) ) ) ) ).

% bind_split
thf(fact_202_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 ) )
            | ? [X4: val] :
                ( ( M
                  = ( some_val @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_203_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 ) )
            | ? [X4: val] :
                ( ( M
                  = ( some_val @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_204_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 ) )
            | ? [X4: state] :
                ( ( M
                  = ( some_state @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_205_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 ) )
            | ? [X4: state] :
                ( ( M
                  = ( some_state @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_206_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 ) )
            | ? [X4: val] :
                ( ( M
                  = ( some_val @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_207_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 ) )
            | ? [X4: state] :
                ( ( M
                  = ( some_state @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_208_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 ) )
            | ? [X4: list_char] :
                ( ( M
                  = ( some_list_char @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_209_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 ) )
            | ? [X4: list_char] :
                ( ( M
                  = ( some_list_char @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_210_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 ) )
            | ? [X4: list_char] :
                ( ( M
                  = ( some_list_char @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_211_bind__split__asm,axiom,
    ! [P: option5747939881698552298on_val > $o,M: option_val,F: val > option5747939881698552298on_val] :
      ( ( P @ ( bind_v3756559123625202269on_val @ M @ F ) )
      = ( ~ ( ( ( M = none_val )
              & ~ ( P @ none_P1334921381875262201on_val ) )
            | ? [X4: val] :
                ( ( M
                  = ( some_val @ X4 ) )
                & ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).

% bind_split_asm
thf(fact_212_map__add__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y: val] :
      ( ( map_ad5466549115852757998al_val @ F @ ( fun_up8559965269643824108on_val @ G @ X @ ( some_val @ Y ) ) )
      = ( fun_up8559965269643824108on_val @ ( map_ad5466549115852757998al_val @ F @ G ) @ X @ ( some_val @ Y ) ) ) ).

% map_add_upd
thf(fact_213_map__add__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y: state] :
      ( ( map_ad2629041965313307917_state @ F @ ( fun_up6681822530636708645_state @ G @ X @ ( some_state @ Y ) ) )
      = ( fun_up6681822530636708645_state @ ( map_ad2629041965313307917_state @ F @ G ) @ X @ ( some_state @ Y ) ) ) ).

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

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

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

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

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

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

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

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

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

% bind_runit
thf(fact_223_bind__option__cong__code,axiom,
    ! [X: option_state,Y: option_state,F: state > option_val] :
      ( ( X = Y )
     => ( ( bind_state_val @ X @ F )
        = ( bind_state_val @ Y @ F ) ) ) ).

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

% bind_option_cong_code
thf(fact_225_bind__option__cong__code,axiom,
    ! [X: option_val,Y: option_val,F: val > option_val] :
      ( ( X = Y )
     => ( ( bind_val_val @ X @ F )
        = ( bind_val_val @ Y @ F ) ) ) ).

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

% bind_option_cong_code
thf(fact_227_update__dm__same,axiom,
    ! [Dm: produc1457211279475724562t_char > $o,Pi: produc1457211279475724562t_char > prat] :
      ( ( update5099441844846592839t_char @ Dm @ Pi @ Pi )
      = Dm ) ).

% update_dm_same
thf(fact_228_bind__eq__None__conv,axiom,
    ! [A: option_state,F: state > option_state] :
      ( ( ( bind_state_state @ A @ F )
        = none_state )
      = ( ( A = none_state )
        | ( ( F @ ( the_state @ A ) )
          = none_state ) ) ) ).

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

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

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

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

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

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

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

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

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

% bind_eq_None_conv
thf(fact_238_map__upd__Some__unfold,axiom,
    ! [M: produc9003781588162623004on_val > option_val,A: produc9003781588162623004on_val,B: val,X: produc9003781588162623004on_val,Y: val] :
      ( ( ( fun_up8559965269643824108on_val @ M @ A @ ( some_val @ B ) @ X )
        = ( some_val @ Y ) )
      = ( ( ( X = A )
          & ( B = Y ) )
        | ( ( X != A )
          & ( ( M @ X )
            = ( some_val @ Y ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_239_map__upd__Some__unfold,axiom,
    ! [M: produc9003781588162623004on_val > option_state,A: produc9003781588162623004on_val,B: state,X: produc9003781588162623004on_val,Y: state] :
      ( ( ( fun_up6681822530636708645_state @ M @ A @ ( some_state @ B ) @ X )
        = ( some_state @ Y ) )
      = ( ( ( X = A )
          & ( B = Y ) )
        | ( ( X != A )
          & ( ( M @ X )
            = ( some_state @ Y ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_240_map__upd__Some__unfold,axiom,
    ! [M: produc9003781588162623004on_val > option8887860577033306220on_val,A: produc9003781588162623004on_val,B: produc9003781588162623004on_val,X: produc9003781588162623004on_val,Y: produc9003781588162623004on_val] :
      ( ( ( fun_up273046073882939271on_val @ M @ A @ ( some_P2581650809551911671on_val @ B ) @ X )
        = ( some_P2581650809551911671on_val @ Y ) )
      = ( ( ( X = A )
          & ( B = Y ) )
        | ( ( X != A )
          & ( ( M @ X )
            = ( some_P2581650809551911671on_val @ Y ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_241_map__upd__Some__unfold,axiom,
    ! [M: nat > option_list_char,A: nat,B: list_char,X: nat,Y: list_char] :
      ( ( ( fun_up4009399622604172288t_char @ M @ A @ ( some_list_char @ B ) @ X )
        = ( some_list_char @ Y ) )
      = ( ( ( X = A )
          & ( B = Y ) )
        | ( ( X != A )
          & ( ( M @ X )
            = ( some_list_char @ Y ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_242_map__upd__Some__unfold,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char > prat,Y: produc1457211279475724562t_char > option_val] :
      ( ( ( fun_up1601731230164360576on_val @ M @ A @ ( some_P7669353234731512949on_val @ B ) @ X )
        = ( some_P7669353234731512949on_val @ Y ) )
      = ( ( ( X = A )
          & ( B = Y ) )
        | ( ( X != A )
          & ( ( M @ X )
            = ( some_P7669353234731512949on_val @ Y ) ) ) ) ) ).

% map_upd_Some_unfold
thf(fact_243_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_244_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_245_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_246_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_247_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_248_map__upd__eqD1,axiom,
    ! [M: produc9003781588162623004on_val > option_val,A: produc9003781588162623004on_val,X: val,N: produc9003781588162623004on_val > option_val,Y: val] :
      ( ( ( fun_up8559965269643824108on_val @ M @ A @ ( some_val @ X ) )
        = ( fun_up8559965269643824108on_val @ N @ A @ ( some_val @ Y ) ) )
     => ( X = Y ) ) ).

% map_upd_eqD1
thf(fact_249_map__upd__eqD1,axiom,
    ! [M: produc9003781588162623004on_val > option_state,A: produc9003781588162623004on_val,X: state,N: produc9003781588162623004on_val > option_state,Y: state] :
      ( ( ( fun_up6681822530636708645_state @ M @ A @ ( some_state @ X ) )
        = ( fun_up6681822530636708645_state @ N @ A @ ( some_state @ Y ) ) )
     => ( X = Y ) ) ).

% map_upd_eqD1
thf(fact_250_map__upd__eqD1,axiom,
    ! [M: produc9003781588162623004on_val > option8887860577033306220on_val,A: produc9003781588162623004on_val,X: produc9003781588162623004on_val,N: produc9003781588162623004on_val > option8887860577033306220on_val,Y: produc9003781588162623004on_val] :
      ( ( ( fun_up273046073882939271on_val @ M @ A @ ( some_P2581650809551911671on_val @ X ) )
        = ( fun_up273046073882939271on_val @ N @ A @ ( some_P2581650809551911671on_val @ Y ) ) )
     => ( X = Y ) ) ).

% map_upd_eqD1
thf(fact_251_map__upd__eqD1,axiom,
    ! [M: nat > option_list_char,A: nat,X: list_char,N: nat > option_list_char,Y: list_char] :
      ( ( ( fun_up4009399622604172288t_char @ M @ A @ ( some_list_char @ X ) )
        = ( fun_up4009399622604172288t_char @ N @ A @ ( some_list_char @ Y ) ) )
     => ( X = Y ) ) ).

% map_upd_eqD1
thf(fact_252_map__upd__eqD1,axiom,
    ! [M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A: produc1457211279475724562t_char > prat,X: produc1457211279475724562t_char > option_val,N: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,Y: produc1457211279475724562t_char > option_val] :
      ( ( ( fun_up1601731230164360576on_val @ M @ A @ ( some_P7669353234731512949on_val @ X ) )
        = ( fun_up1601731230164360576on_val @ N @ A @ ( some_P7669353234731512949on_val @ Y ) ) )
     => ( X = Y ) ) ).

% map_upd_eqD1
thf(fact_253_option_Osel,axiom,
    ! [X2: produc9003781588162623004on_val] :
      ( ( the_Pr3639693038709580936on_val @ ( some_P2581650809551911671on_val @ X2 ) )
      = X2 ) ).

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

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

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

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

% option.sel
thf(fact_258_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_259_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_260_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_261_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_262_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_263_bind_Obind__lunit,axiom,
    ! [X: val,F: val > option_val] :
      ( ( bind_val_val @ ( some_val @ X ) @ F )
      = ( F @ X ) ) ).

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

% bind.bind_lunit
thf(fact_265_bind_Obind__lunit,axiom,
    ! [X: state,F: state > option_val] :
      ( ( bind_state_val @ ( some_state @ X ) @ F )
      = ( F @ X ) ) ).

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

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

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

% Option.bind_cong
thf(fact_269_Option_Obind__cong,axiom,
    ! [X: option_state,Y: option_state,F: state > option_val,G: state > option_val] :
      ( ( X = Y )
     => ( ! [A4: state] :
            ( ( Y
              = ( some_state @ A4 ) )
           => ( ( F @ A4 )
              = ( G @ A4 ) ) )
       => ( ( bind_state_val @ X @ F )
          = ( bind_state_val @ Y @ G ) ) ) ) ).

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

% Option.bind_cong
thf(fact_271_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_272_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_273_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_274_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_275_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_276_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_277_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_278_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_279_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_280_bind__eq__Some__conv,axiom,
    ! [F: option5747939881698552298on_val,G: ( produc1457211279475724562t_char > option_val ) > option_val,X: val] :
      ( ( ( bind_P5848121846087789735al_val @ F @ G )
        = ( some_val @ X ) )
      = ( ? [Y3: produc1457211279475724562t_char > option_val] :
            ( ( F
              = ( some_P7669353234731512949on_val @ Y3 ) )
            & ( ( G @ Y3 )
              = ( some_val @ X ) ) ) ) ) ).

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

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

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

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

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

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

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

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

% bind.bind_lzero
thf(fact_289_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_290_bind_Obind__lzero,axiom,
    ! [F: state > option5747939881698552298on_val] :
      ( ( bind_s7388421589535509396on_val @ none_state @ F )
      = none_P1334921381875262201on_val ) ).

% bind.bind_lzero
thf(fact_291_map__upd__nonempty,axiom,
    ! [T: produc9003781588162623004on_val > option_val,K: produc9003781588162623004on_val,X: val] :
      ( ( fun_up8559965269643824108on_val @ T @ K @ ( some_val @ X ) )
     != ( ^ [X4: produc9003781588162623004on_val] : none_val ) ) ).

% map_upd_nonempty
thf(fact_292_map__upd__nonempty,axiom,
    ! [T: produc9003781588162623004on_val > option_state,K: produc9003781588162623004on_val,X: state] :
      ( ( fun_up6681822530636708645_state @ T @ K @ ( some_state @ X ) )
     != ( ^ [X4: produc9003781588162623004on_val] : none_state ) ) ).

% map_upd_nonempty
thf(fact_293_map__upd__nonempty,axiom,
    ! [T: produc9003781588162623004on_val > option8887860577033306220on_val,K: produc9003781588162623004on_val,X: produc9003781588162623004on_val] :
      ( ( fun_up273046073882939271on_val @ T @ K @ ( some_P2581650809551911671on_val @ X ) )
     != ( ^ [X4: produc9003781588162623004on_val] : none_P8728355543607141243on_val ) ) ).

% map_upd_nonempty
thf(fact_294_map__upd__nonempty,axiom,
    ! [T: nat > option_list_char,K: nat,X: list_char] :
      ( ( fun_up4009399622604172288t_char @ T @ K @ ( some_list_char @ X ) )
     != ( ^ [X4: nat] : none_list_char ) ) ).

% map_upd_nonempty
thf(fact_295_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 ) )
     != ( ^ [X4: produc1457211279475724562t_char > prat] : none_P1334921381875262201on_val ) ) ).

% map_upd_nonempty
thf(fact_296_mult__distr__masks,axiom,
    ! [A: prat,B: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat] :
      ( ( multiply_mask @ A @ ( add_ma6586698345353345811t_char @ B @ C ) )
      = ( add_ma6586698345353345811t_char @ ( multiply_mask @ A @ B ) @ ( multiply_mask @ A @ C ) ) ) ).

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

% option.exhaust_sel
thf(fact_298_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_299_option_Oexhaust__sel,axiom,
    ! [Option: option5747939881698552298on_val] :
      ( ( Option != none_P1334921381875262201on_val )
     => ( Option
        = ( some_P7669353234731512949on_val @ ( the_Pr646328391962797958on_val @ Option ) ) ) ) ).

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

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

% option.exhaust_sel
thf(fact_302_fun__upd__apply,axiom,
    ( fun_up6681822530636708645_state
    = ( ^ [F2: produc9003781588162623004on_val > option_state,X4: produc9003781588162623004on_val,Y3: option_state,Z3: produc9003781588162623004on_val] : ( if_option_state @ ( Z3 = X4 ) @ Y3 @ ( F2 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_303_fun__upd__apply,axiom,
    ( fun_up273046073882939271on_val
    = ( ^ [F2: produc9003781588162623004on_val > option8887860577033306220on_val,X4: produc9003781588162623004on_val,Y3: option8887860577033306220on_val,Z3: produc9003781588162623004on_val] : ( if_opt2965748431298708774on_val @ ( Z3 = X4 ) @ Y3 @ ( F2 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_304_fun__upd__apply,axiom,
    ( fun_up8559965269643824108on_val
    = ( ^ [F2: produc9003781588162623004on_val > option_val,X4: produc9003781588162623004on_val,Y3: option_val,Z3: produc9003781588162623004on_val] : ( if_option_val @ ( Z3 = X4 ) @ Y3 @ ( F2 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_305_fun__upd__apply,axiom,
    ( fun_up4009399622604172288t_char
    = ( ^ [F2: nat > option_list_char,X4: nat,Y3: option_list_char,Z3: nat] : ( if_option_list_char @ ( Z3 = X4 ) @ Y3 @ ( F2 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_306_fun__upd__apply,axiom,
    ( fun_up1601731230164360576on_val
    = ( ^ [F2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X4: produc1457211279475724562t_char > prat,Y3: option5747939881698552298on_val,Z3: produc1457211279475724562t_char > prat] : ( if_opt6509584284076893604on_val @ ( Z3 = X4 ) @ Y3 @ ( F2 @ Z3 ) ) ) ) ).

% fun_upd_apply
thf(fact_307_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_308_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_309_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_310_fun__upd__triv,axiom,
    ! [F: nat > option_list_char,X: nat] :
      ( ( fun_up4009399622604172288t_char @ F @ X @ ( F @ X ) )
      = F ) ).

% fun_upd_triv
thf(fact_311_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_312_fun__upd__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y: option_state,Z: option_state] :
      ( ( fun_up6681822530636708645_state @ ( fun_up6681822530636708645_state @ F @ X @ Y ) @ X @ Z )
      = ( fun_up6681822530636708645_state @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_313_fun__upd__upd,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y: option8887860577033306220on_val,Z: option8887860577033306220on_val] :
      ( ( fun_up273046073882939271on_val @ ( fun_up273046073882939271on_val @ F @ X @ Y ) @ X @ Z )
      = ( fun_up273046073882939271on_val @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_314_fun__upd__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y: option_val,Z: option_val] :
      ( ( fun_up8559965269643824108on_val @ ( fun_up8559965269643824108on_val @ F @ X @ Y ) @ X @ Z )
      = ( fun_up8559965269643824108on_val @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_315_fun__upd__upd,axiom,
    ! [F: nat > option_list_char,X: nat,Y: option_list_char,Z: option_list_char] :
      ( ( fun_up4009399622604172288t_char @ ( fun_up4009399622604172288t_char @ F @ X @ Y ) @ X @ Z )
      = ( fun_up4009399622604172288t_char @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_316_fun__upd__upd,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y: option5747939881698552298on_val,Z: option5747939881698552298on_val] :
      ( ( fun_up1601731230164360576on_val @ ( fun_up1601731230164360576on_val @ F @ X @ Y ) @ X @ Z )
      = ( fun_up1601731230164360576on_val @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_317_option_Osplit__sel,axiom,
    ! [P: option_state > $o,F1: option_state,F22: state > option_state,Option: option_state] :
      ( ( P @ ( case_o8916064052540797265_state @ F1 @ F22 @ Option ) )
      = ( ( ( Option = none_state )
         => ( P @ F1 ) )
        & ( ( Option
            = ( some_state @ ( the_state @ Option ) ) )
         => ( P @ ( F22 @ ( the_state @ Option ) ) ) ) ) ) ).

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

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

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

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

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

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

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

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

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

% option.split_sel_asm
thf(fact_327_map__le__imp__upd__le,axiom,
    ! [M1: produc1457211279475724562t_char > option_val,M2: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char,Y: val] :
      ( ( map_le3432596473071271956ar_val @ M1 @ M2 )
     => ( map_le3432596473071271956ar_val @ ( fun_up5735975307950539954on_val @ M1 @ X @ none_val ) @ ( fun_up5735975307950539954on_val @ M2 @ X @ ( some_val @ Y ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_328_map__le__imp__upd__le,axiom,
    ! [M1: produc9003781588162623004on_val > option_val,M2: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y: val] :
      ( ( map_le662008219874789630al_val @ M1 @ M2 )
     => ( map_le662008219874789630al_val @ ( fun_up8559965269643824108on_val @ M1 @ X @ none_val ) @ ( fun_up8559965269643824108on_val @ M2 @ X @ ( some_val @ Y ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_329_map__le__imp__upd__le,axiom,
    ! [M1: produc9003781588162623004on_val > option_state,M2: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y: state] :
      ( ( map_le2714403320317326333_state @ M1 @ M2 )
     => ( map_le2714403320317326333_state @ ( fun_up6681822530636708645_state @ M1 @ X @ none_state ) @ ( fun_up6681822530636708645_state @ M2 @ X @ ( some_state @ Y ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_330_map__le__imp__upd__le,axiom,
    ! [M1: produc9003781588162623004on_val > option8887860577033306220on_val,M2: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y: 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 @ Y ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_331_map__le__imp__upd__le,axiom,
    ! [M1: nat > option_list_char,M2: nat > option_list_char,X: nat,Y: 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 @ Y ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_332_map__le__imp__upd__le,axiom,
    ! [M1: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,M2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y: 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 @ Y ) ) ) ) ).

% map_le_imp_upd_le
thf(fact_333_fun__upd__idem__iff,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y: option_state] :
      ( ( ( fun_up6681822530636708645_state @ F @ X @ Y )
        = F )
      = ( ( F @ X )
        = Y ) ) ).

% fun_upd_idem_iff
thf(fact_334_fun__upd__idem__iff,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y: option8887860577033306220on_val] :
      ( ( ( fun_up273046073882939271on_val @ F @ X @ Y )
        = F )
      = ( ( F @ X )
        = Y ) ) ).

% fun_upd_idem_iff
thf(fact_335_fun__upd__idem__iff,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y: option_val] :
      ( ( ( fun_up8559965269643824108on_val @ F @ X @ Y )
        = F )
      = ( ( F @ X )
        = Y ) ) ).

% fun_upd_idem_iff
thf(fact_336_fun__upd__idem__iff,axiom,
    ! [F: nat > option_list_char,X: nat,Y: option_list_char] :
      ( ( ( fun_up4009399622604172288t_char @ F @ X @ Y )
        = F )
      = ( ( F @ X )
        = Y ) ) ).

% fun_upd_idem_iff
thf(fact_337_fun__upd__idem__iff,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y: option5747939881698552298on_val] :
      ( ( ( fun_up1601731230164360576on_val @ F @ X @ Y )
        = F )
      = ( ( F @ X )
        = Y ) ) ).

% fun_upd_idem_iff
thf(fact_338_fun__upd__twist,axiom,
    ! [A: produc9003781588162623004on_val,C: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_state,B: option_state,D: option_state] :
      ( ( A != C )
     => ( ( fun_up6681822530636708645_state @ ( fun_up6681822530636708645_state @ M @ A @ B ) @ C @ D )
        = ( fun_up6681822530636708645_state @ ( fun_up6681822530636708645_state @ M @ C @ D ) @ A @ B ) ) ) ).

% fun_upd_twist
thf(fact_339_fun__upd__twist,axiom,
    ! [A: produc9003781588162623004on_val,C: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option8887860577033306220on_val,B: option8887860577033306220on_val,D: option8887860577033306220on_val] :
      ( ( A != C )
     => ( ( fun_up273046073882939271on_val @ ( fun_up273046073882939271on_val @ M @ A @ B ) @ C @ D )
        = ( fun_up273046073882939271on_val @ ( fun_up273046073882939271on_val @ M @ C @ D ) @ A @ B ) ) ) ).

% fun_upd_twist
thf(fact_340_fun__upd__twist,axiom,
    ! [A: produc9003781588162623004on_val,C: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_val,B: option_val,D: option_val] :
      ( ( A != C )
     => ( ( fun_up8559965269643824108on_val @ ( fun_up8559965269643824108on_val @ M @ A @ B ) @ C @ D )
        = ( fun_up8559965269643824108on_val @ ( fun_up8559965269643824108on_val @ M @ C @ D ) @ A @ B ) ) ) ).

% fun_upd_twist
thf(fact_341_fun__upd__twist,axiom,
    ! [A: nat,C: nat,M: nat > option_list_char,B: option_list_char,D: option_list_char] :
      ( ( A != C )
     => ( ( fun_up4009399622604172288t_char @ ( fun_up4009399622604172288t_char @ M @ A @ B ) @ C @ D )
        = ( fun_up4009399622604172288t_char @ ( fun_up4009399622604172288t_char @ M @ C @ D ) @ A @ B ) ) ) ).

% fun_upd_twist
thf(fact_342_fun__upd__twist,axiom,
    ! [A: produc1457211279475724562t_char > prat,C: produc1457211279475724562t_char > prat,M: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,B: option5747939881698552298on_val,D: option5747939881698552298on_val] :
      ( ( A != C )
     => ( ( fun_up1601731230164360576on_val @ ( fun_up1601731230164360576on_val @ M @ A @ B ) @ C @ D )
        = ( fun_up1601731230164360576on_val @ ( fun_up1601731230164360576on_val @ M @ C @ D ) @ A @ B ) ) ) ).

% fun_upd_twist
thf(fact_343_fun__upd__other,axiom,
    ! [Z: produc9003781588162623004on_val,X: produc9003781588162623004on_val,F: produc9003781588162623004on_val > option_state,Y: option_state] :
      ( ( Z != X )
     => ( ( fun_up6681822530636708645_state @ F @ X @ Y @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_344_fun__upd__other,axiom,
    ! [Z: produc9003781588162623004on_val,X: produc9003781588162623004on_val,F: produc9003781588162623004on_val > option8887860577033306220on_val,Y: option8887860577033306220on_val] :
      ( ( Z != X )
     => ( ( fun_up273046073882939271on_val @ F @ X @ Y @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_345_fun__upd__other,axiom,
    ! [Z: produc9003781588162623004on_val,X: produc9003781588162623004on_val,F: produc9003781588162623004on_val > option_val,Y: option_val] :
      ( ( Z != X )
     => ( ( fun_up8559965269643824108on_val @ F @ X @ Y @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_346_fun__upd__other,axiom,
    ! [Z: nat,X: nat,F: nat > option_list_char,Y: option_list_char] :
      ( ( Z != X )
     => ( ( fun_up4009399622604172288t_char @ F @ X @ Y @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_347_fun__upd__other,axiom,
    ! [Z: produc1457211279475724562t_char > prat,X: produc1457211279475724562t_char > prat,F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,Y: option5747939881698552298on_val] :
      ( ( Z != X )
     => ( ( fun_up1601731230164360576on_val @ F @ X @ Y @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_348_fun__upd__same,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y: option_state] :
      ( ( fun_up6681822530636708645_state @ F @ X @ Y @ X )
      = Y ) ).

% fun_upd_same
thf(fact_349_fun__upd__same,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y: option8887860577033306220on_val] :
      ( ( fun_up273046073882939271on_val @ F @ X @ Y @ X )
      = Y ) ).

% fun_upd_same
thf(fact_350_fun__upd__same,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y: option_val] :
      ( ( fun_up8559965269643824108on_val @ F @ X @ Y @ X )
      = Y ) ).

% fun_upd_same
thf(fact_351_fun__upd__same,axiom,
    ! [F: nat > option_list_char,X: nat,Y: option_list_char] :
      ( ( fun_up4009399622604172288t_char @ F @ X @ Y @ X )
      = Y ) ).

% fun_upd_same
thf(fact_352_fun__upd__same,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y: option5747939881698552298on_val] :
      ( ( fun_up1601731230164360576on_val @ F @ X @ Y @ X )
      = Y ) ).

% fun_upd_same
thf(fact_353_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_354_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_355_map__le__refl,axiom,
    ! [F: produc1457211279475724562t_char > option_val] : ( map_le3432596473071271956ar_val @ F @ F ) ).

% map_le_refl
thf(fact_356_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_357_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_358_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_359_map__add__le__mapE,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state,H3: produc9003781588162623004on_val > option_state] :
      ( ( map_le2714403320317326333_state @ ( map_ad2629041965313307917_state @ F @ G ) @ H3 )
     => ( map_le2714403320317326333_state @ G @ H3 ) ) ).

% map_add_le_mapE
thf(fact_360_map__add__le__mapE,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val,H3: produc9003781588162623004on_val > option_val] :
      ( ( map_le662008219874789630al_val @ ( map_ad5466549115852757998al_val @ F @ G ) @ H3 )
     => ( map_le662008219874789630al_val @ G @ H3 ) ) ).

% map_add_le_mapE
thf(fact_361_map__add__le__mapE,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val,H3: produc1457211279475724562t_char > option_val] :
      ( ( map_le3432596473071271956ar_val @ ( map_ad2908576761495157028ar_val @ F @ G ) @ H3 )
     => ( map_le3432596473071271956ar_val @ G @ H3 ) ) ).

% map_add_le_mapE
thf(fact_362_map__add__le__mapI,axiom,
    ! [F: produc9003781588162623004on_val > option_state,H3: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state] :
      ( ( map_le2714403320317326333_state @ F @ H3 )
     => ( ( map_le2714403320317326333_state @ G @ H3 )
       => ( map_le2714403320317326333_state @ ( map_ad2629041965313307917_state @ F @ G ) @ H3 ) ) ) ).

% map_add_le_mapI
thf(fact_363_map__add__le__mapI,axiom,
    ! [F: produc9003781588162623004on_val > option_val,H3: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val] :
      ( ( map_le662008219874789630al_val @ F @ H3 )
     => ( ( map_le662008219874789630al_val @ G @ H3 )
       => ( map_le662008219874789630al_val @ ( map_ad5466549115852757998al_val @ F @ G ) @ H3 ) ) ) ).

% map_add_le_mapI
thf(fact_364_map__add__le__mapI,axiom,
    ! [F: produc1457211279475724562t_char > option_val,H3: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] :
      ( ( map_le3432596473071271956ar_val @ F @ H3 )
     => ( ( map_le3432596473071271956ar_val @ G @ H3 )
       => ( map_le3432596473071271956ar_val @ ( map_ad2908576761495157028ar_val @ F @ G ) @ H3 ) ) ) ).

% map_add_le_mapI
thf(fact_365_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_366_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_367_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_368_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_369_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_370_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_371_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_372_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_373_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_374_map__le__upd,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val,A: produc1457211279475724562t_char,B: option_val] :
      ( ( map_le3432596473071271956ar_val @ F @ G )
     => ( map_le3432596473071271956ar_val @ ( fun_up5735975307950539954on_val @ F @ A @ B ) @ ( fun_up5735975307950539954on_val @ G @ A @ B ) ) ) ).

% map_le_upd
thf(fact_375_map__le__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_state,G: produc9003781588162623004on_val > option_state,A: produc9003781588162623004on_val,B: option_state] :
      ( ( map_le2714403320317326333_state @ F @ G )
     => ( map_le2714403320317326333_state @ ( fun_up6681822530636708645_state @ F @ A @ B ) @ ( fun_up6681822530636708645_state @ G @ A @ B ) ) ) ).

% map_le_upd
thf(fact_376_map__le__upd,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,G: produc9003781588162623004on_val > option8887860577033306220on_val,A: produc9003781588162623004on_val,B: option8887860577033306220on_val] :
      ( ( map_le1786601613863086943on_val @ F @ G )
     => ( map_le1786601613863086943on_val @ ( fun_up273046073882939271on_val @ F @ A @ B ) @ ( fun_up273046073882939271on_val @ G @ A @ B ) ) ) ).

% map_le_upd
thf(fact_377_map__le__upd,axiom,
    ! [F: produc9003781588162623004on_val > option_val,G: produc9003781588162623004on_val > option_val,A: produc9003781588162623004on_val,B: option_val] :
      ( ( map_le662008219874789630al_val @ F @ G )
     => ( map_le662008219874789630al_val @ ( fun_up8559965269643824108on_val @ F @ A @ B ) @ ( fun_up8559965269643824108on_val @ G @ A @ B ) ) ) ).

% map_le_upd
thf(fact_378_map__le__upd,axiom,
    ! [F: nat > option_list_char,G: nat > option_list_char,A: nat,B: option_list_char] :
      ( ( map_le_nat_list_char @ F @ G )
     => ( map_le_nat_list_char @ ( fun_up4009399622604172288t_char @ F @ A @ B ) @ ( fun_up4009399622604172288t_char @ G @ A @ B ) ) ) ).

% map_le_upd
thf(fact_379_map__le__upd,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,G: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A: produc1457211279475724562t_char > prat,B: option5747939881698552298on_val] :
      ( ( map_le7591542393800649736on_val @ F @ G )
     => ( map_le7591542393800649736on_val @ ( fun_up1601731230164360576on_val @ F @ A @ B ) @ ( fun_up1601731230164360576on_val @ G @ A @ B ) ) ) ).

% map_le_upd
thf(fact_380_option_Osimps_I5_J,axiom,
    ! [F1: option_state,F22: state > option_state,X2: state] :
      ( ( case_o8916064052540797265_state @ F1 @ F22 @ ( some_state @ X2 ) )
      = ( F22 @ X2 ) ) ).

% option.simps(5)
thf(fact_381_option_Osimps_I5_J,axiom,
    ! [F1: option_val,F22: val > option_val,X2: val] :
      ( ( case_o7794706883426356101al_val @ F1 @ F22 @ ( some_val @ X2 ) )
      = ( F22 @ X2 ) ) ).

% option.simps(5)
thf(fact_382_option_Osimps_I5_J,axiom,
    ! [F1: val,F22: val > val,X2: val] :
      ( ( case_option_val_val @ F1 @ F22 @ ( some_val @ X2 ) )
      = ( F22 @ X2 ) ) ).

% option.simps(5)
thf(fact_383_option_Osimps_I5_J,axiom,
    ! [F1: $o,F22: state > $o,X2: state] :
      ( ( case_option_o_state @ F1 @ F22 @ ( some_state @ X2 ) )
      = ( F22 @ X2 ) ) ).

% option.simps(5)
thf(fact_384_option_Osimps_I5_J,axiom,
    ! [F1: $o,F22: val > $o,X2: val] :
      ( ( case_option_o_val @ F1 @ F22 @ ( some_val @ X2 ) )
      = ( F22 @ X2 ) ) ).

% option.simps(5)
thf(fact_385_option_Osimps_I4_J,axiom,
    ! [F1: option_state,F22: state > option_state] :
      ( ( case_o8916064052540797265_state @ F1 @ F22 @ none_state )
      = F1 ) ).

% option.simps(4)
thf(fact_386_option_Osimps_I4_J,axiom,
    ! [F1: option_val,F22: val > option_val] :
      ( ( case_o7794706883426356101al_val @ F1 @ F22 @ none_val )
      = F1 ) ).

% option.simps(4)
thf(fact_387_option_Osimps_I4_J,axiom,
    ! [F1: val,F22: val > val] :
      ( ( case_option_val_val @ F1 @ F22 @ none_val )
      = F1 ) ).

% option.simps(4)
thf(fact_388_option_Osimps_I4_J,axiom,
    ! [F1: $o,F22: state > $o] :
      ( ( case_option_o_state @ F1 @ F22 @ none_state )
      = F1 ) ).

% option.simps(4)
thf(fact_389_option_Osimps_I4_J,axiom,
    ! [F1: $o,F22: val > $o] :
      ( ( case_option_o_val @ F1 @ F22 @ none_val )
      = F1 ) ).

% option.simps(4)
thf(fact_390_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_391_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_392_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_393_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_394_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_395_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_396_option_Ocase__eq__if,axiom,
    ( case_o8916064052540797265_state
    = ( ^ [F12: option_state,F23: state > option_state,Option3: option_state] : ( if_option_state @ ( Option3 = none_state ) @ F12 @ ( F23 @ ( the_state @ Option3 ) ) ) ) ) ).

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

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

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

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

% option.case_eq_if
thf(fact_401_fun__upd__def,axiom,
    ( fun_up6681822530636708645_state
    = ( ^ [F2: produc9003781588162623004on_val > option_state,A2: produc9003781588162623004on_val,B2: option_state,X4: produc9003781588162623004on_val] : ( if_option_state @ ( X4 = A2 ) @ B2 @ ( F2 @ X4 ) ) ) ) ).

% fun_upd_def
thf(fact_402_fun__upd__def,axiom,
    ( fun_up273046073882939271on_val
    = ( ^ [F2: produc9003781588162623004on_val > option8887860577033306220on_val,A2: produc9003781588162623004on_val,B2: option8887860577033306220on_val,X4: produc9003781588162623004on_val] : ( if_opt2965748431298708774on_val @ ( X4 = A2 ) @ B2 @ ( F2 @ X4 ) ) ) ) ).

% fun_upd_def
thf(fact_403_fun__upd__def,axiom,
    ( fun_up8559965269643824108on_val
    = ( ^ [F2: produc9003781588162623004on_val > option_val,A2: produc9003781588162623004on_val,B2: option_val,X4: produc9003781588162623004on_val] : ( if_option_val @ ( X4 = A2 ) @ B2 @ ( F2 @ X4 ) ) ) ) ).

% fun_upd_def
thf(fact_404_fun__upd__def,axiom,
    ( fun_up4009399622604172288t_char
    = ( ^ [F2: nat > option_list_char,A2: nat,B2: option_list_char,X4: nat] : ( if_option_list_char @ ( X4 = A2 ) @ B2 @ ( F2 @ X4 ) ) ) ) ).

% fun_upd_def
thf(fact_405_fun__upd__def,axiom,
    ( fun_up1601731230164360576on_val
    = ( ^ [F2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,A2: produc1457211279475724562t_char > prat,B2: option5747939881698552298on_val,X4: produc1457211279475724562t_char > prat] : ( if_opt6509584284076893604on_val @ ( X4 = A2 ) @ B2 @ ( F2 @ X4 ) ) ) ) ).

% fun_upd_def
thf(fact_406_fun__upd__eqD,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y: option_state,G: produc9003781588162623004on_val > option_state,Z: option_state] :
      ( ( ( fun_up6681822530636708645_state @ F @ X @ Y )
        = ( fun_up6681822530636708645_state @ G @ X @ Z ) )
     => ( Y = Z ) ) ).

% fun_upd_eqD
thf(fact_407_fun__upd__eqD,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y: option8887860577033306220on_val,G: produc9003781588162623004on_val > option8887860577033306220on_val,Z: option8887860577033306220on_val] :
      ( ( ( fun_up273046073882939271on_val @ F @ X @ Y )
        = ( fun_up273046073882939271on_val @ G @ X @ Z ) )
     => ( Y = Z ) ) ).

% fun_upd_eqD
thf(fact_408_fun__upd__eqD,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y: option_val,G: produc9003781588162623004on_val > option_val,Z: option_val] :
      ( ( ( fun_up8559965269643824108on_val @ F @ X @ Y )
        = ( fun_up8559965269643824108on_val @ G @ X @ Z ) )
     => ( Y = Z ) ) ).

% fun_upd_eqD
thf(fact_409_fun__upd__eqD,axiom,
    ! [F: nat > option_list_char,X: nat,Y: option_list_char,G: nat > option_list_char,Z: option_list_char] :
      ( ( ( fun_up4009399622604172288t_char @ F @ X @ Y )
        = ( fun_up4009399622604172288t_char @ G @ X @ Z ) )
     => ( Y = Z ) ) ).

% fun_upd_eqD
thf(fact_410_fun__upd__eqD,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y: option5747939881698552298on_val,G: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,Z: option5747939881698552298on_val] :
      ( ( ( fun_up1601731230164360576on_val @ F @ X @ Y )
        = ( fun_up1601731230164360576on_val @ G @ X @ Z ) )
     => ( Y = Z ) ) ).

% fun_upd_eqD
thf(fact_411_fun__upd__idem,axiom,
    ! [F: produc9003781588162623004on_val > option_state,X: produc9003781588162623004on_val,Y: option_state] :
      ( ( ( F @ X )
        = Y )
     => ( ( fun_up6681822530636708645_state @ F @ X @ Y )
        = F ) ) ).

% fun_upd_idem
thf(fact_412_fun__upd__idem,axiom,
    ! [F: produc9003781588162623004on_val > option8887860577033306220on_val,X: produc9003781588162623004on_val,Y: option8887860577033306220on_val] :
      ( ( ( F @ X )
        = Y )
     => ( ( fun_up273046073882939271on_val @ F @ X @ Y )
        = F ) ) ).

% fun_upd_idem
thf(fact_413_fun__upd__idem,axiom,
    ! [F: produc9003781588162623004on_val > option_val,X: produc9003781588162623004on_val,Y: option_val] :
      ( ( ( F @ X )
        = Y )
     => ( ( fun_up8559965269643824108on_val @ F @ X @ Y )
        = F ) ) ).

% fun_upd_idem
thf(fact_414_fun__upd__idem,axiom,
    ! [F: nat > option_list_char,X: nat,Y: option_list_char] :
      ( ( ( F @ X )
        = Y )
     => ( ( fun_up4009399622604172288t_char @ F @ X @ Y )
        = F ) ) ).

% fun_upd_idem
thf(fact_415_fun__upd__idem,axiom,
    ! [F: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,X: produc1457211279475724562t_char > prat,Y: option5747939881698552298on_val] :
      ( ( ( F @ X )
        = Y )
     => ( ( fun_up1601731230164360576on_val @ F @ X @ Y )
        = F ) ) ).

% fun_upd_idem
thf(fact_416_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_417_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_418_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_419_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_420_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_421_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_422_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_423_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_424_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_425_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_426_uni__mask_Osimps,axiom,
    ( uni_ma8757825773229499086r_prat
    = ( fun_up9120501182914450918t_prat @ empty_6616431780912394577r_prat ) ) ).

% uni_mask.simps
thf(fact_427_uni__mask_Osimps,axiom,
    ( uni_mask_state
    = ( fun_upd_state_prat @ empty_mask_state ) ) ).

% uni_mask.simps
thf(fact_428_uni__mask_Osimps,axiom,
    ( uni_ma3016027189315475553on_val
    = ( fun_up322103695952382443l_prat @ empty_6102255041883331742on_val ) ) ).

% uni_mask.simps
thf(fact_429_uni__mask_Osimps,axiom,
    ( uni_ma2802115457281451284on_val
    = ( fun_up4040928134582614060l_prat @ empty_4129289814623480215on_val ) ) ).

% uni_mask.simps
thf(fact_430_uni__mask_Osimps,axiom,
    ( uni_ma6578582744724537101t_char
    = ( fun_up829850848796697765r_prat @ empty_3446695950879338768t_char ) ) ).

% uni_mask.simps
thf(fact_431_uni__mask_Oelims,axiom,
    ! [X: produc1457211279475724562t_char > prat,Xa: prat,Y: ( produc1457211279475724562t_char > prat ) > prat] :
      ( ( ( uni_ma8757825773229499086r_prat @ X @ Xa )
        = Y )
     => ( Y
        = ( fun_up9120501182914450918t_prat @ empty_6616431780912394577r_prat @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_432_uni__mask_Oelims,axiom,
    ! [X: state,Xa: prat,Y: state > prat] :
      ( ( ( uni_mask_state @ X @ Xa )
        = Y )
     => ( Y
        = ( fun_upd_state_prat @ empty_mask_state @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_433_uni__mask_Oelims,axiom,
    ! [X: produc9003781588162623004on_val,Xa: prat,Y: produc9003781588162623004on_val > prat] :
      ( ( ( uni_ma3016027189315475553on_val @ X @ Xa )
        = Y )
     => ( Y
        = ( fun_up322103695952382443l_prat @ empty_6102255041883331742on_val @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_434_uni__mask_Oelims,axiom,
    ! [X: produc1317171644805857433on_val,Xa: prat,Y: produc1317171644805857433on_val > prat] :
      ( ( ( uni_ma2802115457281451284on_val @ X @ Xa )
        = Y )
     => ( Y
        = ( fun_up4040928134582614060l_prat @ empty_4129289814623480215on_val @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_435_uni__mask_Oelims,axiom,
    ! [X: produc1457211279475724562t_char,Xa: prat,Y: produc1457211279475724562t_char > prat] :
      ( ( ( uni_ma6578582744724537101t_char @ X @ Xa )
        = Y )
     => ( Y
        = ( fun_up829850848796697765r_prat @ empty_3446695950879338768t_char @ X @ Xa ) ) ) ).

% uni_mask.elims
thf(fact_436_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_437_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_438_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_439_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_440_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_441_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_442_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_443_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_444_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_445_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_446_update__dm__def,axiom,
    ( update5099441844846592839t_char
    = ( ^ [Dm2: produc1457211279475724562t_char > $o,Pi2: produc1457211279475724562t_char > prat,Pi4: produc1457211279475724562t_char > prat,Hl: produc1457211279475724562t_char] :
          ( ( Dm2 @ Hl )
          | ( pgt @ ( Pi2 @ Hl ) @ ( Pi4 @ Hl ) ) ) ) ) ).

% update_dm_def
thf(fact_447_mult__add__states,axiom,
    ! [A: prat,B: prat,Pi: produc1457211279475724562t_char > prat] :
      ( ( multiply_mask @ ( padd @ A @ B ) @ Pi )
      = ( add_ma6586698345353345811t_char @ ( multiply_mask @ A @ Pi ) @ ( multiply_mask @ B @ Pi ) ) ) ).

% mult_add_states
thf(fact_448_option_Oset__sel,axiom,
    ! [A: option_option_val] :
      ( ( A != none_option_val )
     => ( member_option_val @ ( the_option_val @ A ) @ ( set_op911010586042427349on_val @ A ) ) ) ).

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

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

% option.set_sel
thf(fact_451_option_Oset__sel,axiom,
    ! [A: option_list_char] :
      ( ( A != none_list_char )
     => ( member_list_char @ ( the_list_char @ A ) @ ( set_option_list_char @ A ) ) ) ).

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

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

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

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

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

% option.set_sel
thf(fact_457_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_458_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_459_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_460_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_461_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_462_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_463_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_464_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_465_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_466_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_467_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_468_elem__set,axiom,
    ! [X: nat,Xo: option_nat] :
      ( ( member_nat @ X @ ( set_option_nat @ Xo ) )
      = ( Xo
        = ( some_nat @ X ) ) ) ).

% elem_set
thf(fact_469_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_470_elem__set,axiom,
    ! [X: list_char,Xo: option_list_char] :
      ( ( member_list_char @ X @ ( set_option_list_char @ Xo ) )
      = ( Xo
        = ( some_list_char @ X ) ) ) ).

% elem_set
thf(fact_471_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_472_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_473_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_474_elem__set,axiom,
    ! [X: val,Xo: option_val] :
      ( ( member_val @ X @ ( set_option_val2 @ Xo ) )
      = ( Xo
        = ( some_val @ X ) ) ) ).

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

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

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

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

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

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

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

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

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

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

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

% is_none_code(1)
thf(fact_486_domI,axiom,
    ! [M: produc9003781588162623004on_val > option_val,A: produc9003781588162623004on_val,B: val] :
      ( ( ( M @ A )
        = ( some_val @ B ) )
     => ( member2879030624002546611on_val @ A @ ( dom_Pr7381289304162206737al_val @ M ) ) ) ).

% domI
thf(fact_487_domI,axiom,
    ! [M: produc9003781588162623004on_val > option_state,A: produc9003781588162623004on_val,B: state] :
      ( ( ( M @ A )
        = ( some_state @ B ) )
     => ( member2879030624002546611on_val @ A @ ( dom_Pr4448331044451638570_state @ M ) ) ) ).

% domI
thf(fact_488_domI,axiom,
    ! [M: val > option_val,A: val,B: val] :
      ( ( ( M @ A )
        = ( some_val @ B ) )
     => ( member_val @ A @ ( dom_val_val @ M ) ) ) ).

% domI
thf(fact_489_domI,axiom,
    ! [M: nat > option_val,A: nat,B: val] :
      ( ( ( M @ A )
        = ( some_val @ B ) )
     => ( member_nat @ A @ ( dom_nat_val @ M ) ) ) ).

% domI
thf(fact_490_domI,axiom,
    ! [M: val > option_state,A: val,B: state] :
      ( ( ( M @ A )
        = ( some_state @ B ) )
     => ( member_val @ A @ ( dom_val_state @ M ) ) ) ).

% domI
thf(fact_491_domI,axiom,
    ! [M: nat > option_state,A: nat,B: state] :
      ( ( ( M @ A )
        = ( some_state @ B ) )
     => ( member_nat @ A @ ( dom_nat_state @ M ) ) ) ).

% domI
thf(fact_492_domI,axiom,
    ! [M: option_val > option_val,A: option_val,B: val] :
      ( ( ( M @ A )
        = ( some_val @ B ) )
     => ( member_option_val @ A @ ( dom_option_val_val @ M ) ) ) ).

% domI
thf(fact_493_domI,axiom,
    ! [M: option_val > option_state,A: option_val,B: state] :
      ( ( ( M @ A )
        = ( some_state @ B ) )
     => ( member_option_val @ A @ ( dom_option_val_state @ M ) ) ) ).

% domI
thf(fact_494_domI,axiom,
    ! [M: val > option_list_char,A: val,B: list_char] :
      ( ( ( M @ A )
        = ( some_list_char @ B ) )
     => ( member_val @ A @ ( dom_val_list_char @ M ) ) ) ).

% domI
thf(fact_495_domI,axiom,
    ! [M: nat > option_list_char,A: nat,B: list_char] :
      ( ( ( M @ A )
        = ( some_list_char @ B ) )
     => ( member_nat @ A @ ( dom_nat_list_char @ M ) ) ) ).

% domI
thf(fact_496_domD,axiom,
    ! [A: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_val] :
      ( ( member2879030624002546611on_val @ A @ ( dom_Pr7381289304162206737al_val @ M ) )
     => ? [B4: val] :
          ( ( M @ A )
          = ( some_val @ B4 ) ) ) ).

% domD
thf(fact_497_domD,axiom,
    ! [A: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_state] :
      ( ( member2879030624002546611on_val @ A @ ( dom_Pr4448331044451638570_state @ M ) )
     => ? [B4: state] :
          ( ( M @ A )
          = ( some_state @ B4 ) ) ) ).

% domD
thf(fact_498_domD,axiom,
    ! [A: val,M: val > option_val] :
      ( ( member_val @ A @ ( dom_val_val @ M ) )
     => ? [B4: val] :
          ( ( M @ A )
          = ( some_val @ B4 ) ) ) ).

% domD
thf(fact_499_domD,axiom,
    ! [A: nat,M: nat > option_val] :
      ( ( member_nat @ A @ ( dom_nat_val @ M ) )
     => ? [B4: val] :
          ( ( M @ A )
          = ( some_val @ B4 ) ) ) ).

% domD
thf(fact_500_domD,axiom,
    ! [A: val,M: val > option_state] :
      ( ( member_val @ A @ ( dom_val_state @ M ) )
     => ? [B4: state] :
          ( ( M @ A )
          = ( some_state @ B4 ) ) ) ).

% domD
thf(fact_501_domD,axiom,
    ! [A: nat,M: nat > option_state] :
      ( ( member_nat @ A @ ( dom_nat_state @ M ) )
     => ? [B4: state] :
          ( ( M @ A )
          = ( some_state @ B4 ) ) ) ).

% domD
thf(fact_502_domD,axiom,
    ! [A: option_val,M: option_val > option_val] :
      ( ( member_option_val @ A @ ( dom_option_val_val @ M ) )
     => ? [B4: val] :
          ( ( M @ A )
          = ( some_val @ B4 ) ) ) ).

% domD
thf(fact_503_domD,axiom,
    ! [A: option_val,M: option_val > option_state] :
      ( ( member_option_val @ A @ ( dom_option_val_state @ M ) )
     => ? [B4: state] :
          ( ( M @ A )
          = ( some_state @ B4 ) ) ) ).

% domD
thf(fact_504_domD,axiom,
    ! [A: val,M: val > option_list_char] :
      ( ( member_val @ A @ ( dom_val_list_char @ M ) )
     => ? [B4: list_char] :
          ( ( M @ A )
          = ( some_list_char @ B4 ) ) ) ).

% domD
thf(fact_505_domD,axiom,
    ! [A: nat,M: nat > option_list_char] :
      ( ( member_nat @ A @ ( dom_nat_list_char @ M ) )
     => ? [B4: list_char] :
          ( ( M @ A )
          = ( some_list_char @ B4 ) ) ) ).

% domD
thf(fact_506_domIff,axiom,
    ! [A: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_state] :
      ( ( member2879030624002546611on_val @ A @ ( dom_Pr4448331044451638570_state @ M ) )
      = ( ( M @ A )
       != none_state ) ) ).

% domIff
thf(fact_507_domIff,axiom,
    ! [A: produc9003781588162623004on_val,M: produc9003781588162623004on_val > option_val] :
      ( ( member2879030624002546611on_val @ A @ ( dom_Pr7381289304162206737al_val @ M ) )
      = ( ( M @ A )
       != none_val ) ) ).

% domIff
thf(fact_508_domIff,axiom,
    ! [A: val,M: val > option_state] :
      ( ( member_val @ A @ ( dom_val_state @ M ) )
      = ( ( M @ A )
       != none_state ) ) ).

% domIff
thf(fact_509_domIff,axiom,
    ! [A: nat,M: nat > option_state] :
      ( ( member_nat @ A @ ( dom_nat_state @ M ) )
      = ( ( M @ A )
       != none_state ) ) ).

% domIff
thf(fact_510_domIff,axiom,
    ! [A: val,M: val > option_val] :
      ( ( member_val @ A @ ( dom_val_val @ M ) )
      = ( ( M @ A )
       != none_val ) ) ).

% domIff
thf(fact_511_domIff,axiom,
    ! [A: nat,M: nat > option_val] :
      ( ( member_nat @ A @ ( dom_nat_val @ M ) )
      = ( ( M @ A )
       != none_val ) ) ).

% domIff
thf(fact_512_domIff,axiom,
    ! [A: option_val,M: option_val > option_state] :
      ( ( member_option_val @ A @ ( dom_option_val_state @ M ) )
      = ( ( M @ A )
       != none_state ) ) ).

% domIff
thf(fact_513_domIff,axiom,
    ! [A: option_val,M: option_val > option_val] :
      ( ( member_option_val @ A @ ( dom_option_val_val @ M ) )
      = ( ( M @ A )
       != none_val ) ) ).

% domIff
thf(fact_514_domIff,axiom,
    ! [A: val,M: val > option_list_char] :
      ( ( member_val @ A @ ( dom_val_list_char @ M ) )
      = ( ( M @ A )
       != none_list_char ) ) ).

% domIff
thf(fact_515_domIff,axiom,
    ! [A: nat,M: nat > option_list_char] :
      ( ( member_nat @ A @ ( dom_nat_list_char @ M ) )
      = ( ( M @ A )
       != none_list_char ) ) ).

% domIff
thf(fact_516_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_517_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_518_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_519_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_520_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_521_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_522_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_523_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_524_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_525_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_526_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_527_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_528_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_529_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_530_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_531_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_532_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_533_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_534_map__le__def,axiom,
    ( map_le2714403320317326333_state
    = ( ^ [M_1: produc9003781588162623004on_val > option_state,M_2: produc9003781588162623004on_val > option_state] :
        ! [X4: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X4 @ ( dom_Pr4448331044451638570_state @ M_1 ) )
         => ( ( M_1 @ X4 )
            = ( M_2 @ X4 ) ) ) ) ) ).

% map_le_def
thf(fact_535_map__le__def,axiom,
    ( map_le1786601613863086943on_val
    = ( ^ [M_1: produc9003781588162623004on_val > option8887860577033306220on_val,M_2: produc9003781588162623004on_val > option8887860577033306220on_val] :
        ! [X4: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X4 @ ( dom_Pr2742230247756046988on_val @ M_1 ) )
         => ( ( M_1 @ X4 )
            = ( M_2 @ X4 ) ) ) ) ) ).

% map_le_def
thf(fact_536_map__le__def,axiom,
    ( map_le662008219874789630al_val
    = ( ^ [M_1: produc9003781588162623004on_val > option_val,M_2: produc9003781588162623004on_val > option_val] :
        ! [X4: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X4 @ ( dom_Pr7381289304162206737al_val @ M_1 ) )
         => ( ( M_1 @ X4 )
            = ( M_2 @ X4 ) ) ) ) ) ).

% map_le_def
thf(fact_537_map__le__def,axiom,
    ( map_le_nat_list_char
    = ( ^ [M_1: nat > option_list_char,M_2: nat > option_list_char] :
        ! [X4: nat] :
          ( ( member_nat @ X4 @ ( dom_nat_list_char @ M_1 ) )
         => ( ( M_1 @ X4 )
            = ( M_2 @ X4 ) ) ) ) ) ).

% map_le_def
thf(fact_538_map__le__def,axiom,
    ( map_le7591542393800649736on_val
    = ( ^ [M_1: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,M_2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
        ! [X4: produc1457211279475724562t_char > prat] :
          ( ( member2336342582916103932r_prat @ X4 @ ( dom_Pr4152820065153570843on_val @ M_1 ) )
         => ( ( M_1 @ X4 )
            = ( M_2 @ X4 ) ) ) ) ) ).

% map_le_def
thf(fact_539_map__le__def,axiom,
    ( map_le3432596473071271956ar_val
    = ( ^ [M_1: produc1457211279475724562t_char > option_val,M_2: produc1457211279475724562t_char > option_val] :
        ! [X4: produc1457211279475724562t_char] :
          ( ( member484235747325421115t_char @ X4 @ ( dom_Pr8989479155164304065ar_val @ M_1 ) )
         => ( ( M_1 @ X4 )
            = ( M_2 @ X4 ) ) ) ) ) ).

% map_le_def
thf(fact_540_option_Oset__cases,axiom,
    ! [E: option_val,A: option_option_val] :
      ( ( member_option_val @ E @ ( set_op911010586042427349on_val @ A ) )
     => ( A
        = ( some_option_val @ E ) ) ) ).

% option.set_cases
thf(fact_541_option_Oset__cases,axiom,
    ! [E: nat,A: option_nat] :
      ( ( member_nat @ E @ ( set_option_nat @ A ) )
     => ( A
        = ( some_nat @ E ) ) ) ).

% option.set_cases
thf(fact_542_option_Oset__cases,axiom,
    ! [E: produc1457211279475724562t_char > prat,A: option3572569098863364761r_prat] :
      ( ( member2336342582916103932r_prat @ E @ ( set_op923924987228895969r_prat @ A ) )
     => ( A
        = ( some_P8530153984677361336r_prat @ E ) ) ) ).

% option.set_cases
thf(fact_543_option_Oset__cases,axiom,
    ! [E: list_char,A: option_list_char] :
      ( ( member_list_char @ E @ ( set_option_list_char @ A ) )
     => ( A
        = ( some_list_char @ E ) ) ) ).

% option.set_cases
thf(fact_544_option_Oset__cases,axiom,
    ! [E: produc1457211279475724562t_char > option_val,A: option5747939881698552298on_val] :
      ( ( member1577473829074448177on_val @ E @ ( set_op1770538635792728844on_val @ A ) )
     => ( A
        = ( some_P7669353234731512949on_val @ E ) ) ) ).

% option.set_cases
thf(fact_545_option_Oset__cases,axiom,
    ! [E: produc1457211279475724562t_char,A: option2736423997234022232t_char] :
      ( ( member484235747325421115t_char @ E @ ( set_op7440730737645789856t_char @ A ) )
     => ( A
        = ( some_P6851457240968045559t_char @ E ) ) ) ).

% option.set_cases
thf(fact_546_option_Oset__cases,axiom,
    ! [E: produc9003781588162623004on_val,A: option8887860577033306220on_val] :
      ( ( member2879030624002546611on_val @ E @ ( set_op9004752959087400718on_val @ A ) )
     => ( A
        = ( some_P2581650809551911671on_val @ E ) ) ) ).

% option.set_cases
thf(fact_547_option_Oset__cases,axiom,
    ! [E: val,A: option_val] :
      ( ( member_val @ E @ ( set_option_val2 @ A ) )
     => ( A
        = ( some_val @ E ) ) ) ).

% option.set_cases
thf(fact_548_option_Oset__cases,axiom,
    ! [E: state,A: option_state] :
      ( ( member_state @ E @ ( set_option_state2 @ A ) )
     => ( A
        = ( some_state @ E ) ) ) ).

% option.set_cases
thf(fact_549_option_Oset__intros,axiom,
    ! [X2: option_val] : ( member_option_val @ X2 @ ( set_op911010586042427349on_val @ ( some_option_val @ X2 ) ) ) ).

% option.set_intros
thf(fact_550_option_Oset__intros,axiom,
    ! [X2: nat] : ( member_nat @ X2 @ ( set_option_nat @ ( some_nat @ X2 ) ) ) ).

% option.set_intros
thf(fact_551_option_Oset__intros,axiom,
    ! [X2: produc1457211279475724562t_char > prat] : ( member2336342582916103932r_prat @ X2 @ ( set_op923924987228895969r_prat @ ( some_P8530153984677361336r_prat @ X2 ) ) ) ).

% option.set_intros
thf(fact_552_option_Oset__intros,axiom,
    ! [X2: list_char] : ( member_list_char @ X2 @ ( set_option_list_char @ ( some_list_char @ X2 ) ) ) ).

% option.set_intros
thf(fact_553_option_Oset__intros,axiom,
    ! [X2: produc1457211279475724562t_char > option_val] : ( member1577473829074448177on_val @ X2 @ ( set_op1770538635792728844on_val @ ( some_P7669353234731512949on_val @ X2 ) ) ) ).

% option.set_intros
thf(fact_554_option_Oset__intros,axiom,
    ! [X2: produc1457211279475724562t_char] : ( member484235747325421115t_char @ X2 @ ( set_op7440730737645789856t_char @ ( some_P6851457240968045559t_char @ X2 ) ) ) ).

% option.set_intros
thf(fact_555_option_Oset__intros,axiom,
    ! [X2: produc9003781588162623004on_val] : ( member2879030624002546611on_val @ X2 @ ( set_op9004752959087400718on_val @ ( some_P2581650809551911671on_val @ X2 ) ) ) ).

% option.set_intros
thf(fact_556_option_Oset__intros,axiom,
    ! [X2: val] : ( member_val @ X2 @ ( set_option_val2 @ ( some_val @ X2 ) ) ) ).

% option.set_intros
thf(fact_557_option_Oset__intros,axiom,
    ! [X2: state] : ( member_state @ X2 @ ( set_option_state2 @ ( some_state @ X2 ) ) ) ).

% option.set_intros
thf(fact_558_ospec,axiom,
    ! [A5: option_list_char,P: list_char > $o,X: list_char] :
      ( ! [X3: list_char] :
          ( ( member_list_char @ X3 @ ( set_option_list_char @ A5 ) )
         => ( P @ X3 ) )
     => ( ( A5
          = ( some_list_char @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_559_ospec,axiom,
    ! [A5: option5747939881698552298on_val,P: ( produc1457211279475724562t_char > option_val ) > $o,X: produc1457211279475724562t_char > option_val] :
      ( ! [X3: produc1457211279475724562t_char > option_val] :
          ( ( member1577473829074448177on_val @ X3 @ ( set_op1770538635792728844on_val @ A5 ) )
         => ( P @ X3 ) )
     => ( ( A5
          = ( some_P7669353234731512949on_val @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_560_ospec,axiom,
    ! [A5: option8887860577033306220on_val,P: produc9003781588162623004on_val > $o,X: produc9003781588162623004on_val] :
      ( ! [X3: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X3 @ ( set_op9004752959087400718on_val @ A5 ) )
         => ( P @ X3 ) )
     => ( ( A5
          = ( some_P2581650809551911671on_val @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_561_ospec,axiom,
    ! [A5: option2736423997234022232t_char,P: produc1457211279475724562t_char > $o,X: produc1457211279475724562t_char] :
      ( ! [X3: produc1457211279475724562t_char] :
          ( ( member484235747325421115t_char @ X3 @ ( set_op7440730737645789856t_char @ A5 ) )
         => ( P @ X3 ) )
     => ( ( A5
          = ( some_P6851457240968045559t_char @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_562_ospec,axiom,
    ! [A5: option_val,P: val > $o,X: val] :
      ( ! [X3: val] :
          ( ( member_val @ X3 @ ( set_option_val2 @ A5 ) )
         => ( P @ X3 ) )
     => ( ( A5
          = ( some_val @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_563_ospec,axiom,
    ! [A5: option_state,P: state > $o,X: state] :
      ( ! [X3: state] :
          ( ( member_state @ X3 @ ( set_option_state2 @ A5 ) )
         => ( P @ X3 ) )
     => ( ( A5
          = ( some_state @ X ) )
       => ( P @ X ) ) ) ).

% ospec
thf(fact_564_add__masks_Oelims,axiom,
    ! [X: produc1457211279475724562t_char > prat,Xa: produc1457211279475724562t_char > prat,Xb: produc1457211279475724562t_char,Y: prat] :
      ( ( ( add_ma6586698345353345811t_char @ X @ Xa @ Xb )
        = Y )
     => ( Y
        = ( padd @ ( X @ Xb ) @ ( Xa @ Xb ) ) ) ) ).

% add_masks.elims
thf(fact_565_add__masks_Osimps,axiom,
    ( add_ma6586698345353345811t_char
    = ( ^ [Pi4: produc1457211279475724562t_char > prat,Pi2: produc1457211279475724562t_char > prat,Hl: produc1457211279475724562t_char] : ( padd @ ( Pi4 @ Hl ) @ ( Pi2 @ Hl ) ) ) ) ).

% add_masks.simps
thf(fact_566_bind__option__cong,axiom,
    ! [X: option_val,Y: option_val,F: val > option_val,G: val > option_val] :
      ( ( X = Y )
     => ( ! [Z2: val] :
            ( ( member_val @ Z2 @ ( set_option_val2 @ Y ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( bind_val_val @ X @ F )
          = ( bind_val_val @ Y @ G ) ) ) ) ).

% bind_option_cong
thf(fact_567_bind__option__cong,axiom,
    ! [X: option_val,Y: option_val,F: val > option_state,G: val > option_state] :
      ( ( X = Y )
     => ( ! [Z2: val] :
            ( ( member_val @ Z2 @ ( set_option_val2 @ Y ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( bind_val_state @ X @ F )
          = ( bind_val_state @ Y @ G ) ) ) ) ).

% bind_option_cong
thf(fact_568_bind__option__cong,axiom,
    ! [X: option_state,Y: option_state,F: state > option_val,G: state > option_val] :
      ( ( X = Y )
     => ( ! [Z2: state] :
            ( ( member_state @ Z2 @ ( set_option_state2 @ Y ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( bind_state_val @ X @ F )
          = ( bind_state_val @ Y @ G ) ) ) ) ).

% bind_option_cong
thf(fact_569_bind__option__cong,axiom,
    ! [X: option_state,Y: option_state,F: state > option_state,G: state > option_state] :
      ( ( X = Y )
     => ( ! [Z2: state] :
            ( ( member_state @ Z2 @ ( set_option_state2 @ Y ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( bind_state_state @ X @ F )
          = ( bind_state_state @ Y @ G ) ) ) ) ).

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

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

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

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

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

% is_none_simps(2)
thf(fact_575_is__none__simps_I1_J,axiom,
    is_non3468859156093823296on_val @ none_P8728355543607141243on_val ).

% is_none_simps(1)
thf(fact_576_is__none__simps_I1_J,axiom,
    is_none_list_char @ none_list_char ).

% is_none_simps(1)
thf(fact_577_is__none__simps_I1_J,axiom,
    is_non6205214127102033982on_val @ none_P1334921381875262201on_val ).

% is_none_simps(1)
thf(fact_578_is__none__simps_I1_J,axiom,
    is_none_state @ none_state ).

% is_none_simps(1)
thf(fact_579_is__none__simps_I1_J,axiom,
    is_none_val @ none_val ).

% is_none_simps(1)
thf(fact_580_Option_Ois__none__def,axiom,
    ( is_non3468859156093823296on_val
    = ( ^ [X4: option8887860577033306220on_val] : ( X4 = none_P8728355543607141243on_val ) ) ) ).

% Option.is_none_def
thf(fact_581_Option_Ois__none__def,axiom,
    ( is_none_list_char
    = ( ^ [X4: option_list_char] : ( X4 = none_list_char ) ) ) ).

% Option.is_none_def
thf(fact_582_Option_Ois__none__def,axiom,
    ( is_non6205214127102033982on_val
    = ( ^ [X4: option5747939881698552298on_val] : ( X4 = none_P1334921381875262201on_val ) ) ) ).

% Option.is_none_def
thf(fact_583_Option_Ois__none__def,axiom,
    ( is_none_state
    = ( ^ [X4: option_state] : ( X4 = none_state ) ) ) ).

% Option.is_none_def
thf(fact_584_Option_Ois__none__def,axiom,
    ( is_none_val
    = ( ^ [X4: option_val] : ( X4 = none_val ) ) ) ).

% Option.is_none_def
thf(fact_585_ppos__add,axiom,
    ! [A: prat,B: prat] :
      ( ( ppos @ A )
     => ( ppos @ ( padd @ A @ B ) ) ) ).

% ppos_add
thf(fact_586_add__acc__uni__mask,axiom,
    ( add_ac6043276672051819257t_char
    = ( ^ [Pi2: produc1457211279475724562t_char > prat,Hl: produc1457211279475724562t_char,P5: prat] : ( add_ma6586698345353345811t_char @ Pi2 @ ( uni_ma6578582744724537101t_char @ Hl @ P5 ) ) ) ) ).

% add_acc_uni_mask
thf(fact_587_add__acc_Oelims,axiom,
    ! [X: produc1457211279475724562t_char > prat,Xa: produc1457211279475724562t_char,Xb: prat,Y: produc1457211279475724562t_char > prat] :
      ( ( ( add_ac6043276672051819257t_char @ X @ Xa @ Xb )
        = Y )
     => ( Y
        = ( fun_up829850848796697765r_prat @ X @ Xa @ ( padd @ ( X @ Xa ) @ Xb ) ) ) ) ).

% add_acc.elims
thf(fact_588_add__acc_Osimps,axiom,
    ( add_ac6043276672051819257t_char
    = ( ^ [Pi2: produc1457211279475724562t_char > prat,Hl: produc1457211279475724562t_char,P5: prat] : ( fun_up829850848796697765r_prat @ Pi2 @ Hl @ ( padd @ ( Pi2 @ Hl ) @ P5 ) ) ) ) ).

% add_acc.simps
thf(fact_589_set__empty__eq,axiom,
    ! [Xo: option_list_char] :
      ( ( ( set_option_list_char @ Xo )
        = bot_bo8503570744482963627t_char )
      = ( Xo = none_list_char ) ) ).

% set_empty_eq
thf(fact_590_set__empty__eq,axiom,
    ! [Xo: option5747939881698552298on_val] :
      ( ( ( set_op1770538635792728844on_val @ Xo )
        = bot_bo5671083314777306084on_val )
      = ( Xo = none_P1334921381875262201on_val ) ) ).

% set_empty_eq
thf(fact_591_set__empty__eq,axiom,
    ! [Xo: option_option_state] :
      ( ( ( set_op5162993263733338108_state @ Xo )
        = bot_bo710180891245420500_state )
      = ( Xo = none_option_state ) ) ).

% set_empty_eq
thf(fact_592_set__empty__eq,axiom,
    ! [Xo: option_option_val] :
      ( ( ( set_op911010586042427349on_val @ Xo )
        = bot_bo5906790151302476563on_val )
      = ( Xo = none_option_val ) ) ).

% set_empty_eq
thf(fact_593_set__empty__eq,axiom,
    ! [Xo: option8887860577033306220on_val] :
      ( ( ( set_op9004752959087400718on_val @ Xo )
        = bot_bo6722054719108133734on_val )
      = ( Xo = none_P8728355543607141243on_val ) ) ).

% set_empty_eq
thf(fact_594_set__empty__eq,axiom,
    ! [Xo: option2736423997234022232t_char] :
      ( ( ( set_op7440730737645789856t_char @ Xo )
        = bot_bo1414094081888755934t_char )
      = ( Xo = none_P5486107665612286067t_char ) ) ).

% set_empty_eq
thf(fact_595_set__empty__eq,axiom,
    ! [Xo: option_state] :
      ( ( ( set_option_state2 @ Xo )
        = bot_bot_set_state )
      = ( Xo = none_state ) ) ).

% set_empty_eq
thf(fact_596_set__empty__eq,axiom,
    ! [Xo: option_val] :
      ( ( ( set_option_val2 @ Xo )
        = bot_bot_set_val )
      = ( Xo = none_val ) ) ).

% set_empty_eq
thf(fact_597_dom__eq__empty__conv,axiom,
    ! [F: val > option_state] :
      ( ( ( dom_val_state @ F )
        = bot_bot_set_val )
      = ( F
        = ( ^ [X4: val] : none_state ) ) ) ).

% dom_eq_empty_conv
thf(fact_598_dom__eq__empty__conv,axiom,
    ! [F: val > option_val] :
      ( ( ( dom_val_val @ F )
        = bot_bot_set_val )
      = ( F
        = ( ^ [X4: val] : none_val ) ) ) ).

% dom_eq_empty_conv
thf(fact_599_dom__eq__empty__conv,axiom,
    ! [F: nat > option_list_char] :
      ( ( ( dom_nat_list_char @ F )
        = bot_bot_set_nat )
      = ( F
        = ( ^ [X4: nat] : none_list_char ) ) ) ).

% dom_eq_empty_conv
thf(fact_600_dom__eq__empty__conv,axiom,
    ! [F: option_state > option_state] :
      ( ( ( dom_op8569336450220619928_state @ F )
        = bot_bo710180891245420500_state )
      = ( F
        = ( ^ [X4: option_state] : none_state ) ) ) ).

% dom_eq_empty_conv
thf(fact_601_dom__eq__empty__conv,axiom,
    ! [F: option_state > option_val] :
      ( ( ( dom_option_state_val @ F )
        = bot_bo710180891245420500_state )
      = ( F
        = ( ^ [X4: option_state] : none_val ) ) ) ).

% dom_eq_empty_conv
thf(fact_602_dom__eq__empty__conv,axiom,
    ! [F: option_val > option_state] :
      ( ( ( dom_option_val_state @ F )
        = bot_bo5906790151302476563on_val )
      = ( F
        = ( ^ [X4: option_val] : none_state ) ) ) ).

% dom_eq_empty_conv
thf(fact_603_dom__eq__empty__conv,axiom,
    ! [F: option_val > option_val] :
      ( ( ( dom_option_val_val @ F )
        = bot_bo5906790151302476563on_val )
      = ( F
        = ( ^ [X4: option_val] : none_val ) ) ) ).

% dom_eq_empty_conv
thf(fact_604_dom__eq__empty__conv,axiom,
    ! [F: val > option_list_char] :
      ( ( ( dom_val_list_char @ F )
        = bot_bot_set_val )
      = ( F
        = ( ^ [X4: val] : none_list_char ) ) ) ).

% dom_eq_empty_conv
thf(fact_605_dom__eq__empty__conv,axiom,
    ! [F: option_state > option_list_char] :
      ( ( ( dom_op2927896937727732287t_char @ F )
        = bot_bo710180891245420500_state )
      = ( F
        = ( ^ [X4: option_state] : none_list_char ) ) ) ).

% dom_eq_empty_conv
thf(fact_606_dom__eq__empty__conv,axiom,
    ! [F: option_val > option_list_char] :
      ( ( ( dom_op1123738440007651926t_char @ F )
        = bot_bo5906790151302476563on_val )
      = ( F
        = ( ^ [X4: option_val] : none_list_char ) ) ) ).

% dom_eq_empty_conv
thf(fact_607_option_Osimps_I14_J,axiom,
    ( ( set_option_list_char @ none_list_char )
    = bot_bo8503570744482963627t_char ) ).

% option.simps(14)
thf(fact_608_option_Osimps_I14_J,axiom,
    ( ( set_op1770538635792728844on_val @ none_P1334921381875262201on_val )
    = bot_bo5671083314777306084on_val ) ).

% option.simps(14)
thf(fact_609_option_Osimps_I14_J,axiom,
    ( ( set_op5162993263733338108_state @ none_option_state )
    = bot_bo710180891245420500_state ) ).

% option.simps(14)
thf(fact_610_option_Osimps_I14_J,axiom,
    ( ( set_op911010586042427349on_val @ none_option_val )
    = bot_bo5906790151302476563on_val ) ).

% option.simps(14)
thf(fact_611_option_Osimps_I14_J,axiom,
    ( ( set_op9004752959087400718on_val @ none_P8728355543607141243on_val )
    = bot_bo6722054719108133734on_val ) ).

% option.simps(14)
thf(fact_612_option_Osimps_I14_J,axiom,
    ( ( set_op7440730737645789856t_char @ none_P5486107665612286067t_char )
    = bot_bo1414094081888755934t_char ) ).

% option.simps(14)
thf(fact_613_option_Osimps_I14_J,axiom,
    ( ( set_option_state2 @ none_state )
    = bot_bot_set_state ) ).

% option.simps(14)
thf(fact_614_option_Osimps_I14_J,axiom,
    ( ( set_option_val2 @ none_val )
    = bot_bot_set_val ) ).

% option.simps(14)
thf(fact_615_map__add__comm,axiom,
    ! [M1: nat > option_list_char,M2: nat > option_list_char] :
      ( ( ( inf_inf_set_nat @ ( dom_nat_list_char @ M1 ) @ ( dom_nat_list_char @ M2 ) )
        = bot_bot_set_nat )
     => ( ( map_ad208561015412637672t_char @ M1 @ M2 )
        = ( map_ad208561015412637672t_char @ M2 @ M1 ) ) ) ).

% map_add_comm
thf(fact_616_map__add__comm,axiom,
    ! [M1: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val,M2: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
      ( ( ( inf_in7380704097939900321r_prat @ ( dom_Pr4152820065153570843on_val @ M1 ) @ ( dom_Pr4152820065153570843on_val @ M2 ) )
        = bot_bo3164680191535668511r_prat )
     => ( ( map_ad2898753242718228216on_val @ M1 @ M2 )
        = ( map_ad2898753242718228216on_val @ M2 @ M1 ) ) ) ).

% map_add_comm
thf(fact_617_map__add__comm,axiom,
    ! [M1: produc9003781588162623004on_val > option8887860577033306220on_val,M2: produc9003781588162623004on_val > option8887860577033306220on_val] :
      ( ( ( inf_in1079285664774927716on_val @ ( dom_Pr2742230247756046988on_val @ M1 ) @ ( dom_Pr2742230247756046988on_val @ M2 ) )
        = bot_bo6722054719108133734on_val )
     => ( ( map_ad6375351378680859759on_val @ M1 @ M2 )
        = ( map_ad6375351378680859759on_val @ M2 @ M1 ) ) ) ).

% map_add_comm
thf(fact_618_map__add__comm,axiom,
    ! [M1: produc9003781588162623004on_val > option_state,M2: produc9003781588162623004on_val > option_state] :
      ( ( ( inf_in1079285664774927716on_val @ ( dom_Pr4448331044451638570_state @ M1 ) @ ( dom_Pr4448331044451638570_state @ M2 ) )
        = bot_bo6722054719108133734on_val )
     => ( ( map_ad2629041965313307917_state @ M1 @ M2 )
        = ( map_ad2629041965313307917_state @ M2 @ M1 ) ) ) ).

% map_add_comm
thf(fact_619_map__add__comm,axiom,
    ! [M1: produc9003781588162623004on_val > option_val,M2: produc9003781588162623004on_val > option_val] :
      ( ( ( inf_in1079285664774927716on_val @ ( dom_Pr7381289304162206737al_val @ M1 ) @ ( dom_Pr7381289304162206737al_val @ M2 ) )
        = bot_bo6722054719108133734on_val )
     => ( ( map_ad5466549115852757998al_val @ M1 @ M2 )
        = ( map_ad5466549115852757998al_val @ M2 @ M1 ) ) ) ).

% map_add_comm
thf(fact_620_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_621_option_Osimps_I15_J,axiom,
    ! [X2: list_char] :
      ( ( set_option_list_char @ ( some_list_char @ X2 ) )
      = ( insert_list_char @ X2 @ bot_bo8503570744482963627t_char ) ) ).

% option.simps(15)
thf(fact_622_option_Osimps_I15_J,axiom,
    ! [X2: produc1457211279475724562t_char > option_val] :
      ( ( set_op1770538635792728844on_val @ ( some_P7669353234731512949on_val @ X2 ) )
      = ( insert216038912599248202on_val @ X2 @ bot_bo5671083314777306084on_val ) ) ).

% option.simps(15)
thf(fact_623_option_Osimps_I15_J,axiom,
    ! [X2: option_state] :
      ( ( set_op5162993263733338108_state @ ( some_option_state @ X2 ) )
      = ( insert_option_state @ X2 @ bot_bo710180891245420500_state ) ) ).

% option.simps(15)
thf(fact_624_option_Osimps_I15_J,axiom,
    ! [X2: option_val] :
      ( ( set_op911010586042427349on_val @ ( some_option_val @ X2 ) )
      = ( insert_option_val @ X2 @ bot_bo5906790151302476563on_val ) ) ).

% option.simps(15)
thf(fact_625_option_Osimps_I15_J,axiom,
    ! [X2: produc9003781588162623004on_val] :
      ( ( set_op9004752959087400718on_val @ ( some_P2581650809551911671on_val @ X2 ) )
      = ( insert3030518898131756108on_val @ X2 @ bot_bo6722054719108133734on_val ) ) ).

% option.simps(15)
thf(fact_626_option_Osimps_I15_J,axiom,
    ! [X2: produc1457211279475724562t_char] :
      ( ( set_op7440730737645789856t_char @ ( some_P6851457240968045559t_char @ X2 ) )
      = ( insert3372640069787401954t_char @ X2 @ bot_bo1414094081888755934t_char ) ) ).

% option.simps(15)
thf(fact_627_option_Osimps_I15_J,axiom,
    ! [X2: val] :
      ( ( set_option_val2 @ ( some_val @ X2 ) )
      = ( insert_val @ X2 @ bot_bot_set_val ) ) ).

% option.simps(15)
thf(fact_628_option_Osimps_I15_J,axiom,
    ! [X2: state] :
      ( ( set_option_state2 @ ( some_state @ X2 ) )
      = ( insert_state @ X2 @ bot_bot_set_state ) ) ).

% option.simps(15)
thf(fact_629_restrict__map__to__empty,axiom,
    ! [M: val > option5747939881698552298on_val] :
      ( ( restri8187230408314553963on_val @ M @ bot_bot_set_val )
      = ( ^ [X4: val] : none_P1334921381875262201on_val ) ) ).

% restrict_map_to_empty
thf(fact_630_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_631_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_632_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_633_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_634_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_635_these__insert__None,axiom,
    ! [A5: set_option_state] :
      ( ( these_state @ ( insert_option_state @ none_state @ A5 ) )
      = ( these_state @ A5 ) ) ).

% these_insert_None
thf(fact_636_these__insert__None,axiom,
    ! [A5: set_option_val] :
      ( ( these_val @ ( insert_option_val @ none_val @ A5 ) )
      = ( these_val @ A5 ) ) ).

% these_insert_None
thf(fact_637_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_638_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_639_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_640_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_641_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_642_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_643_restrict__map__def,axiom,
    ( restri5336766904122854152_state
    = ( ^ [M4: produc9003781588162623004on_val > option_state,A6: set_Pr7649655576376376530on_val,X4: produc9003781588162623004on_val] : ( if_option_state @ ( member2879030624002546611on_val @ X4 @ A6 ) @ ( M4 @ X4 ) @ none_state ) ) ) ).

% restrict_map_def
thf(fact_644_restrict__map__def,axiom,
    ( restri5251746167140823987al_val
    = ( ^ [M4: produc9003781588162623004on_val > option_val,A6: set_Pr7649655576376376530on_val,X4: produc9003781588162623004on_val] : ( if_option_val @ ( member2879030624002546611on_val @ X4 @ A6 ) @ ( M4 @ X4 ) @ none_val ) ) ) ).

% restrict_map_def
thf(fact_645_greater__maskI,axiom,
    ! [Pi3: produc1457211279475724562t_char > prat,Pi: produc1457211279475724562t_char > prat] :
      ( ! [Hl2: produc1457211279475724562t_char] : ( pgte @ ( Pi3 @ Hl2 ) @ ( Pi @ Hl2 ) )
     => ( greate7680731506090375811t_char @ Pi3 @ Pi ) ) ).

% greater_maskI
thf(fact_646_greater__mask__equiv__def,axiom,
    ( greate7680731506090375811t_char
    = ( ^ [Pi4: produc1457211279475724562t_char > prat,Pi2: produc1457211279475724562t_char > prat] :
        ! [Hl: produc1457211279475724562t_char] : ( pgte @ ( Pi4 @ Hl ) @ ( Pi2 @ Hl ) ) ) ) ).

% greater_mask_equiv_def
thf(fact_647_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_648_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_649_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_650_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_651_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_652_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_653_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_654_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_655_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_656_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_657_pinv__inverts,axiom,
    ! [A: prat,B: prat] :
      ( ( pgte @ A @ B )
     => ( ( ppos @ B )
       => ( pgte @ ( pinv @ B ) @ ( pinv @ A ) ) ) ) ).

% pinv_inverts
thf(fact_658_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_659_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_660_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_661_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_662_valid__sum_I1_J,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,Ma: prat,Mb: prat] :
      ( ( valid_mask @ A )
     => ( ( valid_mask @ B )
       => ( ( upper_bounded @ A @ Ma )
         => ( ( upper_bounded @ B @ Mb )
           => ( ( pgte @ pwrite @ ( padd @ Ma @ Mb ) )
             => ( valid_mask @ ( add_ma6586698345353345811t_char @ A @ B ) ) ) ) ) ) ) ).

% valid_sum(1)
thf(fact_663_valid__sum_I2_J,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,Ma: prat,Mb: prat] :
      ( ( valid_mask @ A )
     => ( ( valid_mask @ B )
       => ( ( upper_bounded @ A @ Ma )
         => ( ( upper_bounded @ B @ Mb )
           => ( ( pgte @ pwrite @ ( padd @ Ma @ Mb ) )
             => ( upper_bounded @ ( add_ma6586698345353345811t_char @ A @ B ) @ ( padd @ Ma @ Mb ) ) ) ) ) ) ) ).

% valid_sum(2)
thf(fact_664_image__map__upd,axiom,
    ! [X: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,M: produc9003781588162623004on_val > option_val,Y: val] :
      ( ~ ( member2879030624002546611on_val @ X @ A5 )
     => ( ( image_453284115904594532on_val @ ( fun_up8559965269643824108on_val @ M @ X @ ( some_val @ Y ) ) @ A5 )
        = ( image_453284115904594532on_val @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_665_image__map__upd,axiom,
    ! [X: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,M: produc9003781588162623004on_val > option_state,Y: state] :
      ( ~ ( member2879030624002546611on_val @ X @ A5 )
     => ( ( image_2102623794538073773_state @ ( fun_up6681822530636708645_state @ M @ X @ ( some_state @ Y ) ) @ A5 )
        = ( image_2102623794538073773_state @ M @ A5 ) ) ) ).

% image_map_upd
thf(fact_666_these__image__Some__eq,axiom,
    ! [A5: set_val] :
      ( ( these_val @ ( image_val_option_val @ some_val @ A5 ) )
      = A5 ) ).

% these_image_Some_eq
thf(fact_667_these__image__Some__eq,axiom,
    ! [A5: set_state] :
      ( ( these_state @ ( image_6076465424260689483_state @ some_state @ A5 ) )
      = A5 ) ).

% these_image_Some_eq
thf(fact_668_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_669_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 ) )
         => ~ ! [X6: produc9003781588162623004on_val,A7: set_Pr7649655576376376530on_val] :
                ( ~ ( member2879030624002546611on_val @ X6 @ A7 )
               => ( ( A5
                    = ( insert3030518898131756108on_val @ X6 @ A7 ) )
                 => ( ( X
                      = ( F @ X6 ) )
                   => ( B5
                     != ( image_4170889944715819327on_val @ F @ A7 ) ) ) ) ) ) ) ) ).

% inj_img_insertE
thf(fact_670_inj__Some,axiom,
    ! [A5: set_val] : ( inj_on4074814566786472055on_val @ some_val @ A5 ) ).

% inj_Some
thf(fact_671_inj__Some,axiom,
    ! [A5: set_state] : ( inj_on3577428053172332983_state @ some_state @ A5 ) ).

% inj_Some
thf(fact_672_mult__write__mask,axiom,
    ! [Pi: produc1457211279475724562t_char > prat] :
      ( ( multiply_mask @ pwrite @ Pi )
      = Pi ) ).

% mult_write_mask
thf(fact_673_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_674_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_675_upper__boundedI,axiom,
    ! [P4: prat,Pi: produc1457211279475724562t_char > prat] :
      ( ! [Hl2: produc1457211279475724562t_char] : ( pgte @ P4 @ ( Pi @ Hl2 ) )
     => ( upper_bounded @ Pi @ P4 ) ) ).

% upper_boundedI
thf(fact_676_upper__bounded__def,axiom,
    ( upper_bounded
    = ( ^ [Pi2: produc1457211279475724562t_char > prat,P5: prat] :
        ! [Hl: produc1457211279475724562t_char] : ( pgte @ P5 @ ( Pi2 @ Hl ) ) ) ) ).

% upper_bounded_def
thf(fact_677_upper__bounded__bigger,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,A: prat,B: prat] :
      ( ( upper_bounded @ Pi @ A )
     => ( ( pgte @ B @ A )
       => ( upper_bounded @ Pi @ B ) ) ) ).

% upper_bounded_bigger
thf(fact_678_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_679_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_680_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_681_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_682_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_683_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_684_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_685_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_686_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_687_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_688_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_689_ppos__inv,axiom,
    ! [P4: prat] :
      ( ( ppos @ P4 )
     => ( ppos @ ( pinv @ P4 ) ) ) ).

% ppos_inv
thf(fact_690_half__between__0__1,axiom,
    ( ( ppos @ half )
    & ( pgt @ pwrite @ half ) ) ).

% half_between_0_1
thf(fact_691_valid__multiply,axiom,
    ! [A: produc1457211279475724562t_char > prat,Ma: prat,P4: prat] :
      ( ( valid_mask @ A )
     => ( ( upper_bounded @ A @ Ma )
       => ( ( pgte @ pwrite @ ( pmult @ Ma @ P4 ) )
         => ( valid_mask @ ( multiply_mask @ P4 @ A ) ) ) ) ) ).

% valid_multiply
thf(fact_692_add__states_Oelims,axiom,
    ! [X: produc9003781588162623004on_val,Xa: produc9003781588162623004on_val,Y: produc9003781588162623004on_val] :
      ( ( ( add_states @ X @ Xa )
        = Y )
     => ~ ! [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 ) )
               => ( Y
                 != ( produc74620467203698198on_val @ ( add_ma6586698345353345811t_char @ Pi6 @ Pi7 ) @ ( map_ad2908576761495157028ar_val @ H5 @ H6 ) ) ) ) ) ) ).

% add_states.elims
thf(fact_693_add__states_Osimps,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,H3: produc1457211279475724562t_char > option_val,Pi3: produc1457211279475724562t_char > prat,H4: produc1457211279475724562t_char > option_val] :
      ( ( add_states @ ( produc74620467203698198on_val @ Pi @ H3 ) @ ( produc74620467203698198on_val @ Pi3 @ H4 ) )
      = ( produc74620467203698198on_val @ ( add_ma6586698345353345811t_char @ Pi @ Pi3 ) @ ( map_ad2908576761495157028ar_val @ H3 @ H4 ) ) ) ).

% add_states.simps
thf(fact_694_sum__coeff,axiom,
    ! [A: prat,B: prat] :
      ( ( ppos @ A )
     => ( ( ppos @ B )
       => ( ( padd @ ( pdiv @ A @ ( padd @ A @ B ) ) @ ( pdiv @ B @ ( padd @ A @ B ) ) )
          = pwrite ) ) ) ).

% sum_coeff
thf(fact_695_pdiv__smaller,axiom,
    ! [A: prat,B: prat] :
      ( ( pgte @ A @ B )
     => ( ( ppos @ A )
       => ( pgte @ pwrite @ ( pdiv @ B @ A ) ) ) ) ).

% pdiv_smaller
thf(fact_696_valid__stateI,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,H3: produc1457211279475724562t_char > option_val] :
      ( ( valid_mask @ Pi )
     => ( ! [Hl2: produc1457211279475724562t_char] :
            ( ( ppos @ ( Pi @ Hl2 ) )
           => ( ( H3 @ Hl2 )
             != none_val ) )
       => ( valid_state @ ( produc74620467203698198on_val @ Pi @ H3 ) ) ) ) ).

% valid_stateI
thf(fact_697_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_698_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_699_pmult__pdiv__cancel,axiom,
    ! [A: prat,X: prat] :
      ( ( ppos @ A )
     => ( ( pmult @ A @ ( pdiv @ X @ A ) )
        = X ) ) ).

% pmult_pdiv_cancel
thf(fact_700_pmult__ppos,axiom,
    ! [A: prat,B: prat] :
      ( ( ppos @ A )
     => ( ( ppos @ B )
       => ( ppos @ ( pmult @ A @ B ) ) ) ) ).

% pmult_ppos
thf(fact_701_multiply__mask__def,axiom,
    ( multiply_mask
    = ( ^ [P5: prat,Pi2: produc1457211279475724562t_char > prat,Hl: produc1457211279475724562t_char] : ( pmult @ P5 @ ( Pi2 @ Hl ) ) ) ) ).

% multiply_mask_def
thf(fact_702_valid__state__decompose,axiom,
    ! [A: produc1457211279475724562t_char > prat,B: produc1457211279475724562t_char > prat,H3: produc1457211279475724562t_char > option_val] :
      ( ( valid_state @ ( produc74620467203698198on_val @ ( add_ma6586698345353345811t_char @ A @ B ) @ H3 ) )
     => ( valid_state @ ( produc74620467203698198on_val @ A @ H3 ) ) ) ).

% valid_state_decompose
thf(fact_703_valid__pre__unit,axiom,
    valid_state @ ( produc74620467203698198on_val @ empty_3446695950879338768t_char @ empty_7512026568161686585ar_val ) ).

% valid_pre_unit
thf(fact_704_pinv__double__half,axiom,
    ! [P4: prat] :
      ( ( ppos @ P4 )
     => ( ( pmult @ half @ ( pinv @ P4 ) )
        = ( pinv @ ( padd @ P4 @ P4 ) ) ) ) ).

% pinv_double_half
thf(fact_705_upper__bounded__smaller,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,A: prat,P4: prat] :
      ( ( upper_bounded @ Pi @ A )
     => ( upper_bounded @ ( multiply_mask @ P4 @ Pi ) @ ( pmult @ P4 @ A ) ) ) ).

% upper_bounded_smaller
thf(fact_706_valid__state_Osimps,axiom,
    ! [Pi: produc1457211279475724562t_char > prat,H3: produc1457211279475724562t_char > option_val] :
      ( ( valid_state @ ( produc74620467203698198on_val @ Pi @ H3 ) )
      = ( ( valid_mask @ Pi )
        & ( valid_heap @ Pi @ H3 ) ) ) ).

% valid_state.simps
thf(fact_707_valid__state_Oelims_I1_J,axiom,
    ! [X: produc9003781588162623004on_val,Y: $o] :
      ( ( ( valid_state @ X )
        = Y )
     => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
            ( ( X
              = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
           => ( Y
              = ( ~ ( ( valid_mask @ Pi6 )
                    & ( valid_heap @ Pi6 @ H5 ) ) ) ) ) ) ).

% valid_state.elims(1)
thf(fact_708_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_709_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_710_pinv__pmult__ok,axiom,
    ! [P4: prat] :
      ( ( ppos @ P4 )
     => ( ( pmult @ P4 @ ( pinv @ P4 ) )
        = pwrite ) ) ).

% pinv_pmult_ok
thf(fact_711_core__def,axiom,
    ( core
    = ( ^ [Phi: state] : ( abs_state @ ( produc74620467203698198on_val @ empty_3446695950879338768t_char @ ( get_h @ Phi ) ) ) ) ) ).

% core_def
thf(fact_712_get__h__m,axiom,
    ( rep_state
    = ( ^ [X4: state] : ( produc74620467203698198on_val @ ( get_m @ X4 ) @ ( get_h @ X4 ) ) ) ) ).

% get_h_m
thf(fact_713_add__states_Opelims,axiom,
    ! [X: produc9003781588162623004on_val,Xa: produc9003781588162623004on_val,Y: produc9003781588162623004on_val] :
      ( ( ( add_states @ X @ Xa )
        = Y )
     => ( ( 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 ) )
                 => ( ( Y
                      = ( 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_714_unit__def,axiom,
    ( unit
    = ( abs_state @ ( produc74620467203698198on_val @ empty_3446695950879338768t_char @ empty_7512026568161686585ar_val ) ) ) ).

% unit_def
thf(fact_715_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_716_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_717_uni__mask_Opelims,axiom,
    ! [X: produc1457211279475724562t_char,Xa: prat,Y: produc1457211279475724562t_char > prat] :
      ( ( ( uni_ma6578582744724537101t_char @ X @ Xa )
        = Y )
     => ( ( accp_P8956218777217113800r_prat @ uni_ma1788645471123007132t_char @ ( produc2920179824973321483r_prat @ X @ Xa ) )
       => ~ ( ( Y
              = ( fun_up829850848796697765r_prat @ empty_3446695950879338768t_char @ X @ Xa ) )
           => ~ ( accp_P8956218777217113800r_prat @ uni_ma1788645471123007132t_char @ ( produc2920179824973321483r_prat @ X @ Xa ) ) ) ) ) ).

% uni_mask.pelims
thf(fact_718_Rep__state__inverse,axiom,
    ! [X: state] :
      ( ( abs_state @ ( rep_state @ X ) )
      = X ) ).

% Rep_state_inverse
thf(fact_719_Rep__state__inject,axiom,
    ! [X: state,Y: state] :
      ( ( ( rep_state @ X )
        = ( rep_state @ Y ) )
      = ( X = Y ) ) ).

% Rep_state_inject
thf(fact_720_inj__image__mem__iff,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val,A: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val] :
      ( ( inj_on7948954794846770859on_val @ F @ top_to1561438921946393474on_val )
     => ( ( member2879030624002546611on_val @ ( F @ A ) @ ( image_4170889944715819327on_val @ F @ A5 ) )
        = ( member2879030624002546611on_val @ A @ A5 ) ) ) ).

% inj_image_mem_iff
thf(fact_721_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_722_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_723_plus__def,axiom,
    ( plus
    = ( ^ [A2: state,B2: state] : ( if_option_state @ ( compatible @ ( rep_state @ A2 ) @ ( rep_state @ B2 ) ) @ ( some_state @ ( abs_state @ ( add_states @ ( rep_state @ A2 ) @ ( rep_state @ B2 ) ) ) ) @ none_state ) ) ) ).

% plus_def
thf(fact_724_add__masks_Opelims,axiom,
    ! [X: produc1457211279475724562t_char > prat,Xa: produc1457211279475724562t_char > prat,Xb: produc1457211279475724562t_char,Y: prat] :
      ( ( ( add_ma6586698345353345811t_char @ X @ Xa @ Xb )
        = Y )
     => ( ( accp_P224314924008452035t_char @ add_ma2412268806269088278t_char @ ( produc2957999048406202538t_char @ X @ ( produc2591414526589101846t_char @ Xa @ Xb ) ) )
       => ~ ( ( Y
              = ( padd @ ( X @ Xb ) @ ( Xa @ Xb ) ) )
           => ~ ( accp_P224314924008452035t_char @ add_ma2412268806269088278t_char @ ( produc2957999048406202538t_char @ X @ ( produc2591414526589101846t_char @ Xa @ Xb ) ) ) ) ) ) ).

% add_masks.pelims
thf(fact_725_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_726_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_727_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_728_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_729_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_730_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_731_inj__on__image__mem__iff,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val,B5: set_Pr7649655576376376530on_val,A: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val] :
      ( ( inj_on7948954794846770859on_val @ F @ B5 )
     => ( ( member2879030624002546611on_val @ A @ B5 )
       => ( ( ord_le6900622908513426738on_val @ A5 @ B5 )
         => ( ( member2879030624002546611on_val @ ( F @ A ) @ ( image_4170889944715819327on_val @ F @ A5 ) )
            = ( member2879030624002546611on_val @ A @ A5 ) ) ) ) ) ).

% inj_on_image_mem_iff
thf(fact_732_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_733_valid__state_Opelims_I1_J,axiom,
    ! [X: produc9003781588162623004on_val,Y: $o] :
      ( ( ( valid_state @ X )
        = Y )
     => ( ( accp_P4405556307444930259on_val @ valid_state_rel @ X )
       => ~ ! [Pi6: produc1457211279475724562t_char > prat,H5: produc1457211279475724562t_char > option_val] :
              ( ( X
                = ( produc74620467203698198on_val @ Pi6 @ H5 ) )
             => ( ( Y
                  = ( ( valid_mask @ Pi6 )
                    & ( valid_heap @ Pi6 @ H5 ) ) )
               => ~ ( accp_P4405556307444930259on_val @ valid_state_rel @ ( produc74620467203698198on_val @ Pi6 @ H5 ) ) ) ) ) ) ).

% valid_state.pelims(1)
thf(fact_734_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_735_map__option__eq__Some,axiom,
    ! [F: val > val,Xo: option_val,Y: val] :
      ( ( ( map_option_val_val @ F @ Xo )
        = ( some_val @ Y ) )
      = ( ? [Z3: val] :
            ( ( Xo
              = ( some_val @ Z3 ) )
            & ( ( F @ Z3 )
              = Y ) ) ) ) ).

% map_option_eq_Some
thf(fact_736_map__option__eq__Some,axiom,
    ! [F: state > val,Xo: option_state,Y: val] :
      ( ( ( map_option_state_val @ F @ Xo )
        = ( some_val @ Y ) )
      = ( ? [Z3: state] :
            ( ( Xo
              = ( some_state @ Z3 ) )
            & ( ( F @ Z3 )
              = Y ) ) ) ) ).

% map_option_eq_Some
thf(fact_737_map__option__eq__Some,axiom,
    ! [F: val > state,Xo: option_val,Y: state] :
      ( ( ( map_option_val_state @ F @ Xo )
        = ( some_state @ Y ) )
      = ( ? [Z3: val] :
            ( ( Xo
              = ( some_val @ Z3 ) )
            & ( ( F @ Z3 )
              = Y ) ) ) ) ).

% map_option_eq_Some
thf(fact_738_map__option__eq__Some,axiom,
    ! [F: state > state,Xo: option_state,Y: state] :
      ( ( ( map_op2726735944305651201_state @ F @ Xo )
        = ( some_state @ Y ) )
      = ( ? [Z3: state] :
            ( ( Xo
              = ( some_state @ Z3 ) )
            & ( ( F @ Z3 )
              = Y ) ) ) ) ).

% map_option_eq_Some
thf(fact_739_option_Omap__disc__iff,axiom,
    ! [F: state > state,A: option_state] :
      ( ( ( map_op2726735944305651201_state @ F @ A )
        = none_state )
      = ( A = none_state ) ) ).

% option.map_disc_iff
thf(fact_740_option_Omap__disc__iff,axiom,
    ! [F: val > state,A: option_val] :
      ( ( ( map_option_val_state @ F @ A )
        = none_state )
      = ( A = none_val ) ) ).

% option.map_disc_iff
thf(fact_741_option_Omap__disc__iff,axiom,
    ! [F: state > val,A: option_state] :
      ( ( ( map_option_state_val @ F @ A )
        = none_val )
      = ( A = none_state ) ) ).

% option.map_disc_iff
thf(fact_742_option_Omap__disc__iff,axiom,
    ! [F: val > val,A: option_val] :
      ( ( ( map_option_val_val @ F @ A )
        = none_val )
      = ( A = none_val ) ) ).

% option.map_disc_iff
thf(fact_743_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_744_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_745_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_746_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_747_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_748_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_749_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_750_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_751_option_Osimps_I9_J,axiom,
    ! [F: val > val,X2: val] :
      ( ( map_option_val_val @ F @ ( some_val @ X2 ) )
      = ( some_val @ ( F @ X2 ) ) ) ).

% option.simps(9)
thf(fact_752_option_Osimps_I9_J,axiom,
    ! [F: val > state,X2: val] :
      ( ( map_option_val_state @ F @ ( some_val @ X2 ) )
      = ( some_state @ ( F @ X2 ) ) ) ).

% option.simps(9)
thf(fact_753_option_Osimps_I9_J,axiom,
    ! [F: state > val,X2: state] :
      ( ( map_option_state_val @ F @ ( some_state @ X2 ) )
      = ( some_val @ ( F @ X2 ) ) ) ).

% option.simps(9)
thf(fact_754_option_Osimps_I9_J,axiom,
    ! [F: state > state,X2: state] :
      ( ( map_op2726735944305651201_state @ F @ ( some_state @ X2 ) )
      = ( some_state @ ( F @ X2 ) ) ) ).

% option.simps(9)
thf(fact_755_option_Osimps_I8_J,axiom,
    ! [F: state > state] :
      ( ( map_op2726735944305651201_state @ F @ none_state )
      = none_state ) ).

% option.simps(8)
thf(fact_756_option_Osimps_I8_J,axiom,
    ! [F: state > val] :
      ( ( map_option_state_val @ F @ none_state )
      = none_val ) ).

% option.simps(8)
thf(fact_757_option_Osimps_I8_J,axiom,
    ! [F: val > state] :
      ( ( map_option_val_state @ F @ none_val )
      = none_state ) ).

% option.simps(8)
thf(fact_758_option_Osimps_I8_J,axiom,
    ! [F: val > val] :
      ( ( map_option_val_val @ F @ none_val )
      = none_val ) ).

% option.simps(8)
thf(fact_759_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_760_map__option__idI,axiom,
    ! [X: option8887860577033306220on_val,F: produc9003781588162623004on_val > produc9003781588162623004on_val] :
      ( ! [Y4: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ Y4 @ ( set_op9004752959087400718on_val @ X ) )
         => ( ( F @ Y4 )
            = Y4 ) )
     => ( ( map_op7709461780610975941on_val @ F @ X )
        = X ) ) ).

% map_option_idI
thf(fact_761_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_762_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_763_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_764_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_765_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 ) )
     => ? [X3: produc1457211279475724562t_char > option_val] :
          ( ( map_of8940823041123231434on_val @ L @ K )
          = ( some_P7669353234731512949on_val @ X3 ) ) ) ).

% weak_map_of_SomeI
thf(fact_766_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 ) )
     => ? [X3: produc9003781588162623004on_val] :
          ( ( map_of2499293770471829533on_val @ L @ K )
          = ( some_P2581650809551911671on_val @ X3 ) ) ) ).

% weak_map_of_SomeI
thf(fact_767_weak__map__of__SomeI,axiom,
    ! [K: nat,X: list_char,L: list_P8003064839462976920t_char] :
      ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ X ) @ ( set_Pr4422032998922688679t_char @ L ) )
     => ? [X3: list_char] :
          ( ( map_of_nat_list_char @ L @ K )
          = ( some_list_char @ X3 ) ) ) ).

% weak_map_of_SomeI
thf(fact_768_map__of__SomeD,axiom,
    ! [Xs: list_P8058578141249370668on_val,K: produc1457211279475724562t_char > prat,Y: produc1457211279475724562t_char > option_val] :
      ( ( ( map_of8940823041123231434on_val @ Xs @ K )
        = ( some_P7669353234731512949on_val @ Y ) )
     => ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ K @ Y ) @ ( set_Pr1015909255637879367on_val @ Xs ) ) ) ).

% map_of_SomeD
thf(fact_769_map__of__SomeD,axiom,
    ! [Xs: list_P5521618065476132895on_val,K: produc9003781588162623004on_val,Y: produc9003781588162623004on_val] :
      ( ( ( map_of2499293770471829533on_val @ Xs @ K )
        = ( some_P2581650809551911671on_val @ Y ) )
     => ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ K @ Y ) @ ( set_Pr5935206576607725998on_val @ Xs ) ) ) ).

% map_of_SomeD
thf(fact_770_map__of__SomeD,axiom,
    ! [Xs: list_P8003064839462976920t_char,K: nat,Y: list_char] :
      ( ( ( map_of_nat_list_char @ Xs @ K )
        = ( some_list_char @ Y ) )
     => ( member484235747325421115t_char @ ( produc120197956887798346t_char @ K @ Y ) @ ( set_Pr4422032998922688679t_char @ Xs ) ) ) ).

% map_of_SomeD
thf(fact_771_bij__betw__iff__bijections,axiom,
    ( bij_be532653817181524272on_val
    = ( ^ [F2: produc9003781588162623004on_val > produc9003781588162623004on_val,A6: set_Pr7649655576376376530on_val,B6: set_Pr7649655576376376530on_val] :
        ? [G2: produc9003781588162623004on_val > produc9003781588162623004on_val] :
          ( ! [X4: produc9003781588162623004on_val] :
              ( ( member2879030624002546611on_val @ X4 @ A6 )
             => ( ( member2879030624002546611on_val @ ( F2 @ X4 ) @ B6 )
                & ( ( G2 @ ( F2 @ X4 ) )
                  = X4 ) ) )
          & ! [X4: produc9003781588162623004on_val] :
              ( ( member2879030624002546611on_val @ X4 @ B6 )
             => ( ( member2879030624002546611on_val @ ( G2 @ X4 ) @ A6 )
                & ( ( F2 @ ( G2 @ X4 ) )
                  = X4 ) ) ) ) ) ) ).

% bij_betw_iff_bijections
thf(fact_772_bij__betw__apply,axiom,
    ! [F: produc9003781588162623004on_val > produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,B5: set_Pr7649655576376376530on_val,A: produc9003781588162623004on_val] :
      ( ( bij_be532653817181524272on_val @ F @ A5 @ B5 )
     => ( ( member2879030624002546611on_val @ A @ A5 )
       => ( member2879030624002546611on_val @ ( F @ A ) @ B5 ) ) ) ).

% bij_betw_apply
thf(fact_773_notIn__Un__bij__betw,axiom,
    ! [B: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,F: produc9003781588162623004on_val > produc9003781588162623004on_val,A8: set_Pr7649655576376376530on_val] :
      ( ~ ( member2879030624002546611on_val @ B @ A5 )
     => ( ~ ( member2879030624002546611on_val @ ( F @ B ) @ A8 )
       => ( ( bij_be532653817181524272on_val @ F @ A5 @ A8 )
         => ( bij_be532653817181524272on_val @ F @ ( sup_su7506060154676209150on_val @ A5 @ ( insert3030518898131756108on_val @ B @ bot_bo6722054719108133734on_val ) ) @ ( sup_su7506060154676209150on_val @ A8 @ ( insert3030518898131756108on_val @ ( F @ B ) @ bot_bo6722054719108133734on_val ) ) ) ) ) ) ).

% notIn_Un_bij_betw
thf(fact_774_notIn__Un__bij__betw3,axiom,
    ! [B: produc9003781588162623004on_val,A5: set_Pr7649655576376376530on_val,F: produc9003781588162623004on_val > produc9003781588162623004on_val,A8: set_Pr7649655576376376530on_val] :
      ( ~ ( member2879030624002546611on_val @ B @ A5 )
     => ( ~ ( member2879030624002546611on_val @ ( F @ B ) @ A8 )
       => ( ( bij_be532653817181524272on_val @ F @ A5 @ A8 )
          = ( bij_be532653817181524272on_val @ F @ ( sup_su7506060154676209150on_val @ A5 @ ( insert3030518898131756108on_val @ B @ bot_bo6722054719108133734on_val ) ) @ ( sup_su7506060154676209150on_val @ A8 @ ( insert3030518898131756108on_val @ ( F @ B ) @ bot_bo6722054719108133734on_val ) ) ) ) ) ) ).

% notIn_Un_bij_betw3
thf(fact_775_map__upds__twist,axiom,
    ! [A: produc9003781588162623004on_val,As: list_P8058578141249370668on_val,M: produc9003781588162623004on_val > option_val,B: val,Bs: list_val] :
      ( ~ ( member2879030624002546611on_val @ A @ ( set_Pr1015909255637879367on_val @ As ) )
     => ( ( map_up8749164644216650349al_val @ ( fun_up8559965269643824108on_val @ M @ A @ ( some_val @ B ) ) @ As @ Bs )
        = ( fun_up8559965269643824108on_val @ ( map_up8749164644216650349al_val @ M @ As @ Bs ) @ A @ ( some_val @ B ) ) ) ) ).

% map_upds_twist
thf(fact_776_map__upds__twist,axiom,
    ! [A: produc9003781588162623004on_val,As: list_P8058578141249370668on_val,M: produc9003781588162623004on_val > option_state,B: state,Bs: list_state] :
      ( ~ ( member2879030624002546611on_val @ A @ ( set_Pr1015909255637879367on_val @ As ) )
     => ( ( map_up1579866409222595534_state @ ( fun_up6681822530636708645_state @ M @ A @ ( some_state @ B ) ) @ As @ Bs )
        = ( fun_up6681822530636708645_state @ ( map_up1579866409222595534_state @ M @ As @ Bs ) @ A @ ( some_state @ B ) ) ) ) ).

% map_upds_twist
thf(fact_777_comp__the__Some,axiom,
    ( ( comp_o5604524432708427236al_val @ the_val @ some_val )
    = id_val ) ).

% comp_the_Some
thf(fact_778_comp__the__Some,axiom,
    ( ( comp_o4916166309651032803_state @ the_state @ some_state )
    = id_state ) ).

% comp_the_Some
thf(fact_779_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_780_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_781_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_782_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_783_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_784_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_785_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_786_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_787_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_788_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_789_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_790_get__m_Osimps,axiom,
    ( get_m
    = ( ^ [A2: state] : ( produc5239619271231976746on_val @ ( rep_state @ A2 ) ) ) ) ).

% get_m.simps
thf(fact_791_get__m_Oelims,axiom,
    ! [X: state,Y: produc1457211279475724562t_char > prat] :
      ( ( ( get_m @ X )
        = Y )
     => ( Y
        = ( produc5239619271231976746on_val @ ( rep_state @ X ) ) ) ) ).

% get_m.elims
thf(fact_792_get__pre_I2_J,axiom,
    ( get_m
    = ( ^ [X4: state] : ( produc5239619271231976746on_val @ ( rep_state @ X4 ) ) ) ) ).

% get_pre(2)
thf(fact_793_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_794_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_795_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_796_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_797_compatibleI__old,axiom,
    ! [Phi2: produc9003781588162623004on_val,Phi3: produc9003781588162623004on_val] :
      ( ! [Hl2: produc1457211279475724562t_char,X3: val,Y4: val] :
          ( ( ( ( produc2319605628138516840on_val @ Phi2 @ Hl2 )
              = ( some_val @ X3 ) )
            & ( ( produc2319605628138516840on_val @ Phi3 @ Hl2 )
              = ( some_val @ Y4 ) ) )
         => ( X3 = Y4 ) )
     => ( ( valid_mask @ ( add_ma6586698345353345811t_char @ ( produc5239619271231976746on_val @ Phi2 ) @ ( produc5239619271231976746on_val @ Phi3 ) ) )
       => ( compatible @ Phi2 @ Phi3 ) ) ) ).

% compatibleI_old
thf(fact_798_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_799_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_800_compatible__def,axiom,
    ( compatible
    = ( ^ [Phi: produc9003781588162623004on_val,Phi4: produc9003781588162623004on_val] :
          ( ( compatible_heaps @ ( produc2319605628138516840on_val @ Phi ) @ ( produc2319605628138516840on_val @ Phi4 ) )
          & ( valid_mask @ ( add_ma6586698345353345811t_char @ ( produc5239619271231976746on_val @ Phi ) @ ( produc5239619271231976746on_val @ Phi4 ) ) ) ) ) ) ).

% compatible_def
thf(fact_801_pre__get__m_Oelims,axiom,
    ! [X: produc9003781588162623004on_val,Y: produc1457211279475724562t_char > prat] :
      ( ( ( pre_ge8481574585653477131on_val @ X )
        = Y )
     => ( Y
        = ( produc5239619271231976746on_val @ X ) ) ) ).

% pre_get_m.elims
thf(fact_802_pre__get__m_Oelims,axiom,
    ! [X: produc1457211279475724562t_char,Y: nat] :
      ( ( ( pre_ge2740421702909910421t_char @ X )
        = Y )
     => ( Y
        = ( produc6204653154488278070t_char @ X ) ) ) ).

% pre_get_m.elims
thf(fact_803_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_804_get__pre_I1_J,axiom,
    ( get_h
    = ( ^ [X4: state] : ( produc2319605628138516840on_val @ ( rep_state @ X4 ) ) ) ) ).

% get_pre(1)
thf(fact_805_get__h_Oelims,axiom,
    ! [X: state,Y: produc1457211279475724562t_char > option_val] :
      ( ( ( get_h @ X )
        = Y )
     => ( Y
        = ( produc2319605628138516840on_val @ ( rep_state @ X ) ) ) ) ).

% get_h.elims
thf(fact_806_get__h_Osimps,axiom,
    ( get_h
    = ( ^ [A2: state] : ( produc2319605628138516840on_val @ ( rep_state @ A2 ) ) ) ) ).

% get_h.simps
thf(fact_807_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_808_pre__get__m_Osimps,axiom,
    pre_ge8481574585653477131on_val = produc5239619271231976746on_val ).

% pre_get_m.simps
thf(fact_809_pre__get__m_Osimps,axiom,
    pre_ge2740421702909910421t_char = produc6204653154488278070t_char ).

% pre_get_m.simps
thf(fact_810_pre__get__m_Opelims,axiom,
    ! [X: produc1317171644805857433on_val,Y: produc9003781588162623004on_val] :
      ( ( ( pre_ge6899797224320663452on_val @ X )
        = Y )
     => ( ( accp_P6797916352740768290on_val @ pre_ge1694281482089598673on_val @ X )
       => ~ ( ( Y
              = ( produc3129717363260770749on_val @ X ) )
           => ~ ( accp_P6797916352740768290on_val @ pre_ge1694281482089598673on_val @ X ) ) ) ) ).

% pre_get_m.pelims
thf(fact_811_pre__get__m_Opelims,axiom,
    ! [X: produc9003781588162623004on_val,Y: produc1457211279475724562t_char > prat] :
      ( ( ( pre_ge8481574585653477131on_val @ X )
        = Y )
     => ( ( accp_P4405556307444930259on_val @ pre_ge4462515927930180886on_val @ X )
       => ~ ( ( Y
              = ( produc5239619271231976746on_val @ X ) )
           => ~ ( accp_P4405556307444930259on_val @ pre_ge4462515927930180886on_val @ X ) ) ) ) ).

% pre_get_m.pelims
thf(fact_812_pre__get__m_Opelims,axiom,
    ! [X: produc1457211279475724562t_char,Y: nat] :
      ( ( ( pre_ge2740421702909910421t_char @ X )
        = Y )
     => ( ( accp_P8892882183480857371t_char @ pre_ge8748858970926381898t_char @ X )
       => ~ ( ( Y
              = ( produc6204653154488278070t_char @ X ) )
           => ~ ( accp_P8892882183480857371t_char @ pre_ge8748858970926381898t_char @ X ) ) ) ) ).

% pre_get_m.pelims
thf(fact_813_map__upd__upds__conv__if,axiom,
    ! [X: produc9003781588162623004on_val,Ys: list_val,Xs: list_P8058578141249370668on_val,F: produc9003781588162623004on_val > option_val,Y: 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 @ Y ) ) @ 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 @ Y ) ) @ Xs @ Ys )
          = ( fun_up8559965269643824108on_val @ ( map_up8749164644216650349al_val @ F @ Xs @ Ys ) @ X @ ( some_val @ Y ) ) ) ) ) ).

% map_upd_upds_conv_if
thf(fact_814_map__upd__upds__conv__if,axiom,
    ! [X: produc9003781588162623004on_val,Ys: list_state,Xs: list_P8058578141249370668on_val,F: produc9003781588162623004on_val > option_state,Y: 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 @ Y ) ) @ 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 @ Y ) ) @ Xs @ Ys )
          = ( fun_up6681822530636708645_state @ ( map_up1579866409222595534_state @ F @ Xs @ Ys ) @ X @ ( some_state @ Y ) ) ) ) ) ).

% map_upd_upds_conv_if
thf(fact_815_map__of__zip__upd,axiom,
    ! [Ys: list_val,Xs: list_P8058578141249370668on_val,Zs: list_val,X: produc9003781588162623004on_val,Y: 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 @ Y ) )
              = ( 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_816_map__of__zip__upd,axiom,
    ! [Ys: list_state,Xs: list_P8058578141249370668on_val,Zs: list_state,X: produc9003781588162623004on_val,Y: 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 @ Y ) )
              = ( 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__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_818_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_819_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_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_compatible__options_Opelims_I1_J,axiom,
    ! [X: option_val,Xa: option_val,Y: $o] :
      ( ( ( compat7209469420100717861ns_val @ X @ Xa )
        = Y )
     => ( ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ X @ Xa ) )
       => ( ! [A4: val] :
              ( ( X
                = ( some_val @ A4 ) )
             => ! [B4: val] :
                  ( ( Xa
                    = ( some_val @ B4 ) )
                 => ( ( Y
                      = ( A4 = B4 ) )
                   => ~ ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ ( some_val @ A4 ) @ ( some_val @ B4 ) ) ) ) ) )
         => ( ( ( X = none_val )
             => ( Y
               => ~ ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ none_val @ Xa ) ) ) )
           => ~ ( ( Xa = none_val )
               => ( Y
                 => ~ ( accp_P4269981079083053040on_val @ compat8294034345482142370el_val @ ( produc904852209897547607on_val @ X @ none_val ) ) ) ) ) ) ) ) ).

% compatible_options.pelims(1)
thf(fact_822_compatible__options_Opelims_I1_J,axiom,
    ! [X: option_state,Xa: option_state,Y: $o] :
      ( ( ( compat2278460363914054422_state @ X @ Xa )
        = Y )
     => ( ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ X @ Xa ) )
       => ( ! [A4: state] :
              ( ( X
                = ( some_state @ A4 ) )
             => ! [B4: state] :
                  ( ( Xa
                    = ( some_state @ B4 ) )
                 => ( ( Y
                      = ( A4 = B4 ) )
                   => ~ ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ ( some_state @ A4 ) @ ( some_state @ B4 ) ) ) ) ) )
         => ( ( ( X = none_state )
             => ( Y
               => ~ ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ none_state @ Xa ) ) ) )
           => ~ ( ( Xa = none_state )
               => ( Y
                 => ~ ( accp_P7183347322223220350_state @ compat1844074344818064729_state @ ( produc9160152616361873709_state @ X @ none_state ) ) ) ) ) ) ) ) ).

% compatible_options.pelims(1)
thf(fact_823_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_824_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_825_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_826_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_827_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_828_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_829_map__of__eq__Some__iff,axiom,
    ! [Xys: list_P5521618065476132895on_val,X: produc9003781588162623004on_val,Y: produc9003781588162623004on_val] :
      ( ( distin602967888454099555on_val @ ( map_Pr2662348860696421617on_val @ produc3129717363260770749on_val @ Xys ) )
     => ( ( ( map_of2499293770471829533on_val @ Xys @ X )
          = ( some_P2581650809551911671on_val @ Y ) )
        = ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ X @ Y ) @ ( set_Pr5935206576607725998on_val @ Xys ) ) ) ) ).

% map_of_eq_Some_iff
thf(fact_830_map__of__eq__Some__iff,axiom,
    ! [Xys: list_P8058578141249370668on_val,X: produc1457211279475724562t_char > prat,Y: produc1457211279475724562t_char > option_val] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xys ) )
     => ( ( ( map_of8940823041123231434on_val @ Xys @ X )
          = ( some_P7669353234731512949on_val @ Y ) )
        = ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ X @ Y ) @ ( set_Pr1015909255637879367on_val @ Xys ) ) ) ) ).

% map_of_eq_Some_iff
thf(fact_831_map__of__eq__Some__iff,axiom,
    ! [Xys: list_P8003064839462976920t_char,X: nat,Y: list_char] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xys ) )
     => ( ( ( map_of_nat_list_char @ Xys @ X )
          = ( some_list_char @ Y ) )
        = ( member484235747325421115t_char @ ( produc120197956887798346t_char @ X @ Y ) @ ( set_Pr4422032998922688679t_char @ Xys ) ) ) ) ).

% map_of_eq_Some_iff
thf(fact_832_Some__eq__map__of__iff,axiom,
    ! [Xys: list_P5521618065476132895on_val,Y: produc9003781588162623004on_val,X: produc9003781588162623004on_val] :
      ( ( distin602967888454099555on_val @ ( map_Pr2662348860696421617on_val @ produc3129717363260770749on_val @ Xys ) )
     => ( ( ( some_P2581650809551911671on_val @ Y )
          = ( map_of2499293770471829533on_val @ Xys @ X ) )
        = ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ X @ Y ) @ ( set_Pr5935206576607725998on_val @ Xys ) ) ) ) ).

% Some_eq_map_of_iff
thf(fact_833_Some__eq__map__of__iff,axiom,
    ! [Xys: list_P8058578141249370668on_val,Y: produc1457211279475724562t_char > option_val,X: produc1457211279475724562t_char > prat] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xys ) )
     => ( ( ( some_P7669353234731512949on_val @ Y )
          = ( map_of8940823041123231434on_val @ Xys @ X ) )
        = ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ X @ Y ) @ ( set_Pr1015909255637879367on_val @ Xys ) ) ) ) ).

% Some_eq_map_of_iff
thf(fact_834_Some__eq__map__of__iff,axiom,
    ! [Xys: list_P8003064839462976920t_char,Y: list_char,X: nat] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xys ) )
     => ( ( ( some_list_char @ Y )
          = ( map_of_nat_list_char @ Xys @ X ) )
        = ( member484235747325421115t_char @ ( produc120197956887798346t_char @ X @ Y ) @ ( set_Pr4422032998922688679t_char @ Xys ) ) ) ) ).

% Some_eq_map_of_iff
thf(fact_835_map__of__is__SomeI,axiom,
    ! [Xys: list_P5521618065476132895on_val,X: produc9003781588162623004on_val,Y: produc9003781588162623004on_val] :
      ( ( distin602967888454099555on_val @ ( map_Pr2662348860696421617on_val @ produc3129717363260770749on_val @ Xys ) )
     => ( ( member6505152944228695362on_val @ ( produc4958730763592889809on_val @ X @ Y ) @ ( set_Pr5935206576607725998on_val @ Xys ) )
       => ( ( map_of2499293770471829533on_val @ Xys @ X )
          = ( some_P2581650809551911671on_val @ Y ) ) ) ) ).

% map_of_is_SomeI
thf(fact_836_map__of__is__SomeI,axiom,
    ! [Xys: list_P8058578141249370668on_val,X: produc1457211279475724562t_char > prat,Y: produc1457211279475724562t_char > option_val] :
      ( ( distin8840078896927665228r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xys ) )
     => ( ( member2879030624002546611on_val @ ( produc74620467203698198on_val @ X @ Y ) @ ( set_Pr1015909255637879367on_val @ Xys ) )
       => ( ( map_of8940823041123231434on_val @ Xys @ X )
          = ( some_P7669353234731512949on_val @ Y ) ) ) ) ).

% map_of_is_SomeI
thf(fact_837_map__of__is__SomeI,axiom,
    ! [Xys: list_P8003064839462976920t_char,X: nat,Y: list_char] :
      ( ( distinct_nat @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xys ) )
     => ( ( member484235747325421115t_char @ ( produc120197956887798346t_char @ X @ Y ) @ ( set_Pr4422032998922688679t_char @ Xys ) )
       => ( ( map_of_nat_list_char @ Xys @ X )
          = ( some_list_char @ Y ) ) ) ) ).

% map_of_is_SomeI
thf(fact_838_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 ) ) )
     => ( ! [X3: produc1457211279475724562t_char > prat] :
            ( ( member2336342582916103932r_prat @ X3 @ ( set_Pr7516010431435912040r_prat @ ( map_Pr7735014948560838385r_prat @ produc5239619271231976746on_val @ Xs ) ) )
           => ( ( map_of8940823041123231434on_val @ Xs @ X3 )
              = ( map_of8940823041123231434on_val @ Ys @ X3 ) ) )
       => ( ( map_of8940823041123231434on_val @ Xs )
          = ( map_of8940823041123231434on_val @ Ys ) ) ) ) ).

% map_of_eqI
thf(fact_839_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 ) ) )
     => ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ ( map_Pr2525441637447625118ar_nat @ produc6204653154488278070t_char @ Xs ) ) )
           => ( ( map_of_nat_list_char @ Xs @ X3 )
              = ( map_of_nat_list_char @ Ys @ X3 ) ) )
       => ( ( map_of_nat_list_char @ Xs )
          = ( map_of_nat_list_char @ Ys ) ) ) ) ).

% map_of_eqI
thf(fact_840_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_841_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_842_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_843_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_844_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_845_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 ) ) )
      = ( ^ [X4: produc9003781588162623004on_val] : ( if_option_val @ ( member2879030624002546611on_val @ X4 @ ( set_Pr1015909255637879367on_val @ Xs ) ) @ ( some_val @ ( F @ X4 ) ) @ none_val ) ) ) ).

% map_of_zip_map
thf(fact_846_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 ) ) )
      = ( ^ [X4: produc9003781588162623004on_val] : ( if_option_state @ ( member2879030624002546611on_val @ X4 @ ( set_Pr1015909255637879367on_val @ Xs ) ) @ ( some_state @ ( F @ X4 ) ) @ none_state ) ) ) ).

% map_of_zip_map
thf(fact_847_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_848_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_849_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_850_pre__get__h_Oelims,axiom,
    ! [X: produc9003781588162623004on_val,Y: produc1457211279475724562t_char > option_val] :
      ( ( ( pre_ge1486375753531218896on_val @ X )
        = Y )
     => ( Y
        = ( produc2319605628138516840on_val @ X ) ) ) ).

% pre_get_h.elims
thf(fact_851_pre__get__h_Osimps,axiom,
    pre_ge1486375753531218896on_val = produc2319605628138516840on_val ).

% pre_get_h.simps
thf(fact_852_pre__get__h_Opelims,axiom,
    ! [X: produc1317171644805857433on_val,Y: produc9003781588162623004on_val] :
      ( ( ( pre_ge5139353195879713175on_val @ X )
        = Y )
     => ( ( accp_P6797916352740768290on_val @ pre_ge7436079647097740950on_val @ X )
       => ~ ( ( Y
              = ( produc437328469718437375on_val @ X ) )
           => ~ ( accp_P6797916352740768290on_val @ pre_ge7436079647097740950on_val @ X ) ) ) ) ).

% pre_get_h.pelims
thf(fact_853_pre__get__h_Opelims,axiom,
    ! [X: produc9003781588162623004on_val,Y: produc1457211279475724562t_char > option_val] :
      ( ( ( pre_ge1486375753531218896on_val @ X )
        = Y )
     => ( ( accp_P4405556307444930259on_val @ pre_ge6140436789258014353on_val @ X )
       => ~ ( ( Y
              = ( produc2319605628138516840on_val @ X ) )
           => ~ ( accp_P4405556307444930259on_val @ pre_ge6140436789258014353on_val @ X ) ) ) ) ).

% pre_get_h.pelims
thf(fact_854_get__m_Opelims,axiom,
    ! [X: state,Y: produc1457211279475724562t_char > prat] :
      ( ( ( get_m @ X )
        = Y )
     => ( ( accp_state @ get_m_rel @ X )
       => ~ ( ( Y
              = ( produc5239619271231976746on_val @ ( rep_state @ X ) ) )
           => ~ ( accp_state @ get_m_rel @ X ) ) ) ) ).

% get_m.pelims
thf(fact_855_get__h_Opelims,axiom,
    ! [X: state,Y: produc1457211279475724562t_char > option_val] :
      ( ( ( get_h @ X )
        = Y )
     => ( ( accp_state @ get_h_rel @ X )
       => ~ ( ( Y
              = ( produc2319605628138516840on_val @ ( rep_state @ X ) ) )
           => ~ ( accp_state @ get_h_rel @ X ) ) ) ) ).

% get_h.pelims
thf(fact_856_find__None__iff2,axiom,
    ! [P: produc9003781588162623004on_val > $o,Xs: list_P8058578141249370668on_val] :
      ( ( none_P8728355543607141243on_val
        = ( find_P7418167508921316608on_val @ P @ Xs ) )
      = ( ~ ? [X4: produc9003781588162623004on_val] :
              ( ( member2879030624002546611on_val @ X4 @ ( set_Pr1015909255637879367on_val @ Xs ) )
              & ( P @ X4 ) ) ) ) ).

% find_None_iff2
thf(fact_857_find__None__iff2,axiom,
    ! [P: state > $o,Xs: list_state] :
      ( ( none_state
        = ( find_state @ P @ Xs ) )
      = ( ~ ? [X4: state] :
              ( ( member_state @ X4 @ ( set_state2 @ Xs ) )
              & ( P @ X4 ) ) ) ) ).

% find_None_iff2
thf(fact_858_find__None__iff2,axiom,
    ! [P: val > $o,Xs: list_val] :
      ( ( none_val
        = ( find_val @ P @ Xs ) )
      = ( ~ ? [X4: val] :
              ( ( member_val @ X4 @ ( set_val2 @ Xs ) )
              & ( P @ X4 ) ) ) ) ).

% find_None_iff2
thf(fact_859_find__None__iff,axiom,
    ! [P: produc9003781588162623004on_val > $o,Xs: list_P8058578141249370668on_val] :
      ( ( ( find_P7418167508921316608on_val @ P @ Xs )
        = none_P8728355543607141243on_val )
      = ( ~ ? [X4: produc9003781588162623004on_val] :
              ( ( member2879030624002546611on_val @ X4 @ ( set_Pr1015909255637879367on_val @ Xs ) )
              & ( P @ X4 ) ) ) ) ).

% find_None_iff
thf(fact_860_find__None__iff,axiom,
    ! [P: state > $o,Xs: list_state] :
      ( ( ( find_state @ P @ Xs )
        = none_state )
      = ( ~ ? [X4: state] :
              ( ( member_state @ X4 @ ( set_state2 @ Xs ) )
              & ( P @ X4 ) ) ) ) ).

% find_None_iff
thf(fact_861_find__None__iff,axiom,
    ! [P: val > $o,Xs: list_val] :
      ( ( ( find_val @ P @ Xs )
        = none_val )
      = ( ~ ? [X4: val] :
              ( ( member_val @ X4 @ ( set_val2 @ Xs ) )
              & ( P @ X4 ) ) ) ) ).

% find_None_iff
thf(fact_862_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_863_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_864_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_865_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_866_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_867_empty__eq__map__add__iff,axiom,
    ! [F: produc1457211279475724562t_char > option_val,G: produc1457211279475724562t_char > option_val] :
      ( ( ( ^ [X4: produc1457211279475724562t_char] : none_val )
        = ( map_ad2908576761495157028ar_val @ F @ G ) )
      = ( ( F
          = ( ^ [X4: produc1457211279475724562t_char] : none_val ) )
        & ( G
          = ( ^ [X4: produc1457211279475724562t_char] : none_val ) ) ) ) ).

% empty_eq_map_add_iff
thf(fact_868_map__add__empty,axiom,
    ! [M: produc1457211279475724562t_char > option_val] :
      ( ( map_ad2908576761495157028ar_val @ M
        @ ^ [X4: produc1457211279475724562t_char] : none_val )
      = M ) ).

% map_add_empty
thf(fact_869_empty__map__add,axiom,
    ! [M: produc1457211279475724562t_char > option_val] :
      ( ( map_ad2908576761495157028ar_val
        @ ^ [X4: produc1457211279475724562t_char] : none_val
        @ M )
      = M ) ).

% empty_map_add
thf(fact_870_combine__options__def,axiom,
    ( combine_options_val
    = ( ^ [F2: val > val > val,X4: option_val,Y3: option_val] :
          ( case_o7794706883426356101al_val @ Y3
          @ ^ [Z3: val] :
              ( case_o7794706883426356101al_val @ ( some_val @ Z3 )
              @ ^ [Aa: val] : ( some_val @ ( F2 @ Z3 @ Aa ) )
              @ Y3 )
          @ X4 ) ) ) ).

% combine_options_def
thf(fact_871_combine__options__def,axiom,
    ( combin3633514924185701883_state
    = ( ^ [F2: state > state > state,X4: option_state,Y3: option_state] :
          ( case_o8916064052540797265_state @ Y3
          @ ^ [Z3: state] :
              ( case_o8916064052540797265_state @ ( some_state @ Z3 )
              @ ^ [Aa: state] : ( some_state @ ( F2 @ Z3 @ Aa ) )
              @ Y3 )
          @ X4 ) ) ) ).

% combine_options_def
thf(fact_872_case__optionE,axiom,
    ! [P: $o,Q: val > $o,X: option_val] :
      ( ( case_option_o_val @ P @ Q @ X )
     => ( ( ( X = none_val )
         => ~ P )
       => ~ ! [Y4: val] :
              ( ( X
                = ( some_val @ Y4 ) )
             => ~ ( Q @ Y4 ) ) ) ) ).

% case_optionE
thf(fact_873_case__optionE,axiom,
    ! [P: $o,Q: state > $o,X: option_state] :
      ( ( case_option_o_state @ P @ Q @ X )
     => ( ( ( X = none_state )
         => ~ P )
       => ~ ! [Y4: state] :
              ( ( X
                = ( some_state @ Y4 ) )
             => ~ ( Q @ Y4 ) ) ) ) ).

% case_optionE
thf(fact_874_dom__def,axiom,
    ( dom_Pr4448331044451638570_state
    = ( ^ [M4: produc9003781588162623004on_val > option_state] :
          ( collec7475294502966882545on_val
          @ ^ [A2: produc9003781588162623004on_val] :
              ( ( M4 @ A2 )
             != none_state ) ) ) ) ).

% dom_def
thf(fact_875_dom__def,axiom,
    ( dom_Pr7381289304162206737al_val
    = ( ^ [M4: produc9003781588162623004on_val > option_val] :
          ( collec7475294502966882545on_val
          @ ^ [A2: produc9003781588162623004on_val] :
              ( ( M4 @ A2 )
             != none_val ) ) ) ) ).

% dom_def
thf(fact_876_map__add__def,axiom,
    ( map_ad2908576761495157028ar_val
    = ( ^ [M12: produc1457211279475724562t_char > option_val,M22: produc1457211279475724562t_char > option_val,X4: produc1457211279475724562t_char] : ( case_o7794706883426356101al_val @ ( M12 @ X4 ) @ some_val @ ( M22 @ X4 ) ) ) ) ).

% map_add_def
thf(fact_877_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_878_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_879_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_880_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_881_Option_Othese__def,axiom,
    ( these_state
    = ( ^ [A6: set_option_state] :
          ( image_3532137647693456075_state @ the_state
          @ ( collect_option_state
            @ ^ [X4: option_state] :
                ( ( member_option_state @ X4 @ A6 )
                & ( X4 != none_state ) ) ) ) ) ) ).

% Option.these_def
thf(fact_882_Option_Othese__def,axiom,
    ( these_val
    = ( ^ [A6: set_option_val] :
          ( image_option_val_val @ the_val
          @ ( collect_option_val
            @ ^ [X4: option_val] :
                ( ( member_option_val @ X4 @ A6 )
                & ( X4 != none_val ) ) ) ) ) ) ).

% Option.these_def
thf(fact_883_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_884_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_885_graph__eq__to__snd__dom,axiom,
    ( graph_1288227317702120175on_val
    = ( ^ [M4: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
          ( image_1459058096221225002on_val
          @ ^ [X4: produc1457211279475724562t_char > prat] : ( produc74620467203698198on_val @ X4 @ ( the_Pr646328391962797958on_val @ ( M4 @ X4 ) ) )
          @ ( dom_Pr4152820065153570843on_val @ M4 ) ) ) ) ).

% graph_eq_to_snd_dom
thf(fact_886_graph__eq__to__snd__dom,axiom,
    ( graph_6108330199704490680on_val
    = ( ^ [M4: produc9003781588162623004on_val > option8887860577033306220on_val] :
          ( image_4249794487667743926on_val
          @ ^ [X4: produc9003781588162623004on_val] : ( produc4958730763592889809on_val @ X4 @ ( the_Pr3639693038709580936on_val @ ( M4 @ X4 ) ) )
          @ ( dom_Pr2742230247756046988on_val @ M4 ) ) ) ) ).

% graph_eq_to_snd_dom
thf(fact_887_graph__eq__to__snd__dom,axiom,
    ( graph_nat_list_char
    = ( ^ [M4: nat > option_list_char] :
          ( image_1003422490162143483t_char
          @ ^ [X4: nat] : ( produc120197956887798346t_char @ X4 @ ( the_list_char @ ( M4 @ X4 ) ) )
          @ ( dom_nat_list_char @ M4 ) ) ) ) ).

% graph_eq_to_snd_dom
thf(fact_888_Some__image__these__eq,axiom,
    ! [A5: set_option_val] :
      ( ( image_val_option_val @ some_val @ ( these_val @ A5 ) )
      = ( collect_option_val
        @ ^ [X4: option_val] :
            ( ( member_option_val @ X4 @ A5 )
            & ( X4 != none_val ) ) ) ) ).

% Some_image_these_eq
thf(fact_889_Some__image__these__eq,axiom,
    ! [A5: set_option_state] :
      ( ( image_6076465424260689483_state @ some_state @ ( these_state @ A5 ) )
      = ( collect_option_state
        @ ^ [X4: option_state] :
            ( ( member_option_state @ X4 @ A5 )
            & ( X4 != none_state ) ) ) ) ).

% Some_image_these_eq
thf(fact_890_finite__Map__induct,axiom,
    ! [M: produc9003781588162623004on_val > option_val,P: ( produc9003781588162623004on_val > option_val ) > $o] :
      ( ( finite8324237431073730739on_val @ ( dom_Pr7381289304162206737al_val @ M ) )
     => ( ( P
          @ ^ [X4: 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_891_finite__Map__induct,axiom,
    ! [M: produc9003781588162623004on_val > option_state,P: ( produc9003781588162623004on_val > option_state ) > $o] :
      ( ( finite8324237431073730739on_val @ ( dom_Pr4448331044451638570_state @ M ) )
     => ( ( P
          @ ^ [X4: 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_892_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_893_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_894_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_895_find_Osimps_I1_J,axiom,
    ! [Uu: state > $o] :
      ( ( find_state @ Uu @ nil_state )
      = none_state ) ).

% find.simps(1)
thf(fact_896_find_Osimps_I1_J,axiom,
    ! [Uu: val > $o] :
      ( ( find_val @ Uu @ nil_val )
      = none_val ) ).

% find.simps(1)
thf(fact_897_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_898_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_899_option_Oin__rel,axiom,
    ( rel_op2494113632589343803t_char
    = ( ^ [R3: nat > list_char > $o,A2: option_nat,B2: option_list_char] :
        ? [Z3: option2736423997234022232t_char] :
          ( ( member1900516542280067841t_char @ Z3
            @ ( collec3561702660602934339t_char
              @ ^ [X4: option2736423997234022232t_char] : ( ord_le6315511645215477266t_char @ ( set_op7440730737645789856t_char @ X4 ) @ ( collec2458894688891239037t_char @ ( produc8526122873445342073char_o @ R3 ) ) ) ) )
          & ( ( map_op2304244586335077271ar_nat @ produc6204653154488278070t_char @ Z3 )
            = A2 )
          & ( ( map_op1953669867509794472t_char @ produc1900778367047502200t_char @ Z3 )
            = B2 ) ) ) ) ).

% option.in_rel
thf(fact_900_option_Oin__rel,axiom,
    ( rel_op7555592896143267045on_val
    = ( ^ [R3: ( produc1457211279475724562t_char > prat ) > ( produc1457211279475724562t_char > option_val ) > $o,A2: option3572569098863364761r_prat,B2: option5747939881698552298on_val] :
        ? [Z3: option8887860577033306220on_val] :
          ( ( member4602090469187516291on_val @ Z3
            @ ( collec6281439769543645121on_val
              @ ^ [X4: option8887860577033306220on_val] : ( ord_le6900622908513426738on_val @ ( set_op9004752959087400718on_val @ X4 ) @ ( collec7475294502966882545on_val @ ( produc5248837549992124053_val_o @ R3 ) ) ) ) )
          & ( ( map_op457311912167326058r_prat @ produc5239619271231976746on_val @ Z3 )
            = A2 )
          & ( ( map_op5305211447164704579on_val @ produc2319605628138516840on_val @ Z3 )
            = B2 ) ) ) ) ).

% option.in_rel
thf(fact_901_Abs__state__inverse,axiom,
    ! [Y: produc9003781588162623004on_val] :
      ( ( member2879030624002546611on_val @ Y
        @ ( collec7475294502966882545on_val
          @ ^ [Uu3: produc9003781588162623004on_val] :
            ? [Phi: produc9003781588162623004on_val] :
              ( ( Uu3 = Phi )
              & ( valid_state @ Phi ) ) ) )
     => ( ( rep_state @ ( abs_state @ Y ) )
        = Y ) ) ).

% Abs_state_inverse
thf(fact_902_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_903_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_904_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_905_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_906_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_907_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_908_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_909_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_910_option_Octr__transfer_I1_J,axiom,
    ! [R4: state > state > $o] : ( rel_op4316599310523903102_state @ R4 @ none_state @ none_state ) ).

% option.ctr_transfer(1)
thf(fact_911_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_912_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_913_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_914_option_Orel__cong,axiom,
    ! [X: option8887860577033306220on_val,Ya: option8887860577033306220on_val,Y: option8887860577033306220on_val,Xa: option8887860577033306220on_val,R4: produc9003781588162623004on_val > produc9003781588162623004on_val > $o,Ra: produc9003781588162623004on_val > produc9003781588162623004on_val > $o] :
      ( ( X = Ya )
     => ( ( Y = 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 @ Y )
            = ( rel_op346525543737320258on_val @ Ra @ Ya @ Xa ) ) ) ) ) ).

% option.rel_cong
thf(fact_915_option_Orel__mono__strong,axiom,
    ! [R4: produc9003781588162623004on_val > produc9003781588162623004on_val > $o,X: option8887860577033306220on_val,Y: option8887860577033306220on_val,Ra: produc9003781588162623004on_val > produc9003781588162623004on_val > $o] :
      ( ( rel_op346525543737320258on_val @ R4 @ X @ Y )
     => ( ! [Z2: produc9003781588162623004on_val,Yb: produc9003781588162623004on_val] :
            ( ( member2879030624002546611on_val @ Z2 @ ( set_op9004752959087400718on_val @ X ) )
           => ( ( member2879030624002546611on_val @ Yb @ ( set_op9004752959087400718on_val @ Y ) )
             => ( ( R4 @ Z2 @ Yb )
               => ( Ra @ Z2 @ Yb ) ) ) )
       => ( rel_op346525543737320258on_val @ Ra @ X @ Y ) ) ) ).

% option.rel_mono_strong
thf(fact_916_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_917_rel__option__reflI,axiom,
    ! [Y: option8887860577033306220on_val,P: produc9003781588162623004on_val > produc9003781588162623004on_val > $o] :
      ( ! [X3: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ X3 @ ( set_op9004752959087400718on_val @ Y ) )
         => ( P @ X3 @ X3 ) )
     => ( rel_op346525543737320258on_val @ P @ Y @ Y ) ) ).

% rel_option_reflI
thf(fact_918_option_Orel__inject_I2_J,axiom,
    ! [R4: val > val > $o,X2: val,Y2: val] :
      ( ( rel_option_val_val @ R4 @ ( some_val @ X2 ) @ ( some_val @ Y2 ) )
      = ( R4 @ X2 @ Y2 ) ) ).

% option.rel_inject(2)
thf(fact_919_option_Orel__inject_I2_J,axiom,
    ! [R4: val > state > $o,X2: val,Y2: state] :
      ( ( rel_option_val_state @ R4 @ ( some_val @ X2 ) @ ( some_state @ Y2 ) )
      = ( R4 @ X2 @ Y2 ) ) ).

% option.rel_inject(2)
thf(fact_920_option_Orel__inject_I2_J,axiom,
    ! [R4: state > val > $o,X2: state,Y2: val] :
      ( ( rel_option_state_val @ R4 @ ( some_state @ X2 ) @ ( some_val @ Y2 ) )
      = ( R4 @ X2 @ Y2 ) ) ).

% option.rel_inject(2)
thf(fact_921_option_Orel__inject_I2_J,axiom,
    ! [R4: state > state > $o,X2: state,Y2: state] :
      ( ( rel_op4316599310523903102_state @ R4 @ ( some_state @ X2 ) @ ( some_state @ Y2 ) )
      = ( R4 @ X2 @ Y2 ) ) ).

% option.rel_inject(2)
thf(fact_922_option_Orel__intros_I2_J,axiom,
    ! [R4: val > val > $o,X2: val,Y2: val] :
      ( ( R4 @ X2 @ Y2 )
     => ( rel_option_val_val @ R4 @ ( some_val @ X2 ) @ ( some_val @ Y2 ) ) ) ).

% option.rel_intros(2)
thf(fact_923_option_Orel__intros_I2_J,axiom,
    ! [R4: val > state > $o,X2: val,Y2: state] :
      ( ( R4 @ X2 @ Y2 )
     => ( rel_option_val_state @ R4 @ ( some_val @ X2 ) @ ( some_state @ Y2 ) ) ) ).

% option.rel_intros(2)
thf(fact_924_option_Orel__intros_I2_J,axiom,
    ! [R4: state > val > $o,X2: state,Y2: val] :
      ( ( R4 @ X2 @ Y2 )
     => ( rel_option_state_val @ R4 @ ( some_state @ X2 ) @ ( some_val @ Y2 ) ) ) ).

% option.rel_intros(2)
thf(fact_925_option_Orel__intros_I2_J,axiom,
    ! [R4: state > state > $o,X2: state,Y2: state] :
      ( ( R4 @ X2 @ Y2 )
     => ( rel_op4316599310523903102_state @ R4 @ ( some_state @ X2 ) @ ( some_state @ Y2 ) ) ) ).

% option.rel_intros(2)
thf(fact_926_option__rel__Some1,axiom,
    ! [A5: val > val > $o,X: val,Y: option_val] :
      ( ( rel_option_val_val @ A5 @ ( some_val @ X ) @ Y )
      = ( ? [Y5: val] :
            ( ( Y
              = ( some_val @ Y5 ) )
            & ( A5 @ X @ Y5 ) ) ) ) ).

% option_rel_Some1
thf(fact_927_option__rel__Some1,axiom,
    ! [A5: val > state > $o,X: val,Y: option_state] :
      ( ( rel_option_val_state @ A5 @ ( some_val @ X ) @ Y )
      = ( ? [Y5: state] :
            ( ( Y
              = ( some_state @ Y5 ) )
            & ( A5 @ X @ Y5 ) ) ) ) ).

% option_rel_Some1
thf(fact_928_option__rel__Some1,axiom,
    ! [A5: state > val > $o,X: state,Y: option_val] :
      ( ( rel_option_state_val @ A5 @ ( some_state @ X ) @ Y )
      = ( ? [Y5: val] :
            ( ( Y
              = ( some_val @ Y5 ) )
            & ( A5 @ X @ Y5 ) ) ) ) ).

% option_rel_Some1
thf(fact_929_option__rel__Some1,axiom,
    ! [A5: state > state > $o,X: state,Y: option_state] :
      ( ( rel_op4316599310523903102_state @ A5 @ ( some_state @ X ) @ Y )
      = ( ? [Y5: state] :
            ( ( Y
              = ( some_state @ Y5 ) )
            & ( A5 @ X @ Y5 ) ) ) ) ).

% option_rel_Some1
thf(fact_930_option__rel__Some2,axiom,
    ! [A5: val > val > $o,X: option_val,Y: val] :
      ( ( rel_option_val_val @ A5 @ X @ ( some_val @ Y ) )
      = ( ? [X7: val] :
            ( ( X
              = ( some_val @ X7 ) )
            & ( A5 @ X7 @ Y ) ) ) ) ).

% option_rel_Some2
thf(fact_931_option__rel__Some2,axiom,
    ! [A5: state > val > $o,X: option_state,Y: val] :
      ( ( rel_option_state_val @ A5 @ X @ ( some_val @ Y ) )
      = ( ? [X7: state] :
            ( ( X
              = ( some_state @ X7 ) )
            & ( A5 @ X7 @ Y ) ) ) ) ).

% option_rel_Some2
thf(fact_932_option__rel__Some2,axiom,
    ! [A5: val > state > $o,X: option_val,Y: state] :
      ( ( rel_option_val_state @ A5 @ X @ ( some_state @ Y ) )
      = ( ? [X7: val] :
            ( ( X
              = ( some_val @ X7 ) )
            & ( A5 @ X7 @ Y ) ) ) ) ).

% option_rel_Some2
thf(fact_933_option__rel__Some2,axiom,
    ! [A5: state > state > $o,X: option_state,Y: state] :
      ( ( rel_op4316599310523903102_state @ A5 @ X @ ( some_state @ Y ) )
      = ( ? [X7: state] :
            ( ( X
              = ( some_state @ X7 ) )
            & ( A5 @ X7 @ Y ) ) ) ) ).

% option_rel_Some2
thf(fact_934_option_Orel__distinct_I2_J,axiom,
    ! [R4: val > state > $o,Y2: val] :
      ~ ( rel_option_val_state @ R4 @ ( some_val @ Y2 ) @ none_state ) ).

% option.rel_distinct(2)
thf(fact_935_option_Orel__distinct_I2_J,axiom,
    ! [R4: val > val > $o,Y2: val] :
      ~ ( rel_option_val_val @ R4 @ ( some_val @ Y2 ) @ none_val ) ).

% option.rel_distinct(2)
thf(fact_936_option_Orel__distinct_I2_J,axiom,
    ! [R4: state > state > $o,Y2: state] :
      ~ ( rel_op4316599310523903102_state @ R4 @ ( some_state @ Y2 ) @ none_state ) ).

% option.rel_distinct(2)
thf(fact_937_option_Orel__distinct_I2_J,axiom,
    ! [R4: state > val > $o,Y2: state] :
      ~ ( rel_option_state_val @ R4 @ ( some_state @ Y2 ) @ none_val ) ).

% option.rel_distinct(2)
thf(fact_938_option_Orel__distinct_I1_J,axiom,
    ! [R4: state > val > $o,Y2: val] :
      ~ ( rel_option_state_val @ R4 @ none_state @ ( some_val @ Y2 ) ) ).

% option.rel_distinct(1)
thf(fact_939_option_Orel__distinct_I1_J,axiom,
    ! [R4: val > val > $o,Y2: val] :
      ~ ( rel_option_val_val @ R4 @ none_val @ ( some_val @ Y2 ) ) ).

% option.rel_distinct(1)
thf(fact_940_option_Orel__distinct_I1_J,axiom,
    ! [R4: state > state > $o,Y2: state] :
      ~ ( rel_op4316599310523903102_state @ R4 @ none_state @ ( some_state @ Y2 ) ) ).

% option.rel_distinct(1)
thf(fact_941_option_Orel__distinct_I1_J,axiom,
    ! [R4: val > state > $o,Y2: state] :
      ~ ( rel_option_val_state @ R4 @ none_val @ ( some_state @ Y2 ) ) ).

% option.rel_distinct(1)
thf(fact_942_option_Orel__cases,axiom,
    ! [R4: val > val > $o,A: option_val,B: option_val] :
      ( ( rel_option_val_val @ R4 @ A @ B )
     => ( ( ( A = none_val )
         => ( B != none_val ) )
       => ~ ! [X3: val] :
              ( ( A
                = ( some_val @ X3 ) )
             => ! [Y4: val] :
                  ( ( B
                    = ( some_val @ Y4 ) )
                 => ~ ( R4 @ X3 @ Y4 ) ) ) ) ) ).

% option.rel_cases
thf(fact_943_option_Orel__cases,axiom,
    ! [R4: val > state > $o,A: option_val,B: option_state] :
      ( ( rel_option_val_state @ R4 @ A @ B )
     => ( ( ( A = none_val )
         => ( B != none_state ) )
       => ~ ! [X3: val] :
              ( ( A
                = ( some_val @ X3 ) )
             => ! [Y4: state] :
                  ( ( B
                    = ( some_state @ Y4 ) )
                 => ~ ( R4 @ X3 @ Y4 ) ) ) ) ) ).

% option.rel_cases
thf(fact_944_option_Orel__cases,axiom,
    ! [R4: state > val > $o,A: option_state,B: option_val] :
      ( ( rel_option_state_val @ R4 @ A @ B )
     => ( ( ( A = none_state )
         => ( B != none_val ) )
       => ~ ! [X3: state] :
              ( ( A
                = ( some_state @ X3 ) )
             => ! [Y4: val] :
                  ( ( B
                    = ( some_val @ Y4 ) )
                 => ~ ( R4 @ X3 @ Y4 ) ) ) ) ) ).

% option.rel_cases
thf(fact_945_option_Orel__cases,axiom,
    ! [R4: state > state > $o,A: option_state,B: option_state] :
      ( ( rel_op4316599310523903102_state @ R4 @ A @ B )
     => ( ( ( A = none_state )
         => ( B != none_state ) )
       => ~ ! [X3: state] :
              ( ( A
                = ( some_state @ X3 ) )
             => ! [Y4: state] :
                  ( ( B
                    = ( some_state @ Y4 ) )
                 => ~ ( R4 @ X3 @ Y4 ) ) ) ) ) ).

% option.rel_cases
thf(fact_946_option_Orel__induct,axiom,
    ! [R4: val > val > $o,X: option_val,Y: option_val,Q: option_val > option_val > $o] :
      ( ( rel_option_val_val @ R4 @ X @ Y )
     => ( ( Q @ none_val @ none_val )
       => ( ! [A22: val,B22: val] :
              ( ( R4 @ A22 @ B22 )
             => ( Q @ ( some_val @ A22 ) @ ( some_val @ B22 ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% option.rel_induct
thf(fact_947_option_Orel__induct,axiom,
    ! [R4: val > state > $o,X: option_val,Y: option_state,Q: option_val > option_state > $o] :
      ( ( rel_option_val_state @ R4 @ X @ Y )
     => ( ( Q @ none_val @ none_state )
       => ( ! [A22: val,B22: state] :
              ( ( R4 @ A22 @ B22 )
             => ( Q @ ( some_val @ A22 ) @ ( some_state @ B22 ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% option.rel_induct
thf(fact_948_option_Orel__induct,axiom,
    ! [R4: state > val > $o,X: option_state,Y: option_val,Q: option_state > option_val > $o] :
      ( ( rel_option_state_val @ R4 @ X @ Y )
     => ( ( Q @ none_state @ none_val )
       => ( ! [A22: state,B22: val] :
              ( ( R4 @ A22 @ B22 )
             => ( Q @ ( some_state @ A22 ) @ ( some_val @ B22 ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% option.rel_induct
thf(fact_949_option_Orel__induct,axiom,
    ! [R4: state > state > $o,X: option_state,Y: option_state,Q: option_state > option_state > $o] :
      ( ( rel_op4316599310523903102_state @ R4 @ X @ Y )
     => ( ( Q @ none_state @ none_state )
       => ( ! [A22: state,B22: state] :
              ( ( R4 @ A22 @ B22 )
             => ( Q @ ( some_state @ A22 ) @ ( some_state @ B22 ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% option.rel_induct
thf(fact_950_option_Orel__sel,axiom,
    ( rel_op4316599310523903102_state
    = ( ^ [R3: state > state > $o,A2: option_state,B2: option_state] :
          ( ( ( A2 = none_state )
            = ( B2 = none_state ) )
          & ( ( A2 != none_state )
           => ( ( B2 != none_state )
             => ( R3 @ ( the_state @ A2 ) @ ( the_state @ B2 ) ) ) ) ) ) ) ).

% option.rel_sel
thf(fact_951_option_Orel__sel,axiom,
    ( rel_option_state_val
    = ( ^ [R3: state > val > $o,A2: option_state,B2: option_val] :
          ( ( ( A2 = none_state )
            = ( B2 = none_val ) )
          & ( ( A2 != none_state )
           => ( ( B2 != none_val )
             => ( R3 @ ( the_state @ A2 ) @ ( the_val @ B2 ) ) ) ) ) ) ) ).

% option.rel_sel
thf(fact_952_option_Orel__sel,axiom,
    ( rel_option_val_state
    = ( ^ [R3: val > state > $o,A2: option_val,B2: option_state] :
          ( ( ( A2 = none_val )
            = ( B2 = none_state ) )
          & ( ( A2 != none_val )
           => ( ( B2 != none_state )
             => ( R3 @ ( the_val @ A2 ) @ ( the_state @ B2 ) ) ) ) ) ) ) ).

% option.rel_sel
thf(fact_953_option_Orel__sel,axiom,
    ( rel_option_val_val
    = ( ^ [R3: val > val > $o,A2: option_val,B2: option_val] :
          ( ( ( A2 = none_val )
            = ( B2 = none_val ) )
          & ( ( A2 != none_val )
           => ( ( B2 != none_val )
             => ( R3 @ ( the_val @ A2 ) @ ( the_val @ B2 ) ) ) ) ) ) ) ).

% option.rel_sel
thf(fact_954_Rep__state,axiom,
    ! [X: state] :
      ( member2879030624002546611on_val @ ( rep_state @ X )
      @ ( collec7475294502966882545on_val
        @ ^ [Uu3: produc9003781588162623004on_val] :
          ? [Phi: produc9003781588162623004on_val] :
            ( ( Uu3 = Phi )
            & ( valid_state @ Phi ) ) ) ) ).

% Rep_state
thf(fact_955_Rep__state__cases,axiom,
    ! [Y: produc9003781588162623004on_val] :
      ( ( member2879030624002546611on_val @ Y @ ( collec7475294502966882545on_val @ valid_state ) )
     => ~ ! [X3: state] :
            ( Y
           != ( rep_state @ X3 ) ) ) ).

% Rep_state_cases
thf(fact_956_Rep__state__induct,axiom,
    ! [Y: produc9003781588162623004on_val,P: produc9003781588162623004on_val > $o] :
      ( ( member2879030624002546611on_val @ Y
        @ ( collec7475294502966882545on_val
          @ ^ [Uu3: produc9003781588162623004on_val] :
            ? [Phi: produc9003781588162623004on_val] :
              ( ( Uu3 = Phi )
              & ( valid_state @ Phi ) ) ) )
     => ( ! [X3: state] : ( P @ ( rep_state @ X3 ) )
       => ( P @ Y ) ) ) ).

% Rep_state_induct
thf(fact_957_Abs__state__cases,axiom,
    ! [X: state] :
      ~ ! [Y4: produc9003781588162623004on_val] :
          ( ( X
            = ( abs_state @ Y4 ) )
         => ~ ( member2879030624002546611on_val @ Y4 @ ( collec7475294502966882545on_val @ valid_state ) ) ) ).

% Abs_state_cases
thf(fact_958_Abs__state__induct,axiom,
    ! [P: state > $o,X: state] :
      ( ! [Y4: produc9003781588162623004on_val] :
          ( ( member2879030624002546611on_val @ Y4
            @ ( collec7475294502966882545on_val
              @ ^ [Uu3: produc9003781588162623004on_val] :
                ? [Phi: produc9003781588162623004on_val] :
                  ( ( Uu3 = Phi )
                  & ( valid_state @ Phi ) ) ) )
         => ( P @ ( abs_state @ Y4 ) ) )
     => ( P @ X ) ) ).

% Abs_state_induct
thf(fact_959_Abs__state__inject,axiom,
    ! [X: produc9003781588162623004on_val,Y: produc9003781588162623004on_val] :
      ( ( member2879030624002546611on_val @ X
        @ ( collec7475294502966882545on_val
          @ ^ [Uu3: produc9003781588162623004on_val] :
            ? [Phi: produc9003781588162623004on_val] :
              ( ( Uu3 = Phi )
              & ( valid_state @ Phi ) ) ) )
     => ( ( member2879030624002546611on_val @ Y
          @ ( collec7475294502966882545on_val
            @ ^ [Uu3: produc9003781588162623004on_val] :
              ? [Phi: produc9003781588162623004on_val] :
                ( ( Uu3 = Phi )
                & ( valid_state @ Phi ) ) ) )
       => ( ( ( abs_state @ X )
            = ( abs_state @ Y ) )
          = ( X = Y ) ) ) ) ).

% Abs_state_inject
thf(fact_960_graph__def,axiom,
    ( graph_1288227317702120175on_val
    = ( ^ [M4: ( produc1457211279475724562t_char > prat ) > option5747939881698552298on_val] :
          ( collec7475294502966882545on_val
          @ ^ [Uu3: produc9003781588162623004on_val] :
            ? [A2: produc1457211279475724562t_char > prat,B2: produc1457211279475724562t_char > option_val] :
              ( ( Uu3
                = ( produc74620467203698198on_val @ A2 @ B2 ) )
              & ( ( M4 @ A2 )
                = ( some_P7669353234731512949on_val @ B2 ) ) ) ) ) ) ).

% graph_def
thf(fact_961_graph__def,axiom,
    ( graph_6108330199704490680on_val
    = ( ^ [M4: produc9003781588162623004on_val > option8887860577033306220on_val] :
          ( collec5166231387257825412on_val
          @ ^ [Uu3: produc1317171644805857433on_val] :
            ? [A2: produc9003781588162623004on_val,B2: produc9003781588162623004on_val] :
              ( ( Uu3
                = ( produc4958730763592889809on_val @ A2 @ B2 ) )
              & ( ( M4 @ A2 )
                = ( some_P2581650809551911671on_val @ B2 ) ) ) ) ) ) ).

% graph_def
thf(fact_962_graph__def,axiom,
    ( graph_nat_list_char
    = ( ^ [M4: nat > option_list_char] :
          ( collec2458894688891239037t_char
          @ ^ [Uu3: produc1457211279475724562t_char] :
            ? [A2: nat,B2: list_char] :
              ( ( Uu3
                = ( produc120197956887798346t_char @ A2 @ B2 ) )
              & ( ( M4 @ A2 )
                = ( some_list_char @ B2 ) ) ) ) ) ) ).

% graph_def
thf(fact_963_type__definition__state,axiom,
    ( type_d7385716227342696708on_val @ rep_state @ abs_state
    @ ( collec7475294502966882545on_val
      @ ^ [Uu3: produc9003781588162623004on_val] :
        ? [Phi: produc9003781588162623004on_val] :
          ( ( Uu3 = Phi )
          & ( valid_state @ Phi ) ) ) ) ).

% type_definition_state
thf(fact_964_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_965_valid__mask_Oelims_I3_J,axiom,
    ! [X: produc1457211279475724562t_char > prat] :
      ( ~ ( valid_mask @ X )
     => ~ ( ! [Hl2: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl2 ) )
          & ! [F3: list_char] :
              ( ( X @ ( produc120197956887798346t_char @ null_nat @ F3 ) )
              = pnone ) ) ) ).

% valid_mask.elims(3)
thf(fact_966_valid__null__def,axiom,
    ( valid_null
    = ( ^ [Pi2: produc1457211279475724562t_char > prat] :
        ! [F2: list_char] :
          ( ( Pi2 @ ( produc120197956887798346t_char @ null_nat @ F2 ) )
          = pnone ) ) ) ).

% valid_null_def
thf(fact_967_ppos__eq__pnone,axiom,
    ( ppos
    = ( ^ [P5: prat] : ( P5 != pnone ) ) ) ).

% ppos_eq_pnone
thf(fact_968_empty__mask_Oelims,axiom,
    ! [X: produc1457211279475724562t_char,Y: prat] :
      ( ( ( empty_3446695950879338768t_char @ X )
        = Y )
     => ( Y = pnone ) ) ).

% empty_mask.elims
thf(fact_969_empty__mask_Osimps,axiom,
    ( empty_3446695950879338768t_char
    = ( ^ [Hl: produc1457211279475724562t_char] : pnone ) ) ).

% empty_mask.simps
thf(fact_970_full__mask__def,axiom,
    ( full_mask
    = ( ^ [Hl: produc1457211279475724562t_char] :
          ( if_prat
          @ ( ( produc6204653154488278070t_char @ Hl )
            = null_nat )
          @ pnone
          @ pwrite ) ) ) ).

% full_mask_def
thf(fact_971_valid__maskI,axiom,
    ! [Pi: produc1457211279475724562t_char > prat] :
      ( ! [Hl2: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( Pi @ Hl2 ) )
     => ( ! [F3: list_char] :
            ( ( Pi @ ( produc120197956887798346t_char @ null_nat @ F3 ) )
            = pnone )
       => ( valid_mask @ Pi ) ) ) ).

% valid_maskI
thf(fact_972_valid__mask_Osimps,axiom,
    ( valid_mask
    = ( ^ [Pi2: produc1457211279475724562t_char > prat] :
          ( ! [Hl: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( Pi2 @ Hl ) )
          & ! [F2: list_char] :
              ( ( Pi2 @ ( produc120197956887798346t_char @ null_nat @ F2 ) )
              = pnone ) ) ) ) ).

% valid_mask.simps
thf(fact_973_valid__mask_Oelims_I1_J,axiom,
    ! [X: produc1457211279475724562t_char > prat,Y: $o] :
      ( ( ( valid_mask @ X )
        = Y )
     => ( Y
        = ( ! [Hl: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl ) )
          & ! [F2: list_char] :
              ( ( X @ ( produc120197956887798346t_char @ null_nat @ F2 ) )
              = pnone ) ) ) ) ).

% valid_mask.elims(1)
thf(fact_974_valid__mask_Oelims_I2_J,axiom,
    ! [X: produc1457211279475724562t_char > prat] :
      ( ( valid_mask @ X )
     => ( ! [Hl4: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl4 ) )
        & ! [F4: list_char] :
            ( ( X @ ( produc120197956887798346t_char @ null_nat @ F4 ) )
            = pnone ) ) ) ).

% valid_mask.elims(2)
thf(fact_975_empty__mask_Opelims,axiom,
    ! [X: produc1457211279475724562t_char,Y: prat] :
      ( ( ( empty_3446695950879338768t_char @ X )
        = Y )
     => ( ( accp_P8892882183480857371t_char @ empty_8141283858255108185t_char @ X )
       => ~ ( ( Y = pnone )
           => ~ ( accp_P8892882183480857371t_char @ empty_8141283858255108185t_char @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_976_empty__mask_Opelims,axiom,
    ! [X: produc1317171644805857433on_val,Y: prat] :
      ( ( ( empty_4129289814623480215on_val @ X )
        = Y )
     => ( ( accp_P6797916352740768290on_val @ empty_1698368654852286560on_val @ X )
       => ~ ( ( Y = pnone )
           => ~ ( accp_P6797916352740768290on_val @ empty_1698368654852286560on_val @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_977_empty__mask_Opelims,axiom,
    ! [X: produc9003781588162623004on_val,Y: prat] :
      ( ( ( empty_6102255041883331742on_val @ X )
        = Y )
     => ( ( accp_P4405556307444930259on_val @ empty_5847456986941130773on_val @ X )
       => ~ ( ( Y = pnone )
           => ~ ( accp_P4405556307444930259on_val @ empty_5847456986941130773on_val @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_978_empty__mask_Opelims,axiom,
    ! [X: state,Y: prat] :
      ( ( ( empty_mask_state @ X )
        = Y )
     => ( ( accp_state @ empty_mask_rel_state @ X )
       => ~ ( ( Y = pnone )
           => ~ ( accp_state @ empty_mask_rel_state @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_979_empty__mask_Opelims,axiom,
    ! [X: produc1457211279475724562t_char > prat,Y: prat] :
      ( ( ( empty_6616431780912394577r_prat @ X )
        = Y )
     => ( ( accp_P4765339447491148764r_prat @ empty_3412554051312619034r_prat @ X )
       => ~ ( ( Y = pnone )
           => ~ ( accp_P4765339447491148764r_prat @ empty_3412554051312619034r_prat @ X ) ) ) ) ).

% empty_mask.pelims
thf(fact_980_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 )
           => ( ! [Hl2: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl2 ) )
              & ! [F3: list_char] :
                  ( ( X @ ( produc120197956887798346t_char @ null_nat @ F3 ) )
                  = pnone ) ) ) ) ) ).

% valid_mask.pelims(3)
thf(fact_981_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 ) )
                & ! [F4: list_char] :
                    ( ( X @ ( produc120197956887798346t_char @ null_nat @ F4 ) )
                    = pnone ) ) ) ) ) ).

% valid_mask.pelims(2)
thf(fact_982_valid__mask_Opelims_I1_J,axiom,
    ! [X: produc1457211279475724562t_char > prat,Y: $o] :
      ( ( ( valid_mask @ X )
        = Y )
     => ( ( accp_P4765339447491148764r_prat @ valid_mask_rel @ X )
       => ~ ( ( Y
              = ( ! [Hl: produc1457211279475724562t_char] : ( pgte @ pwrite @ ( X @ Hl ) )
                & ! [F2: list_char] :
                    ( ( X @ ( produc120197956887798346t_char @ null_nat @ F2 ) )
                    = pnone ) ) )
           => ~ ( accp_P4765339447491148764r_prat @ valid_mask_rel @ X ) ) ) ) ).

% valid_mask.pelims(1)
thf(fact_983_option_Orel__compp__Grp,axiom,
    ( rel_op2494113632589343803t_char
    = ( ^ [R3: nat > list_char > $o] :
          ( relcom4704765297650120440t_char
          @ ( conver779780868667509187on_nat
            @ ( bNF_Gr8209631520120356778on_nat
              @ ( collec3561702660602934339t_char
                @ ^ [X4: option2736423997234022232t_char] : ( ord_le6315511645215477266t_char @ ( set_op7440730737645789856t_char @ X4 ) @ ( collec2458894688891239037t_char @ ( produc8526122873445342073char_o @ R3 ) ) ) )
              @ ( map_op2304244586335077271ar_nat @ produc6204653154488278070t_char ) ) )
          @ ( bNF_Gr8228872360220102203t_char
            @ ( collec3561702660602934339t_char
              @ ^ [X4: option2736423997234022232t_char] : ( ord_le6315511645215477266t_char @ ( set_op7440730737645789856t_char @ X4 ) @ ( collec2458894688891239037t_char @ ( produc8526122873445342073char_o @ R3 ) ) ) )
            @ ( map_op1953669867509794472t_char @ produc1900778367047502200t_char ) ) ) ) ) ).

% option.rel_compp_Grp
thf(fact_984_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
                @ ^ [X4: option8887860577033306220on_val] : ( ord_le6900622908513426738on_val @ ( set_op9004752959087400718on_val @ X4 ) @ ( collec7475294502966882545on_val @ ( produc5248837549992124053_val_o @ R3 ) ) ) )
              @ ( map_op457311912167326058r_prat @ produc5239619271231976746on_val ) ) )
          @ ( bNF_Gr7204040508389623334on_val
            @ ( collec6281439769543645121on_val
              @ ^ [X4: option8887860577033306220on_val] : ( ord_le6900622908513426738on_val @ ( set_op9004752959087400718on_val @ X4 ) @ ( collec7475294502966882545on_val @ ( produc5248837549992124053_val_o @ R3 ) ) ) )
            @ ( map_op5305211447164704579on_val @ produc2319605628138516840on_val ) ) ) ) ) ).

% option.rel_compp_Grp
thf(fact_985_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_986_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_987_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_988_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_989_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_990_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
            @ ^ [X4: val,Y3: option_val] : ( some_val @ ( case_option_val_val @ X4 @ ( F @ X4 ) @ Y3 ) )
            @ none_val
            @ A5 ) ) ) ) ).

% semilattice_set.eq_fold'
thf(fact_991_semilattice__set_Oeq__fold_H,axiom,
    ! [F: state > state > state,A5: set_state] :
      ( ( lattic1830746154417612460_state @ F )
     => ( ( lattic8707496982837646688_state @ F @ A5 )
        = ( the_state
          @ ( finite8091670487289438734_state
            @ ^ [X4: state,Y3: option_state] : ( some_state @ ( case_o2102410670496921089_state @ X4 @ ( F @ X4 ) @ Y3 ) )
            @ none_state
            @ A5 ) ) ) ) ).

% semilattice_set.eq_fold'
thf(fact_992_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_993_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_994_option_Odisc__transfer_I1_J,axiom,
    ! [R4: state > state > $o] :
      ( bNF_re6905797707481504115te_o_o @ ( rel_op4316599310523903102_state @ R4 )
      @ ^ [Y6: $o,Z4: $o] : ( Y6 = Z4 )
      @ ^ [Option3: option_state] : ( Option3 = none_state )
      @ ^ [Option3: option_state] : ( Option3 = none_state ) ) ).

% option.disc_transfer(1)
thf(fact_995_option_Odisc__transfer_I1_J,axiom,
    ! [R4: state > val > $o] :
      ( bNF_re3324221780734229534al_o_o @ ( rel_option_state_val @ R4 )
      @ ^ [Y6: $o,Z4: $o] : ( Y6 = Z4 )
      @ ^ [Option3: option_state] : ( Option3 = none_state )
      @ ^ [Option3: option_val] : ( Option3 = none_val ) ) ).

% option.disc_transfer(1)
thf(fact_996_option_Odisc__transfer_I1_J,axiom,
    ! [R4: val > state > $o] :
      ( bNF_re9208312572002657588te_o_o @ ( rel_option_val_state @ R4 )
      @ ^ [Y6: $o,Z4: $o] : ( Y6 = Z4 )
      @ ^ [Option3: option_val] : ( Option3 = none_val )
      @ ^ [Option3: option_state] : ( Option3 = none_state ) ) ).

% option.disc_transfer(1)
thf(fact_997_option_Odisc__transfer_I1_J,axiom,
    ! [R4: val > val > $o] :
      ( bNF_re8803170646668426653al_o_o @ ( rel_option_val_val @ R4 )
      @ ^ [Y6: $o,Z4: $o] : ( Y6 = Z4 )
      @ ^ [Option3: option_val] : ( Option3 = none_val )
      @ ^ [Option3: option_val] : ( Option3 = none_val ) ) ).

% option.disc_transfer(1)
thf(fact_998_option_Odisc__transfer_I2_J,axiom,
    ! [R4: state > state > $o] :
      ( bNF_re6905797707481504115te_o_o @ ( rel_op4316599310523903102_state @ R4 )
      @ ^ [Y6: $o,Z4: $o] : ( Y6 = Z4 )
      @ ^ [Option3: option_state] : ( Option3 != none_state )
      @ ^ [Option3: option_state] : ( Option3 != none_state ) ) ).

% option.disc_transfer(2)
thf(fact_999_option_Odisc__transfer_I2_J,axiom,
    ! [R4: state > val > $o] :
      ( bNF_re3324221780734229534al_o_o @ ( rel_option_state_val @ R4 )
      @ ^ [Y6: $o,Z4: $o] : ( Y6 = Z4 )
      @ ^ [Option3: option_state] : ( Option3 != none_state )
      @ ^ [Option3: option_val] : ( Option3 != none_val ) ) ).

% option.disc_transfer(2)
thf(fact_1000_option_Odisc__transfer_I2_J,axiom,
    ! [R4: val > state > $o] :
      ( bNF_re9208312572002657588te_o_o @ ( rel_option_val_state @ R4 )
      @ ^ [Y6: $o,Z4: $o] : ( Y6 = Z4 )
      @ ^ [Option3: option_val] : ( Option3 != none_val )
      @ ^ [Option3: option_state] : ( Option3 != none_state ) ) ).

% option.disc_transfer(2)
thf(fact_1001_option_Odisc__transfer_I2_J,axiom,
    ! [R4: val > val > $o] :
      ( bNF_re8803170646668426653al_o_o @ ( rel_option_val_val @ R4 )
      @ ^ [Y6: $o,Z4: $o] : ( Y6 = Z4 )
      @ ^ [Option3: option_val] : ( Option3 != none_val )
      @ ^ [Option3: option_val] : ( Option3 != none_val ) ) ).

% option.disc_transfer(2)
thf(fact_1002_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_1003_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_1004_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_1005_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_1006_option_Opred__inject_I2_J,axiom,
    ! [P: val > $o,A: val] :
      ( ( pred_option_val @ P @ ( some_val @ A ) )
      = ( P @ A ) ) ).

% option.pred_inject(2)
thf(fact_1007_option_Opred__inject_I2_J,axiom,
    ! [P: state > $o,A: state] :
      ( ( pred_option_state @ P @ ( some_state @ A ) )
      = ( P @ A ) ) ).

% option.pred_inject(2)
thf(fact_1008_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
thf(fact_1009_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_1010_option_Opred__inject_I1_J,axiom,
    ! [P: state > $o] : ( pred_option_state @ P @ none_state ) ).

% option.pred_inject(1)
thf(fact_1011_option_Opred__inject_I1_J,axiom,
    ! [P: val > $o] : ( pred_option_val @ P @ none_val ) ).

% option.pred_inject(1)

% Helper facts (15)
thf(help_If_2_1_If_001t__Mask__Oval_T,axiom,
    ! [X: val,Y: val] :
      ( ( if_val @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__Mask__Oval_T,axiom,
    ! [X: val,Y: val] :
      ( ( if_val @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__PosRat__Oprat_T,axiom,
    ! [X: prat,Y: prat] :
      ( ( if_prat @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__PosRat__Oprat_T,axiom,
    ! [X: prat,Y: prat] :
      ( ( if_prat @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__Option__Ooption_It__Mask__Oval_J_T,axiom,
    ! [X: option_val,Y: option_val] :
      ( ( if_option_val @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__Option__Ooption_It__Mask__Oval_J_T,axiom,
    ! [X: option_val,Y: option_val] :
      ( ( if_option_val @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_T,axiom,
    ! [X: option_state,Y: option_state] :
      ( ( if_option_state @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__Option__Ooption_It__PartialHeapSA__Ostate_J_T,axiom,
    ! [X: option_state,Y: option_state] :
      ( ( if_option_state @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J_T,axiom,
    ! [X: option_list_char,Y: option_list_char] :
      ( ( if_option_list_char @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__Option__Ooption_It__List__Olist_It__String__Ochar_J_J_T,axiom,
    ! [X: option_list_char,Y: option_list_char] :
      ( ( if_option_list_char @ $true @ X @ Y )
      = 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,Y: option5747939881698552298on_val] :
      ( ( if_opt6509584284076893604on_val @ $false @ X @ Y )
      = Y ) ).

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,Y: option5747939881698552298on_val] :
      ( ( if_opt6509584284076893604on_val @ $true @ X @ Y )
      = 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,Y: option8887860577033306220on_val] :
      ( ( if_opt2965748431298708774on_val @ $false @ X @ Y )
      = Y ) ).

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,Y: option8887860577033306220on_val] :
      ( ( if_opt2965748431298708774on_val @ $true @ X @ Y )
      = X ) ).

% Conjectures (2)
thf(conj_0,hypothesis,
    ( ( compatible_heaps @ ( get_h @ phi ) @ ( get_h @ phi2 ) )
    & ( valid_mask @ ( add_ma6586698345353345811t_char @ ( get_m @ phi ) @ ( get_m @ phi2 ) ) ) ) ).

thf(conj_1,conjecture,
    ( ( plus @ phi @ phi2 )
   != none_state ) ).

%------------------------------------------------------------------------------