TPTP Problem File: COM161^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : COM161^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Computing Theory
% Problem  : Abstract completeness 355
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [BPT14] Blanchette et al. (2014), Abstract Completeness
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : abstract_completeness__355.p [Bla16]

% Status   : Theorem
% Rating   : 0.00 v7.2.0, 0.25 v7.1.0
% Syntax   : Number of formulae    :  364 ( 112 unt;  61 typ;   0 def)
%            Number of atoms       :  925 ( 197 equ;   0 cnn)
%            Maximal formula atoms :   13 (   3 avg)
%            Number of connectives : 4443 (  73   ~;  11   |;  56   &;3888   @)
%                                         (   0 <=>; 415  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   26 (   8 avg)
%            Number of types       :    4 (   3 usr)
%            Number of type conns  :  273 ( 273   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   61 (  58 usr;   7 con; 0-6 aty)
%            Number of variables   : 1085 (  43   ^; 956   !;  28   ?;1085   :)
%                                         (  58  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:54:58.683
%------------------------------------------------------------------------------
%----Could-be-implicit typings (9)
thf(ty_t_Abstract__Completeness__Mirabelle__wdxnrclvrt_Otree,type,
    abstra2103299360e_tree: $tType > $tType ).

thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_Stream_Ostream,type,
    stream: $tType > $tType ).

thf(ty_t_FSet_Ofset,type,
    fset: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

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

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

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_rule,type,
    rule: $tType ).

%----Explicit typings (52)
thf(sy_cl_Finite__Set_Ofinite,type,
    finite_finite: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Ominus,type,
    minus: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Obot,type,
    bot: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oord,type,
    ord: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Olinorder,type,
    linorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Opreorder,type,
    preorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Countable_Ocountable,type,
    countable: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oorder__bot,type,
    order_bot: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Odense__linorder,type,
    dense_linorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_OPersistentRuleSystem,type,
    abstra612932245System: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > ( stream @ Rule ) > ( set @ State ) > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem,type,
    abstra1326562878System: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > ( stream @ Rule ) > ( set @ State ) > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem_OminWait,type,
    abstra1332369113inWait: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > ( stream @ Rule ) > State > nat ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem_Oper,type,
    abstra2096684367le_per: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > ( stream @ Rule ) > ( set @ State ) > Rule > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem_Opos,type,
    abstra2097340358le_pos: 
      !>[A: $tType] : ( ( stream @ A ) > A > nat ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_OSaturated,type,
    abstra1209608345urated: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > ( stream @ Rule ) > ( stream @ ( product_prod @ State @ Rule ) ) > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_Oenabled,type,
    abstra1874422341nabled: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > Rule > State > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_Oepath,type,
    abstra523868654_epath: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > ( stream @ Rule ) > ( stream @ ( product_prod @ State @ Rule ) ) > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_Ofair,type,
    abstra928354080m_fair: 
      !>[Rule: $tType] : ( ( stream @ Rule ) > ( stream @ Rule ) > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_Ofenum,type,
    abstra1774373515_fenum: 
      !>[Rule: $tType] : ( ( stream @ Rule ) > ( stream @ Rule ) ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_OmkTree,type,
    abstra1225283448mkTree: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > ( stream @ Rule ) > State > ( abstra2103299360e_tree @ ( product_prod @ State @ Rule ) ) ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_OpickEff,type,
    abstra1276541928ickEff: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > Rule > State > ( fset @ State ) ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_Osaturated,type,
    abstra726722745urated: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > Rule > ( stream @ ( product_prod @ State @ Rule ) ) > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_Otrim,type,
    abstra1259602206m_trim: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > ( stream @ Rule ) > State > ( stream @ Rule ) ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_ORuleSystem__Defs_Owf,type,
    abstra1874736267tem_wf: 
      !>[Rule: $tType,State: $tType] : ( ( Rule > State > ( fset @ State ) > $o ) > ( stream @ Rule ) > ( abstra2103299360e_tree @ ( product_prod @ State @ Rule ) ) > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_Oipath,type,
    abstra313004635_ipath: 
      !>[A: $tType] : ( ( abstra2103299360e_tree @ A ) > ( stream @ A ) > $o ) ).

thf(sy_c_Abstract__Completeness__Mirabelle__wdxnrclvrt_Otree_Ocont,type,
    abstra1749095923e_cont: 
      !>[A: $tType] : ( ( abstra2103299360e_tree @ A ) > ( fset @ ( abstra2103299360e_tree @ A ) ) ) ).

thf(sy_c_Countable__Set_Ocountable,type,
    countable_countable: 
      !>[A: $tType] : ( ( set @ A ) > $o ) ).

thf(sy_c_FSet_Ofimage,type,
    fimage: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( fset @ A ) > ( fset @ B ) ) ).

thf(sy_c_FSet_Ofmember,type,
    fmember: 
      !>[A: $tType] : ( A > ( fset @ A ) > $o ) ).

thf(sy_c_Groups_Ominus__class_Ominus,type,
    minus_minus: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Nat_OSuc,type,
    suc: nat > nat ).

thf(sy_c_Orderings_Obot__class_Obot,type,
    bot_bot: 
      !>[A: $tType] : A ).

thf(sy_c_Orderings_Oord__class_Oless,type,
    ord_less: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Pure_Otype,type,
    type2: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_Set_Oinsert,type,
    insert: 
      !>[A: $tType] : ( A > ( set @ A ) > ( set @ A ) ) ).

thf(sy_c_Set_Ois__singleton,type,
    is_singleton: 
      !>[A: $tType] : ( ( set @ A ) > $o ) ).

thf(sy_c_Stream_Osdrop,type,
    sdrop: 
      !>[A: $tType] : ( nat > ( stream @ A ) > ( stream @ A ) ) ).

thf(sy_c_Stream_Ostream_Oshd,type,
    shd: 
      !>[A: $tType] : ( ( stream @ A ) > A ) ).

thf(sy_c_Stream_Ostream_Osset,type,
    sset: 
      !>[A: $tType] : ( ( stream @ A ) > ( set @ A ) ) ).

thf(sy_c_Stream_Ostream_Ostl,type,
    stl: 
      !>[A: $tType] : ( ( stream @ A ) > ( stream @ A ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_S,type,
    s: set @ state ).

thf(sy_v_eff,type,
    eff: rule > state > ( fset @ state ) > $o ).

thf(sy_v_rs,type,
    rs: stream @ rule ).

thf(sy_v_rules,type,
    rules: stream @ rule ).

thf(sy_v_s,type,
    s2: state ).

thf(sy_v_steps,type,
    steps: stream @ ( product_prod @ state @ rule ) ).

%----Relevant facts (256)
thf(fact_0__092_060open_062_092_060And_062ra_O_Ara_A_092_060in_062_AR_A_092_060Longrightarrow_062_Asaturated_Ara_Asteps_092_060close_062,axiom,
    ! [R: rule] :
      ( ( member @ rule @ R @ ( sset @ rule @ rules ) )
     => ( abstra726722745urated @ rule @ state @ eff @ R @ steps ) ) ).

% \<open>\<And>ra. ra \<in> R \<Longrightarrow> saturated ra steps\<close>
thf(fact_1_Saturated__def,axiom,
    ! [Steps: stream @ ( product_prod @ state @ rule )] :
      ( ( abstra1209608345urated @ rule @ state @ eff @ rules @ Steps )
      = ( ! [X: rule] :
            ( ( member @ rule @ X @ ( sset @ rule @ rules ) )
           => ( abstra726722745urated @ rule @ state @ eff @ X @ Steps ) ) ) ) ).

% Saturated_def
thf(fact_2_sset__fenum,axiom,
    ( ( sset @ rule @ ( abstra1774373515_fenum @ rule @ rules ) )
    = ( sset @ rule @ rules ) ) ).

% sset_fenum
thf(fact_3_assms_I2_J,axiom,
    abstra928354080m_fair @ rule @ rules @ rs ).

% assms(2)
thf(fact_4_RuleSystem__Defs_OSaturated__def,axiom,
    ! [State: $tType,Rule: $tType] :
      ( ( abstra1209608345urated @ Rule @ State )
      = ( ^ [Eff: Rule > State > ( fset @ State ) > $o,Rules: stream @ Rule,Steps2: stream @ ( product_prod @ State @ Rule )] :
          ! [X: Rule] :
            ( ( member @ Rule @ X @ ( sset @ Rule @ Rules ) )
           => ( abstra726722745urated @ Rule @ State @ Eff @ X @ Steps2 ) ) ) ) ).

% RuleSystem_Defs.Saturated_def
thf(fact_5_enabled__R,axiom,
    ! [S: state] :
      ( ( member @ state @ S @ s )
     => ? [X2: rule] :
          ( ( member @ rule @ X2 @ ( sset @ rule @ rules ) )
          & ? [X1: fset @ state] : ( eff @ X2 @ S @ X1 ) ) ) ).

% enabled_R
thf(fact_6_NE__R,axiom,
    ( ( sset @ rule @ rules )
   != ( bot_bot @ ( set @ rule ) ) ) ).

% NE_R
thf(fact_7_PersistentRuleSystem__axioms,axiom,
    abstra612932245System @ rule @ state @ eff @ rules @ s ).

% PersistentRuleSystem_axioms
thf(fact_8_enabled__def,axiom,
    ! [R: rule,S: state] :
      ( ( abstra1874422341nabled @ rule @ state @ eff @ R @ S )
      = ( ^ [P: ( fset @ state ) > $o] :
          ? [X3: fset @ state] : ( P @ X3 )
        @ ( eff @ R @ S ) ) ) ).

% enabled_def
thf(fact_9_countable__R,axiom,
    countable_countable @ rule @ ( sset @ rule @ rules ) ).

% countable_R
thf(fact_10_per,axiom,
    ! [R: rule] :
      ( ( member @ rule @ R @ ( sset @ rule @ rules ) )
     => ( abstra2096684367le_per @ rule @ state @ eff @ rules @ s @ R ) ) ).

% per
thf(fact_11_assms_I3_J,axiom,
    abstra313004635_ipath @ ( product_prod @ state @ rule ) @ ( abstra1225283448mkTree @ rule @ state @ eff @ rs @ s2 ) @ steps ).

% assms(3)
thf(fact_12_RuleSystem__Defs_Osset__fenum,axiom,
    ! [Rule: $tType,Rules2: stream @ Rule] :
      ( ( sset @ Rule @ ( abstra1774373515_fenum @ Rule @ Rules2 ) )
      = ( sset @ Rule @ Rules2 ) ) ).

% RuleSystem_Defs.sset_fenum
thf(fact_13_eff__S,axiom,
    ! [S: state,R: rule,Sl: fset @ state,S2: state] :
      ( ( member @ state @ S @ s )
     => ( ( member @ rule @ R @ ( sset @ rule @ rules ) )
       => ( ( eff @ R @ S @ Sl )
         => ( ( fmember @ state @ S2 @ Sl )
           => ( member @ state @ S2 @ s ) ) ) ) ) ).

% eff_S
thf(fact_14_RuleSystem__axioms,axiom,
    abstra1326562878System @ rule @ state @ eff @ rules @ s ).

% RuleSystem_axioms
thf(fact_15_assms_I1_J,axiom,
    member @ state @ s2 @ s ).

% assms(1)
thf(fact_16_fair__fenum,axiom,
    abstra928354080m_fair @ rule @ rules @ ( abstra1774373515_fenum @ rule @ rules ) ).

% fair_fenum
thf(fact_17_ipath__mkTree__saturated,axiom,
    ! [S: state,Rs: stream @ rule,Steps: stream @ ( product_prod @ state @ rule ),R: rule] :
      ( ( member @ state @ S @ s )
     => ( ( abstra928354080m_fair @ rule @ rules @ Rs )
       => ( ( abstra313004635_ipath @ ( product_prod @ state @ rule ) @ ( abstra1225283448mkTree @ rule @ state @ eff @ Rs @ S ) @ Steps )
         => ( ( member @ rule @ R @ ( sset @ rule @ rules ) )
           => ( abstra726722745urated @ rule @ state @ eff @ R @ Steps ) ) ) ) ) ).

% ipath_mkTree_saturated
thf(fact_18_pickEff,axiom,
    ! [R: rule,S: state] :
      ( ( abstra1874422341nabled @ rule @ state @ eff @ R @ S )
     => ( eff @ R @ S @ ( abstra1276541928ickEff @ rule @ state @ eff @ R @ S ) ) ) ).

% pickEff
thf(fact_19_PersistentRuleSystem_Oaxioms_I1_J,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State] :
      ( ( abstra612932245System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 ) ) ).

% PersistentRuleSystem.axioms(1)
thf(fact_20_RuleSystem__Defs_Ofair__fenum,axiom,
    ! [Rule: $tType,Rules2: stream @ Rule] : ( abstra928354080m_fair @ Rule @ Rules2 @ ( abstra1774373515_fenum @ Rule @ Rules2 ) ) ).

% RuleSystem_Defs.fair_fenum
thf(fact_21_RuleSystem__Defs_Oenabled__def,axiom,
    ! [State: $tType,Rule: $tType] :
      ( ( abstra1874422341nabled @ Rule @ State )
      = ( ^ [Eff: Rule > State > ( fset @ State ) > $o,R2: Rule,S4: State] :
            ( ^ [P: ( fset @ State ) > $o] :
              ? [X3: fset @ State] : ( P @ X3 )
            @ ( Eff @ R2 @ S4 ) ) ) ) ).

% RuleSystem_Defs.enabled_def
thf(fact_22_RuleSystem_Ointro,axiom,
    ! [Rule: $tType,State: $tType,S3: set @ State,Rules2: stream @ Rule,Eff2: Rule > State > ( fset @ State ) > $o] :
      ( ! [S5: State] :
          ( ( member @ State @ S5 @ S3 )
         => ! [R3: Rule] :
              ( ( member @ Rule @ R3 @ ( sset @ Rule @ Rules2 ) )
             => ! [Sl2: fset @ State] :
                  ( ( Eff2 @ R3 @ S5 @ Sl2 )
                 => ! [S6: State] :
                      ( ( fmember @ State @ S6 @ Sl2 )
                     => ( member @ State @ S6 @ S3 ) ) ) ) )
     => ( ! [S5: State] :
            ( ( member @ State @ S5 @ S3 )
           => ? [X4: Rule] :
                ( ( member @ Rule @ X4 @ ( sset @ Rule @ Rules2 ) )
                & ? [X12: fset @ State] : ( Eff2 @ X4 @ S5 @ X12 ) ) )
       => ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 ) ) ) ).

% RuleSystem.intro
thf(fact_23_RuleSystem_Oeff__S,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,R: Rule,Sl: fset @ State,S2: State] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( member @ Rule @ R @ ( sset @ Rule @ Rules2 ) )
         => ( ( Eff2 @ R @ S @ Sl )
           => ( ( fmember @ State @ S2 @ Sl )
             => ( member @ State @ S2 @ S3 ) ) ) ) ) ) ).

% RuleSystem.eff_S
thf(fact_24_RuleSystem__def,axiom,
    ! [State: $tType,Rule: $tType] :
      ( ( abstra1326562878System @ Rule @ State )
      = ( ^ [Eff: Rule > State > ( fset @ State ) > $o,Rules: stream @ Rule,S7: set @ State] :
            ( ! [S4: State] :
                ( ( member @ State @ S4 @ S7 )
               => ! [R2: Rule] :
                    ( ( member @ Rule @ R2 @ ( sset @ Rule @ Rules ) )
                   => ! [Sl3: fset @ State] :
                        ( ( Eff @ R2 @ S4 @ Sl3 )
                       => ! [S8: State] :
                            ( ( fmember @ State @ S8 @ Sl3 )
                           => ( member @ State @ S8 @ S7 ) ) ) ) )
            & ! [S4: State] :
                ( ( member @ State @ S4 @ S7 )
               => ? [X: Rule] :
                    ( ( member @ Rule @ X @ ( sset @ Rule @ Rules ) )
                    & ( ^ [P: ( fset @ State ) > $o] :
                        ? [X3: fset @ State] : ( P @ X3 )
                      @ ( Eff @ X @ S4 ) ) ) ) ) ) ) ).

% RuleSystem_def
thf(fact_25_PersistentRuleSystem_Oipath__mkTree__saturated,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,Rs: stream @ Rule,Steps: stream @ ( product_prod @ State @ Rule ),R: Rule] :
      ( ( abstra612932245System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
         => ( ( abstra313004635_ipath @ ( product_prod @ State @ Rule ) @ ( abstra1225283448mkTree @ Rule @ State @ Eff2 @ Rs @ S ) @ Steps )
           => ( ( member @ Rule @ R @ ( sset @ Rule @ Rules2 ) )
             => ( abstra726722745urated @ Rule @ State @ Eff2 @ R @ Steps ) ) ) ) ) ) ).

% PersistentRuleSystem.ipath_mkTree_saturated
thf(fact_26_RuleSystem__Defs_Ocountable__R,axiom,
    ! [Rule: $tType,Rules2: stream @ Rule] : ( countable_countable @ Rule @ ( sset @ Rule @ Rules2 ) ) ).

% RuleSystem_Defs.countable_R
thf(fact_27_RuleSystem__Defs_ONE__R,axiom,
    ! [Rule: $tType,Rules2: stream @ Rule] :
      ( ( sset @ Rule @ Rules2 )
     != ( bot_bot @ ( set @ Rule ) ) ) ).

% RuleSystem_Defs.NE_R
thf(fact_28_PersistentRuleSystem_Oper,axiom,
    ! [State: $tType,Rule: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,R: Rule] :
      ( ( abstra612932245System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ Rule @ R @ ( sset @ Rule @ Rules2 ) )
       => ( abstra2096684367le_per @ Rule @ State @ Eff2 @ Rules2 @ S3 @ R ) ) ) ).

% PersistentRuleSystem.per
thf(fact_29_RuleSystem_Oenabled__R,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ? [X2: Rule] :
            ( ( member @ Rule @ X2 @ ( sset @ Rule @ Rules2 ) )
            & ? [X1: fset @ State] : ( Eff2 @ X2 @ S @ X1 ) ) ) ) ).

% RuleSystem.enabled_R
thf(fact_30_wf__mkTree,axiom,
    ! [S: state,Rs: stream @ rule] :
      ( ( member @ state @ S @ s )
     => ( ( abstra928354080m_fair @ rule @ rules @ Rs )
       => ( abstra1874736267tem_wf @ rule @ state @ eff @ rules @ ( abstra1225283448mkTree @ rule @ state @ eff @ Rs @ S ) ) ) ) ).

% wf_mkTree
thf(fact_31_trim__fair,axiom,
    ! [S: state,Rs: stream @ rule] :
      ( ( member @ state @ S @ s )
     => ( ( abstra928354080m_fair @ rule @ rules @ Rs )
       => ( abstra928354080m_fair @ rule @ rules @ ( abstra1259602206m_trim @ rule @ state @ eff @ Rs @ S ) ) ) ) ).

% trim_fair
thf(fact_32_countable__empty,axiom,
    ! [A: $tType] : ( countable_countable @ A @ ( bot_bot @ ( set @ A ) ) ) ).

% countable_empty
thf(fact_33_per__def,axiom,
    ! [R: rule] :
      ( ( abstra2096684367le_per @ rule @ state @ eff @ rules @ s @ R )
      = ( ! [S4: state,R1: rule,Sl4: fset @ state,S8: state] :
            ( ( ( member @ state @ S4 @ s )
              & ( abstra1874422341nabled @ rule @ state @ eff @ R @ S4 )
              & ( member @ rule @ R1 @ ( minus_minus @ ( set @ rule ) @ ( sset @ rule @ rules ) @ ( insert @ rule @ R @ ( bot_bot @ ( set @ rule ) ) ) ) )
              & ( eff @ R1 @ S4 @ Sl4 )
              & ( fmember @ state @ S8 @ Sl4 ) )
           => ( abstra1874422341nabled @ rule @ state @ eff @ R @ S8 ) ) ) ) ).

% per_def
thf(fact_34_countableI__type,axiom,
    ! [A: $tType] :
      ( ( countable @ A @ ( type2 @ A ) )
     => ! [A2: set @ A] : ( countable_countable @ A @ A2 ) ) ).

% countableI_type
thf(fact_35_sdrop__fair,axiom,
    ! [Rs: stream @ rule,M: nat] :
      ( ( abstra928354080m_fair @ rule @ rules @ Rs )
     => ( abstra928354080m_fair @ rule @ rules @ ( sdrop @ rule @ M @ Rs ) ) ) ).

% sdrop_fair
thf(fact_36_empty__iff,axiom,
    ! [A: $tType,C: A] :
      ~ ( member @ A @ C @ ( bot_bot @ ( set @ A ) ) ) ).

% empty_iff
thf(fact_37_all__not__in__conv,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( ! [X: A] :
            ~ ( member @ A @ X @ A2 ) )
      = ( A2
        = ( bot_bot @ ( set @ A ) ) ) ) ).

% all_not_in_conv
thf(fact_38_Collect__empty__eq,axiom,
    ! [A: $tType,P2: A > $o] :
      ( ( ( collect @ A @ P2 )
        = ( bot_bot @ ( set @ A ) ) )
      = ( ! [X: A] :
            ~ ( P2 @ X ) ) ) ).

% Collect_empty_eq
thf(fact_39_empty__Collect__eq,axiom,
    ! [A: $tType,P2: A > $o] :
      ( ( ( bot_bot @ ( set @ A ) )
        = ( collect @ A @ P2 ) )
      = ( ! [X: A] :
            ~ ( P2 @ X ) ) ) ).

% empty_Collect_eq
thf(fact_40_insert__absorb2,axiom,
    ! [A: $tType,X5: A,A2: set @ A] :
      ( ( insert @ A @ X5 @ ( insert @ A @ X5 @ A2 ) )
      = ( insert @ A @ X5 @ A2 ) ) ).

% insert_absorb2
thf(fact_41_insert__iff,axiom,
    ! [A: $tType,A3: A,B2: A,A2: set @ A] :
      ( ( member @ A @ A3 @ ( insert @ A @ B2 @ A2 ) )
      = ( ( A3 = B2 )
        | ( member @ A @ A3 @ A2 ) ) ) ).

% insert_iff
thf(fact_42_insertCI,axiom,
    ! [A: $tType,A3: A,B3: set @ A,B2: A] :
      ( ( ~ ( member @ A @ A3 @ B3 )
       => ( A3 = B2 ) )
     => ( member @ A @ A3 @ ( insert @ A @ B2 @ B3 ) ) ) ).

% insertCI
thf(fact_43_Diff__idemp,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A] :
      ( ( minus_minus @ ( set @ A ) @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) @ B3 )
      = ( minus_minus @ ( set @ A ) @ A2 @ B3 ) ) ).

% Diff_idemp
thf(fact_44_Diff__iff,axiom,
    ! [A: $tType,C: A,A2: set @ A,B3: set @ A] :
      ( ( member @ A @ C @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) )
      = ( ( member @ A @ C @ A2 )
        & ~ ( member @ A @ C @ B3 ) ) ) ).

% Diff_iff
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A3: A,P2: A > $o] :
      ( ( member @ A @ A3 @ ( collect @ A @ P2 ) )
      = ( P2 @ A3 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( collect @ A
        @ ^ [X: A] : ( member @ A @ X @ A2 ) )
      = A2 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P2: A > $o,Q: A > $o] :
      ( ! [X2: A] :
          ( ( P2 @ X2 )
          = ( Q @ X2 ) )
     => ( ( collect @ A @ P2 )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ext,axiom,
    ! [B: $tType,A: $tType,F: A > B,G: A > B] :
      ( ! [X2: A] :
          ( ( F @ X2 )
          = ( G @ X2 ) )
     => ( F = G ) ) ).

% ext
thf(fact_49_DiffI,axiom,
    ! [A: $tType,C: A,A2: set @ A,B3: set @ A] :
      ( ( member @ A @ C @ A2 )
     => ( ~ ( member @ A @ C @ B3 )
       => ( member @ A @ C @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) ) ) ) ).

% DiffI
thf(fact_50_singletonI,axiom,
    ! [A: $tType,A3: A] : ( member @ A @ A3 @ ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) ) ).

% singletonI
thf(fact_51_Diff__cancel,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( minus_minus @ ( set @ A ) @ A2 @ A2 )
      = ( bot_bot @ ( set @ A ) ) ) ).

% Diff_cancel
thf(fact_52_empty__Diff,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( minus_minus @ ( set @ A ) @ ( bot_bot @ ( set @ A ) ) @ A2 )
      = ( bot_bot @ ( set @ A ) ) ) ).

% empty_Diff
thf(fact_53_Diff__empty,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( minus_minus @ ( set @ A ) @ A2 @ ( bot_bot @ ( set @ A ) ) )
      = A2 ) ).

% Diff_empty
thf(fact_54_insert__Diff1,axiom,
    ! [A: $tType,X5: A,B3: set @ A,A2: set @ A] :
      ( ( member @ A @ X5 @ B3 )
     => ( ( minus_minus @ ( set @ A ) @ ( insert @ A @ X5 @ A2 ) @ B3 )
        = ( minus_minus @ ( set @ A ) @ A2 @ B3 ) ) ) ).

% insert_Diff1
thf(fact_55_Diff__insert0,axiom,
    ! [A: $tType,X5: A,A2: set @ A,B3: set @ A] :
      ( ~ ( member @ A @ X5 @ A2 )
     => ( ( minus_minus @ ( set @ A ) @ A2 @ ( insert @ A @ X5 @ B3 ) )
        = ( minus_minus @ ( set @ A ) @ A2 @ B3 ) ) ) ).

% Diff_insert0
thf(fact_56_countable__insert__eq,axiom,
    ! [A: $tType,X5: A,A2: set @ A] :
      ( ( countable_countable @ A @ ( insert @ A @ X5 @ A2 ) )
      = ( countable_countable @ A @ A2 ) ) ).

% countable_insert_eq
thf(fact_57_countable__insert,axiom,
    ! [A: $tType,A2: set @ A,A3: A] :
      ( ( countable_countable @ A @ A2 )
     => ( countable_countable @ A @ ( insert @ A @ A3 @ A2 ) ) ) ).

% countable_insert
thf(fact_58_countable__Diff,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A] :
      ( ( countable_countable @ A @ A2 )
     => ( countable_countable @ A @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) ) ) ).

% countable_Diff
thf(fact_59_insert__Diff__single,axiom,
    ! [A: $tType,A3: A,A2: set @ A] :
      ( ( insert @ A @ A3 @ ( minus_minus @ ( set @ A ) @ A2 @ ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) ) )
      = ( insert @ A @ A3 @ A2 ) ) ).

% insert_Diff_single
thf(fact_60_countable__Diff__eq,axiom,
    ! [A: $tType,A2: set @ A,X5: A] :
      ( ( countable_countable @ A @ ( minus_minus @ ( set @ A ) @ A2 @ ( insert @ A @ X5 @ ( bot_bot @ ( set @ A ) ) ) ) )
      = ( countable_countable @ A @ A2 ) ) ).

% countable_Diff_eq
thf(fact_61_Diff__insert,axiom,
    ! [A: $tType,A2: set @ A,A3: A,B3: set @ A] :
      ( ( minus_minus @ ( set @ A ) @ A2 @ ( insert @ A @ A3 @ B3 ) )
      = ( minus_minus @ ( set @ A ) @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) @ ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) ) ) ).

% Diff_insert
thf(fact_62_insert__Diff,axiom,
    ! [A: $tType,A3: A,A2: set @ A] :
      ( ( member @ A @ A3 @ A2 )
     => ( ( insert @ A @ A3 @ ( minus_minus @ ( set @ A ) @ A2 @ ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) ) )
        = A2 ) ) ).

% insert_Diff
thf(fact_63_Diff__insert2,axiom,
    ! [A: $tType,A2: set @ A,A3: A,B3: set @ A] :
      ( ( minus_minus @ ( set @ A ) @ A2 @ ( insert @ A @ A3 @ B3 ) )
      = ( minus_minus @ ( set @ A ) @ ( minus_minus @ ( set @ A ) @ A2 @ ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) ) @ B3 ) ) ).

% Diff_insert2
thf(fact_64_Diff__insert__absorb,axiom,
    ! [A: $tType,X5: A,A2: set @ A] :
      ( ~ ( member @ A @ X5 @ A2 )
     => ( ( minus_minus @ ( set @ A ) @ ( insert @ A @ X5 @ A2 ) @ ( insert @ A @ X5 @ ( bot_bot @ ( set @ A ) ) ) )
        = A2 ) ) ).

% Diff_insert_absorb
thf(fact_65_mk__disjoint__insert,axiom,
    ! [A: $tType,A3: A,A2: set @ A] :
      ( ( member @ A @ A3 @ A2 )
     => ? [B4: set @ A] :
          ( ( A2
            = ( insert @ A @ A3 @ B4 ) )
          & ~ ( member @ A @ A3 @ B4 ) ) ) ).

% mk_disjoint_insert
thf(fact_66_insert__commute,axiom,
    ! [A: $tType,X5: A,Y: A,A2: set @ A] :
      ( ( insert @ A @ X5 @ ( insert @ A @ Y @ A2 ) )
      = ( insert @ A @ Y @ ( insert @ A @ X5 @ A2 ) ) ) ).

% insert_commute
thf(fact_67_insert__Diff__if,axiom,
    ! [A: $tType,X5: A,B3: set @ A,A2: set @ A] :
      ( ( ( member @ A @ X5 @ B3 )
       => ( ( minus_minus @ ( set @ A ) @ ( insert @ A @ X5 @ A2 ) @ B3 )
          = ( minus_minus @ ( set @ A ) @ A2 @ B3 ) ) )
      & ( ~ ( member @ A @ X5 @ B3 )
       => ( ( minus_minus @ ( set @ A ) @ ( insert @ A @ X5 @ A2 ) @ B3 )
          = ( insert @ A @ X5 @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) ) ) ) ) ).

% insert_Diff_if
thf(fact_68_insert__eq__iff,axiom,
    ! [A: $tType,A3: A,A2: set @ A,B2: A,B3: set @ A] :
      ( ~ ( member @ A @ A3 @ A2 )
     => ( ~ ( member @ A @ B2 @ B3 )
       => ( ( ( insert @ A @ A3 @ A2 )
            = ( insert @ A @ B2 @ B3 ) )
          = ( ( ( A3 = B2 )
             => ( A2 = B3 ) )
            & ( ( A3 != B2 )
             => ? [C2: set @ A] :
                  ( ( A2
                    = ( insert @ A @ B2 @ C2 ) )
                  & ~ ( member @ A @ B2 @ C2 )
                  & ( B3
                    = ( insert @ A @ A3 @ C2 ) )
                  & ~ ( member @ A @ A3 @ C2 ) ) ) ) ) ) ) ).

% insert_eq_iff
thf(fact_69_insert__absorb,axiom,
    ! [A: $tType,A3: A,A2: set @ A] :
      ( ( member @ A @ A3 @ A2 )
     => ( ( insert @ A @ A3 @ A2 )
        = A2 ) ) ).

% insert_absorb
thf(fact_70_insert__ident,axiom,
    ! [A: $tType,X5: A,A2: set @ A,B3: set @ A] :
      ( ~ ( member @ A @ X5 @ A2 )
     => ( ~ ( member @ A @ X5 @ B3 )
       => ( ( ( insert @ A @ X5 @ A2 )
            = ( insert @ A @ X5 @ B3 ) )
          = ( A2 = B3 ) ) ) ) ).

% insert_ident
thf(fact_71_Set_Oset__insert,axiom,
    ! [A: $tType,X5: A,A2: set @ A] :
      ( ( member @ A @ X5 @ A2 )
     => ~ ! [B4: set @ A] :
            ( ( A2
              = ( insert @ A @ X5 @ B4 ) )
           => ( member @ A @ X5 @ B4 ) ) ) ).

% Set.set_insert
thf(fact_72_insertI2,axiom,
    ! [A: $tType,A3: A,B3: set @ A,B2: A] :
      ( ( member @ A @ A3 @ B3 )
     => ( member @ A @ A3 @ ( insert @ A @ B2 @ B3 ) ) ) ).

% insertI2
thf(fact_73_insertI1,axiom,
    ! [A: $tType,A3: A,B3: set @ A] : ( member @ A @ A3 @ ( insert @ A @ A3 @ B3 ) ) ).

% insertI1
thf(fact_74_insertE,axiom,
    ! [A: $tType,A3: A,B2: A,A2: set @ A] :
      ( ( member @ A @ A3 @ ( insert @ A @ B2 @ A2 ) )
     => ( ( A3 != B2 )
       => ( member @ A @ A3 @ A2 ) ) ) ).

% insertE
thf(fact_75_DiffD2,axiom,
    ! [A: $tType,C: A,A2: set @ A,B3: set @ A] :
      ( ( member @ A @ C @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) )
     => ~ ( member @ A @ C @ B3 ) ) ).

% DiffD2
thf(fact_76_DiffD1,axiom,
    ! [A: $tType,C: A,A2: set @ A,B3: set @ A] :
      ( ( member @ A @ C @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) )
     => ( member @ A @ C @ A2 ) ) ).

% DiffD1
thf(fact_77_DiffE,axiom,
    ! [A: $tType,C: A,A2: set @ A,B3: set @ A] :
      ( ( member @ A @ C @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) )
     => ~ ( ( member @ A @ C @ A2 )
         => ( member @ A @ C @ B3 ) ) ) ).

% DiffE
thf(fact_78_singleton__inject,axiom,
    ! [A: $tType,A3: A,B2: A] :
      ( ( ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) )
        = ( insert @ A @ B2 @ ( bot_bot @ ( set @ A ) ) ) )
     => ( A3 = B2 ) ) ).

% singleton_inject
thf(fact_79_insert__not__empty,axiom,
    ! [A: $tType,A3: A,A2: set @ A] :
      ( ( insert @ A @ A3 @ A2 )
     != ( bot_bot @ ( set @ A ) ) ) ).

% insert_not_empty
thf(fact_80_doubleton__eq__iff,axiom,
    ! [A: $tType,A3: A,B2: A,C: A,D: A] :
      ( ( ( insert @ A @ A3 @ ( insert @ A @ B2 @ ( bot_bot @ ( set @ A ) ) ) )
        = ( insert @ A @ C @ ( insert @ A @ D @ ( bot_bot @ ( set @ A ) ) ) ) )
      = ( ( ( A3 = C )
          & ( B2 = D ) )
        | ( ( A3 = D )
          & ( B2 = C ) ) ) ) ).

% doubleton_eq_iff
thf(fact_81_singleton__iff,axiom,
    ! [A: $tType,B2: A,A3: A] :
      ( ( member @ A @ B2 @ ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) )
      = ( B2 = A3 ) ) ).

% singleton_iff
thf(fact_82_singletonD,axiom,
    ! [A: $tType,B2: A,A3: A] :
      ( ( member @ A @ B2 @ ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) )
     => ( B2 = A3 ) ) ).

% singletonD
thf(fact_83_uncountable__minus__countable,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A] :
      ( ~ ( countable_countable @ A @ A2 )
     => ( ( countable_countable @ A @ B3 )
       => ~ ( countable_countable @ A @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) ) ) ) ).

% uncountable_minus_countable
thf(fact_84_RuleSystem__Defs_Osdrop__fair,axiom,
    ! [Rule: $tType,Rules2: stream @ Rule,Rs: stream @ Rule,M: nat] :
      ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
     => ( abstra928354080m_fair @ Rule @ Rules2 @ ( sdrop @ Rule @ M @ Rs ) ) ) ).

% RuleSystem_Defs.sdrop_fair
thf(fact_85_RuleSystem_Oipath__mkTree__sdrop,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,Rs: stream @ Rule,Steps: stream @ ( product_prod @ State @ Rule ),M: nat] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
         => ( ( abstra313004635_ipath @ ( product_prod @ State @ Rule ) @ ( abstra1225283448mkTree @ Rule @ State @ Eff2 @ Rs @ S ) @ Steps )
           => ? [N: nat,S6: State] :
                ( ( member @ State @ S6 @ S3 )
                & ( abstra313004635_ipath @ ( product_prod @ State @ Rule ) @ ( abstra1225283448mkTree @ Rule @ State @ Eff2 @ ( sdrop @ Rule @ N @ Rs ) @ S6 ) @ ( sdrop @ ( product_prod @ State @ Rule ) @ M @ Steps ) ) ) ) ) ) ) ).

% RuleSystem.ipath_mkTree_sdrop
thf(fact_86_RuleSystem__Defs_OpickEff,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,R: Rule,S: State] :
      ( ( abstra1874422341nabled @ Rule @ State @ Eff2 @ R @ S )
     => ( Eff2 @ R @ S @ ( abstra1276541928ickEff @ Rule @ State @ Eff2 @ R @ S ) ) ) ).

% RuleSystem_Defs.pickEff
thf(fact_87_ex__in__conv,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( ? [X: A] : ( member @ A @ X @ A2 ) )
      = ( A2
       != ( bot_bot @ ( set @ A ) ) ) ) ).

% ex_in_conv
thf(fact_88_equals0I,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ! [Y2: A] :
          ~ ( member @ A @ Y2 @ A2 )
     => ( A2
        = ( bot_bot @ ( set @ A ) ) ) ) ).

% equals0I
thf(fact_89_equals0D,axiom,
    ! [A: $tType,A2: set @ A,A3: A] :
      ( ( A2
        = ( bot_bot @ ( set @ A ) ) )
     => ~ ( member @ A @ A3 @ A2 ) ) ).

% equals0D
thf(fact_90_emptyE,axiom,
    ! [A: $tType,A3: A] :
      ~ ( member @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) ).

% emptyE
thf(fact_91_RuleSystem_Oper__def,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,R: Rule] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( abstra2096684367le_per @ Rule @ State @ Eff2 @ Rules2 @ S3 @ R )
        = ( ! [S4: State,R1: Rule,Sl4: fset @ State,S8: State] :
              ( ( ( member @ State @ S4 @ S3 )
                & ( abstra1874422341nabled @ Rule @ State @ Eff2 @ R @ S4 )
                & ( member @ Rule @ R1 @ ( minus_minus @ ( set @ Rule ) @ ( sset @ Rule @ Rules2 ) @ ( insert @ Rule @ R @ ( bot_bot @ ( set @ Rule ) ) ) ) )
                & ( Eff2 @ R1 @ S4 @ Sl4 )
                & ( fmember @ State @ S8 @ Sl4 ) )
             => ( abstra1874422341nabled @ Rule @ State @ Eff2 @ R @ S8 ) ) ) ) ) ).

% RuleSystem.per_def
thf(fact_92_RuleSystem_Otrim__fair,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,Rs: stream @ Rule] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
         => ( abstra928354080m_fair @ Rule @ Rules2 @ ( abstra1259602206m_trim @ Rule @ State @ Eff2 @ Rs @ S ) ) ) ) ) ).

% RuleSystem.trim_fair
thf(fact_93_RuleSystem_Owf__mkTree,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,Rs: stream @ Rule] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
         => ( abstra1874736267tem_wf @ Rule @ State @ Eff2 @ Rules2 @ ( abstra1225283448mkTree @ Rule @ State @ Eff2 @ Rs @ S ) ) ) ) ) ).

% RuleSystem.wf_mkTree
thf(fact_94_trim__alt,axiom,
    ! [S: state,Rs: stream @ rule] :
      ( ( member @ state @ S @ s )
     => ( ( abstra928354080m_fair @ rule @ rules @ Rs )
       => ( ( abstra1259602206m_trim @ rule @ state @ eff @ Rs @ S )
          = ( sdrop @ rule @ ( abstra1332369113inWait @ rule @ state @ eff @ Rs @ S ) @ Rs ) ) ) ) ).

% trim_alt
thf(fact_95_wf__ipath__epath,axiom,
    ! [T: abstra2103299360e_tree @ ( product_prod @ state @ rule ),Steps: stream @ ( product_prod @ state @ rule )] :
      ( ( abstra1874736267tem_wf @ rule @ state @ eff @ rules @ T )
     => ( ( abstra313004635_ipath @ ( product_prod @ state @ rule ) @ T @ Steps )
       => ( abstra523868654_epath @ rule @ state @ eff @ rules @ Steps ) ) ) ).

% wf_ipath_epath
thf(fact_96_ipath__mkTree__sdrop,axiom,
    ! [S: state,Rs: stream @ rule,Steps: stream @ ( product_prod @ state @ rule ),M: nat] :
      ( ( member @ state @ S @ s )
     => ( ( abstra928354080m_fair @ rule @ rules @ Rs )
       => ( ( abstra313004635_ipath @ ( product_prod @ state @ rule ) @ ( abstra1225283448mkTree @ rule @ state @ eff @ Rs @ S ) @ Steps )
         => ? [N: nat,S6: state] :
              ( ( member @ state @ S6 @ s )
              & ( abstra313004635_ipath @ ( product_prod @ state @ rule ) @ ( abstra1225283448mkTree @ rule @ state @ eff @ ( sdrop @ rule @ N @ Rs ) @ S6 ) @ ( sdrop @ ( product_prod @ state @ rule ) @ M @ Steps ) ) ) ) ) ) ).

% ipath_mkTree_sdrop
thf(fact_97_minWait__ex,axiom,
    ! [S: state,Rs: stream @ rule] :
      ( ( member @ state @ S @ s )
     => ( ( abstra928354080m_fair @ rule @ rules @ Rs )
       => ? [N: nat] : ( abstra1874422341nabled @ rule @ state @ eff @ ( shd @ rule @ ( sdrop @ rule @ N @ Rs ) ) @ S ) ) ) ).

% minWait_ex
thf(fact_98_trim__enabled,axiom,
    ! [S: state,Rs: stream @ rule] :
      ( ( member @ state @ S @ s )
     => ( ( abstra928354080m_fair @ rule @ rules @ Rs )
       => ( abstra1874422341nabled @ rule @ state @ eff @ ( shd @ rule @ ( abstra1259602206m_trim @ rule @ state @ eff @ Rs @ S ) ) @ S ) ) ) ).

% trim_enabled
thf(fact_99_trim__in__R,axiom,
    ! [S: state,Rs: stream @ rule] :
      ( ( member @ state @ S @ s )
     => ( ( abstra928354080m_fair @ rule @ rules @ Rs )
       => ( member @ rule @ ( shd @ rule @ ( abstra1259602206m_trim @ rule @ state @ eff @ Rs @ S ) ) @ ( sset @ rule @ rules ) ) ) ) ).

% trim_in_R
thf(fact_100_RuleSystem_Otrim__alt,axiom,
    ! [State: $tType,Rule: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,Rs: stream @ Rule] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
         => ( ( abstra1259602206m_trim @ Rule @ State @ Eff2 @ Rs @ S )
            = ( sdrop @ Rule @ ( abstra1332369113inWait @ Rule @ State @ Eff2 @ Rs @ S ) @ Rs ) ) ) ) ) ).

% RuleSystem.trim_alt
thf(fact_101_bot__apply,axiom,
    ! [C3: $tType,D2: $tType] :
      ( ( bot @ C3 @ ( type2 @ C3 ) )
     => ( ( bot_bot @ ( D2 > C3 ) )
        = ( ^ [X: D2] : ( bot_bot @ C3 ) ) ) ) ).

% bot_apply
thf(fact_102_bot__set__def,axiom,
    ! [A: $tType] :
      ( ( bot_bot @ ( set @ A ) )
      = ( collect @ A @ ( bot_bot @ ( A > $o ) ) ) ) ).

% bot_set_def
thf(fact_103_bot__fun__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( bot @ B @ ( type2 @ B ) )
     => ( ( bot_bot @ ( A > B ) )
        = ( ^ [X: A] : ( bot_bot @ B ) ) ) ) ).

% bot_fun_def
thf(fact_104_RuleSystem_Otrim__in__R,axiom,
    ! [State: $tType,Rule: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,Rs: stream @ Rule] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
         => ( member @ Rule @ ( shd @ Rule @ ( abstra1259602206m_trim @ Rule @ State @ Eff2 @ Rs @ S ) ) @ ( sset @ Rule @ Rules2 ) ) ) ) ) ).

% RuleSystem.trim_in_R
thf(fact_105_RuleSystem_OminWait__ex,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,Rs: stream @ Rule] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
         => ? [N: nat] : ( abstra1874422341nabled @ Rule @ State @ Eff2 @ ( shd @ Rule @ ( sdrop @ Rule @ N @ Rs ) ) @ S ) ) ) ) ).

% RuleSystem.minWait_ex
thf(fact_106_RuleSystem_Otrim__enabled,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,Rs: stream @ Rule] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
         => ( abstra1874422341nabled @ Rule @ State @ Eff2 @ ( shd @ Rule @ ( abstra1259602206m_trim @ Rule @ State @ Eff2 @ Rs @ S ) ) @ S ) ) ) ) ).

% RuleSystem.trim_enabled
thf(fact_107_RuleSystem__Defs_Owf__ipath__epath,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,T: abstra2103299360e_tree @ ( product_prod @ State @ Rule ),Steps: stream @ ( product_prod @ State @ Rule )] :
      ( ( abstra1874736267tem_wf @ Rule @ State @ Eff2 @ Rules2 @ T )
     => ( ( abstra313004635_ipath @ ( product_prod @ State @ Rule ) @ T @ Steps )
       => ( abstra523868654_epath @ Rule @ State @ Eff2 @ Rules2 @ Steps ) ) ) ).

% RuleSystem_Defs.wf_ipath_epath
thf(fact_108_pos,axiom,
    ! [Rs: stream @ rule,R: rule] :
      ( ( abstra928354080m_fair @ rule @ rules @ Rs )
     => ( ( member @ rule @ R @ ( sset @ rule @ rules ) )
       => ( ( shd @ rule @ ( sdrop @ rule @ ( abstra2097340358le_pos @ rule @ Rs @ R ) @ Rs ) )
          = R ) ) ) ).

% pos
thf(fact_109_minWait__least,axiom,
    ! [N2: nat,Rs: stream @ rule,S: state] :
      ( ( abstra1874422341nabled @ rule @ state @ eff @ ( shd @ rule @ ( sdrop @ rule @ N2 @ Rs ) ) @ S )
     => ( ord_less_eq @ nat @ ( abstra1332369113inWait @ rule @ state @ eff @ Rs @ S ) @ N2 ) ) ).

% minWait_least
thf(fact_110_RuleSystem_Opos,axiom,
    ! [State: $tType,Rule: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,Rs: stream @ Rule,R: Rule] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
       => ( ( member @ Rule @ R @ ( sset @ Rule @ Rules2 ) )
         => ( ( shd @ Rule @ ( sdrop @ Rule @ ( abstra2097340358le_pos @ Rule @ Rs @ R ) @ Rs ) )
            = R ) ) ) ) ).

% RuleSystem.pos
thf(fact_111_fempty__iff,axiom,
    ! [A: $tType,C: A] :
      ~ ( fmember @ A @ C @ ( bot_bot @ ( fset @ A ) ) ) ).

% fempty_iff
thf(fact_112_all__not__fin__conv,axiom,
    ! [A: $tType,A2: fset @ A] :
      ( ( ! [X: A] :
            ~ ( fmember @ A @ X @ A2 ) )
      = ( A2
        = ( bot_bot @ ( fset @ A ) ) ) ) ).

% all_not_fin_conv
thf(fact_113_order__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X5: A] : ( ord_less_eq @ A @ X5 @ X5 ) ) ).

% order_refl
thf(fact_114_pos__least,axiom,
    ! [A: $tType,N2: nat,Rs: stream @ A,R: A] :
      ( ( ( shd @ A @ ( sdrop @ A @ N2 @ Rs ) )
        = R )
     => ( ord_less_eq @ nat @ ( abstra2097340358le_pos @ A @ Rs @ R ) @ N2 ) ) ).

% pos_least
thf(fact_115_minWait__le__pos,axiom,
    ! [Rs: stream @ rule,R: rule,S: state] :
      ( ( abstra928354080m_fair @ rule @ rules @ Rs )
     => ( ( member @ rule @ R @ ( sset @ rule @ rules ) )
       => ( ( abstra1874422341nabled @ rule @ state @ eff @ R @ S )
         => ( ord_less_eq @ nat @ ( abstra1332369113inWait @ rule @ state @ eff @ Rs @ S ) @ ( abstra2097340358le_pos @ rule @ Rs @ R ) ) ) ) ) ).

% minWait_le_pos
thf(fact_116_le__funD,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B,X5: A] :
          ( ( ord_less_eq @ ( A > B ) @ F @ G )
         => ( ord_less_eq @ B @ ( F @ X5 ) @ ( G @ X5 ) ) ) ) ).

% le_funD
thf(fact_117_le__funE,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B,X5: A] :
          ( ( ord_less_eq @ ( A > B ) @ F @ G )
         => ( ord_less_eq @ B @ ( F @ X5 ) @ ( G @ X5 ) ) ) ) ).

% le_funE
thf(fact_118_le__funI,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B] :
          ( ! [X2: A] : ( ord_less_eq @ B @ ( F @ X2 ) @ ( G @ X2 ) )
         => ( ord_less_eq @ ( A > B ) @ F @ G ) ) ) ).

% le_funI
thf(fact_119_le__fun__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ( ( ord_less_eq @ ( A > B ) )
        = ( ^ [F2: A > B,G2: A > B] :
            ! [X: A] : ( ord_less_eq @ B @ ( F2 @ X ) @ ( G2 @ X ) ) ) ) ) ).

% le_fun_def
thf(fact_120_order__subst1,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( order @ B @ ( type2 @ B ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A3: A,F: B > A,B2: B,C: B] :
          ( ( ord_less_eq @ A @ A3 @ ( F @ B2 ) )
         => ( ( ord_less_eq @ B @ B2 @ C )
           => ( ! [X2: B,Y2: B] :
                  ( ( ord_less_eq @ B @ X2 @ Y2 )
                 => ( ord_less_eq @ A @ ( F @ X2 ) @ ( F @ Y2 ) ) )
             => ( ord_less_eq @ A @ A3 @ ( F @ C ) ) ) ) ) ) ).

% order_subst1
thf(fact_121_order__subst2,axiom,
    ! [A: $tType,C3: $tType] :
      ( ( ( order @ C3 @ ( type2 @ C3 ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A3: A,B2: A,F: A > C3,C: C3] :
          ( ( ord_less_eq @ A @ A3 @ B2 )
         => ( ( ord_less_eq @ C3 @ ( F @ B2 ) @ C )
           => ( ! [X2: A,Y2: A] :
                  ( ( ord_less_eq @ A @ X2 @ Y2 )
                 => ( ord_less_eq @ C3 @ ( F @ X2 ) @ ( F @ Y2 ) ) )
             => ( ord_less_eq @ C3 @ ( F @ A3 ) @ C ) ) ) ) ) ).

% order_subst2
thf(fact_122_ord__eq__le__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A3: A,F: B > A,B2: B,C: B] :
          ( ( A3
            = ( F @ B2 ) )
         => ( ( ord_less_eq @ B @ B2 @ C )
           => ( ! [X2: B,Y2: B] :
                  ( ( ord_less_eq @ B @ X2 @ Y2 )
                 => ( ord_less_eq @ A @ ( F @ X2 ) @ ( F @ Y2 ) ) )
             => ( ord_less_eq @ A @ A3 @ ( F @ C ) ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_123_ord__le__eq__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A3: A,B2: A,F: A > B,C: B] :
          ( ( ord_less_eq @ A @ A3 @ B2 )
         => ( ( ( F @ B2 )
              = C )
           => ( ! [X2: A,Y2: A] :
                  ( ( ord_less_eq @ A @ X2 @ Y2 )
                 => ( ord_less_eq @ B @ ( F @ X2 ) @ ( F @ Y2 ) ) )
             => ( ord_less_eq @ B @ ( F @ A3 ) @ C ) ) ) ) ) ).

% ord_le_eq_subst
thf(fact_124_eq__iff,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ^ [Y3: A,Z: A] : Y3 = Z )
        = ( ^ [X: A,Y4: A] :
              ( ( ord_less_eq @ A @ X @ Y4 )
              & ( ord_less_eq @ A @ Y4 @ X ) ) ) ) ) ).

% eq_iff
thf(fact_125_antisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ( ord_less_eq @ A @ X5 @ Y )
         => ( ( ord_less_eq @ A @ Y @ X5 )
           => ( X5 = Y ) ) ) ) ).

% antisym
thf(fact_126_linear,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ( ord_less_eq @ A @ X5 @ Y )
          | ( ord_less_eq @ A @ Y @ X5 ) ) ) ).

% linear
thf(fact_127_eq__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ( X5 = Y )
         => ( ord_less_eq @ A @ X5 @ Y ) ) ) ).

% eq_refl
thf(fact_128_le__cases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ~ ( ord_less_eq @ A @ X5 @ Y )
         => ( ord_less_eq @ A @ Y @ X5 ) ) ) ).

% le_cases
thf(fact_129_order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A3: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A3 @ B2 )
         => ( ( ord_less_eq @ A @ B2 @ C )
           => ( ord_less_eq @ A @ A3 @ C ) ) ) ) ).

% order.trans
thf(fact_130_le__cases3,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A,Z2: A] :
          ( ( ( ord_less_eq @ A @ X5 @ Y )
           => ~ ( ord_less_eq @ A @ Y @ Z2 ) )
         => ( ( ( ord_less_eq @ A @ Y @ X5 )
             => ~ ( ord_less_eq @ A @ X5 @ Z2 ) )
           => ( ( ( ord_less_eq @ A @ X5 @ Z2 )
               => ~ ( ord_less_eq @ A @ Z2 @ Y ) )
             => ( ( ( ord_less_eq @ A @ Z2 @ Y )
                 => ~ ( ord_less_eq @ A @ Y @ X5 ) )
               => ( ( ( ord_less_eq @ A @ Y @ Z2 )
                   => ~ ( ord_less_eq @ A @ Z2 @ X5 ) )
                 => ~ ( ( ord_less_eq @ A @ Z2 @ X5 )
                     => ~ ( ord_less_eq @ A @ X5 @ Y ) ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_131_antisym__conv,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [Y: A,X5: A] :
          ( ( ord_less_eq @ A @ Y @ X5 )
         => ( ( ord_less_eq @ A @ X5 @ Y )
            = ( X5 = Y ) ) ) ) ).

% antisym_conv
thf(fact_132_ord__eq__le__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A3: A,B2: A,C: A] :
          ( ( A3 = B2 )
         => ( ( ord_less_eq @ A @ B2 @ C )
           => ( ord_less_eq @ A @ A3 @ C ) ) ) ) ).

% ord_eq_le_trans
thf(fact_133_ord__le__eq__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A3: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A3 @ B2 )
         => ( ( B2 = C )
           => ( ord_less_eq @ A @ A3 @ C ) ) ) ) ).

% ord_le_eq_trans
thf(fact_134_order__class_Oorder_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A3: A,B2: A] :
          ( ( ord_less_eq @ A @ A3 @ B2 )
         => ( ( ord_less_eq @ A @ B2 @ A3 )
           => ( A3 = B2 ) ) ) ) ).

% order_class.order.antisym
thf(fact_135_order__trans,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A,Z2: A] :
          ( ( ord_less_eq @ A @ X5 @ Y )
         => ( ( ord_less_eq @ A @ Y @ Z2 )
           => ( ord_less_eq @ A @ X5 @ Z2 ) ) ) ) ).

% order_trans
thf(fact_136_dual__order_Orefl,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A3: A] : ( ord_less_eq @ A @ A3 @ A3 ) ) ).

% dual_order.refl
thf(fact_137_linorder__wlog,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P2: A > A > $o,A3: A,B2: A] :
          ( ! [A4: A,B5: A] :
              ( ( ord_less_eq @ A @ A4 @ B5 )
             => ( P2 @ A4 @ B5 ) )
         => ( ! [A4: A,B5: A] :
                ( ( P2 @ B5 @ A4 )
               => ( P2 @ A4 @ B5 ) )
           => ( P2 @ A3 @ B2 ) ) ) ) ).

% linorder_wlog
thf(fact_138_dual__order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A3: A,C: A] :
          ( ( ord_less_eq @ A @ B2 @ A3 )
         => ( ( ord_less_eq @ A @ C @ B2 )
           => ( ord_less_eq @ A @ C @ A3 ) ) ) ) ).

% dual_order.trans
thf(fact_139_dual__order_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A3: A] :
          ( ( ord_less_eq @ A @ B2 @ A3 )
         => ( ( ord_less_eq @ A @ A3 @ B2 )
           => ( A3 = B2 ) ) ) ) ).

% dual_order.antisym
thf(fact_140_bot_Oextremum,axiom,
    ! [A: $tType] :
      ( ( order_bot @ A @ ( type2 @ A ) )
     => ! [A3: A] : ( ord_less_eq @ A @ ( bot_bot @ A ) @ A3 ) ) ).

% bot.extremum
thf(fact_141_bot_Oextremum__unique,axiom,
    ! [A: $tType] :
      ( ( order_bot @ A @ ( type2 @ A ) )
     => ! [A3: A] :
          ( ( ord_less_eq @ A @ A3 @ ( bot_bot @ A ) )
          = ( A3
            = ( bot_bot @ A ) ) ) ) ).

% bot.extremum_unique
thf(fact_142_bot_Oextremum__uniqueI,axiom,
    ! [A: $tType] :
      ( ( order_bot @ A @ ( type2 @ A ) )
     => ! [A3: A] :
          ( ( ord_less_eq @ A @ A3 @ ( bot_bot @ A ) )
         => ( A3
            = ( bot_bot @ A ) ) ) ) ).

% bot.extremum_uniqueI
thf(fact_143_RuleSystem_Opos__least,axiom,
    ! [Rule: $tType,State: $tType,A: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,N2: nat,Rs: stream @ A,R: A] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( ( shd @ A @ ( sdrop @ A @ N2 @ Rs ) )
          = R )
       => ( ord_less_eq @ nat @ ( abstra2097340358le_pos @ A @ Rs @ R ) @ N2 ) ) ) ).

% RuleSystem.pos_least
thf(fact_144_eqfelem__imp__iff,axiom,
    ! [A: $tType,X5: A,Y: A,A2: fset @ A] :
      ( ( X5 = Y )
     => ( ( fmember @ A @ X5 @ A2 )
        = ( fmember @ A @ Y @ A2 ) ) ) ).

% eqfelem_imp_iff
thf(fact_145_if__split__fmem2,axiom,
    ! [A: $tType,A3: A,Q: $o,X5: fset @ A,Y: fset @ A] :
      ( ( fmember @ A @ A3 @ ( if @ ( fset @ A ) @ Q @ X5 @ Y ) )
      = ( ( Q
         => ( fmember @ A @ A3 @ X5 ) )
        & ( ~ Q
         => ( fmember @ A @ A3 @ Y ) ) ) ) ).

% if_split_fmem2
thf(fact_146_if__split__fmem1,axiom,
    ! [A: $tType,Q: $o,X5: A,Y: A,B2: fset @ A] :
      ( ( fmember @ A @ ( if @ A @ Q @ X5 @ Y ) @ B2 )
      = ( ( Q
         => ( fmember @ A @ X5 @ B2 ) )
        & ( ~ Q
         => ( fmember @ A @ Y @ B2 ) ) ) ) ).

% if_split_fmem1
thf(fact_147_eqfset__imp__iff,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A,X5: A] :
      ( ( A2 = B3 )
     => ( ( fmember @ A @ X5 @ A2 )
        = ( fmember @ A @ X5 @ B3 ) ) ) ).

% eqfset_imp_iff
thf(fact_148_eq__fmem__trans,axiom,
    ! [A: $tType,A3: A,B2: A,A2: fset @ A] :
      ( ( A3 = B2 )
     => ( ( fmember @ A @ B2 @ A2 )
       => ( fmember @ A @ A3 @ A2 ) ) ) ).

% eq_fmem_trans
thf(fact_149_fset__choice,axiom,
    ! [B: $tType,A: $tType,A2: fset @ A,P2: A > B > $o] :
      ( ! [X2: A] :
          ( ( fmember @ A @ X2 @ A2 )
         => ? [X12: B] : ( P2 @ X2 @ X12 ) )
     => ? [F3: A > B] :
        ! [X4: A] :
          ( ( fmember @ A @ X4 @ A2 )
         => ( P2 @ X4 @ ( F3 @ X4 ) ) ) ) ).

% fset_choice
thf(fact_150_fequalityCE,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A,C: A] :
      ( ( A2 = B3 )
     => ( ( ( fmember @ A @ C @ A2 )
         => ~ ( fmember @ A @ C @ B3 ) )
       => ~ ( ~ ( fmember @ A @ C @ A2 )
           => ( fmember @ A @ C @ B3 ) ) ) ) ).

% fequalityCE
thf(fact_151_fset__eqI,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A] :
      ( ! [X2: A] :
          ( ( fmember @ A @ X2 @ A2 )
          = ( fmember @ A @ X2 @ B3 ) )
     => ( A2 = B3 ) ) ).

% fset_eqI
thf(fact_152_femptyE,axiom,
    ! [A: $tType,A3: A] :
      ~ ( fmember @ A @ A3 @ ( bot_bot @ ( fset @ A ) ) ) ).

% femptyE
thf(fact_153_ex__fin__conv,axiom,
    ! [A: $tType,A2: fset @ A] :
      ( ( ? [X: A] : ( fmember @ A @ X @ A2 ) )
      = ( A2
       != ( bot_bot @ ( fset @ A ) ) ) ) ).

% ex_fin_conv
thf(fact_154_equalsffemptyD,axiom,
    ! [A: $tType,A2: fset @ A,A3: A] :
      ( ( A2
        = ( bot_bot @ ( fset @ A ) ) )
     => ~ ( fmember @ A @ A3 @ A2 ) ) ).

% equalsffemptyD
thf(fact_155_equalsffemptyI,axiom,
    ! [A: $tType,A2: fset @ A] :
      ( ! [Y2: A] :
          ~ ( fmember @ A @ Y2 @ A2 )
     => ( A2
        = ( bot_bot @ ( fset @ A ) ) ) ) ).

% equalsffemptyI
thf(fact_156_RuleSystem_OminWait__le__pos,axiom,
    ! [State: $tType,Rule: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,Rs: stream @ Rule,R: Rule,S: State] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
       => ( ( member @ Rule @ R @ ( sset @ Rule @ Rules2 ) )
         => ( ( abstra1874422341nabled @ Rule @ State @ Eff2 @ R @ S )
           => ( ord_less_eq @ nat @ ( abstra1332369113inWait @ Rule @ State @ Eff2 @ Rs @ S ) @ ( abstra2097340358le_pos @ Rule @ Rs @ R ) ) ) ) ) ) ).

% RuleSystem.minWait_le_pos
thf(fact_157_RuleSystem_OminWait__least,axiom,
    ! [State: $tType,Rule: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,N2: nat,Rs: stream @ Rule,S: State] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( abstra1874422341nabled @ Rule @ State @ Eff2 @ ( shd @ Rule @ ( sdrop @ Rule @ N2 @ Rs ) ) @ S )
       => ( ord_less_eq @ nat @ ( abstra1332369113inWait @ Rule @ State @ Eff2 @ Rs @ S ) @ N2 ) ) ) ).

% RuleSystem.minWait_least
thf(fact_158_minus__apply,axiom,
    ! [B: $tType,A: $tType] :
      ( ( minus @ B @ ( type2 @ B ) )
     => ( ( minus_minus @ ( A > B ) )
        = ( ^ [A5: A > B,B6: A > B,X: A] : ( minus_minus @ B @ ( A5 @ X ) @ ( B6 @ X ) ) ) ) ) ).

% minus_apply
thf(fact_159_bot__empty__eq,axiom,
    ! [A: $tType] :
      ( ( bot_bot @ ( A > $o ) )
      = ( ^ [X: A] : ( member @ A @ X @ ( bot_bot @ ( set @ A ) ) ) ) ) ).

% bot_empty_eq
thf(fact_160_Collect__empty__eq__bot,axiom,
    ! [A: $tType,P2: A > $o] :
      ( ( ( collect @ A @ P2 )
        = ( bot_bot @ ( set @ A ) ) )
      = ( P2
        = ( bot_bot @ ( A > $o ) ) ) ) ).

% Collect_empty_eq_bot
thf(fact_161_in__cont__mkTree,axiom,
    ! [S: state,Rs: stream @ rule,T2: abstra2103299360e_tree @ ( product_prod @ state @ rule )] :
      ( ( member @ state @ S @ s )
     => ( ( abstra928354080m_fair @ rule @ rules @ Rs )
       => ( ( fmember @ ( abstra2103299360e_tree @ ( product_prod @ state @ rule ) ) @ T2 @ ( abstra1749095923e_cont @ ( product_prod @ state @ rule ) @ ( abstra1225283448mkTree @ rule @ state @ eff @ Rs @ S ) ) )
         => ? [Sl5: fset @ state,S6: state] :
              ( ( member @ state @ S6 @ s )
              & ( eff @ ( shd @ rule @ ( abstra1259602206m_trim @ rule @ state @ eff @ Rs @ S ) ) @ S @ Sl5 )
              & ( fmember @ state @ S6 @ Sl5 )
              & ( T2
                = ( abstra1225283448mkTree @ rule @ state @ eff @ ( stl @ rule @ ( abstra1259602206m_trim @ rule @ state @ eff @ Rs @ S ) ) @ S6 ) ) ) ) ) ) ).

% in_cont_mkTree
thf(fact_162_is__singletonI,axiom,
    ! [A: $tType,X5: A] : ( is_singleton @ A @ ( insert @ A @ X5 @ ( bot_bot @ ( set @ A ) ) ) ) ).

% is_singletonI
thf(fact_163_fair__stl,axiom,
    ! [Rs: stream @ rule] :
      ( ( abstra928354080m_fair @ rule @ rules @ Rs )
     => ( abstra928354080m_fair @ rule @ rules @ ( stl @ rule @ Rs ) ) ) ).

% fair_stl
thf(fact_164_subset__empty,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A2 @ ( bot_bot @ ( set @ A ) ) )
      = ( A2
        = ( bot_bot @ ( set @ A ) ) ) ) ).

% subset_empty
thf(fact_165_empty__subsetI,axiom,
    ! [A: $tType,A2: set @ A] : ( ord_less_eq @ ( set @ A ) @ ( bot_bot @ ( set @ A ) ) @ A2 ) ).

% empty_subsetI
thf(fact_166_insert__subset,axiom,
    ! [A: $tType,X5: A,A2: set @ A,B3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ ( insert @ A @ X5 @ A2 ) @ B3 )
      = ( ( member @ A @ X5 @ B3 )
        & ( ord_less_eq @ ( set @ A ) @ A2 @ B3 ) ) ) ).

% insert_subset
thf(fact_167_fminus__iff,axiom,
    ! [A: $tType,C: A,A2: fset @ A,B3: fset @ A] :
      ( ( fmember @ A @ C @ ( minus_minus @ ( fset @ A ) @ A2 @ B3 ) )
      = ( ( fmember @ A @ C @ A2 )
        & ~ ( fmember @ A @ C @ B3 ) ) ) ).

% fminus_iff
thf(fact_168_fminusI,axiom,
    ! [A: $tType,C: A,A2: fset @ A,B3: fset @ A] :
      ( ( fmember @ A @ C @ A2 )
     => ( ~ ( fmember @ A @ C @ B3 )
       => ( fmember @ A @ C @ ( minus_minus @ ( fset @ A ) @ A2 @ B3 ) ) ) ) ).

% fminusI
thf(fact_169_fsubsetI,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A] :
      ( ! [X2: A] :
          ( ( fmember @ A @ X2 @ A2 )
         => ( fmember @ A @ X2 @ B3 ) )
     => ( ord_less_eq @ ( fset @ A ) @ A2 @ B3 ) ) ).

% fsubsetI
thf(fact_170_fminus__fempty,axiom,
    ! [A: $tType,A2: fset @ A] :
      ( ( minus_minus @ ( fset @ A ) @ A2 @ ( bot_bot @ ( fset @ A ) ) )
      = A2 ) ).

% fminus_fempty
thf(fact_171_fminus__cancel,axiom,
    ! [A: $tType,A2: fset @ A] :
      ( ( minus_minus @ ( fset @ A ) @ A2 @ A2 )
      = ( bot_bot @ ( fset @ A ) ) ) ).

% fminus_cancel
thf(fact_172_fempty__fminus,axiom,
    ! [A: $tType,A2: fset @ A] :
      ( ( minus_minus @ ( fset @ A ) @ ( bot_bot @ ( fset @ A ) ) @ A2 )
      = ( bot_bot @ ( fset @ A ) ) ) ).

% fempty_fminus
thf(fact_173_fempty__fsubsetI,axiom,
    ! [A: $tType,X5: fset @ A] : ( ord_less_eq @ ( fset @ A ) @ ( bot_bot @ ( fset @ A ) ) @ X5 ) ).

% fempty_fsubsetI
thf(fact_174_fsubset__fempty,axiom,
    ! [A: $tType,A2: fset @ A] :
      ( ( ord_less_eq @ ( fset @ A ) @ A2 @ ( bot_bot @ ( fset @ A ) ) )
      = ( A2
        = ( bot_bot @ ( fset @ A ) ) ) ) ).

% fsubset_fempty
thf(fact_175_singleton__insert__inj__eq_H,axiom,
    ! [A: $tType,A3: A,A2: set @ A,B2: A] :
      ( ( ( insert @ A @ A3 @ A2 )
        = ( insert @ A @ B2 @ ( bot_bot @ ( set @ A ) ) ) )
      = ( ( A3 = B2 )
        & ( ord_less_eq @ ( set @ A ) @ A2 @ ( insert @ A @ B2 @ ( bot_bot @ ( set @ A ) ) ) ) ) ) ).

% singleton_insert_inj_eq'
thf(fact_176_singleton__insert__inj__eq,axiom,
    ! [A: $tType,B2: A,A3: A,A2: set @ A] :
      ( ( ( insert @ A @ B2 @ ( bot_bot @ ( set @ A ) ) )
        = ( insert @ A @ A3 @ A2 ) )
      = ( ( A3 = B2 )
        & ( ord_less_eq @ ( set @ A ) @ A2 @ ( insert @ A @ B2 @ ( bot_bot @ ( set @ A ) ) ) ) ) ) ).

% singleton_insert_inj_eq
thf(fact_177_Diff__eq__empty__iff,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A] :
      ( ( ( minus_minus @ ( set @ A ) @ A2 @ B3 )
        = ( bot_bot @ ( set @ A ) ) )
      = ( ord_less_eq @ ( set @ A ) @ A2 @ B3 ) ) ).

% Diff_eq_empty_iff
thf(fact_178_fminusD2,axiom,
    ! [A: $tType,C: A,A2: fset @ A,B3: fset @ A] :
      ( ( fmember @ A @ C @ ( minus_minus @ ( fset @ A ) @ A2 @ B3 ) )
     => ~ ( fmember @ A @ C @ B3 ) ) ).

% fminusD2
thf(fact_179_fminusD1,axiom,
    ! [A: $tType,C: A,A2: fset @ A,B3: fset @ A] :
      ( ( fmember @ A @ C @ ( minus_minus @ ( fset @ A ) @ A2 @ B3 ) )
     => ( fmember @ A @ C @ A2 ) ) ).

% fminusD1
thf(fact_180_fminusE,axiom,
    ! [A: $tType,C: A,A2: fset @ A,B3: fset @ A] :
      ( ( fmember @ A @ C @ ( minus_minus @ ( fset @ A ) @ A2 @ B3 ) )
     => ~ ( ( fmember @ A @ C @ A2 )
         => ( fmember @ A @ C @ B3 ) ) ) ).

% fminusE
thf(fact_181_fset__mp,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A,X5: A] :
      ( ( ord_less_eq @ ( fset @ A ) @ A2 @ B3 )
     => ( ( fmember @ A @ X5 @ A2 )
       => ( fmember @ A @ X5 @ B3 ) ) ) ).

% fset_mp
thf(fact_182_fin__mono,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A,X5: A] :
      ( ( ord_less_eq @ ( fset @ A ) @ A2 @ B3 )
     => ( ( fmember @ A @ X5 @ A2 )
       => ( fmember @ A @ X5 @ B3 ) ) ) ).

% fin_mono
thf(fact_183_fsubsetD,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A,C: A] :
      ( ( ord_less_eq @ ( fset @ A ) @ A2 @ B3 )
     => ( ( fmember @ A @ C @ A2 )
       => ( fmember @ A @ C @ B3 ) ) ) ).

% fsubsetD
thf(fact_184_fset__rev__mp,axiom,
    ! [A: $tType,X5: A,A2: fset @ A,B3: fset @ A] :
      ( ( fmember @ A @ X5 @ A2 )
     => ( ( ord_less_eq @ ( fset @ A ) @ A2 @ B3 )
       => ( fmember @ A @ X5 @ B3 ) ) ) ).

% fset_rev_mp
thf(fact_185_subset__insertI2,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A,B2: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A2 @ B3 )
     => ( ord_less_eq @ ( set @ A ) @ A2 @ ( insert @ A @ B2 @ B3 ) ) ) ).

% subset_insertI2
thf(fact_186_subset__insertI,axiom,
    ! [A: $tType,B3: set @ A,A3: A] : ( ord_less_eq @ ( set @ A ) @ B3 @ ( insert @ A @ A3 @ B3 ) ) ).

% subset_insertI
thf(fact_187_subset__insert,axiom,
    ! [A: $tType,X5: A,A2: set @ A,B3: set @ A] :
      ( ~ ( member @ A @ X5 @ A2 )
     => ( ( ord_less_eq @ ( set @ A ) @ A2 @ ( insert @ A @ X5 @ B3 ) )
        = ( ord_less_eq @ ( set @ A ) @ A2 @ B3 ) ) ) ).

% subset_insert
thf(fact_188_insert__mono,axiom,
    ! [A: $tType,C4: set @ A,D3: set @ A,A3: A] :
      ( ( ord_less_eq @ ( set @ A ) @ C4 @ D3 )
     => ( ord_less_eq @ ( set @ A ) @ ( insert @ A @ A3 @ C4 ) @ ( insert @ A @ A3 @ D3 ) ) ) ).

% insert_mono
thf(fact_189_RuleSystem__Defs_Ofair__stl,axiom,
    ! [Rule: $tType,Rules2: stream @ Rule,Rs: stream @ Rule] :
      ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
     => ( abstra928354080m_fair @ Rule @ Rules2 @ ( stl @ Rule @ Rs ) ) ) ).

% RuleSystem_Defs.fair_stl
thf(fact_190_double__diff,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A,C4: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A2 @ B3 )
     => ( ( ord_less_eq @ ( set @ A ) @ B3 @ C4 )
       => ( ( minus_minus @ ( set @ A ) @ B3 @ ( minus_minus @ ( set @ A ) @ C4 @ A2 ) )
          = A2 ) ) ) ).

% double_diff
thf(fact_191_Diff__subset,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A] : ( ord_less_eq @ ( set @ A ) @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) @ A2 ) ).

% Diff_subset
thf(fact_192_Diff__mono,axiom,
    ! [A: $tType,A2: set @ A,C4: set @ A,D3: set @ A,B3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A2 @ C4 )
     => ( ( ord_less_eq @ ( set @ A ) @ D3 @ B3 )
       => ( ord_less_eq @ ( set @ A ) @ ( minus_minus @ ( set @ A ) @ A2 @ B3 ) @ ( minus_minus @ ( set @ A ) @ C4 @ D3 ) ) ) ) ).

% Diff_mono
thf(fact_193_countable__subset,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A2 @ B3 )
     => ( ( countable_countable @ A @ B3 )
       => ( countable_countable @ A @ A2 ) ) ) ).

% countable_subset
thf(fact_194_subset__singleton__iff,axiom,
    ! [A: $tType,X6: set @ A,A3: A] :
      ( ( ord_less_eq @ ( set @ A ) @ X6 @ ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) )
      = ( ( X6
          = ( bot_bot @ ( set @ A ) ) )
        | ( X6
          = ( insert @ A @ A3 @ ( bot_bot @ ( set @ A ) ) ) ) ) ) ).

% subset_singleton_iff
thf(fact_195_subset__singletonD,axiom,
    ! [A: $tType,A2: set @ A,X5: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A2 @ ( insert @ A @ X5 @ ( bot_bot @ ( set @ A ) ) ) )
     => ( ( A2
          = ( bot_bot @ ( set @ A ) ) )
        | ( A2
          = ( insert @ A @ X5 @ ( bot_bot @ ( set @ A ) ) ) ) ) ) ).

% subset_singletonD
thf(fact_196_subset__Diff__insert,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A,X5: A,C4: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A2 @ ( minus_minus @ ( set @ A ) @ B3 @ ( insert @ A @ X5 @ C4 ) ) )
      = ( ( ord_less_eq @ ( set @ A ) @ A2 @ ( minus_minus @ ( set @ A ) @ B3 @ C4 ) )
        & ~ ( member @ A @ X5 @ A2 ) ) ) ).

% subset_Diff_insert
thf(fact_197_is__singletonI_H,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( A2
       != ( bot_bot @ ( set @ A ) ) )
     => ( ! [X2: A,Y2: A] :
            ( ( member @ A @ X2 @ A2 )
           => ( ( member @ A @ Y2 @ A2 )
             => ( X2 = Y2 ) ) )
       => ( is_singleton @ A @ A2 ) ) ) ).

% is_singletonI'
thf(fact_198_Diff__single__insert,axiom,
    ! [A: $tType,A2: set @ A,X5: A,B3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ ( minus_minus @ ( set @ A ) @ A2 @ ( insert @ A @ X5 @ ( bot_bot @ ( set @ A ) ) ) ) @ B3 )
     => ( ord_less_eq @ ( set @ A ) @ A2 @ ( insert @ A @ X5 @ B3 ) ) ) ).

% Diff_single_insert
thf(fact_199_subset__insert__iff,axiom,
    ! [A: $tType,A2: set @ A,X5: A,B3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A2 @ ( insert @ A @ X5 @ B3 ) )
      = ( ( ( member @ A @ X5 @ A2 )
         => ( ord_less_eq @ ( set @ A ) @ ( minus_minus @ ( set @ A ) @ A2 @ ( insert @ A @ X5 @ ( bot_bot @ ( set @ A ) ) ) ) @ B3 ) )
        & ( ~ ( member @ A @ X5 @ A2 )
         => ( ord_less_eq @ ( set @ A ) @ A2 @ B3 ) ) ) ) ).

% subset_insert_iff
thf(fact_200_fun__diff__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( minus @ B @ ( type2 @ B ) )
     => ( ( minus_minus @ ( A > B ) )
        = ( ^ [A5: A > B,B6: A > B,X: A] : ( minus_minus @ B @ ( A5 @ X ) @ ( B6 @ X ) ) ) ) ) ).

% fun_diff_def
thf(fact_201_RuleSystem_Oin__cont__mkTree,axiom,
    ! [Rule: $tType,State: $tType,Eff2: Rule > State > ( fset @ State ) > $o,Rules2: stream @ Rule,S3: set @ State,S: State,Rs: stream @ Rule,T2: abstra2103299360e_tree @ ( product_prod @ State @ Rule )] :
      ( ( abstra1326562878System @ Rule @ State @ Eff2 @ Rules2 @ S3 )
     => ( ( member @ State @ S @ S3 )
       => ( ( abstra928354080m_fair @ Rule @ Rules2 @ Rs )
         => ( ( fmember @ ( abstra2103299360e_tree @ ( product_prod @ State @ Rule ) ) @ T2 @ ( abstra1749095923e_cont @ ( product_prod @ State @ Rule ) @ ( abstra1225283448mkTree @ Rule @ State @ Eff2 @ Rs @ S ) ) )
           => ? [Sl5: fset @ State,S6: State] :
                ( ( member @ State @ S6 @ S3 )
                & ( Eff2 @ ( shd @ Rule @ ( abstra1259602206m_trim @ Rule @ State @ Eff2 @ Rs @ S ) ) @ S @ Sl5 )
                & ( fmember @ State @ S6 @ Sl5 )
                & ( T2
                  = ( abstra1225283448mkTree @ Rule @ State @ Eff2 @ ( stl @ Rule @ ( abstra1259602206m_trim @ Rule @ State @ Eff2 @ Rs @ S ) ) @ S6 ) ) ) ) ) ) ) ).

% RuleSystem.in_cont_mkTree
thf(fact_202_is__singleton__def,axiom,
    ! [A: $tType] :
      ( ( is_singleton @ A )
      = ( ^ [A5: set @ A] :
          ? [X: A] :
            ( A5
            = ( insert @ A @ X @ ( bot_bot @ ( set @ A ) ) ) ) ) ) ).

% is_singleton_def
thf(fact_203_is__singletonE,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( is_singleton @ A @ A2 )
     => ~ ! [X2: A] :
            ( A2
           != ( insert @ A @ X2 @ ( bot_bot @ ( set @ A ) ) ) ) ) ).

% is_singletonE
thf(fact_204_mkTree_Osimps_I2_J,axiom,
    ! [Rs: stream @ rule,S: state] :
      ( ( abstra1749095923e_cont @ ( product_prod @ state @ rule ) @ ( abstra1225283448mkTree @ rule @ state @ eff @ Rs @ S ) )
      = ( fimage @ state @ ( abstra2103299360e_tree @ ( product_prod @ state @ rule ) ) @ ( abstra1225283448mkTree @ rule @ state @ eff @ ( stl @ rule @ ( abstra1259602206m_trim @ rule @ state @ eff @ Rs @ S ) ) ) @ ( abstra1276541928ickEff @ rule @ state @ eff @ ( shd @ rule @ ( abstra1259602206m_trim @ rule @ state @ eff @ Rs @ S ) ) @ S ) ) ) ).

% mkTree.simps(2)
thf(fact_205_sset__induct,axiom,
    ! [A: $tType,Y: A,S: stream @ A,P2: A > ( stream @ A ) > $o] :
      ( ( member @ A @ Y @ ( sset @ A @ S ) )
     => ( ! [S5: stream @ A] : ( P2 @ ( shd @ A @ S5 ) @ S5 )
       => ( ! [S5: stream @ A,Y2: A] :
              ( ( member @ A @ Y2 @ ( sset @ A @ ( stl @ A @ S5 ) ) )
             => ( ( P2 @ Y2 @ ( stl @ A @ S5 ) )
               => ( P2 @ Y2 @ S5 ) ) )
         => ( P2 @ Y @ S ) ) ) ) ).

% sset_induct
thf(fact_206_stake__pos__minWait,axiom,
    ! [Rs: stream @ rule,S: state,R: rule] :
      ( ( abstra928354080m_fair @ rule @ rules @ Rs )
     => ( ( ord_less @ nat @ ( abstra1332369113inWait @ rule @ state @ eff @ Rs @ S ) @ ( abstra2097340358le_pos @ rule @ Rs @ R ) )
       => ( ( member @ rule @ R @ ( sset @ rule @ rules ) )
         => ( ( member @ state @ S @ s )
           => ( ( abstra2097340358le_pos @ rule @ ( stl @ rule @ ( abstra1259602206m_trim @ rule @ state @ eff @ Rs @ S ) ) @ R )
              = ( minus_minus @ nat @ ( abstra2097340358le_pos @ rule @ Rs @ R ) @ ( suc @ ( abstra1332369113inWait @ rule @ state @ eff @ Rs @ S ) ) ) ) ) ) ) ) ).

% stake_pos_minWait
thf(fact_207_subsetI,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A] :
      ( ! [X2: A] :
          ( ( member @ A @ X2 @ A2 )
         => ( member @ A @ X2 @ B3 ) )
     => ( ord_less_eq @ ( set @ A ) @ A2 @ B3 ) ) ).

% subsetI
thf(fact_208_subset__antisym,axiom,
    ! [A: $tType,A2: set @ A,B3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A2 @ B3 )
     => ( ( ord_less_eq @ ( set @ A ) @ B3 @ A2 )
       => ( A2 = B3 ) ) ) ).

% subset_antisym
thf(fact_209_fsubset__antisym,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A] :
      ( ( ord_less_eq @ ( fset @ A ) @ A2 @ B3 )
     => ( ( ord_less_eq @ ( fset @ A ) @ B3 @ A2 )
       => ( A2 = B3 ) ) ) ).

% fsubset_antisym
thf(fact_210_fminus__idemp,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A] :
      ( ( minus_minus @ ( fset @ A ) @ ( minus_minus @ ( fset @ A ) @ A2 @ B3 ) @ B3 )
      = ( minus_minus @ ( fset @ A ) @ A2 @ B3 ) ) ).

% fminus_idemp
thf(fact_211_fimage__eqI,axiom,
    ! [A: $tType,B: $tType,B2: A,F: B > A,X5: B,A2: fset @ B] :
      ( ( B2
        = ( F @ X5 ) )
     => ( ( fmember @ B @ X5 @ A2 )
       => ( fmember @ A @ B2 @ ( fimage @ B @ A @ F @ A2 ) ) ) ) ).

% fimage_eqI
thf(fact_212_fimage__is__fempty,axiom,
    ! [A: $tType,B: $tType,F: B > A,A2: fset @ B] :
      ( ( ( fimage @ B @ A @ F @ A2 )
        = ( bot_bot @ ( fset @ A ) ) )
      = ( A2
        = ( bot_bot @ ( fset @ B ) ) ) ) ).

% fimage_is_fempty
thf(fact_213_fempty__is__fimage,axiom,
    ! [A: $tType,B: $tType,F: B > A,A2: fset @ B] :
      ( ( ( bot_bot @ ( fset @ A ) )
        = ( fimage @ B @ A @ F @ A2 ) )
      = ( A2
        = ( bot_bot @ ( fset @ B ) ) ) ) ).

% fempty_is_fimage
thf(fact_214_fimage__fempty,axiom,
    ! [B: $tType,A: $tType,F: B > A] :
      ( ( fimage @ B @ A @ F @ ( bot_bot @ ( fset @ B ) ) )
      = ( bot_bot @ ( fset @ A ) ) ) ).

% fimage_fempty
thf(fact_215_sdrop__simps_I2_J,axiom,
    ! [A: $tType,N2: nat,S: stream @ A] :
      ( ( stl @ A @ ( sdrop @ A @ N2 @ S ) )
      = ( sdrop @ A @ ( suc @ N2 ) @ S ) ) ).

% sdrop_simps(2)
thf(fact_216_fimage__fminus__fsubset,axiom,
    ! [A: $tType,B: $tType,F: B > A,A2: fset @ B,B3: fset @ B] : ( ord_less_eq @ ( fset @ A ) @ ( minus_minus @ ( fset @ A ) @ ( fimage @ B @ A @ F @ A2 ) @ ( fimage @ B @ A @ F @ B3 ) ) @ ( fimage @ B @ A @ F @ ( minus_minus @ ( fset @ B ) @ A2 @ B3 ) ) ) ).

% fimage_fminus_fsubset
thf(fact_217_fminus__fsubset,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A] : ( ord_less_eq @ ( fset @ A ) @ ( minus_minus @ ( fset @ A ) @ A2 @ B3 ) @ A2 ) ).

% fminus_fsubset
thf(fact_218_double__fminus,axiom,
    ! [A: $tType,A2: fset @ A,B3: fset @ A,C4: fset @ A] :
      ( ( ord_less_eq @ ( fset @ A ) @ A2 @ B3 )
     => ( ( ord_less_eq @ ( fset @ A ) @ B3 @ C4 )
       => ( ( minus_minus @ ( fset @ A ) @ B3 @ ( minus_minus @ ( fset @ A ) @ C4 @ A2 ) )
          = A2 ) ) ) ).

% double_fminus
thf(fact_219_fminus__mono,axiom,
    ! [A: $tType,A2: fset @ A,C4: fset @ A,D3: fset @ A,B3: fset @ A] :
      ( ( ord_less_eq @ ( fset @ A ) @ A2 @ C4 )
     => ( ( ord_less_eq @ ( fset @ A ) @ D3 @ B3 )
       => ( ord_less_eq @ ( fset @ A ) @ ( minus_minus @ ( fset @ A ) @ A2 @ B3 ) @ ( minus_minus @ ( fset @ A ) @ C4 @ D3 ) ) ) ) ).

% fminus_mono
thf(fact_220_leD,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [Y: A,X5: A] :
          ( ( ord_less_eq @ A @ Y @ X5 )
         => ~ ( ord_less @ A @ X5 @ Y ) ) ) ).

% leD
thf(fact_221_leI,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ~ ( ord_less @ A @ X5 @ Y )
         => ( ord_less_eq @ A @ Y @ X5 ) ) ) ).

% leI
thf(fact_222_le__less,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ord_less_eq @ A )
        = ( ^ [X: A,Y4: A] :
              ( ( ord_less @ A @ X @ Y4 )
              | ( X = Y4 ) ) ) ) ) ).

% le_less
thf(fact_223_less__le,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ord_less @ A )
        = ( ^ [X: A,Y4: A] :
              ( ( ord_less_eq @ A @ X @ Y4 )
              & ( X != Y4 ) ) ) ) ) ).

% less_le
thf(fact_224_order__le__less__subst1,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( order @ B @ ( type2 @ B ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A3: A,F: B > A,B2: B,C: B] :
          ( ( ord_less_eq @ A @ A3 @ ( F @ B2 ) )
         => ( ( ord_less @ B @ B2 @ C )
           => ( ! [X2: B,Y2: B] :
                  ( ( ord_less @ B @ X2 @ Y2 )
                 => ( ord_less @ A @ ( F @ X2 ) @ ( F @ Y2 ) ) )
             => ( ord_less @ A @ A3 @ ( F @ C ) ) ) ) ) ) ).

% order_le_less_subst1
thf(fact_225_order__le__less__subst2,axiom,
    ! [A: $tType,C3: $tType] :
      ( ( ( order @ C3 @ ( type2 @ C3 ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A3: A,B2: A,F: A > C3,C: C3] :
          ( ( ord_less_eq @ A @ A3 @ B2 )
         => ( ( ord_less @ C3 @ ( F @ B2 ) @ C )
           => ( ! [X2: A,Y2: A] :
                  ( ( ord_less_eq @ A @ X2 @ Y2 )
                 => ( ord_less_eq @ C3 @ ( F @ X2 ) @ ( F @ Y2 ) ) )
             => ( ord_less @ C3 @ ( F @ A3 ) @ C ) ) ) ) ) ).

% order_le_less_subst2
thf(fact_226_order__less__le__subst1,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( order @ B @ ( type2 @ B ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A3: A,F: B > A,B2: B,C: B] :
          ( ( ord_less @ A @ A3 @ ( F @ B2 ) )
         => ( ( ord_less_eq @ B @ B2 @ C )
           => ( ! [X2: B,Y2: B] :
                  ( ( ord_less_eq @ B @ X2 @ Y2 )
                 => ( ord_less_eq @ A @ ( F @ X2 ) @ ( F @ Y2 ) ) )
             => ( ord_less @ A @ A3 @ ( F @ C ) ) ) ) ) ) ).

% order_less_le_subst1
thf(fact_227_order__less__le__subst2,axiom,
    ! [A: $tType,C3: $tType] :
      ( ( ( order @ C3 @ ( type2 @ C3 ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A3: A,B2: A,F: A > C3,C: C3] :
          ( ( ord_less @ A @ A3 @ B2 )
         => ( ( ord_less_eq @ C3 @ ( F @ B2 ) @ C )
           => ( ! [X2: A,Y2: A] :
                  ( ( ord_less @ A @ X2 @ Y2 )
                 => ( ord_less @ C3 @ ( F @ X2 ) @ ( F @ Y2 ) ) )
             => ( ord_less @ C3 @ ( F @ A3 ) @ C ) ) ) ) ) ).

% order_less_le_subst2
thf(fact_228_not__le,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ( ~ ( ord_less_eq @ A @ X5 @ Y ) )
          = ( ord_less @ A @ Y @ X5 ) ) ) ).

% not_le
thf(fact_229_not__less,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ( ~ ( ord_less @ A @ X5 @ Y ) )
          = ( ord_less_eq @ A @ Y @ X5 ) ) ) ).

% not_less
thf(fact_230_le__neq__trans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A3: A,B2: A] :
          ( ( ord_less_eq @ A @ A3 @ B2 )
         => ( ( A3 != B2 )
           => ( ord_less @ A @ A3 @ B2 ) ) ) ) ).

% le_neq_trans
thf(fact_231_less__imp__le,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ( ord_less @ A @ X5 @ Y )
         => ( ord_less_eq @ A @ X5 @ Y ) ) ) ).

% less_imp_le
thf(fact_232_antisym__conv1,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ~ ( ord_less @ A @ X5 @ Y )
         => ( ( ord_less_eq @ A @ X5 @ Y )
            = ( X5 = Y ) ) ) ) ).

% antisym_conv1
thf(fact_233_antisym__conv2,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ( ord_less_eq @ A @ X5 @ Y )
         => ( ( ~ ( ord_less @ A @ X5 @ Y ) )
            = ( X5 = Y ) ) ) ) ).

% antisym_conv2
thf(fact_234_le__less__trans,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A,Z2: A] :
          ( ( ord_less_eq @ A @ X5 @ Y )
         => ( ( ord_less @ A @ Y @ Z2 )
           => ( ord_less @ A @ X5 @ Z2 ) ) ) ) ).

% le_less_trans
thf(fact_235_less__le__trans,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A,Z2: A] :
          ( ( ord_less @ A @ X5 @ Y )
         => ( ( ord_less_eq @ A @ Y @ Z2 )
           => ( ord_less @ A @ X5 @ Z2 ) ) ) ) ).

% less_le_trans
thf(fact_236_dense__ge,axiom,
    ! [A: $tType] :
      ( ( dense_linorder @ A @ ( type2 @ A ) )
     => ! [Z2: A,Y: A] :
          ( ! [X2: A] :
              ( ( ord_less @ A @ Z2 @ X2 )
             => ( ord_less_eq @ A @ Y @ X2 ) )
         => ( ord_less_eq @ A @ Y @ Z2 ) ) ) ).

% dense_ge
thf(fact_237_dense__le,axiom,
    ! [A: $tType] :
      ( ( dense_linorder @ A @ ( type2 @ A ) )
     => ! [Y: A,Z2: A] :
          ( ! [X2: A] :
              ( ( ord_less @ A @ X2 @ Y )
             => ( ord_less_eq @ A @ X2 @ Z2 ) )
         => ( ord_less_eq @ A @ Y @ Z2 ) ) ) ).

% dense_le
thf(fact_238_le__less__linear,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ( ord_less_eq @ A @ X5 @ Y )
          | ( ord_less @ A @ Y @ X5 ) ) ) ).

% le_less_linear
thf(fact_239_le__imp__less__or__eq,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A] :
          ( ( ord_less_eq @ A @ X5 @ Y )
         => ( ( ord_less @ A @ X5 @ Y )
            | ( X5 = Y ) ) ) ) ).

% le_imp_less_or_eq
thf(fact_240_less__le__not__le,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ( ( ord_less @ A )
        = ( ^ [X: A,Y4: A] :
              ( ( ord_less_eq @ A @ X @ Y4 )
              & ~ ( ord_less_eq @ A @ Y4 @ X ) ) ) ) ) ).

% less_le_not_le
thf(fact_241_not__le__imp__less,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [Y: A,X5: A] :
          ( ~ ( ord_less_eq @ A @ Y @ X5 )
         => ( ord_less @ A @ X5 @ Y ) ) ) ).

% not_le_imp_less
thf(fact_242_order_Ostrict__trans1,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A3: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A3 @ B2 )
         => ( ( ord_less @ A @ B2 @ C )
           => ( ord_less @ A @ A3 @ C ) ) ) ) ).

% order.strict_trans1
thf(fact_243_order_Ostrict__trans2,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A3: A,B2: A,C: A] :
          ( ( ord_less @ A @ A3 @ B2 )
         => ( ( ord_less_eq @ A @ B2 @ C )
           => ( ord_less @ A @ A3 @ C ) ) ) ) ).

% order.strict_trans2
thf(fact_244_order_Oorder__iff__strict,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ord_less_eq @ A )
        = ( ^ [A6: A,B7: A] :
              ( ( ord_less @ A @ A6 @ B7 )
              | ( A6 = B7 ) ) ) ) ) ).

% order.order_iff_strict
thf(fact_245_order_Ostrict__iff__order,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ord_less @ A )
        = ( ^ [A6: A,B7: A] :
              ( ( ord_less_eq @ A @ A6 @ B7 )
              & ( A6 != B7 ) ) ) ) ) ).

% order.strict_iff_order
thf(fact_246_dual__order_Ostrict__trans1,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A3: A,C: A] :
          ( ( ord_less_eq @ A @ B2 @ A3 )
         => ( ( ord_less @ A @ C @ B2 )
           => ( ord_less @ A @ C @ A3 ) ) ) ) ).

% dual_order.strict_trans1
thf(fact_247_dual__order_Ostrict__trans2,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A3: A,C: A] :
          ( ( ord_less @ A @ B2 @ A3 )
         => ( ( ord_less_eq @ A @ C @ B2 )
           => ( ord_less @ A @ C @ A3 ) ) ) ) ).

% dual_order.strict_trans2
thf(fact_248_dense__ge__bounded,axiom,
    ! [A: $tType] :
      ( ( dense_linorder @ A @ ( type2 @ A ) )
     => ! [Z2: A,X5: A,Y: A] :
          ( ( ord_less @ A @ Z2 @ X5 )
         => ( ! [W: A] :
                ( ( ord_less @ A @ Z2 @ W )
               => ( ( ord_less @ A @ W @ X5 )
                 => ( ord_less_eq @ A @ Y @ W ) ) )
           => ( ord_less_eq @ A @ Y @ Z2 ) ) ) ) ).

% dense_ge_bounded
thf(fact_249_dense__le__bounded,axiom,
    ! [A: $tType] :
      ( ( dense_linorder @ A @ ( type2 @ A ) )
     => ! [X5: A,Y: A,Z2: A] :
          ( ( ord_less @ A @ X5 @ Y )
         => ( ! [W: A] :
                ( ( ord_less @ A @ X5 @ W )
               => ( ( ord_less @ A @ W @ Y )
                 => ( ord_less_eq @ A @ W @ Z2 ) ) )
           => ( ord_less_eq @ A @ Y @ Z2 ) ) ) ) ).

% dense_le_bounded
thf(fact_250_order_Ostrict__implies__order,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A3: A,B2: A] :
          ( ( ord_less @ A @ A3 @ B2 )
         => ( ord_less_eq @ A @ A3 @ B2 ) ) ) ).

% order.strict_implies_order
thf(fact_251_dual__order_Oorder__iff__strict,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ord_less_eq @ A )
        = ( ^ [B7: A,A6: A] :
              ( ( ord_less @ A @ B7 @ A6 )
              | ( A6 = B7 ) ) ) ) ) ).

% dual_order.order_iff_strict
thf(fact_252_dual__order_Ostrict__iff__order,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ord_less @ A )
        = ( ^ [B7: A,A6: A] :
              ( ( ord_less_eq @ A @ B7 @ A6 )
              & ( A6 != B7 ) ) ) ) ) ).

% dual_order.strict_iff_order
thf(fact_253_dual__order_Ostrict__implies__order,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A3: A] :
          ( ( ord_less @ A @ B2 @ A3 )
         => ( ord_less_eq @ A @ B2 @ A3 ) ) ) ).

% dual_order.strict_implies_order
thf(fact_254_order_Onot__eq__order__implies__strict,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A3: A,B2: A] :
          ( ( A3 != B2 )
         => ( ( ord_less_eq @ A @ A3 @ B2 )
           => ( ord_less @ A @ A3 @ B2 ) ) ) ) ).

% order.not_eq_order_implies_strict
thf(fact_255_subset__fimage__iff,axiom,
    ! [A: $tType,B: $tType,B3: fset @ A,F: B > A,A2: fset @ B] :
      ( ( ord_less_eq @ ( fset @ A ) @ B3 @ ( fimage @ B @ A @ F @ A2 ) )
      = ( ? [AA: fset @ B] :
            ( ( ord_less_eq @ ( fset @ B ) @ AA @ A2 )
            & ( B3
              = ( fimage @ B @ A @ F @ AA ) ) ) ) ) ).

% subset_fimage_iff

%----Type constructors (43)
thf(tcon_Product__Type_Oprod___Finite__Set_Ofinite,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( ( finite_finite @ A7 @ ( type2 @ A7 ) )
        & ( finite_finite @ A8 @ ( type2 @ A8 ) ) )
     => ( finite_finite @ ( product_prod @ A7 @ A8 ) @ ( type2 @ ( product_prod @ A7 @ A8 ) ) ) ) ).

thf(tcon_FSet_Ofset___Finite__Set_Ofinite_1,axiom,
    ! [A7: $tType] :
      ( ( finite_finite @ A7 @ ( type2 @ A7 ) )
     => ( finite_finite @ ( fset @ A7 ) @ ( type2 @ ( fset @ A7 ) ) ) ) ).

thf(tcon_HOL_Obool___Finite__Set_Ofinite_2,axiom,
    finite_finite @ $o @ ( type2 @ $o ) ).

thf(tcon_Set_Oset___Finite__Set_Ofinite_3,axiom,
    ! [A7: $tType] :
      ( ( finite_finite @ A7 @ ( type2 @ A7 ) )
     => ( finite_finite @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ) ).

thf(tcon_fun___Finite__Set_Ofinite_4,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( ( finite_finite @ A7 @ ( type2 @ A7 ) )
        & ( finite_finite @ A8 @ ( type2 @ A8 ) ) )
     => ( finite_finite @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Oorder__bot,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( order_bot @ A8 @ ( type2 @ A8 ) )
     => ( order_bot @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Countable_Ocountable,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( ( finite_finite @ A7 @ ( type2 @ A7 ) )
        & ( countable @ A8 @ ( type2 @ A8 ) ) )
     => ( countable @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Opreorder,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( preorder @ A8 @ ( type2 @ A8 ) )
     => ( preorder @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( order @ A8 @ ( type2 @ A8 ) )
     => ( order @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Oord,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( ord @ A8 @ ( type2 @ A8 ) )
     => ( ord @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Obot,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( bot @ A8 @ ( type2 @ A8 ) )
     => ( bot @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Groups_Ominus,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( minus @ A8 @ ( type2 @ A8 ) )
     => ( minus @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_Nat_Onat___Orderings_Oorder__bot_5,axiom,
    order_bot @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Countable_Ocountable_6,axiom,
    countable @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Opreorder_7,axiom,
    preorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Olinorder,axiom,
    linorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oorder_8,axiom,
    order @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oord_9,axiom,
    ord @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Obot_10,axiom,
    bot @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Ominus_11,axiom,
    minus @ nat @ ( type2 @ nat ) ).

thf(tcon_Set_Oset___Orderings_Oorder__bot_12,axiom,
    ! [A7: $tType] : ( order_bot @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Countable_Ocountable_13,axiom,
    ! [A7: $tType] :
      ( ( finite_finite @ A7 @ ( type2 @ A7 ) )
     => ( countable @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ) ).

thf(tcon_Set_Oset___Orderings_Opreorder_14,axiom,
    ! [A7: $tType] : ( preorder @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oorder_15,axiom,
    ! [A7: $tType] : ( order @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oord_16,axiom,
    ! [A7: $tType] : ( ord @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Obot_17,axiom,
    ! [A7: $tType] : ( bot @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Groups_Ominus_18,axiom,
    ! [A7: $tType] : ( minus @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_HOL_Obool___Orderings_Oorder__bot_19,axiom,
    order_bot @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Countable_Ocountable_20,axiom,
    countable @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Opreorder_21,axiom,
    preorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Olinorder_22,axiom,
    linorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oorder_23,axiom,
    order @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oord_24,axiom,
    ord @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Obot_25,axiom,
    bot @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Groups_Ominus_26,axiom,
    minus @ $o @ ( type2 @ $o ) ).

thf(tcon_FSet_Ofset___Orderings_Oorder__bot_27,axiom,
    ! [A7: $tType] : ( order_bot @ ( fset @ A7 ) @ ( type2 @ ( fset @ A7 ) ) ) ).

thf(tcon_FSet_Ofset___Countable_Ocountable_28,axiom,
    ! [A7: $tType] :
      ( ( finite_finite @ A7 @ ( type2 @ A7 ) )
     => ( countable @ ( fset @ A7 ) @ ( type2 @ ( fset @ A7 ) ) ) ) ).

thf(tcon_FSet_Ofset___Orderings_Opreorder_29,axiom,
    ! [A7: $tType] : ( preorder @ ( fset @ A7 ) @ ( type2 @ ( fset @ A7 ) ) ) ).

thf(tcon_FSet_Ofset___Orderings_Oorder_30,axiom,
    ! [A7: $tType] : ( order @ ( fset @ A7 ) @ ( type2 @ ( fset @ A7 ) ) ) ).

thf(tcon_FSet_Ofset___Orderings_Oord_31,axiom,
    ! [A7: $tType] : ( ord @ ( fset @ A7 ) @ ( type2 @ ( fset @ A7 ) ) ) ).

thf(tcon_FSet_Ofset___Orderings_Obot_32,axiom,
    ! [A7: $tType] : ( bot @ ( fset @ A7 ) @ ( type2 @ ( fset @ A7 ) ) ) ).

thf(tcon_FSet_Ofset___Groups_Ominus_33,axiom,
    ! [A7: $tType] : ( minus @ ( fset @ A7 ) @ ( type2 @ ( fset @ A7 ) ) ) ).

thf(tcon_Product__Type_Oprod___Countable_Ocountable_34,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( ( countable @ A7 @ ( type2 @ A7 ) )
        & ( countable @ A8 @ ( type2 @ A8 ) ) )
     => ( countable @ ( product_prod @ A7 @ A8 ) @ ( type2 @ ( product_prod @ A7 @ A8 ) ) ) ) ).

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P2: $o] :
      ( ( P2 = $true )
      | ( P2 = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X5: A,Y: A] :
      ( ( if @ A @ $false @ X5 @ Y )
      = Y ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X5: A,Y: A] :
      ( ( if @ A @ $true @ X5 @ Y )
      = X5 ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    ! [X2: rule] :
      ( ( member @ rule @ X2 @ ( sset @ rule @ rules ) )
     => ( abstra726722745urated @ rule @ state @ eff @ X2 @ steps ) ) ).

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