% This file was generated by Isabelle's Sledgehammer. 2021-06-07 09:39:21.267

% Could-be-implicit typings (31)
tff(ty_t_FWState_Onew__thread__action,type,(
    new_thread_action: ( $tType * $tType * $tType ) > $tType )).

tff(ty_t_FWState_Oconditional__action,type,(
    conditional_action: $tType > $tType )).

tff(ty_t_FWState_Owait__set__action,type,(
    wait_set_action: ( $tType * $tType ) > $tType )).

tff(ty_t_FWState_Ointerrupt__action,type,(
    interrupt_action: $tType > $tType )).

tff(ty_t_Code__Numeral_Onatural,type,(
    code_natural: $tType )).

tff(ty_t_Code__Numeral_Ointeger,type,(
    code_integer: $tType )).

tff(ty_t_Code__Evaluation_Oterm,type,(
    code_term: $tType )).

tff(ty_t_FWState_Olock__action,type,(
    lock_action: $tType )).

tff(ty_t_Product__Type_Ounit,type,(
    product_unit: $tType )).

tff(ty_t_Product__Type_Oprod,type,(
    product_prod: ( $tType * $tType ) > $tType )).

tff(ty_t_Typerep_Otyperep,type,(
    typerep: $tType )).

tff(ty_t_String_Oliteral,type,(
    literal: $tType )).

tff(ty_t_Predicate_Opred,type,(
    pred: $tType > $tType )).

tff(ty_t_Predicate_Oseq,type,(
    seq: $tType > $tType )).

tff(ty_t_Option_Ooption,type,(
    option: $tType > $tType )).

tff(ty_t_FinFun_Ofinfun,type,(
    finfun: ( $tType * $tType ) > $tType )).

tff(ty_t_Filter_Ofilter,type,(
    filter: $tType > $tType )).

tff(ty_t_List_Olist,type,(
    list: $tType > $tType )).

tff(ty_t_HOL_Obool,type,(
    bool: $tType )).

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

tff(ty_t_Num_Onum,type,(
    num: $tType )).

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

tff(ty_t_Int_Oint,type,(
    int: $tType )).

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

tff(ty_t_fun,type,(
    fun: ( $tType * $tType ) > $tType )).

tff(ty_tf_f,type,(
    f: $tType )).

tff(ty_tf_e,type,(
    e: $tType )).

tff(ty_tf_d,type,(
    d: $tType )).

tff(ty_tf_c,type,(
    c: $tType )).

tff(ty_tf_b,type,(
    b: $tType )).

tff(ty_tf_a,type,(
    a: $tType )).

% Explicit typings (260)
tff(sy_cl_Cardinality_Ocard__UNIV,type,(
    card_UNIV: 
      !>[A: $tType] : $o )).

tff(sy_cl_Enum_Oenum,type,(
    enum: 
      !>[A: $tType] : $o )).

tff(sy_cl_Code__Evaluation_Oterm__of,type,(
    code_term_of: 
      !>[A: $tType] : $o )).

tff(sy_cl_Lattices_Obounded__lattice,type,(
    bounded_lattice: 
      !>[A: $tType] : $o )).

tff(sy_cl_HOL_Otype,type,(
    type: 
      !>[A: $tType] : $o )).

tff(sy_cl_HOL_Oequal,type,(
    cl_HOL_Oequal: 
      !>[A: $tType] : $o )).

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

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

tff(sy_cl_Typerep_Otyperep,type,(
    typerep2: 
      !>[A: $tType] : $o )).

tff(sy_cl_Lattices_Olattice,type,(
    lattice: 
      !>[A: $tType] : $o )).

tff(sy_cl_Groups_Omonoid__add,type,(
    monoid_add: 
      !>[A: $tType] : $o )).

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

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

tff(sy_cl_Lattices_Osemilattice__inf,type,(
    semilattice_inf: 
      !>[A: $tType] : $o )).

tff(sy_cl_Lattices_Osemilattice__sup,type,(
    semilattice_sup: 
      !>[A: $tType] : $o )).

tff(sy_cl_Quickcheck__Random_Orandom,type,(
    quickcheck_random: 
      !>[A: $tType] : $o )).

tff(sy_cl_Lattices_Obounded__lattice__top,type,(
    bounded_lattice_top: 
      !>[A: $tType] : $o )).

tff(sy_cl_Quickcheck__Exhaustive_Oexhaustive,type,(
    quickc658316121487927005ustive: 
      !>[A: $tType] : $o )).

tff(sy_cl_Lattices_Obounded__semilattice__sup__bot,type,(
    bounde4967611905675639751up_bot: 
      !>[A: $tType] : $o )).

tff(sy_cl_Quickcheck__Exhaustive_Ofull__exhaustive,type,(
    quickc3360725361186068524ustive: 
      !>[A: $tType] : $o )).

tff(sy_c_Auxiliary_Ortrancl3p,type,(
    rtrancl3p: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,fun(B,fun(A,bool))) * A * list(B) * A ) > $o ) )).

tff(sy_c_BNF__Cardinal__Order__Relation_OrelChain,type,(
    bNF_Ca3754400796208372196lChain: 
      !>[A: $tType,B: $tType] :
        ( ( set(product_prod(A,A)) * fun(A,B) ) > $o ) )).

tff(sy_c_BNF__Def_OGr,type,(
    bNF_Gr: 
      !>[A: $tType,B: $tType] :
        ( ( set(A) * fun(A,B) ) > set(product_prod(A,B)) ) )).

tff(sy_c_BNF__Def_OGrp,type,(
    bNF_Grp: 
      !>[A: $tType,B: $tType] :
        ( ( set(A) * fun(A,B) ) > fun(A,fun(B,bool)) ) )).

tff(sy_c_BNF__Def_Ocollect,type,(
    bNF_collect: 
      !>[B: $tType,A: $tType] :
        ( set(fun(B,set(A))) > fun(B,set(A)) ) )).

tff(sy_c_BNF__Def_Oconvol,type,(
    bNF_convol: 
      !>[A: $tType,B: $tType,C: $tType] :
        ( ( fun(A,B) * fun(A,C) ) > fun(A,product_prod(B,C)) ) )).

tff(sy_c_BNF__Def_Ocsquare,type,(
    bNF_csquare: 
      !>[A: $tType,B: $tType,C: $tType,D: $tType] :
        ( ( set(A) * fun(B,C) * fun(D,C) * fun(A,B) * fun(A,D) ) > $o ) )).

tff(sy_c_BNF__Def_Oeq__onp,type,(
    bNF_eq_onp: 
      !>[A: $tType] :
        ( fun(A,bool) > fun(A,fun(A,bool)) ) )).

tff(sy_c_BNF__Def_OfstOp,type,(
    bNF_fstOp: 
      !>[A: $tType,B: $tType,C: $tType] :
        ( ( fun(A,fun(B,bool)) * fun(B,fun(C,bool)) ) > fun(product_prod(A,C),product_prod(A,B)) ) )).

tff(sy_c_BNF__Def_Opick__middlep,type,(
    bNF_pick_middlep: 
      !>[B: $tType,A: $tType,C: $tType] :
        ( ( fun(B,fun(A,bool)) * fun(A,fun(C,bool)) * B * C ) > A ) )).

tff(sy_c_BNF__Def_Orel__fun,type,(
    bNF_rel_fun: 
      !>[A: $tType,C: $tType,B: $tType,D: $tType] :
        ( ( fun(A,fun(C,bool)) * fun(B,fun(D,bool)) ) > fun(fun(A,B),fun(fun(C,D),bool)) ) )).

tff(sy_c_BNF__Def_Orel__set,type,(
    bNF_rel_set: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > fun(set(A),fun(set(B),bool)) ) )).

tff(sy_c_BNF__Def_OsndOp,type,(
    bNF_sndOp: 
      !>[C: $tType,A: $tType,B: $tType] :
        ( ( fun(C,fun(A,bool)) * fun(A,fun(B,bool)) ) > fun(product_prod(C,B),product_prod(A,B)) ) )).

tff(sy_c_BNF__Def_Ovimage2p,type,(
    bNF_vimage2p: 
      !>[A: $tType,D: $tType,B: $tType,E: $tType,C: $tType] :
        ( ( fun(A,D) * fun(B,E) ) > fun(fun(D,fun(E,C)),fun(A,fun(B,C))) ) )).

tff(sy_c_BNF__Greatest__Fixpoint_Oimage2,type,(
    bNF_Greatest_image2: 
      !>[C: $tType,A: $tType,B: $tType] :
        ( ( set(C) * fun(C,A) * fun(C,B) ) > set(product_prod(A,B)) ) )).

tff(sy_c_BNF__Greatest__Fixpoint_Oimage2p,type,(
    bNF_Greatest_image2p: 
      !>[C: $tType,A: $tType,D: $tType,B: $tType] :
        ( ( fun(C,A) * fun(D,B) * fun(C,fun(D,bool)) ) > fun(A,fun(B,bool)) ) )).

tff(sy_c_BNF__Wellorder__Constructions_Obsqr,type,(
    bNF_Wellorder_bsqr: 
      !>[A: $tType] :
        ( set(product_prod(A,A)) > set(product_prod(product_prod(A,A),product_prod(A,A))) ) )).

tff(sy_c_BNF__Wellorder__Relation_Owo__rel_Omax2,type,(
    bNF_We1388413361240627857o_max2: 
      !>[A: $tType] :
        ( ( set(product_prod(A,A)) * A * A ) > A ) )).

tff(sy_c_Basic__BNF__LFPs_Oprod_Osize__prod,type,(
    basic_BNF_size_prod: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,nat) * fun(B,nat) ) > fun(product_prod(A,B),nat) ) )).

tff(sy_c_Basic__BNFs_Ofsts,type,(
    basic_fsts: 
      !>[A: $tType,B: $tType] :
        ( product_prod(A,B) > set(A) ) )).

tff(sy_c_Basic__BNFs_Opred__prod,type,(
    basic_pred_prod: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,bool) * fun(B,bool) ) > fun(product_prod(A,B),bool) ) )).

tff(sy_c_Basic__BNFs_Orel__prod,type,(
    basic_rel_prod: 
      !>[A: $tType,B: $tType,C: $tType,D: $tType] :
        ( ( fun(A,fun(B,bool)) * fun(C,fun(D,bool)) ) > fun(product_prod(A,C),fun(product_prod(B,D),bool)) ) )).

tff(sy_c_Basic__BNFs_Osnds,type,(
    basic_snds: 
      !>[A: $tType,B: $tType] :
        ( product_prod(A,B) > set(B) ) )).

tff(sy_c_COMBB,type,(
    combb: 
      !>[B: $tType,C: $tType,A: $tType] : fun(fun(B,C),fun(fun(A,B),fun(A,C))) )).

tff(sy_c_COMBC,type,(
    combc: 
      !>[A: $tType,B: $tType,C: $tType] : fun(fun(A,fun(B,C)),fun(B,fun(A,C))) )).

tff(sy_c_COMBI,type,(
    combi: 
      !>[A: $tType] : fun(A,A) )).

tff(sy_c_COMBK,type,(
    combk: 
      !>[A: $tType,B: $tType] : fun(A,fun(B,A)) )).

tff(sy_c_COMBS,type,(
    combs: 
      !>[A: $tType,B: $tType,C: $tType] : fun(fun(A,fun(B,C)),fun(fun(A,B),fun(A,C))) )).

tff(sy_c_Complete__Lattices_OSup__class_OSup,type,(
    complete_Sup_Sup: 
      !>[A: $tType] :
        ( set(A) > A ) )).

tff(sy_c_FWState_Ocond__a,type,(
    cond_a: 
      !>[L: $tType,T: $tType,X: $tType,M: $tType,W: $tType,O: $tType] : fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(conditional_action(T))) )).

tff(sy_c_FWState_Oconditional__action_OJoin,type,(
    conditional_Join: 
      !>[T: $tType] : fun(T,conditional_action(T)) )).

tff(sy_c_FWState_Oconditional__action_OYield,type,(
    conditional_Yield: 
      !>[T: $tType] : conditional_action(T) )).

tff(sy_c_FWState_Oconditional__action_Ocase__conditional__action,type,(
    condit2152691216506315636action: 
      !>[T: $tType,A: $tType] : fun(fun(T,A),fun(A,fun(conditional_action(T),A))) )).

tff(sy_c_FWState_Oconditional__action_Omap__conditional__action,type,(
    condit198635377858011928action: 
      !>[T: $tType,Ta: $tType] : fun(fun(T,Ta),fun(conditional_action(T),conditional_action(Ta))) )).

tff(sy_c_FWState_Oconditional__action_Opred__conditional__action,type,(
    condit606476673698705123action: 
      !>[A: $tType] : fun(fun(A,bool),fun(conditional_action(A),bool)) )).

tff(sy_c_FWState_Oconditional__action_Orec__conditional__action,type,(
    condit2004826933596026276action: 
      !>[T: $tType,B: $tType] : fun(fun(T,B),fun(B,fun(conditional_action(T),B))) )).

tff(sy_c_FWState_Oconditional__action_Orel__conditional__action,type,(
    condit4280512358590153947action: 
      !>[A: $tType,B: $tType] : fun(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool))) )).

tff(sy_c_FWState_Oconditional__action_Oset__conditional__action,type,(
    condit2393454222984209554action: 
      !>[T: $tType] : fun(conditional_action(T),set(T)) )).

tff(sy_c_FWState_Oconditional__action_Osize__conditional__action,type,(
    condit7996436068482063107action: 
      !>[T: $tType] :
        ( fun(T,nat) > fun(conditional_action(T),nat) ) )).

tff(sy_c_FWState_Ointerrupt__a,type,(
    interrupt_a: 
      !>[L: $tType,T: $tType,X: $tType,M: $tType,W: $tType,O: $tType] : fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(interrupt_action(T))) )).

tff(sy_c_FWState_Ointerrupt__action_OClearInterrupt,type,(
    interr7976201102587534891errupt: 
      !>[T: $tType] :
        ( T > interrupt_action(T) ) )).

tff(sy_c_FWState_Ointerrupt__action_OInterrupt,type,(
    interrupt_Interrupt: 
      !>[T: $tType] :
        ( T > interrupt_action(T) ) )).

tff(sy_c_FWState_Ointerrupt__action_OIsInterrupted,type,(
    interr5885539089632487139rupted: 
      !>[T: $tType] :
        ( ( T * bool ) > interrupt_action(T) ) )).

tff(sy_c_FWState_Ointerrupt__action_Omap__interrupt__action,type,(
    interr6514223866936857682action: 
      !>[T: $tType,Ta: $tType] :
        ( fun(T,Ta) > fun(interrupt_action(T),interrupt_action(Ta)) ) )).

tff(sy_c_FWState_Ointerrupt__action_Opred__interrupt__action,type,(
    interr8158014761281175971action: 
      !>[A: $tType] :
        ( fun(A,bool) > fun(interrupt_action(A),bool) ) )).

tff(sy_c_FWState_Ointerrupt__action_Orel__interrupt__action,type,(
    interr1799892525631285141action: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > fun(interrupt_action(A),fun(interrupt_action(B),bool)) ) )).

tff(sy_c_FWState_Ointerrupt__action_Oset__interrupt__action,type,(
    interr3053324309844243148action: 
      !>[T: $tType] :
        ( interrupt_action(T) > set(T) ) )).

tff(sy_c_FWState_Ointerrupt__action_Osize__interrupt__action,type,(
    interr4439281168783392195action: 
      !>[T: $tType] :
        ( fun(T,nat) > fun(interrupt_action(T),nat) ) )).

tff(sy_c_FWState_Olock__action_OLock,type,(
    lock_Lock: lock_action )).

tff(sy_c_FWState_Olock__action_OReleaseAcquire,type,(
    lock_ReleaseAcquire: lock_action )).

tff(sy_c_FWState_Olock__action_OUnlock,type,(
    lock_Unlock: lock_action )).

tff(sy_c_FWState_Olock__action_OUnlockFail,type,(
    lock_UnlockFail: lock_action )).

tff(sy_c_FWState_Olock__action_Ocase__lock__action,type,(
    lock_c780515111982967862action: 
      !>[A: $tType] : fun(A,fun(A,fun(A,fun(A,fun(lock_action,A))))) )).

tff(sy_c_FWState_Olock__action_Orec__lock__action,type,(
    lock_rec_lock_action: 
      !>[A: $tType] : fun(A,fun(A,fun(A,fun(A,fun(lock_action,A))))) )).

tff(sy_c_FWState_Olock__action_Osize__lock__action,type,(
    lock_s5444299122428672615action: lock_action > nat )).

tff(sy_c_FWState_Olocks__a,type,(
    locks_a: 
      !>[L: $tType,T: $tType,X: $tType,M: $tType,W: $tType,O: $tType] : fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),finfun(L,list(lock_action))) )).

tff(sy_c_FWState_Onew__thread__action_ONewThread,type,(
    new_thread_NewThread: 
      !>[T: $tType,X: $tType,M: $tType] :
        ( ( T * X * M ) > new_thread_action(T,X,M) ) )).

tff(sy_c_FWState_Onew__thread__action_OThreadExists,type,(
    new_th4503388622997288770Exists: 
      !>[T: $tType,X: $tType,M: $tType] :
        ( ( T * bool ) > new_thread_action(T,X,M) ) )).

tff(sy_c_FWState_Onew__thread__action_Ocase__new__thread__action,type,(
    new_th5509480840830140020action: 
      !>[T: $tType,X: $tType,M: $tType,A: $tType] :
        ( ( fun(T,fun(X,fun(M,A))) * fun(T,fun(bool,A)) * new_thread_action(T,X,M) ) > A ) )).

tff(sy_c_FWState_Onew__thread__action_Omap__new__thread__action,type,(
    new_th6052504119144402208action: 
      !>[T: $tType,Ta: $tType,X: $tType,Xa: $tType,M: $tType,Ma: $tType] :
        ( ( fun(T,Ta) * fun(X,Xa) * fun(M,Ma) ) > fun(new_thread_action(T,X,M),new_thread_action(Ta,Xa,Ma)) ) )).

tff(sy_c_FWState_Onew__thread__action_Opred__new__thread__action,type,(
    new_th3963266298022529507action: 
      !>[A: $tType,B: $tType,C: $tType] :
        ( ( fun(A,bool) * fun(B,bool) * fun(C,bool) ) > fun(new_thread_action(A,B,C),bool) ) )).

tff(sy_c_FWState_Onew__thread__action_Orec__new__thread__action,type,(
    new_th7858695674882416556action: 
      !>[T: $tType,X: $tType,M: $tType,D: $tType] :
        ( ( fun(T,fun(X,fun(M,D))) * fun(T,fun(bool,D)) ) > fun(new_thread_action(T,X,M),D) ) )).

tff(sy_c_FWState_Onew__thread__action_Orel__new__thread__action,type,(
    new_th911009063021768419action: 
      !>[A: $tType,D: $tType,B: $tType,E: $tType,C: $tType,F: $tType] :
        ( ( fun(A,fun(D,bool)) * fun(B,fun(E,bool)) * fun(C,fun(F,bool)) ) > fun(new_thread_action(A,B,C),fun(new_thread_action(D,E,F),bool)) ) )).

tff(sy_c_FWState_Onew__thread__action_Oset1__new__thread__action,type,(
    new_th4037974794548711221action: 
      !>[T: $tType,X: $tType,M: $tType] :
        ( new_thread_action(T,X,M) > set(T) ) )).

tff(sy_c_FWState_Onew__thread__action_Oset2__new__thread__action,type,(
    new_th5315647845865256052action: 
      !>[T: $tType,X: $tType,M: $tType] :
        ( new_thread_action(T,X,M) > set(X) ) )).

tff(sy_c_FWState_Onew__thread__action_Oset3__new__thread__action,type,(
    new_th6593320897181800883action: 
      !>[T: $tType,X: $tType,M: $tType] :
        ( new_thread_action(T,X,M) > set(M) ) )).

tff(sy_c_FWState_Onew__thread__action_Osize__new__thread__action,type,(
    new_th2129853655951111683action: 
      !>[T: $tType,X: $tType,M: $tType] :
        ( ( fun(T,nat) * fun(X,nat) * fun(M,nat) ) > fun(new_thread_action(T,X,M),nat) ) )).

tff(sy_c_FWState_Oobs__a,type,(
    obs_a: 
      !>[L: $tType,T: $tType,X: $tType,M: $tType,W: $tType,O: $tType] : fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(O)) )).

tff(sy_c_FWState_Othr__a,type,(
    thr_a: 
      !>[L: $tType,T: $tType,X: $tType,M: $tType,W: $tType,O: $tType] : fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(new_thread_action(T,X,M))) )).

tff(sy_c_FWState_Owait__set__action_ONotified,type,(
    wait_set_Notified: 
      !>[T: $tType,W: $tType] : wait_set_action(T,W) )).

tff(sy_c_FWState_Owait__set__action_ONotify,type,(
    wait_set_Notify: 
      !>[W: $tType,T: $tType] :
        ( W > wait_set_action(T,W) ) )).

tff(sy_c_FWState_Owait__set__action_ONotifyAll,type,(
    wait_set_NotifyAll: 
      !>[W: $tType,T: $tType] :
        ( W > wait_set_action(T,W) ) )).

tff(sy_c_FWState_Owait__set__action_OSuspend,type,(
    wait_set_Suspend: 
      !>[W: $tType,T: $tType] :
        ( W > wait_set_action(T,W) ) )).

tff(sy_c_FWState_Owait__set__action_OWakeUp,type,(
    wait_set_WakeUp: 
      !>[T: $tType,W: $tType] :
        ( T > wait_set_action(T,W) ) )).

tff(sy_c_FWState_Owait__set__action_OWokenUp,type,(
    wait_set_WokenUp: 
      !>[T: $tType,W: $tType] : wait_set_action(T,W) )).

tff(sy_c_FWState_Owait__set__action_Omap__wait__set__action,type,(
    wait_s8865918783579551590action: 
      !>[T: $tType,Ta: $tType,W: $tType,Wa: $tType] :
        ( ( fun(T,Ta) * fun(W,Wa) ) > fun(wait_set_action(T,W),wait_set_action(Ta,Wa)) ) )).

tff(sy_c_FWState_Owait__set__action_Opred__wait__set__action,type,(
    wait_s752929372302630947action: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,bool) * fun(B,bool) * wait_set_action(A,B) ) > $o ) )).

tff(sy_c_FWState_Owait__set__action_Orec__wait__set__action,type,(
    wait_s6484701876979208178action: 
      !>[W: $tType,C: $tType,T: $tType] :
        ( ( fun(W,C) * fun(W,C) * fun(W,C) * fun(T,C) * C * C ) > fun(wait_set_action(T,W),C) ) )).

tff(sy_c_FWState_Owait__set__action_Orel__wait__set__action,type,(
    wait_s4151587442273979049action: 
      !>[A: $tType,C: $tType,B: $tType,D: $tType] :
        ( ( fun(A,fun(C,bool)) * fun(B,fun(D,bool)) ) > fun(wait_set_action(A,B),fun(wait_set_action(C,D),bool)) ) )).

tff(sy_c_FWState_Owait__set__action_Oset1__wait__set__action,type,(
    wait_s8753297657872117365action: 
      !>[T: $tType,W: $tType] :
        ( wait_set_action(T,W) > set(T) ) )).

tff(sy_c_FWState_Owait__set__action_Oset2__wait__set__action,type,(
    wait_s6444424490270475060action: 
      !>[T: $tType,W: $tType] :
        ( wait_set_action(T,W) > set(W) ) )).

tff(sy_c_FWState_Owait__set__action_Osize__wait__set__action,type,(
    wait_s6257567816659622979action: 
      !>[T: $tType,W: $tType] :
        ( ( fun(T,nat) * fun(W,nat) ) > fun(wait_set_action(T,W),nat) ) )).

tff(sy_c_FWState_Owset__a,type,(
    wset_a: 
      !>[L: $tType,T: $tType,X: $tType,M: $tType,W: $tType,O: $tType] : fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(wait_set_action(T,W))) )).

tff(sy_c_Filter_Oeventually,type,(
    eventually: 
      !>[A: $tType] :
        ( ( fun(A,bool) * filter(A) ) > $o ) )).

tff(sy_c_Filter_Ofiltermap,type,(
    filtermap: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,B) * filter(A) ) > filter(B) ) )).

tff(sy_c_Filter_Oprod__filter,type,(
    prod_filter: 
      !>[A: $tType,B: $tType] :
        ( ( filter(A) * filter(B) ) > filter(product_prod(A,B)) ) )).

tff(sy_c_FinFun_Ofinfun,type,(
    finfun2: 
      !>[A: $tType,B: $tType] : set(fun(A,B)) )).

tff(sy_c_FinFun_Ofinfun_OAbs__finfun,type,(
    abs_finfun: 
      !>[A: $tType,B: $tType] : fun(fun(A,B),finfun(A,B)) )).

tff(sy_c_FinFun_Ofinfun_Ofinfun__apply,type,(
    finfun_apply: 
      !>[A: $tType,B: $tType] :
        ( finfun(A,B) > fun(A,B) ) )).

tff(sy_c_FinFun_Ofinfun__Diag,type,(
    finfun_Diag: 
      !>[A: $tType,B: $tType,C: $tType] :
        ( ( finfun(A,B) * finfun(A,C) ) > finfun(A,product_prod(B,C)) ) )).

tff(sy_c_FinFun_Ofinfun__comp,type,(
    finfun_comp: 
      !>[A: $tType,B: $tType,C: $tType] :
        ( ( fun(A,B) * finfun(C,A) ) > finfun(C,B) ) )).

tff(sy_c_FinFun_Ofinfun__const,type,(
    finfun_const: 
      !>[B: $tType,A: $tType] : fun(B,finfun(A,B)) )).

tff(sy_c_FinFun_Ofinfun__update,type,(
    finfun_update: 
      !>[A: $tType,B: $tType] : fun(finfun(A,B),fun(A,fun(B,finfun(A,B)))) )).

tff(sy_c_FinFun_Ofinfun__update__code,type,(
    finfun_update_code: 
      !>[A: $tType,B: $tType] : fun(finfun(A,B),fun(A,fun(B,finfun(A,B)))) )).

tff(sy_c_Finite__Set_OFpow,type,(
    finite_Fpow: 
      !>[A: $tType] :
        ( set(A) > set(set(A)) ) )).

tff(sy_c_Finite__Set_Ocomp__fun__commute,type,(
    finite6289374366891150609ommute: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,B)) > $o ) )).

tff(sy_c_Finite__Set_Ofinite,type,(
    finite_finite: 
      !>[A: $tType] : fun(set(A),bool) )).

tff(sy_c_Finite__Set_Ofold,type,(
    finite_fold: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,fun(B,B)) * B * set(A) ) > B ) )).

tff(sy_c_Fun_Ocomp,type,(
    comp: 
      !>[B: $tType,C: $tType,A: $tType] : fun(fun(B,C),fun(fun(A,B),fun(A,C))) )).

tff(sy_c_Fun_Ofun__upd,type,(
    fun_upd: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,B) * A * B ) > fun(A,B) ) )).

tff(sy_c_Fun_Oid,type,(
    id: 
      !>[A: $tType] : fun(A,A) )).

tff(sy_c_Fun_Oinj__on,type,(
    inj_on: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,B) * set(A) ) > $o ) )).

tff(sy_c_Fun_Omap__fun,type,(
    map_fun: 
      !>[C: $tType,A: $tType,B: $tType,D: $tType] :
        ( ( fun(C,A) * fun(B,D) ) > fun(fun(A,B),fun(C,D)) ) )).

tff(sy_c_Fun__Def_Oin__rel,type,(
    fun_in_rel: 
      !>[A: $tType,B: $tType] :
        ( set(product_prod(A,B)) > fun(A,fun(B,bool)) ) )).

tff(sy_c_Fun__Def_Opair__leq,type,(
    fun_pair_leq: set(product_prod(product_prod(nat,nat),product_prod(nat,nat))) )).

tff(sy_c_Fun__Def_Opair__less,type,(
    fun_pair_less: set(product_prod(product_prod(nat,nat),product_prod(nat,nat))) )).

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

tff(sy_c_Groups_Oone__class_Oone,type,(
    one_one: 
      !>[A: $tType] : A )).

tff(sy_c_Groups_Oplus__class_Oplus,type,(
    plus_plus: 
      !>[A: $tType] :
        ( ( A * A ) > A ) )).

tff(sy_c_Groups_Otimes__class_Otimes,type,(
    times_times: 
      !>[A: $tType] :
        ( ( A * A ) > A ) )).

tff(sy_c_Groups_Ozero__class_Ozero,type,(
    zero_zero: 
      !>[A: $tType] : A )).

tff(sy_c_HOL_OThe,type,(
    the: 
      !>[A: $tType] :
        ( fun(A,bool) > A ) )).

tff(sy_c_Hilbert__Choice_OEps,type,(
    hilbert_Eps: 
      !>[A: $tType] :
        ( fun(A,bool) > A ) )).

tff(sy_c_If,type,(
    if: 
      !>[A: $tType] : fun(bool,fun(A,fun(A,A))) )).

tff(sy_c_Lattices_Oinf__class_Oinf,type,(
    inf_inf: 
      !>[A: $tType] :
        ( ( A * A ) > A ) )).

tff(sy_c_Lattices_Osup__class_Osup,type,(
    sup_sup: 
      !>[A: $tType] : fun(A,fun(A,A)) )).

tff(sy_c_Lifting_OQuotient,type,(
    quotient: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,fun(A,bool)) * fun(A,B) * fun(B,A) * fun(A,fun(B,bool)) ) > $o ) )).

tff(sy_c_List_Oappend,type,(
    append: 
      !>[A: $tType] :
        ( ( list(A) * list(A) ) > list(A) ) )).

tff(sy_c_List_OdropWhile,type,(
    dropWhile: 
      !>[A: $tType] :
        ( ( fun(A,bool) * list(A) ) > list(A) ) )).

tff(sy_c_List_Oextract,type,(
    extract: 
      !>[A: $tType] :
        ( ( fun(A,bool) * list(A) ) > option(product_prod(list(A),product_prod(A,list(A)))) ) )).

tff(sy_c_List_Olist_OCons,type,(
    cons: 
      !>[A: $tType] : fun(A,fun(list(A),list(A))) )).

tff(sy_c_List_Olist_ONil,type,(
    nil: 
      !>[A: $tType] : list(A) )).

tff(sy_c_List_Olist_Ocase__list,type,(
    case_list: 
      !>[B: $tType,A: $tType] :
        ( ( B * fun(A,fun(list(A),B)) * list(A) ) > B ) )).

tff(sy_c_List_Olist_Omap,type,(
    map: 
      !>[A: $tType,Aa: $tType] :
        ( ( fun(A,Aa) * list(A) ) > list(Aa) ) )).

tff(sy_c_List_Olist_Orec__list,type,(
    rec_list: 
      !>[C: $tType,A: $tType] :
        ( ( C * fun(A,fun(list(A),fun(C,C))) * list(A) ) > C ) )).

tff(sy_c_List_Olist_Oset,type,(
    set2: 
      !>[A: $tType] : fun(list(A),set(A)) )).

tff(sy_c_List_Omap__tailrec__rev,type,(
    map_tailrec_rev: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,B) * list(A) * list(B) ) > list(B) ) )).

tff(sy_c_List_Omap__tailrec__rev__rel,type,(
    map_tailrec_rev_rel: 
      !>[A: $tType,B: $tType] : fun(product_prod(fun(A,B),product_prod(list(A),list(B))),fun(product_prod(fun(A,B),product_prod(list(A),list(B))),bool)) )).

tff(sy_c_List_OtakeWhile,type,(
    takeWhile: 
      !>[A: $tType] :
        ( ( fun(A,bool) * list(A) ) > list(A) ) )).

tff(sy_c_List_Ozip,type,(
    zip: 
      !>[A: $tType,B: $tType] :
        ( ( list(A) * list(B) ) > list(product_prod(A,B)) ) )).

tff(sy_c_Map_Odom,type,(
    dom: 
      !>[A: $tType,B: $tType] :
        ( fun(A,option(B)) > set(A) ) )).

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

tff(sy_c_Nat_Osize__class_Osize,type,(
    size_size: 
      !>[A: $tType] :
        ( A > nat ) )).

tff(sy_c_Num_Onum_OBit0,type,(
    bit0: num > num )).

tff(sy_c_Num_Onum_OBit1,type,(
    bit1: num > num )).

tff(sy_c_Num_Onum_OOne,type,(
    one: num )).

tff(sy_c_Num_Onumeral__class_Onumeral,type,(
    numeral_numeral: 
      !>[A: $tType] :
        ( num > A ) )).

tff(sy_c_Option_Ooption_ONone,type,(
    none: 
      !>[A: $tType] : option(A) )).

tff(sy_c_Option_Ooption_OSome,type,(
    some: 
      !>[A: $tType] : fun(A,option(A)) )).

tff(sy_c_Option_Ooption_Ocase__option,type,(
    case_option: 
      !>[B: $tType,A: $tType] :
        ( ( B * fun(A,B) * option(A) ) > B ) )).

tff(sy_c_Order__Relation_Owell__order__on,type,(
    order_well_order_on: 
      !>[A: $tType] :
        ( ( set(A) * set(product_prod(A,A)) ) > $o ) )).

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

tff(sy_c_Orderings_Oord__class_Oless,type,(
    ord_less: 
      !>[A: $tType] :
        ( ( A * A ) > bool ) )).

tff(sy_c_Orderings_Oord__class_Oless__eq,type,(
    ord_less_eq: 
      !>[A: $tType] : fun(A,fun(A,bool)) )).

tff(sy_c_Orderings_Oord__class_Omax,type,(
    ord_max: 
      !>[A: $tType] :
        ( ( A * A ) > A ) )).

tff(sy_c_Orderings_Oord__class_Omin,type,(
    ord_min: 
      !>[A: $tType] :
        ( ( A * A ) > A ) )).

tff(sy_c_Orderings_Otop__class_Otop,type,(
    top_top: 
      !>[A: $tType] : A )).

tff(sy_c_Predicate_OSeq,type,(
    seq2: 
      !>[A: $tType] :
        ( fun(product_unit,seq(A)) > pred(A) ) )).

tff(sy_c_Predicate_Obind,type,(
    bind: 
      !>[A: $tType,B: $tType] : fun(pred(A),fun(fun(A,pred(B)),pred(B))) )).

tff(sy_c_Predicate_Oif__pred,type,(
    if_pred: fun(bool,pred(product_unit)) )).

tff(sy_c_Predicate_Oiterate__upto,type,(
    iterate_upto: 
      !>[A: $tType] :
        ( ( fun(code_natural,A) * code_natural * code_natural ) > pred(A) ) )).

tff(sy_c_Predicate_Oiterate__upto__rel,type,(
    iterate_upto_rel: 
      !>[A: $tType] : fun(product_prod(fun(code_natural,A),product_prod(code_natural,code_natural)),fun(product_prod(fun(code_natural,A),product_prod(code_natural,code_natural)),bool)) )).

tff(sy_c_Predicate_Oseq_OEmpty,type,(
    empty: 
      !>[A: $tType] : seq(A) )).

tff(sy_c_Predicate_Oseq_OInsert,type,(
    insert: 
      !>[A: $tType] :
        ( ( A * pred(A) ) > seq(A) ) )).

tff(sy_c_Predicate_Osingle,type,(
    single: 
      !>[A: $tType] :
        ( A > pred(A) ) )).

tff(sy_c_Product__Type_OPair,type,(
    product_Pair: 
      !>[A: $tType,B: $tType] : fun(A,fun(B,product_prod(A,B))) )).

tff(sy_c_Product__Type_OSigma,type,(
    product_Sigma: 
      !>[A: $tType,B: $tType] :
        ( ( set(A) * fun(A,set(B)) ) > set(product_prod(A,B)) ) )).

tff(sy_c_Product__Type_OUnity,type,(
    product_Unity: product_unit )).

tff(sy_c_Product__Type_Oapfst,type,(
    product_apfst: 
      !>[A: $tType,C: $tType,B: $tType] :
        ( fun(A,C) > fun(product_prod(A,B),product_prod(C,B)) ) )).

tff(sy_c_Product__Type_Oapsnd,type,(
    product_apsnd: 
      !>[B: $tType,C: $tType,A: $tType] :
        ( fun(B,C) > fun(product_prod(A,B),product_prod(A,C)) ) )).

tff(sy_c_Product__Type_Ocurry,type,(
    product_curry: 
      !>[A: $tType,B: $tType,C: $tType] :
        ( fun(product_prod(A,B),C) > fun(A,fun(B,C)) ) )).

tff(sy_c_Product__Type_Ointernal__case__prod,type,(
    produc5280177257484947105e_prod: 
      !>[A: $tType,B: $tType,C: $tType] : fun(fun(A,fun(B,C)),fun(product_prod(A,B),C)) )).

tff(sy_c_Product__Type_Omap__prod,type,(
    product_map_prod: 
      !>[A: $tType,C: $tType,B: $tType,D: $tType] :
        ( ( fun(A,C) * fun(B,D) ) > fun(product_prod(A,B),product_prod(C,D)) ) )).

tff(sy_c_Product__Type_Oold_Obool_Orec__bool,type,(
    product_rec_bool: 
      !>[T: $tType] :
        ( ( T * T * bool ) > T ) )).

tff(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,(
    product_rec_prod: 
      !>[A: $tType,B: $tType,T: $tType] : fun(fun(A,fun(B,T)),fun(product_prod(A,B),T)) )).

tff(sy_c_Product__Type_Oprod_Ocase__prod,type,(
    product_case_prod: 
      !>[A: $tType,B: $tType,C: $tType] : fun(fun(A,fun(B,C)),fun(product_prod(A,B),C)) )).

tff(sy_c_Product__Type_Oprod_Ofst,type,(
    product_fst: 
      !>[A: $tType,B: $tType] : fun(product_prod(A,B),A) )).

tff(sy_c_Product__Type_Oprod_Osnd,type,(
    product_snd: 
      !>[A: $tType,B: $tType] : fun(product_prod(A,B),B) )).

tff(sy_c_Product__Type_Oprod_Oswap,type,(
    product_swap: 
      !>[A: $tType,B: $tType] : fun(product_prod(A,B),product_prod(B,A)) )).

tff(sy_c_Product__Type_Oproduct,type,(
    product_product: 
      !>[A: $tType,B: $tType] :
        ( ( set(A) * set(B) ) > set(product_prod(A,B)) ) )).

tff(sy_c_Product__Type_Oscomp,type,(
    product_scomp: 
      !>[A: $tType,B: $tType,C: $tType,D: $tType] : fun(fun(A,product_prod(B,C)),fun(fun(B,fun(C,D)),fun(A,D))) )).

tff(sy_c_Product__Type_Ounit_Ocase__unit,type,(
    product_case_unit: 
      !>[A: $tType] : fun(A,fun(product_unit,A)) )).

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

tff(sy_c_Random_Oinc__shift,type,(
    inc_shift: code_natural > fun(code_natural,code_natural) )).

tff(sy_c_Random_Oiterate,type,(
    iterate: 
      !>[B: $tType,A: $tType] :
        ( ( code_natural * fun(B,fun(A,product_prod(B,A))) ) > fun(B,fun(A,product_prod(B,A))) ) )).

tff(sy_c_Random_Oiterate__rel,type,(
    iterate_rel: 
      !>[B: $tType,A: $tType] : fun(product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),fun(product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),bool)) )).

tff(sy_c_Random_Ominus__shift,type,(
    minus_shift: ( code_natural * code_natural * code_natural ) > code_natural )).

tff(sy_c_Random_Onext,type,(
    next: product_prod(code_natural,code_natural) > product_prod(code_natural,product_prod(code_natural,code_natural)) )).

tff(sy_c_Random_Osplit__seed,type,(
    split_seed: product_prod(code_natural,code_natural) > product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)) )).

tff(sy_c_Relation_ODomainp,type,(
    domainp: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > fun(A,bool) ) )).

tff(sy_c_Relation_OField,type,(
    field: 
      !>[A: $tType] :
        ( set(product_prod(A,A)) > set(A) ) )).

tff(sy_c_Relation_OId,type,(
    id2: 
      !>[A: $tType] : set(product_prod(A,A)) )).

tff(sy_c_Relation_OId__on,type,(
    id_on: 
      !>[A: $tType] :
        ( set(A) > set(product_prod(A,A)) ) )).

tff(sy_c_Relation_OImage,type,(
    image: 
      !>[A: $tType,B: $tType] :
        ( ( set(product_prod(A,B)) * set(A) ) > set(B) ) )).

tff(sy_c_Relation_Oconverse,type,(
    converse: 
      !>[A: $tType,B: $tType] :
        ( set(product_prod(A,B)) > set(product_prod(B,A)) ) )).

tff(sy_c_Relation_Oconversep,type,(
    conversep: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > fun(B,fun(A,bool)) ) )).

tff(sy_c_Relation_Orefl__on,type,(
    refl_on: 
      !>[A: $tType] :
        ( ( set(A) * set(product_prod(A,A)) ) > $o ) )).

tff(sy_c_Relation_Oreflp,type,(
    reflp: 
      !>[A: $tType] :
        ( fun(A,fun(A,bool)) > $o ) )).

tff(sy_c_Relation_Orelcomp,type,(
    relcomp: 
      !>[A: $tType,B: $tType,C: $tType] :
        ( ( set(product_prod(A,B)) * set(product_prod(B,C)) ) > set(product_prod(A,C)) ) )).

tff(sy_c_Relation_Orelcompp,type,(
    relcompp: 
      !>[A: $tType,B: $tType,C: $tType] :
        ( ( fun(A,fun(B,bool)) * fun(B,fun(C,bool)) ) > fun(A,fun(C,bool)) ) )).

tff(sy_c_Relation_Osymp,type,(
    symp: 
      !>[A: $tType] :
        ( fun(A,fun(A,bool)) > $o ) )).

tff(sy_c_Relation_Ototal__on,type,(
    total_on: 
      !>[A: $tType] :
        ( ( set(A) * set(product_prod(A,A)) ) > $o ) )).

tff(sy_c_Relation_Otransp,type,(
    transp: 
      !>[A: $tType] :
        ( fun(A,fun(A,bool)) > $o ) )).

tff(sy_c_Rings_Odivide__class_Odivide,type,(
    divide_divide: 
      !>[A: $tType] :
        ( ( A * A ) > A ) )).

tff(sy_c_Rings_Omodulo__class_Omodulo,type,(
    modulo_modulo: 
      !>[A: $tType] :
        ( ( A * A ) > A ) )).

tff(sy_c_Set_OCollect,type,(
    collect: 
      !>[A: $tType] : fun(fun(A,bool),set(A)) )).

tff(sy_c_Set_OPow,type,(
    pow: 
      !>[A: $tType] :
        ( set(A) > set(set(A)) ) )).

tff(sy_c_Set_Oimage,type,(
    image2: 
      !>[A: $tType,B: $tType] : fun(fun(A,B),fun(set(A),set(B))) )).

tff(sy_c_Set_Oinsert,type,(
    insert2: 
      !>[A: $tType] : fun(A,fun(set(A),set(A))) )).

tff(sy_c_Set__Interval_Ofold__atLeastAtMost__nat,type,(
    set_fo6178422350223883121st_nat: 
      !>[A: $tType] :
        ( ( fun(nat,fun(A,A)) * nat * nat * A ) > A ) )).

tff(sy_c_Set__Interval_Ofold__atLeastAtMost__nat__rel,type,(
    set_fo1817059534552279752at_rel: 
      !>[A: $tType] : fun(product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),fun(product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),bool)) )).

tff(sy_c_String_OLiteral,type,(
    literal2: ( bool * bool * bool * bool * bool * bool * bool * literal ) > literal )).

tff(sy_c_Transfer_ORel,type,(
    rel: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > fun(A,fun(B,bool)) ) )).

tff(sy_c_Transfer_Obi__total,type,(
    bi_total: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > $o ) )).

tff(sy_c_Transfer_Obi__unique,type,(
    bi_unique: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > $o ) )).

tff(sy_c_Transfer_Ois__equality,type,(
    is_equality: 
      !>[A: $tType] :
        ( fun(A,fun(A,bool)) > $o ) )).

tff(sy_c_Transfer_Oleft__total,type,(
    left_total: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > $o ) )).

tff(sy_c_Transfer_Oleft__unique,type,(
    left_unique: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > $o ) )).

tff(sy_c_Transfer_Oright__total,type,(
    right_total: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > $o ) )).

tff(sy_c_Transfer_Oright__unique,type,(
    right_unique: 
      !>[A: $tType,B: $tType] :
        ( fun(A,fun(B,bool)) > $o ) )).

tff(sy_c_Transfer_Otransfer__forall,type,(
    transfer_forall: 
      !>[A: $tType] : fun(fun(A,bool),bool) )).

tff(sy_c_Transitive__Closure_Oacyclic,type,(
    transitive_acyclic: 
      !>[A: $tType] :
        ( set(product_prod(A,A)) > $o ) )).

tff(sy_c_Transitive__Closure_Ortrancl,type,(
    transitive_rtrancl: 
      !>[A: $tType] :
        ( set(product_prod(A,A)) > set(product_prod(A,A)) ) )).

tff(sy_c_Transitive__Closure_Ortranclp,type,(
    transitive_rtranclp: 
      !>[A: $tType] :
        ( fun(A,fun(A,bool)) > fun(A,fun(A,bool)) ) )).

tff(sy_c_Transitive__Closure_Otrancl,type,(
    transitive_trancl: 
      !>[A: $tType] :
        ( set(product_prod(A,A)) > set(product_prod(A,A)) ) )).

tff(sy_c_Transitive__Closure_Otranclp,type,(
    transitive_tranclp: 
      !>[A: $tType] :
        ( fun(A,fun(A,bool)) > fun(A,fun(A,bool)) ) )).

tff(sy_c_Transitive__Closure__Table_Ortrancl__tab__FioB__i__i__i,type,(
    transi8253828792423813248_i_i_i: 
      !>[A: $tType] :
        ( fun(A,pred(A)) > fun(list(A),fun(A,fun(A,pred(product_unit)))) ) )).

tff(sy_c_Transitive__Closure__Table_Ortrancl__tab__FooB__i__i__i,type,(
    transi4439934788793893114_i_i_i: 
      !>[A: $tType] :
        ( ( pred(product_prod(A,A)) * list(A) * A * A ) > pred(product_unit) ) )).

tff(sy_c_Transitive__Closure__Table_Ortrancl__tab__FooB__i__o__i,type,(
    transi4441628513830593908_i_o_i: 
      !>[A: $tType] :
        ( pred(product_prod(A,A)) > fun(list(A),fun(A,pred(A))) ) )).

tff(sy_c_Typedef_Otype__definition,type,(
    type_definition: 
      !>[B: $tType,A: $tType] :
        ( ( fun(B,A) * fun(A,B) * set(A) ) > $o ) )).

tff(sy_c_Typerep_Otyperep_OTyperep,type,(
    typerep3: ( literal * list(typerep) ) > typerep )).

tff(sy_c_Typerep_Otyperep__class_Otyperep,type,(
    typerep_typerep: 
      !>[A: $tType] :
        ( itself(A) > typerep ) )).

tff(sy_c_Wellfounded_Oaccp,type,(
    accp: 
      !>[A: $tType] :
        ( ( fun(A,fun(A,bool)) * A ) > $o ) )).

tff(sy_c_Wellfounded_Oless__than,type,(
    less_than: set(product_prod(nat,nat)) )).

tff(sy_c_Wellfounded_Olex__prod,type,(
    lex_prod: 
      !>[A: $tType,B: $tType] :
        ( ( set(product_prod(A,A)) * set(product_prod(B,B)) ) > set(product_prod(product_prod(A,B),product_prod(A,B))) ) )).

tff(sy_c_Wfrec_Osame__fst,type,(
    same_fst: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,bool) * fun(A,set(product_prod(B,B))) ) > set(product_prod(product_prod(A,B),product_prod(A,B))) ) )).

tff(sy_c_aa,type,(
    aa: 
      !>[A: $tType,B: $tType] :
        ( ( fun(A,B) * A ) > B ) )).

tff(sy_c_fAll,type,(
    fAll: 
      !>[A: $tType] : fun(fun(A,bool),bool) )).

tff(sy_c_fEx,type,(
    fEx: 
      !>[A: $tType] : fun(fun(A,bool),bool) )).

tff(sy_c_fFalse,type,(
    fFalse: bool )).

tff(sy_c_fNot,type,(
    fNot: fun(bool,bool) )).

tff(sy_c_fTrue,type,(
    fTrue: bool )).

tff(sy_c_fconj,type,(
    fconj: fun(bool,fun(bool,bool)) )).

tff(sy_c_fdisj,type,(
    fdisj: fun(bool,fun(bool,bool)) )).

tff(sy_c_fequal,type,(
    fequal: 
      !>[A: $tType] : fun(A,fun(A,bool)) )).

tff(sy_c_member,type,(
    member: 
      !>[A: $tType] : fun(A,fun(set(A),bool)) )).

tff(sy_c_pp,type,(
    pp: bool > $o )).

tff(sy_v_jswss,type,(
    jswss: product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f)))) )).

tff(sy_v_ls,type,(
    ls: finfun(d,list(lock_action)) )).

tff(sy_v_nts,type,(
    nts: list(new_thread_action(a,b,c)) )).

% Relevant facts (1021)
tff(fact_0_locks__a__conv,axiom,(
    ! [B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,A: $tType,Ls: finfun(A,list(lock_action)),Ntsjswss: product_prod(list(new_thread_action(B,C,D)),product_prod(list(conditional_action(B)),product_prod(list(wait_set_action(B,E)),product_prod(list(interrupt_action(B)),list(F)))))] : aa(product_prod(finfun(A,list(lock_action)),product_prod(list(new_thread_action(B,C,D)),product_prod(list(conditional_action(B)),product_prod(list(wait_set_action(B,E)),product_prod(list(interrupt_action(B)),list(F)))))),finfun(A,list(lock_action)),locks_a(A,B,C,D,E,F),aa(product_prod(list(new_thread_action(B,C,D)),product_prod(list(conditional_action(B)),product_prod(list(wait_set_action(B,E)),product_prod(list(interrupt_action(B)),list(F))))),product_prod(finfun(A,list(lock_action)),product_prod(list(new_thread_action(B,C,D)),product_prod(list(conditional_action(B)),product_prod(list(wait_set_action(B,E)),product_prod(list(interrupt_action(B)),list(F)))))),aa(finfun(A,list(lock_action)),fun(product_prod(list(new_thread_action(B,C,D)),product_prod(list(conditional_action(B)),product_prod(list(wait_set_action(B,E)),product_prod(list(interrupt_action(B)),list(F))))),product_prod(finfun(A,list(lock_action)),product_prod(list(new_thread_action(B,C,D)),product_prod(list(conditional_action(B)),product_prod(list(wait_set_action(B,E)),product_prod(list(interrupt_action(B)),list(F))))))),product_Pair(finfun(A,list(lock_action)),product_prod(list(new_thread_action(B,C,D)),product_prod(list(conditional_action(B)),product_prod(list(wait_set_action(B,E)),product_prod(list(interrupt_action(B)),list(F)))))),Ls),Ntsjswss)) = Ls )).

% locks_a_conv
tff(fact_1_locks__a__def,axiom,(
    ! [O: $tType,W: $tType,M: $tType,X: $tType,T: $tType,L: $tType] : locks_a(L,T,X,M,W,O) = product_fst(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))) )).

% locks_a_def
tff(fact_2_prod__cases6,axiom,(
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,Y: product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))))] :
      ~ ! [A2: A,B2: B,C2: C,D2: D,E2: E,F2: F] : Y != aa(product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F))))),aa(A,fun(product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))))),product_Pair(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F))))),A2),aa(product_prod(C,product_prod(D,product_prod(E,F))),product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))),aa(B,fun(product_prod(C,product_prod(D,product_prod(E,F))),product_prod(B,product_prod(C,product_prod(D,product_prod(E,F))))),product_Pair(B,product_prod(C,product_prod(D,product_prod(E,F)))),B2),aa(product_prod(D,product_prod(E,F)),product_prod(C,product_prod(D,product_prod(E,F))),aa(C,fun(product_prod(D,product_prod(E,F)),product_prod(C,product_prod(D,product_prod(E,F)))),product_Pair(C,product_prod(D,product_prod(E,F))),C2),aa(product_prod(E,F),product_prod(D,product_prod(E,F)),aa(D,fun(product_prod(E,F),product_prod(D,product_prod(E,F))),product_Pair(D,product_prod(E,F)),D2),aa(F,product_prod(E,F),aa(E,fun(F,product_prod(E,F)),product_Pair(E,F),E2),F2))))) )).

% prod_cases6
tff(fact_3_prod__cases7,axiom,(
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,G: $tType,Y: product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))))] :
      ~ ! [A2: A,B2: B,C2: C,D2: D,E2: E,F2: F,G2: G] : Y != aa(product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))))),aa(A,fun(product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))))),product_Pair(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))))),A2),aa(product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))),product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),aa(B,fun(product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))),product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))))),product_Pair(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),B2),aa(product_prod(D,product_prod(E,product_prod(F,G))),product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))),aa(C,fun(product_prod(D,product_prod(E,product_prod(F,G))),product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),product_Pair(C,product_prod(D,product_prod(E,product_prod(F,G)))),C2),aa(product_prod(E,product_prod(F,G)),product_prod(D,product_prod(E,product_prod(F,G))),aa(D,fun(product_prod(E,product_prod(F,G)),product_prod(D,product_prod(E,product_prod(F,G)))),product_Pair(D,product_prod(E,product_prod(F,G))),D2),aa(product_prod(F,G),product_prod(E,product_prod(F,G)),aa(E,fun(product_prod(F,G),product_prod(E,product_prod(F,G))),product_Pair(E,product_prod(F,G)),E2),aa(G,product_prod(F,G),aa(F,fun(G,product_prod(F,G)),product_Pair(F,G),F2),G2)))))) )).

% prod_cases7
tff(fact_4_thr__a__def,axiom,(
    ! [O: $tType,W: $tType,M: $tType,X: $tType,T: $tType,L: $tType] : thr_a(L,T,X,M,W,O) = aa(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(new_thread_action(T,X,M))),aa(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(new_thread_action(T,X,M))),fun(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(new_thread_action(T,X,M)))),comp(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(new_thread_action(T,X,M)),product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))),product_fst(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_snd(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))) )).

% thr_a_def
tff(fact_5_fst__conv,axiom,(
    ! [B: $tType,A: $tType,X1: A,X2: B] : aa(product_prod(A,B),A,product_fst(A,B),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X1),X2)) = X1 )).

% fst_conv
tff(fact_6_prod__induct6,axiom,(
    ! [F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: fun(product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F))))),bool),X3: product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))))] :
      ( ! [A2: A,B2: B,C2: C,D2: D,E2: E,F2: F] : pp(aa(product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F))))),bool,P,aa(product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F))))),aa(A,fun(product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))))),product_Pair(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F))))),A2),aa(product_prod(C,product_prod(D,product_prod(E,F))),product_prod(B,product_prod(C,product_prod(D,product_prod(E,F)))),aa(B,fun(product_prod(C,product_prod(D,product_prod(E,F))),product_prod(B,product_prod(C,product_prod(D,product_prod(E,F))))),product_Pair(B,product_prod(C,product_prod(D,product_prod(E,F)))),B2),aa(product_prod(D,product_prod(E,F)),product_prod(C,product_prod(D,product_prod(E,F))),aa(C,fun(product_prod(D,product_prod(E,F)),product_prod(C,product_prod(D,product_prod(E,F)))),product_Pair(C,product_prod(D,product_prod(E,F))),C2),aa(product_prod(E,F),product_prod(D,product_prod(E,F)),aa(D,fun(product_prod(E,F),product_prod(D,product_prod(E,F))),product_Pair(D,product_prod(E,F)),D2),aa(F,product_prod(E,F),aa(E,fun(F,product_prod(E,F)),product_Pair(E,F),E2),F2)))))))
     => pp(aa(product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,F))))),bool,P,X3)) ) )).

% prod_induct6
tff(fact_7_prod__induct7,axiom,(
    ! [G: $tType,F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: fun(product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))))),bool),X3: product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))))] :
      ( ! [A2: A,B2: B,C2: C,D2: D,E2: E,F2: F,G2: G] : pp(aa(product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))))),bool,P,aa(product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))))),aa(A,fun(product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))))),product_Pair(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))))),A2),aa(product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))),product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),aa(B,fun(product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))),product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))))),product_Pair(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),B2),aa(product_prod(D,product_prod(E,product_prod(F,G))),product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))),aa(C,fun(product_prod(D,product_prod(E,product_prod(F,G))),product_prod(C,product_prod(D,product_prod(E,product_prod(F,G))))),product_Pair(C,product_prod(D,product_prod(E,product_prod(F,G)))),C2),aa(product_prod(E,product_prod(F,G)),product_prod(D,product_prod(E,product_prod(F,G))),aa(D,fun(product_prod(E,product_prod(F,G)),product_prod(D,product_prod(E,product_prod(F,G)))),product_Pair(D,product_prod(E,product_prod(F,G))),D2),aa(product_prod(F,G),product_prod(E,product_prod(F,G)),aa(E,fun(product_prod(F,G),product_prod(E,product_prod(F,G))),product_Pair(E,product_prod(F,G)),E2),aa(G,product_prod(F,G),aa(F,fun(G,product_prod(F,G)),product_Pair(F,G),F2),G2))))))))
     => pp(aa(product_prod(A,product_prod(B,product_prod(C,product_prod(D,product_prod(E,product_prod(F,G)))))),bool,P,X3)) ) )).

% prod_induct7
tff(fact_8_obs__a__def,axiom,(
    ! [O: $tType,W: $tType,M: $tType,X: $tType,T: $tType,L: $tType] : obs_a(L,T,X,M,W,O) = aa(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(O)),aa(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(O)),fun(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(O))),comp(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(O),product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))),aa(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(O)),aa(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(O)),fun(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(O))),comp(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(O),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),aa(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(O)),aa(fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(O)),fun(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(O))),comp(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(O),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),aa(fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),product_prod(list(interrupt_action(T)),list(O))),fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(O)),aa(fun(product_prod(list(interrupt_action(T)),list(O)),list(O)),fun(fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),product_prod(list(interrupt_action(T)),list(O))),fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(O))),comp(product_prod(list(interrupt_action(T)),list(O)),list(O),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),product_snd(list(interrupt_action(T)),list(O))),product_snd(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_snd(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_snd(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))),product_snd(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))) )).

% obs_a_def
tff(fact_9_prod__cases5,axiom,(
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,Y: product_prod(A,product_prod(B,product_prod(C,product_prod(D,E))))] :
      ~ ! [A2: A,B2: B,C2: C,D2: D,E2: E] : Y != aa(product_prod(B,product_prod(C,product_prod(D,E))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,E)))),aa(A,fun(product_prod(B,product_prod(C,product_prod(D,E))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,E))))),product_Pair(A,product_prod(B,product_prod(C,product_prod(D,E)))),A2),aa(product_prod(C,product_prod(D,E)),product_prod(B,product_prod(C,product_prod(D,E))),aa(B,fun(product_prod(C,product_prod(D,E)),product_prod(B,product_prod(C,product_prod(D,E)))),product_Pair(B,product_prod(C,product_prod(D,E))),B2),aa(product_prod(D,E),product_prod(C,product_prod(D,E)),aa(C,fun(product_prod(D,E),product_prod(C,product_prod(D,E))),product_Pair(C,product_prod(D,E)),C2),aa(E,product_prod(D,E),aa(D,fun(E,product_prod(D,E)),product_Pair(D,E),D2),E2)))) )).

% prod_cases5
tff(fact_10_cond__a__def,axiom,(
    ! [O: $tType,W: $tType,M: $tType,X: $tType,T: $tType,L: $tType] : cond_a(L,T,X,M,W,O) = aa(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(conditional_action(T))),aa(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(conditional_action(T))),fun(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(conditional_action(T)))),comp(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(conditional_action(T)),product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))),aa(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(conditional_action(T))),aa(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(conditional_action(T))),fun(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(conditional_action(T)))),comp(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(conditional_action(T)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_fst(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_snd(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))),product_snd(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))) )).

% cond_a_def
tff(fact_11_prod__induct5,axiom,(
    ! [E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: fun(product_prod(A,product_prod(B,product_prod(C,product_prod(D,E)))),bool),X3: product_prod(A,product_prod(B,product_prod(C,product_prod(D,E))))] :
      ( ! [A2: A,B2: B,C2: C,D2: D,E2: E] : pp(aa(product_prod(A,product_prod(B,product_prod(C,product_prod(D,E)))),bool,P,aa(product_prod(B,product_prod(C,product_prod(D,E))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,E)))),aa(A,fun(product_prod(B,product_prod(C,product_prod(D,E))),product_prod(A,product_prod(B,product_prod(C,product_prod(D,E))))),product_Pair(A,product_prod(B,product_prod(C,product_prod(D,E)))),A2),aa(product_prod(C,product_prod(D,E)),product_prod(B,product_prod(C,product_prod(D,E))),aa(B,fun(product_prod(C,product_prod(D,E)),product_prod(B,product_prod(C,product_prod(D,E)))),product_Pair(B,product_prod(C,product_prod(D,E))),B2),aa(product_prod(D,E),product_prod(C,product_prod(D,E)),aa(C,fun(product_prod(D,E),product_prod(C,product_prod(D,E))),product_Pair(C,product_prod(D,E)),C2),aa(E,product_prod(D,E),aa(D,fun(E,product_prod(D,E)),product_Pair(D,E),D2),E2))))))
     => pp(aa(product_prod(A,product_prod(B,product_prod(C,product_prod(D,E)))),bool,P,X3)) ) )).

% prod_induct5
tff(fact_12_interrupt__a__def,axiom,(
    ! [O: $tType,W: $tType,M: $tType,X: $tType,T: $tType,L: $tType] : interrupt_a(L,T,X,M,W,O) = aa(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(interrupt_action(T))),aa(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(interrupt_action(T))),fun(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(interrupt_action(T)))),comp(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(interrupt_action(T)),product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))),aa(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(interrupt_action(T))),aa(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(interrupt_action(T))),fun(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(interrupt_action(T)))),comp(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(interrupt_action(T)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),aa(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(interrupt_action(T))),aa(fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(interrupt_action(T))),fun(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(interrupt_action(T)))),comp(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(interrupt_action(T)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),aa(fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),product_prod(list(interrupt_action(T)),list(O))),fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(interrupt_action(T))),aa(fun(product_prod(list(interrupt_action(T)),list(O)),list(interrupt_action(T))),fun(fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),product_prod(list(interrupt_action(T)),list(O))),fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(interrupt_action(T)))),comp(product_prod(list(interrupt_action(T)),list(O)),list(interrupt_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),product_fst(list(interrupt_action(T)),list(O))),product_snd(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_snd(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_snd(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))),product_snd(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))) )).

% interrupt_a_def
tff(fact_13_prod__cases4,axiom,(
    ! [A: $tType,B: $tType,C: $tType,D: $tType,Y: product_prod(A,product_prod(B,product_prod(C,D)))] :
      ~ ! [A2: A,B2: B,C2: C,D2: D] : Y != aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),A2),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),B2),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),C2),D2))) )).

% prod_cases4
tff(fact_14_wset__a__def,axiom,(
    ! [O: $tType,W: $tType,M: $tType,X: $tType,T: $tType,L: $tType] : wset_a(L,T,X,M,W,O) = aa(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(wait_set_action(T,W))),aa(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(wait_set_action(T,W))),fun(fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),fun(product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),list(wait_set_action(T,W)))),comp(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(wait_set_action(T,W)),product_prod(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))),aa(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(wait_set_action(T,W))),aa(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(wait_set_action(T,W))),fun(fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),fun(product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),list(wait_set_action(T,W)))),comp(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(wait_set_action(T,W)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),aa(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(wait_set_action(T,W))),aa(fun(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(wait_set_action(T,W))),fun(fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),fun(product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),list(wait_set_action(T,W)))),comp(product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))),list(wait_set_action(T,W)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))),product_fst(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))),product_snd(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O)))))),product_snd(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))),product_snd(finfun(L,list(lock_action)),product_prod(list(new_thread_action(T,X,M)),product_prod(list(conditional_action(T)),product_prod(list(wait_set_action(T,W)),product_prod(list(interrupt_action(T)),list(O))))))) )).

% wset_a_def
tff(fact_15_old_Oprod_Oinject,axiom,(
    ! [A: $tType,B: $tType,A3: A,B3: B,A4: A,B4: B] :
      ( aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A4),B4)
    <=> ( A3 = A4
        & B3 = B4 ) ) )).

% old.prod.inject
tff(fact_16_prod__induct4,axiom,(
    ! [D: $tType,C: $tType,B: $tType,A: $tType,P: fun(product_prod(A,product_prod(B,product_prod(C,D))),bool),X3: product_prod(A,product_prod(B,product_prod(C,D)))] :
      ( ! [A2: A,B2: B,C2: C,D2: D] : pp(aa(product_prod(A,product_prod(B,product_prod(C,D))),bool,P,aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),A2),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),B2),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),C2),D2)))))
     => pp(aa(product_prod(A,product_prod(B,product_prod(C,D))),bool,P,X3)) ) )).

% prod_induct4
tff(fact_17_prod_Oinject,axiom,(
    ! [A: $tType,B: $tType,X1: A,X2: B,Y1: A,Y2: B] :
      ( aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X1),X2) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Y1),Y2)
    <=> ( X1 = Y1
        & X2 = Y2 ) ) )).

% prod.inject
tff(fact_18_prod__cases3,axiom,(
    ! [A: $tType,B: $tType,C: $tType,Y: product_prod(A,product_prod(B,C))] :
      ~ ! [A2: A,B2: B,C2: C] : Y != aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),A2),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),B2),C2)) )).

% prod_cases3
tff(fact_19_old_Oprod_Oexhaust,axiom,(
    ! [A: $tType,B: $tType,Y: product_prod(A,B)] :
      ~ ! [A2: A,B2: B] : Y != aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2) )).

% old.prod.exhaust
tff(fact_20_eq__onp__same__args,axiom,(
    ! [A: $tType,P: fun(A,bool),X3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),bNF_eq_onp(A,P),X3),X3))
    <=> pp(aa(A,bool,P,X3)) ) )).

% eq_onp_same_args
tff(fact_21_id__apply,axiom,(
    ! [A: $tType,X3: A] : aa(A,A,id(A),X3) = X3 )).

% id_apply
tff(fact_22_internal__case__prod__conv,axiom,(
    ! [B: $tType,A: $tType,C: $tType,C3: fun(B,fun(C,A)),A3: B,B3: C] : aa(product_prod(B,C),A,aa(fun(B,fun(C,A)),fun(product_prod(B,C),A),produc5280177257484947105e_prod(B,C,A),C3),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),A3),B3)) = aa(C,A,aa(B,fun(C,A),C3,A3),B3) )).

% internal_case_prod_conv
tff(fact_23_lock__action_Osize_I5_J,axiom,(
    size_size(lock_action,lock_Lock) = zero_zero(nat) )).

% lock_action.size(5)
tff(fact_24_prod__induct3,axiom,(
    ! [C: $tType,B: $tType,A: $tType,P: fun(product_prod(A,product_prod(B,C)),bool),X3: product_prod(A,product_prod(B,C))] :
      ( ! [A2: A,B2: B,C2: C] : pp(aa(product_prod(A,product_prod(B,C)),bool,P,aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),A2),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),B2),C2))))
     => pp(aa(product_prod(A,product_prod(B,C)),bool,P,X3)) ) )).

% prod_induct3
tff(fact_25_typerep__lock__action__def,axiom,(
    ! [T2: itself(lock_action)] : typerep_typerep(lock_action,T2) = typerep3(literal2(fFalse,fTrue,fTrue,fFalse,fFalse,fFalse,fTrue,literal2(fTrue,fTrue,fTrue,fFalse,fTrue,fFalse,fTrue,literal2(fTrue,fTrue,fFalse,fFalse,fTrue,fFalse,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fTrue,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fTrue,fTrue,fTrue,fFalse,fTrue,fFalse,literal2(fFalse,fFalse,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fFalse,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,literal2(fTrue,fFalse,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fFalse,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,zero_zero(literal)))))))))))))))))))),nil(typerep)) )).

% typerep_lock_action_def
tff(fact_26_ge__eq__refl,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool)),X3: A] :
      ( pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),fequal(A)),R))
     => pp(aa(A,bool,aa(A,fun(A,bool),R,X3),X3)) ) )).

% ge_eq_refl
tff(fact_27_Pair__inject,axiom,(
    ! [A: $tType,B: $tType,A3: A,B3: B,A4: A,B4: B] :
      ( aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A4),B4)
     => ~ ( A3 = A4
         => B3 != B4 ) ) )).

% Pair_inject
tff(fact_28_mem__Collect__eq,axiom,(
    ! [A: $tType,A3: A,P: fun(A,bool)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),aa(fun(A,bool),set(A),collect(A),P)))
    <=> pp(aa(A,bool,P,A3)) ) )).

% mem_Collect_eq
tff(fact_29_lock__action_Osize_I6_J,axiom,(
    size_size(lock_action,lock_Unlock) = zero_zero(nat) )).

% lock_action.size(6)
tff(fact_30_lock__action_Osize_I7_J,axiom,(
    size_size(lock_action,lock_UnlockFail) = zero_zero(nat) )).

% lock_action.size(7)
tff(fact_31_prod__cases,axiom,(
    ! [B: $tType,A: $tType,P: fun(product_prod(A,B),bool),P2: product_prod(A,B)] :
      ( ! [A2: A,B2: B] : pp(aa(product_prod(A,B),bool,P,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)))
     => pp(aa(product_prod(A,B),bool,P,P2)) ) )).

% prod_cases
tff(fact_32_surj__pair,axiom,(
    ! [A: $tType,B: $tType,P2: product_prod(A,B)] :
    ? [X4: A,Y3: B] : P2 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X4),Y3) )).

% surj_pair
tff(fact_33_lock__action_Osize_I8_J,axiom,(
    size_size(lock_action,lock_ReleaseAcquire) = zero_zero(nat) )).

% lock_action.size(8)
tff(fact_34_old_Oprod_Orec,axiom,(
    ! [A: $tType,T: $tType,B: $tType,F1: fun(A,fun(B,T)),A3: A,B3: B] : aa(product_prod(A,B),T,aa(fun(A,fun(B,T)),fun(product_prod(A,B),T),product_rec_prod(A,B,T),F1),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)) = aa(B,T,aa(A,fun(B,T),F1,A3),B3) )).

% old.prod.rec
tff(fact_35_ord__eq__le__trans,axiom,(
    ! [A: $tType] :
      ( ord(A)
     => ! [A3: A,B3: A,C3: A] :
          ( A3 = B3
         => ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),C3))
           => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),C3)) ) ) ) )).

% ord_eq_le_trans
tff(fact_36_tranclp__induct4,axiom,(
    ! [C: $tType,A: $tType,B: $tType,D: $tType,R2: fun(product_prod(A,product_prod(B,product_prod(C,D))),fun(product_prod(A,product_prod(B,product_prod(C,D))),bool)),Ax: A,Ay: B,Az: C,Aw: D,Bx: A,By: B,Bz: C,Bw: D,P: fun(A,fun(B,fun(C,fun(D,bool))))] :
      ( pp(aa(product_prod(A,product_prod(B,product_prod(C,D))),bool,aa(product_prod(A,product_prod(B,product_prod(C,D))),fun(product_prod(A,product_prod(B,product_prod(C,D))),bool),transitive_tranclp(product_prod(A,product_prod(B,product_prod(C,D))),R2),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),Ax),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Ay),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Az),Aw)))),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),Bx),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),By),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Bz),Bw)))))
     => ( ! [A2: A,Aa2: B,Ab: C,B2: D] :
            ( pp(aa(product_prod(A,product_prod(B,product_prod(C,D))),bool,aa(product_prod(A,product_prod(B,product_prod(C,D))),fun(product_prod(A,product_prod(B,product_prod(C,D))),bool),R2,aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),Ax),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Ay),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Az),Aw)))),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),A2),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Aa2),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Ab),B2)))))
           => pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),P,A2),Aa2),Ab),B2)) )
       => ( ! [A2: A,Aa2: B,Ab: C,B2: D,Ac: A,Ad: B,Ae: C,Ba: D] :
              ( pp(aa(product_prod(A,product_prod(B,product_prod(C,D))),bool,aa(product_prod(A,product_prod(B,product_prod(C,D))),fun(product_prod(A,product_prod(B,product_prod(C,D))),bool),transitive_tranclp(product_prod(A,product_prod(B,product_prod(C,D))),R2),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),Ax),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Ay),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Az),Aw)))),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),A2),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Aa2),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Ab),B2)))))
             => ( pp(aa(product_prod(A,product_prod(B,product_prod(C,D))),bool,aa(product_prod(A,product_prod(B,product_prod(C,D))),fun(product_prod(A,product_prod(B,product_prod(C,D))),bool),R2,aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),A2),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Aa2),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Ab),B2)))),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),Ac),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Ad),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Ae),Ba)))))
               => ( pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),P,A2),Aa2),Ab),B2))
                 => pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),P,Ac),Ad),Ae),Ba)) ) ) )
         => pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),P,Bx),By),Bz),Bw)) ) ) ) )).

% tranclp_induct4
tff(fact_37_vimage2p__def,axiom,(
    ! [A: $tType,D: $tType,C: $tType,E: $tType,B: $tType,F3: fun(A,D),G3: fun(B,E),R: fun(D,fun(E,C)),X5: A,Xa2: B] : aa(B,C,aa(A,fun(B,C),aa(fun(D,fun(E,C)),fun(A,fun(B,C)),bNF_vimage2p(A,D,B,E,C,F3,G3),R),X5),Xa2) = aa(E,C,aa(D,fun(E,C),R,aa(A,D,F3,X5)),aa(B,E,G3,Xa2)) )).

% vimage2p_def
tff(fact_38_comp__eq__dest,axiom,(
    ! [C: $tType,B: $tType,D: $tType,A: $tType,A3: fun(C,B),B3: fun(A,C),C3: fun(D,B),D3: fun(A,D),V: A] :
      ( aa(fun(A,C),fun(A,B),aa(fun(C,B),fun(fun(A,C),fun(A,B)),comp(C,B,A),A3),B3) = aa(fun(A,D),fun(A,B),aa(fun(D,B),fun(fun(A,D),fun(A,B)),comp(D,B,A),C3),D3)
     => aa(C,B,A3,aa(A,C,B3,V)) = aa(D,B,C3,aa(A,D,D3,V)) ) )).

% comp_eq_dest
tff(fact_39_id__def,axiom,(
    ! [A: $tType,X5: A] : aa(A,A,id(A),X5) = X5 )).

% id_def
tff(fact_40_comp__eq__dest__lhs,axiom,(
    ! [C: $tType,B: $tType,A: $tType,A3: fun(C,B),B3: fun(A,C),C3: fun(A,B),V: A] :
      ( aa(fun(A,C),fun(A,B),aa(fun(C,B),fun(fun(A,C),fun(A,B)),comp(C,B,A),A3),B3) = C3
     => aa(C,B,A3,aa(A,C,B3,V)) = aa(A,B,C3,V) ) )).

% comp_eq_dest_lhs
tff(fact_41_ssubst__Pair__rhs,axiom,(
    ! [B: $tType,A: $tType,R2: A,S: B,R: set(product_prod(A,B)),S2: B] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),R2),S)),R))
     => ( S2 = S
       => pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),R2),S2)),R)) ) ) )).

% ssubst_Pair_rhs
tff(fact_42_old_Oprod_Ocase,axiom,(
    ! [A: $tType,C: $tType,B: $tType,F3: fun(A,fun(B,C)),X1: A,X2: B] : aa(product_prod(A,B),C,aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),F3),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X1),X2)) = aa(B,C,aa(A,fun(B,C),F3,X1),X2) )).

% old.prod.case
tff(fact_43_conversep__iff,axiom,(
    ! [A: $tType,B: $tType,R2: fun(A,fun(B,bool)),A3: B,B3: A] :
      ( pp(aa(A,bool,aa(B,fun(A,bool),conversep(A,B,R2),A3),B3))
    <=> pp(aa(B,bool,aa(A,fun(B,bool),R2,B3),A3)) ) )).

% conversep_iff
tff(fact_44_curry__conv,axiom,(
    ! [A: $tType,B: $tType,C: $tType,F3: fun(product_prod(B,C),A),A3: B,B3: C] : aa(C,A,aa(B,fun(C,A),product_curry(B,C,A,F3),A3),B3) = aa(product_prod(B,C),A,F3,aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),A3),B3)) )).

% curry_conv
tff(fact_45_lock__action_Osize_I1_J,axiom,(
    lock_s5444299122428672615action(lock_Lock) = zero_zero(nat) )).

% lock_action.size(1)
tff(fact_46_rtranclp__induct4,axiom,(
    ! [C: $tType,A: $tType,B: $tType,D: $tType,R2: fun(product_prod(A,product_prod(B,product_prod(C,D))),fun(product_prod(A,product_prod(B,product_prod(C,D))),bool)),Ax: A,Ay: B,Az: C,Aw: D,Bx: A,By: B,Bz: C,Bw: D,P: fun(A,fun(B,fun(C,fun(D,bool))))] :
      ( pp(aa(product_prod(A,product_prod(B,product_prod(C,D))),bool,aa(product_prod(A,product_prod(B,product_prod(C,D))),fun(product_prod(A,product_prod(B,product_prod(C,D))),bool),transitive_rtranclp(product_prod(A,product_prod(B,product_prod(C,D))),R2),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),Ax),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Ay),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Az),Aw)))),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),Bx),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),By),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Bz),Bw)))))
     => ( pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),P,Ax),Ay),Az),Aw))
       => ( ! [A2: A,Aa2: B,Ab: C,B2: D,Ac: A,Ad: B,Ae: C,Ba: D] :
              ( pp(aa(product_prod(A,product_prod(B,product_prod(C,D))),bool,aa(product_prod(A,product_prod(B,product_prod(C,D))),fun(product_prod(A,product_prod(B,product_prod(C,D))),bool),transitive_rtranclp(product_prod(A,product_prod(B,product_prod(C,D))),R2),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),Ax),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Ay),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Az),Aw)))),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),A2),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Aa2),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Ab),B2)))))
             => ( pp(aa(product_prod(A,product_prod(B,product_prod(C,D))),bool,aa(product_prod(A,product_prod(B,product_prod(C,D))),fun(product_prod(A,product_prod(B,product_prod(C,D))),bool),R2,aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),A2),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Aa2),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Ab),B2)))),aa(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D))),aa(A,fun(product_prod(B,product_prod(C,D)),product_prod(A,product_prod(B,product_prod(C,D)))),product_Pair(A,product_prod(B,product_prod(C,D))),Ac),aa(product_prod(C,D),product_prod(B,product_prod(C,D)),aa(B,fun(product_prod(C,D),product_prod(B,product_prod(C,D))),product_Pair(B,product_prod(C,D)),Ad),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),Ae),Ba)))))
               => ( pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),P,A2),Aa2),Ab),B2))
                 => pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),P,Ac),Ad),Ae),Ba)) ) ) )
         => pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),P,Bx),By),Bz),Bw)) ) ) ) )).

% rtranclp_induct4
tff(fact_47_swap__simp,axiom,(
    ! [A: $tType,B: $tType,X3: B,Y: A] : aa(product_prod(B,A),product_prod(A,B),product_swap(B,A),aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),X3),Y)) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Y),X3) )).

% swap_simp
tff(fact_48_curryI,axiom,(
    ! [A: $tType,B: $tType,F3: fun(product_prod(A,B),bool),A3: A,B3: B] :
      ( pp(aa(product_prod(A,B),bool,F3,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)))
     => pp(aa(B,bool,aa(A,fun(B,bool),product_curry(A,B,bool,F3),A3),B3)) ) )).

% curryI
tff(fact_49_lock__action_Osize_I2_J,axiom,(
    lock_s5444299122428672615action(lock_Unlock) = zero_zero(nat) )).

% lock_action.size(2)
tff(fact_50_predicate2D,axiom,(
    ! [A: $tType,B: $tType,P: fun(A,fun(B,bool)),Q: fun(A,fun(B,bool)),X3: A,Y: B] :
      ( pp(aa(fun(A,fun(B,bool)),bool,aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),bool),ord_less_eq(fun(A,fun(B,bool))),P),Q))
     => ( pp(aa(B,bool,aa(A,fun(B,bool),P,X3),Y))
       => pp(aa(B,bool,aa(A,fun(B,bool),Q,X3),Y)) ) ) )).

% predicate2D
tff(fact_51_rtranclp__induct3,axiom,(
    ! [B: $tType,A: $tType,C: $tType,R2: fun(product_prod(A,product_prod(B,C)),fun(product_prod(A,product_prod(B,C)),bool)),Ax: A,Ay: B,Az: C,Bx: A,By: B,Bz: C,P: fun(A,fun(B,fun(C,bool)))] :
      ( pp(aa(product_prod(A,product_prod(B,C)),bool,aa(product_prod(A,product_prod(B,C)),fun(product_prod(A,product_prod(B,C)),bool),transitive_rtranclp(product_prod(A,product_prod(B,C)),R2),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),Ax),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ay),Az))),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),Bx),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),By),Bz))))
     => ( pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),P,Ax),Ay),Az))
       => ( ! [A2: A,Aa2: B,B2: C,Ab: A,Ac: B,Ba: C] :
              ( pp(aa(product_prod(A,product_prod(B,C)),bool,aa(product_prod(A,product_prod(B,C)),fun(product_prod(A,product_prod(B,C)),bool),transitive_rtranclp(product_prod(A,product_prod(B,C)),R2),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),Ax),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ay),Az))),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),A2),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Aa2),B2))))
             => ( pp(aa(product_prod(A,product_prod(B,C)),bool,aa(product_prod(A,product_prod(B,C)),fun(product_prod(A,product_prod(B,C)),bool),R2,aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),A2),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Aa2),B2))),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),Ab),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ac),Ba))))
               => ( pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),P,A2),Aa2),B2))
                 => pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),P,Ab),Ac),Ba)) ) ) )
         => pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),P,Bx),By),Bz)) ) ) ) )).

% rtranclp_induct3
tff(fact_52_lock__action_Osize_I3_J,axiom,(
    lock_s5444299122428672615action(lock_UnlockFail) = zero_zero(nat) )).

% lock_action.size(3)
tff(fact_53_ext,axiom,(
    ! [B: $tType,A: $tType,F3: fun(A,B),G3: fun(A,B)] :
      ( ! [X4: A] : aa(A,B,F3,X4) = aa(A,B,G3,X4)
     => F3 = G3 ) )).

% ext
tff(fact_54_tranclp__induct3,axiom,(
    ! [B: $tType,A: $tType,C: $tType,R2: fun(product_prod(A,product_prod(B,C)),fun(product_prod(A,product_prod(B,C)),bool)),Ax: A,Ay: B,Az: C,Bx: A,By: B,Bz: C,P: fun(A,fun(B,fun(C,bool)))] :
      ( pp(aa(product_prod(A,product_prod(B,C)),bool,aa(product_prod(A,product_prod(B,C)),fun(product_prod(A,product_prod(B,C)),bool),transitive_tranclp(product_prod(A,product_prod(B,C)),R2),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),Ax),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ay),Az))),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),Bx),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),By),Bz))))
     => ( ! [A2: A,Aa2: B,B2: C] :
            ( pp(aa(product_prod(A,product_prod(B,C)),bool,aa(product_prod(A,product_prod(B,C)),fun(product_prod(A,product_prod(B,C)),bool),R2,aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),Ax),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ay),Az))),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),A2),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Aa2),B2))))
           => pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),P,A2),Aa2),B2)) )
       => ( ! [A2: A,Aa2: B,B2: C,Ab: A,Ac: B,Ba: C] :
              ( pp(aa(product_prod(A,product_prod(B,C)),bool,aa(product_prod(A,product_prod(B,C)),fun(product_prod(A,product_prod(B,C)),bool),transitive_tranclp(product_prod(A,product_prod(B,C)),R2),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),Ax),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ay),Az))),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),A2),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Aa2),B2))))
             => ( pp(aa(product_prod(A,product_prod(B,C)),bool,aa(product_prod(A,product_prod(B,C)),fun(product_prod(A,product_prod(B,C)),bool),R2,aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),A2),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Aa2),B2))),aa(product_prod(B,C),product_prod(A,product_prod(B,C)),aa(A,fun(product_prod(B,C),product_prod(A,product_prod(B,C))),product_Pair(A,product_prod(B,C)),Ab),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ac),Ba))))
               => ( pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),P,A2),Aa2),B2))
                 => pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),P,Ab),Ac),Ba)) ) ) )
         => pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),P,Bx),By),Bz)) ) ) ) )).

% tranclp_induct3
tff(fact_55_apsnd__conv,axiom,(
    ! [A: $tType,B: $tType,C: $tType,F3: fun(C,B),X3: A,Y: C] : aa(product_prod(A,C),product_prod(A,B),product_apsnd(C,B,A,F3),aa(C,product_prod(A,C),aa(A,fun(C,product_prod(A,C)),product_Pair(A,C),X3),Y)) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),aa(C,B,F3,Y)) )).

% apsnd_conv
tff(fact_56_old_Obool_Osimps_I6_J,axiom,(
    ! [T: $tType,F1: T,F22: T] : product_rec_bool(T,F1,F22,fFalse) = F22 )).

% old.bool.simps(6)
tff(fact_57_refl__ge__eq,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( ! [X4: A] : pp(aa(A,bool,aa(A,fun(A,bool),R,X4),X4))
     => pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),fequal(A)),R)) ) )).

% refl_ge_eq
tff(fact_58_lock__action_Osize_I4_J,axiom,(
    lock_s5444299122428672615action(lock_ReleaseAcquire) = zero_zero(nat) )).

% lock_action.size(4)
tff(fact_59_old_Obool_Osimps_I5_J,axiom,(
    ! [T: $tType,F1: T,F22: T] : product_rec_bool(T,F1,F22,fTrue) = F1 )).

% old.bool.simps(5)
tff(fact_60_comp__apply,axiom,(
    ! [A: $tType,B: $tType,C: $tType,F3: fun(B,A),G3: fun(C,B),X3: C] : aa(C,A,aa(fun(C,B),fun(C,A),aa(fun(B,A),fun(fun(C,B),fun(C,A)),comp(B,A,C),F3),G3),X3) = aa(B,A,F3,aa(C,B,G3,X3)) )).

% comp_apply
tff(fact_61_OO__Grp__alt,axiom,(
    ! [A: $tType,C: $tType,B: $tType,A5: set(C),F3: fun(C,A),G3: fun(C,B),X5: A,Xa2: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),relcompp(A,C,B,conversep(C,A,bNF_Grp(C,A,A5,F3)),bNF_Grp(C,B,A5,G3)),X5),Xa2))
    <=> ? [Z: C] :
          ( pp(aa(set(C),bool,aa(C,fun(set(C),bool),member(C),Z),A5))
          & aa(C,A,F3,Z) = X5
          & aa(C,B,G3,Z) = Xa2 ) ) )).

% OO_Grp_alt
tff(fact_62_fst__eqD,axiom,(
    ! [B: $tType,A: $tType,X3: A,Y: B,A3: A] :
      ( aa(product_prod(A,B),A,product_fst(A,B),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),Y)) = A3
     => X3 = A3 ) )).

% fst_eqD
tff(fact_63_eq__onp__live__step,axiom,(
    ! [A: $tType,X3: bool,Y: bool,P: fun(A,bool),A3: A] :
      ( ( pp(X3)
      <=> pp(Y) )
     => ( ( pp(aa(A,bool,aa(A,fun(A,bool),bNF_eq_onp(A,P),A3),A3))
          & pp(X3) )
      <=> ( pp(aa(A,bool,P,A3))
          & pp(Y) ) ) ) )).

% eq_onp_live_step
tff(fact_64_swap__swap,axiom,(
    ! [B: $tType,A: $tType,P2: product_prod(A,B)] : aa(product_prod(B,A),product_prod(A,B),product_swap(B,A),aa(product_prod(A,B),product_prod(B,A),product_swap(A,B),P2)) = P2 )).

% swap_swap
tff(fact_65_fst__apsnd,axiom,(
    ! [B: $tType,C: $tType,A: $tType,F3: fun(C,B),X3: product_prod(A,C)] : aa(product_prod(A,B),A,product_fst(A,B),aa(product_prod(A,C),product_prod(A,B),product_apsnd(C,B,A,F3),X3)) = aa(product_prod(A,C),A,product_fst(A,C),X3) )).

% fst_apsnd
tff(fact_66_rtranclp__induct,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,P: fun(A,bool)] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),B3))
     => ( pp(aa(A,bool,P,A3))
       => ( ! [Y3: A,Z2: A] :
              ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),Y3))
             => ( pp(aa(A,bool,aa(A,fun(A,bool),R2,Y3),Z2))
               => ( pp(aa(A,bool,P,Y3))
                 => pp(aa(A,bool,P,Z2)) ) ) )
         => pp(aa(A,bool,P,B3)) ) ) ) )).

% rtranclp_induct
tff(fact_67_diag__imp__eq__le,axiom,(
    ! [A: $tType,A5: set(A),R: fun(A,fun(A,bool))] :
      ( ! [X4: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),A5))
         => pp(aa(A,bool,aa(A,fun(A,bool),R,X4),X4)) )
     => ! [X5: A,Y4: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X5),A5))
         => ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Y4),A5))
           => ( X5 = Y4
             => pp(aa(A,bool,aa(A,fun(A,bool),R,X5),Y4)) ) ) ) ) )).

% diag_imp_eq_le
tff(fact_68_converse__tranclp__induct2,axiom,(
    ! [A: $tType,B: $tType,R2: fun(product_prod(A,B),fun(product_prod(A,B),bool)),Ax: A,Ay: B,Bx: A,By: B,P: fun(A,fun(B,bool))] :
      ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_tranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By)))
     => ( ! [A2: A,B2: B] :
            ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),R2,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By)))
           => pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2)) )
       => ( ! [A2: A,B2: B,Aa2: A,Ba: B] :
              ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),R2,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba)))
             => ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_tranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By)))
               => ( pp(aa(B,bool,aa(A,fun(B,bool),P,Aa2),Ba))
                 => pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2)) ) ) )
         => pp(aa(B,bool,aa(A,fun(B,bool),P,Ax),Ay)) ) ) ) )).

% converse_tranclp_induct2
tff(fact_69_lock__action_Ocase_I1_J,axiom,(
    ! [A: $tType,F1: A,F22: A,F32: A,F4: A] : aa(lock_action,A,aa(A,fun(lock_action,A),aa(A,fun(A,fun(lock_action,A)),aa(A,fun(A,fun(A,fun(lock_action,A))),aa(A,fun(A,fun(A,fun(A,fun(lock_action,A)))),lock_c780515111982967862action(A),F1),F22),F32),F4),lock_Lock) = F1 )).

% lock_action.case(1)
tff(fact_70_curryD,axiom,(
    ! [A: $tType,B: $tType,F3: fun(product_prod(A,B),bool),A3: A,B3: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),product_curry(A,B,bool,F3),A3),B3))
     => pp(aa(product_prod(A,B),bool,F3,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3))) ) )).

% curryD
tff(fact_71_comp__def,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(B,C),G3: fun(A,B),X5: A] : aa(A,C,aa(fun(A,B),fun(A,C),aa(fun(B,C),fun(fun(A,B),fun(A,C)),comp(B,C,A),F3),G3),X5) = aa(B,C,F3,aa(A,B,G3,X5)) )).

% comp_def
tff(fact_72_order__less__irrefl,axiom,(
    ! [A: $tType] :
      ( preorder(A)
     => ! [X3: A] : ~ pp(ord_less(A,X3,X3)) ) )).

% order_less_irrefl
tff(fact_73_curryE,axiom,(
    ! [A: $tType,B: $tType,F3: fun(product_prod(A,B),bool),A3: A,B3: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),product_curry(A,B,bool,F3),A3),B3))
     => pp(aa(product_prod(A,B),bool,F3,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3))) ) )).

% curryE
tff(fact_74_eq__onp__eqD,axiom,(
    ! [A: $tType,P: fun(A,bool),Q: fun(A,fun(A,bool)),X3: A] :
      ( bNF_eq_onp(A,P) = Q
     => ( pp(aa(A,bool,P,X3))
      <=> pp(aa(A,bool,aa(A,fun(A,bool),Q,X3),X3)) ) ) )).

% eq_onp_eqD
tff(fact_75_snd__conv,axiom,(
    ! [Aa: $tType,A: $tType,X1: Aa,X2: A] : aa(product_prod(Aa,A),A,product_snd(Aa,A),aa(A,product_prod(Aa,A),aa(Aa,fun(A,product_prod(Aa,A)),product_Pair(Aa,A),X1),X2)) = X2 )).

% snd_conv
tff(fact_76_tranclp__induct,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,P: fun(A,bool)] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),B3))
     => ( ! [Y3: A] :
            ( pp(aa(A,bool,aa(A,fun(A,bool),R2,A3),Y3))
           => pp(aa(A,bool,P,Y3)) )
       => ( ! [Y3: A,Z2: A] :
              ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),Y3))
             => ( pp(aa(A,bool,aa(A,fun(A,bool),R2,Y3),Z2))
               => ( pp(aa(A,bool,P,Y3))
                 => pp(aa(A,bool,P,Z2)) ) ) )
         => pp(aa(A,bool,P,B3)) ) ) ) )).

% tranclp_induct
tff(fact_77_lock__action_Ocase_I2_J,axiom,(
    ! [A: $tType,F1: A,F22: A,F32: A,F4: A] : aa(lock_action,A,aa(A,fun(lock_action,A),aa(A,fun(A,fun(lock_action,A)),aa(A,fun(A,fun(A,fun(lock_action,A))),aa(A,fun(A,fun(A,fun(A,fun(lock_action,A)))),lock_c780515111982967862action(A),F1),F22),F32),F4),lock_Unlock) = F22 )).

% lock_action.case(2)
tff(fact_78_rel__fun__eq__onp__rel,axiom,(
    ! [B: $tType,C: $tType,A: $tType,R: fun(A,bool),S3: fun(B,fun(C,bool)),X5: fun(A,B),Xa2: fun(A,C)] :
      ( pp(aa(fun(A,C),bool,aa(fun(A,B),fun(fun(A,C),bool),bNF_rel_fun(A,A,B,C,bNF_eq_onp(A,R),S3),X5),Xa2))
    <=> ! [Xb: A] :
          ( pp(aa(A,bool,R,Xb))
         => pp(aa(C,bool,aa(B,fun(C,bool),S3,aa(A,B,X5,Xb)),aa(A,C,Xa2,Xb))) ) ) )).

% rel_fun_eq_onp_rel
tff(fact_79_lock__action_Odistinct_I1_J,axiom,(
    lock_Lock != lock_Unlock )).

% lock_action.distinct(1)
tff(fact_80_tranclp__rtranclp__absorb,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] : transitive_rtranclp(A,transitive_tranclp(A,R)) = transitive_rtranclp(A,R) )).

% tranclp_rtranclp_absorb
tff(fact_81_antisym,axiom,(
    ! [A: $tType] :
      ( order(A)
     => ! [A3: A,B3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),B3))
         => ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),A3))
           => A3 = B3 ) ) ) )).

% antisym
tff(fact_82_rtranclp__tranclp__absorb,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] : transitive_tranclp(A,transitive_rtranclp(A,R)) = transitive_rtranclp(A,R) )).

% rtranclp_tranclp_absorb
tff(fact_83_lock__action_Ocase_I3_J,axiom,(
    ! [A: $tType,F1: A,F22: A,F32: A,F4: A] : aa(lock_action,A,aa(A,fun(lock_action,A),aa(A,fun(A,fun(lock_action,A)),aa(A,fun(A,fun(A,fun(lock_action,A))),aa(A,fun(A,fun(A,fun(A,fun(lock_action,A)))),lock_c780515111982967862action(A),F1),F22),F32),F4),lock_UnlockFail) = F32 )).

% lock_action.case(3)
tff(fact_84_r__into__rtranclp,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Y: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),R2,X3),Y))
     => pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),X3),Y)) ) )).

% r_into_rtranclp
tff(fact_85_internal__case__prod__def,axiom,(
    ! [C: $tType,B: $tType,A: $tType] : produc5280177257484947105e_prod(A,B,C) = product_case_prod(A,B,C) )).

% internal_case_prod_def
tff(fact_86_Collect__mem__eq,axiom,(
    ! [G: $tType,A6: set(G)] : aa(fun(G,bool),set(G),collect(G),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),A6)) = A6 )).

% Collect_mem_eq
tff(fact_87_lock__action_Osimps_I10_J,axiom,(
    lock_ReleaseAcquire != lock_Unlock )).

% lock_action.simps(10)
tff(fact_88_rtranclp__idemp,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool))] : transitive_rtranclp(A,transitive_rtranclp(A,R2)) = transitive_rtranclp(A,R2) )).

% rtranclp_idemp
tff(fact_89_lock__action_Ocase_I4_J,axiom,(
    ! [A: $tType,F1: A,F22: A,F32: A,F4: A] : aa(lock_action,A,aa(A,fun(lock_action,A),aa(A,fun(A,fun(lock_action,A)),aa(A,fun(A,fun(A,fun(lock_action,A))),aa(A,fun(A,fun(A,fun(A,fun(lock_action,A)))),lock_c780515111982967862action(A),F1),F22),F32),F4),lock_ReleaseAcquire) = F4 )).

% lock_action.case(4)
tff(fact_90_tranclp__induct2,axiom,(
    ! [A: $tType,B: $tType,R2: fun(product_prod(A,B),fun(product_prod(A,B),bool)),Ax: A,Ay: B,Bx: A,By: B,P: fun(A,fun(B,bool))] :
      ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_tranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By)))
     => ( ! [A2: A,B2: B] :
            ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),R2,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)))
           => pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2)) )
       => ( ! [A2: A,B2: B,Aa2: A,Ba: B] :
              ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_tranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)))
             => ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),R2,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba)))
               => ( pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2))
                 => pp(aa(B,bool,aa(A,fun(B,bool),P,Aa2),Ba)) ) ) )
         => pp(aa(B,bool,aa(A,fun(B,bool),P,Bx),By)) ) ) ) )).

% tranclp_induct2
tff(fact_91_rel__fun__eq__eq__onp,axiom,(
    ! [G: $tType,H: $tType,P3: fun(H,bool)] : bNF_rel_fun(G,G,H,H,fequal(G),bNF_eq_onp(H,P3)) = bNF_eq_onp(fun(G,H),aa(fun(fun(G,H),fun(G,bool)),fun(fun(G,H),bool),aa(fun(fun(G,bool),bool),fun(fun(fun(G,H),fun(G,bool)),fun(fun(G,H),bool)),combb(fun(G,bool),bool,fun(G,H)),fAll(G)),aa(fun(H,bool),fun(fun(G,H),fun(G,bool)),combb(H,bool,G),P3))) )).

% rel_fun_eq_eq_onp
tff(fact_92_rtranclp__induct2,axiom,(
    ! [A: $tType,B: $tType,R2: fun(product_prod(A,B),fun(product_prod(A,B),bool)),Ax: A,Ay: B,Bx: A,By: B,P: fun(A,fun(B,bool))] :
      ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_rtranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By)))
     => ( pp(aa(B,bool,aa(A,fun(B,bool),P,Ax),Ay))
       => ( ! [A2: A,B2: B,Aa2: A,Ba: B] :
              ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_rtranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)))
             => ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),R2,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba)))
               => ( pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2))
                 => pp(aa(B,bool,aa(A,fun(B,bool),P,Aa2),Ba)) ) ) )
         => pp(aa(B,bool,aa(A,fun(B,bool),P,Bx),By)) ) ) ) )).

% rtranclp_induct2
tff(fact_93_converse__rtranclpE2,axiom,(
    ! [A: $tType,B: $tType,R2: fun(product_prod(A,B),fun(product_prod(A,B),bool)),Xa3: A,Xb2: B,Za: A,Zb: B] :
      ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_rtranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Xa3),Xb2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Za),Zb)))
     => ( aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Xa3),Xb2) != aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Za),Zb)
       => ~ ! [A2: A,B2: B] :
              ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),R2,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Xa3),Xb2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)))
             => ~ pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_rtranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Za),Zb))) ) ) ) )).

% converse_rtranclpE2
tff(fact_94_case__prod__conv,axiom,(
    ! [B: $tType,A: $tType,C: $tType,F3: fun(B,fun(C,A)),A3: B,B3: C] : aa(product_prod(B,C),A,aa(fun(B,fun(C,A)),fun(product_prod(B,C),A),product_case_prod(B,C,A),F3),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),A3),B3)) = aa(C,A,aa(B,fun(C,A),F3,A3),B3) )).

% case_prod_conv
tff(fact_95_wait__set__action_Osize__gen__o__map,axiom,(
    ! [T: $tType,A: $tType,B: $tType,W: $tType,F3: fun(A,nat),Fa: fun(B,nat),G3: fun(T,A),Ga: fun(W,B)] : aa(fun(wait_set_action(T,W),wait_set_action(A,B)),fun(wait_set_action(T,W),nat),aa(fun(wait_set_action(A,B),nat),fun(fun(wait_set_action(T,W),wait_set_action(A,B)),fun(wait_set_action(T,W),nat)),comp(wait_set_action(A,B),nat,wait_set_action(T,W)),wait_s6257567816659622979action(A,B,F3,Fa)),wait_s8865918783579551590action(T,A,W,B,G3,Ga)) = wait_s6257567816659622979action(T,W,aa(fun(T,A),fun(T,nat),aa(fun(A,nat),fun(fun(T,A),fun(T,nat)),comp(A,nat,T),F3),G3),aa(fun(W,B),fun(W,nat),aa(fun(B,nat),fun(fun(W,B),fun(W,nat)),comp(B,nat,W),Fa),Ga)) )).

% wait_set_action.size_gen_o_map
tff(fact_96_lock__action_Odistinct_I11_J,axiom,(
    lock_UnlockFail != lock_ReleaseAcquire )).

% lock_action.distinct(11)
tff(fact_97_Collect__cong,axiom,(
    ! [A: $tType,P: fun(A,bool),Q: fun(A,bool)] :
      ( ! [X4: A] :
          ( pp(aa(A,bool,P,X4))
        <=> pp(aa(A,bool,Q,X4)) )
     => aa(fun(A,bool),set(A),collect(A),P) = aa(fun(A,bool),set(A),collect(A),Q) ) )).

% Collect_cong
tff(fact_98_lock__action_Odistinct_I12_J,axiom,(
    lock_ReleaseAcquire != lock_UnlockFail )).

% lock_action.distinct(12)
tff(fact_99_image__eqI,axiom,(
    ! [A: $tType,B: $tType,B3: A,F3: fun(B,A),X3: B,A5: set(B)] :
      ( B3 = aa(B,A,F3,X3)
     => ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X3),A5))
       => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),B3),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5))) ) ) )).

% image_eqI
tff(fact_100_rtranclp_Ortrancl__refl,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A] : pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),A3)) )).

% rtranclp.rtrancl_refl
tff(fact_101_converse__rtranclp__induct2,axiom,(
    ! [A: $tType,B: $tType,R2: fun(product_prod(A,B),fun(product_prod(A,B),bool)),Ax: A,Ay: B,Bx: A,By: B,P: fun(A,fun(B,bool))] :
      ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_rtranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By)))
     => ( pp(aa(B,bool,aa(A,fun(B,bool),P,Bx),By))
       => ( ! [A2: A,B2: B,Aa2: A,Ba: B] :
              ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),R2,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba)))
             => ( pp(aa(product_prod(A,B),bool,aa(product_prod(A,B),fun(product_prod(A,B),bool),transitive_rtranclp(product_prod(A,B),R2),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By)))
               => ( pp(aa(B,bool,aa(A,fun(B,bool),P,Aa2),Ba))
                 => pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2)) ) ) )
         => pp(aa(B,bool,aa(A,fun(B,bool),P,Ax),Ay)) ) ) ) )).

% converse_rtranclp_induct2
tff(fact_102_lock__action_Odistinct_I2_J,axiom,(
    lock_Unlock != lock_Lock )).

% lock_action.distinct(2)
tff(fact_103_tranclp__rtranclp__tranclp,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,C3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),B3))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),B3),C3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),C3)) ) ) )).

% tranclp_rtranclp_tranclp
tff(fact_104_rtranclp_Ortrancl__into__rtrancl,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,C3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),B3))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),R2,B3),C3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),C3)) ) ) )).

% rtranclp.rtrancl_into_rtrancl
tff(fact_105_converse__rtranclpE,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Z3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),X3),Z3))
     => ( X3 != Z3
       => ~ ! [Y3: A] :
              ( pp(aa(A,bool,aa(A,fun(A,bool),R2,X3),Y3))
             => ~ pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),Y3),Z3)) ) ) ) )).

% converse_rtranclpE
tff(fact_106_lock__action_Odistinct_I3_J,axiom,(
    lock_Lock != lock_UnlockFail )).

% lock_action.distinct(3)
tff(fact_107_rtranclp__tranclp__tranclp,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Y: A,Z3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),X3),Y))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),Y),Z3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),X3),Z3)) ) ) )).

% rtranclp_tranclp_tranclp
tff(fact_108_converse__rtranclp__induct,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,P: fun(A,bool)] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),B3))
     => ( pp(aa(A,bool,P,B3))
       => ( ! [Y3: A,Z2: A] :
              ( pp(aa(A,bool,aa(A,fun(A,bool),R2,Y3),Z2))
             => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),Z2),B3))
               => ( pp(aa(A,bool,P,Z2))
                 => pp(aa(A,bool,P,Y3)) ) ) )
         => pp(aa(A,bool,P,A3)) ) ) ) )).

% converse_rtranclp_induct
tff(fact_109_lock__action_Ocase__distrib,axiom,(
    ! [A: $tType,B: $tType,H2: fun(A,B),F1: A,F22: A,F32: A,F4: A,Lock_action: lock_action] : aa(A,B,H2,aa(lock_action,A,aa(A,fun(lock_action,A),aa(A,fun(A,fun(lock_action,A)),aa(A,fun(A,fun(A,fun(lock_action,A))),aa(A,fun(A,fun(A,fun(A,fun(lock_action,A)))),lock_c780515111982967862action(A),F1),F22),F32),F4),Lock_action)) = aa(lock_action,B,aa(B,fun(lock_action,B),aa(B,fun(B,fun(lock_action,B)),aa(B,fun(B,fun(B,fun(lock_action,B))),aa(B,fun(B,fun(B,fun(B,fun(lock_action,B)))),lock_c780515111982967862action(B),aa(A,B,H2,F1)),aa(A,B,H2,F22)),aa(A,B,H2,F32)),aa(A,B,H2,F4)),Lock_action) )).

% lock_action.case_distrib
tff(fact_110_rtranclp__into__tranclp2,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,C3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),R2,A3),B3))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),B3),C3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),C3)) ) ) )).

% rtranclp_into_tranclp2
tff(fact_111_lock__action_Odistinct_I4_J,axiom,(
    lock_UnlockFail != lock_Lock )).

% lock_action.distinct(4)
tff(fact_112_mono__rtranclp,axiom,(
    ! [A: $tType,X3: fun(A,fun(A,bool)),Y: fun(A,fun(A,bool)),A3: A,B3: A] :
      ( ! [A2: A,B2: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),X3,A2),B2))
         => pp(aa(A,bool,aa(A,fun(A,bool),Y,A2),B2)) )
     => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,X3),A3),B3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,Y),A3),B3)) ) ) )).

% mono_rtranclp
tff(fact_113_converse__rtranclp__into__rtranclp,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,C3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),R2,A3),B3))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),B3),C3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),C3)) ) ) )).

% converse_rtranclp_into_rtranclp
tff(fact_114_lock__action_Odistinct_I5_J,axiom,(
    lock_Lock != lock_ReleaseAcquire )).

% lock_action.distinct(5)
tff(fact_115_rtranclp_Ocases,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A1: A,A22: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A1),A22))
     => ( A22 != A1
       => ~ ! [B2: A] :
              ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A1),B2))
             => ~ pp(aa(A,bool,aa(A,fun(A,bool),R2,B2),A22)) ) ) ) )).

% rtranclp.cases
tff(fact_116_prod_Ocollapse,axiom,(
    ! [B: $tType,A: $tType,Prod: product_prod(A,B)] : aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(product_prod(A,B),A,product_fst(A,B),Prod)),aa(product_prod(A,B),B,product_snd(A,B),Prod)) = Prod )).

% prod.collapse
tff(fact_117_rtranclp_Osimps,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A1: A,A22: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A1),A22))
    <=> ( ? [A7: A] :
            ( A1 = A7
            & A22 = A7 )
        | ? [A7: A,B5: A,C4: A] :
            ( A1 = A7
            & A22 = C4
            & pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A7),B5))
            & pp(aa(A,bool,aa(A,fun(A,bool),R2,B5),C4)) ) ) ) )).

% rtranclp.simps
tff(fact_118_converse__tranclpE,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Z3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),X3),Z3))
     => ( ~ pp(aa(A,bool,aa(A,fun(A,bool),R2,X3),Z3))
       => ~ ! [Y3: A] :
              ( pp(aa(A,bool,aa(A,fun(A,bool),R2,X3),Y3))
             => ~ pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),Y3),Z3)) ) ) ) )).

% converse_tranclpE
tff(fact_119_lock__action_Odistinct_I6_J,axiom,(
    lock_ReleaseAcquire != lock_Lock )).

% lock_action.distinct(6)
tff(fact_120_rtranclp__trans,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Y: A,Z3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),X3),Y))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),Y),Z3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),X3),Z3)) ) ) )).

% rtranclp_trans
tff(fact_121_bspec,axiom,(
    ! [A: $tType,A5: set(A),P: fun(A,bool),X3: A] :
      ( ! [X4: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),A5))
         => pp(aa(A,bool,P,X4)) )
     => ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X3),A5))
       => pp(aa(A,bool,P,X3)) ) ) )).

% bspec
tff(fact_122_lock__action_Ocase__transfer,axiom,(
    ! [A: $tType,B: $tType,S3: fun(A,fun(B,bool))] : pp(aa(fun(B,fun(B,fun(B,fun(B,fun(lock_action,B))))),bool,aa(fun(A,fun(A,fun(A,fun(A,fun(lock_action,A))))),fun(fun(B,fun(B,fun(B,fun(B,fun(lock_action,B))))),bool),bNF_rel_fun(A,B,fun(A,fun(A,fun(A,fun(lock_action,A)))),fun(B,fun(B,fun(B,fun(lock_action,B)))),S3,bNF_rel_fun(A,B,fun(A,fun(A,fun(lock_action,A))),fun(B,fun(B,fun(lock_action,B))),S3,bNF_rel_fun(A,B,fun(A,fun(lock_action,A)),fun(B,fun(lock_action,B)),S3,bNF_rel_fun(A,B,fun(lock_action,A),fun(lock_action,B),S3,bNF_rel_fun(lock_action,lock_action,A,B,fequal(lock_action),S3))))),lock_c780515111982967862action(A)),lock_c780515111982967862action(B))) )).

% lock_action.case_transfer
tff(fact_123_list_Orec_I2_J,axiom,(
    ! [C: $tType,A: $tType,F1: C,F22: fun(A,fun(list(A),fun(C,C))),X21: A,X22: list(A)] : rec_list(C,A,F1,F22,aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),X21),X22)) = aa(C,C,aa(list(A),fun(C,C),aa(A,fun(list(A),fun(C,C)),F22,X21),X22),rec_list(C,A,F1,F22,X22)) )).

% list.rec(2)
tff(fact_124_lock__action_Odistinct_I7_J,axiom,(
    lock_Unlock != lock_UnlockFail )).

% lock_action.distinct(7)
tff(fact_125_lock__action_Odistinct_I8_J,axiom,(
    lock_UnlockFail != lock_Unlock )).

% lock_action.distinct(8)
tff(fact_126_list_Orec_I1_J,axiom,(
    ! [A: $tType,C: $tType,F1: C,F22: fun(A,fun(list(A),fun(C,C)))] : rec_list(C,A,F1,F22,nil(A)) = F1 )).

% list.rec(1)
tff(fact_127_tranclp_Ocases,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A1: A,A22: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A1),A22))
     => ( ~ pp(aa(A,bool,aa(A,fun(A,bool),R2,A1),A22))
       => ~ ! [B2: A] :
              ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A1),B2))
             => ~ pp(aa(A,bool,aa(A,fun(A,bool),R2,B2),A22)) ) ) ) )).

% tranclp.cases
tff(fact_128_lock__action_Odistinct_I9_J,axiom,(
    lock_Unlock != lock_ReleaseAcquire )).

% lock_action.distinct(9)
tff(fact_129_tranclp_Osimps,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A1: A,A22: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A1),A22))
    <=> ( ? [A7: A,B5: A] :
            ( A1 = A7
            & A22 = B5
            & pp(aa(A,bool,aa(A,fun(A,bool),R2,A7),B5)) )
        | ? [A7: A,B5: A,C4: A] :
            ( A1 = A7
            & A22 = C4
            & pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A7),B5))
            & pp(aa(A,bool,aa(A,fun(A,bool),R2,B5),C4)) ) ) ) )).

% tranclp.simps
tff(fact_130_eq__fst__iff,axiom,(
    ! [A: $tType,B: $tType,A3: A,P2: product_prod(A,B)] :
      ( A3 = aa(product_prod(A,B),A,product_fst(A,B),P2)
    <=> ? [B5: B] : P2 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B5) ) )).

% eq_fst_iff
tff(fact_131_tranclp__trans,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Y: A,Z3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),X3),Y))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),Y),Z3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),X3),Z3)) ) ) )).

% tranclp_trans
tff(fact_132_imageE,axiom,(
    ! [A: $tType,B: $tType,B3: A,F3: fun(B,A),A5: set(B)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),B3),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)))
     => ~ ! [X4: B] :
            ( B3 = aa(B,A,F3,X4)
           => ~ pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X4),A5)) ) ) )).

% imageE
tff(fact_133_fstI,axiom,(
    ! [B: $tType,A: $tType,X3: product_prod(A,B),Y: A,Z3: B] :
      ( X3 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Y),Z3)
     => aa(product_prod(A,B),A,product_fst(A,B),X3) = Y ) )).

% fstI
tff(fact_134_wait__set__action_Osize_I4_J,axiom,(
    ! [W: $tType,T: $tType,Xa3: fun(T,nat),X3: fun(W,nat),X42: T] : aa(wait_set_action(T,W),nat,wait_s6257567816659622979action(T,W,Xa3,X3),wait_set_WakeUp(T,W,X42)) = plus_plus(nat,aa(T,nat,Xa3,X42),suc(zero_zero(nat))) )).

% wait_set_action.size(4)
tff(fact_135_option_Ocase_I1_J,axiom,(
    ! [A: $tType,B: $tType,F1: B,F22: fun(A,B)] : case_option(B,A,F1,F22,none(A)) = F1 )).

% option.case(1)
tff(fact_136_option_Ocase_I2_J,axiom,(
    ! [B: $tType,A: $tType,F1: B,F22: fun(A,B),X2: A] : case_option(B,A,F1,F22,aa(A,option(A),some(A),X2)) = aa(A,B,F22,X2) )).

% option.case(2)
tff(fact_137_tranclp__trans__induct,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Y: A,P: fun(A,fun(A,bool))] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),X3),Y))
     => ( ! [X4: A,Y3: A] :
            ( pp(aa(A,bool,aa(A,fun(A,bool),R2,X4),Y3))
           => pp(aa(A,bool,aa(A,fun(A,bool),P,X4),Y3)) )
       => ( ! [X4: A,Y3: A,Z2: A] :
              ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),X4),Y3))
             => ( pp(aa(A,bool,aa(A,fun(A,bool),P,X4),Y3))
               => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),Y3),Z2))
                 => ( pp(aa(A,bool,aa(A,fun(A,bool),P,Y3),Z2))
                   => pp(aa(A,bool,aa(A,fun(A,bool),P,X4),Z2)) ) ) ) )
         => pp(aa(A,bool,aa(A,fun(A,bool),P,X3),Y)) ) ) ) )).

% tranclp_trans_induct
tff(fact_138_tranclp_Or__into__trancl,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),R2,A3),B3))
     => pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),B3)) ) )).

% tranclp.r_into_trancl
tff(fact_139_tranclp__into__tranclp2,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,C3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),R2,A3),B3))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),B3),C3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),C3)) ) ) )).

% tranclp_into_tranclp2
tff(fact_140_wait__set__action_Osize_I3_J,axiom,(
    ! [T: $tType,W: $tType,Xa3: fun(T,nat),X3: fun(W,nat),X32: W] : aa(wait_set_action(T,W),nat,wait_s6257567816659622979action(T,W,Xa3,X3),wait_set_NotifyAll(W,T,X32)) = plus_plus(nat,aa(W,nat,X3,X32),suc(zero_zero(nat))) )).

% wait_set_action.size(3)
tff(fact_141_converse__tranclp__induct,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,P: fun(A,bool)] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),B3))
     => ( ! [Y3: A] :
            ( pp(aa(A,bool,aa(A,fun(A,bool),R2,Y3),B3))
           => pp(aa(A,bool,P,Y3)) )
       => ( ! [Y3: A,Z2: A] :
              ( pp(aa(A,bool,aa(A,fun(A,bool),R2,Y3),Z2))
             => ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),Z2),B3))
               => ( pp(aa(A,bool,P,Z2))
                 => pp(aa(A,bool,P,Y3)) ) ) )
         => pp(aa(A,bool,P,A3)) ) ) ) )).

% converse_tranclp_induct
tff(fact_142_subsetI,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A)] :
      ( ! [X4: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),A5))
         => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),B6)) )
     => pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),B6)) ) )).

% subsetI
tff(fact_143_tranclp_Otrancl__into__trancl,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,C3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),B3))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),R2,B3),C3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),C3)) ) ) )).

% tranclp.trancl_into_trancl
tff(fact_144_lock__action_Oexhaust,axiom,(
    ! [Y: lock_action] :
      ( Y != lock_Lock
     => ( Y != lock_Unlock
       => ( Y != lock_UnlockFail
         => Y = lock_ReleaseAcquire ) ) ) )).

% lock_action.exhaust
tff(fact_145_tranclpD,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool)),X3: A,Y: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R),X3),Y))
     => ? [Z2: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),R,X3),Z2))
          & pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R),Z2),Y)) ) ) )).

% tranclpD
tff(fact_146_lock__action_Orec_I1_J,axiom,(
    ! [A: $tType,F1: A,F22: A,F32: A,F4: A] : aa(lock_action,A,aa(A,fun(lock_action,A),aa(A,fun(A,fun(lock_action,A)),aa(A,fun(A,fun(A,fun(lock_action,A))),aa(A,fun(A,fun(A,fun(A,fun(lock_action,A)))),lock_rec_lock_action(A),F1),F22),F32),F4),lock_Lock) = F1 )).

% lock_action.rec(1)
tff(fact_147_rtranclpD,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool)),A3: A,B3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R),A3),B3))
     => ( A3 = B3
        | ( A3 != B3
          & pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R),A3),B3)) ) ) ) )).

% rtranclpD
tff(fact_148_wait__set__action_Osize_I6_J,axiom,(
    ! [T: $tType,W: $tType,Xa3: fun(T,nat),X3: fun(W,nat)] : aa(wait_set_action(T,W),nat,wait_s6257567816659622979action(T,W,Xa3,X3),wait_set_WokenUp(T,W)) = suc(zero_zero(nat)) )).

% wait_set_action.size(6)
tff(fact_149_tranclp__into__rtranclp,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),B3))
     => pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),B3)) ) )).

% tranclp_into_rtranclp
tff(fact_150_lock__action_Orec_I2_J,axiom,(
    ! [A: $tType,F1: A,F22: A,F32: A,F4: A] : aa(lock_action,A,aa(A,fun(lock_action,A),aa(A,fun(A,fun(lock_action,A)),aa(A,fun(A,fun(A,fun(lock_action,A))),aa(A,fun(A,fun(A,fun(A,fun(lock_action,A)))),lock_rec_lock_action(A),F1),F22),F32),F4),lock_Unlock) = F22 )).

% lock_action.rec(2)
tff(fact_151_rtranclp__into__tranclp1,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A,C3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),B3))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),R2,B3),C3))
       => pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),C3)) ) ) )).

% rtranclp_into_tranclp1
tff(fact_152_case__prod__beta,axiom,(
    ! [A: $tType,C: $tType,B: $tType,F3: fun(B,fun(C,A)),P2: product_prod(B,C)] : aa(product_prod(B,C),A,aa(fun(B,fun(C,A)),fun(product_prod(B,C),A),product_case_prod(B,C,A),F3),P2) = aa(C,A,aa(B,fun(C,A),F3,aa(product_prod(B,C),B,product_fst(B,C),P2)),aa(product_prod(B,C),C,product_snd(B,C),P2)) )).

% case_prod_beta
tff(fact_153_lock__action_Orec_I3_J,axiom,(
    ! [A: $tType,F1: A,F22: A,F32: A,F4: A] : aa(lock_action,A,aa(A,fun(lock_action,A),aa(A,fun(A,fun(lock_action,A)),aa(A,fun(A,fun(A,fun(lock_action,A))),aa(A,fun(A,fun(A,fun(A,fun(lock_action,A)))),lock_rec_lock_action(A),F1),F22),F32),F4),lock_UnlockFail) = F32 )).

% lock_action.rec(3)
tff(fact_154_Nitpick_Ortranclp__unfold,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),A3: A,B3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),A3),B3))
    <=> ( A3 = B3
        | pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,R2),A3),B3)) ) ) )).

% Nitpick.rtranclp_unfold
tff(fact_155_prod_Ocase__eq__if,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,fun(B,C)),Prod: product_prod(A,B)] : aa(product_prod(A,B),C,aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),F3),Prod) = aa(B,C,aa(A,fun(B,C),F3,aa(product_prod(A,B),A,product_fst(A,B),Prod)),aa(product_prod(A,B),B,product_snd(A,B),Prod)) )).

% prod.case_eq_if
tff(fact_156_option_Oinject,axiom,(
    ! [A: $tType,X2: A,Y2: A] :
      ( aa(A,option(A),some(A),X2) = aa(A,option(A),some(A),Y2)
    <=> X2 = Y2 ) )).

% option.inject
tff(fact_157_lock__action_Orec_I4_J,axiom,(
    ! [A: $tType,F1: A,F22: A,F32: A,F4: A] : aa(lock_action,A,aa(A,fun(lock_action,A),aa(A,fun(A,fun(lock_action,A)),aa(A,fun(A,fun(A,fun(lock_action,A))),aa(A,fun(A,fun(A,fun(A,fun(lock_action,A)))),lock_rec_lock_action(A),F1),F22),F32),F4),lock_ReleaseAcquire) = F4 )).

% lock_action.rec(4)
tff(fact_158_in__lex__prod,axiom,(
    ! [A: $tType,B: $tType,A3: A,B3: B,A4: A,B4: B,R2: set(product_prod(A,A)),S: set(product_prod(B,B))] :
      ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A4),B4))),lex_prod(A,B,R2,S)))
    <=> ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),A4)),R2))
        | ( A3 = A4
          & pp(aa(set(product_prod(B,B)),bool,aa(product_prod(B,B),fun(set(product_prod(B,B)),bool),member(product_prod(B,B)),aa(B,product_prod(B,B),aa(B,fun(B,product_prod(B,B)),product_Pair(B,B),B3),B4)),S)) ) ) ) )).

% in_lex_prod
tff(fact_159_option_Odistinct_I1_J,axiom,(
    ! [A: $tType,X2: A] : none(A) != aa(A,option(A),some(A),X2) )).

% option.distinct(1)
tff(fact_160_prod_Oswap__def,axiom,(
    ! [B: $tType,A: $tType,P2: product_prod(A,B)] : aa(product_prod(A,B),product_prod(B,A),product_swap(A,B),P2) = aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),aa(product_prod(A,B),B,product_snd(A,B),P2)),aa(product_prod(A,B),A,product_fst(A,B),P2)) )).

% prod.swap_def
tff(fact_161_sndI,axiom,(
    ! [A: $tType,B: $tType,X3: product_prod(A,B),Y: A,Z3: B] :
      ( X3 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Y),Z3)
     => aa(product_prod(A,B),B,product_snd(A,B),X3) = Z3 ) )).

% sndI
tff(fact_162_wait__set__action_Osize_I2_J,axiom,(
    ! [T: $tType,W: $tType,Xa3: fun(T,nat),X3: fun(W,nat),X2: W] : aa(wait_set_action(T,W),nat,wait_s6257567816659622979action(T,W,Xa3,X3),wait_set_Notify(W,T,X2)) = plus_plus(nat,aa(W,nat,X3,X2),suc(zero_zero(nat))) )).

% wait_set_action.size(2)
tff(fact_163_snd__swap,axiom,(
    ! [B: $tType,A: $tType,X3: product_prod(A,B)] : aa(product_prod(B,A),A,product_snd(B,A),aa(product_prod(A,B),product_prod(B,A),product_swap(A,B),X3)) = aa(product_prod(A,B),A,product_fst(A,B),X3) )).

% snd_swap
tff(fact_164_eq__snd__iff,axiom,(
    ! [B: $tType,A: $tType,B3: A,P2: product_prod(B,A)] :
      ( B3 = aa(product_prod(B,A),A,product_snd(B,A),P2)
    <=> ? [A7: B] : P2 = aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),A7),B3) ) )).

% eq_snd_iff
tff(fact_165_list_Odistinct_I1_J,axiom,(
    ! [A: $tType,X21: A,X22: list(A)] : nil(A) != aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),X21),X22) )).

% list.distinct(1)
tff(fact_166_fst__swap,axiom,(
    ! [A: $tType,B: $tType,X3: product_prod(B,A)] : aa(product_prod(A,B),A,product_fst(A,B),aa(product_prod(B,A),product_prod(A,B),product_swap(B,A),X3)) = aa(product_prod(B,A),A,product_snd(B,A),X3) )).

% fst_swap
tff(fact_167_prod__eq__iff,axiom,(
    ! [B: $tType,A: $tType,S: product_prod(A,B),T3: product_prod(A,B)] :
      ( S = T3
    <=> ( aa(product_prod(A,B),A,product_fst(A,B),S) = aa(product_prod(A,B),A,product_fst(A,B),T3)
        & aa(product_prod(A,B),B,product_snd(A,B),S) = aa(product_prod(A,B),B,product_snd(A,B),T3) ) ) )).

% prod_eq_iff
tff(fact_168_pair__in__swap__image,axiom,(
    ! [A: $tType,B: $tType,Y: A,X3: B,A5: set(product_prod(B,A))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Y),X3)),aa(set(product_prod(B,A)),set(product_prod(A,B)),aa(fun(product_prod(B,A),product_prod(A,B)),fun(set(product_prod(B,A)),set(product_prod(A,B))),image2(product_prod(B,A),product_prod(A,B)),product_swap(B,A)),A5)))
    <=> pp(aa(set(product_prod(B,A)),bool,aa(product_prod(B,A),fun(set(product_prod(B,A)),bool),member(product_prod(B,A)),aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),X3),Y)),A5)) ) )).

% pair_in_swap_image
tff(fact_169_snd__eqD,axiom,(
    ! [B: $tType,A: $tType,X3: B,Y: A,A3: A] :
      ( aa(product_prod(B,A),A,product_snd(B,A),aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),X3),Y)) = A3
     => Y = A3 ) )).

% snd_eqD
tff(fact_170_someI__ex,axiom,(
    ! [A: $tType,P: fun(A,bool)] :
      ( ? [X_1: A] : pp(aa(A,bool,P,X_1))
     => pp(aa(A,bool,P,hilbert_Eps(A,P))) ) )).

% someI_ex
tff(fact_171_fst__comp__apsnd,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(B,C)] : aa(fun(product_prod(A,B),product_prod(A,C)),fun(product_prod(A,B),A),aa(fun(product_prod(A,C),A),fun(fun(product_prod(A,B),product_prod(A,C)),fun(product_prod(A,B),A)),comp(product_prod(A,C),A,product_prod(A,B)),product_fst(A,C)),product_apsnd(B,C,A,F3)) = product_fst(A,B) )).

% fst_comp_apsnd
tff(fact_172_reflclp__tranclp,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool))] : aa(fun(A,fun(A,bool)),fun(A,fun(A,bool)),aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),fun(A,fun(A,bool))),sup_sup(fun(A,fun(A,bool))),transitive_tranclp(A,R2)),fequal(A)) = transitive_rtranclp(A,R2) )).

% reflclp_tranclp
tff(fact_173_rec__prod__split,axiom,(
    ! [C: $tType,B: $tType,A: $tType] : product_rec_prod(A,B,C) = product_case_prod(A,B,C) )).

% rec_prod_split
tff(fact_174_reflclp__idemp,axiom,(
    ! [A: $tType,P: fun(A,fun(A,bool))] : aa(fun(A,fun(A,bool)),fun(A,fun(A,bool)),aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),fun(A,fun(A,bool))),sup_sup(fun(A,fun(A,bool))),aa(fun(A,fun(A,bool)),fun(A,fun(A,bool)),aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),fun(A,fun(A,bool))),sup_sup(fun(A,fun(A,bool))),P),fequal(A))),fequal(A)) = aa(fun(A,fun(A,bool)),fun(A,fun(A,bool)),aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),fun(A,fun(A,bool))),sup_sup(fun(A,fun(A,bool))),P),fequal(A)) )).

% reflclp_idemp
tff(fact_175_wait__set__action_Osize__gen_I1_J,axiom,(
    ! [T: $tType,W: $tType,Xa3: fun(T,nat),X3: fun(W,nat),X1: W] : aa(wait_set_action(T,W),nat,wait_s6257567816659622979action(T,W,Xa3,X3),wait_set_Suspend(W,T,X1)) = plus_plus(nat,aa(W,nat,X3,X1),suc(zero_zero(nat))) )).

% wait_set_action.size_gen(1)
tff(fact_176_rtranclp__reflclp__absorb,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] : aa(fun(A,fun(A,bool)),fun(A,fun(A,bool)),aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),fun(A,fun(A,bool))),sup_sup(fun(A,fun(A,bool))),transitive_rtranclp(A,R)),fequal(A)) = transitive_rtranclp(A,R) )).

% rtranclp_reflclp_absorb
tff(fact_177_rtranclp__reflclp,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] : transitive_rtranclp(A,aa(fun(A,fun(A,bool)),fun(A,fun(A,bool)),aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),fun(A,fun(A,bool))),sup_sup(fun(A,fun(A,bool))),R),fequal(A))) = transitive_rtranclp(A,R) )).

% rtranclp_reflclp
tff(fact_178_snd__apsnd,axiom,(
    ! [A: $tType,C: $tType,B: $tType,F3: fun(C,A),X3: product_prod(B,C)] : aa(product_prod(B,A),A,product_snd(B,A),aa(product_prod(B,C),product_prod(B,A),product_apsnd(C,A,B,F3),X3)) = aa(C,A,F3,aa(product_prod(B,C),C,product_snd(B,C),X3)) )).

% snd_apsnd
tff(fact_179_apsnd__eq__conv,axiom,(
    ! [B: $tType,C: $tType,A: $tType,F3: fun(C,B),X3: product_prod(A,C),G3: fun(C,B)] :
      ( aa(product_prod(A,C),product_prod(A,B),product_apsnd(C,B,A,F3),X3) = aa(product_prod(A,C),product_prod(A,B),product_apsnd(C,B,A,G3),X3)
    <=> aa(C,B,F3,aa(product_prod(A,C),C,product_snd(A,C),X3)) = aa(C,B,G3,aa(product_prod(A,C),C,product_snd(A,C),X3)) ) )).

% apsnd_eq_conv
tff(fact_180_case__prod__curry,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(product_prod(A,B),C)] : aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),product_curry(A,B,C,F3)) = F3 )).

% case_prod_curry
tff(fact_181_sup__apply,axiom,(
    ! [B: $tType,A: $tType] :
      ( semilattice_sup(B)
     => ! [F3: fun(A,B),G3: fun(A,B),X3: A] : aa(A,B,aa(fun(A,B),fun(A,B),aa(fun(A,B),fun(fun(A,B),fun(A,B)),sup_sup(fun(A,B)),F3),G3),X3) = aa(B,B,aa(B,fun(B,B),sup_sup(B),aa(A,B,F3,X3)),aa(A,B,G3,X3)) ) )).

% sup_apply
tff(fact_182_curry__case__prod,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,fun(B,C))] : product_curry(A,B,C,aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),F3)) = F3 )).

% curry_case_prod
tff(fact_183_exI__realizer,axiom,(
    ! [B: $tType,A: $tType,P: fun(A,fun(B,bool)),Y: A,X3: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),P,Y),X3))
     => pp(aa(B,bool,aa(A,fun(B,bool),P,aa(product_prod(B,A),A,product_snd(B,A),aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),X3),Y))),aa(product_prod(B,A),B,product_fst(B,A),aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),X3),Y)))) ) )).

% exI_realizer
tff(fact_184_snd__comp__apsnd,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(B,C)] : aa(fun(product_prod(A,B),product_prod(A,C)),fun(product_prod(A,B),C),aa(fun(product_prod(A,C),C),fun(fun(product_prod(A,B),product_prod(A,C)),fun(product_prod(A,B),C)),comp(product_prod(A,C),C,product_prod(A,B)),product_snd(A,C)),product_apsnd(B,C,A,F3)) = aa(fun(product_prod(A,B),B),fun(product_prod(A,B),C),aa(fun(B,C),fun(fun(product_prod(A,B),B),fun(product_prod(A,B),C)),comp(B,C,product_prod(A,B)),F3),product_snd(A,B)) )).

% snd_comp_apsnd
tff(fact_185_BNF__Greatest__Fixpoint_Osubst__Pair,axiom,(
    ! [B: $tType,A: $tType,P: fun(A,fun(B,bool)),X3: A,Y: B,A3: product_prod(A,B)] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),P,X3),Y))
     => ( A3 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),Y)
       => pp(aa(B,bool,aa(A,fun(B,bool),P,aa(product_prod(A,B),A,product_fst(A,B),A3)),aa(product_prod(A,B),B,product_snd(A,B),A3))) ) ) )).

% BNF_Greatest_Fixpoint.subst_Pair
tff(fact_186_conjI__realizer,axiom,(
    ! [A: $tType,B: $tType,P: fun(A,bool),P2: A,Q: fun(B,bool),Q2: B] :
      ( pp(aa(A,bool,P,P2))
     => ( pp(aa(B,bool,Q,Q2))
       => ( pp(aa(A,bool,P,aa(product_prod(A,B),A,product_fst(A,B),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),P2),Q2))))
          & pp(aa(B,bool,Q,aa(product_prod(A,B),B,product_snd(A,B),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),P2),Q2)))) ) ) ) )).

% conjI_realizer
tff(fact_187_comp__apply__eq,axiom,(
    ! [B: $tType,D: $tType,A: $tType,C: $tType,F3: fun(B,A),G3: fun(C,B),X3: C,H2: fun(D,A),K: fun(C,D)] :
      ( aa(B,A,F3,aa(C,B,G3,X3)) = aa(D,A,H2,aa(C,D,K,X3))
     => aa(C,A,aa(fun(C,B),fun(C,A),aa(fun(B,A),fun(fun(C,B),fun(C,A)),comp(B,A,C),F3),G3),X3) = aa(C,A,aa(fun(C,D),fun(C,A),aa(fun(D,A),fun(fun(C,D),fun(C,A)),comp(D,A,C),H2),K),X3) ) )).

% comp_apply_eq
tff(fact_188_case__prod__unfold,axiom,(
    ! [C: $tType,B: $tType,A: $tType,X5: fun(A,fun(B,C)),Xa2: product_prod(A,B)] : aa(product_prod(A,B),C,aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),X5),Xa2) = aa(B,C,aa(A,fun(B,C),X5,aa(product_prod(A,B),A,product_fst(A,B),Xa2)),aa(product_prod(A,B),B,product_snd(A,B),Xa2)) )).

% case_prod_unfold
tff(fact_189_Product__Type_OCollect__case__prodD,axiom,(
    ! [B: $tType,A: $tType,X3: product_prod(A,B),A5: fun(A,fun(B,bool))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),X3),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),A5))))
     => pp(aa(B,bool,aa(A,fun(B,bool),A5,aa(product_prod(A,B),A,product_fst(A,B),X3)),aa(product_prod(A,B),B,product_snd(A,B),X3))) ) )).

% Product_Type.Collect_case_prodD
tff(fact_190_exhaustive__int_H_Ocases,axiom,(
    ! [X3: product_prod(fun(int,option(product_prod(bool,list(code_term)))),product_prod(int,int))] :
      ~ ! [F2: fun(int,option(product_prod(bool,list(code_term)))),D2: int,I: int] : X3 != aa(product_prod(int,int),product_prod(fun(int,option(product_prod(bool,list(code_term)))),product_prod(int,int)),aa(fun(int,option(product_prod(bool,list(code_term)))),fun(product_prod(int,int),product_prod(fun(int,option(product_prod(bool,list(code_term)))),product_prod(int,int))),product_Pair(fun(int,option(product_prod(bool,list(code_term)))),product_prod(int,int)),F2),aa(int,product_prod(int,int),aa(int,fun(int,product_prod(int,int)),product_Pair(int,int),D2),I)) )).

% exhaustive_int'.cases
tff(fact_191_lock__action_Orec__transfer,axiom,(
    ! [A: $tType,B: $tType,S3: fun(A,fun(B,bool))] : pp(aa(fun(B,fun(B,fun(B,fun(B,fun(lock_action,B))))),bool,aa(fun(A,fun(A,fun(A,fun(A,fun(lock_action,A))))),fun(fun(B,fun(B,fun(B,fun(B,fun(lock_action,B))))),bool),bNF_rel_fun(A,B,fun(A,fun(A,fun(A,fun(lock_action,A)))),fun(B,fun(B,fun(B,fun(lock_action,B)))),S3,bNF_rel_fun(A,B,fun(A,fun(A,fun(lock_action,A))),fun(B,fun(B,fun(lock_action,B))),S3,bNF_rel_fun(A,B,fun(A,fun(lock_action,A)),fun(B,fun(lock_action,B)),S3,bNF_rel_fun(A,B,fun(lock_action,A),fun(lock_action,B),S3,bNF_rel_fun(lock_action,lock_action,A,B,fequal(lock_action),S3))))),lock_rec_lock_action(A)),lock_rec_lock_action(B))) )).

% lock_action.rec_transfer
tff(fact_192_wait__set__action_Osize_I5_J,axiom,(
    ! [T: $tType,W: $tType,Xa3: fun(T,nat),X3: fun(W,nat)] : aa(wait_set_action(T,W),nat,wait_s6257567816659622979action(T,W,Xa3,X3),wait_set_Notified(T,W)) = suc(zero_zero(nat)) )).

% wait_set_action.size(5)
tff(fact_193_equalityI,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),B6))
     => ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B6),A5))
       => A5 = B6 ) ) )).

% equalityI
tff(fact_194_full__exhaustive__int_H_Ocases,axiom,(
    ! [X3: product_prod(fun(product_prod(int,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(int,int))] :
      ~ ! [F2: fun(product_prod(int,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),D2: int,I: int] : X3 != aa(product_prod(int,int),product_prod(fun(product_prod(int,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(int,int)),aa(fun(product_prod(int,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),fun(product_prod(int,int),product_prod(fun(product_prod(int,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(int,int))),product_Pair(fun(product_prod(int,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(int,int)),F2),aa(int,product_prod(int,int),aa(int,fun(int,product_prod(int,int)),product_Pair(int,int),D2),I)) )).

% full_exhaustive_int'.cases
tff(fact_195_prod_Osplit__sel,axiom,(
    ! [C: $tType,B: $tType,A: $tType,P: fun(C,bool),F3: fun(A,fun(B,C)),Prod: product_prod(A,B)] :
      ( pp(aa(C,bool,P,aa(product_prod(A,B),C,aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),F3),Prod)))
    <=> ( Prod = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(product_prod(A,B),A,product_fst(A,B),Prod)),aa(product_prod(A,B),B,product_snd(A,B),Prod))
       => pp(aa(C,bool,P,aa(B,C,aa(A,fun(B,C),F3,aa(product_prod(A,B),A,product_fst(A,B),Prod)),aa(product_prod(A,B),B,product_snd(A,B),Prod)))) ) ) )).

% prod.split_sel
tff(fact_196_empty__iff,axiom,(
    ! [A: $tType,C3: A] : ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),bot_bot(set(A)))) )).

% empty_iff
tff(fact_197_prod_Osplit__sel__asm,axiom,(
    ! [C: $tType,B: $tType,A: $tType,P: fun(C,bool),F3: fun(A,fun(B,C)),Prod: product_prod(A,B)] :
      ( pp(aa(C,bool,P,aa(product_prod(A,B),C,aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),F3),Prod)))
    <=> ~ ( Prod = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(product_prod(A,B),A,product_fst(A,B),Prod)),aa(product_prod(A,B),B,product_snd(A,B),Prod))
          & ~ pp(aa(C,bool,P,aa(B,C,aa(A,fun(B,C),F3,aa(product_prod(A,B),A,product_fst(A,B),Prod)),aa(product_prod(A,B),B,product_snd(A,B),Prod)))) ) ) )).

% prod.split_sel_asm
tff(fact_198_insert__iff,axiom,(
    ! [A: $tType,A3: A,B3: A,A5: set(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),B3),A5)))
    <=> ( A3 = B3
        | pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),A5)) ) ) )).

% insert_iff
tff(fact_199_UNIV__I,axiom,(
    ! [A: $tType,X3: A] : pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X3),top_top(set(A)))) )).

% UNIV_I
tff(fact_200_mem__case__prodE,axiom,(
    ! [B: $tType,A: $tType,C: $tType,Z3: A,C3: fun(B,fun(C,set(A))),P2: product_prod(B,C)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z3),aa(product_prod(B,C),set(A),aa(fun(B,fun(C,set(A))),fun(product_prod(B,C),set(A)),product_case_prod(B,C,set(A)),C3),P2)))
     => ~ ! [X4: B,Y3: C] :
            ( P2 = aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),X4),Y3)
           => ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z3),aa(C,set(A),aa(B,fun(C,set(A)),C3,X4),Y3))) ) ) )).

% mem_case_prodE
tff(fact_201_exhaustive__natural_H_Ocases,axiom,(
    ! [X3: product_prod(fun(code_natural,option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural))] :
      ~ ! [F2: fun(code_natural,option(product_prod(bool,list(code_term)))),D2: code_natural,I: code_natural] : X3 != aa(product_prod(code_natural,code_natural),product_prod(fun(code_natural,option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural)),aa(fun(code_natural,option(product_prod(bool,list(code_term)))),fun(product_prod(code_natural,code_natural),product_prod(fun(code_natural,option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural))),product_Pair(fun(code_natural,option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural)),F2),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),D2),I)) )).

% exhaustive_natural'.cases
tff(fact_202_prod__eqI,axiom,(
    ! [B: $tType,A: $tType,P2: product_prod(A,B),Q2: product_prod(A,B)] :
      ( aa(product_prod(A,B),A,product_fst(A,B),P2) = aa(product_prod(A,B),A,product_fst(A,B),Q2)
     => ( aa(product_prod(A,B),B,product_snd(A,B),P2) = aa(product_prod(A,B),B,product_snd(A,B),Q2)
       => P2 = Q2 ) ) )).

% prod_eqI
tff(fact_203_prod_Oexpand,axiom,(
    ! [B: $tType,A: $tType,Prod: product_prod(A,B),Prod2: product_prod(A,B)] :
      ( ( aa(product_prod(A,B),A,product_fst(A,B),Prod) = aa(product_prod(A,B),A,product_fst(A,B),Prod2)
        & aa(product_prod(A,B),B,product_snd(A,B),Prod) = aa(product_prod(A,B),B,product_snd(A,B),Prod2) )
     => Prod = Prod2 ) )).

% prod.expand
tff(fact_204_conditional__action_Osize__neq,axiom,(
    ! [T: $tType,X3: conditional_action(T)] : size_size(conditional_action(T),X3) != zero_zero(nat) )).

% conditional_action.size_neq
tff(fact_205_rtranclp__sup__rtranclp,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool)),S3: fun(A,fun(A,bool))] : transitive_rtranclp(A,aa(fun(A,fun(A,bool)),fun(A,fun(A,bool)),aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),fun(A,fun(A,bool))),sup_sup(fun(A,fun(A,bool))),transitive_rtranclp(A,R)),transitive_rtranclp(A,S3))) = transitive_rtranclp(A,aa(fun(A,fun(A,bool)),fun(A,fun(A,bool)),aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),fun(A,fun(A,bool))),sup_sup(fun(A,fun(A,bool))),R),S3)) )).

% rtranclp_sup_rtranclp
tff(fact_206_exhaustive__integer_H_Ocases,axiom,(
    ! [X3: product_prod(fun(code_integer,option(product_prod(bool,list(code_term)))),product_prod(code_integer,code_integer))] :
      ~ ! [F2: fun(code_integer,option(product_prod(bool,list(code_term)))),D2: code_integer,I: code_integer] : X3 != aa(product_prod(code_integer,code_integer),product_prod(fun(code_integer,option(product_prod(bool,list(code_term)))),product_prod(code_integer,code_integer)),aa(fun(code_integer,option(product_prod(bool,list(code_term)))),fun(product_prod(code_integer,code_integer),product_prod(fun(code_integer,option(product_prod(bool,list(code_term)))),product_prod(code_integer,code_integer))),product_Pair(fun(code_integer,option(product_prod(bool,list(code_term)))),product_prod(code_integer,code_integer)),F2),aa(code_integer,product_prod(code_integer,code_integer),aa(code_integer,fun(code_integer,product_prod(code_integer,code_integer)),product_Pair(code_integer,code_integer),D2),I)) )).

% exhaustive_integer'.cases
tff(fact_207_dropWhile__eq__Nil__conv,axiom,(
    ! [A: $tType,P: fun(A,bool),Xs: list(A)] :
      ( dropWhile(A,P,Xs) = nil(A)
    <=> ! [X6: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),aa(list(A),set(A),set2(A),Xs)))
         => pp(aa(A,bool,P,X6)) ) ) )).

% dropWhile_eq_Nil_conv
tff(fact_208_apsnd__compose,axiom,(
    ! [C: $tType,B: $tType,D: $tType,A: $tType,F3: fun(C,B),G3: fun(D,C),X3: product_prod(A,D)] : aa(product_prod(A,C),product_prod(A,B),product_apsnd(C,B,A,F3),aa(product_prod(A,D),product_prod(A,C),product_apsnd(D,C,A,G3),X3)) = aa(product_prod(A,D),product_prod(A,B),product_apsnd(D,B,A,aa(fun(D,C),fun(D,B),aa(fun(C,B),fun(fun(D,C),fun(D,B)),comp(C,B,D),F3),G3)),X3) )).

% apsnd_compose
tff(fact_209_map__fun__def,axiom,(
    ! [B: $tType,D: $tType,A: $tType,C: $tType,F3: fun(C,A),G3: fun(B,D),H2: fun(A,B)] : aa(fun(A,B),fun(C,D),map_fun(C,A,B,D,F3,G3),H2) = aa(fun(C,A),fun(C,D),aa(fun(A,D),fun(fun(C,A),fun(C,D)),comp(A,D,C),aa(fun(A,B),fun(A,D),aa(fun(B,D),fun(fun(A,B),fun(A,D)),comp(B,D,A),G3),H2)),F3) )).

% map_fun_def
tff(fact_210_UnCI,axiom,(
    ! [A: $tType,C3: A,B6: set(A),A5: set(A)] :
      ( ( ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),B6))
       => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),A5)) )
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6))) ) )).

% UnCI
tff(fact_211_Rel__def,axiom,(
    ! [B: $tType,A: $tType,R2: fun(A,fun(B,bool))] : rel(A,B,R2) = R2 )).

% Rel_def
tff(fact_212_surjective__pairing,axiom,(
    ! [B: $tType,A: $tType,T3: product_prod(A,B)] : T3 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(product_prod(A,B),A,product_fst(A,B),T3)),aa(product_prod(A,B),B,product_snd(A,B),T3)) )).

% surjective_pairing
tff(fact_213_conditional__action_Osize_I3_J,axiom,(
    ! [T: $tType,X1: T] : size_size(conditional_action(T),aa(T,conditional_action(T),conditional_Join(T),X1)) = suc(zero_zero(nat)) )).

% conditional_action.size(3)
tff(fact_214_prod_Oexhaust__sel,axiom,(
    ! [B: $tType,A: $tType,Prod: product_prod(A,B)] : Prod = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(product_prod(A,B),A,product_fst(A,B),Prod)),aa(product_prod(A,B),B,product_snd(A,B),Prod)) )).

% prod.exhaust_sel
tff(fact_215_conditional__action_Osize_I4_J,axiom,(
    ! [T: $tType] : size_size(conditional_action(T),conditional_Yield(T)) = suc(zero_zero(nat)) )).

% conditional_action.size(4)
tff(fact_216_apfst__conv,axiom,(
    ! [C: $tType,A: $tType,B: $tType,F3: fun(C,A),X3: C,Y: B] : aa(product_prod(C,B),product_prod(A,B),product_apfst(C,A,B,F3),aa(B,product_prod(C,B),aa(C,fun(B,product_prod(C,B)),product_Pair(C,B),X3),Y)) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(C,A,F3,X3)),Y) )).

% apfst_conv
tff(fact_217_split__cong,axiom,(
    ! [C: $tType,B: $tType,A: $tType,Q2: product_prod(A,B),F3: fun(A,fun(B,C)),G3: fun(A,fun(B,C)),P2: product_prod(A,B)] :
      ( ! [X4: A,Y3: B] :
          ( aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X4),Y3) = Q2
         => aa(B,C,aa(A,fun(B,C),F3,X4),Y3) = aa(B,C,aa(A,fun(B,C),G3,X4),Y3) )
     => ( P2 = Q2
       => aa(product_prod(A,B),C,aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),F3),P2) = aa(product_prod(A,B),C,aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),G3),Q2) ) ) )).

% split_cong
tff(fact_218_map__tailrec__rev_Ocases,axiom,(
    ! [A: $tType,B: $tType,X3: product_prod(fun(A,B),product_prod(list(A),list(B)))] :
      ( ! [F2: fun(A,B),Bs: list(B)] : X3 != aa(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B))),aa(fun(A,B),fun(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B)))),product_Pair(fun(A,B),product_prod(list(A),list(B))),F2),aa(list(B),product_prod(list(A),list(B)),aa(list(A),fun(list(B),product_prod(list(A),list(B))),product_Pair(list(A),list(B)),nil(A)),Bs))
     => ~ ! [F2: fun(A,B),A2: A,As: list(A),Bs: list(B)] : X3 != aa(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B))),aa(fun(A,B),fun(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B)))),product_Pair(fun(A,B),product_prod(list(A),list(B))),F2),aa(list(B),product_prod(list(A),list(B)),aa(list(A),fun(list(B),product_prod(list(A),list(B))),product_Pair(list(A),list(B)),aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),A2),As)),Bs)) ) )).

% map_tailrec_rev.cases
tff(fact_219_Un__iff,axiom,(
    ! [A: $tType,C3: A,A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)))
    <=> ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),A5))
        | pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),B6)) ) ) )).

% Un_iff
tff(fact_220_full__exhaustive__natural_H_Ocases,axiom,(
    ! [X3: product_prod(fun(product_prod(code_natural,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural))] :
      ~ ! [F2: fun(product_prod(code_natural,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),D2: code_natural,I: code_natural] : X3 != aa(product_prod(code_natural,code_natural),product_prod(fun(product_prod(code_natural,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural)),aa(fun(product_prod(code_natural,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),fun(product_prod(code_natural,code_natural),product_prod(fun(product_prod(code_natural,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural))),product_Pair(fun(product_prod(code_natural,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural)),F2),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),D2),I)) )).

% full_exhaustive_natural'.cases
tff(fact_221_takeWhile__eq__all__conv,axiom,(
    ! [A: $tType,P: fun(A,bool),Xs: list(A)] :
      ( takeWhile(A,P,Xs) = Xs
    <=> ! [X6: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),aa(list(A),set(A),set2(A),Xs)))
         => pp(aa(A,bool,P,X6)) ) ) )).

% takeWhile_eq_all_conv
tff(fact_222_image__iff,axiom,(
    ! [A: $tType,B: $tType,Z3: A,F3: fun(B,A),A5: set(B)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z3),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)))
    <=> ? [X6: B] :
          ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X6),A5))
          & Z3 = aa(B,A,F3,X6) ) ) )).

% image_iff
tff(fact_223_full__exhaustive__integer_H_Ocases,axiom,(
    ! [X3: product_prod(fun(product_prod(code_integer,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_integer,code_integer))] :
      ~ ! [F2: fun(product_prod(code_integer,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),D2: code_integer,I: code_integer] : X3 != aa(product_prod(code_integer,code_integer),product_prod(fun(product_prod(code_integer,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_integer,code_integer)),aa(fun(product_prod(code_integer,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),fun(product_prod(code_integer,code_integer),product_prod(fun(product_prod(code_integer,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_integer,code_integer))),product_Pair(fun(product_prod(code_integer,fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_integer,code_integer)),F2),aa(code_integer,product_prod(code_integer,code_integer),aa(code_integer,fun(code_integer,product_prod(code_integer,code_integer)),product_Pair(code_integer,code_integer),D2),I)) )).

% full_exhaustive_integer'.cases
tff(fact_224_sup2CI,axiom,(
    ! [A: $tType,B: $tType,B6: fun(A,fun(B,bool)),X3: A,Y: B,A5: fun(A,fun(B,bool))] :
      ( ( ~ pp(aa(B,bool,aa(A,fun(B,bool),B6,X3),Y))
       => pp(aa(B,bool,aa(A,fun(B,bool),A5,X3),Y)) )
     => pp(aa(B,bool,aa(A,fun(B,bool),aa(fun(A,fun(B,bool)),fun(A,fun(B,bool)),aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),fun(A,fun(B,bool))),sup_sup(fun(A,fun(B,bool))),A5),B6),X3),Y)) ) )).

% sup2CI
tff(fact_225_full__exhaustive__fun_H_Ocases,axiom,(
    ! [A: $tType,B: $tType] :
      ( ( quickc3360725361186068524ustive(B)
        & cl_HOL_Oequal(A)
        & quickc3360725361186068524ustive(A) )
     => ! [X3: product_prod(fun(product_prod(fun(A,B),fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural))] :
          ~ ! [F2: fun(product_prod(fun(A,B),fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),I: code_natural,D2: code_natural] : X3 != aa(product_prod(code_natural,code_natural),product_prod(fun(product_prod(fun(A,B),fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural)),aa(fun(product_prod(fun(A,B),fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),fun(product_prod(code_natural,code_natural),product_prod(fun(product_prod(fun(A,B),fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural))),product_Pair(fun(product_prod(fun(A,B),fun(product_unit,code_term)),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural)),F2),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),I),D2)) ) )).

% full_exhaustive_fun'.cases
tff(fact_226_sup_Oright__idem,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,B3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3)),B3) = aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3) ) )).

% sup.right_idem
tff(fact_227_sup__left__idem,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,Y: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y)) = aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y) ) )).

% sup_left_idem
tff(fact_228_rev__image__eqI,axiom,(
    ! [B: $tType,A: $tType,X3: A,A5: set(A),B3: B,F3: fun(A,B)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X3),A5))
     => ( B3 = aa(A,B,F3,X3)
       => pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),B3),aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),A5))) ) ) )).

% rev_image_eqI
tff(fact_229_extract__def,axiom,(
    ! [G: $tType,P3: fun(G,bool),Xs2: list(G)] : extract(G,P3,Xs2) = case_list(option(product_prod(list(G),product_prod(G,list(G)))),G,none(product_prod(list(G),product_prod(G,list(G)))),aa(fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))),fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G)))))),aa(fun(fun(list(G),product_prod(list(G),product_prod(G,list(G)))),fun(list(G),option(product_prod(list(G),product_prod(G,list(G)))))),fun(fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))),fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G))))))),combb(fun(list(G),product_prod(list(G),product_prod(G,list(G)))),fun(list(G),option(product_prod(list(G),product_prod(G,list(G))))),G),aa(fun(product_prod(list(G),product_prod(G,list(G))),option(product_prod(list(G),product_prod(G,list(G))))),fun(fun(list(G),product_prod(list(G),product_prod(G,list(G)))),fun(list(G),option(product_prod(list(G),product_prod(G,list(G)))))),combb(product_prod(list(G),product_prod(G,list(G))),option(product_prod(list(G),product_prod(G,list(G)))),list(G)),some(product_prod(list(G),product_prod(G,list(G)))))),aa(fun(G,fun(list(G),product_prod(G,list(G)))),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))),aa(fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G))))),fun(fun(G,fun(list(G),product_prod(G,list(G)))),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),combb(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G)))),G),aa(fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G)))),fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G))))),combb(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G))),list(G)),aa(list(G),fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G)))),product_Pair(list(G),product_prod(G,list(G))),takeWhile(G,aa(fun(G,bool),fun(G,bool),aa(fun(bool,bool),fun(fun(G,bool),fun(G,bool)),comp(bool,bool,G),fNot),P3),Xs2)))),product_Pair(G,list(G)))),dropWhile(G,aa(fun(G,bool),fun(G,bool),aa(fun(bool,bool),fun(fun(G,bool),fun(G,bool)),comp(bool,bool,G),fNot),P3),Xs2)) )).

% extract_def
tff(fact_230_sup_Oleft__idem,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,B3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3)) = aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3) ) )).

% sup.left_idem
tff(fact_231_eq__OO,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] : relcompp(A,A,B,fequal(A),R) = R )).

% eq_OO
tff(fact_232_sup__idem,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),X3) = X3 ) )).

% sup_idem
tff(fact_233_zip__assoc,axiom,(
    ! [H: $tType,G: $tType,I2: $tType,Xs2: list(G),Ys: list(H),Zs: list(I2)] : zip(G,product_prod(H,I2),Xs2,zip(H,I2,Ys,Zs)) = map(product_prod(product_prod(G,H),I2),product_prod(G,product_prod(H,I2)),aa(fun(product_prod(G,H),fun(I2,product_prod(G,product_prod(H,I2)))),fun(product_prod(product_prod(G,H),I2),product_prod(G,product_prod(H,I2))),product_case_prod(product_prod(G,H),I2,product_prod(G,product_prod(H,I2))),aa(fun(G,fun(H,fun(I2,product_prod(G,product_prod(H,I2))))),fun(product_prod(G,H),fun(I2,product_prod(G,product_prod(H,I2)))),product_case_prod(G,H,fun(I2,product_prod(G,product_prod(H,I2)))),aa(fun(H,fun(I2,product_prod(H,I2))),fun(G,fun(H,fun(I2,product_prod(G,product_prod(H,I2))))),aa(fun(G,fun(fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(I2,product_prod(G,product_prod(H,I2)))))),fun(fun(H,fun(I2,product_prod(H,I2))),fun(G,fun(H,fun(I2,product_prod(G,product_prod(H,I2)))))),combc(G,fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(I2,product_prod(G,product_prod(H,I2))))),aa(fun(G,fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2))))),fun(G,fun(fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(I2,product_prod(G,product_prod(H,I2)))))),aa(fun(fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2)))),fun(fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(I2,product_prod(G,product_prod(H,I2)))))),fun(fun(G,fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2))))),fun(G,fun(fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(I2,product_prod(G,product_prod(H,I2))))))),combb(fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2)))),fun(fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(I2,product_prod(G,product_prod(H,I2))))),G),combb(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2))),H)),aa(fun(G,fun(product_prod(H,I2),product_prod(G,product_prod(H,I2)))),fun(G,fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2))))),aa(fun(fun(product_prod(H,I2),product_prod(G,product_prod(H,I2))),fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2))))),fun(fun(G,fun(product_prod(H,I2),product_prod(G,product_prod(H,I2)))),fun(G,fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2)))))),combb(fun(product_prod(H,I2),product_prod(G,product_prod(H,I2))),fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2)))),G),combb(product_prod(H,I2),product_prod(G,product_prod(H,I2)),I2)),product_Pair(G,product_prod(H,I2))))),product_Pair(H,I2)))),zip(product_prod(G,H),I2,zip(G,H,Xs2,Ys),Zs)) )).

% zip_assoc
tff(fact_234_sup_Oidem,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),A3) = A3 ) )).

% sup.idem
tff(fact_235_extract__SomeE,axiom,(
    ! [A: $tType,P: fun(A,bool),Xs: list(A),Ys2: list(A),Y: A,Zs2: list(A)] :
      ( extract(A,P,Xs) = aa(product_prod(list(A),product_prod(A,list(A))),option(product_prod(list(A),product_prod(A,list(A)))),some(product_prod(list(A),product_prod(A,list(A)))),aa(product_prod(A,list(A)),product_prod(list(A),product_prod(A,list(A))),aa(list(A),fun(product_prod(A,list(A)),product_prod(list(A),product_prod(A,list(A)))),product_Pair(list(A),product_prod(A,list(A))),Ys2),aa(list(A),product_prod(A,list(A)),aa(A,fun(list(A),product_prod(A,list(A))),product_Pair(A,list(A)),Y),Zs2)))
     => ( Xs = append(A,Ys2,aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),Y),Zs2))
        & pp(aa(A,bool,P,Y))
        & ~ ? [X5: A] :
              ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X5),aa(list(A),set(A),set2(A),Ys2)))
              & pp(aa(A,bool,P,X5)) ) ) ) )).

% extract_SomeE
tff(fact_236_inf__sup__aci_I8_J,axiom,(
    ! [A: $tType] :
      ( lattice(A)
     => ! [X3: A,Y: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y)) = aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y) ) )).

% inf_sup_aci(8)
tff(fact_237_UnE,axiom,(
    ! [A: $tType,C3: A,A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)))
     => ( ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),A5))
       => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),B6)) ) ) )).

% UnE
tff(fact_238_list_Ocase_I2_J,axiom,(
    ! [B: $tType,A: $tType,F1: B,F22: fun(A,fun(list(A),B)),X21: A,X22: list(A)] : case_list(B,A,F1,F22,aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),X21),X22)) = aa(list(A),B,aa(A,fun(list(A),B),F22,X21),X22) )).

% list.case(2)
tff(fact_239_inf__sup__aci_I7_J,axiom,(
    ! [A: $tType] :
      ( lattice(A)
     => ! [X3: A,Y: A,Z3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),Y),Z3)) = aa(A,A,aa(A,fun(A,A),sup_sup(A),Y),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Z3)) ) )).

% inf_sup_aci(7)
tff(fact_240_bi__unique__eq,axiom,(
    ! [A: $tType] : bi_unique(A,A,fequal(A)) )).

% bi_unique_eq
tff(fact_241_inf__sup__aci_I6_J,axiom,(
    ! [A: $tType] :
      ( lattice(A)
     => ! [X3: A,Y: A,Z3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y)),Z3) = aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),Y),Z3)) ) )).

% inf_sup_aci(6)
tff(fact_242_identity__quotient,axiom,(
    ! [A: $tType] : quotient(A,A,fequal(A),id(A),id(A),fequal(A)) )).

% identity_quotient
tff(fact_243_inf__sup__aci_I5_J,axiom,(
    ! [A: $tType] :
      ( lattice(A)
     => ! [X3: A,Y: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y) = aa(A,A,aa(A,fun(A,A),sup_sup(A),Y),X3) ) )).

% inf_sup_aci(5)
tff(fact_244_fold__atLeastAtMost__nat_Ocases,axiom,(
    ! [A: $tType,X3: product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A)))] :
      ~ ! [F2: fun(nat,fun(A,A)),A2: nat,B2: nat,Acc: A] : X3 != aa(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),aa(fun(nat,fun(A,A)),fun(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A)))),product_Pair(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),F2),aa(product_prod(nat,A),product_prod(nat,product_prod(nat,A)),aa(nat,fun(product_prod(nat,A),product_prod(nat,product_prod(nat,A))),product_Pair(nat,product_prod(nat,A)),A2),aa(A,product_prod(nat,A),aa(nat,fun(A,product_prod(nat,A)),product_Pair(nat,A),B2),Acc))) )).

% fold_atLeastAtMost_nat.cases
tff(fact_245_boolean__algebra__cancel_Osup1,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A5: A,K: A,A3: A,B3: A] :
          ( A5 = aa(A,A,aa(A,fun(A,A),sup_sup(A),K),A3)
         => aa(A,A,aa(A,fun(A,A),sup_sup(A),A5),B3) = aa(A,A,aa(A,fun(A,A),sup_sup(A),K),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3)) ) ) )).

% boolean_algebra_cancel.sup1
tff(fact_246_conditional__action_Orel__eq,axiom,(
    ! [A: $tType] : aa(fun(A,fun(A,bool)),fun(conditional_action(A),fun(conditional_action(A),bool)),condit4280512358590153947action(A,A),fequal(A)) = fequal(conditional_action(A)) )).

% conditional_action.rel_eq
tff(fact_247_boolean__algebra__cancel_Osup2,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B6: A,K: A,B3: A,A3: A] :
          ( B6 = aa(A,A,aa(A,fun(A,A),sup_sup(A),K),B3)
         => aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B6) = aa(A,A,aa(A,fun(A,A),sup_sup(A),K),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3)) ) ) )).

% boolean_algebra_cancel.sup2
tff(fact_248_zip__left__commute,axiom,(
    ! [H: $tType,G: $tType,I2: $tType,Xs2: list(G),Ys: list(H),Zs: list(I2)] : zip(G,product_prod(H,I2),Xs2,zip(H,I2,Ys,Zs)) = map(product_prod(H,product_prod(G,I2)),product_prod(G,product_prod(H,I2)),aa(fun(H,fun(product_prod(G,I2),product_prod(G,product_prod(H,I2)))),fun(product_prod(H,product_prod(G,I2)),product_prod(G,product_prod(H,I2))),product_case_prod(H,product_prod(G,I2),product_prod(G,product_prod(H,I2))),aa(fun(H,fun(G,fun(I2,product_prod(G,product_prod(H,I2))))),fun(H,fun(product_prod(G,I2),product_prod(G,product_prod(H,I2)))),aa(fun(fun(G,fun(I2,product_prod(G,product_prod(H,I2)))),fun(product_prod(G,I2),product_prod(G,product_prod(H,I2)))),fun(fun(H,fun(G,fun(I2,product_prod(G,product_prod(H,I2))))),fun(H,fun(product_prod(G,I2),product_prod(G,product_prod(H,I2))))),combb(fun(G,fun(I2,product_prod(G,product_prod(H,I2)))),fun(product_prod(G,I2),product_prod(G,product_prod(H,I2))),H),product_case_prod(G,I2,product_prod(G,product_prod(H,I2)))),aa(fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(G,fun(I2,product_prod(G,product_prod(H,I2))))),aa(fun(fun(I2,product_prod(H,I2)),fun(G,fun(I2,product_prod(G,product_prod(H,I2))))),fun(fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(G,fun(I2,product_prod(G,product_prod(H,I2)))))),combb(fun(I2,product_prod(H,I2)),fun(G,fun(I2,product_prod(G,product_prod(H,I2)))),H),aa(fun(G,fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2))))),fun(fun(I2,product_prod(H,I2)),fun(G,fun(I2,product_prod(G,product_prod(H,I2))))),combc(G,fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2)))),aa(fun(G,fun(product_prod(H,I2),product_prod(G,product_prod(H,I2)))),fun(G,fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2))))),aa(fun(fun(product_prod(H,I2),product_prod(G,product_prod(H,I2))),fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2))))),fun(fun(G,fun(product_prod(H,I2),product_prod(G,product_prod(H,I2)))),fun(G,fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2)))))),combb(fun(product_prod(H,I2),product_prod(G,product_prod(H,I2))),fun(fun(I2,product_prod(H,I2)),fun(I2,product_prod(G,product_prod(H,I2)))),G),combb(product_prod(H,I2),product_prod(G,product_prod(H,I2)),I2)),product_Pair(G,product_prod(H,I2))))),product_Pair(H,I2)))),zip(H,product_prod(G,I2),Ys,zip(G,I2,Xs2,Zs))) )).

% zip_left_commute
tff(fact_249_sup_Oassoc,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,B3: A,C3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3)),C3) = aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),aa(A,A,aa(A,fun(A,A),sup_sup(A),B3),C3)) ) )).

% sup.assoc
tff(fact_250_fun__upd__apply,axiom,(
    ! [A: $tType,B: $tType,Z3: B,X3: B,F3: fun(B,A),Y: A] :
      ( ( Z3 = X3
       => aa(B,A,fun_upd(B,A,F3,X3,Y),Z3) = Y )
      & ( Z3 != X3
       => aa(B,A,fun_upd(B,A,F3,X3,Y),Z3) = aa(B,A,F3,Z3) ) ) )).

% fun_upd_apply
tff(fact_251_sup__assoc,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,Y: A,Z3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y)),Z3) = aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),Y),Z3)) ) )).

% sup_assoc
tff(fact_252_new__thread__action_Osize__neq,axiom,(
    ! [T: $tType,X: $tType,M: $tType,X3: new_thread_action(T,X,M)] : size_size(new_thread_action(T,X,M),X3) != zero_zero(nat) )).

% new_thread_action.size_neq
tff(fact_253_sup_Ocommute,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,B3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3) = aa(A,A,aa(A,fun(A,A),sup_sup(A),B3),A3) ) )).

% sup.commute
tff(fact_254_new__thread__action_Osize_I3_J,axiom,(
    ! [M: $tType,T: $tType,X: $tType,X11: T,X12: X,X13: M] : size_size(new_thread_action(T,X,M),new_thread_NewThread(T,X,M,X11,X12,X13)) = suc(zero_zero(nat)) )).

% new_thread_action.size(3)
tff(fact_255_sup__commute,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,Y: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y) = aa(A,A,aa(A,fun(A,A),sup_sup(A),Y),X3) ) )).

% sup_commute
tff(fact_256_Rel__abs,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A5: fun(A,fun(B,bool)),B6: fun(C,fun(D,bool)),F3: fun(A,C),G3: fun(B,D)] :
      ( ! [X4: A,Y3: B] :
          ( pp(aa(B,bool,aa(A,fun(B,bool),rel(A,B,A5),X4),Y3))
         => pp(aa(D,bool,aa(C,fun(D,bool),rel(C,D,B6),aa(A,C,F3,X4)),aa(B,D,G3,Y3))) )
     => pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),rel(fun(A,C),fun(B,D),bNF_rel_fun(A,B,C,D,A5,B6)),F3),G3)) ) )).

% Rel_abs
tff(fact_257_sup_Oleft__commute,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B3: A,A3: A,C3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),B3),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),C3)) = aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),aa(A,A,aa(A,fun(A,A),sup_sup(A),B3),C3)) ) )).

% sup.left_commute
tff(fact_258_wait__set__action_Osize__neq,axiom,(
    ! [T: $tType,W: $tType,X3: wait_set_action(T,W)] : size_size(wait_set_action(T,W),X3) != zero_zero(nat) )).

% wait_set_action.size_neq
tff(fact_259_sup__left__commute,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,Y: A,Z3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),Y),Z3)) = aa(A,A,aa(A,fun(A,A),sup_sup(A),Y),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Z3)) ) )).

% sup_left_commute
tff(fact_260_lex__prod__def,axiom,(
    ! [G: $tType,H: $tType,Ra: set(product_prod(G,G)),Rb: set(product_prod(H,H))] : lex_prod(G,H,Ra,Rb) = aa(fun(product_prod(product_prod(G,H),product_prod(G,H)),bool),set(product_prod(product_prod(G,H),product_prod(G,H))),collect(product_prod(product_prod(G,H),product_prod(G,H))),aa(fun(product_prod(G,H),fun(product_prod(G,H),bool)),fun(product_prod(product_prod(G,H),product_prod(G,H)),bool),product_case_prod(product_prod(G,H),product_prod(G,H),bool),aa(fun(G,fun(H,fun(product_prod(G,H),bool))),fun(product_prod(G,H),fun(product_prod(G,H),bool)),product_case_prod(G,H,fun(product_prod(G,H),bool)),aa(fun(G,fun(H,fun(G,fun(H,bool)))),fun(G,fun(H,fun(product_prod(G,H),bool))),aa(fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(product_prod(G,H),bool))),fun(fun(G,fun(H,fun(G,fun(H,bool)))),fun(G,fun(H,fun(product_prod(G,H),bool)))),combb(fun(H,fun(G,fun(H,bool))),fun(H,fun(product_prod(G,H),bool)),G),aa(fun(fun(G,fun(H,bool)),fun(product_prod(G,H),bool)),fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(product_prod(G,H),bool))),combb(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),H),product_case_prod(G,H,bool))),aa(fun(G,fun(H,fun(G,fun(H,bool)))),fun(G,fun(H,fun(G,fun(H,bool)))),aa(fun(G,fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool))))),fun(fun(G,fun(H,fun(G,fun(H,bool)))),fun(G,fun(H,fun(G,fun(H,bool))))),combs(G,fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool)))),aa(fun(G,fun(fun(G,fun(H,bool)),fun(G,fun(H,bool)))),fun(G,fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool))))),aa(fun(fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool))))),fun(fun(G,fun(fun(G,fun(H,bool)),fun(G,fun(H,bool)))),fun(G,fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool)))))),combb(fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool)))),G),combb(fun(G,fun(H,bool)),fun(G,fun(H,bool)),H)),aa(fun(G,fun(G,fun(fun(H,bool),fun(H,bool)))),fun(G,fun(fun(G,fun(H,bool)),fun(G,fun(H,bool)))),aa(fun(fun(G,fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(H,bool)),fun(G,fun(H,bool)))),fun(fun(G,fun(G,fun(fun(H,bool),fun(H,bool)))),fun(G,fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))))),combb(fun(G,fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),G),combs(G,fun(H,bool),fun(H,bool))),aa(fun(G,fun(G,fun(bool,bool))),fun(G,fun(G,fun(fun(H,bool),fun(H,bool)))),aa(fun(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool)))),fun(fun(G,fun(G,fun(bool,bool))),fun(G,fun(G,fun(fun(H,bool),fun(H,bool))))),combb(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool))),G),aa(fun(fun(bool,bool),fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool)))),combb(fun(bool,bool),fun(fun(H,bool),fun(H,bool)),G),combb(bool,bool,H))),aa(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool))),aa(fun(fun(G,bool),fun(G,fun(bool,bool))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool)))),combb(fun(G,bool),fun(G,fun(bool,bool)),G),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fdisj)),aa(set(product_prod(G,G)),fun(G,fun(G,bool)),aa(fun(G,fun(set(product_prod(G,G)),fun(G,bool))),fun(set(product_prod(G,G)),fun(G,fun(G,bool))),combc(G,set(product_prod(G,G)),fun(G,bool)),aa(fun(G,fun(G,fun(set(product_prod(G,G)),bool))),fun(G,fun(set(product_prod(G,G)),fun(G,bool))),aa(fun(fun(G,fun(set(product_prod(G,G)),bool)),fun(set(product_prod(G,G)),fun(G,bool))),fun(fun(G,fun(G,fun(set(product_prod(G,G)),bool))),fun(G,fun(set(product_prod(G,G)),fun(G,bool)))),combb(fun(G,fun(set(product_prod(G,G)),bool)),fun(set(product_prod(G,G)),fun(G,bool)),G),combc(G,set(product_prod(G,G)),bool)),aa(fun(G,fun(G,product_prod(G,G))),fun(G,fun(G,fun(set(product_prod(G,G)),bool))),aa(fun(fun(G,product_prod(G,G)),fun(G,fun(set(product_prod(G,G)),bool))),fun(fun(G,fun(G,product_prod(G,G))),fun(G,fun(G,fun(set(product_prod(G,G)),bool)))),combb(fun(G,product_prod(G,G)),fun(G,fun(set(product_prod(G,G)),bool)),G),aa(fun(product_prod(G,G),fun(set(product_prod(G,G)),bool)),fun(fun(G,product_prod(G,G)),fun(G,fun(set(product_prod(G,G)),bool))),combb(product_prod(G,G),fun(set(product_prod(G,G)),bool),G),member(product_prod(G,G)))),product_Pair(G,G)))),Ra)))))),aa(fun(H,fun(H,bool)),fun(G,fun(H,fun(G,fun(H,bool)))),aa(fun(G,fun(fun(H,fun(H,bool)),fun(H,fun(G,fun(H,bool))))),fun(fun(H,fun(H,bool)),fun(G,fun(H,fun(G,fun(H,bool))))),combc(G,fun(H,fun(H,bool)),fun(H,fun(G,fun(H,bool)))),aa(fun(G,fun(fun(H,bool),fun(G,fun(H,bool)))),fun(G,fun(fun(H,fun(H,bool)),fun(H,fun(G,fun(H,bool))))),aa(fun(fun(fun(H,bool),fun(G,fun(H,bool))),fun(fun(H,fun(H,bool)),fun(H,fun(G,fun(H,bool))))),fun(fun(G,fun(fun(H,bool),fun(G,fun(H,bool)))),fun(G,fun(fun(H,fun(H,bool)),fun(H,fun(G,fun(H,bool)))))),combb(fun(fun(H,bool),fun(G,fun(H,bool))),fun(fun(H,fun(H,bool)),fun(H,fun(G,fun(H,bool)))),G),combb(fun(H,bool),fun(G,fun(H,bool)),H)),aa(fun(G,fun(G,fun(fun(H,bool),fun(H,bool)))),fun(G,fun(fun(H,bool),fun(G,fun(H,bool)))),aa(fun(fun(G,fun(fun(H,bool),fun(H,bool))),fun(fun(H,bool),fun(G,fun(H,bool)))),fun(fun(G,fun(G,fun(fun(H,bool),fun(H,bool)))),fun(G,fun(fun(H,bool),fun(G,fun(H,bool))))),combb(fun(G,fun(fun(H,bool),fun(H,bool))),fun(fun(H,bool),fun(G,fun(H,bool))),G),combc(G,fun(H,bool),fun(H,bool))),aa(fun(G,fun(G,fun(bool,bool))),fun(G,fun(G,fun(fun(H,bool),fun(H,bool)))),aa(fun(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool)))),fun(fun(G,fun(G,fun(bool,bool))),fun(G,fun(G,fun(fun(H,bool),fun(H,bool))))),combb(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool))),G),aa(fun(fun(bool,bool),fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool)))),combb(fun(bool,bool),fun(fun(H,bool),fun(H,bool)),G),combb(bool,bool,H))),aa(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool))),aa(fun(fun(G,bool),fun(G,fun(bool,bool))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool)))),combb(fun(G,bool),fun(G,fun(bool,bool)),G),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj)),fequal(G)))))),aa(set(product_prod(H,H)),fun(H,fun(H,bool)),aa(fun(H,fun(set(product_prod(H,H)),fun(H,bool))),fun(set(product_prod(H,H)),fun(H,fun(H,bool))),combc(H,set(product_prod(H,H)),fun(H,bool)),aa(fun(H,fun(H,fun(set(product_prod(H,H)),bool))),fun(H,fun(set(product_prod(H,H)),fun(H,bool))),aa(fun(fun(H,fun(set(product_prod(H,H)),bool)),fun(set(product_prod(H,H)),fun(H,bool))),fun(fun(H,fun(H,fun(set(product_prod(H,H)),bool))),fun(H,fun(set(product_prod(H,H)),fun(H,bool)))),combb(fun(H,fun(set(product_prod(H,H)),bool)),fun(set(product_prod(H,H)),fun(H,bool)),H),combc(H,set(product_prod(H,H)),bool)),aa(fun(H,fun(H,product_prod(H,H))),fun(H,fun(H,fun(set(product_prod(H,H)),bool))),aa(fun(fun(H,product_prod(H,H)),fun(H,fun(set(product_prod(H,H)),bool))),fun(fun(H,fun(H,product_prod(H,H))),fun(H,fun(H,fun(set(product_prod(H,H)),bool)))),combb(fun(H,product_prod(H,H)),fun(H,fun(set(product_prod(H,H)),bool)),H),aa(fun(product_prod(H,H),fun(set(product_prod(H,H)),bool)),fun(fun(H,product_prod(H,H)),fun(H,fun(set(product_prod(H,H)),bool))),combb(product_prod(H,H),fun(set(product_prod(H,H)),bool),H),member(product_prod(H,H)))),product_Pair(H,H)))),Rb))))))) )).

% lex_prod_def
tff(fact_261_eq__onp__le__eq,axiom,(
    ! [A: $tType,P: fun(A,bool)] : pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),bNF_eq_onp(A,P)),fequal(A))) )).

% eq_onp_le_eq
tff(fact_262_sup2E,axiom,(
    ! [A: $tType,B: $tType,A5: fun(A,fun(B,bool)),B6: fun(A,fun(B,bool)),X3: A,Y: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),aa(fun(A,fun(B,bool)),fun(A,fun(B,bool)),aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),fun(A,fun(B,bool))),sup_sup(fun(A,fun(B,bool))),A5),B6),X3),Y))
     => ( ~ pp(aa(B,bool,aa(A,fun(B,bool),A5,X3),Y))
       => pp(aa(B,bool,aa(A,fun(B,bool),B6,X3),Y)) ) ) )).

% sup2E
tff(fact_263_dropWhile__eq__Cons__conv,axiom,(
    ! [A: $tType,P: fun(A,bool),Xs: list(A),Y: A,Ys2: list(A)] :
      ( dropWhile(A,P,Xs) = aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),Y),Ys2)
    <=> ( Xs = append(A,takeWhile(A,P,Xs),aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),Y),Ys2))
        & ~ pp(aa(A,bool,P,Y)) ) ) )).

% dropWhile_eq_Cons_conv
tff(fact_264_sup2I1,axiom,(
    ! [A: $tType,B: $tType,A5: fun(A,fun(B,bool)),X3: A,Y: B,B6: fun(A,fun(B,bool))] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),A5,X3),Y))
     => pp(aa(B,bool,aa(A,fun(B,bool),aa(fun(A,fun(B,bool)),fun(A,fun(B,bool)),aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),fun(A,fun(B,bool))),sup_sup(fun(A,fun(B,bool))),A5),B6),X3),Y)) ) )).

% sup2I1
tff(fact_265_takeWhile__append1,axiom,(
    ! [A: $tType,X3: A,Xs: list(A),P: fun(A,bool),Ys2: list(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X3),aa(list(A),set(A),set2(A),Xs)))
     => ( ~ pp(aa(A,bool,P,X3))
       => takeWhile(A,P,append(A,Xs,Ys2)) = takeWhile(A,P,Xs) ) ) )).

% takeWhile_append1
tff(fact_266_sup2I2,axiom,(
    ! [A: $tType,B: $tType,B6: fun(A,fun(B,bool)),X3: A,Y: B,A5: fun(A,fun(B,bool))] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),B6,X3),Y))
     => pp(aa(B,bool,aa(A,fun(B,bool),aa(fun(A,fun(B,bool)),fun(A,fun(B,bool)),aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),fun(A,fun(B,bool))),sup_sup(fun(A,fun(B,bool))),A5),B6),X3),Y)) ) )).

% sup2I2
tff(fact_267_conditional__action_Oinject,axiom,(
    ! [T: $tType,X1: T,Y1: T] :
      ( aa(T,conditional_action(T),conditional_Join(T),X1) = aa(T,conditional_action(T),conditional_Join(T),Y1)
    <=> X1 = Y1 ) )).

% conditional_action.inject
tff(fact_268_exE__realizer_H,axiom,(
    ! [A: $tType,B: $tType,P: fun(A,fun(B,bool)),P2: product_prod(B,A)] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),P,aa(product_prod(B,A),A,product_snd(B,A),P2)),aa(product_prod(B,A),B,product_fst(B,A),P2)))
     => ~ ! [X4: B,Y3: A] : ~ pp(aa(B,bool,aa(A,fun(B,bool),P,Y3),X4)) ) )).

% exE_realizer'
tff(fact_269_Rel__app,axiom,(
    ! [A: $tType,B: $tType,D: $tType,C: $tType,A5: fun(A,fun(C,bool)),B6: fun(B,fun(D,bool)),F3: fun(A,B),G3: fun(C,D),X3: A,Y: C] :
      ( pp(aa(fun(C,D),bool,aa(fun(A,B),fun(fun(C,D),bool),rel(fun(A,B),fun(C,D),bNF_rel_fun(A,C,B,D,A5,B6)),F3),G3))
     => ( pp(aa(C,bool,aa(A,fun(C,bool),rel(A,C,A5),X3),Y))
       => pp(aa(D,bool,aa(B,fun(D,bool),rel(B,D,B6),aa(A,B,F3,X3)),aa(C,D,G3,Y))) ) ) )).

% Rel_app
tff(fact_270_sup__fun__def,axiom,(
    ! [B: $tType,A: $tType] :
      ( semilattice_sup(B)
     => ! [F3: fun(A,B),G3: fun(A,B),X5: A] : aa(A,B,aa(fun(A,B),fun(A,B),aa(fun(A,B),fun(fun(A,B),fun(A,B)),sup_sup(fun(A,B)),F3),G3),X5) = aa(B,B,aa(B,fun(B,B),sup_sup(B),aa(A,B,F3,X5)),aa(A,B,G3,X5)) ) )).

% sup_fun_def
tff(fact_271_map__prod__simp,axiom,(
    ! [C: $tType,A: $tType,B: $tType,D: $tType,F3: fun(C,A),G3: fun(D,B),A3: C,B3: D] : aa(product_prod(C,D),product_prod(A,B),product_map_prod(C,A,D,B,F3,G3),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),A3),B3)) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(C,A,F3,A3)),aa(D,B,G3,B3)) )).

% map_prod_simp
tff(fact_272_eq__transfer,axiom,(
    ! [A: $tType,B: $tType,A5: fun(A,fun(B,bool))] :
      ( bi_unique(A,B,A5)
     => pp(aa(fun(B,fun(B,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(B,fun(B,bool)),bool),bNF_rel_fun(A,B,fun(A,bool),fun(B,bool),A5,bNF_rel_fun(A,B,bool,bool,A5,fequal(bool))),fequal(A)),fequal(B))) ) )).

% eq_transfer
tff(fact_273_less__than__iff,axiom,(
    ! [X3: nat,Y: nat] :
      ( pp(aa(set(product_prod(nat,nat)),bool,aa(product_prod(nat,nat),fun(set(product_prod(nat,nat)),bool),member(product_prod(nat,nat)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),X3),Y)),less_than))
    <=> pp(ord_less(nat,X3,Y)) ) )).

% less_than_iff
tff(fact_274_same__fst__def,axiom,(
    ! [H: $tType,G: $tType,P3: fun(G,bool),R3: fun(G,set(product_prod(H,H)))] : same_fst(G,H,P3,R3) = aa(fun(product_prod(product_prod(G,H),product_prod(G,H)),bool),set(product_prod(product_prod(G,H),product_prod(G,H))),collect(product_prod(product_prod(G,H),product_prod(G,H))),aa(fun(product_prod(G,H),fun(product_prod(G,H),bool)),fun(product_prod(product_prod(G,H),product_prod(G,H)),bool),product_case_prod(product_prod(G,H),product_prod(G,H),bool),aa(fun(G,fun(H,fun(product_prod(G,H),bool))),fun(product_prod(G,H),fun(product_prod(G,H),bool)),product_case_prod(G,H,fun(product_prod(G,H),bool)),aa(fun(G,fun(H,fun(G,fun(H,bool)))),fun(G,fun(H,fun(product_prod(G,H),bool))),aa(fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(product_prod(G,H),bool))),fun(fun(G,fun(H,fun(G,fun(H,bool)))),fun(G,fun(H,fun(product_prod(G,H),bool)))),combb(fun(H,fun(G,fun(H,bool))),fun(H,fun(product_prod(G,H),bool)),G),aa(fun(fun(G,fun(H,bool)),fun(product_prod(G,H),bool)),fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(product_prod(G,H),bool))),combb(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),H),product_case_prod(G,H,bool))),aa(fun(H,fun(G,fun(H,bool))),fun(G,fun(H,fun(G,fun(H,bool)))),aa(fun(G,fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool))))),fun(fun(H,fun(G,fun(H,bool))),fun(G,fun(H,fun(G,fun(H,bool))))),combc(G,fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool)))),aa(fun(G,fun(fun(G,fun(H,bool)),fun(G,fun(H,bool)))),fun(G,fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool))))),aa(fun(fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool))))),fun(fun(G,fun(fun(G,fun(H,bool)),fun(G,fun(H,bool)))),fun(G,fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool)))))),combb(fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool)))),G),combb(fun(G,fun(H,bool)),fun(G,fun(H,bool)),H)),aa(fun(G,fun(G,fun(fun(H,bool),fun(H,bool)))),fun(G,fun(fun(G,fun(H,bool)),fun(G,fun(H,bool)))),aa(fun(fun(G,fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(H,bool)),fun(G,fun(H,bool)))),fun(fun(G,fun(G,fun(fun(H,bool),fun(H,bool)))),fun(G,fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))))),combb(fun(G,fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),G),combs(G,fun(H,bool),fun(H,bool))),aa(fun(G,fun(G,fun(bool,bool))),fun(G,fun(G,fun(fun(H,bool),fun(H,bool)))),aa(fun(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool)))),fun(fun(G,fun(G,fun(bool,bool))),fun(G,fun(G,fun(fun(H,bool),fun(H,bool))))),combb(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool))),G),aa(fun(fun(bool,bool),fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool)))),combb(fun(bool,bool),fun(fun(H,bool),fun(H,bool)),G),combb(bool,bool,H))),aa(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool))),aa(fun(fun(G,bool),fun(G,fun(bool,bool))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool)))),combb(fun(G,bool),fun(G,fun(bool,bool)),G),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj)),fequal(G)))))),aa(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool))),aa(fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),fun(fun(H,fun(G,fun(H,bool))),fun(H,fun(G,fun(H,bool)))),combb(fun(G,fun(H,bool)),fun(G,fun(H,bool)),H),aa(fun(G,fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),combs(G,fun(H,bool),fun(H,bool)),aa(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool))),aa(fun(fun(bool,bool),fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool)))),combb(fun(bool,bool),fun(fun(H,bool),fun(H,bool)),G),combb(bool,bool,H)),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj),P3)))),aa(fun(G,set(product_prod(H,H))),fun(H,fun(G,fun(H,bool))),aa(fun(H,fun(fun(G,set(product_prod(H,H))),fun(G,fun(H,bool)))),fun(fun(G,set(product_prod(H,H))),fun(H,fun(G,fun(H,bool)))),combc(H,fun(G,set(product_prod(H,H))),fun(G,fun(H,bool))),aa(fun(H,fun(set(product_prod(H,H)),fun(H,bool))),fun(H,fun(fun(G,set(product_prod(H,H))),fun(G,fun(H,bool)))),aa(fun(fun(set(product_prod(H,H)),fun(H,bool)),fun(fun(G,set(product_prod(H,H))),fun(G,fun(H,bool)))),fun(fun(H,fun(set(product_prod(H,H)),fun(H,bool))),fun(H,fun(fun(G,set(product_prod(H,H))),fun(G,fun(H,bool))))),combb(fun(set(product_prod(H,H)),fun(H,bool)),fun(fun(G,set(product_prod(H,H))),fun(G,fun(H,bool))),H),combb(set(product_prod(H,H)),fun(H,bool),G)),aa(fun(H,fun(H,fun(set(product_prod(H,H)),bool))),fun(H,fun(set(product_prod(H,H)),fun(H,bool))),aa(fun(fun(H,fun(set(product_prod(H,H)),bool)),fun(set(product_prod(H,H)),fun(H,bool))),fun(fun(H,fun(H,fun(set(product_prod(H,H)),bool))),fun(H,fun(set(product_prod(H,H)),fun(H,bool)))),combb(fun(H,fun(set(product_prod(H,H)),bool)),fun(set(product_prod(H,H)),fun(H,bool)),H),combc(H,set(product_prod(H,H)),bool)),aa(fun(H,fun(H,product_prod(H,H))),fun(H,fun(H,fun(set(product_prod(H,H)),bool))),aa(fun(fun(H,product_prod(H,H)),fun(H,fun(set(product_prod(H,H)),bool))),fun(fun(H,fun(H,product_prod(H,H))),fun(H,fun(H,fun(set(product_prod(H,H)),bool)))),combb(fun(H,product_prod(H,H)),fun(H,fun(set(product_prod(H,H)),bool)),H),aa(fun(product_prod(H,H),fun(set(product_prod(H,H)),bool)),fun(fun(H,product_prod(H,H)),fun(H,fun(set(product_prod(H,H)),bool))),combb(product_prod(H,H),fun(set(product_prod(H,H)),bool),H),member(product_prod(H,H)))),product_Pair(H,H))))),R3))))))) )).

% same_fst_def
tff(fact_275_equalityCE,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A),C3: A] :
      ( A5 = B6
     => ( ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),A5))
         => ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),B6)) )
       => ~ ( ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),A5))
           => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),B6)) ) ) ) )).

% equalityCE
tff(fact_276_curry__def,axiom,(
    ! [C: $tType,A: $tType,B: $tType,X5: fun(product_prod(A,B),C),Xa2: A,Xb3: B] : aa(B,C,aa(A,fun(B,C),product_curry(A,B,C,X5),Xa2),Xb3) = aa(product_prod(A,B),C,X5,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Xa2),Xb3)) )).

% curry_def
tff(fact_277_conditional__action_Opred__True,axiom,(
    ! [G: $tType,X5: conditional_action(G)] : pp(aa(conditional_action(G),bool,aa(fun(G,bool),fun(conditional_action(G),bool),condit606476673698705123action(G),aa(bool,fun(G,bool),combk(bool,G),fTrue)),X5)) )).

% conditional_action.pred_True
tff(fact_278_wait__set__action_Osize_I9_J,axiom,(
    ! [W: $tType,T: $tType,X32: W] : size_size(wait_set_action(T,W),wait_set_NotifyAll(W,T,X32)) = suc(zero_zero(nat)) )).

% wait_set_action.size(9)
tff(fact_279_list_Oset_I2_J,axiom,(
    ! [A: $tType,X21: A,X22: list(A)] : aa(list(A),set(A),set2(A),aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),X21),X22)) = aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),X21),aa(list(A),set(A),set2(A),X22)) )).

% list.set(2)
tff(fact_280_apsnd__apfst,axiom,(
    ! [A: $tType,B: $tType,C: $tType,D: $tType,F3: fun(C,B),G3: fun(D,A),X3: product_prod(D,C)] : aa(product_prod(A,C),product_prod(A,B),product_apsnd(C,B,A,F3),aa(product_prod(D,C),product_prod(A,C),product_apfst(D,A,C,G3),X3)) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(D,A,G3,aa(product_prod(D,C),D,product_fst(D,C),X3))),aa(C,B,F3,aa(product_prod(D,C),C,product_snd(D,C),X3))) )).

% apsnd_apfst
tff(fact_281_insertCI,axiom,(
    ! [A: $tType,A3: A,B6: set(A),B3: A] :
      ( ( ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),B6))
       => A3 = B3 )
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),B3),B6))) ) )).

% insertCI
tff(fact_282_apfst__apsnd,axiom,(
    ! [A: $tType,B: $tType,D: $tType,C: $tType,F3: fun(C,A),G3: fun(D,B),X3: product_prod(C,D)] : aa(product_prod(C,B),product_prod(A,B),product_apfst(C,A,B,F3),aa(product_prod(C,D),product_prod(C,B),product_apsnd(D,B,C,G3),X3)) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(C,A,F3,aa(product_prod(C,D),C,product_fst(C,D),X3))),aa(D,B,G3,aa(product_prod(C,D),D,product_snd(C,D),X3))) )).

% apfst_apsnd
tff(fact_283_wait__set__action_Osize_I8_J,axiom,(
    ! [W: $tType,T: $tType,X2: W] : size_size(wait_set_action(T,W),wait_set_Notify(W,T,X2)) = suc(zero_zero(nat)) )).

% wait_set_action.size(8)
tff(fact_284_Quotient__to__transfer,axiom,(
    ! [A: $tType,B: $tType,R: fun(A,fun(A,bool)),Abs: fun(A,B),Rep: fun(B,A),T2: fun(A,fun(B,bool)),C3: A,C5: B] :
      ( quotient(A,B,R,Abs,Rep,T2)
     => ( pp(aa(A,bool,aa(A,fun(A,bool),R,C3),C3))
       => ( C5 = aa(A,B,Abs,C3)
         => pp(aa(B,bool,aa(A,fun(B,bool),T2,C3),C5)) ) ) ) )).

% Quotient_to_transfer
tff(fact_285_exhaustive__fun_H_Ocases,axiom,(
    ! [A: $tType,B: $tType] :
      ( ( quickc658316121487927005ustive(B)
        & cl_HOL_Oequal(A)
        & quickc658316121487927005ustive(A) )
     => ! [X3: product_prod(fun(fun(A,B),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural))] :
          ~ ! [F2: fun(fun(A,B),option(product_prod(bool,list(code_term)))),I: code_natural,D2: code_natural] : X3 != aa(product_prod(code_natural,code_natural),product_prod(fun(fun(A,B),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural)),aa(fun(fun(A,B),option(product_prod(bool,list(code_term)))),fun(product_prod(code_natural,code_natural),product_prod(fun(fun(A,B),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural))),product_Pair(fun(fun(A,B),option(product_prod(bool,list(code_term)))),product_prod(code_natural,code_natural)),F2),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),I),D2)) ) )).

% exhaustive_fun'.cases
tff(fact_286_snd__apfst,axiom,(
    ! [B: $tType,A: $tType,C: $tType,F3: fun(C,B),X3: product_prod(C,A)] : aa(product_prod(B,A),A,product_snd(B,A),aa(product_prod(C,A),product_prod(B,A),product_apfst(C,B,A,F3),X3)) = aa(product_prod(C,A),A,product_snd(C,A),X3) )).

% snd_apfst
tff(fact_287_rtrancl3p__induct4_H,axiom,(
    ! [C: $tType,A: $tType,E: $tType,B: $tType,D: $tType,R2: fun(product_prod(A,product_prod(product_prod(B,C),D)),fun(E,fun(product_prod(A,product_prod(product_prod(B,C),D)),bool))),Ax: A,Ay: B,Az: C,Aw: D,Bs2: list(E),Cx: A,Cy: B,Cz: C,Cw: D,P: fun(A,fun(B,fun(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool)))))))))] :
      ( rtrancl3p(product_prod(A,product_prod(product_prod(B,C),D)),E,R2,aa(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D)),aa(A,fun(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D))),product_Pair(A,product_prod(product_prod(B,C),D)),Ax),aa(D,product_prod(product_prod(B,C),D),aa(product_prod(B,C),fun(D,product_prod(product_prod(B,C),D)),product_Pair(product_prod(B,C),D),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ay),Az)),Aw)),Bs2,aa(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D)),aa(A,fun(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D))),product_Pair(A,product_prod(product_prod(B,C),D)),Cx),aa(D,product_prod(product_prod(B,C),D),aa(product_prod(B,C),fun(D,product_prod(product_prod(B,C),D)),product_Pair(product_prod(B,C),D),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Cy),Cz)),Cw)))
     => ( ! [A2: A,Aa2: B,B2: C,Ba: D] : pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),aa(list(E),fun(A,fun(B,fun(C,fun(D,bool)))),aa(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool))))),aa(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool)))))),aa(B,fun(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool))))))),aa(A,fun(B,fun(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool)))))))),P,A2),Aa2),B2),Ba),nil(E)),A2),Aa2),B2),Ba))
       => ( ! [A2: A,Aa2: B,B2: C,Ba: D,Bs: list(E),Ab: A,Ac: B,Bb: C,Bc: D,Bd: E,Ad: A,Ae: B,Be: C,Bf: D] :
              ( rtrancl3p(product_prod(A,product_prod(product_prod(B,C),D)),E,R2,aa(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D)),aa(A,fun(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D))),product_Pair(A,product_prod(product_prod(B,C),D)),A2),aa(D,product_prod(product_prod(B,C),D),aa(product_prod(B,C),fun(D,product_prod(product_prod(B,C),D)),product_Pair(product_prod(B,C),D),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Aa2),B2)),Ba)),Bs,aa(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D)),aa(A,fun(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D))),product_Pair(A,product_prod(product_prod(B,C),D)),Ab),aa(D,product_prod(product_prod(B,C),D),aa(product_prod(B,C),fun(D,product_prod(product_prod(B,C),D)),product_Pair(product_prod(B,C),D),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ac),Bb)),Bc)))
             => ( pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),aa(list(E),fun(A,fun(B,fun(C,fun(D,bool)))),aa(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool))))),aa(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool)))))),aa(B,fun(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool))))))),aa(A,fun(B,fun(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool)))))))),P,A2),Aa2),B2),Ba),Bs),Ab),Ac),Bb),Bc))
               => ( pp(aa(product_prod(A,product_prod(product_prod(B,C),D)),bool,aa(E,fun(product_prod(A,product_prod(product_prod(B,C),D)),bool),aa(product_prod(A,product_prod(product_prod(B,C),D)),fun(E,fun(product_prod(A,product_prod(product_prod(B,C),D)),bool)),R2,aa(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D)),aa(A,fun(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D))),product_Pair(A,product_prod(product_prod(B,C),D)),Ab),aa(D,product_prod(product_prod(B,C),D),aa(product_prod(B,C),fun(D,product_prod(product_prod(B,C),D)),product_Pair(product_prod(B,C),D),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ac),Bb)),Bc))),Bd),aa(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D)),aa(A,fun(product_prod(product_prod(B,C),D),product_prod(A,product_prod(product_prod(B,C),D))),product_Pair(A,product_prod(product_prod(B,C),D)),Ad),aa(D,product_prod(product_prod(B,C),D),aa(product_prod(B,C),fun(D,product_prod(product_prod(B,C),D)),product_Pair(product_prod(B,C),D),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),Ae),Be)),Bf))))
                 => pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),aa(list(E),fun(A,fun(B,fun(C,fun(D,bool)))),aa(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool))))),aa(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool)))))),aa(B,fun(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool))))))),aa(A,fun(B,fun(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool)))))))),P,A2),Aa2),B2),Ba),append(E,Bs,aa(list(E),list(E),aa(E,fun(list(E),list(E)),cons(E),Bd),nil(E)))),Ad),Ae),Be),Bf)) ) ) )
         => pp(aa(D,bool,aa(C,fun(D,bool),aa(B,fun(C,fun(D,bool)),aa(A,fun(B,fun(C,fun(D,bool))),aa(list(E),fun(A,fun(B,fun(C,fun(D,bool)))),aa(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool))))),aa(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool)))))),aa(B,fun(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool))))))),aa(A,fun(B,fun(C,fun(D,fun(list(E),fun(A,fun(B,fun(C,fun(D,bool)))))))),P,Ax),Ay),Az),Aw),Bs2),Cx),Cy),Cz),Cw)) ) ) ) )).

% rtrancl3p_induct4'
tff(fact_288_fst__apfst,axiom,(
    ! [A: $tType,B: $tType,C: $tType,F3: fun(C,A),X3: product_prod(C,B)] : aa(product_prod(A,B),A,product_fst(A,B),aa(product_prod(C,B),product_prod(A,B),product_apfst(C,A,B,F3),X3)) = aa(C,A,F3,aa(product_prod(C,B),C,product_fst(C,B),X3)) )).

% fst_apfst
tff(fact_289_interrupt__action_Osize__neq,axiom,(
    ! [T: $tType,X3: interrupt_action(T)] : size_size(interrupt_action(T),X3) != zero_zero(nat) )).

% interrupt_action.size_neq
tff(fact_290_apfst__eq__conv,axiom,(
    ! [A: $tType,B: $tType,C: $tType,F3: fun(C,A),X3: product_prod(C,B),G3: fun(C,A)] :
      ( aa(product_prod(C,B),product_prod(A,B),product_apfst(C,A,B,F3),X3) = aa(product_prod(C,B),product_prod(A,B),product_apfst(C,A,B,G3),X3)
    <=> aa(C,A,F3,aa(product_prod(C,B),C,product_fst(C,B),X3)) = aa(C,A,G3,aa(product_prod(C,B),C,product_fst(C,B),X3)) ) )).

% apfst_eq_conv
tff(fact_291_rtrancl3p__induct3,axiom,(
    ! [H: $tType,J: $tType,G: $tType,I2: $tType,R4: fun(G,fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool))))))),Ax2: G,Ay2: H,Az2: I2,X2a: list(J),Cx2: G,Cy2: H,Cz2: I2,P3: fun(G,fun(H,fun(I2,fun(list(J),fun(G,fun(H,fun(I2,bool)))))))] :
      ( rtrancl3p(product_prod(G,product_prod(H,I2)),J,aa(fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(product_prod(H,I2),bool)))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(product_prod(G,product_prod(H,I2)),bool))),aa(fun(fun(J,fun(G,fun(product_prod(H,I2),bool))),fun(J,fun(product_prod(G,product_prod(H,I2)),bool))),fun(fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(product_prod(H,I2),bool)))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(product_prod(G,product_prod(H,I2)),bool)))),combb(fun(J,fun(G,fun(product_prod(H,I2),bool))),fun(J,fun(product_prod(G,product_prod(H,I2)),bool)),product_prod(G,product_prod(H,I2))),aa(fun(fun(G,fun(product_prod(H,I2),bool)),fun(product_prod(G,product_prod(H,I2)),bool)),fun(fun(J,fun(G,fun(product_prod(H,I2),bool))),fun(J,fun(product_prod(G,product_prod(H,I2)),bool))),combb(fun(G,fun(product_prod(H,I2),bool)),fun(product_prod(G,product_prod(H,I2)),bool),J),product_case_prod(G,product_prod(H,I2),bool))),aa(fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(H,fun(I2,bool))))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(product_prod(H,I2),bool)))),aa(fun(fun(J,fun(G,fun(H,fun(I2,bool)))),fun(J,fun(G,fun(product_prod(H,I2),bool)))),fun(fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(H,fun(I2,bool))))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(product_prod(H,I2),bool))))),combb(fun(J,fun(G,fun(H,fun(I2,bool)))),fun(J,fun(G,fun(product_prod(H,I2),bool))),product_prod(G,product_prod(H,I2))),aa(fun(fun(G,fun(H,fun(I2,bool))),fun(G,fun(product_prod(H,I2),bool))),fun(fun(J,fun(G,fun(H,fun(I2,bool)))),fun(J,fun(G,fun(product_prod(H,I2),bool)))),combb(fun(G,fun(H,fun(I2,bool))),fun(G,fun(product_prod(H,I2),bool)),J),aa(fun(fun(H,fun(I2,bool)),fun(product_prod(H,I2),bool)),fun(fun(G,fun(H,fun(I2,bool))),fun(G,fun(product_prod(H,I2),bool))),combb(fun(H,fun(I2,bool)),fun(product_prod(H,I2),bool),G),product_case_prod(H,I2,bool)))),aa(fun(G,fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool)))))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(H,fun(I2,bool))))),product_case_prod(G,product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool))))),aa(fun(G,fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool))))))),fun(G,fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool)))))),aa(fun(fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool)))))),fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool)))))),fun(fun(G,fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool))))))),fun(G,fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool))))))),combb(fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool)))))),fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool))))),G),product_case_prod(H,I2,fun(J,fun(G,fun(H,fun(I2,bool)))))),R4)))),aa(product_prod(H,I2),product_prod(G,product_prod(H,I2)),aa(G,fun(product_prod(H,I2),product_prod(G,product_prod(H,I2))),product_Pair(G,product_prod(H,I2)),Ax2),aa(I2,product_prod(H,I2),aa(H,fun(I2,product_prod(H,I2)),product_Pair(H,I2),Ay2),Az2)),X2a,aa(product_prod(H,I2),product_prod(G,product_prod(H,I2)),aa(G,fun(product_prod(H,I2),product_prod(G,product_prod(H,I2))),product_Pair(G,product_prod(H,I2)),Cx2),aa(I2,product_prod(H,I2),aa(H,fun(I2,product_prod(H,I2)),product_Pair(H,I2),Cy2),Cz2)))
     => ( ! [A2: G,Aa2: H,B2: I2] : pp(aa(I2,bool,aa(H,fun(I2,bool),aa(G,fun(H,fun(I2,bool)),aa(list(J),fun(G,fun(H,fun(I2,bool))),aa(I2,fun(list(J),fun(G,fun(H,fun(I2,bool)))),aa(H,fun(I2,fun(list(J),fun(G,fun(H,fun(I2,bool))))),aa(G,fun(H,fun(I2,fun(list(J),fun(G,fun(H,fun(I2,bool)))))),P3,A2),Aa2),B2),nil(J)),A2),Aa2),B2))
       => ( ! [A2: G,Aa2: H,B2: I2,Bs: list(J),Ab: G,Ac: H,Ba: I2,Bb: J,Ad: G,Ae: H,Bc: I2] :
              ( rtrancl3p(product_prod(G,product_prod(H,I2)),J,aa(fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(product_prod(H,I2),bool)))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(product_prod(G,product_prod(H,I2)),bool))),aa(fun(fun(J,fun(G,fun(product_prod(H,I2),bool))),fun(J,fun(product_prod(G,product_prod(H,I2)),bool))),fun(fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(product_prod(H,I2),bool)))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(product_prod(G,product_prod(H,I2)),bool)))),combb(fun(J,fun(G,fun(product_prod(H,I2),bool))),fun(J,fun(product_prod(G,product_prod(H,I2)),bool)),product_prod(G,product_prod(H,I2))),aa(fun(fun(G,fun(product_prod(H,I2),bool)),fun(product_prod(G,product_prod(H,I2)),bool)),fun(fun(J,fun(G,fun(product_prod(H,I2),bool))),fun(J,fun(product_prod(G,product_prod(H,I2)),bool))),combb(fun(G,fun(product_prod(H,I2),bool)),fun(product_prod(G,product_prod(H,I2)),bool),J),product_case_prod(G,product_prod(H,I2),bool))),aa(fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(H,fun(I2,bool))))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(product_prod(H,I2),bool)))),aa(fun(fun(J,fun(G,fun(H,fun(I2,bool)))),fun(J,fun(G,fun(product_prod(H,I2),bool)))),fun(fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(H,fun(I2,bool))))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(product_prod(H,I2),bool))))),combb(fun(J,fun(G,fun(H,fun(I2,bool)))),fun(J,fun(G,fun(product_prod(H,I2),bool))),product_prod(G,product_prod(H,I2))),aa(fun(fun(G,fun(H,fun(I2,bool))),fun(G,fun(product_prod(H,I2),bool))),fun(fun(J,fun(G,fun(H,fun(I2,bool)))),fun(J,fun(G,fun(product_prod(H,I2),bool)))),combb(fun(G,fun(H,fun(I2,bool))),fun(G,fun(product_prod(H,I2),bool)),J),aa(fun(fun(H,fun(I2,bool)),fun(product_prod(H,I2),bool)),fun(fun(G,fun(H,fun(I2,bool))),fun(G,fun(product_prod(H,I2),bool))),combb(fun(H,fun(I2,bool)),fun(product_prod(H,I2),bool),G),product_case_prod(H,I2,bool)))),aa(fun(G,fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool)))))),fun(product_prod(G,product_prod(H,I2)),fun(J,fun(G,fun(H,fun(I2,bool))))),product_case_prod(G,product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool))))),aa(fun(G,fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool))))))),fun(G,fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool)))))),aa(fun(fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool)))))),fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool)))))),fun(fun(G,fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool))))))),fun(G,fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool))))))),combb(fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool)))))),fun(product_prod(H,I2),fun(J,fun(G,fun(H,fun(I2,bool))))),G),product_case_prod(H,I2,fun(J,fun(G,fun(H,fun(I2,bool)))))),R4)))),aa(product_prod(H,I2),product_prod(G,product_prod(H,I2)),aa(G,fun(product_prod(H,I2),product_prod(G,product_prod(H,I2))),product_Pair(G,product_prod(H,I2)),A2),aa(I2,product_prod(H,I2),aa(H,fun(I2,product_prod(H,I2)),product_Pair(H,I2),Aa2),B2)),Bs,aa(product_prod(H,I2),product_prod(G,product_prod(H,I2)),aa(G,fun(product_prod(H,I2),product_prod(G,product_prod(H,I2))),product_Pair(G,product_prod(H,I2)),Ab),aa(I2,product_prod(H,I2),aa(H,fun(I2,product_prod(H,I2)),product_Pair(H,I2),Ac),Ba)))
             => ( pp(aa(I2,bool,aa(H,fun(I2,bool),aa(G,fun(H,fun(I2,bool)),aa(list(J),fun(G,fun(H,fun(I2,bool))),aa(I2,fun(list(J),fun(G,fun(H,fun(I2,bool)))),aa(H,fun(I2,fun(list(J),fun(G,fun(H,fun(I2,bool))))),aa(G,fun(H,fun(I2,fun(list(J),fun(G,fun(H,fun(I2,bool)))))),P3,A2),Aa2),B2),Bs),Ab),Ac),Ba))
               => ( pp(aa(I2,bool,aa(H,fun(I2,bool),aa(G,fun(H,fun(I2,bool)),aa(J,fun(G,fun(H,fun(I2,bool))),aa(I2,fun(J,fun(G,fun(H,fun(I2,bool)))),aa(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool))))),aa(G,fun(H,fun(I2,fun(J,fun(G,fun(H,fun(I2,bool)))))),R4,Ab),Ac),Ba),Bb),Ad),Ae),Bc))
                 => pp(aa(I2,bool,aa(H,fun(I2,bool),aa(G,fun(H,fun(I2,bool)),aa(list(J),fun(G,fun(H,fun(I2,bool))),aa(I2,fun(list(J),fun(G,fun(H,fun(I2,bool)))),aa(H,fun(I2,fun(list(J),fun(G,fun(H,fun(I2,bool))))),aa(G,fun(H,fun(I2,fun(list(J),fun(G,fun(H,fun(I2,bool)))))),P3,A2),Aa2),B2),append(J,Bs,aa(list(J),list(J),aa(J,fun(list(J),list(J)),cons(J),Bb),nil(J)))),Ad),Ae),Bc)) ) ) )
         => pp(aa(I2,bool,aa(H,fun(I2,bool),aa(G,fun(H,fun(I2,bool)),aa(list(J),fun(G,fun(H,fun(I2,bool))),aa(I2,fun(list(J),fun(G,fun(H,fun(I2,bool)))),aa(H,fun(I2,fun(list(J),fun(G,fun(H,fun(I2,bool))))),aa(G,fun(H,fun(I2,fun(list(J),fun(G,fun(H,fun(I2,bool)))))),P3,Ax2),Ay2),Az2),X2a),Cx2),Cy2),Cz2)) ) ) ) )).

% rtrancl3p_induct3
tff(fact_292_snd__comp__apfst,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,C)] : aa(fun(product_prod(A,B),product_prod(C,B)),fun(product_prod(A,B),B),aa(fun(product_prod(C,B),B),fun(fun(product_prod(A,B),product_prod(C,B)),fun(product_prod(A,B),B)),comp(product_prod(C,B),B,product_prod(A,B)),product_snd(C,B)),product_apfst(A,C,B,F3)) = product_snd(A,B) )).

% snd_comp_apfst
tff(fact_293_top__conj_I2_J,axiom,(
    ! [A: $tType,P: bool,X3: A] :
      ( ( pp(P)
        & pp(aa(A,bool,top_top(fun(A,bool)),X3)) )
    <=> pp(P) ) )).

% top_conj(2)
tff(fact_294_fst__comp__apfst,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,C)] : aa(fun(product_prod(A,B),product_prod(C,B)),fun(product_prod(A,B),C),aa(fun(product_prod(C,B),C),fun(fun(product_prod(A,B),product_prod(C,B)),fun(product_prod(A,B),C)),comp(product_prod(C,B),C,product_prod(A,B)),product_fst(C,B)),product_apfst(A,C,B,F3)) = aa(fun(product_prod(A,B),A),fun(product_prod(A,B),C),aa(fun(A,C),fun(fun(product_prod(A,B),A),fun(product_prod(A,B),C)),comp(A,C,product_prod(A,B)),F3),product_fst(A,B)) )).

% fst_comp_apfst
tff(fact_295_rtrancl3p__induct4,axiom,(
    ! [I2: $tType,G: $tType,K2: $tType,H: $tType,J: $tType,R4: fun(G,fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))))),Ax2: G,Ay2: H,Az2: I2,Aw2: J,X2a: list(K2),Cx2: G,Cy2: H,Cz2: I2,Cw2: J,P3: fun(G,fun(H,fun(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))))))))] :
      ( rtrancl3p(product_prod(G,product_prod(H,product_prod(I2,J))),K2,aa(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool))),aa(fun(fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool))),fun(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool)))),combb(fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool)),product_prod(G,product_prod(H,product_prod(I2,J)))),aa(fun(fun(G,fun(product_prod(H,product_prod(I2,J)),bool)),fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool)),fun(fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool))),combb(fun(G,fun(product_prod(H,product_prod(I2,J)),bool)),fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool),K2),product_case_prod(G,product_prod(H,product_prod(I2,J)),bool))),aa(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),aa(fun(fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),fun(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))))),combb(fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),product_prod(G,product_prod(H,product_prod(I2,J)))),aa(fun(fun(G,fun(H,fun(product_prod(I2,J),bool))),fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),fun(fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),combb(fun(G,fun(H,fun(product_prod(I2,J),bool))),fun(G,fun(product_prod(H,product_prod(I2,J)),bool)),K2),aa(fun(fun(H,fun(product_prod(I2,J),bool)),fun(product_prod(H,product_prod(I2,J)),bool)),fun(fun(G,fun(H,fun(product_prod(I2,J),bool))),fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),combb(fun(H,fun(product_prod(I2,J),bool)),fun(product_prod(H,product_prod(I2,J)),bool),G),product_case_prod(H,product_prod(I2,J),bool)))),aa(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),aa(fun(fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),fun(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))))),combb(fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))),product_prod(G,product_prod(H,product_prod(I2,J)))),aa(fun(fun(G,fun(H,fun(I2,fun(J,bool)))),fun(G,fun(H,fun(product_prod(I2,J),bool)))),fun(fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),combb(fun(G,fun(H,fun(I2,fun(J,bool)))),fun(G,fun(H,fun(product_prod(I2,J),bool))),K2),aa(fun(fun(H,fun(I2,fun(J,bool))),fun(H,fun(product_prod(I2,J),bool))),fun(fun(G,fun(H,fun(I2,fun(J,bool)))),fun(G,fun(H,fun(product_prod(I2,J),bool)))),combb(fun(H,fun(I2,fun(J,bool))),fun(H,fun(product_prod(I2,J),bool)),G),aa(fun(fun(I2,fun(J,bool)),fun(product_prod(I2,J),bool)),fun(fun(H,fun(I2,fun(J,bool))),fun(H,fun(product_prod(I2,J),bool))),combb(fun(I2,fun(J,bool)),fun(product_prod(I2,J),bool),H),product_case_prod(I2,J,bool))))),aa(fun(G,fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),product_case_prod(G,product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),aa(fun(G,fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(G,fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),aa(fun(fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(fun(G,fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(G,fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),combb(fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),G),product_case_prod(H,product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),aa(fun(G,fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))))),fun(G,fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),aa(fun(fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(fun(G,fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))))),fun(G,fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))))),combb(fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),G),aa(fun(fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),combb(fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),H),product_case_prod(I2,J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),R4)))))),aa(product_prod(H,product_prod(I2,J)),product_prod(G,product_prod(H,product_prod(I2,J))),aa(G,fun(product_prod(H,product_prod(I2,J)),product_prod(G,product_prod(H,product_prod(I2,J)))),product_Pair(G,product_prod(H,product_prod(I2,J))),Ax2),aa(product_prod(I2,J),product_prod(H,product_prod(I2,J)),aa(H,fun(product_prod(I2,J),product_prod(H,product_prod(I2,J))),product_Pair(H,product_prod(I2,J)),Ay2),aa(J,product_prod(I2,J),aa(I2,fun(J,product_prod(I2,J)),product_Pair(I2,J),Az2),Aw2))),X2a,aa(product_prod(H,product_prod(I2,J)),product_prod(G,product_prod(H,product_prod(I2,J))),aa(G,fun(product_prod(H,product_prod(I2,J)),product_prod(G,product_prod(H,product_prod(I2,J)))),product_Pair(G,product_prod(H,product_prod(I2,J))),Cx2),aa(product_prod(I2,J),product_prod(H,product_prod(I2,J)),aa(H,fun(product_prod(I2,J),product_prod(H,product_prod(I2,J))),product_Pair(H,product_prod(I2,J)),Cy2),aa(J,product_prod(I2,J),aa(I2,fun(J,product_prod(I2,J)),product_Pair(I2,J),Cz2),Cw2))))
     => ( ! [A2: G,Aa2: H,Ab: I2,B2: J] : pp(aa(J,bool,aa(I2,fun(J,bool),aa(H,fun(I2,fun(J,bool)),aa(G,fun(H,fun(I2,fun(J,bool))),aa(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))),aa(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool))))),aa(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))))),aa(H,fun(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool))))))),aa(G,fun(H,fun(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))))))),P3,A2),Aa2),Ab),B2),nil(K2)),A2),Aa2),Ab),B2))
       => ( ! [A2: G,Aa2: H,Ab: I2,B2: J,Bs: list(K2),Ac: G,Ad: H,Ae: I2,Ba: J,Bb: K2,Af: G,Ag: H,Ah: I2,Bc: J] :
              ( rtrancl3p(product_prod(G,product_prod(H,product_prod(I2,J))),K2,aa(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool))),aa(fun(fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool))),fun(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool)))),combb(fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool)),product_prod(G,product_prod(H,product_prod(I2,J)))),aa(fun(fun(G,fun(product_prod(H,product_prod(I2,J)),bool)),fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool)),fun(fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),fun(K2,fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool))),combb(fun(G,fun(product_prod(H,product_prod(I2,J)),bool)),fun(product_prod(G,product_prod(H,product_prod(I2,J))),bool),K2),product_case_prod(G,product_prod(H,product_prod(I2,J)),bool))),aa(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),aa(fun(fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),fun(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))))),combb(fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),product_prod(G,product_prod(H,product_prod(I2,J)))),aa(fun(fun(G,fun(H,fun(product_prod(I2,J),bool))),fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),fun(fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))),fun(K2,fun(G,fun(product_prod(H,product_prod(I2,J)),bool)))),combb(fun(G,fun(H,fun(product_prod(I2,J),bool))),fun(G,fun(product_prod(H,product_prod(I2,J)),bool)),K2),aa(fun(fun(H,fun(product_prod(I2,J),bool)),fun(product_prod(H,product_prod(I2,J)),bool)),fun(fun(G,fun(H,fun(product_prod(I2,J),bool))),fun(G,fun(product_prod(H,product_prod(I2,J)),bool))),combb(fun(H,fun(product_prod(I2,J),bool)),fun(product_prod(H,product_prod(I2,J)),bool),G),product_case_prod(H,product_prod(I2,J),bool)))),aa(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),aa(fun(fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),fun(fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))))),combb(fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool)))),product_prod(G,product_prod(H,product_prod(I2,J)))),aa(fun(fun(G,fun(H,fun(I2,fun(J,bool)))),fun(G,fun(H,fun(product_prod(I2,J),bool)))),fun(fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))),fun(K2,fun(G,fun(H,fun(product_prod(I2,J),bool))))),combb(fun(G,fun(H,fun(I2,fun(J,bool)))),fun(G,fun(H,fun(product_prod(I2,J),bool))),K2),aa(fun(fun(H,fun(I2,fun(J,bool))),fun(H,fun(product_prod(I2,J),bool))),fun(fun(G,fun(H,fun(I2,fun(J,bool)))),fun(G,fun(H,fun(product_prod(I2,J),bool)))),combb(fun(H,fun(I2,fun(J,bool))),fun(H,fun(product_prod(I2,J),bool)),G),aa(fun(fun(I2,fun(J,bool)),fun(product_prod(I2,J),bool)),fun(fun(H,fun(I2,fun(J,bool))),fun(H,fun(product_prod(I2,J),bool))),combb(fun(I2,fun(J,bool)),fun(product_prod(I2,J),bool),H),product_case_prod(I2,J,bool))))),aa(fun(G,fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(G,product_prod(H,product_prod(I2,J))),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),product_case_prod(G,product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),aa(fun(G,fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(G,fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),aa(fun(fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(fun(G,fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(G,fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),combb(fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(H,product_prod(I2,J)),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),G),product_case_prod(H,product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),aa(fun(G,fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))))),fun(G,fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),aa(fun(fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(fun(G,fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))))),fun(G,fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))))),combb(fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),G),aa(fun(fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),fun(H,fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),combb(fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),fun(product_prod(I2,J),fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),H),product_case_prod(I2,J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),R4)))))),aa(product_prod(H,product_prod(I2,J)),product_prod(G,product_prod(H,product_prod(I2,J))),aa(G,fun(product_prod(H,product_prod(I2,J)),product_prod(G,product_prod(H,product_prod(I2,J)))),product_Pair(G,product_prod(H,product_prod(I2,J))),A2),aa(product_prod(I2,J),product_prod(H,product_prod(I2,J)),aa(H,fun(product_prod(I2,J),product_prod(H,product_prod(I2,J))),product_Pair(H,product_prod(I2,J)),Aa2),aa(J,product_prod(I2,J),aa(I2,fun(J,product_prod(I2,J)),product_Pair(I2,J),Ab),B2))),Bs,aa(product_prod(H,product_prod(I2,J)),product_prod(G,product_prod(H,product_prod(I2,J))),aa(G,fun(product_prod(H,product_prod(I2,J)),product_prod(G,product_prod(H,product_prod(I2,J)))),product_Pair(G,product_prod(H,product_prod(I2,J))),Ac),aa(product_prod(I2,J),product_prod(H,product_prod(I2,J)),aa(H,fun(product_prod(I2,J),product_prod(H,product_prod(I2,J))),product_Pair(H,product_prod(I2,J)),Ad),aa(J,product_prod(I2,J),aa(I2,fun(J,product_prod(I2,J)),product_Pair(I2,J),Ae),Ba))))
             => ( pp(aa(J,bool,aa(I2,fun(J,bool),aa(H,fun(I2,fun(J,bool)),aa(G,fun(H,fun(I2,fun(J,bool))),aa(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))),aa(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool))))),aa(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))))),aa(H,fun(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool))))))),aa(G,fun(H,fun(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))))))),P3,A2),Aa2),Ab),B2),Bs),Ac),Ad),Ae),Ba))
               => ( pp(aa(J,bool,aa(I2,fun(J,bool),aa(H,fun(I2,fun(J,bool)),aa(G,fun(H,fun(I2,fun(J,bool))),aa(K2,fun(G,fun(H,fun(I2,fun(J,bool)))),aa(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))),aa(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))),aa(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool))))))),aa(G,fun(H,fun(I2,fun(J,fun(K2,fun(G,fun(H,fun(I2,fun(J,bool)))))))),R4,Ac),Ad),Ae),Ba),Bb),Af),Ag),Ah),Bc))
                 => pp(aa(J,bool,aa(I2,fun(J,bool),aa(H,fun(I2,fun(J,bool)),aa(G,fun(H,fun(I2,fun(J,bool))),aa(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))),aa(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool))))),aa(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))))),aa(H,fun(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool))))))),aa(G,fun(H,fun(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))))))),P3,A2),Aa2),Ab),B2),append(K2,Bs,aa(list(K2),list(K2),aa(K2,fun(list(K2),list(K2)),cons(K2),Bb),nil(K2)))),Af),Ag),Ah),Bc)) ) ) )
         => pp(aa(J,bool,aa(I2,fun(J,bool),aa(H,fun(I2,fun(J,bool)),aa(G,fun(H,fun(I2,fun(J,bool))),aa(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))),aa(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool))))),aa(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))))),aa(H,fun(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool))))))),aa(G,fun(H,fun(I2,fun(J,fun(list(K2),fun(G,fun(H,fun(I2,fun(J,bool)))))))),P3,Ax2),Ay2),Az2),Aw2),X2a),Cx2),Cy2),Cz2),Cw2)) ) ) ) )).

% rtrancl3p_induct4
tff(fact_296_apfst__compose,axiom,(
    ! [C: $tType,A: $tType,B: $tType,D: $tType,F3: fun(C,A),G3: fun(D,C),X3: product_prod(D,B)] : aa(product_prod(C,B),product_prod(A,B),product_apfst(C,A,B,F3),aa(product_prod(D,B),product_prod(C,B),product_apfst(D,C,B,G3),X3)) = aa(product_prod(D,B),product_prod(A,B),product_apfst(D,A,B,aa(fun(D,C),fun(D,A),aa(fun(C,A),fun(fun(D,C),fun(D,A)),comp(C,A,D),F3),G3)),X3) )).

% apfst_compose
tff(fact_297_fun__mono,axiom,(
    ! [A: $tType,B: $tType,D: $tType,C: $tType,C6: fun(A,fun(B,bool)),A5: fun(A,fun(B,bool)),B6: fun(C,fun(D,bool)),D4: fun(C,fun(D,bool))] :
      ( pp(aa(fun(A,fun(B,bool)),bool,aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),bool),ord_less_eq(fun(A,fun(B,bool))),C6),A5))
     => ( pp(aa(fun(C,fun(D,bool)),bool,aa(fun(C,fun(D,bool)),fun(fun(C,fun(D,bool)),bool),ord_less_eq(fun(C,fun(D,bool))),B6),D4))
       => pp(aa(fun(fun(A,C),fun(fun(B,D),bool)),bool,aa(fun(fun(A,C),fun(fun(B,D),bool)),fun(fun(fun(A,C),fun(fun(B,D),bool)),bool),ord_less_eq(fun(fun(A,C),fun(fun(B,D),bool))),bNF_rel_fun(A,B,C,D,A5,B6)),bNF_rel_fun(A,B,C,D,C6,D4))) ) ) )).

% fun_mono
tff(fact_298_apsnd__apfst__commute,axiom,(
    ! [A: $tType,B: $tType,C: $tType,D: $tType,F3: fun(C,B),G3: fun(D,A),P2: product_prod(D,C)] : aa(product_prod(A,C),product_prod(A,B),product_apsnd(C,B,A,F3),aa(product_prod(D,C),product_prod(A,C),product_apfst(D,A,C,G3),P2)) = aa(product_prod(D,B),product_prod(A,B),product_apfst(D,A,B,G3),aa(product_prod(D,C),product_prod(D,B),product_apsnd(C,B,D,F3),P2)) )).

% apsnd_apfst_commute
tff(fact_299_wait__set__action_Oexhaust,axiom,(
    ! [W: $tType,T: $tType,Y: wait_set_action(T,W)] :
      ( ! [X14: W] : Y != wait_set_Suspend(W,T,X14)
     => ( ! [X23: W] : Y != wait_set_Notify(W,T,X23)
       => ( ! [X33: W] : Y != wait_set_NotifyAll(W,T,X33)
         => ( ! [X43: T] : Y != wait_set_WakeUp(T,W,X43)
           => ( Y != wait_set_Notified(T,W)
             => Y = wait_set_WokenUp(T,W) ) ) ) ) ) )).

% wait_set_action.exhaust
tff(fact_300_Quotient__rep__abs__fold__unmap,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(A,bool)),Abs: fun(A,B),Rep: fun(B,A),T2: fun(A,fun(B,bool)),X7: B,X3: A,Rep2: fun(B,A)] :
      ( quotient(A,B,R,Abs,Rep,T2)
     => ( X7 = aa(A,B,Abs,X3)
       => ( pp(aa(A,bool,aa(A,fun(A,bool),R,X3),X3))
         => ( aa(B,A,Rep,X7) = aa(B,A,Rep2,X7)
           => pp(aa(A,bool,aa(A,fun(A,bool),R,aa(B,A,Rep2,X7)),X3)) ) ) ) ) )).

% Quotient_rep_abs_fold_unmap
tff(fact_301_ball__imageD,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),A5: set(B),P: fun(A,bool)] :
      ( ! [X4: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)))
         => pp(aa(A,bool,P,X4)) )
     => ! [X5: B] :
          ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X5),A5))
         => pp(aa(A,bool,P,aa(B,A,F3,X5))) ) ) )).

% ball_imageD
tff(fact_302_map__fun__apply,axiom,(
    ! [A: $tType,D: $tType,C: $tType,B: $tType,F3: fun(B,C),G3: fun(D,A),H2: fun(C,D),X3: B] : aa(B,A,aa(fun(C,D),fun(B,A),map_fun(B,C,D,A,F3,G3),H2),X3) = aa(D,A,G3,aa(C,D,H2,aa(B,C,F3,X3))) )).

% map_fun_apply
tff(fact_303_image__cong,axiom,(
    ! [B: $tType,A: $tType,M2: set(A),N: set(A),F3: fun(A,B),G3: fun(A,B)] :
      ( M2 = N
     => ( ! [X4: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),N))
           => aa(A,B,F3,X4) = aa(A,B,G3,X4) )
       => aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),M2) = aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),G3),N) ) ) )).

% image_cong
tff(fact_304_Quotient__rel__abs2,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(A,bool)),Abs: fun(A,B),Rep: fun(B,A),T2: fun(A,fun(B,bool)),X3: B,Y: A] :
      ( quotient(A,B,R,Abs,Rep,T2)
     => ( pp(aa(A,bool,aa(A,fun(A,bool),R,aa(B,A,Rep,X3)),Y))
       => X3 = aa(A,B,Abs,Y) ) ) )).

% Quotient_rel_abs2
tff(fact_305_bex__imageD,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),A5: set(B),P: fun(A,bool)] :
      ( ? [X5: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X5),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)))
          & pp(aa(A,bool,P,X5)) )
     => ? [X4: B] :
          ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X4),A5))
          & pp(aa(A,bool,P,aa(B,A,F3,X4))) ) ) )).

% bex_imageD
tff(fact_306_rtrancl__induct,axiom,(
    ! [A: $tType,A3: A,B3: A,R2: set(product_prod(A,A)),P: fun(A,bool)] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),B3)),transitive_rtrancl(A,R2)))
     => ( pp(aa(A,bool,P,A3))
       => ( ! [Y3: A,Z2: A] :
              ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),Y3)),transitive_rtrancl(A,R2)))
             => ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),Y3),Z2)),R2))
               => ( pp(aa(A,bool,P,Y3))
                 => pp(aa(A,bool,P,Z2)) ) ) )
         => pp(aa(A,bool,P,B3)) ) ) ) )).

% rtrancl_induct
tff(fact_307_rel__funD2,axiom,(
    ! [B: $tType,C: $tType,A: $tType,A5: fun(A,fun(A,bool)),B6: fun(B,fun(C,bool)),F3: fun(A,B),G3: fun(A,C),X3: A] :
      ( pp(aa(fun(A,C),bool,aa(fun(A,B),fun(fun(A,C),bool),bNF_rel_fun(A,A,B,C,A5,B6),F3),G3))
     => ( pp(aa(A,bool,aa(A,fun(A,bool),A5,X3),X3))
       => pp(aa(C,bool,aa(B,fun(C,bool),B6,aa(A,B,F3,X3)),aa(A,C,G3,X3))) ) ) )).

% rel_funD2
tff(fact_308_imageI,axiom,(
    ! [B: $tType,A: $tType,X3: A,A5: set(A),F3: fun(A,B)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X3),A5))
     => pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),aa(A,B,F3,X3)),aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),A5))) ) )).

% imageI
tff(fact_309_interrupt__action_Osize_I5_J,axiom,(
    ! [T: $tType,X2: T] : size_size(interrupt_action(T),interrupt_Interrupt(T,X2)) = suc(zero_zero(nat)) )).

% interrupt_action.size(5)
tff(fact_310_image__Un,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),A5: set(B),B6: set(B)] : aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),aa(set(B),set(B),aa(set(B),fun(set(B),set(B)),sup_sup(set(B)),A5),B6)) = aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),B6)) )).

% image_Un
tff(fact_311_interrupt__action_Osize_I6_J,axiom,(
    ! [T: $tType,X32: T] : size_size(interrupt_action(T),interr7976201102587534891errupt(T,X32)) = suc(zero_zero(nat)) )).

% interrupt_action.size(6)
tff(fact_312_finfun__update__code__def,axiom,(
    ! [B: $tType,A: $tType] : finfun_update_code(A,B) = finfun_update(A,B) )).

% finfun_update_code_def
tff(fact_313_comp__cong,axiom,(
    ! [C: $tType,B: $tType,D: $tType,A: $tType,E: $tType,F3: fun(B,A),G3: fun(C,B),X3: C,F5: fun(D,A),G4: fun(E,D),X7: E] :
      ( aa(B,A,F3,aa(C,B,G3,X3)) = aa(D,A,F5,aa(E,D,G4,X7))
     => aa(C,A,aa(fun(C,B),fun(C,A),aa(fun(B,A),fun(fun(C,B),fun(C,A)),comp(B,A,C),F3),G3),X3) = aa(E,A,aa(fun(E,D),fun(E,A),aa(fun(D,A),fun(fun(E,D),fun(E,A)),comp(D,A,E),F5),G4),X7) ) )).

% comp_cong
tff(fact_314_extract__Some__iff,axiom,(
    ! [A: $tType,P: fun(A,bool),Xs: list(A),Ys2: list(A),Y: A,Zs2: list(A)] :
      ( extract(A,P,Xs) = aa(product_prod(list(A),product_prod(A,list(A))),option(product_prod(list(A),product_prod(A,list(A)))),some(product_prod(list(A),product_prod(A,list(A)))),aa(product_prod(A,list(A)),product_prod(list(A),product_prod(A,list(A))),aa(list(A),fun(product_prod(A,list(A)),product_prod(list(A),product_prod(A,list(A)))),product_Pair(list(A),product_prod(A,list(A))),Ys2),aa(list(A),product_prod(A,list(A)),aa(A,fun(list(A),product_prod(A,list(A))),product_Pair(A,list(A)),Y),Zs2)))
    <=> ( Xs = append(A,Ys2,aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),Y),Zs2))
        & pp(aa(A,bool,P,Y))
        & ~ ? [X6: A] :
              ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),aa(list(A),set(A),set2(A),Ys2)))
              & pp(aa(A,bool,P,X6)) ) ) ) )).

% extract_Some_iff
tff(fact_315_comp__eq__elim,axiom,(
    ! [C: $tType,B: $tType,D: $tType,A: $tType,A3: fun(C,B),B3: fun(A,C),C3: fun(D,B),D3: fun(A,D)] :
      ( aa(fun(A,C),fun(A,B),aa(fun(C,B),fun(fun(A,C),fun(A,B)),comp(C,B,A),A3),B3) = aa(fun(A,D),fun(A,B),aa(fun(D,B),fun(fun(A,D),fun(A,B)),comp(D,B,A),C3),D3)
     => ! [V2: A] : aa(C,B,A3,aa(A,C,B3,V2)) = aa(D,B,C3,aa(A,D,D3,V2)) ) )).

% comp_eq_elim
tff(fact_316_finite__subset,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),B6))
     => ( pp(aa(set(A),bool,finite_finite(A),B6))
       => pp(aa(set(A),bool,finite_finite(A),A5)) ) ) )).

% finite_subset
tff(fact_317_comp__fun__commute_Ointro,axiom,(
    ! [B: $tType,A: $tType,F3: fun(A,fun(B,B))] :
      ( ! [Y3: A,X4: A] : aa(fun(B,B),fun(B,B),aa(fun(B,B),fun(fun(B,B),fun(B,B)),comp(B,B,B),aa(A,fun(B,B),F3,Y3)),aa(A,fun(B,B),F3,X4)) = aa(fun(B,B),fun(B,B),aa(fun(B,B),fun(fun(B,B),fun(B,B)),comp(B,B,B),aa(A,fun(B,B),F3,X4)),aa(A,fun(B,B),F3,Y3))
     => finite6289374366891150609ommute(A,B,F3) ) )).

% comp_fun_commute.intro
tff(fact_318_singletonD,axiom,(
    ! [A: $tType,B3: A,A3: A] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),B3),aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),A3),bot_bot(set(A)))))
     => B3 = A3 ) )).

% singletonD
tff(fact_319_comp__assoc,axiom,(
    ! [B: $tType,D: $tType,C: $tType,A: $tType,F3: fun(D,B),G3: fun(C,D),H2: fun(A,C)] : aa(fun(A,C),fun(A,B),aa(fun(C,B),fun(fun(A,C),fun(A,B)),comp(C,B,A),aa(fun(C,D),fun(C,B),aa(fun(D,B),fun(fun(C,D),fun(C,B)),comp(D,B,C),F3),G3)),H2) = aa(fun(A,D),fun(A,B),aa(fun(D,B),fun(fun(A,D),fun(A,B)),comp(D,B,A),F3),aa(fun(A,C),fun(A,D),aa(fun(C,D),fun(fun(A,C),fun(A,D)),comp(C,D,A),G3),H2)) )).

% comp_assoc
tff(fact_320_Lazy__Sequence_Oiterate__upto_Ocases,axiom,(
    ! [A: $tType,X3: product_prod(fun(code_natural,A),product_prod(code_natural,code_natural))] :
      ~ ! [F2: fun(code_natural,A),N2: code_natural,M3: code_natural] : X3 != aa(product_prod(code_natural,code_natural),product_prod(fun(code_natural,A),product_prod(code_natural,code_natural)),aa(fun(code_natural,A),fun(product_prod(code_natural,code_natural),product_prod(fun(code_natural,A),product_prod(code_natural,code_natural))),product_Pair(fun(code_natural,A),product_prod(code_natural,code_natural)),F2),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),N2),M3)) )).

% Lazy_Sequence.iterate_upto.cases
tff(fact_321_pair__lessI1,axiom,(
    ! [A3: nat,B3: nat,S: nat,T3: nat] :
      ( pp(ord_less(nat,A3,B3))
     => pp(aa(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool,aa(product_prod(product_prod(nat,nat),product_prod(nat,nat)),fun(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool),member(product_prod(product_prod(nat,nat),product_prod(nat,nat))),aa(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat)),aa(product_prod(nat,nat),fun(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat))),product_Pair(product_prod(nat,nat),product_prod(nat,nat)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),A3),S)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),B3),T3))),fun_pair_less)) ) )).

% pair_lessI1
tff(fact_322_image__eq__imp__comp,axiom,(
    ! [B: $tType,A: $tType,D: $tType,C: $tType,F3: fun(B,A),A5: set(B),G3: fun(C,A),B6: set(C),H2: fun(A,D)] :
      ( aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5) = aa(set(C),set(A),aa(fun(C,A),fun(set(C),set(A)),image2(C,A),G3),B6)
     => aa(set(B),set(D),aa(fun(B,D),fun(set(B),set(D)),image2(B,D),aa(fun(B,A),fun(B,D),aa(fun(A,D),fun(fun(B,A),fun(B,D)),comp(A,D,B),H2),F3)),A5) = aa(set(C),set(D),aa(fun(C,D),fun(set(C),set(D)),image2(C,D),aa(fun(C,A),fun(C,D),aa(fun(A,D),fun(fun(C,A),fun(C,D)),comp(A,D,C),H2),G3)),B6) ) )).

% image_eq_imp_comp
tff(fact_323_subrelI,axiom,(
    ! [B: $tType,A: $tType,R2: set(product_prod(A,B)),S: set(product_prod(A,B))] :
      ( ! [X4: A,Y3: B] :
          ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X4),Y3)),R2))
         => pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X4),Y3)),S)) )
     => pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),R2),S)) ) )).

% subrelI
tff(fact_324_pair__leqI2,axiom,(
    ! [A3: nat,B3: nat,S: nat,T3: nat] :
      ( pp(aa(nat,bool,aa(nat,fun(nat,bool),ord_less_eq(nat),A3),B3))
     => ( pp(aa(nat,bool,aa(nat,fun(nat,bool),ord_less_eq(nat),S),T3))
       => pp(aa(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool,aa(product_prod(product_prod(nat,nat),product_prod(nat,nat)),fun(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool),member(product_prod(product_prod(nat,nat),product_prod(nat,nat))),aa(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat)),aa(product_prod(nat,nat),fun(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat))),product_Pair(product_prod(nat,nat),product_prod(nat,nat)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),A3),S)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),B3),T3))),fun_pair_leq)) ) ) )).

% pair_leqI2
tff(fact_325_image__comp,axiom,(
    ! [B: $tType,A: $tType,C: $tType,F3: fun(B,A),G3: fun(C,B),R2: set(C)] : aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),aa(set(C),set(B),aa(fun(C,B),fun(set(C),set(B)),image2(C,B),G3),R2)) = aa(set(C),set(A),aa(fun(C,A),fun(set(C),set(A)),image2(C,A),aa(fun(C,B),fun(C,A),aa(fun(B,A),fun(fun(C,B),fun(C,A)),comp(B,A,C),F3),G3)),R2) )).

% image_comp
tff(fact_326_pair__leqI1,axiom,(
    ! [A3: nat,B3: nat,S: nat,T3: nat] :
      ( pp(ord_less(nat,A3,B3))
     => pp(aa(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool,aa(product_prod(product_prod(nat,nat),product_prod(nat,nat)),fun(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool),member(product_prod(product_prod(nat,nat),product_prod(nat,nat))),aa(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat)),aa(product_prod(nat,nat),fun(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat))),product_Pair(product_prod(nat,nat),product_prod(nat,nat)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),A3),S)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),B3),T3))),fun_pair_leq)) ) )).

% pair_leqI1
tff(fact_327_Sup_OSUP__image,axiom,(
    ! [B: $tType,A: $tType,C: $tType,Sup: fun(set(A),A),G3: fun(B,A),F3: fun(C,B),A5: set(C)] : aa(set(A),A,Sup,aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),G3),aa(set(C),set(B),aa(fun(C,B),fun(set(C),set(B)),image2(C,B),F3),A5))) = aa(set(A),A,Sup,aa(set(C),set(A),aa(fun(C,A),fun(set(C),set(A)),image2(C,A),aa(fun(C,B),fun(C,A),aa(fun(B,A),fun(fun(C,B),fun(C,A)),comp(B,A,C),G3),F3)),A5)) )).

% Sup.SUP_image
tff(fact_328_iterate_Ocases,axiom,(
    ! [A: $tType,B: $tType,X3: product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B))] :
      ~ ! [K3: code_natural,F2: fun(B,fun(A,product_prod(B,A))),X4: B] : X3 != aa(product_prod(fun(B,fun(A,product_prod(B,A))),B),product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),aa(code_natural,fun(product_prod(fun(B,fun(A,product_prod(B,A))),B),product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B))),product_Pair(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),K3),aa(B,product_prod(fun(B,fun(A,product_prod(B,A))),B),aa(fun(B,fun(A,product_prod(B,A))),fun(B,product_prod(fun(B,fun(A,product_prod(B,A))),B)),product_Pair(fun(B,fun(A,product_prod(B,A))),B),F2),X4)) )).

% iterate.cases
tff(fact_329_Inf_OINF__image,axiom,(
    ! [B: $tType,A: $tType,C: $tType,Inf: fun(set(A),A),G3: fun(B,A),F3: fun(C,B),A5: set(C)] : aa(set(A),A,Inf,aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),G3),aa(set(C),set(B),aa(fun(C,B),fun(set(C),set(B)),image2(C,B),F3),A5))) = aa(set(A),A,Inf,aa(set(C),set(A),aa(fun(C,A),fun(set(C),set(A)),image2(C,A),aa(fun(C,B),fun(C,A),aa(fun(B,A),fun(fun(C,B),fun(C,A)),comp(B,A,C),G3),F3)),A5)) )).

% Inf.INF_image
tff(fact_330_fst__fstOp,axiom,(
    ! [C: $tType,B: $tType,A: $tType,Bc2: product_prod(A,B),P: fun(A,fun(C,bool)),Q: fun(C,fun(B,bool))] : aa(product_prod(A,B),A,product_fst(A,B),Bc2) = aa(product_prod(A,B),A,aa(fun(product_prod(A,B),product_prod(A,C)),fun(product_prod(A,B),A),aa(fun(product_prod(A,C),A),fun(fun(product_prod(A,B),product_prod(A,C)),fun(product_prod(A,B),A)),comp(product_prod(A,C),A,product_prod(A,B)),product_fst(A,C)),bNF_fstOp(A,C,B,P,Q)),Bc2) )).

% fst_fstOp
tff(fact_331_pair__lessI2,axiom,(
    ! [A3: nat,B3: nat,S: nat,T3: nat] :
      ( pp(aa(nat,bool,aa(nat,fun(nat,bool),ord_less_eq(nat),A3),B3))
     => ( pp(ord_less(nat,S,T3))
       => pp(aa(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool,aa(product_prod(product_prod(nat,nat),product_prod(nat,nat)),fun(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool),member(product_prod(product_prod(nat,nat),product_prod(nat,nat))),aa(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat)),aa(product_prod(nat,nat),fun(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat))),product_Pair(product_prod(nat,nat),product_prod(nat,nat)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),A3),S)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),B3),T3))),fun_pair_less)) ) ) )).

% pair_lessI2
tff(fact_332_snd__sndOp,axiom,(
    ! [C: $tType,A: $tType,B: $tType,Bc2: product_prod(B,A),P: fun(B,fun(C,bool)),Q: fun(C,fun(A,bool))] : aa(product_prod(B,A),A,product_snd(B,A),Bc2) = aa(product_prod(B,A),A,aa(fun(product_prod(B,A),product_prod(C,A)),fun(product_prod(B,A),A),aa(fun(product_prod(C,A),A),fun(fun(product_prod(B,A),product_prod(C,A)),fun(product_prod(B,A),A)),comp(product_prod(C,A),A,product_prod(B,A)),product_snd(C,A)),bNF_sndOp(B,C,A,P,Q)),Bc2) )).

% snd_sndOp
tff(fact_333_cond__case__prod__eta,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,fun(B,C)),G3: fun(product_prod(A,B),C)] :
      ( ! [X4: A,Y3: B] : aa(B,C,aa(A,fun(B,C),F3,X4),Y3) = aa(product_prod(A,B),C,G3,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X4),Y3))
     => aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),F3) = G3 ) )).

% cond_case_prod_eta
tff(fact_334_case__prodE,axiom,(
    ! [A: $tType,B: $tType,C3: fun(A,fun(B,bool)),P2: product_prod(A,B)] :
      ( pp(aa(product_prod(A,B),bool,aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),C3),P2))
     => ~ ! [X4: A,Y3: B] :
            ( P2 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X4),Y3)
           => ~ pp(aa(B,bool,aa(A,fun(B,bool),C3,X4),Y3)) ) ) )).

% case_prodE
tff(fact_335_pair__less__iff1,axiom,(
    ! [X3: nat,Y: nat,Z3: nat] :
      ( pp(aa(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool,aa(product_prod(product_prod(nat,nat),product_prod(nat,nat)),fun(set(product_prod(product_prod(nat,nat),product_prod(nat,nat))),bool),member(product_prod(product_prod(nat,nat),product_prod(nat,nat))),aa(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat)),aa(product_prod(nat,nat),fun(product_prod(nat,nat),product_prod(product_prod(nat,nat),product_prod(nat,nat))),product_Pair(product_prod(nat,nat),product_prod(nat,nat)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),X3),Y)),aa(nat,product_prod(nat,nat),aa(nat,fun(nat,product_prod(nat,nat)),product_Pair(nat,nat),X3),Z3))),fun_pair_less))
    <=> pp(ord_less(nat,Y,Z3)) ) )).

% pair_less_iff1
tff(fact_336_Collect__split__mono__strong,axiom,(
    ! [B: $tType,A: $tType,X8: set(A),A5: set(product_prod(A,B)),Y5: set(B),P: fun(A,fun(B,bool)),Q: fun(A,fun(B,bool))] :
      ( X8 = aa(set(product_prod(A,B)),set(A),aa(fun(product_prod(A,B),A),fun(set(product_prod(A,B)),set(A)),image2(product_prod(A,B),A),product_fst(A,B)),A5)
     => ( Y5 = aa(set(product_prod(A,B)),set(B),aa(fun(product_prod(A,B),B),fun(set(product_prod(A,B)),set(B)),image2(product_prod(A,B),B),product_snd(A,B)),A5)
       => ( ! [X4: A] :
              ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),X8))
             => ! [Xa4: B] :
                  ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),Xa4),Y5))
                 => ( pp(aa(B,bool,aa(A,fun(B,bool),P,X4),Xa4))
                   => pp(aa(B,bool,aa(A,fun(B,bool),Q,X4),Xa4)) ) ) )
         => ( pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),A5),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),P))))
           => pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),A5),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),Q)))) ) ) ) ) )).

% Collect_split_mono_strong
tff(fact_337_Collect__case__prod__Grp__eqD,axiom,(
    ! [B: $tType,A: $tType,Z3: product_prod(A,B),A5: set(A),F3: fun(A,B)] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),Z3),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),bNF_Grp(A,B,A5,F3)))))
     => aa(product_prod(A,B),B,aa(fun(product_prod(A,B),A),fun(product_prod(A,B),B),aa(fun(A,B),fun(fun(product_prod(A,B),A),fun(product_prod(A,B),B)),comp(A,B,product_prod(A,B)),F3),product_fst(A,B)),Z3) = aa(product_prod(A,B),B,product_snd(A,B),Z3) ) )).

% Collect_case_prod_Grp_eqD
tff(fact_338_fst__comp__map__prod,axiom,(
    ! [D: $tType,C: $tType,B: $tType,A: $tType,F3: fun(A,C),G3: fun(B,D)] : aa(fun(product_prod(A,B),product_prod(C,D)),fun(product_prod(A,B),C),aa(fun(product_prod(C,D),C),fun(fun(product_prod(A,B),product_prod(C,D)),fun(product_prod(A,B),C)),comp(product_prod(C,D),C,product_prod(A,B)),product_fst(C,D)),product_map_prod(A,C,B,D,F3,G3)) = aa(fun(product_prod(A,B),A),fun(product_prod(A,B),C),aa(fun(A,C),fun(fun(product_prod(A,B),A),fun(product_prod(A,B),C)),comp(A,C,product_prod(A,B)),F3),product_fst(A,B)) )).

% fst_comp_map_prod
tff(fact_339_snd__comp__map__prod,axiom,(
    ! [D: $tType,C: $tType,B: $tType,A: $tType,F3: fun(A,D),G3: fun(B,C)] : aa(fun(product_prod(A,B),product_prod(D,C)),fun(product_prod(A,B),C),aa(fun(product_prod(D,C),C),fun(fun(product_prod(A,B),product_prod(D,C)),fun(product_prod(A,B),C)),comp(product_prod(D,C),C,product_prod(A,B)),product_snd(D,C)),product_map_prod(A,D,B,C,F3,G3)) = aa(fun(product_prod(A,B),B),fun(product_prod(A,B),C),aa(fun(B,C),fun(fun(product_prod(A,B),B),fun(product_prod(A,B),C)),comp(B,C,product_prod(A,B)),G3),product_snd(A,B)) )).

% snd_comp_map_prod
tff(fact_340_right__total__eq,axiom,(
    ! [A: $tType] : right_total(A,A,fequal(A)) )).

% right_total_eq
tff(fact_341_fstOp__def,axiom,(
    ! [B: $tType,C: $tType,A: $tType,P: fun(A,fun(B,bool)),Q: fun(B,fun(C,bool)),Ac2: product_prod(A,C)] : aa(product_prod(A,C),product_prod(A,B),bNF_fstOp(A,B,C,P,Q),Ac2) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(product_prod(A,C),A,product_fst(A,C),Ac2)),bNF_pick_middlep(A,B,C,P,Q,aa(product_prod(A,C),A,product_fst(A,C),Ac2),aa(product_prod(A,C),C,product_snd(A,C),Ac2))) )).

% fstOp_def
tff(fact_342_rtrancl__induct2,axiom,(
    ! [A: $tType,B: $tType,Ax: A,Ay: B,Bx: A,By: B,R2: set(product_prod(product_prod(A,B),product_prod(A,B))),P: fun(A,fun(B,bool))] :
      ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By))),transitive_rtrancl(product_prod(A,B),R2)))
     => ( pp(aa(B,bool,aa(A,fun(B,bool),P,Ax),Ay))
       => ( ! [A2: A,B2: B,Aa2: A,Ba: B] :
              ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2))),transitive_rtrancl(product_prod(A,B),R2)))
             => ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba))),R2))
               => ( pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2))
                 => pp(aa(B,bool,aa(A,fun(B,bool),P,Aa2),Ba)) ) ) )
         => pp(aa(B,bool,aa(A,fun(B,bool),P,Bx),By)) ) ) ) )).

% rtrancl_induct2
tff(fact_343_case__prodI,axiom,(
    ! [A: $tType,B: $tType,F3: fun(A,fun(B,bool)),A3: A,B3: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),F3,A3),B3))
     => pp(aa(product_prod(A,B),bool,aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),F3),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3))) ) )).

% case_prodI
tff(fact_344_pair__less__def,axiom,(
    fun_pair_less = lex_prod(nat,nat,less_than,less_than) )).

% pair_less_def
tff(fact_345_le__sup__iff,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,Y: A,Z3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y)),Z3))
        <=> ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),Z3))
            & pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),Y),Z3)) ) ) ) )).

% le_sup_iff
tff(fact_346_convol__def,axiom,(
    ! [B: $tType,C: $tType,A: $tType,F3: fun(A,B),G3: fun(A,C),X5: A] : aa(A,product_prod(B,C),bNF_convol(A,B,C,F3,G3),X5) = aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),aa(A,B,F3,X5)),aa(A,C,G3,X5)) )).

% convol_def
tff(fact_347_sup_Obounded__iff,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B3: A,C3: A,A3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),B3),C3)),A3))
        <=> ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),A3))
            & pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),C3),A3)) ) ) ) )).

% sup.bounded_iff
tff(fact_348_rtrancl__tab_Oequation_I3_J,axiom,(
    ! [G: $tType,R4: pred(product_prod(G,G)),Xa5: list(G),Xb4: G,Xc: G] : transi4439934788793893114_i_i_i(G,R4,Xa5,Xb4,Xc) = aa(pred(product_unit),pred(product_unit),aa(pred(product_unit),fun(pred(product_unit),pred(product_unit)),sup_sup(pred(product_unit)),aa(fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),pred(product_unit),aa(pred(product_prod(list(G),product_prod(G,G))),fun(fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),pred(product_unit)),bind(product_prod(list(G),product_prod(G,G)),product_unit),single(product_prod(list(G),product_prod(G,G)),aa(product_prod(G,G),product_prod(list(G),product_prod(G,G)),aa(list(G),fun(product_prod(G,G),product_prod(list(G),product_prod(G,G))),product_Pair(list(G),product_prod(G,G)),Xa5),aa(G,product_prod(G,G),aa(G,fun(G,product_prod(G,G)),product_Pair(G,G),Xb4),Xc)))),aa(fun(list(G),fun(product_prod(G,G),pred(product_unit))),fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),product_case_prod(list(G),product_prod(G,G),pred(product_unit)),aa(fun(product_prod(G,G),pred(product_unit)),fun(list(G),fun(product_prod(G,G),pred(product_unit))),combk(fun(product_prod(G,G),pred(product_unit)),list(G)),aa(fun(G,fun(G,pred(product_unit))),fun(product_prod(G,G),pred(product_unit)),product_case_prod(G,G,pred(product_unit)),aa(pred(product_unit),fun(G,fun(G,pred(product_unit))),aa(fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))),fun(pred(product_unit),fun(G,fun(G,pred(product_unit)))),combc(G,pred(product_unit),fun(G,pred(product_unit))),aa(fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))),fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))),aa(fun(fun(G,fun(pred(product_unit),pred(product_unit))),fun(pred(product_unit),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))),fun(G,fun(pred(product_unit),fun(G,pred(product_unit))))),combb(fun(G,fun(pred(product_unit),pred(product_unit))),fun(pred(product_unit),fun(G,pred(product_unit))),G),combc(G,pred(product_unit),pred(product_unit))),aa(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))),aa(fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))),combc(G,pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))),aa(fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),aa(fun(fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),fun(fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))),combb(fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))),G),combc(G,pred(product_unit),fun(pred(product_unit),pred(product_unit)))),aa(fun(G,fun(G,bool)),fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),aa(fun(fun(G,bool),fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))))),combb(fun(G,bool),fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),G),aa(fun(bool,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),fun(fun(G,bool),fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),combb(bool,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))),G),if(pred(product_unit)))),fequal(G)))),single(product_unit,product_Unity)))),bot_bot(pred(product_unit)))))))),aa(fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),pred(product_unit),aa(pred(product_prod(list(G),product_prod(G,G))),fun(fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),pred(product_unit)),bind(product_prod(list(G),product_prod(G,G)),product_unit),single(product_prod(list(G),product_prod(G,G)),aa(product_prod(G,G),product_prod(list(G),product_prod(G,G)),aa(list(G),fun(product_prod(G,G),product_prod(list(G),product_prod(G,G))),product_Pair(list(G),product_prod(G,G)),Xa5),aa(G,product_prod(G,G),aa(G,fun(G,product_prod(G,G)),product_Pair(G,G),Xb4),Xc)))),aa(fun(list(G),fun(product_prod(G,G),pred(product_unit))),fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),product_case_prod(list(G),product_prod(G,G),pred(product_unit)),aa(fun(list(G),fun(G,fun(G,pred(product_unit)))),fun(list(G),fun(product_prod(G,G),pred(product_unit))),aa(fun(fun(G,fun(G,pred(product_unit))),fun(product_prod(G,G),pred(product_unit))),fun(fun(list(G),fun(G,fun(G,pred(product_unit)))),fun(list(G),fun(product_prod(G,G),pred(product_unit)))),combb(fun(G,fun(G,pred(product_unit))),fun(product_prod(G,G),pred(product_unit)),list(G)),product_case_prod(G,G,pred(product_unit))),aa(fun(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit))))),fun(list(G),fun(G,fun(G,pred(product_unit)))),aa(fun(list(G),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit))))),fun(list(G),fun(G,fun(G,pred(product_unit))))),combs(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit)))),aa(fun(list(G),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),fun(list(G),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit))))),aa(fun(fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),fun(list(G),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit)))))),combb(fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit)))),list(G)),combs(G,fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),aa(fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(list(G),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),aa(fun(fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(list(G),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))))),combb(fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),list(G)),aa(fun(fun(fun(product_unit,pred(product_unit)),pred(product_unit)),fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),fun(fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),combb(fun(fun(product_unit,pred(product_unit)),pred(product_unit)),fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))),G),combb(fun(product_unit,pred(product_unit)),pred(product_unit),G))),aa(fun(list(G),fun(G,pred(product_unit))),fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),aa(fun(fun(G,pred(product_unit)),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(fun(list(G),fun(G,pred(product_unit))),fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))))),combb(fun(G,pred(product_unit)),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),list(G)),aa(fun(pred(product_unit),fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(fun(G,pred(product_unit)),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),combb(pred(product_unit),fun(fun(product_unit,pred(product_unit)),pred(product_unit)),G),bind(product_unit,product_unit))),aa(fun(list(G),fun(G,bool)),fun(list(G),fun(G,pred(product_unit))),aa(fun(fun(G,bool),fun(G,pred(product_unit))),fun(fun(list(G),fun(G,bool)),fun(list(G),fun(G,pred(product_unit)))),combb(fun(G,bool),fun(G,pred(product_unit)),list(G)),aa(fun(bool,pred(product_unit)),fun(fun(G,bool),fun(G,pred(product_unit))),combb(bool,pred(product_unit),G),if_pred)),aa(fun(list(G),fun(G,bool)),fun(list(G),fun(G,bool)),aa(fun(fun(G,bool),fun(G,bool)),fun(fun(list(G),fun(G,bool)),fun(list(G),fun(G,bool))),combb(fun(G,bool),fun(G,bool),list(G)),aa(fun(bool,bool),fun(fun(G,bool),fun(G,bool)),combb(bool,bool,G),fNot)),aa(fun(list(G),set(G)),fun(list(G),fun(G,bool)),aa(fun(set(G),fun(G,bool)),fun(fun(list(G),set(G)),fun(list(G),fun(G,bool))),combb(set(G),fun(G,bool),list(G)),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G))),set2(G)))))))),aa(fun(list(G),fun(G,fun(G,pred(product_unit)))),fun(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit))))),aa(fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,fun(product_unit,pred(product_unit))))),fun(fun(list(G),fun(G,fun(G,pred(product_unit)))),fun(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit)))))),combb(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,fun(product_unit,pred(product_unit)))),list(G)),aa(fun(fun(G,pred(product_unit)),fun(G,fun(product_unit,pred(product_unit)))),fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,fun(product_unit,pred(product_unit))))),combb(fun(G,pred(product_unit)),fun(G,fun(product_unit,pred(product_unit))),G),aa(fun(pred(product_unit),fun(product_unit,pred(product_unit))),fun(fun(G,pred(product_unit)),fun(G,fun(product_unit,pred(product_unit)))),combb(pred(product_unit),fun(product_unit,pred(product_unit)),G),product_case_unit(pred(product_unit))))),aa(fun(G,fun(G,pred(product_unit))),fun(list(G),fun(G,fun(G,pred(product_unit)))),aa(fun(list(G),fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,pred(product_unit))))),fun(fun(G,fun(G,pred(product_unit))),fun(list(G),fun(G,fun(G,pred(product_unit))))),combc(list(G),fun(G,fun(G,pred(product_unit))),fun(G,fun(G,pred(product_unit)))),aa(fun(list(G),fun(G,fun(fun(G,pred(product_unit)),fun(G,pred(product_unit))))),fun(list(G),fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,pred(product_unit))))),aa(fun(fun(G,fun(fun(G,pred(product_unit)),fun(G,pred(product_unit)))),fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,fun(fun(G,pred(product_unit)),fun(G,pred(product_unit))))),fun(list(G),fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,pred(product_unit)))))),combb(fun(G,fun(fun(G,pred(product_unit)),fun(G,pred(product_unit)))),fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,pred(product_unit)))),list(G)),combs(G,fun(G,pred(product_unit)),fun(G,pred(product_unit)))),aa(fun(list(G),fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))))),fun(list(G),fun(G,fun(fun(G,pred(product_unit)),fun(G,pred(product_unit))))),aa(fun(fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit)))),fun(G,fun(fun(G,pred(product_unit)),fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))))),fun(list(G),fun(G,fun(fun(G,pred(product_unit)),fun(G,pred(product_unit)))))),combb(fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit)))),fun(G,fun(fun(G,pred(product_unit)),fun(G,pred(product_unit)))),list(G)),aa(fun(fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))),fun(fun(G,pred(product_unit)),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit)))),fun(G,fun(fun(G,pred(product_unit)),fun(G,pred(product_unit))))),combb(fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))),fun(fun(G,pred(product_unit)),fun(G,pred(product_unit))),G),combc(G,fun(G,pred(product_unit)),pred(product_unit)))),aa(fun(list(G),fun(G,fun(G,pred(G)))),fun(list(G),fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))))),aa(fun(fun(G,fun(G,pred(G))),fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))))),fun(fun(list(G),fun(G,fun(G,pred(G)))),fun(list(G),fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit)))))),combb(fun(G,fun(G,pred(G))),fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit)))),list(G)),aa(fun(fun(G,pred(G)),fun(G,fun(fun(G,pred(product_unit)),pred(product_unit)))),fun(fun(G,fun(G,pred(G))),fun(G,fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))))),combb(fun(G,pred(G)),fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))),G),aa(fun(pred(G),fun(fun(G,pred(product_unit)),pred(product_unit))),fun(fun(G,pred(G)),fun(G,fun(fun(G,pred(product_unit)),pred(product_unit)))),combb(pred(G),fun(fun(G,pred(product_unit)),pred(product_unit)),G),bind(G,product_unit)))),aa(fun(list(G),fun(G,list(G))),fun(list(G),fun(G,fun(G,pred(G)))),aa(fun(fun(G,list(G)),fun(G,fun(G,pred(G)))),fun(fun(list(G),fun(G,list(G))),fun(list(G),fun(G,fun(G,pred(G))))),combb(fun(G,list(G)),fun(G,fun(G,pred(G))),list(G)),aa(fun(list(G),fun(G,pred(G))),fun(fun(G,list(G)),fun(G,fun(G,pred(G)))),combb(list(G),fun(G,pred(G)),G),transi4441628513830593908_i_o_i(G,R4))),aa(fun(G,fun(list(G),list(G))),fun(list(G),fun(G,list(G))),combc(G,list(G),list(G)),cons(G))))))),aa(fun(G,fun(G,fun(product_prod(G,G),pred(product_unit)))),fun(G,fun(G,pred(product_unit))),aa(fun(fun(G,fun(product_prod(G,G),pred(product_unit))),fun(G,pred(product_unit))),fun(fun(G,fun(G,fun(product_prod(G,G),pred(product_unit)))),fun(G,fun(G,pred(product_unit)))),combb(fun(G,fun(product_prod(G,G),pred(product_unit))),fun(G,pred(product_unit)),G),aa(fun(fun(product_prod(G,G),pred(product_unit)),pred(product_unit)),fun(fun(G,fun(product_prod(G,G),pred(product_unit))),fun(G,pred(product_unit))),combb(fun(product_prod(G,G),pred(product_unit)),pred(product_unit),G),aa(pred(product_prod(G,G)),fun(fun(product_prod(G,G),pred(product_unit)),pred(product_unit)),bind(product_prod(G,G),product_unit),R4))),aa(fun(G,fun(G,fun(G,fun(G,pred(product_unit))))),fun(G,fun(G,fun(product_prod(G,G),pred(product_unit)))),aa(fun(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(product_prod(G,G),pred(product_unit)))),fun(fun(G,fun(G,fun(G,fun(G,pred(product_unit))))),fun(G,fun(G,fun(product_prod(G,G),pred(product_unit))))),combb(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(product_prod(G,G),pred(product_unit))),G),aa(fun(fun(G,fun(G,pred(product_unit))),fun(product_prod(G,G),pred(product_unit))),fun(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(product_prod(G,G),pred(product_unit)))),combb(fun(G,fun(G,pred(product_unit))),fun(product_prod(G,G),pred(product_unit)),G),product_case_prod(G,G,pred(product_unit)))),aa(pred(product_unit),fun(G,fun(G,fun(G,fun(G,pred(product_unit))))),aa(fun(G,fun(pred(product_unit),fun(G,fun(G,fun(G,pred(product_unit)))))),fun(pred(product_unit),fun(G,fun(G,fun(G,fun(G,pred(product_unit)))))),combc(G,pred(product_unit),fun(G,fun(G,fun(G,pred(product_unit))))),aa(fun(G,fun(G,fun(pred(product_unit),fun(G,fun(G,pred(product_unit)))))),fun(G,fun(pred(product_unit),fun(G,fun(G,fun(G,pred(product_unit)))))),aa(fun(fun(G,fun(pred(product_unit),fun(G,fun(G,pred(product_unit))))),fun(pred(product_unit),fun(G,fun(G,fun(G,pred(product_unit)))))),fun(fun(G,fun(G,fun(pred(product_unit),fun(G,fun(G,pred(product_unit)))))),fun(G,fun(pred(product_unit),fun(G,fun(G,fun(G,pred(product_unit))))))),combb(fun(G,fun(pred(product_unit),fun(G,fun(G,pred(product_unit))))),fun(pred(product_unit),fun(G,fun(G,fun(G,pred(product_unit))))),G),combc(G,pred(product_unit),fun(G,fun(G,pred(product_unit))))),aa(fun(G,fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))))),fun(G,fun(G,fun(pred(product_unit),fun(G,fun(G,pred(product_unit)))))),aa(fun(fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(G,pred(product_unit)))))),fun(fun(G,fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))))),fun(G,fun(G,fun(pred(product_unit),fun(G,fun(G,pred(product_unit))))))),combb(fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(G,pred(product_unit))))),G),aa(fun(fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))),fun(pred(product_unit),fun(G,fun(G,pred(product_unit))))),fun(fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(G,pred(product_unit)))))),combb(fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))),fun(pred(product_unit),fun(G,fun(G,pred(product_unit)))),G),combc(G,pred(product_unit),fun(G,pred(product_unit))))),aa(fun(G,fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),fun(G,fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))))),aa(fun(fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))),fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))))),fun(fun(G,fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),fun(G,fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit))))))),combb(fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))),fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit))))),G),aa(fun(fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))),fun(G,fun(pred(product_unit),fun(G,pred(product_unit))))),fun(fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))),fun(G,fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))))),combb(fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))),fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))),G),aa(fun(fun(G,fun(pred(product_unit),pred(product_unit))),fun(pred(product_unit),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))),fun(G,fun(pred(product_unit),fun(G,pred(product_unit))))),combb(fun(G,fun(pred(product_unit),pred(product_unit))),fun(pred(product_unit),fun(G,pred(product_unit))),G),combc(G,pred(product_unit),pred(product_unit))))),aa(pred(product_unit),fun(G,fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),aa(fun(G,fun(pred(product_unit),fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))))),fun(pred(product_unit),fun(G,fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))))),combc(G,pred(product_unit),fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),aa(fun(G,fun(G,fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))))),fun(G,fun(pred(product_unit),fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))))),aa(fun(fun(G,fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),fun(pred(product_unit),fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))))),fun(fun(G,fun(G,fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))))),fun(G,fun(pred(product_unit),fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))))),combb(fun(G,fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),fun(pred(product_unit),fun(G,fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),G),combc(G,pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),aa(fun(G,fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))))),fun(G,fun(G,fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))))),aa(fun(fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))),fun(G,fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))))),fun(fun(G,fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))))),fun(G,fun(G,fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))))),combb(fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))),fun(G,fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),G),aa(fun(fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))))),fun(fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))),fun(G,fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))))),combb(fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))),G),combc(G,pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))),aa(fun(G,fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))))),fun(G,fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))))),aa(fun(fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))))),fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))))),fun(fun(G,fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))))),fun(G,fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))))),combb(fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))))),fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))),G),aa(fun(fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))),fun(fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))))),fun(G,fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))))),combb(fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),G),aa(fun(fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),fun(fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))),combb(fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))),G),combc(G,pred(product_unit),fun(pred(product_unit),pred(product_unit)))))),aa(fun(G,fun(G,fun(G,fun(G,bool)))),fun(G,fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))))),aa(fun(fun(G,fun(G,fun(G,bool))),fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))))),fun(fun(G,fun(G,fun(G,fun(G,bool)))),fun(G,fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))))))),combb(fun(G,fun(G,fun(G,bool))),fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))))),G),aa(fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))))),fun(fun(G,fun(G,fun(G,bool))),fun(G,fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))))),combb(fun(G,fun(G,bool)),fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),G),aa(fun(fun(G,bool),fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))))),combb(fun(G,bool),fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),G),aa(fun(bool,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),fun(fun(G,bool),fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),combb(bool,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))),G),if(pred(product_unit)))))),aa(fun(G,fun(G,bool)),fun(G,fun(G,fun(G,fun(G,bool)))),aa(fun(G,fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(G,bool))))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(G,fun(G,bool))))),combc(G,fun(G,fun(G,bool)),fun(G,fun(G,fun(G,bool)))),aa(fun(G,fun(fun(G,bool),fun(G,fun(G,bool)))),fun(G,fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(G,bool))))),aa(fun(fun(fun(G,bool),fun(G,fun(G,bool))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(G,bool))))),fun(fun(G,fun(fun(G,bool),fun(G,fun(G,bool)))),fun(G,fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(G,bool)))))),combb(fun(fun(G,bool),fun(G,fun(G,bool))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(G,bool)))),G),combb(fun(G,bool),fun(G,fun(G,bool)),G)),aa(fun(G,fun(G,fun(fun(G,bool),fun(G,bool)))),fun(G,fun(fun(G,bool),fun(G,fun(G,bool)))),aa(fun(fun(G,fun(fun(G,bool),fun(G,bool))),fun(fun(G,bool),fun(G,fun(G,bool)))),fun(fun(G,fun(G,fun(fun(G,bool),fun(G,bool)))),fun(G,fun(fun(G,bool),fun(G,fun(G,bool))))),combb(fun(G,fun(fun(G,bool),fun(G,bool))),fun(fun(G,bool),fun(G,fun(G,bool))),G),combc(G,fun(G,bool),fun(G,bool))),aa(fun(G,fun(G,fun(bool,bool))),fun(G,fun(G,fun(fun(G,bool),fun(G,bool)))),aa(fun(fun(G,fun(bool,bool)),fun(G,fun(fun(G,bool),fun(G,bool)))),fun(fun(G,fun(G,fun(bool,bool))),fun(G,fun(G,fun(fun(G,bool),fun(G,bool))))),combb(fun(G,fun(bool,bool)),fun(G,fun(fun(G,bool),fun(G,bool))),G),aa(fun(fun(bool,bool),fun(fun(G,bool),fun(G,bool))),fun(fun(G,fun(bool,bool)),fun(G,fun(fun(G,bool),fun(G,bool)))),combb(fun(bool,bool),fun(fun(G,bool),fun(G,bool)),G),combb(bool,bool,G))),aa(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool))),aa(fun(fun(G,bool),fun(G,fun(bool,bool))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool)))),combb(fun(G,bool),fun(G,fun(bool,bool)),G),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj)),fequal(G)))))),fequal(G))))))),single(product_unit,product_Unity)))))),bot_bot(pred(product_unit)))))))))))) )).

% rtrancl_tab.equation(3)
tff(fact_349_Un__subset__iff,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A),C6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)),C6))
    <=> ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),C6))
        & pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B6),C6)) ) ) )).

% Un_subset_iff
tff(fact_350_fun__quotient,axiom,(
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: fun(A,fun(A,bool)),Abs1: fun(A,B),Rep1: fun(B,A),T1: fun(A,fun(B,bool)),R22: fun(C,fun(C,bool)),Abs2: fun(C,D),Rep22: fun(D,C),T22: fun(C,fun(D,bool))] :
      ( quotient(A,B,R1,Abs1,Rep1,T1)
     => ( quotient(C,D,R22,Abs2,Rep22,T22)
       => quotient(fun(A,C),fun(B,D),bNF_rel_fun(A,A,C,C,R1,R22),map_fun(B,A,C,D,Rep1,Abs2),map_fun(A,B,D,C,Abs1,Rep22),bNF_rel_fun(A,B,C,D,T1,T22)) ) ) )).

% fun_quotient
tff(fact_351_in__rel__def,axiom,(
    ! [B: $tType,A: $tType,R: set(product_prod(A,B)),X3: A,Y: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),fun_in_rel(A,B,R),X3),Y))
    <=> pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),Y)),R)) ) )).

% in_rel_def
tff(fact_352_rtrancl__tab_Oequation_I1_J,axiom,(
    ! [G: $tType,R4: fun(G,pred(G)),Xa5: list(G),Xb4: G,Xc: G] : aa(G,pred(product_unit),aa(G,fun(G,pred(product_unit)),aa(list(G),fun(G,fun(G,pred(product_unit))),transi8253828792423813248_i_i_i(G,R4),Xa5),Xb4),Xc) = aa(pred(product_unit),pred(product_unit),aa(pred(product_unit),fun(pred(product_unit),pred(product_unit)),sup_sup(pred(product_unit)),aa(fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),pred(product_unit),aa(pred(product_prod(list(G),product_prod(G,G))),fun(fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),pred(product_unit)),bind(product_prod(list(G),product_prod(G,G)),product_unit),single(product_prod(list(G),product_prod(G,G)),aa(product_prod(G,G),product_prod(list(G),product_prod(G,G)),aa(list(G),fun(product_prod(G,G),product_prod(list(G),product_prod(G,G))),product_Pair(list(G),product_prod(G,G)),Xa5),aa(G,product_prod(G,G),aa(G,fun(G,product_prod(G,G)),product_Pair(G,G),Xb4),Xc)))),aa(fun(list(G),fun(product_prod(G,G),pred(product_unit))),fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),product_case_prod(list(G),product_prod(G,G),pred(product_unit)),aa(fun(product_prod(G,G),pred(product_unit)),fun(list(G),fun(product_prod(G,G),pred(product_unit))),combk(fun(product_prod(G,G),pred(product_unit)),list(G)),aa(fun(G,fun(G,pred(product_unit))),fun(product_prod(G,G),pred(product_unit)),product_case_prod(G,G,pred(product_unit)),aa(pred(product_unit),fun(G,fun(G,pred(product_unit))),aa(fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))),fun(pred(product_unit),fun(G,fun(G,pred(product_unit)))),combc(G,pred(product_unit),fun(G,pred(product_unit))),aa(fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))),fun(G,fun(pred(product_unit),fun(G,pred(product_unit)))),aa(fun(fun(G,fun(pred(product_unit),pred(product_unit))),fun(pred(product_unit),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))),fun(G,fun(pred(product_unit),fun(G,pred(product_unit))))),combb(fun(G,fun(pred(product_unit),pred(product_unit))),fun(pred(product_unit),fun(G,pred(product_unit))),G),combc(G,pred(product_unit),pred(product_unit))),aa(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit)))),aa(fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),fun(pred(product_unit),fun(G,fun(G,fun(pred(product_unit),pred(product_unit))))),combc(G,pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))),aa(fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),aa(fun(fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit))))),fun(fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(G,fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))))),combb(fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),fun(pred(product_unit),fun(G,fun(pred(product_unit),pred(product_unit)))),G),combc(G,pred(product_unit),fun(pred(product_unit),pred(product_unit)))),aa(fun(G,fun(G,bool)),fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),aa(fun(fun(G,bool),fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))))),combb(fun(G,bool),fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),G),aa(fun(bool,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit)))),fun(fun(G,bool),fun(G,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))))),combb(bool,fun(pred(product_unit),fun(pred(product_unit),pred(product_unit))),G),if(pred(product_unit)))),fequal(G)))),single(product_unit,product_Unity)))),bot_bot(pred(product_unit)))))))),aa(fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),pred(product_unit),aa(pred(product_prod(list(G),product_prod(G,G))),fun(fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),pred(product_unit)),bind(product_prod(list(G),product_prod(G,G)),product_unit),single(product_prod(list(G),product_prod(G,G)),aa(product_prod(G,G),product_prod(list(G),product_prod(G,G)),aa(list(G),fun(product_prod(G,G),product_prod(list(G),product_prod(G,G))),product_Pair(list(G),product_prod(G,G)),Xa5),aa(G,product_prod(G,G),aa(G,fun(G,product_prod(G,G)),product_Pair(G,G),Xb4),Xc)))),aa(fun(list(G),fun(product_prod(G,G),pred(product_unit))),fun(product_prod(list(G),product_prod(G,G)),pred(product_unit)),product_case_prod(list(G),product_prod(G,G),pred(product_unit)),aa(fun(list(G),fun(G,fun(G,pred(product_unit)))),fun(list(G),fun(product_prod(G,G),pred(product_unit))),aa(fun(fun(G,fun(G,pred(product_unit))),fun(product_prod(G,G),pred(product_unit))),fun(fun(list(G),fun(G,fun(G,pred(product_unit)))),fun(list(G),fun(product_prod(G,G),pred(product_unit)))),combb(fun(G,fun(G,pred(product_unit))),fun(product_prod(G,G),pred(product_unit)),list(G)),product_case_prod(G,G,pred(product_unit))),aa(fun(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit))))),fun(list(G),fun(G,fun(G,pred(product_unit)))),aa(fun(list(G),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit))))),fun(list(G),fun(G,fun(G,pred(product_unit))))),combs(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit)))),aa(fun(list(G),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),fun(list(G),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit))))),aa(fun(fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),fun(list(G),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit)))))),combb(fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(product_unit,pred(product_unit)))),fun(G,fun(G,pred(product_unit)))),list(G)),combs(G,fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),aa(fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(list(G),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),aa(fun(fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(list(G),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))))),combb(fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),list(G)),aa(fun(fun(fun(product_unit,pred(product_unit)),pred(product_unit)),fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit)))),fun(fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(G,fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))))),combb(fun(fun(product_unit,pred(product_unit)),pred(product_unit)),fun(fun(G,fun(product_unit,pred(product_unit))),fun(G,pred(product_unit))),G),combb(fun(product_unit,pred(product_unit)),pred(product_unit),G))),aa(fun(list(G),fun(G,pred(product_unit))),fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),aa(fun(fun(G,pred(product_unit)),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(fun(list(G),fun(G,pred(product_unit))),fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))))),combb(fun(G,pred(product_unit)),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),list(G)),aa(fun(pred(product_unit),fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(fun(G,pred(product_unit)),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),combb(pred(product_unit),fun(fun(product_unit,pred(product_unit)),pred(product_unit)),G),bind(product_unit,product_unit))),aa(fun(list(G),fun(G,bool)),fun(list(G),fun(G,pred(product_unit))),aa(fun(fun(G,bool),fun(G,pred(product_unit))),fun(fun(list(G),fun(G,bool)),fun(list(G),fun(G,pred(product_unit)))),combb(fun(G,bool),fun(G,pred(product_unit)),list(G)),aa(fun(bool,pred(product_unit)),fun(fun(G,bool),fun(G,pred(product_unit))),combb(bool,pred(product_unit),G),if_pred)),aa(fun(list(G),fun(G,bool)),fun(list(G),fun(G,bool)),aa(fun(fun(G,bool),fun(G,bool)),fun(fun(list(G),fun(G,bool)),fun(list(G),fun(G,bool))),combb(fun(G,bool),fun(G,bool),list(G)),aa(fun(bool,bool),fun(fun(G,bool),fun(G,bool)),combb(bool,bool,G),fNot)),aa(fun(list(G),set(G)),fun(list(G),fun(G,bool)),aa(fun(set(G),fun(G,bool)),fun(fun(list(G),set(G)),fun(list(G),fun(G,bool))),combb(set(G),fun(G,bool),list(G)),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G))),set2(G)))))))),aa(fun(list(G),fun(G,fun(G,pred(product_unit)))),fun(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit))))),aa(fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,fun(product_unit,pred(product_unit))))),fun(fun(list(G),fun(G,fun(G,pred(product_unit)))),fun(list(G),fun(G,fun(G,fun(product_unit,pred(product_unit)))))),combb(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,fun(product_unit,pred(product_unit)))),list(G)),aa(fun(fun(G,pred(product_unit)),fun(G,fun(product_unit,pred(product_unit)))),fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,fun(product_unit,pred(product_unit))))),combb(fun(G,pred(product_unit)),fun(G,fun(product_unit,pred(product_unit))),G),aa(fun(pred(product_unit),fun(product_unit,pred(product_unit))),fun(fun(G,pred(product_unit)),fun(G,fun(product_unit,pred(product_unit)))),combb(pred(product_unit),fun(product_unit,pred(product_unit)),G),product_case_unit(pred(product_unit))))),aa(fun(list(G),fun(G,fun(G,fun(G,pred(product_unit))))),fun(list(G),fun(G,fun(G,pred(product_unit)))),aa(fun(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(G,pred(product_unit)))),fun(fun(list(G),fun(G,fun(G,fun(G,pred(product_unit))))),fun(list(G),fun(G,fun(G,pred(product_unit))))),combb(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(G,pred(product_unit))),list(G)),aa(fun(G,fun(fun(G,fun(G,pred(product_unit))),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(G,pred(product_unit)))),combs(G,fun(G,fun(G,pred(product_unit))),fun(G,pred(product_unit))),aa(fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))),fun(G,fun(fun(G,fun(G,pred(product_unit))),fun(G,pred(product_unit)))),aa(fun(fun(fun(G,pred(product_unit)),pred(product_unit)),fun(fun(G,fun(G,pred(product_unit))),fun(G,pred(product_unit)))),fun(fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))),fun(G,fun(fun(G,fun(G,pred(product_unit))),fun(G,pred(product_unit))))),combb(fun(fun(G,pred(product_unit)),pred(product_unit)),fun(fun(G,fun(G,pred(product_unit))),fun(G,pred(product_unit))),G),combb(fun(G,pred(product_unit)),pred(product_unit),G)),aa(fun(G,pred(G)),fun(G,fun(fun(G,pred(product_unit)),pred(product_unit))),aa(fun(pred(G),fun(fun(G,pred(product_unit)),pred(product_unit))),fun(fun(G,pred(G)),fun(G,fun(fun(G,pred(product_unit)),pred(product_unit)))),combb(pred(G),fun(fun(G,pred(product_unit)),pred(product_unit)),G),bind(G,product_unit)),R4)))),aa(fun(product_unit,pred(product_unit)),fun(list(G),fun(G,fun(G,fun(G,pred(product_unit))))),aa(fun(list(G),fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,fun(G,pred(product_unit)))))),fun(fun(product_unit,pred(product_unit)),fun(list(G),fun(G,fun(G,fun(G,pred(product_unit)))))),combc(list(G),fun(product_unit,pred(product_unit)),fun(G,fun(G,fun(G,pred(product_unit))))),aa(fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit)))))),fun(list(G),fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,fun(G,pred(product_unit)))))),aa(fun(fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit))))),fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,fun(G,pred(product_unit)))))),fun(fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit)))))),fun(list(G),fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,fun(G,pred(product_unit))))))),combb(fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit))))),fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,fun(G,pred(product_unit))))),list(G)),combc(G,fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit))))),aa(fun(list(G),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit)))))),fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit)))))),aa(fun(fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit))))),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit)))))),fun(fun(list(G),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit)))))),fun(list(G),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit))))))),combb(fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit))))),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit))))),list(G)),aa(fun(fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit)))),fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit))))),fun(fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit))))),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit)))))),combb(fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit)))),fun(fun(product_unit,pred(product_unit)),fun(G,fun(G,pred(product_unit)))),G),combc(G,fun(product_unit,pred(product_unit)),fun(G,pred(product_unit))))),aa(fun(list(G),fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))))),fun(list(G),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit)))))),aa(fun(fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))))),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit)))))),fun(fun(list(G),fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))))),fun(list(G),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit))))))),combb(fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))))),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit))))),list(G)),aa(fun(fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit))))),fun(fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))))),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit)))))),combb(fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit)))),G),aa(fun(fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(G,fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit))))),combb(fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(fun(product_unit,pred(product_unit)),fun(G,pred(product_unit))),G),combc(G,fun(product_unit,pred(product_unit)),pred(product_unit))))),aa(fun(list(G),fun(G,fun(G,fun(G,pred(product_unit))))),fun(list(G),fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))))),aa(fun(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))))),fun(fun(list(G),fun(G,fun(G,fun(G,pred(product_unit))))),fun(list(G),fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))))))),combb(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))))),list(G)),aa(fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))))),fun(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))))),combb(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),G),aa(fun(fun(G,pred(product_unit)),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))))),combb(fun(G,pred(product_unit)),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit))),G),aa(fun(pred(product_unit),fun(fun(product_unit,pred(product_unit)),pred(product_unit))),fun(fun(G,pred(product_unit)),fun(G,fun(fun(product_unit,pred(product_unit)),pred(product_unit)))),combb(pred(product_unit),fun(fun(product_unit,pred(product_unit)),pred(product_unit)),G),bind(product_unit,product_unit))))),aa(fun(list(G),fun(G,fun(G,fun(G,pred(product_unit))))),fun(list(G),fun(G,fun(G,fun(G,pred(product_unit))))),aa(fun(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(G,fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,fun(G,fun(G,pred(product_unit))))),fun(list(G),fun(G,fun(G,fun(G,pred(product_unit)))))),combb(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(G,fun(G,pred(product_unit)))),list(G)),aa(fun(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,pred(product_unit)))),fun(fun(G,fun(G,fun(G,pred(product_unit)))),fun(G,fun(G,fun(G,pred(product_unit))))),combb(fun(G,fun(G,pred(product_unit))),fun(G,fun(G,pred(product_unit))),G),combc(G,G,pred(product_unit)))),aa(fun(list(G),fun(G,list(G))),fun(list(G),fun(G,fun(G,fun(G,pred(product_unit))))),aa(fun(fun(G,list(G)),fun(G,fun(G,fun(G,pred(product_unit))))),fun(fun(list(G),fun(G,list(G))),fun(list(G),fun(G,fun(G,fun(G,pred(product_unit)))))),combb(fun(G,list(G)),fun(G,fun(G,fun(G,pred(product_unit)))),list(G)),aa(fun(list(G),fun(G,fun(G,pred(product_unit)))),fun(fun(G,list(G)),fun(G,fun(G,fun(G,pred(product_unit))))),combb(list(G),fun(G,fun(G,pred(product_unit))),G),transi8253828792423813248_i_i_i(G,R4))),aa(fun(G,fun(list(G),list(G))),fun(list(G),fun(G,list(G))),combc(G,list(G),list(G)),cons(G))))))))),aa(pred(product_unit),fun(product_unit,pred(product_unit)),product_case_unit(pred(product_unit)),single(product_unit,product_Unity)))))))))) )).

% rtrancl_tab.equation(1)
tff(fact_353_snd__map__prod,axiom,(
    ! [B: $tType,A: $tType,D: $tType,C: $tType,F3: fun(C,B),G3: fun(D,A),X3: product_prod(C,D)] : aa(product_prod(B,A),A,product_snd(B,A),aa(product_prod(C,D),product_prod(B,A),product_map_prod(C,B,D,A,F3,G3),X3)) = aa(D,A,G3,aa(product_prod(C,D),D,product_snd(C,D),X3)) )).

% snd_map_prod
tff(fact_354_finite__induct,axiom,(
    ! [A: $tType,F6: set(A),P: fun(set(A),bool)] :
      ( pp(aa(set(A),bool,finite_finite(A),F6))
     => ( pp(aa(set(A),bool,P,bot_bot(set(A))))
       => ( ! [X4: A,F7: set(A)] :
              ( pp(aa(set(A),bool,finite_finite(A),F7))
             => ( ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),F7))
               => ( pp(aa(set(A),bool,P,F7))
                 => pp(aa(set(A),bool,P,aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),X4),F7))) ) ) )
         => pp(aa(set(A),bool,P,F6)) ) ) ) )).

% finite_induct
tff(fact_355_fst__map__prod,axiom,(
    ! [B: $tType,A: $tType,D: $tType,C: $tType,F3: fun(C,A),G3: fun(D,B),X3: product_prod(C,D)] : aa(product_prod(A,B),A,product_fst(A,B),aa(product_prod(C,D),product_prod(A,B),product_map_prod(C,A,D,B,F3,G3),X3)) = aa(C,A,F3,aa(product_prod(C,D),C,product_fst(C,D),X3)) )).

% fst_map_prod
tff(fact_356_min__def,axiom,(
    ! [A: $tType] :
      ( ord(A)
     => ! [A3: A,B3: A] :
          ( ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),B3))
           => ord_min(A,A3,B3) = A3 )
          & ( ~ pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),B3))
           => ord_min(A,A3,B3) = B3 ) ) ) )).

% min_def
tff(fact_357_map__prod__imageI,axiom,(
    ! [D: $tType,C: $tType,B: $tType,A: $tType,A3: A,B3: B,R: set(product_prod(A,B)),F3: fun(A,C),G3: fun(B,D)] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),R))
     => pp(aa(set(product_prod(C,D)),bool,aa(product_prod(C,D),fun(set(product_prod(C,D)),bool),member(product_prod(C,D)),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),aa(A,C,F3,A3)),aa(B,D,G3,B3))),aa(set(product_prod(A,B)),set(product_prod(C,D)),aa(fun(product_prod(A,B),product_prod(C,D)),fun(set(product_prod(A,B)),set(product_prod(C,D))),image2(product_prod(A,B),product_prod(C,D)),product_map_prod(A,C,B,D,F3,G3)),R))) ) )).

% map_prod_imageI
tff(fact_358_conditional__action_Omap__ident,axiom,(
    ! [G: $tType,T4: conditional_action(G)] : aa(conditional_action(G),conditional_action(G),aa(fun(G,G),fun(conditional_action(G),conditional_action(G)),condit198635377858011928action(G,G),combi(G)),T4) = T4 )).

% conditional_action.map_ident
tff(fact_359_Un__left__commute,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A),C6: set(A)] : aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),B6),C6)) = aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),B6),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),C6)) )).

% Un_left_commute
tff(fact_360_fold__atLeastAtMost__nat_Opinduct,axiom,(
    ! [A: $tType,A0: fun(nat,fun(A,A)),A1: nat,A22: nat,A32: A,P: fun(fun(nat,fun(A,A)),fun(nat,fun(nat,fun(A,bool))))] :
      ( accp(product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),set_fo1817059534552279752at_rel(A),aa(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),aa(fun(nat,fun(A,A)),fun(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A)))),product_Pair(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),A0),aa(product_prod(nat,A),product_prod(nat,product_prod(nat,A)),aa(nat,fun(product_prod(nat,A),product_prod(nat,product_prod(nat,A))),product_Pair(nat,product_prod(nat,A)),A1),aa(A,product_prod(nat,A),aa(nat,fun(A,product_prod(nat,A)),product_Pair(nat,A),A22),A32))))
     => ( ! [F2: fun(nat,fun(A,A)),A2: nat,B2: nat,Acc: A] :
            ( accp(product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),set_fo1817059534552279752at_rel(A),aa(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),aa(fun(nat,fun(A,A)),fun(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A)))),product_Pair(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),F2),aa(product_prod(nat,A),product_prod(nat,product_prod(nat,A)),aa(nat,fun(product_prod(nat,A),product_prod(nat,product_prod(nat,A))),product_Pair(nat,product_prod(nat,A)),A2),aa(A,product_prod(nat,A),aa(nat,fun(A,product_prod(nat,A)),product_Pair(nat,A),B2),Acc))))
           => ( ( ~ pp(ord_less(nat,B2,A2))
               => pp(aa(A,bool,aa(nat,fun(A,bool),aa(nat,fun(nat,fun(A,bool)),aa(fun(nat,fun(A,A)),fun(nat,fun(nat,fun(A,bool))),P,F2),plus_plus(nat,A2,one_one(nat))),B2),aa(A,A,aa(nat,fun(A,A),F2,A2),Acc))) )
             => pp(aa(A,bool,aa(nat,fun(A,bool),aa(nat,fun(nat,fun(A,bool)),aa(fun(nat,fun(A,A)),fun(nat,fun(nat,fun(A,bool))),P,F2),A2),B2),Acc)) ) )
       => pp(aa(A,bool,aa(nat,fun(A,bool),aa(nat,fun(nat,fun(A,bool)),aa(fun(nat,fun(A,A)),fun(nat,fun(nat,fun(A,bool))),P,A0),A1),A22),A32)) ) ) )).

% fold_atLeastAtMost_nat.pinduct
tff(fact_361_Un__left__absorb,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A)] : aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)) = aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6) )).

% Un_left_absorb
tff(fact_362_trancl__induct,axiom,(
    ! [A: $tType,A3: A,B3: A,R2: set(product_prod(A,A)),P: fun(A,bool)] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),B3)),transitive_trancl(A,R2)))
     => ( ! [Y3: A] :
            ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),Y3)),R2))
           => pp(aa(A,bool,P,Y3)) )
       => ( ! [Y3: A,Z2: A] :
              ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),Y3)),transitive_trancl(A,R2)))
             => ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),Y3),Z2)),R2))
               => ( pp(aa(A,bool,P,Y3))
                 => pp(aa(A,bool,P,Z2)) ) ) )
         => pp(aa(A,bool,P,B3)) ) ) ) )).

% trancl_induct
tff(fact_363_subset__Un__eq,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),B6))
    <=> aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6) = B6 ) )).

% subset_Un_eq
tff(fact_364_wait__set__action_Osize_I12_J,axiom,(
    ! [T: $tType,W: $tType] : size_size(wait_set_action(T,W),wait_set_WokenUp(T,W)) = suc(zero_zero(nat)) )).

% wait_set_action.size(12)
tff(fact_365_subset__UnE,axiom,(
    ! [A: $tType,C6: set(A),A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),C6),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)))
     => ~ ! [A8: set(A)] :
            ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A8),A5))
           => ! [B7: set(A)] :
                ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B7),B6))
               => C6 != aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A8),B7) ) ) ) )).

% subset_UnE
tff(fact_366_trancl__induct2,axiom,(
    ! [A: $tType,B: $tType,Ax: A,Ay: B,Bx: A,By: B,R2: set(product_prod(product_prod(A,B),product_prod(A,B))),P: fun(A,fun(B,bool))] :
      ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By))),transitive_trancl(product_prod(A,B),R2)))
     => ( ! [A2: A,B2: B] :
            ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2))),R2))
           => pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2)) )
       => ( ! [A2: A,B2: B,Aa2: A,Ba: B] :
              ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2))),transitive_trancl(product_prod(A,B),R2)))
             => ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba))),R2))
               => ( pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2))
                 => pp(aa(B,bool,aa(A,fun(B,bool),P,Aa2),Ba)) ) ) )
         => pp(aa(B,bool,aa(A,fun(B,bool),P,Bx),By)) ) ) ) )).

% trancl_induct2
tff(fact_367_Un__commute,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A)] : aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6) = aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),B6),A5) )).

% Un_commute
tff(fact_368_mem__Sigma__iff,axiom,(
    ! [B: $tType,A: $tType,A3: A,B3: B,A5: set(A),B6: fun(A,set(B))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),product_Sigma(A,B,A5,B6)))
    <=> ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),A5))
        & pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),B3),aa(A,set(B),B6,A3))) ) ) )).

% mem_Sigma_iff
tff(fact_369_case__prod__Pair,axiom,(
    ! [B: $tType,A: $tType] : aa(fun(A,fun(B,product_prod(A,B))),fun(product_prod(A,B),product_prod(A,B)),product_case_prod(A,B,product_prod(A,B)),product_Pair(A,B)) = id(product_prod(A,B)) )).

% case_prod_Pair
tff(fact_370_converse__rtrancl__induct2,axiom,(
    ! [A: $tType,B: $tType,Ax: A,Ay: B,Bx: A,By: B,R2: set(product_prod(product_prod(A,B),product_prod(A,B))),P: fun(A,fun(B,bool))] :
      ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Ax),Ay)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By))),transitive_rtrancl(product_prod(A,B),R2)))
     => ( pp(aa(B,bool,aa(A,fun(B,bool),P,Bx),By))
       => ( ! [A2: A,B2: B,Aa2: A,Ba: B] :
              ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba))),R2))
             => ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Aa2),Ba)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Bx),By))),transitive_rtrancl(product_prod(A,B),R2)))
               => ( pp(aa(B,bool,aa(A,fun(B,bool),P,Aa2),Ba))
                 => pp(aa(B,bool,aa(A,fun(B,bool),P,A2),B2)) ) ) )
         => pp(aa(B,bool,aa(A,fun(B,bool),P,Ax),Ay)) ) ) ) )).

% converse_rtrancl_induct2
tff(fact_371_Un__absorb2,axiom,(
    ! [A: $tType,B6: set(A),A5: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B6),A5))
     => aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6) = A5 ) )).

% Un_absorb2
tff(fact_372_Quotient__rep__abs__eq,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(A,bool)),Abs: fun(A,B),Rep: fun(B,A),T2: fun(A,fun(B,bool)),T3: A] :
      ( quotient(A,B,R,Abs,Rep,T2)
     => ( pp(aa(A,bool,aa(A,fun(A,bool),R,T3),T3))
       => ( pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),R),fequal(A)))
         => aa(B,A,Rep,aa(A,B,Abs,T3)) = T3 ) ) ) )).

% Quotient_rep_abs_eq
tff(fact_373_Un__absorb1,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),B6))
     => aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6) = B6 ) )).

% Un_absorb1
tff(fact_374_snd__o__Pair__conv__id,axiom,(
    ! [B: $tType,A: $tType,A3: B] : aa(fun(A,product_prod(B,A)),fun(A,A),aa(fun(product_prod(B,A),A),fun(fun(A,product_prod(B,A)),fun(A,A)),comp(product_prod(B,A),A,A),product_snd(B,A)),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),A3)) = id(A) )).

% snd_o_Pair_conv_id
tff(fact_375_conditional__action_Osize_I1_J,axiom,(
    ! [T: $tType,X3: fun(T,nat),X1: T] : aa(conditional_action(T),nat,condit7996436068482063107action(T,X3),aa(T,conditional_action(T),conditional_Join(T),X1)) = plus_plus(nat,aa(T,nat,X3,X1),suc(zero_zero(nat))) )).

% conditional_action.size(1)
tff(fact_376_Un__upper2,axiom,(
    ! [A: $tType,B6: set(A),A5: set(A)] : pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B6),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6))) )).

% Un_upper2
tff(fact_377_new__thread__action_Orel__eq,axiom,(
    ! [C: $tType,B: $tType,A: $tType] : new_th911009063021768419action(A,A,B,B,C,C,fequal(A),fequal(B),fequal(C)) = fequal(new_thread_action(A,B,C)) )).

% new_thread_action.rel_eq
tff(fact_378_Un__upper1,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A)] : pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6))) )).

% Un_upper1
tff(fact_379_wait__set__action_Osize_I11_J,axiom,(
    ! [T: $tType,W: $tType] : size_size(wait_set_action(T,W),wait_set_Notified(T,W)) = suc(zero_zero(nat)) )).

% wait_set_action.size(11)
tff(fact_380_Un__absorb,axiom,(
    ! [A: $tType,A5: set(A)] : aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),A5) = A5 )).

% Un_absorb
tff(fact_381_insertE,axiom,(
    ! [A: $tType,A3: A,B3: A,A5: set(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),B3),A5)))
     => ( A3 != B3
       => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),A5)) ) ) )).

% insertE
tff(fact_382_Un__least,axiom,(
    ! [A: $tType,A5: set(A),C6: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),C6))
     => ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B6),C6))
       => pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)),C6)) ) ) )).

% Un_least
tff(fact_383_conditional__action_Omap__id0,axiom,(
    ! [A: $tType] : aa(fun(A,A),fun(conditional_action(A),conditional_action(A)),condit198635377858011928action(A,A),id(A)) = id(conditional_action(A)) )).

% conditional_action.map_id0
tff(fact_384_Un__assoc,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A),C6: set(A)] : aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)),C6) = aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),B6),C6)) )).

% Un_assoc
tff(fact_385_conditional__action_Odistinct_I1_J,axiom,(
    ! [T: $tType,X1: T] : aa(T,conditional_action(T),conditional_Join(T),X1) != conditional_Yield(T) )).

% conditional_action.distinct(1)
tff(fact_386_ball__Un,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A),P: fun(A,bool)] :
      ( ! [X6: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)))
         => pp(aa(A,bool,P,X6)) )
    <=> ( ! [X6: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),A5))
           => pp(aa(A,bool,P,X6)) )
        & ! [X6: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),B6))
           => pp(aa(A,bool,P,X6)) ) ) ) )).

% ball_Un
tff(fact_387_id__comp,axiom,(
    ! [B: $tType,A: $tType,G3: fun(A,B)] : aa(fun(A,B),fun(A,B),aa(fun(B,B),fun(fun(A,B),fun(A,B)),comp(B,B,A),id(B)),G3) = G3 )).

% id_comp
tff(fact_388_converse__rtrancl__induct,axiom,(
    ! [A: $tType,A3: A,B3: A,R2: set(product_prod(A,A)),P: fun(A,bool)] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),B3)),transitive_rtrancl(A,R2)))
     => ( pp(aa(A,bool,P,B3))
       => ( ! [Y3: A,Z2: A] :
              ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),Y3),Z2)),R2))
             => ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),Z2),B3)),transitive_rtrancl(A,R2)))
               => ( pp(aa(A,bool,P,Z2))
                 => pp(aa(A,bool,P,Y3)) ) ) )
         => pp(aa(A,bool,P,A3)) ) ) ) )).

% converse_rtrancl_induct
tff(fact_389_Un__mono,axiom,(
    ! [A: $tType,A5: set(A),C6: set(A),B6: set(A),D4: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),C6))
     => ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B6),D4))
       => pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),C6),D4))) ) ) )).

% Un_mono
tff(fact_390_comp__id,axiom,(
    ! [B: $tType,A: $tType,F3: fun(A,B)] : aa(fun(A,A),fun(A,B),aa(fun(A,B),fun(fun(A,A),fun(A,B)),comp(A,B,A),F3),id(A)) = F3 )).

% comp_id
tff(fact_391_conditional__action_Odistinct_I2_J,axiom,(
    ! [T: $tType,X1: T] : conditional_Yield(T) != aa(T,conditional_action(T),conditional_Join(T),X1) )).

% conditional_action.distinct(2)
tff(fact_392_bex__Un,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A),P: fun(A,bool)] :
      ( ? [X6: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)))
          & pp(aa(A,bool,P,X6)) )
    <=> ( ? [X6: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),A5))
            & pp(aa(A,bool,P,X6)) )
        | ? [X6: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),B6))
            & pp(aa(A,bool,P,X6)) ) ) ) )).

% bex_Un
tff(fact_393_conditional__action_Oexhaust,axiom,(
    ! [T: $tType,Y: conditional_action(T)] :
      ( ! [X14: T] : Y != aa(T,conditional_action(T),conditional_Join(T),X14)
     => Y = conditional_Yield(T) ) )).

% conditional_action.exhaust
tff(fact_394_UnI2,axiom,(
    ! [A: $tType,C3: A,B6: set(A),A5: set(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),B6))
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6))) ) )).

% UnI2
tff(fact_395_wait__set__action_Osize_I10_J,axiom,(
    ! [T: $tType,W: $tType,X42: T] : size_size(wait_set_action(T,W),wait_set_WakeUp(T,W,X42)) = suc(zero_zero(nat)) )).

% wait_set_action.size(10)
tff(fact_396_UnI1,axiom,(
    ! [A: $tType,C3: A,A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),A5))
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6))) ) )).

% UnI1
tff(fact_397_new__thread__action_Osize_I4_J,axiom,(
    ! [X: $tType,M: $tType,T: $tType,X21: T,X22: bool] : size_size(new_thread_action(T,X,M),new_th4503388622997288770Exists(T,X,M,X21,X22)) = suc(zero_zero(nat)) )).

% new_thread_action.size(4)
tff(fact_398_GrpI,axiom,(
    ! [B: $tType,A: $tType,F3: fun(B,A),X3: B,Y: A,A5: set(B)] :
      ( aa(B,A,F3,X3) = Y
     => ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X3),A5))
       => pp(aa(A,bool,aa(B,fun(A,bool),bNF_Grp(B,A,A5,F3),X3),Y)) ) ) )).

% GrpI
tff(fact_399_new__thread__action_Opred__True,axiom,(
    ! [I2: $tType,H: $tType,G: $tType,X5: new_thread_action(G,H,I2)] : pp(aa(new_thread_action(G,H,I2),bool,new_th3963266298022529507action(G,H,I2,aa(bool,fun(G,bool),combk(bool,G),fTrue),aa(bool,fun(H,bool),combk(bool,H),fTrue),aa(bool,fun(I2,bool),combk(bool,I2),fTrue)),X5)) )).

% new_thread_action.pred_True
tff(fact_400_GrpE,axiom,(
    ! [B: $tType,A: $tType,A5: set(A),F3: fun(A,B),X3: A,Y: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),bNF_Grp(A,B,A5,F3),X3),Y))
     => ~ ( aa(A,B,F3,X3) = Y
         => ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X3),A5)) ) ) )).

% GrpE
tff(fact_401_new__thread__action_Oinject_I1_J,axiom,(
    ! [X: $tType,T: $tType,M: $tType,X11: T,X12: X,X13: M,Y11: T,Y12: X,Y13: M] :
      ( new_thread_NewThread(T,X,M,X11,X12,X13) = new_thread_NewThread(T,X,M,Y11,Y12,Y13)
    <=> ( X11 = Y11
        & X12 = Y12
        & X13 = Y13 ) ) )).

% new_thread_action.inject(1)
tff(fact_402_subset__Un2,axiom,(
    ! [A: $tType,A5: set(A),C6: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),C6))
     => pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),B6),C6))) ) )).

% subset_Un2
tff(fact_403_wait__set__action_Odistinct_I29_J,axiom,(
    ! [W: $tType,T: $tType] : wait_set_Notified(T,W) != wait_set_WokenUp(T,W) )).

% wait_set_action.distinct(29)
tff(fact_404_subset__Un1,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A),C6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),B6))
     => pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),B6),C6))) ) )).

% subset_Un1
tff(fact_405_filter__eq__iff,axiom,(
    ! [A: $tType,F6: filter(A),F8: filter(A)] :
      ( F6 = F8
    <=> ! [P4: fun(A,bool)] :
          ( eventually(A,P4,F6)
        <=> eventually(A,P4,F8) ) ) )).

% filter_eq_iff
tff(fact_406_map__prod_Ocompositionality,axiom,(
    ! [D: $tType,F: $tType,E: $tType,C: $tType,B: $tType,A: $tType,F3: fun(C,E),G3: fun(D,F),H2: fun(A,C),I3: fun(B,D),Prod: product_prod(A,B)] : aa(product_prod(C,D),product_prod(E,F),product_map_prod(C,E,D,F,F3,G3),aa(product_prod(A,B),product_prod(C,D),product_map_prod(A,C,B,D,H2,I3),Prod)) = aa(product_prod(A,B),product_prod(E,F),product_map_prod(A,E,B,F,aa(fun(A,C),fun(A,E),aa(fun(C,E),fun(fun(A,C),fun(A,E)),comp(C,E,A),F3),H2),aa(fun(B,D),fun(B,F),aa(fun(D,F),fun(fun(B,D),fun(B,F)),comp(D,F,B),G3),I3)),Prod) )).

% map_prod.compositionality
tff(fact_407_map__tailrec__rev_Opelims,axiom,(
    ! [A: $tType,B: $tType,X3: fun(A,B),Xa3: list(A),Xb2: list(B),Y: list(B)] :
      ( map_tailrec_rev(A,B,X3,Xa3,Xb2) = Y
     => ( accp(product_prod(fun(A,B),product_prod(list(A),list(B))),map_tailrec_rev_rel(A,B),aa(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B))),aa(fun(A,B),fun(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B)))),product_Pair(fun(A,B),product_prod(list(A),list(B))),X3),aa(list(B),product_prod(list(A),list(B)),aa(list(A),fun(list(B),product_prod(list(A),list(B))),product_Pair(list(A),list(B)),Xa3),Xb2)))
       => ( ( Xa3 = nil(A)
           => ( Y = Xb2
             => ~ accp(product_prod(fun(A,B),product_prod(list(A),list(B))),map_tailrec_rev_rel(A,B),aa(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B))),aa(fun(A,B),fun(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B)))),product_Pair(fun(A,B),product_prod(list(A),list(B))),X3),aa(list(B),product_prod(list(A),list(B)),aa(list(A),fun(list(B),product_prod(list(A),list(B))),product_Pair(list(A),list(B)),nil(A)),Xb2))) ) )
         => ~ ! [A2: A,As: list(A)] :
                ( Xa3 = aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),A2),As)
               => ( Y = map_tailrec_rev(A,B,X3,As,aa(list(B),list(B),aa(B,fun(list(B),list(B)),cons(B),aa(A,B,X3,A2)),Xb2))
                 => ~ accp(product_prod(fun(A,B),product_prod(list(A),list(B))),map_tailrec_rev_rel(A,B),aa(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B))),aa(fun(A,B),fun(product_prod(list(A),list(B)),product_prod(fun(A,B),product_prod(list(A),list(B)))),product_Pair(fun(A,B),product_prod(list(A),list(B))),X3),aa(list(B),product_prod(list(A),list(B)),aa(list(A),fun(list(B),product_prod(list(A),list(B))),product_Pair(list(A),list(B)),aa(list(A),list(A),aa(A,fun(list(A),list(A)),cons(A),A2),As)),Xb2))) ) ) ) ) ) )).

% map_tailrec_rev.pelims
tff(fact_408_map__prod__compose,axiom,(
    ! [D: $tType,C: $tType,A: $tType,E: $tType,F: $tType,B: $tType,F1: fun(E,C),F22: fun(A,E),G1: fun(F,D),G22: fun(B,F)] : product_map_prod(A,C,B,D,aa(fun(A,E),fun(A,C),aa(fun(E,C),fun(fun(A,E),fun(A,C)),comp(E,C,A),F1),F22),aa(fun(B,F),fun(B,D),aa(fun(F,D),fun(fun(B,F),fun(B,D)),comp(F,D,B),G1),G22)) = aa(fun(product_prod(A,B),product_prod(E,F)),fun(product_prod(A,B),product_prod(C,D)),aa(fun(product_prod(E,F),product_prod(C,D)),fun(fun(product_prod(A,B),product_prod(E,F)),fun(product_prod(A,B),product_prod(C,D))),comp(product_prod(E,F),product_prod(C,D),product_prod(A,B)),product_map_prod(E,C,F,D,F1,G1)),product_map_prod(A,E,B,F,F22,G22)) )).

% map_prod_compose
tff(fact_409_wait__set__action_Odistinct_I30_J,axiom,(
    ! [W: $tType,T: $tType] : wait_set_WokenUp(T,W) != wait_set_Notified(T,W) )).

% wait_set_action.distinct(30)
tff(fact_410_map__prod_Ocomp,axiom,(
    ! [A: $tType,C: $tType,E: $tType,F: $tType,D: $tType,B: $tType,F3: fun(C,E),G3: fun(D,F),H2: fun(A,C),I3: fun(B,D)] : aa(fun(product_prod(A,B),product_prod(C,D)),fun(product_prod(A,B),product_prod(E,F)),aa(fun(product_prod(C,D),product_prod(E,F)),fun(fun(product_prod(A,B),product_prod(C,D)),fun(product_prod(A,B),product_prod(E,F))),comp(product_prod(C,D),product_prod(E,F),product_prod(A,B)),product_map_prod(C,E,D,F,F3,G3)),product_map_prod(A,C,B,D,H2,I3)) = product_map_prod(A,E,B,F,aa(fun(A,C),fun(A,E),aa(fun(C,E),fun(fun(A,C),fun(A,E)),comp(C,E,A),F3),H2),aa(fun(B,D),fun(B,F),aa(fun(D,F),fun(fun(B,D),fun(B,F)),comp(D,F,B),G3),I3)) )).

% map_prod.comp
tff(fact_411_conditional__action_Osize_I2_J,axiom,(
    ! [T: $tType,X3: fun(T,nat)] : aa(conditional_action(T),nat,condit7996436068482063107action(T,X3),conditional_Yield(T)) = suc(zero_zero(nat)) )).

% conditional_action.size(2)
tff(fact_412_image__mono,axiom,(
    ! [B: $tType,A: $tType,A5: set(A),B6: set(A),F3: fun(A,B)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),B6))
     => pp(aa(set(B),bool,aa(set(B),fun(set(B),bool),ord_less_eq(set(B)),aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),A5)),aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),B6))) ) )).

% image_mono
tff(fact_413_same__fstI,axiom,(
    ! [B: $tType,A: $tType,P: fun(A,bool),X3: A,Y6: B,Y: B,R: fun(A,set(product_prod(B,B)))] :
      ( pp(aa(A,bool,P,X3))
     => ( pp(aa(set(product_prod(B,B)),bool,aa(product_prod(B,B),fun(set(product_prod(B,B)),bool),member(product_prod(B,B)),aa(B,product_prod(B,B),aa(B,fun(B,product_prod(B,B)),product_Pair(B,B),Y6),Y)),aa(A,set(product_prod(B,B)),R,X3)))
       => pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),Y6)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),Y))),same_fst(A,B,P,R))) ) ) )).

% same_fstI
tff(fact_414_image__subsetI,axiom,(
    ! [A: $tType,B: $tType,A5: set(A),F3: fun(A,B),B6: set(B)] :
      ( ! [X4: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),A5))
         => pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),aa(A,B,F3,X4)),B6)) )
     => pp(aa(set(B),bool,aa(set(B),fun(set(B),bool),ord_less_eq(set(B)),aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),A5)),B6)) ) )).

% image_subsetI
tff(fact_415_case__prodI2,axiom,(
    ! [B: $tType,A: $tType,P2: product_prod(A,B),C3: fun(A,fun(B,bool))] :
      ( ! [A2: A,B2: B] :
          ( P2 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)
         => pp(aa(B,bool,aa(A,fun(B,bool),C3,A2),B2)) )
     => pp(aa(product_prod(A,B),bool,aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),C3),P2)) ) )).

% case_prodI2
tff(fact_416_iter_Ocases,axiom,(
    ! [A: $tType,X3: product_prod(fun(product_prod(code_natural,code_natural),product_prod(product_prod(A,fun(product_unit,code_term)),product_prod(code_natural,code_natural))),product_prod(code_natural,product_prod(code_natural,code_natural)))] :
      ~ ! [Random: fun(product_prod(code_natural,code_natural),product_prod(product_prod(A,fun(product_unit,code_term)),product_prod(code_natural,code_natural))),Nrandom: code_natural,Seed: product_prod(code_natural,code_natural)] : X3 != aa(product_prod(code_natural,product_prod(code_natural,code_natural)),product_prod(fun(product_prod(code_natural,code_natural),product_prod(product_prod(A,fun(product_unit,code_term)),product_prod(code_natural,code_natural))),product_prod(code_natural,product_prod(code_natural,code_natural))),aa(fun(product_prod(code_natural,code_natural),product_prod(product_prod(A,fun(product_unit,code_term)),product_prod(code_natural,code_natural))),fun(product_prod(code_natural,product_prod(code_natural,code_natural)),product_prod(fun(product_prod(code_natural,code_natural),product_prod(product_prod(A,fun(product_unit,code_term)),product_prod(code_natural,code_natural))),product_prod(code_natural,product_prod(code_natural,code_natural)))),product_Pair(fun(product_prod(code_natural,code_natural),product_prod(product_prod(A,fun(product_unit,code_term)),product_prod(code_natural,code_natural))),product_prod(code_natural,product_prod(code_natural,code_natural))),Random),aa(product_prod(code_natural,code_natural),product_prod(code_natural,product_prod(code_natural,code_natural)),aa(code_natural,fun(product_prod(code_natural,code_natural),product_prod(code_natural,product_prod(code_natural,code_natural))),product_Pair(code_natural,product_prod(code_natural,code_natural)),Nrandom),Seed)) )).

% iter.cases
tff(fact_417_subset__imageE,axiom,(
    ! [A: $tType,B: $tType,B6: set(A),F3: fun(B,A),A5: set(B)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B6),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)))
     => ~ ! [C7: set(B)] :
            ( pp(aa(set(B),bool,aa(set(B),fun(set(B),bool),ord_less_eq(set(B)),C7),A5))
           => B6 != aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),C7) ) ) )).

% subset_imageE
tff(fact_418_wait__set__action_Osize_I7_J,axiom,(
    ! [W: $tType,T: $tType,X1: W] : size_size(wait_set_action(T,W),wait_set_Suspend(W,T,X1)) = suc(zero_zero(nat)) )).

% wait_set_action.size(7)
tff(fact_419_image__subset__iff,axiom,(
    ! [B: $tType,A: $tType,F3: fun(B,A),A5: set(B),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)),B6))
    <=> ! [X6: B] :
          ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X6),A5))
         => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),aa(B,A,F3,X6)),B6)) ) ) )).

% image_subset_iff
tff(fact_420_converse__rtranclE2,axiom,(
    ! [B: $tType,A: $tType,Xa3: A,Xb2: B,Za: A,Zb: B,R2: set(product_prod(product_prod(A,B),product_prod(A,B)))] :
      ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Xa3),Xb2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Za),Zb))),transitive_rtrancl(product_prod(A,B),R2)))
     => ( aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Xa3),Xb2) != aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Za),Zb)
       => ~ ! [A2: A,B2: B] :
              ( pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Xa3),Xb2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2))),R2))
             => ~ pp(aa(set(product_prod(product_prod(A,B),product_prod(A,B))),bool,aa(product_prod(product_prod(A,B),product_prod(A,B)),fun(set(product_prod(product_prod(A,B),product_prod(A,B))),bool),member(product_prod(product_prod(A,B),product_prod(A,B))),aa(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B)),aa(product_prod(A,B),fun(product_prod(A,B),product_prod(product_prod(A,B),product_prod(A,B))),product_Pair(product_prod(A,B),product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),Za),Zb))),transitive_rtrancl(product_prod(A,B),R2))) ) ) ) )).

% converse_rtranclE2
tff(fact_421_subset__image__iff,axiom,(
    ! [A: $tType,B: $tType,B6: set(A),F3: fun(B,A),A5: set(B)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B6),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)))
    <=> ? [AA: set(B)] :
          ( pp(aa(set(B),bool,aa(set(B),fun(set(B),bool),ord_less_eq(set(B)),AA),A5))
          & B6 = aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),AA) ) ) )).

% subset_image_iff
tff(fact_422_pred__prod__inject,axiom,(
    ! [A: $tType,B: $tType,P1: fun(A,bool),P22: fun(B,bool),A3: A,B3: B] :
      ( pp(aa(product_prod(A,B),bool,basic_pred_prod(A,B,P1,P22),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)))
    <=> ( pp(aa(A,bool,P1,A3))
        & pp(aa(B,bool,P22,B3)) ) ) )).

% pred_prod_inject
tff(fact_423_inf__sup__ord_I4_J,axiom,(
    ! [A: $tType] :
      ( lattice(A)
     => ! [Y: A,X3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),Y),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y))) ) )).

% inf_sup_ord(4)
tff(fact_424_conditional__action_Opred__set,axiom,(
    ! [A: $tType,P: fun(A,bool),X5: conditional_action(A)] :
      ( pp(aa(conditional_action(A),bool,aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),P),X5))
    <=> ! [Xa6: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Xa6),aa(conditional_action(A),set(A),condit2393454222984209554action(A),X5)))
         => pp(aa(A,bool,P,Xa6)) ) ) )).

% conditional_action.pred_set
tff(fact_425_inf__sup__ord_I3_J,axiom,(
    ! [A: $tType] :
      ( lattice(A)
     => ! [X3: A,Y: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y))) ) )).

% inf_sup_ord(3)
tff(fact_426_image__ident,axiom,(
    ! [G: $tType,Y7: set(G)] : aa(set(G),set(G),aa(fun(G,G),fun(set(G),set(G)),image2(G,G),combi(G)),Y7) = Y7 )).

% image_ident
tff(fact_427_le__supE,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,B3: A,X3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3)),X3))
         => ~ ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),X3))
             => ~ pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),X3)) ) ) ) )).

% le_supE
tff(fact_428_converse__rtranclE,axiom,(
    ! [A: $tType,X3: A,Z3: A,R2: set(product_prod(A,A))] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),X3),Z3)),transitive_rtrancl(A,R2)))
     => ( X3 != Z3
       => ~ ! [Y3: A] :
              ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),X3),Y3)),R2))
             => ~ pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),Y3),Z3)),transitive_rtrancl(A,R2))) ) ) ) )).

% converse_rtranclE
tff(fact_429_le__supI,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,X3: A,B3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),X3))
         => ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),X3))
           => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3)),X3)) ) ) ) )).

% le_supI
tff(fact_430_Predicate_Oiterate__upto_Opinduct,axiom,(
    ! [A: $tType,A0: fun(code_natural,A),A1: code_natural,A22: code_natural,P: fun(fun(code_natural,A),fun(code_natural,fun(code_natural,bool)))] :
      ( accp(product_prod(fun(code_natural,A),product_prod(code_natural,code_natural)),iterate_upto_rel(A),aa(product_prod(code_natural,code_natural),product_prod(fun(code_natural,A),product_prod(code_natural,code_natural)),aa(fun(code_natural,A),fun(product_prod(code_natural,code_natural),product_prod(fun(code_natural,A),product_prod(code_natural,code_natural))),product_Pair(fun(code_natural,A),product_prod(code_natural,code_natural)),A0),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),A1),A22)))
     => ( ! [F2: fun(code_natural,A),N2: code_natural,M3: code_natural] :
            ( accp(product_prod(fun(code_natural,A),product_prod(code_natural,code_natural)),iterate_upto_rel(A),aa(product_prod(code_natural,code_natural),product_prod(fun(code_natural,A),product_prod(code_natural,code_natural)),aa(fun(code_natural,A),fun(product_prod(code_natural,code_natural),product_prod(fun(code_natural,A),product_prod(code_natural,code_natural))),product_Pair(fun(code_natural,A),product_prod(code_natural,code_natural)),F2),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),N2),M3)))
           => ( ! [X5: product_unit] :
                  ( ~ pp(ord_less(code_natural,M3,N2))
                 => pp(aa(code_natural,bool,aa(code_natural,fun(code_natural,bool),aa(fun(code_natural,A),fun(code_natural,fun(code_natural,bool)),P,F2),plus_plus(code_natural,N2,one_one(code_natural))),M3)) )
             => pp(aa(code_natural,bool,aa(code_natural,fun(code_natural,bool),aa(fun(code_natural,A),fun(code_natural,fun(code_natural,bool)),P,F2),N2),M3)) ) )
       => pp(aa(code_natural,bool,aa(code_natural,fun(code_natural,bool),aa(fun(code_natural,A),fun(code_natural,fun(code_natural,bool)),P,A0),A1),A22)) ) ) )).

% Predicate.iterate_upto.pinduct
tff(fact_431_sup__ge1,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,Y: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y))) ) )).

% sup_ge1
tff(fact_432_max_Ocobounded1,axiom,(
    ! [A: $tType] :
      ( linorder(A)
     => ! [A3: A,B3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),ord_max(A,A3,B3))) ) )).

% max.cobounded1
tff(fact_433_sup__ge2,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [Y: A,X3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),Y),aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y))) ) )).

% sup_ge2
tff(fact_434_Id__onI,axiom,(
    ! [A: $tType,A3: A,A5: set(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),A5))
     => pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),A3)),id_on(A,A5))) ) )).

% Id_onI
tff(fact_435_eventually__filtermap,axiom,(
    ! [G: $tType,H: $tType,P3: fun(G,bool),F9: fun(H,G),F10: filter(H)] :
      ( eventually(G,P3,filtermap(H,G,F9,F10))
    <=> eventually(H,aa(fun(H,G),fun(H,bool),aa(fun(G,bool),fun(fun(H,G),fun(H,bool)),combb(G,bool,H),P3),F9),F10) ) )).

% eventually_filtermap
tff(fact_436_le__supI1,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,A3: A,B3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),A3))
         => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3))) ) ) )).

% le_supI1
tff(fact_437_conditional__action_Omap__id,axiom,(
    ! [A: $tType,T3: conditional_action(A)] : aa(conditional_action(A),conditional_action(A),aa(fun(A,A),fun(conditional_action(A),conditional_action(A)),condit198635377858011928action(A,A),id(A)),T3) = T3 )).

% conditional_action.map_id
tff(fact_438_le__supI2,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,B3: A,A3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),B3))
         => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3))) ) ) )).

% le_supI2
tff(fact_439_case__prodI2_H,axiom,(
    ! [A: $tType,B: $tType,C: $tType,P2: product_prod(A,B),C3: fun(A,fun(B,fun(C,bool))),X3: C] :
      ( ! [A2: A,B2: B] :
          ( aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2) = P2
         => pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),C3,A2),B2),X3)) )
     => pp(aa(C,bool,aa(product_prod(A,B),fun(C,bool),aa(fun(A,fun(B,fun(C,bool))),fun(product_prod(A,B),fun(C,bool)),product_case_prod(A,B,fun(C,bool)),C3),P2),X3)) ) )).

% case_prodI2'
tff(fact_440_conditional__action_Osize__gen__o__map,axiom,(
    ! [A: $tType,T: $tType,F3: fun(A,nat),G3: fun(T,A)] : aa(fun(conditional_action(T),conditional_action(A)),fun(conditional_action(T),nat),aa(fun(conditional_action(A),nat),fun(fun(conditional_action(T),conditional_action(A)),fun(conditional_action(T),nat)),comp(conditional_action(A),nat,conditional_action(T)),condit7996436068482063107action(A,F3)),aa(fun(T,A),fun(conditional_action(T),conditional_action(A)),condit198635377858011928action(T,A),G3)) = condit7996436068482063107action(T,aa(fun(T,A),fun(T,nat),aa(fun(A,nat),fun(fun(T,A),fun(T,nat)),comp(A,nat,T),F3),G3)) )).

% conditional_action.size_gen_o_map
tff(fact_441_sup_Omono,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [C3: A,A3: A,D3: A,B3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),C3),A3))
         => ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),D3),B3))
           => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),C3),D3)),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3))) ) ) ) )).

% sup.mono
tff(fact_442_new__thread__action_Omap__ident,axiom,(
    ! [I2: $tType,H: $tType,G: $tType,T4: new_thread_action(G,H,I2)] : aa(new_thread_action(G,H,I2),new_thread_action(G,H,I2),new_th6052504119144402208action(G,G,H,H,I2,I2,combi(G),combi(H),combi(I2)),T4) = T4 )).

% new_thread_action.map_ident
tff(fact_443_sup__mono,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,C3: A,B3: A,D3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),C3))
         => ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),D3))
           => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3)),aa(A,A,aa(A,fun(A,A),sup_sup(A),C3),D3))) ) ) ) )).

% sup_mono
tff(fact_444_extract__Cons__code,axiom,(
    ! [G: $tType,P3: fun(G,bool),X9: G,Xs2: list(G)] :
      ( ( pp(aa(G,bool,P3,X9))
       => extract(G,P3,aa(list(G),list(G),aa(G,fun(list(G),list(G)),cons(G),X9),Xs2)) = aa(product_prod(list(G),product_prod(G,list(G))),option(product_prod(list(G),product_prod(G,list(G)))),some(product_prod(list(G),product_prod(G,list(G)))),aa(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G))),aa(list(G),fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G)))),product_Pair(list(G),product_prod(G,list(G))),nil(G)),aa(list(G),product_prod(G,list(G)),aa(G,fun(list(G),product_prod(G,list(G))),product_Pair(G,list(G)),X9),Xs2))) )
      & ( ~ pp(aa(G,bool,P3,X9))
       => extract(G,P3,aa(list(G),list(G),aa(G,fun(list(G),list(G)),cons(G),X9),Xs2)) = case_option(option(product_prod(list(G),product_prod(G,list(G)))),product_prod(list(G),product_prod(G,list(G))),none(product_prod(list(G),product_prod(G,list(G)))),aa(fun(list(G),fun(product_prod(G,list(G)),option(product_prod(list(G),product_prod(G,list(G)))))),fun(product_prod(list(G),product_prod(G,list(G))),option(product_prod(list(G),product_prod(G,list(G))))),product_case_prod(list(G),product_prod(G,list(G)),option(product_prod(list(G),product_prod(G,list(G))))),aa(fun(list(G),fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G))))))),fun(list(G),fun(product_prod(G,list(G)),option(product_prod(list(G),product_prod(G,list(G)))))),aa(fun(fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G)))))),fun(product_prod(G,list(G)),option(product_prod(list(G),product_prod(G,list(G)))))),fun(fun(list(G),fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G))))))),fun(list(G),fun(product_prod(G,list(G)),option(product_prod(list(G),product_prod(G,list(G))))))),combb(fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G)))))),fun(product_prod(G,list(G)),option(product_prod(list(G),product_prod(G,list(G))))),list(G)),product_case_prod(G,list(G),option(product_prod(list(G),product_prod(G,list(G)))))),aa(fun(list(G),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),fun(list(G),fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G))))))),aa(fun(fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))),fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G))))))),fun(fun(list(G),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),fun(list(G),fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G)))))))),combb(fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))),fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G)))))),list(G)),aa(fun(fun(list(G),product_prod(list(G),product_prod(G,list(G)))),fun(list(G),option(product_prod(list(G),product_prod(G,list(G)))))),fun(fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))),fun(G,fun(list(G),option(product_prod(list(G),product_prod(G,list(G))))))),combb(fun(list(G),product_prod(list(G),product_prod(G,list(G)))),fun(list(G),option(product_prod(list(G),product_prod(G,list(G))))),G),aa(fun(product_prod(list(G),product_prod(G,list(G))),option(product_prod(list(G),product_prod(G,list(G))))),fun(fun(list(G),product_prod(list(G),product_prod(G,list(G)))),fun(list(G),option(product_prod(list(G),product_prod(G,list(G)))))),combb(product_prod(list(G),product_prod(G,list(G))),option(product_prod(list(G),product_prod(G,list(G)))),list(G)),some(product_prod(list(G),product_prod(G,list(G))))))),aa(fun(G,fun(list(G),product_prod(G,list(G)))),fun(list(G),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),aa(fun(list(G),fun(fun(G,fun(list(G),product_prod(G,list(G)))),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))))),fun(fun(G,fun(list(G),product_prod(G,list(G)))),fun(list(G),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))))),combc(list(G),fun(G,fun(list(G),product_prod(G,list(G)))),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),aa(fun(list(G),fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),fun(list(G),fun(fun(G,fun(list(G),product_prod(G,list(G)))),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))))),aa(fun(fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G))))),fun(fun(G,fun(list(G),product_prod(G,list(G)))),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G))))))),fun(fun(list(G),fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),fun(list(G),fun(fun(G,fun(list(G),product_prod(G,list(G)))),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G)))))))),combb(fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G))))),fun(fun(G,fun(list(G),product_prod(G,list(G)))),fun(G,fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),list(G)),combb(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G)))),G)),aa(fun(list(G),fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G))))),fun(list(G),fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),aa(fun(fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G)))),fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G)))))),fun(fun(list(G),fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G))))),fun(list(G),fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G))))))),combb(fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G)))),fun(fun(list(G),product_prod(G,list(G))),fun(list(G),product_prod(list(G),product_prod(G,list(G))))),list(G)),combb(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G))),list(G))),aa(fun(list(G),list(G)),fun(list(G),fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G))))),aa(fun(list(G),fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G))))),fun(fun(list(G),list(G)),fun(list(G),fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G)))))),combb(list(G),fun(product_prod(G,list(G)),product_prod(list(G),product_prod(G,list(G)))),list(G)),product_Pair(list(G),product_prod(G,list(G)))),aa(G,fun(list(G),list(G)),cons(G),X9))))),product_Pair(G,list(G)))))),extract(G,P3,Xs2)) ) ) )).

% extract_Cons_code
tff(fact_445_sup__least,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [Y: A,X3: A,Z3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),Y),X3))
         => ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),Z3),X3))
           => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),Y),Z3)),X3)) ) ) ) )).

% sup_least
tff(fact_446_max_Ocobounded2,axiom,(
    ! [A: $tType] :
      ( linorder(A)
     => ! [B3: A,A3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),ord_max(A,A3,B3))) ) )).

% max.cobounded2
tff(fact_447_le__iff__sup,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,Y: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),Y))
        <=> aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y) = Y ) ) )).

% le_iff_sup
tff(fact_448_Collect__case__prod,axiom,(
    ! [G: $tType,H: $tType,P3: fun(G,bool),Q3: fun(H,bool)] : aa(fun(product_prod(G,H),bool),set(product_prod(G,H)),collect(product_prod(G,H)),aa(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),product_case_prod(G,H,bool),aa(fun(H,bool),fun(G,fun(H,bool)),aa(fun(G,fun(fun(H,bool),fun(H,bool))),fun(fun(H,bool),fun(G,fun(H,bool))),combc(G,fun(H,bool),fun(H,bool)),aa(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool))),aa(fun(fun(bool,bool),fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool)))),combb(fun(bool,bool),fun(fun(H,bool),fun(H,bool)),G),combb(bool,bool,H)),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj),P3))),Q3))) = product_Sigma(G,H,aa(fun(G,bool),set(G),collect(G),P3),aa(set(H),fun(G,set(H)),combk(set(H),G),aa(fun(H,bool),set(H),collect(H),Q3))) )).

% Collect_case_prod
tff(fact_449_snd__diag__id,axiom,(
    ! [G: $tType,Z4: G] : aa(G,G,aa(fun(G,product_prod(G,G)),fun(G,G),aa(fun(product_prod(G,G),G),fun(fun(G,product_prod(G,G)),fun(G,G)),comp(product_prod(G,G),G,G),product_snd(G,G)),aa(fun(G,G),fun(G,product_prod(G,G)),aa(fun(G,fun(G,product_prod(G,G))),fun(fun(G,G),fun(G,product_prod(G,G))),combs(G,G,product_prod(G,G)),product_Pair(G,G)),combi(G))),Z4) = aa(G,G,id(G),Z4) )).

% snd_diag_id
tff(fact_450_fst__diag__id,axiom,(
    ! [G: $tType,Z4: G] : aa(G,G,aa(fun(G,product_prod(G,G)),fun(G,G),aa(fun(product_prod(G,G),G),fun(fun(G,product_prod(G,G)),fun(G,G)),comp(product_prod(G,G),G,G),product_fst(G,G)),aa(fun(G,G),fun(G,product_prod(G,G)),aa(fun(G,fun(G,product_prod(G,G))),fun(fun(G,G),fun(G,product_prod(G,G))),combs(G,G,product_prod(G,G)),product_Pair(G,G)),combi(G))),Z4) = aa(G,G,id(G),Z4) )).

% fst_diag_id
tff(fact_451_eventually__prod__filter,axiom,(
    ! [A: $tType,B: $tType,P: fun(product_prod(A,B),bool),F6: filter(A),G5: filter(B)] :
      ( eventually(product_prod(A,B),P,prod_filter(A,B,F6,G5))
    <=> ? [Pf: fun(A,bool),Pg: fun(B,bool)] :
          ( eventually(A,Pf,F6)
          & eventually(B,Pg,G5)
          & ! [X6: A,Y8: B] :
              ( pp(aa(A,bool,Pf,X6))
             => ( pp(aa(B,bool,Pg,Y8))
               => pp(aa(product_prod(A,B),bool,P,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X6),Y8))) ) ) ) ) )).

% eventually_prod_filter
tff(fact_452_sup_OorderE,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B3: A,A3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),A3))
         => A3 = aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3) ) ) )).

% sup.orderE
tff(fact_453_conditional__action_Orel__reflp,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( reflp(A,R)
     => reflp(conditional_action(A),aa(fun(A,fun(A,bool)),fun(conditional_action(A),fun(conditional_action(A),bool)),condit4280512358590153947action(A,A),R)) ) )).

% conditional_action.rel_reflp
tff(fact_454_sup_OorderI,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,B3: A] :
          ( A3 = aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3)
         => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),A3)) ) ) )).

% sup.orderI
tff(fact_455_pair__imageI,axiom,(
    ! [C: $tType,B: $tType,A: $tType,A3: A,B3: B,A5: set(product_prod(A,B)),F3: fun(A,fun(B,C))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),A5))
     => pp(aa(set(C),bool,aa(C,fun(set(C),bool),member(C),aa(B,C,aa(A,fun(B,C),F3,A3),B3)),aa(set(product_prod(A,B)),set(C),aa(fun(product_prod(A,B),C),fun(set(product_prod(A,B)),set(C)),image2(product_prod(A,B),C),aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),F3)),A5))) ) )).

% pair_imageI
tff(fact_456_conditional__action_Orel__symp,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( symp(A,R)
     => symp(conditional_action(A),aa(fun(A,fun(A,bool)),fun(conditional_action(A),fun(conditional_action(A),bool)),condit4280512358590153947action(A,A),R)) ) )).

% conditional_action.rel_symp
tff(fact_457_sup__unique,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [F3: fun(A,fun(A,A)),X3: A,Y: A] :
          ( ! [X4: A,Y3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X4),aa(A,A,aa(A,fun(A,A),F3,X4),Y3)))
         => ( ! [X4: A,Y3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),Y3),aa(A,A,aa(A,fun(A,A),F3,X4),Y3)))
           => ( ! [X4: A,Y3: A,Z2: A] :
                  ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),Y3),X4))
                 => ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),Z2),X4))
                   => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),F3,Y3),Z2)),X4)) ) )
             => aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y) = aa(A,A,aa(A,fun(A,A),F3,X3),Y) ) ) ) ) )).

% sup_unique
tff(fact_458_case__prodE_H,axiom,(
    ! [B: $tType,A: $tType,C: $tType,C3: fun(A,fun(B,fun(C,bool))),P2: product_prod(A,B),Z3: C] :
      ( pp(aa(C,bool,aa(product_prod(A,B),fun(C,bool),aa(fun(A,fun(B,fun(C,bool))),fun(product_prod(A,B),fun(C,bool)),product_case_prod(A,B,fun(C,bool)),C3),P2),Z3))
     => ~ ! [X4: A,Y3: B] :
            ( P2 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X4),Y3)
           => ~ pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),C3,X4),Y3),Z3)) ) ) )).

% case_prodE'
tff(fact_459_conditional__action_Orel__transp,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( transp(A,R)
     => transp(conditional_action(A),aa(fun(A,fun(A,bool)),fun(conditional_action(A),fun(conditional_action(A),bool)),condit4280512358590153947action(A,A),R)) ) )).

% conditional_action.rel_transp
tff(fact_460_sup_Oabsorb1,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B3: A,A3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),A3))
         => aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3) = A3 ) ) )).

% sup.absorb1
tff(fact_461_conditional__action_Obi__unique__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( bi_unique(A,B,R)
     => bi_unique(conditional_action(A),conditional_action(B),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R)) ) )).

% conditional_action.bi_unique_rel
tff(fact_462_sup_Oabsorb2,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,B3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),B3))
         => aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3) = B3 ) ) )).

% sup.absorb2
tff(fact_463_case__prodD_H,axiom,(
    ! [B: $tType,A: $tType,C: $tType,R: fun(A,fun(B,fun(C,bool))),A3: A,B3: B,C3: C] :
      ( pp(aa(C,bool,aa(product_prod(A,B),fun(C,bool),aa(fun(A,fun(B,fun(C,bool))),fun(product_prod(A,B),fun(C,bool)),product_case_prod(A,B,fun(C,bool)),R),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),C3))
     => pp(aa(C,bool,aa(B,fun(C,bool),aa(A,fun(B,fun(C,bool)),R,A3),B3),C3)) ) )).

% case_prodD'
tff(fact_464_conditional__action_Obi__total__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( bi_total(A,B,R)
     => bi_total(conditional_action(A),conditional_action(B),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R)) ) )).

% conditional_action.bi_total_rel
tff(fact_465_sup__absorb1,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [Y: A,X3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),Y),X3))
         => aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y) = X3 ) ) )).

% sup_absorb1
tff(fact_466_mem__case__prodI,axiom,(
    ! [A: $tType,B: $tType,C: $tType,Z3: A,C3: fun(B,fun(C,set(A))),A3: B,B3: C] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z3),aa(C,set(A),aa(B,fun(C,set(A)),C3,A3),B3)))
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z3),aa(product_prod(B,C),set(A),aa(fun(B,fun(C,set(A))),fun(product_prod(B,C),set(A)),product_case_prod(B,C,set(A)),C3),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),A3),B3)))) ) )).

% mem_case_prodI
tff(fact_467_conditional__action_Oset_I2_J,axiom,(
    ! [T: $tType] : aa(conditional_action(T),set(T),condit2393454222984209554action(T),conditional_Yield(T)) = bot_bot(set(T)) )).

% conditional_action.set(2)
tff(fact_468_sup__absorb2,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [X3: A,Y: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),Y))
         => aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),Y) = Y ) ) )).

% sup_absorb2
tff(fact_469_UNIV__Times__UNIV,axiom,(
    ! [H: $tType,G: $tType] : product_Sigma(G,H,top_top(set(G)),aa(set(H),fun(G,set(H)),combk(set(H),G),top_top(set(H)))) = top_top(set(product_prod(G,H))) )).

% UNIV_Times_UNIV
tff(fact_470_interrupt__action_Orel__eq,axiom,(
    ! [A: $tType] : interr1799892525631285141action(A,A,fequal(A)) = fequal(interrupt_action(A)) )).

% interrupt_action.rel_eq
tff(fact_471_sup_OboundedE,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B3: A,C3: A,A3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),B3),C3)),A3))
         => ~ ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),A3))
             => ~ pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),C3),A3)) ) ) ) )).

% sup.boundedE
tff(fact_472_case__prod__eta,axiom,(
    ! [I2: $tType,H: $tType,G: $tType,F9: fun(product_prod(G,H),I2)] : aa(fun(G,fun(H,I2)),fun(product_prod(G,H),I2),product_case_prod(G,H,I2),aa(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,I2)),aa(fun(fun(H,product_prod(G,H)),fun(H,I2)),fun(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,I2))),combb(fun(H,product_prod(G,H)),fun(H,I2),G),aa(fun(product_prod(G,H),I2),fun(fun(H,product_prod(G,H)),fun(H,I2)),combb(product_prod(G,H),I2,H),F9)),product_Pair(G,H))) = F9 )).

% case_prod_eta
tff(fact_473_interrupt__action_Osize_I4_J,axiom,(
    ! [T: $tType,X11: T,X12: bool] : size_size(interrupt_action(T),interr5885539089632487139rupted(T,X11,X12)) = suc(zero_zero(nat)) )).

% interrupt_action.size(4)
tff(fact_474_sup_OboundedI,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B3: A,A3: A,C3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),A3))
         => ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),C3),A3))
           => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),aa(A,A,aa(A,fun(A,A),sup_sup(A),B3),C3)),A3)) ) ) ) )).

% sup.boundedI
tff(fact_475_image__image,axiom,(
    ! [H: $tType,G: $tType,I2: $tType,F9: fun(H,G),G6: fun(I2,H),A6: set(I2)] : aa(set(H),set(G),aa(fun(H,G),fun(set(H),set(G)),image2(H,G),F9),aa(set(I2),set(H),aa(fun(I2,H),fun(set(I2),set(H)),image2(I2,H),G6),A6)) = aa(set(I2),set(G),aa(fun(I2,G),fun(set(I2),set(G)),image2(I2,G),aa(fun(I2,H),fun(I2,G),aa(fun(H,G),fun(fun(I2,H),fun(I2,G)),combb(H,G,I2),F9),G6)),A6) )).

% image_image
tff(fact_476_snd__diag__snd,axiom,(
    ! [H: $tType,G: $tType] : aa(fun(product_prod(G,H),product_prod(H,H)),fun(product_prod(G,H),H),aa(fun(product_prod(H,H),H),fun(fun(product_prod(G,H),product_prod(H,H)),fun(product_prod(G,H),H)),comp(product_prod(H,H),H,product_prod(G,H)),product_snd(H,H)),aa(fun(product_prod(G,H),H),fun(product_prod(G,H),product_prod(H,H)),aa(fun(H,product_prod(H,H)),fun(fun(product_prod(G,H),H),fun(product_prod(G,H),product_prod(H,H))),comp(H,product_prod(H,H),product_prod(G,H)),aa(fun(H,H),fun(H,product_prod(H,H)),aa(fun(H,fun(H,product_prod(H,H))),fun(fun(H,H),fun(H,product_prod(H,H))),combs(H,H,product_prod(H,H)),product_Pair(H,H)),combi(H))),product_snd(G,H))) = product_snd(G,H) )).

% snd_diag_snd
tff(fact_477_fst__diag__fst,axiom,(
    ! [H: $tType,G: $tType] : aa(fun(product_prod(G,H),product_prod(G,G)),fun(product_prod(G,H),G),aa(fun(product_prod(G,G),G),fun(fun(product_prod(G,H),product_prod(G,G)),fun(product_prod(G,H),G)),comp(product_prod(G,G),G,product_prod(G,H)),product_fst(G,G)),aa(fun(product_prod(G,H),G),fun(product_prod(G,H),product_prod(G,G)),aa(fun(G,product_prod(G,G)),fun(fun(product_prod(G,H),G),fun(product_prod(G,H),product_prod(G,G))),comp(G,product_prod(G,G),product_prod(G,H)),aa(fun(G,G),fun(G,product_prod(G,G)),aa(fun(G,fun(G,product_prod(G,G))),fun(fun(G,G),fun(G,product_prod(G,G))),combs(G,G,product_prod(G,G)),product_Pair(G,G)),combi(G))),product_fst(G,H))) = product_fst(G,H) )).

% fst_diag_fst
tff(fact_478_case__prodE2,axiom,(
    ! [B: $tType,A: $tType,C: $tType,Q: fun(A,bool),P: fun(B,fun(C,A)),Z3: product_prod(B,C)] :
      ( pp(aa(A,bool,Q,aa(product_prod(B,C),A,aa(fun(B,fun(C,A)),fun(product_prod(B,C),A),product_case_prod(B,C,A),P),Z3)))
     => ~ ! [X4: B,Y3: C] :
            ( Z3 = aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),X4),Y3)
           => ~ pp(aa(A,bool,Q,aa(C,A,aa(B,fun(C,A),P,X4),Y3))) ) ) )).

% case_prodE2
tff(fact_479_case__prodD,axiom,(
    ! [A: $tType,B: $tType,F3: fun(A,fun(B,bool)),A3: A,B3: B] :
      ( pp(aa(product_prod(A,B),bool,aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),F3),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)))
     => pp(aa(B,bool,aa(A,fun(B,bool),F3,A3),B3)) ) )).

% case_prodD
tff(fact_480_iterate_Opelims,axiom,(
    ! [A: $tType,B: $tType,X3: code_natural,Xa3: fun(B,fun(A,product_prod(B,A))),Xb2: B,Y: fun(A,product_prod(B,A))] :
      ( aa(B,fun(A,product_prod(B,A)),iterate(B,A,X3,Xa3),Xb2) = Y
     => ( accp(product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),iterate_rel(B,A),aa(product_prod(fun(B,fun(A,product_prod(B,A))),B),product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),aa(code_natural,fun(product_prod(fun(B,fun(A,product_prod(B,A))),B),product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B))),product_Pair(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),X3),aa(B,product_prod(fun(B,fun(A,product_prod(B,A))),B),aa(fun(B,fun(A,product_prod(B,A))),fun(B,product_prod(fun(B,fun(A,product_prod(B,A))),B)),product_Pair(fun(B,fun(A,product_prod(B,A))),B),Xa3),Xb2)))
       => ~ ( ( ( X3 = zero_zero(code_natural)
               => Y = aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),Xb2) )
              & ( X3 != zero_zero(code_natural)
               => Y = aa(fun(B,fun(A,product_prod(B,A))),fun(A,product_prod(B,A)),aa(fun(A,product_prod(B,A)),fun(fun(B,fun(A,product_prod(B,A))),fun(A,product_prod(B,A))),product_scomp(A,B,A,product_prod(B,A)),aa(B,fun(A,product_prod(B,A)),Xa3,Xb2)),iterate(B,A,minus_minus(code_natural,X3,one_one(code_natural)),Xa3)) ) )
           => ~ accp(product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),iterate_rel(B,A),aa(product_prod(fun(B,fun(A,product_prod(B,A))),B),product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),aa(code_natural,fun(product_prod(fun(B,fun(A,product_prod(B,A))),B),product_prod(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B))),product_Pair(code_natural,product_prod(fun(B,fun(A,product_prod(B,A))),B)),X3),aa(B,product_prod(fun(B,fun(A,product_prod(B,A))),B),aa(fun(B,fun(A,product_prod(B,A))),fun(B,product_prod(fun(B,fun(A,product_prod(B,A))),B)),product_Pair(fun(B,fun(A,product_prod(B,A))),B),Xa3),Xb2))) ) ) ) )).

% iterate.pelims
tff(fact_481_sup_Oorder__iff,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B3: A,A3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),A3))
        <=> A3 = aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3) ) ) )).

% sup.order_iff
tff(fact_482_top__empty__eq2,axiom,(
    ! [B: $tType,A: $tType,X5: A,Xa2: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),top_top(fun(A,fun(B,bool))),X5),Xa2))
    <=> pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X5),Xa2)),top_top(set(product_prod(A,B))))) ) )).

% top_empty_eq2
tff(fact_483_conditional__action_Omap__cong__pred,axiom,(
    ! [H: $tType,G: $tType,X9: conditional_action(G),Ya: conditional_action(G),F9: fun(G,H),G6: fun(G,H)] :
      ( X9 = Ya
     => ( pp(aa(conditional_action(G),bool,aa(fun(G,bool),fun(conditional_action(G),bool),condit606476673698705123action(G),aa(fun(G,H),fun(G,bool),aa(fun(G,fun(H,bool)),fun(fun(G,H),fun(G,bool)),combs(G,H,bool),aa(fun(G,H),fun(G,fun(H,bool)),aa(fun(H,fun(H,bool)),fun(fun(G,H),fun(G,fun(H,bool))),combb(H,fun(H,bool),G),fequal(H)),F9)),G6)),Ya))
       => aa(conditional_action(G),conditional_action(H),aa(fun(G,H),fun(conditional_action(G),conditional_action(H)),condit198635377858011928action(G,H),F9),X9) = aa(conditional_action(G),conditional_action(H),aa(fun(G,H),fun(conditional_action(G),conditional_action(H)),condit198635377858011928action(G,H),G6),Ya) ) ) )).

% conditional_action.map_cong_pred
tff(fact_484_sup_Ocobounded1,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,B3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3))) ) )).

% sup.cobounded1
tff(fact_485_case__prod__Pair__iden,axiom,(
    ! [B: $tType,A: $tType,P2: product_prod(A,B)] : aa(product_prod(A,B),product_prod(A,B),aa(fun(A,fun(B,product_prod(A,B))),fun(product_prod(A,B),product_prod(A,B)),product_case_prod(A,B,product_prod(A,B)),product_Pair(A,B)),P2) = P2 )).

% case_prod_Pair_iden
tff(fact_486_wait__set__action_Odistinct_I27_J,axiom,(
    ! [W: $tType,T: $tType,X42: T] : wait_set_WakeUp(T,W,X42) != wait_set_WokenUp(T,W) )).

% wait_set_action.distinct(27)
tff(fact_487_sup_Ocobounded2,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B3: A,A3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3))) ) )).

% sup.cobounded2
tff(fact_488_wait__set__action_Odistinct_I28_J,axiom,(
    ! [W: $tType,T: $tType,X42: T] : wait_set_WokenUp(T,W) != wait_set_WakeUp(T,W,X42) )).

% wait_set_action.distinct(28)
tff(fact_489_sup_Oabsorb__iff1,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [B3: A,A3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),B3),A3))
        <=> aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3) = A3 ) ) )).

% sup.absorb_iff1
tff(fact_490_mem__case__prodI2,axiom,(
    ! [C: $tType,B: $tType,A: $tType,P2: product_prod(A,B),Z3: C,C3: fun(A,fun(B,set(C)))] :
      ( ! [A2: A,B2: B] :
          ( P2 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A2),B2)
         => pp(aa(set(C),bool,aa(C,fun(set(C),bool),member(C),Z3),aa(B,set(C),aa(A,fun(B,set(C)),C3,A2),B2))) )
     => pp(aa(set(C),bool,aa(C,fun(set(C),bool),member(C),Z3),aa(product_prod(A,B),set(C),aa(fun(A,fun(B,set(C))),fun(product_prod(A,B),set(C)),product_case_prod(A,B,set(C)),C3),P2))) ) )).

% mem_case_prodI2
tff(fact_491_interrupt__action_Opred__True,axiom,(
    ! [G: $tType,X5: interrupt_action(G)] : pp(aa(interrupt_action(G),bool,interr8158014761281175971action(G,aa(bool,fun(G,bool),combk(bool,G),fTrue)),X5)) )).

% interrupt_action.pred_True
tff(fact_492_sup_Oabsorb__iff2,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [A3: A,B3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),A3),B3))
        <=> aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3) = B3 ) ) )).

% sup.absorb_iff2
tff(fact_493_finite__imageI,axiom,(
    ! [B: $tType,A: $tType,F6: set(A),H2: fun(A,B)] :
      ( pp(aa(set(A),bool,finite_finite(A),F6))
     => pp(aa(set(B),bool,finite_finite(B),aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),H2),F6))) ) )).

% finite_imageI
tff(fact_494_interrupt__action_Osimps_I3_J,axiom,(
    ! [T: $tType,X32: T,Y32: T] :
      ( interr7976201102587534891errupt(T,X32) = interr7976201102587534891errupt(T,Y32)
    <=> X32 = Y32 ) )).

% interrupt_action.simps(3)
tff(fact_495_sup_OcoboundedI1,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [C3: A,A3: A,B3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),C3),A3))
         => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),C3),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3))) ) ) )).

% sup.coboundedI1
tff(fact_496_interrupt__action_Osimps_I2_J,axiom,(
    ! [T: $tType,X2: T,Y2: T] :
      ( interrupt_Interrupt(T,X2) = interrupt_Interrupt(T,Y2)
    <=> X2 = Y2 ) )).

% interrupt_action.simps(2)
tff(fact_497_sup_OcoboundedI2,axiom,(
    ! [A: $tType] :
      ( semilattice_sup(A)
     => ! [C3: A,B3: A,A3: A] :
          ( pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),C3),B3))
         => pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),C3),aa(A,A,aa(A,fun(A,A),sup_sup(A),A3),B3))) ) ) )).

% sup.coboundedI2
tff(fact_498_pred__equals__eq2,axiom,(
    ! [B: $tType,A: $tType,R: set(product_prod(A,B)),S3: set(product_prod(A,B))] :
      ( ! [X6: A,Xa6: B] :
          ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X6),Xa6)),R))
        <=> pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X6),Xa6)),S3)) )
    <=> R = S3 ) )).

% pred_equals_eq2
tff(fact_499_wait__set__action_Odistinct_I23_J,axiom,(
    ! [W: $tType,T: $tType,X32: W] : wait_set_NotifyAll(W,T,X32) != wait_set_WokenUp(T,W) )).

% wait_set_action.distinct(23)
tff(fact_500_Collect__case__prod__Grp__in,axiom,(
    ! [B: $tType,A: $tType,Z3: product_prod(A,B),A5: set(A),F3: fun(A,B)] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),Z3),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),bNF_Grp(A,B,A5,F3)))))
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),aa(product_prod(A,B),A,product_fst(A,B),Z3)),A5)) ) )).

% Collect_case_prod_Grp_in
tff(fact_501_fold__atLeastAtMost__nat_Opsimps,axiom,(
    ! [A: $tType,F3: fun(nat,fun(A,A)),A3: nat,B3: nat,Acc2: A] :
      ( accp(product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),set_fo1817059534552279752at_rel(A),aa(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),aa(fun(nat,fun(A,A)),fun(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A)))),product_Pair(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),F3),aa(product_prod(nat,A),product_prod(nat,product_prod(nat,A)),aa(nat,fun(product_prod(nat,A),product_prod(nat,product_prod(nat,A))),product_Pair(nat,product_prod(nat,A)),A3),aa(A,product_prod(nat,A),aa(nat,fun(A,product_prod(nat,A)),product_Pair(nat,A),B3),Acc2))))
     => ( ( pp(ord_less(nat,B3,A3))
         => set_fo6178422350223883121st_nat(A,F3,A3,B3,Acc2) = Acc2 )
        & ( ~ pp(ord_less(nat,B3,A3))
         => set_fo6178422350223883121st_nat(A,F3,A3,B3,Acc2) = set_fo6178422350223883121st_nat(A,F3,plus_plus(nat,A3,one_one(nat)),B3,aa(A,A,aa(nat,fun(A,A),F3,A3),Acc2)) ) ) ) )).

% fold_atLeastAtMost_nat.psimps
tff(fact_502_prod__fun__imageE,axiom,(
    ! [B: $tType,A: $tType,D: $tType,C: $tType,C3: product_prod(A,B),F3: fun(C,A),G3: fun(D,B),R: set(product_prod(C,D))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),C3),aa(set(product_prod(C,D)),set(product_prod(A,B)),aa(fun(product_prod(C,D),product_prod(A,B)),fun(set(product_prod(C,D)),set(product_prod(A,B))),image2(product_prod(C,D),product_prod(A,B)),product_map_prod(C,A,D,B,F3,G3)),R)))
     => ~ ! [X4: C,Y3: D] :
            ( C3 = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),aa(C,A,F3,X4)),aa(D,B,G3,Y3))
           => ~ pp(aa(set(product_prod(C,D)),bool,aa(product_prod(C,D),fun(set(product_prod(C,D)),bool),member(product_prod(C,D)),aa(D,product_prod(C,D),aa(C,fun(D,product_prod(C,D)),product_Pair(C,D),X4),Y3)),R)) ) ) )).

% prod_fun_imageE
tff(fact_503_fst__def,axiom,(
    ! [H: $tType,G: $tType,Prod3: product_prod(G,H)] : aa(product_prod(G,H),G,product_fst(G,H),Prod3) = aa(product_prod(G,H),G,aa(fun(G,fun(H,G)),fun(product_prod(G,H),G),product_case_prod(G,H,G),combk(G,H)),Prod3) )).

% fst_def
tff(fact_504_conditional__action_Orel__eq__onp,axiom,(
    ! [A: $tType,P: fun(A,bool)] : aa(fun(A,fun(A,bool)),fun(conditional_action(A),fun(conditional_action(A),bool)),condit4280512358590153947action(A,A),bNF_eq_onp(A,P)) = bNF_eq_onp(conditional_action(A),aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),P)) )).

% conditional_action.rel_eq_onp
tff(fact_505_Inf_OINF__cong,axiom,(
    ! [A: $tType,B: $tType,A5: set(B),B6: set(B),C6: fun(B,A),D4: fun(B,A),Inf: fun(set(A),A)] :
      ( A5 = B6
     => ( ! [X4: B] :
            ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X4),B6))
           => aa(B,A,C6,X4) = aa(B,A,D4,X4) )
       => aa(set(A),A,Inf,aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),C6),A5)) = aa(set(A),A,Inf,aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),D4),B6)) ) ) )).

% Inf.INF_cong
tff(fact_506_fst__diag__snd,axiom,(
    ! [H: $tType,G: $tType] : aa(fun(product_prod(G,H),product_prod(H,H)),fun(product_prod(G,H),H),aa(fun(product_prod(H,H),H),fun(fun(product_prod(G,H),product_prod(H,H)),fun(product_prod(G,H),H)),comp(product_prod(H,H),H,product_prod(G,H)),product_fst(H,H)),aa(fun(product_prod(G,H),H),fun(product_prod(G,H),product_prod(H,H)),aa(fun(H,product_prod(H,H)),fun(fun(product_prod(G,H),H),fun(product_prod(G,H),product_prod(H,H))),comp(H,product_prod(H,H),product_prod(G,H)),aa(fun(H,H),fun(H,product_prod(H,H)),aa(fun(H,fun(H,product_prod(H,H))),fun(fun(H,H),fun(H,product_prod(H,H))),combs(H,H,product_prod(H,H)),product_Pair(H,H)),combi(H))),product_snd(G,H))) = product_snd(G,H) )).

% fst_diag_snd
tff(fact_507_snd__diag__fst,axiom,(
    ! [H: $tType,G: $tType] : aa(fun(product_prod(G,H),product_prod(G,G)),fun(product_prod(G,H),G),aa(fun(product_prod(G,G),G),fun(fun(product_prod(G,H),product_prod(G,G)),fun(product_prod(G,H),G)),comp(product_prod(G,G),G,product_prod(G,H)),product_snd(G,G)),aa(fun(product_prod(G,H),G),fun(product_prod(G,H),product_prod(G,G)),aa(fun(G,product_prod(G,G)),fun(fun(product_prod(G,H),G),fun(product_prod(G,H),product_prod(G,G))),comp(G,product_prod(G,G),product_prod(G,H)),aa(fun(G,G),fun(G,product_prod(G,G)),aa(fun(G,fun(G,product_prod(G,G))),fun(fun(G,G),fun(G,product_prod(G,G))),combs(G,G,product_prod(G,G)),product_Pair(G,G)),combi(G))),product_fst(G,H))) = product_fst(G,H) )).

% snd_diag_fst
tff(fact_508_snd__def,axiom,(
    ! [G: $tType,H: $tType,Prod3: product_prod(H,G)] : aa(product_prod(H,G),G,product_snd(H,G),Prod3) = aa(product_prod(H,G),G,aa(fun(H,fun(G,G)),fun(product_prod(H,G),G),product_case_prod(H,G,G),aa(fun(G,G),fun(H,fun(G,G)),combk(fun(G,G),H),combi(G))),Prod3) )).

% snd_def
tff(fact_509_new__thread__action_Oinject_I2_J,axiom,(
    ! [X: $tType,M: $tType,T: $tType,X21: T,X22: bool,Y21: T,Y22: bool] :
      ( new_th4503388622997288770Exists(T,X,M,X21,X22) = new_th4503388622997288770Exists(T,X,M,Y21,Y22)
    <=> ( X21 = Y21
        & ( pp(X22)
        <=> pp(Y22) ) ) ) )).

% new_thread_action.inject(2)
tff(fact_510_Sup_OSUP__cong,axiom,(
    ! [A: $tType,B: $tType,A5: set(B),B6: set(B),C6: fun(B,A),D4: fun(B,A),Sup: fun(set(A),A)] :
      ( A5 = B6
     => ( ! [X4: B] :
            ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X4),B6))
           => aa(B,A,C6,X4) = aa(B,A,D4,X4) )
       => aa(set(A),A,Sup,aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),C6),A5)) = aa(set(A),A,Sup,aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),D4),B6)) ) ) )).

% Sup.SUP_cong
tff(fact_511_conditional__action_Oleft__total__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( left_total(A,B,R)
     => left_total(conditional_action(A),conditional_action(B),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R)) ) )).

% conditional_action.left_total_rel
tff(fact_512_sndOp__def,axiom,(
    ! [A: $tType,B: $tType,C: $tType,P: fun(C,fun(A,bool)),Q: fun(A,fun(B,bool)),Ac2: product_prod(C,B)] : aa(product_prod(C,B),product_prod(A,B),bNF_sndOp(C,A,B,P,Q),Ac2) = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),bNF_pick_middlep(C,A,B,P,Q,aa(product_prod(C,B),C,product_fst(C,B),Ac2),aa(product_prod(C,B),B,product_snd(C,B),Ac2))),aa(product_prod(C,B),B,product_snd(C,B),Ac2)) )).

% sndOp_def
tff(fact_513_conditional__action_Oleft__unique__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( left_unique(A,B,R)
     => left_unique(conditional_action(A),conditional_action(B),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R)) ) )).

% conditional_action.left_unique_rel
tff(fact_514_prod_Omap__comp,axiom,(
    ! [D: $tType,F: $tType,E: $tType,C: $tType,B: $tType,A: $tType,G1: fun(C,E),G22: fun(D,F),F1: fun(A,C),F22: fun(B,D),V: product_prod(A,B)] : aa(product_prod(C,D),product_prod(E,F),product_map_prod(C,E,D,F,G1,G22),aa(product_prod(A,B),product_prod(C,D),product_map_prod(A,C,B,D,F1,F22),V)) = aa(product_prod(A,B),product_prod(E,F),product_map_prod(A,E,B,F,aa(fun(A,C),fun(A,E),aa(fun(C,E),fun(fun(A,C),fun(A,E)),comp(C,E,A),G1),F1),aa(fun(B,D),fun(B,F),aa(fun(D,F),fun(fun(B,D),fun(B,F)),comp(D,F,B),G22),F22)),V) )).

% prod.map_comp
tff(fact_515_wait__set__action_Odistinct_I24_J,axiom,(
    ! [T: $tType,W: $tType,X32: W] : wait_set_WokenUp(T,W) != wait_set_NotifyAll(W,T,X32) )).

% wait_set_action.distinct(24)
tff(fact_516_fold__atLeastAtMost__nat_Opelims,axiom,(
    ! [A: $tType,X3: fun(nat,fun(A,A)),Xa3: nat,Xb2: nat,Xc2: A,Y: A] :
      ( set_fo6178422350223883121st_nat(A,X3,Xa3,Xb2,Xc2) = Y
     => ( accp(product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),set_fo1817059534552279752at_rel(A),aa(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),aa(fun(nat,fun(A,A)),fun(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A)))),product_Pair(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),X3),aa(product_prod(nat,A),product_prod(nat,product_prod(nat,A)),aa(nat,fun(product_prod(nat,A),product_prod(nat,product_prod(nat,A))),product_Pair(nat,product_prod(nat,A)),Xa3),aa(A,product_prod(nat,A),aa(nat,fun(A,product_prod(nat,A)),product_Pair(nat,A),Xb2),Xc2))))
       => ~ ( ( ( pp(ord_less(nat,Xb2,Xa3))
               => Y = Xc2 )
              & ( ~ pp(ord_less(nat,Xb2,Xa3))
               => Y = set_fo6178422350223883121st_nat(A,X3,plus_plus(nat,Xa3,one_one(nat)),Xb2,aa(A,A,aa(nat,fun(A,A),X3,Xa3),Xc2)) ) )
           => ~ accp(product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),set_fo1817059534552279752at_rel(A),aa(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),aa(fun(nat,fun(A,A)),fun(product_prod(nat,product_prod(nat,A)),product_prod(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A)))),product_Pair(fun(nat,fun(A,A)),product_prod(nat,product_prod(nat,A))),X3),aa(product_prod(nat,A),product_prod(nat,product_prod(nat,A)),aa(nat,fun(product_prod(nat,A),product_prod(nat,product_prod(nat,A))),product_Pair(nat,product_prod(nat,A)),Xa3),aa(A,product_prod(nat,A),aa(nat,fun(A,product_prod(nat,A)),product_Pair(nat,A),Xb2),Xc2)))) ) ) ) )).

% fold_atLeastAtMost_nat.pelims
tff(fact_517_all__subset__image,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),A5: set(B),P: fun(set(A),bool)] :
      ( ! [B8: set(A)] :
          ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),B8),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)))
         => pp(aa(set(A),bool,P,B8)) )
    <=> ! [B8: set(B)] :
          ( pp(aa(set(B),bool,aa(set(B),fun(set(B),bool),ord_less_eq(set(B)),B8),A5))
         => pp(aa(set(A),bool,P,aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),B8))) ) ) )).

% all_subset_image
tff(fact_518_conditional__action_Ocase__distrib,axiom,(
    ! [H: $tType,G: $tType,I2: $tType,H3: fun(H,G),F12: fun(I2,H),F23: H,Conditional_action: conditional_action(I2)] : aa(H,G,H3,aa(conditional_action(I2),H,aa(H,fun(conditional_action(I2),H),aa(fun(I2,H),fun(H,fun(conditional_action(I2),H)),condit2152691216506315636action(I2,H),F12),F23),Conditional_action)) = aa(conditional_action(I2),G,aa(G,fun(conditional_action(I2),G),aa(fun(I2,G),fun(G,fun(conditional_action(I2),G)),condit2152691216506315636action(I2,G),aa(fun(I2,H),fun(I2,G),aa(fun(H,G),fun(fun(I2,H),fun(I2,G)),combb(H,G,I2),H3),F12)),aa(H,G,H3,F23)),Conditional_action) )).

% conditional_action.case_distrib
tff(fact_519_rel__fun__Collect__case__prodD,axiom,(
    ! [C: $tType,D: $tType,B: $tType,A: $tType,A5: fun(A,fun(B,bool)),B6: fun(C,fun(D,bool)),F3: fun(A,C),G3: fun(B,D),X8: set(product_prod(A,B)),X3: product_prod(A,B)] :
      ( pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,A5,B6),F3),G3))
     => ( pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),X8),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),A5))))
       => ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),X3),X8))
         => pp(aa(D,bool,aa(C,fun(D,bool),B6,aa(product_prod(A,B),C,aa(fun(product_prod(A,B),A),fun(product_prod(A,B),C),aa(fun(A,C),fun(fun(product_prod(A,B),A),fun(product_prod(A,B),C)),comp(A,C,product_prod(A,B)),F3),product_fst(A,B)),X3)),aa(product_prod(A,B),D,aa(fun(product_prod(A,B),B),fun(product_prod(A,B),D),aa(fun(B,D),fun(fun(product_prod(A,B),B),fun(product_prod(A,B),D)),comp(B,D,product_prod(A,B)),G3),product_snd(A,B)),X3))) ) ) ) )).

% rel_fun_Collect_case_prodD
tff(fact_520_new__thread__action_Osimps_I3_J,axiom,(
    ! [T: $tType,M: $tType,X: $tType,X11: T,X12: X,X13: M,X21: T,X22: bool] : new_thread_NewThread(T,X,M,X11,X12,X13) != new_th4503388622997288770Exists(T,X,M,X21,X22) )).

% new_thread_action.simps(3)
tff(fact_521_convol__image__vimage2p,axiom,(
    ! [C: $tType,D: $tType,B: $tType,A: $tType,F3: fun(C,A),G3: fun(D,B),R: fun(A,fun(B,bool))] : pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),aa(set(product_prod(C,D)),set(product_prod(A,B)),aa(fun(product_prod(C,D),product_prod(A,B)),fun(set(product_prod(C,D)),set(product_prod(A,B))),image2(product_prod(C,D),product_prod(A,B)),bNF_convol(product_prod(C,D),A,B,aa(fun(product_prod(C,D),C),fun(product_prod(C,D),A),aa(fun(C,A),fun(fun(product_prod(C,D),C),fun(product_prod(C,D),A)),comp(C,A,product_prod(C,D)),F3),product_fst(C,D)),aa(fun(product_prod(C,D),D),fun(product_prod(C,D),B),aa(fun(D,B),fun(fun(product_prod(C,D),D),fun(product_prod(C,D),B)),comp(D,B,product_prod(C,D)),G3),product_snd(C,D)))),aa(fun(product_prod(C,D),bool),set(product_prod(C,D)),collect(product_prod(C,D)),aa(fun(C,fun(D,bool)),fun(product_prod(C,D),bool),product_case_prod(C,D,bool),aa(fun(A,fun(B,bool)),fun(C,fun(D,bool)),bNF_vimage2p(C,A,D,B,bool,F3,G3),R))))),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),R)))) )).

% convol_image_vimage2p
tff(fact_522_eq__onp__top__eq__eq,axiom,(
    ! [A: $tType] : bNF_eq_onp(A,top_top(fun(A,bool))) = fequal(A) )).

% eq_onp_top_eq_eq
tff(fact_523_prod_Osize__gen__o__map,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,F3: fun(C,nat),Fa: fun(D,nat),G3: fun(A,C),Ga: fun(B,D)] : aa(fun(product_prod(A,B),product_prod(C,D)),fun(product_prod(A,B),nat),aa(fun(product_prod(C,D),nat),fun(fun(product_prod(A,B),product_prod(C,D)),fun(product_prod(A,B),nat)),comp(product_prod(C,D),nat,product_prod(A,B)),basic_BNF_size_prod(C,D,F3,Fa)),product_map_prod(A,C,B,D,G3,Ga)) = basic_BNF_size_prod(A,B,aa(fun(A,C),fun(A,nat),aa(fun(C,nat),fun(fun(A,C),fun(A,nat)),comp(C,nat,A),F3),G3),aa(fun(B,D),fun(B,nat),aa(fun(D,nat),fun(fun(B,D),fun(B,nat)),comp(D,nat,B),Fa),Ga)) )).

% prod.size_gen_o_map
tff(fact_524_conditional__action_Orel__conversep,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] : aa(fun(B,fun(A,bool)),fun(conditional_action(B),fun(conditional_action(A),bool)),condit4280512358590153947action(B,A),conversep(A,B,R)) = conversep(conditional_action(A),conditional_action(B),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R)) )).

% conditional_action.rel_conversep
tff(fact_525_relChain__def,axiom,(
    ! [B: $tType,A: $tType] :
      ( ord(B)
     => ! [R2: set(product_prod(A,A)),As2: fun(A,B)] :
          ( bNF_Ca3754400796208372196lChain(A,B,R2,As2)
        <=> ! [I4: A,J2: A] :
              ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),I4),J2)),R2))
             => pp(aa(B,bool,aa(B,fun(B,bool),ord_less_eq(B),aa(A,B,As2,I4)),aa(A,B,As2,J2))) ) ) ) )).

% relChain_def
tff(fact_526_map__prod__def,axiom,(
    ! [G: $tType,I2: $tType,J: $tType,H: $tType,F9: fun(G,I2),G6: fun(H,J)] : product_map_prod(G,I2,H,J,F9,G6) = aa(fun(G,fun(H,product_prod(I2,J))),fun(product_prod(G,H),product_prod(I2,J)),product_case_prod(G,H,product_prod(I2,J)),aa(fun(H,J),fun(G,fun(H,product_prod(I2,J))),aa(fun(G,fun(fun(H,J),fun(H,product_prod(I2,J)))),fun(fun(H,J),fun(G,fun(H,product_prod(I2,J)))),combc(G,fun(H,J),fun(H,product_prod(I2,J))),aa(fun(G,fun(J,product_prod(I2,J))),fun(G,fun(fun(H,J),fun(H,product_prod(I2,J)))),aa(fun(fun(J,product_prod(I2,J)),fun(fun(H,J),fun(H,product_prod(I2,J)))),fun(fun(G,fun(J,product_prod(I2,J))),fun(G,fun(fun(H,J),fun(H,product_prod(I2,J))))),combb(fun(J,product_prod(I2,J)),fun(fun(H,J),fun(H,product_prod(I2,J))),G),combb(J,product_prod(I2,J),H)),aa(fun(G,I2),fun(G,fun(J,product_prod(I2,J))),aa(fun(I2,fun(J,product_prod(I2,J))),fun(fun(G,I2),fun(G,fun(J,product_prod(I2,J)))),combb(I2,fun(J,product_prod(I2,J)),G),product_Pair(I2,J)),F9))),G6)) )).

% map_prod_def
tff(fact_527_Product__Type_Oproduct__def,axiom,(
    ! [G: $tType,H: $tType,A6: set(G),B9: set(H)] : product_product(G,H,A6,B9) = product_Sigma(G,H,A6,aa(set(H),fun(G,set(H)),combk(set(H),G),B9)) )).

% Product_Type.product_def
tff(fact_528_prod_Orel__eq__onp,axiom,(
    ! [A: $tType,B: $tType,P1: fun(A,bool),P22: fun(B,bool)] : basic_rel_prod(A,A,B,B,bNF_eq_onp(A,P1),bNF_eq_onp(B,P22)) = bNF_eq_onp(product_prod(A,B),basic_pred_prod(A,B,P1,P22)) )).

% prod.rel_eq_onp
tff(fact_529_Collect__case__prod__in__rel__leI,axiom,(
    ! [B: $tType,A: $tType,X8: set(product_prod(A,B)),Y5: set(product_prod(A,B))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),X8),Y5))
     => pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),X8),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),fun_in_rel(A,B,Y5))))) ) )).

% Collect_case_prod_in_rel_leI
tff(fact_530_pred__subset__eq2,axiom,(
    ! [H: $tType,G: $tType,R3: set(product_prod(G,H)),S4: set(product_prod(G,H))] :
      ( pp(aa(fun(G,fun(H,bool)),bool,aa(fun(G,fun(H,bool)),fun(fun(G,fun(H,bool)),bool),ord_less_eq(fun(G,fun(H,bool))),aa(set(product_prod(G,H)),fun(G,fun(H,bool)),aa(fun(G,fun(set(product_prod(G,H)),fun(H,bool))),fun(set(product_prod(G,H)),fun(G,fun(H,bool))),combc(G,set(product_prod(G,H)),fun(H,bool)),aa(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool))),aa(fun(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool))),fun(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool)))),combb(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool)),G),combc(H,set(product_prod(G,H)),bool)),aa(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool))),aa(fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),fun(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool)))),combb(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool)),G),aa(fun(product_prod(G,H),fun(set(product_prod(G,H)),bool)),fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),combb(product_prod(G,H),fun(set(product_prod(G,H)),bool),H),member(product_prod(G,H)))),product_Pair(G,H)))),R3)),aa(set(product_prod(G,H)),fun(G,fun(H,bool)),aa(fun(G,fun(set(product_prod(G,H)),fun(H,bool))),fun(set(product_prod(G,H)),fun(G,fun(H,bool))),combc(G,set(product_prod(G,H)),fun(H,bool)),aa(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool))),aa(fun(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool))),fun(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool)))),combb(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool)),G),combc(H,set(product_prod(G,H)),bool)),aa(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool))),aa(fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),fun(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool)))),combb(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool)),G),aa(fun(product_prod(G,H),fun(set(product_prod(G,H)),bool)),fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),combb(product_prod(G,H),fun(set(product_prod(G,H)),bool),H),member(product_prod(G,H)))),product_Pair(G,H)))),S4)))
    <=> pp(aa(set(product_prod(G,H)),bool,aa(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool),ord_less_eq(set(product_prod(G,H))),R3),S4)) ) )).

% pred_subset_eq2
tff(fact_531_wait__set__action_Odistinct_I17_J,axiom,(
    ! [W: $tType,T: $tType,X2: W] : wait_set_Notify(W,T,X2) != wait_set_WokenUp(T,W) )).

% wait_set_action.distinct(17)
tff(fact_532_rel__funI,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A5: fun(A,fun(B,bool)),B6: fun(C,fun(D,bool)),F3: fun(A,C),G3: fun(B,D)] :
      ( ! [X4: A,Y3: B] :
          ( pp(aa(B,bool,aa(A,fun(B,bool),A5,X4),Y3))
         => pp(aa(D,bool,aa(C,fun(D,bool),B6,aa(A,C,F3,X4)),aa(B,D,G3,Y3))) )
     => pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,A5,B6),F3),G3)) ) )).

% rel_funI
tff(fact_533_prod__filter__assoc,axiom,(
    ! [G: $tType,H: $tType,I2: $tType,F10: filter(G),G7: filter(H),H4: filter(I2)] : prod_filter(product_prod(G,H),I2,prod_filter(G,H,F10,G7),H4) = filtermap(product_prod(G,product_prod(H,I2)),product_prod(product_prod(G,H),I2),aa(fun(G,fun(product_prod(H,I2),product_prod(product_prod(G,H),I2))),fun(product_prod(G,product_prod(H,I2)),product_prod(product_prod(G,H),I2)),product_case_prod(G,product_prod(H,I2),product_prod(product_prod(G,H),I2)),aa(fun(G,fun(H,fun(I2,product_prod(product_prod(G,H),I2)))),fun(G,fun(product_prod(H,I2),product_prod(product_prod(G,H),I2))),aa(fun(fun(H,fun(I2,product_prod(product_prod(G,H),I2))),fun(product_prod(H,I2),product_prod(product_prod(G,H),I2))),fun(fun(G,fun(H,fun(I2,product_prod(product_prod(G,H),I2)))),fun(G,fun(product_prod(H,I2),product_prod(product_prod(G,H),I2)))),combb(fun(H,fun(I2,product_prod(product_prod(G,H),I2))),fun(product_prod(H,I2),product_prod(product_prod(G,H),I2)),G),product_case_prod(H,I2,product_prod(product_prod(G,H),I2))),aa(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(I2,product_prod(product_prod(G,H),I2)))),aa(fun(fun(H,product_prod(G,H)),fun(H,fun(I2,product_prod(product_prod(G,H),I2)))),fun(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(I2,product_prod(product_prod(G,H),I2))))),combb(fun(H,product_prod(G,H)),fun(H,fun(I2,product_prod(product_prod(G,H),I2))),G),aa(fun(product_prod(G,H),fun(I2,product_prod(product_prod(G,H),I2))),fun(fun(H,product_prod(G,H)),fun(H,fun(I2,product_prod(product_prod(G,H),I2)))),combb(product_prod(G,H),fun(I2,product_prod(product_prod(G,H),I2)),H),product_Pair(product_prod(G,H),I2))),product_Pair(G,H)))),prod_filter(G,product_prod(H,I2),F10,prod_filter(H,I2,G7,H4))) )).

% prod_filter_assoc
tff(fact_534_rel__fun__iff__leq__vimage2p,axiom,(
    ! [B: $tType,A: $tType,D: $tType,C: $tType,R: fun(A,fun(B,bool)),S3: fun(C,fun(D,bool)),F3: fun(A,C),G3: fun(B,D)] :
      ( pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,R,S3),F3),G3))
    <=> pp(aa(fun(A,fun(B,bool)),bool,aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),bool),ord_less_eq(fun(A,fun(B,bool))),R),aa(fun(C,fun(D,bool)),fun(A,fun(B,bool)),bNF_vimage2p(A,C,B,D,bool,F3,G3),S3))) ) )).

% rel_fun_iff_leq_vimage2p
tff(fact_535_conditional__action_Oset__cases,axiom,(
    ! [T: $tType,E3: T,A3: conditional_action(T)] :
      ( pp(aa(set(T),bool,aa(T,fun(set(T),bool),member(T),E3),aa(conditional_action(T),set(T),condit2393454222984209554action(T),A3)))
     => A3 = aa(T,conditional_action(T),conditional_Join(T),E3) ) )).

% conditional_action.set_cases
tff(fact_536_predicate2D__vimage2p,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R: fun(A,fun(B,bool)),F3: fun(A,C),G3: fun(B,D),S3: fun(C,fun(D,bool)),X3: A,Y: B] :
      ( pp(aa(fun(A,fun(B,bool)),bool,aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),bool),ord_less_eq(fun(A,fun(B,bool))),R),aa(fun(C,fun(D,bool)),fun(A,fun(B,bool)),bNF_vimage2p(A,C,B,D,bool,F3,G3),S3)))
     => ( pp(aa(B,bool,aa(A,fun(B,bool),R,X3),Y))
       => pp(aa(D,bool,aa(C,fun(D,bool),S3,aa(A,C,F3,X3)),aa(B,D,G3,Y))) ) ) )).

% predicate2D_vimage2p
tff(fact_537_wait__set__action_Odistinct_I18_J,axiom,(
    ! [T: $tType,W: $tType,X2: W] : wait_set_WokenUp(T,W) != wait_set_Notify(W,T,X2) )).

% wait_set_action.distinct(18)
tff(fact_538_rel__funD,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,A5: fun(A,fun(B,bool)),B6: fun(C,fun(D,bool)),F3: fun(A,C),G3: fun(B,D),X3: A,Y: B] :
      ( pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,A5,B6),F3),G3))
     => ( pp(aa(B,bool,aa(A,fun(B,bool),A5,X3),Y))
       => pp(aa(D,bool,aa(C,fun(D,bool),B6,aa(A,C,F3,X3)),aa(B,D,G3,Y))) ) ) )).

% rel_funD
tff(fact_539_UN__extend__simps_I10_J,axiom,(
    ! [G: $tType,I2: $tType,H: $tType,B9: fun(I2,set(G)),F9: fun(H,I2),A6: set(H)] : complete_Sup_Sup(set(G),aa(set(H),set(set(G)),aa(fun(H,set(G)),fun(set(H),set(set(G))),image2(H,set(G)),aa(fun(H,I2),fun(H,set(G)),aa(fun(I2,set(G)),fun(fun(H,I2),fun(H,set(G))),combb(I2,set(G),H),B9),F9)),A6)) = complete_Sup_Sup(set(G),aa(set(I2),set(set(G)),aa(fun(I2,set(G)),fun(set(I2),set(set(G))),image2(I2,set(G)),B9),aa(set(H),set(I2),aa(fun(H,I2),fun(set(H),set(I2)),image2(H,I2),F9),A6))) )).

% UN_extend_simps(10)
tff(fact_540_conditional__action_Opred__mono,axiom,(
    ! [A: $tType,P: fun(A,bool),Pa: fun(A,bool)] :
      ( pp(aa(fun(A,bool),bool,aa(fun(A,bool),fun(fun(A,bool),bool),ord_less_eq(fun(A,bool)),P),Pa))
     => pp(aa(fun(conditional_action(A),bool),bool,aa(fun(conditional_action(A),bool),fun(fun(conditional_action(A),bool),bool),ord_less_eq(fun(conditional_action(A),bool)),aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),P)),aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),Pa))) ) )).

% conditional_action.pred_mono
tff(fact_541_vimage2pI,axiom,(
    ! [C: $tType,B: $tType,A: $tType,D: $tType,R: fun(A,fun(B,bool)),F3: fun(C,A),X3: C,G3: fun(D,B),Y: D] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),R,aa(C,A,F3,X3)),aa(D,B,G3,Y)))
     => pp(aa(D,bool,aa(C,fun(D,bool),aa(fun(A,fun(B,bool)),fun(C,fun(D,bool)),bNF_vimage2p(C,A,D,B,bool,F3,G3),R),X3),Y)) ) )).

% vimage2pI
tff(fact_542_image__empty,axiom,(
    ! [B: $tType,A: $tType,F3: fun(B,A)] : aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),bot_bot(set(B))) = bot_bot(set(A)) )).

% image_empty
tff(fact_543_iter_H_Ocases,axiom,(
    ! [A: $tType] :
      ( quickcheck_random(A)
     => ! [X3: product_prod(itself(A),product_prod(code_natural,product_prod(code_natural,product_prod(code_natural,code_natural))))] :
          ~ ! [T5: itself(A),Nrandom: code_natural,Sz: code_natural,Seed: product_prod(code_natural,code_natural)] : X3 != aa(product_prod(code_natural,product_prod(code_natural,product_prod(code_natural,code_natural))),product_prod(itself(A),product_prod(code_natural,product_prod(code_natural,product_prod(code_natural,code_natural)))),aa(itself(A),fun(product_prod(code_natural,product_prod(code_natural,product_prod(code_natural,code_natural))),product_prod(itself(A),product_prod(code_natural,product_prod(code_natural,product_prod(code_natural,code_natural))))),product_Pair(itself(A),product_prod(code_natural,product_prod(code_natural,product_prod(code_natural,code_natural)))),T5),aa(product_prod(code_natural,product_prod(code_natural,code_natural)),product_prod(code_natural,product_prod(code_natural,product_prod(code_natural,code_natural))),aa(code_natural,fun(product_prod(code_natural,product_prod(code_natural,code_natural)),product_prod(code_natural,product_prod(code_natural,product_prod(code_natural,code_natural)))),product_Pair(code_natural,product_prod(code_natural,product_prod(code_natural,code_natural))),Nrandom),aa(product_prod(code_natural,code_natural),product_prod(code_natural,product_prod(code_natural,code_natural)),aa(code_natural,fun(product_prod(code_natural,code_natural),product_prod(code_natural,product_prod(code_natural,code_natural))),product_Pair(code_natural,product_prod(code_natural,code_natural)),Sz),Seed))) ) )).

% iter'.cases
tff(fact_544_rel__fun__mono,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,X8: fun(A,fun(B,bool)),A5: fun(C,fun(D,bool)),F3: fun(A,C),G3: fun(B,D),Y5: fun(A,fun(B,bool)),B6: fun(C,fun(D,bool))] :
      ( pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,X8,A5),F3),G3))
     => ( ! [X4: A,Y3: B] :
            ( pp(aa(B,bool,aa(A,fun(B,bool),Y5,X4),Y3))
           => pp(aa(B,bool,aa(A,fun(B,bool),X8,X4),Y3)) )
       => ( ! [X4: C,Y3: D] :
              ( pp(aa(D,bool,aa(C,fun(D,bool),A5,X4),Y3))
             => pp(aa(D,bool,aa(C,fun(D,bool),B6,X4),Y3)) )
         => pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,Y5,B6),F3),G3)) ) ) ) )).

% rel_fun_mono
tff(fact_545_conditional__action_Orec__o__map,axiom,(
    ! [G: $tType,I2: $tType,H: $tType,G6: fun(I2,H),Ga2: H,F9: fun(G,I2)] : aa(fun(conditional_action(G),conditional_action(I2)),fun(conditional_action(G),H),aa(fun(conditional_action(I2),H),fun(fun(conditional_action(G),conditional_action(I2)),fun(conditional_action(G),H)),comp(conditional_action(I2),H,conditional_action(G)),aa(H,fun(conditional_action(I2),H),aa(fun(I2,H),fun(H,fun(conditional_action(I2),H)),condit2004826933596026276action(I2,H),G6),Ga2)),aa(fun(G,I2),fun(conditional_action(G),conditional_action(I2)),condit198635377858011928action(G,I2),F9)) = aa(H,fun(conditional_action(G),H),aa(fun(G,H),fun(H,fun(conditional_action(G),H)),condit2004826933596026276action(G,H),aa(fun(G,I2),fun(G,H),aa(fun(I2,H),fun(fun(G,I2),fun(G,H)),combb(I2,H,G),G6),F9)),Ga2) )).

% conditional_action.rec_o_map
tff(fact_546_rel__fun__mono_H,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,Y5: fun(A,fun(B,bool)),X8: fun(A,fun(B,bool)),A5: fun(C,fun(D,bool)),B6: fun(C,fun(D,bool)),F3: fun(A,C),G3: fun(B,D)] :
      ( ! [X4: A,Y3: B] :
          ( pp(aa(B,bool,aa(A,fun(B,bool),Y5,X4),Y3))
         => pp(aa(B,bool,aa(A,fun(B,bool),X8,X4),Y3)) )
     => ( ! [X4: C,Y3: D] :
            ( pp(aa(D,bool,aa(C,fun(D,bool),A5,X4),Y3))
           => pp(aa(D,bool,aa(C,fun(D,bool),B6,X4),Y3)) )
       => ( pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,X8,A5),F3),G3))
         => pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,Y5,B6),F3),G3)) ) ) ) )).

% rel_fun_mono'
tff(fact_547_conditional__action_Oset_I1_J,axiom,(
    ! [T: $tType,X1: T] : aa(conditional_action(T),set(T),condit2393454222984209554action(T),aa(T,conditional_action(T),conditional_Join(T),X1)) = aa(set(T),set(T),aa(T,fun(set(T),set(T)),insert2(T),X1),bot_bot(set(T))) )).

% conditional_action.set(1)
tff(fact_548_fun_Omap__transfer,axiom,(
    ! [A: $tType,B: $tType,D: $tType,G: $tType,F: $tType,Rb2: fun(A,fun(F,bool)),Sd: fun(B,fun(G,bool))] : pp(aa(fun(fun(F,G),fun(fun(D,F),fun(D,G))),bool,aa(fun(fun(A,B),fun(fun(D,A),fun(D,B))),fun(fun(fun(F,G),fun(fun(D,F),fun(D,G))),bool),bNF_rel_fun(fun(A,B),fun(F,G),fun(fun(D,A),fun(D,B)),fun(fun(D,F),fun(D,G)),bNF_rel_fun(A,F,B,G,Rb2,Sd),bNF_rel_fun(fun(D,A),fun(D,F),fun(D,B),fun(D,G),bNF_rel_fun(D,D,A,F,fequal(D),Rb2),bNF_rel_fun(D,D,B,G,fequal(D),Sd))),comp(A,B,D)),comp(F,G,D))) )).

% fun.map_transfer
tff(fact_549_conditional__action_Oinj__map__strong,axiom,(
    ! [B: $tType,A: $tType,X3: conditional_action(A),Xa3: conditional_action(A),F3: fun(A,B),Fa: fun(A,B)] :
      ( ! [Z2: A,Za2: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(conditional_action(A),set(A),condit2393454222984209554action(A),X3)))
         => ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Za2),aa(conditional_action(A),set(A),condit2393454222984209554action(A),Xa3)))
           => ( aa(A,B,F3,Z2) = aa(A,B,Fa,Za2)
             => Z2 = Za2 ) ) )
     => ( aa(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),F3),X3) = aa(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),Fa),Xa3)
       => X3 = Xa3 ) ) )).

% conditional_action.inj_map_strong
tff(fact_550_rtranclp__subset,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool)),S3: fun(A,fun(A,bool))] :
      ( pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),R),S3))
     => ( pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),S3),transitive_rtranclp(A,R)))
       => transitive_rtranclp(A,S3) = transitive_rtranclp(A,R) ) ) )).

% rtranclp_subset
tff(fact_551_conditional__action_Oright__total__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( right_total(A,B,R)
     => right_total(conditional_action(A),conditional_action(B),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R)) ) )).

% conditional_action.right_total_rel
tff(fact_552_rtranclp__mono,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),S: fun(A,fun(A,bool))] :
      ( pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),R2),S))
     => pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),transitive_rtranclp(A,R2)),transitive_rtranclp(A,S))) ) )).

% rtranclp_mono
tff(fact_553_case__prod__beta_H,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,fun(B,C)),X5: product_prod(A,B)] : aa(product_prod(A,B),C,aa(fun(A,fun(B,C)),fun(product_prod(A,B),C),product_case_prod(A,B,C),F3),X5) = aa(B,C,aa(A,fun(B,C),F3,aa(product_prod(A,B),A,product_fst(A,B),X5)),aa(product_prod(A,B),B,product_snd(A,B),X5)) )).

% case_prod_beta'
tff(fact_554_conditional__action_Oset__intros,axiom,(
    ! [T: $tType,X1: T] : pp(aa(set(T),bool,aa(T,fun(set(T),bool),member(T),X1),aa(conditional_action(T),set(T),condit2393454222984209554action(T),aa(T,conditional_action(T),conditional_Join(T),X1)))) )).

% conditional_action.set_intros
tff(fact_555_conditional__action_Omap__cong,axiom,(
    ! [B: $tType,A: $tType,X3: conditional_action(A),Ya2: conditional_action(A),F3: fun(A,B),G3: fun(A,B)] :
      ( X3 = Ya2
     => ( ! [Z2: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(conditional_action(A),set(A),condit2393454222984209554action(A),Ya2)))
           => aa(A,B,F3,Z2) = aa(A,B,G3,Z2) )
       => aa(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),F3),X3) = aa(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),G3),Ya2) ) ) )).

% conditional_action.map_cong
tff(fact_556_conditional__action_Oright__unique__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( right_unique(A,B,R)
     => right_unique(conditional_action(A),conditional_action(B),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R)) ) )).

% conditional_action.right_unique_rel
tff(fact_557_in__rel__Collect__case__prod__eq,axiom,(
    ! [B: $tType,A: $tType,X8: fun(A,fun(B,bool))] : fun_in_rel(A,B,aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),X8))) = X8 )).

% in_rel_Collect_case_prod_eq
tff(fact_558_conditional__action_Omap__cong0,axiom,(
    ! [B: $tType,A: $tType,X3: conditional_action(A),F3: fun(A,B),G3: fun(A,B)] :
      ( ! [Z2: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(conditional_action(A),set(A),condit2393454222984209554action(A),X3)))
         => aa(A,B,F3,Z2) = aa(A,B,G3,Z2) )
     => aa(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),F3),X3) = aa(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),G3),X3) ) )).

% conditional_action.map_cong0
tff(fact_559_Grp__mono,axiom,(
    ! [B: $tType,A: $tType,A5: set(A),B6: set(A),F3: fun(A,B)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),B6))
     => pp(aa(fun(A,fun(B,bool)),bool,aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),bool),ord_less_eq(fun(A,fun(B,bool))),bNF_Grp(A,B,A5,F3)),bNF_Grp(A,B,B6,F3))) ) )).

% Grp_mono
tff(fact_560_total__on__def,axiom,(
    ! [A: $tType,A5: set(A),R2: set(product_prod(A,A))] :
      ( total_on(A,A5,R2)
    <=> ! [X6: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),A5))
         => ! [Xa6: A] :
              ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Xa6),A5))
             => ( X6 != Xa6
               => ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),X6),Xa6)),R2))
                  | pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),Xa6),X6)),R2)) ) ) ) ) ) )).

% total_on_def
tff(fact_561_conditional__action_Orel__refl,axiom,(
    ! [B: $tType,Ra2: fun(B,fun(B,bool)),X3: conditional_action(B)] :
      ( ! [X4: B] : pp(aa(B,bool,aa(B,fun(B,bool),Ra2,X4),X4))
     => pp(aa(conditional_action(B),bool,aa(conditional_action(B),fun(conditional_action(B),bool),aa(fun(B,fun(B,bool)),fun(conditional_action(B),fun(conditional_action(B),bool)),condit4280512358590153947action(B,B),Ra2),X3),X3)) ) )).

% conditional_action.rel_refl
tff(fact_562_Collect__case__prod__mono,axiom,(
    ! [B: $tType,A: $tType,A5: fun(A,fun(B,bool)),B6: fun(A,fun(B,bool))] :
      ( pp(aa(fun(A,fun(B,bool)),bool,aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),bool),ord_less_eq(fun(A,fun(B,bool))),A5),B6))
     => pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),A5))),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),B6)))) ) )).

% Collect_case_prod_mono
tff(fact_563_wait__set__action_Odistinct_I25_J,axiom,(
    ! [W: $tType,T: $tType,X42: T] : wait_set_WakeUp(T,W,X42) != wait_set_Notified(T,W) )).

% wait_set_action.distinct(25)
tff(fact_564_snd__convol,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,C),G3: fun(A,B)] : aa(fun(A,product_prod(C,B)),fun(A,B),aa(fun(product_prod(C,B),B),fun(fun(A,product_prod(C,B)),fun(A,B)),comp(product_prod(C,B),B,A),product_snd(C,B)),bNF_convol(A,C,B,F3,G3)) = G3 )).

% snd_convol
tff(fact_565_conditional__action_Oinj__map,axiom,(
    ! [B: $tType,A: $tType,F3: fun(A,B)] :
      ( inj_on(A,B,F3,top_top(set(A)))
     => inj_on(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),F3),top_top(set(conditional_action(A)))) ) )).

% conditional_action.inj_map
tff(fact_566_fst__convol,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,B),G3: fun(A,C)] : aa(fun(A,product_prod(B,C)),fun(A,B),aa(fun(product_prod(B,C),B),fun(fun(A,product_prod(B,C)),fun(A,B)),comp(product_prod(B,C),B,A),product_fst(B,C)),bNF_convol(A,B,C,F3,G3)) = F3 )).

% fst_convol
tff(fact_567_wait__set__action_Odistinct_I26_J,axiom,(
    ! [W: $tType,T: $tType,X42: T] : wait_set_Notified(T,W) != wait_set_WakeUp(T,W,X42) )).

% wait_set_action.distinct(26)
tff(fact_568_fun_Omap__comp,axiom,(
    ! [B: $tType,C: $tType,A: $tType,D: $tType,G3: fun(B,C),F3: fun(A,B),V: fun(D,A)] : aa(fun(D,B),fun(D,C),aa(fun(B,C),fun(fun(D,B),fun(D,C)),comp(B,C,D),G3),aa(fun(D,A),fun(D,B),aa(fun(A,B),fun(fun(D,A),fun(D,B)),comp(A,B,D),F3),V)) = aa(fun(D,A),fun(D,C),aa(fun(A,C),fun(fun(D,A),fun(D,C)),comp(A,C,D),aa(fun(A,B),fun(A,C),aa(fun(B,C),fun(fun(A,B),fun(A,C)),comp(B,C,A),G3),F3)),V) )).

% fun.map_comp
tff(fact_569_Id__on__def,axiom,(
    ! [G: $tType,A6: set(G)] : id_on(G,A6) = complete_Sup_Sup(set(product_prod(G,G)),aa(set(G),set(set(product_prod(G,G))),aa(fun(G,set(product_prod(G,G))),fun(set(G),set(set(product_prod(G,G)))),image2(G,set(product_prod(G,G))),aa(set(product_prod(G,G)),fun(G,set(product_prod(G,G))),aa(fun(G,fun(set(product_prod(G,G)),set(product_prod(G,G)))),fun(set(product_prod(G,G)),fun(G,set(product_prod(G,G)))),combc(G,set(product_prod(G,G)),set(product_prod(G,G))),aa(fun(G,product_prod(G,G)),fun(G,fun(set(product_prod(G,G)),set(product_prod(G,G)))),aa(fun(product_prod(G,G),fun(set(product_prod(G,G)),set(product_prod(G,G)))),fun(fun(G,product_prod(G,G)),fun(G,fun(set(product_prod(G,G)),set(product_prod(G,G))))),combb(product_prod(G,G),fun(set(product_prod(G,G)),set(product_prod(G,G))),G),insert2(product_prod(G,G))),aa(fun(G,G),fun(G,product_prod(G,G)),aa(fun(G,fun(G,product_prod(G,G))),fun(fun(G,G),fun(G,product_prod(G,G))),combs(G,G,product_prod(G,G)),product_Pair(G,G)),combi(G)))),bot_bot(set(product_prod(G,G))))),A6)) )).

% Id_on_def
tff(fact_570_conditional__action_Orel__mono,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool)),Ra2: fun(A,fun(B,bool))] :
      ( pp(aa(fun(A,fun(B,bool)),bool,aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),bool),ord_less_eq(fun(A,fun(B,bool))),R),Ra2))
     => pp(aa(fun(conditional_action(A),fun(conditional_action(B),bool)),bool,aa(fun(conditional_action(A),fun(conditional_action(B),bool)),fun(fun(conditional_action(A),fun(conditional_action(B),bool)),bool),ord_less_eq(fun(conditional_action(A),fun(conditional_action(B),bool))),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R)),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),Ra2))) ) )).

% conditional_action.rel_mono
tff(fact_571_Collect__case__prod__in__rel__leE,axiom,(
    ! [B: $tType,A: $tType,X8: set(product_prod(A,B)),Y5: set(product_prod(A,B))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),X8),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),fun_in_rel(A,B,Y5)))))
     => pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),X8),Y5)) ) )).

% Collect_case_prod_in_rel_leE
tff(fact_572_image__is__empty,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),A5: set(B)] :
      ( aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5) = bot_bot(set(A))
    <=> A5 = bot_bot(set(B)) ) )).

% image_is_empty
tff(fact_573_wait__set__action_Odistinct_I10_J,axiom,(
    ! [T: $tType,W: $tType,X1: W] : wait_set_WokenUp(T,W) != wait_set_Suspend(W,T,X1) )).

% wait_set_action.distinct(10)
tff(fact_574_map__prod__o__convol,axiom,(
    ! [D: $tType,B: $tType,C: $tType,E: $tType,A: $tType,H1: fun(D,B),H22: fun(E,C),F3: fun(A,D),G3: fun(A,E)] : aa(fun(A,product_prod(D,E)),fun(A,product_prod(B,C)),aa(fun(product_prod(D,E),product_prod(B,C)),fun(fun(A,product_prod(D,E)),fun(A,product_prod(B,C))),comp(product_prod(D,E),product_prod(B,C),A),product_map_prod(D,B,E,C,H1,H22)),bNF_convol(A,D,E,F3,G3)) = bNF_convol(A,B,C,aa(fun(A,D),fun(A,B),aa(fun(D,B),fun(fun(A,D),fun(A,B)),comp(D,B,A),H1),F3),aa(fun(A,E),fun(A,C),aa(fun(E,C),fun(fun(A,E),fun(A,C)),comp(E,C,A),H22),G3)) )).

% map_prod_o_convol
tff(fact_575_conditional__action_Ocase_I1_J,axiom,(
    ! [A: $tType,T: $tType,F1: fun(T,A),F22: A,X1: T] : aa(conditional_action(T),A,aa(A,fun(conditional_action(T),A),aa(fun(T,A),fun(A,fun(conditional_action(T),A)),condit2152691216506315636action(T,A),F1),F22),aa(T,conditional_action(T),conditional_Join(T),X1)) = aa(T,A,F1,X1) )).

% conditional_action.case(1)
tff(fact_576_convol__expand__snd_H,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,product_prod(B,C)),G3: fun(A,B),H2: fun(A,C)] :
      ( aa(fun(A,product_prod(B,C)),fun(A,B),aa(fun(product_prod(B,C),B),fun(fun(A,product_prod(B,C)),fun(A,B)),comp(product_prod(B,C),B,A),product_fst(B,C)),F3) = G3
     => ( H2 = aa(fun(A,product_prod(B,C)),fun(A,C),aa(fun(product_prod(B,C),C),fun(fun(A,product_prod(B,C)),fun(A,C)),comp(product_prod(B,C),C,A),product_snd(B,C)),F3)
      <=> bNF_convol(A,B,C,G3,H2) = F3 ) ) )).

% convol_expand_snd'
tff(fact_577_wait__set__action_Odistinct_I9_J,axiom,(
    ! [W: $tType,T: $tType,X1: W] : wait_set_Suspend(W,T,X1) != wait_set_WokenUp(T,W) )).

% wait_set_action.distinct(9)
tff(fact_578_convol__expand__snd,axiom,(
    ! [C: $tType,B: $tType,A: $tType,F3: fun(A,product_prod(B,C)),G3: fun(A,B)] :
      ( aa(fun(A,product_prod(B,C)),fun(A,B),aa(fun(product_prod(B,C),B),fun(fun(A,product_prod(B,C)),fun(A,B)),comp(product_prod(B,C),B,A),product_fst(B,C)),F3) = G3
     => bNF_convol(A,B,C,G3,aa(fun(A,product_prod(B,C)),fun(A,C),aa(fun(product_prod(B,C),C),fun(fun(A,product_prod(B,C)),fun(A,C)),comp(product_prod(B,C),C,A),product_snd(B,C)),F3)) = F3 ) )).

% convol_expand_snd
tff(fact_579_comp__fun__commute_Ocomp__fun__commute,axiom,(
    ! [B: $tType,A: $tType,F3: fun(A,fun(B,B)),Y: A,X3: A] :
      ( finite6289374366891150609ommute(A,B,F3)
     => aa(fun(B,B),fun(B,B),aa(fun(B,B),fun(fun(B,B),fun(B,B)),comp(B,B,B),aa(A,fun(B,B),F3,Y)),aa(A,fun(B,B),F3,X3)) = aa(fun(B,B),fun(B,B),aa(fun(B,B),fun(fun(B,B),fun(B,B)),comp(B,B,B),aa(A,fun(B,B),F3,X3)),aa(A,fun(B,B),F3,Y)) ) )).

% comp_fun_commute.comp_fun_commute
tff(fact_580_conditional__action_Ocase_I2_J,axiom,(
    ! [T: $tType,A: $tType,F1: fun(T,A),F22: A] : aa(conditional_action(T),A,aa(A,fun(conditional_action(T),A),aa(fun(T,A),fun(A,fun(conditional_action(T),A)),condit2152691216506315636action(T,A),F1),F22),conditional_Yield(T)) = F22 )).

% conditional_action.case(2)
tff(fact_581_convol__o,axiom,(
    ! [B: $tType,C: $tType,D: $tType,A: $tType,F3: fun(D,B),G3: fun(D,C),H2: fun(A,D)] : aa(fun(A,D),fun(A,product_prod(B,C)),aa(fun(D,product_prod(B,C)),fun(fun(A,D),fun(A,product_prod(B,C))),comp(D,product_prod(B,C),A),bNF_convol(D,B,C,F3,G3)),H2) = bNF_convol(A,B,C,aa(fun(A,D),fun(A,B),aa(fun(D,B),fun(fun(A,D),fun(A,B)),comp(D,B,A),F3),H2),aa(fun(A,D),fun(A,C),aa(fun(D,C),fun(fun(A,D),fun(A,C)),comp(D,C,A),G3),H2)) )).

% convol_o
tff(fact_582_conditional__action_Omap__comp,axiom,(
    ! [B: $tType,C: $tType,A: $tType,G3: fun(B,C),F3: fun(A,B),V: conditional_action(A)] : aa(conditional_action(B),conditional_action(C),aa(fun(B,C),fun(conditional_action(B),conditional_action(C)),condit198635377858011928action(B,C),G3),aa(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),F3),V)) = aa(conditional_action(A),conditional_action(C),aa(fun(A,C),fun(conditional_action(A),conditional_action(C)),condit198635377858011928action(A,C),aa(fun(A,B),fun(A,C),aa(fun(B,C),fun(fun(A,B),fun(A,C)),comp(B,C,A),G3),F3)),V) )).

% conditional_action.map_comp
tff(fact_583_fst__convol_H,axiom,(
    ! [B: $tType,A: $tType,C: $tType,F3: fun(C,A),G3: fun(C,B),X3: C] : aa(product_prod(A,B),A,product_fst(A,B),aa(C,product_prod(A,B),bNF_convol(C,A,B,F3,G3),X3)) = aa(C,A,F3,X3) )).

% fst_convol'
tff(fact_584_conditional__action_Omap_I2_J,axiom,(
    ! [T: $tType,A: $tType,F3: fun(T,A)] : aa(conditional_action(T),conditional_action(A),aa(fun(T,A),fun(conditional_action(T),conditional_action(A)),condit198635377858011928action(T,A),F3),conditional_Yield(T)) = conditional_Yield(A) )).

% conditional_action.map(2)
tff(fact_585_snd__convol_H,axiom,(
    ! [B: $tType,A: $tType,C: $tType,F3: fun(C,B),G3: fun(C,A),X3: C] : aa(product_prod(B,A),A,product_snd(B,A),aa(C,product_prod(B,A),bNF_convol(C,B,A,F3,G3),X3)) = aa(C,A,G3,X3) )).

% snd_convol'
tff(fact_586_vimage2p__comp,axiom,(
    ! [E: $tType,D: $tType,F: $tType,A: $tType,C: $tType,B: $tType,G: $tType,F1: fun(F,A),F22: fun(D,F),G1: fun(G,B),G22: fun(E,G)] : bNF_vimage2p(D,A,E,B,C,aa(fun(D,F),fun(D,A),aa(fun(F,A),fun(fun(D,F),fun(D,A)),comp(F,A,D),F1),F22),aa(fun(E,G),fun(E,B),aa(fun(G,B),fun(fun(E,G),fun(E,B)),comp(G,B,E),G1),G22)) = aa(fun(fun(A,fun(B,C)),fun(F,fun(G,C))),fun(fun(A,fun(B,C)),fun(D,fun(E,C))),aa(fun(fun(F,fun(G,C)),fun(D,fun(E,C))),fun(fun(fun(A,fun(B,C)),fun(F,fun(G,C))),fun(fun(A,fun(B,C)),fun(D,fun(E,C)))),comp(fun(F,fun(G,C)),fun(D,fun(E,C)),fun(A,fun(B,C))),bNF_vimage2p(D,F,E,G,C,F22,G22)),bNF_vimage2p(F,A,G,B,C,F1,G1)) )).

% vimage2p_comp
tff(fact_587_wait__set__action_Osimps_I26_J,axiom,(
    ! [T: $tType,W: $tType,X32: W] : wait_set_Notified(T,W) != wait_set_NotifyAll(W,T,X32) )).

% wait_set_action.simps(26)
tff(fact_588_wait__set__action_Odistinct_I21_J,axiom,(
    ! [W: $tType,T: $tType,X32: W] : wait_set_NotifyAll(W,T,X32) != wait_set_Notified(T,W) )).

% wait_set_action.distinct(21)
tff(fact_589_scomp__Pair,axiom,(
    ! [C: $tType,B: $tType,A: $tType,X3: fun(A,product_prod(B,C))] : aa(fun(B,fun(C,product_prod(B,C))),fun(A,product_prod(B,C)),aa(fun(A,product_prod(B,C)),fun(fun(B,fun(C,product_prod(B,C))),fun(A,product_prod(B,C))),product_scomp(A,B,C,product_prod(B,C)),X3),product_Pair(B,C)) = X3 )).

% scomp_Pair
tff(fact_590_conditional__action_Opred__cong,axiom,(
    ! [A: $tType,X3: conditional_action(A),Ya2: conditional_action(A),P: fun(A,bool),Pa: fun(A,bool)] :
      ( X3 = Ya2
     => ( ! [Z2: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(conditional_action(A),set(A),condit2393454222984209554action(A),Ya2)))
           => ( pp(aa(A,bool,P,Z2))
            <=> pp(aa(A,bool,Pa,Z2)) ) )
       => ( pp(aa(conditional_action(A),bool,aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),P),X3))
        <=> pp(aa(conditional_action(A),bool,aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),Pa),Ya2)) ) ) ) )).

% conditional_action.pred_cong
tff(fact_591_rewriteL__comp__comp,axiom,(
    ! [C: $tType,B: $tType,A: $tType,D: $tType,F3: fun(C,B),G3: fun(A,C),L2: fun(A,B),H2: fun(D,A)] :
      ( aa(fun(A,C),fun(A,B),aa(fun(C,B),fun(fun(A,C),fun(A,B)),comp(C,B,A),F3),G3) = L2
     => aa(fun(D,C),fun(D,B),aa(fun(C,B),fun(fun(D,C),fun(D,B)),comp(C,B,D),F3),aa(fun(D,A),fun(D,C),aa(fun(A,C),fun(fun(D,A),fun(D,C)),comp(A,C,D),G3),H2)) = aa(fun(D,A),fun(D,B),aa(fun(A,B),fun(fun(D,A),fun(D,B)),comp(A,B,D),L2),H2) ) )).

% rewriteL_comp_comp
tff(fact_592_Pair__scomp,axiom,(
    ! [A: $tType,B: $tType,C: $tType,X3: C,F3: fun(C,fun(A,B))] : aa(fun(C,fun(A,B)),fun(A,B),aa(fun(A,product_prod(C,A)),fun(fun(C,fun(A,B)),fun(A,B)),product_scomp(A,C,A,B),aa(C,fun(A,product_prod(C,A)),product_Pair(C,A),X3)),F3) = aa(C,fun(A,B),F3,X3) )).

% Pair_scomp
tff(fact_593_pair__in__Id__conv,axiom,(
    ! [A: $tType,A3: A,B3: A] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),B3)),id2(A)))
    <=> A3 = B3 ) )).

% pair_in_Id_conv
tff(fact_594_typerep__conditional__action__def,axiom,(
    ! [A: $tType] :
      ( typerep2(A)
     => ! [T2: itself(conditional_action(A))] : typerep_typerep(conditional_action(A),T2) = typerep3(literal2(fFalse,fTrue,fTrue,fFalse,fFalse,fFalse,fTrue,literal2(fTrue,fTrue,fTrue,fFalse,fTrue,fFalse,fTrue,literal2(fTrue,fTrue,fFalse,fFalse,fTrue,fFalse,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fTrue,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fTrue,fTrue,fTrue,fFalse,fTrue,fFalse,literal2(fTrue,fTrue,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fFalse,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fFalse,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fFalse,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,literal2(fTrue,fFalse,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fFalse,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,zero_zero(literal))))))))))))))))))))))))))),aa(list(typerep),list(typerep),aa(typerep,fun(list(typerep),list(typerep)),cons(typerep),typerep_typerep(A,type2(A))),nil(typerep))) ) )).

% typerep_conditional_action_def
tff(fact_595_rewriteR__comp__comp,axiom,(
    ! [C: $tType,D: $tType,B: $tType,A: $tType,G3: fun(C,B),H2: fun(A,C),R2: fun(A,B),F3: fun(B,D)] :
      ( aa(fun(A,C),fun(A,B),aa(fun(C,B),fun(fun(A,C),fun(A,B)),comp(C,B,A),G3),H2) = R2
     => aa(fun(A,C),fun(A,D),aa(fun(C,D),fun(fun(A,C),fun(A,D)),comp(C,D,A),aa(fun(C,B),fun(C,D),aa(fun(B,D),fun(fun(C,B),fun(C,D)),comp(B,D,C),F3),G3)),H2) = aa(fun(A,B),fun(A,D),aa(fun(B,D),fun(fun(A,B),fun(A,D)),comp(B,D,A),F3),R2) ) )).

% rewriteR_comp_comp
tff(fact_596_refl__on__def,axiom,(
    ! [G: $tType,A6: set(G),R4: set(product_prod(G,G))] :
      ( refl_on(G,A6,R4)
    <=> ( pp(aa(set(product_prod(G,G)),bool,aa(set(product_prod(G,G)),fun(set(product_prod(G,G)),bool),ord_less_eq(set(product_prod(G,G))),R4),product_Sigma(G,G,A6,aa(set(G),fun(G,set(G)),combk(set(G),G),A6))))
        & ! [X6: G] :
            ( pp(aa(set(G),bool,aa(G,fun(set(G),bool),member(G),X6),A6))
           => pp(aa(set(product_prod(G,G)),bool,aa(product_prod(G,G),fun(set(product_prod(G,G)),bool),member(product_prod(G,G)),aa(G,product_prod(G,G),aa(G,fun(G,product_prod(G,G)),product_Pair(G,G),X6),X6)),R4)) ) ) ) )).

% refl_on_def
tff(fact_597_conditional__action_Opred__mono__strong,axiom,(
    ! [A: $tType,P: fun(A,bool),X3: conditional_action(A),Pa: fun(A,bool)] :
      ( pp(aa(conditional_action(A),bool,aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),P),X3))
     => ( ! [Z2: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(conditional_action(A),set(A),condit2393454222984209554action(A),X3)))
           => ( pp(aa(A,bool,P,Z2))
             => pp(aa(A,bool,Pa,Z2)) ) )
       => pp(aa(conditional_action(A),bool,aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),Pa),X3)) ) ) )).

% conditional_action.pred_mono_strong
tff(fact_598_rewriteL__comp__comp2,axiom,(
    ! [A: $tType,C: $tType,B: $tType,D: $tType,E: $tType,F3: fun(C,B),G3: fun(A,C),L1: fun(D,B),L22: fun(A,D),H2: fun(E,A),R2: fun(E,D)] :
      ( aa(fun(A,C),fun(A,B),aa(fun(C,B),fun(fun(A,C),fun(A,B)),comp(C,B,A),F3),G3) = aa(fun(A,D),fun(A,B),aa(fun(D,B),fun(fun(A,D),fun(A,B)),comp(D,B,A),L1),L22)
     => ( aa(fun(E,A),fun(E,D),aa(fun(A,D),fun(fun(E,A),fun(E,D)),comp(A,D,E),L22),H2) = R2
       => aa(fun(E,C),fun(E,B),aa(fun(C,B),fun(fun(E,C),fun(E,B)),comp(C,B,E),F3),aa(fun(E,A),fun(E,C),aa(fun(A,C),fun(fun(E,A),fun(E,C)),comp(A,C,E),G3),H2)) = aa(fun(E,D),fun(E,B),aa(fun(D,B),fun(fun(E,D),fun(E,B)),comp(D,B,E),L1),R2) ) ) )).

% rewriteL_comp_comp2
tff(fact_599_new__thread__action_Odistinct_I2_J,axiom,(
    ! [X: $tType,T: $tType,M: $tType,X21: T,X22: bool,X11: T,X12: X,X13: M] : new_th4503388622997288770Exists(T,X,M,X21,X22) != new_thread_NewThread(T,X,M,X11,X12,X13) )).

% new_thread_action.distinct(2)
tff(fact_600_rewriteR__comp__comp2,axiom,(
    ! [C: $tType,B: $tType,E: $tType,D: $tType,A: $tType,G3: fun(C,B),H2: fun(A,C),R12: fun(D,B),R23: fun(A,D),F3: fun(B,E),L2: fun(D,E)] :
      ( aa(fun(A,C),fun(A,B),aa(fun(C,B),fun(fun(A,C),fun(A,B)),comp(C,B,A),G3),H2) = aa(fun(A,D),fun(A,B),aa(fun(D,B),fun(fun(A,D),fun(A,B)),comp(D,B,A),R12),R23)
     => ( aa(fun(D,B),fun(D,E),aa(fun(B,E),fun(fun(D,B),fun(D,E)),comp(B,E,D),F3),R12) = L2
       => aa(fun(A,C),fun(A,E),aa(fun(C,E),fun(fun(A,C),fun(A,E)),comp(C,E,A),aa(fun(C,B),fun(C,E),aa(fun(B,E),fun(fun(C,B),fun(C,E)),comp(B,E,C),F3),G3)),H2) = aa(fun(A,D),fun(A,E),aa(fun(D,E),fun(fun(A,D),fun(A,E)),comp(D,E,A),L2),R23) ) ) )).

% rewriteR_comp_comp2
tff(fact_601_SigmaE,axiom,(
    ! [A: $tType,B: $tType,C3: product_prod(A,B),A5: set(A),B6: fun(A,set(B))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),C3),product_Sigma(A,B,A5,B6)))
     => ~ ! [X4: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),A5))
           => ! [Y3: B] :
                ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),Y3),aa(A,set(B),B6,X4)))
               => C3 != aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X4),Y3) ) ) ) )).

% SigmaE
tff(fact_602_conditional__action_Opred__inject_I1_J,axiom,(
    ! [T: $tType,P: fun(T,bool),A3: T] :
      ( pp(aa(conditional_action(T),bool,aa(fun(T,bool),fun(conditional_action(T),bool),condit606476673698705123action(T),P),aa(T,conditional_action(T),conditional_Join(T),A3)))
    <=> pp(aa(T,bool,P,A3)) ) )).

% conditional_action.pred_inject(1)
tff(fact_603_comp__transfer,axiom,(
    ! [A: $tType,B: $tType,E: $tType,F: $tType,D: $tType,C: $tType,B6: fun(A,fun(C,bool)),C6: fun(B,fun(D,bool)),A5: fun(E,fun(F,bool))] : pp(aa(fun(fun(C,D),fun(fun(F,C),fun(F,D))),bool,aa(fun(fun(A,B),fun(fun(E,A),fun(E,B))),fun(fun(fun(C,D),fun(fun(F,C),fun(F,D))),bool),bNF_rel_fun(fun(A,B),fun(C,D),fun(fun(E,A),fun(E,B)),fun(fun(F,C),fun(F,D)),bNF_rel_fun(A,C,B,D,B6,C6),bNF_rel_fun(fun(E,A),fun(F,C),fun(E,B),fun(F,D),bNF_rel_fun(E,F,A,C,A5,B6),bNF_rel_fun(E,F,B,D,A5,C6))),comp(A,B,E)),comp(C,D,F))) )).

% comp_transfer
tff(fact_604_conditional__action_Orec_I1_J,axiom,(
    ! [B: $tType,T: $tType,F1: fun(T,B),F22: B,X1: T] : aa(conditional_action(T),B,aa(B,fun(conditional_action(T),B),aa(fun(T,B),fun(B,fun(conditional_action(T),B)),condit2004826933596026276action(T,B),F1),F22),aa(T,conditional_action(T),conditional_Join(T),X1)) = aa(T,B,F1,X1) )).

% conditional_action.rec(1)
tff(fact_605_o__rsp_I1_J,axiom,(
    ! [A: $tType,B: $tType,E: $tType,F: $tType,D: $tType,C: $tType,R22: fun(A,fun(C,bool)),R32: fun(B,fun(D,bool)),R1: fun(E,fun(F,bool))] : pp(aa(fun(fun(C,D),fun(fun(F,C),fun(F,D))),bool,aa(fun(fun(A,B),fun(fun(E,A),fun(E,B))),fun(fun(fun(C,D),fun(fun(F,C),fun(F,D))),bool),bNF_rel_fun(fun(A,B),fun(C,D),fun(fun(E,A),fun(E,B)),fun(fun(F,C),fun(F,D)),bNF_rel_fun(A,C,B,D,R22,R32),bNF_rel_fun(fun(E,A),fun(F,C),fun(E,B),fun(F,D),bNF_rel_fun(E,F,A,C,R1,R22),bNF_rel_fun(E,F,B,D,R1,R32))),comp(A,B,E)),comp(C,D,F))) )).

% o_rsp(1)
tff(fact_606_new__thread__action_Oexhaust,axiom,(
    ! [T: $tType,M: $tType,X: $tType,Y: new_thread_action(T,X,M)] :
      ( ! [X112: T,X122: X,X132: M] : Y != new_thread_NewThread(T,X,M,X112,X122,X132)
     => ~ ! [X212: T,X222: bool] : Y != new_th4503388622997288770Exists(T,X,M,X212,X222) ) )).

% new_thread_action.exhaust
tff(fact_607_o__rsp_I2_J,axiom,(
    ! [E: $tType,F: $tType,H: $tType,G: $tType,R1: fun(E,fun(F,bool))] : pp(aa(fun(fun(G,H),fun(fun(F,G),fun(F,H))),bool,aa(fun(fun(G,H),fun(fun(E,G),fun(E,H))),fun(fun(fun(G,H),fun(fun(F,G),fun(F,H))),bool),bNF_rel_fun(fun(G,H),fun(G,H),fun(fun(E,G),fun(E,H)),fun(fun(F,G),fun(F,H)),fequal(fun(G,H)),bNF_rel_fun(fun(E,G),fun(F,G),fun(E,H),fun(F,H),bNF_rel_fun(E,F,G,G,R1,fequal(G)),bNF_rel_fun(E,F,H,H,R1,fequal(H)))),comp(G,H,E)),comp(G,H,F))) )).

% o_rsp(2)
tff(fact_608_sup__bot_Oleft__neutral,axiom,(
    ! [A: $tType] :
      ( bounde4967611905675639751up_bot(A)
     => ! [A3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),bot_bot(A)),A3) = A3 ) )).

% sup_bot.left_neutral
tff(fact_609_wait__set__action_Odistinct_I15_J,axiom,(
    ! [W: $tType,T: $tType,X2: W] : wait_set_Notify(W,T,X2) != wait_set_Notified(T,W) )).

% wait_set_action.distinct(15)
tff(fact_610_rel__fun__iff__geq__image2p,axiom,(
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R: fun(A,fun(B,bool)),S3: fun(C,fun(D,bool)),F3: fun(A,C),G3: fun(B,D)] :
      ( pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,R,S3),F3),G3))
    <=> pp(aa(fun(C,fun(D,bool)),bool,aa(fun(C,fun(D,bool)),fun(fun(C,fun(D,bool)),bool),ord_less_eq(fun(C,fun(D,bool))),bNF_Greatest_image2p(A,C,B,D,F3,G3,R)),S3)) ) )).

% rel_fun_iff_geq_image2p
tff(fact_611_Sigma__empty1,axiom,(
    ! [B: $tType,A: $tType,B6: fun(A,set(B))] : product_Sigma(A,B,bot_bot(set(A)),B6) = bot_bot(set(product_prod(A,B))) )).

% Sigma_empty1
tff(fact_612_conditional__action_Opred__inject_I2_J,axiom,(
    ! [T: $tType,P: fun(T,bool)] : pp(aa(conditional_action(T),bool,aa(fun(T,bool),fun(conditional_action(T),bool),condit606476673698705123action(T),P),conditional_Yield(T))) )).

% conditional_action.pred_inject(2)
tff(fact_613_map__prod__o__convol__id,axiom,(
    ! [B: $tType,A: $tType,C: $tType,F3: fun(C,A),G3: fun(C,B),X3: C] : aa(C,product_prod(A,B),aa(fun(C,product_prod(C,B)),fun(C,product_prod(A,B)),aa(fun(product_prod(C,B),product_prod(A,B)),fun(fun(C,product_prod(C,B)),fun(C,product_prod(A,B))),comp(product_prod(C,B),product_prod(A,B),C),product_map_prod(C,A,B,B,F3,id(B))),bNF_convol(C,C,B,id(C),G3)),X3) = aa(C,product_prod(A,B),bNF_convol(C,A,B,aa(fun(C,A),fun(C,A),aa(fun(A,A),fun(fun(C,A),fun(C,A)),comp(A,A,C),id(A)),F3),G3),X3) )).

% map_prod_o_convol_id
tff(fact_614_wait__set__action_Odistinct_I16_J,axiom,(
    ! [T: $tType,W: $tType,X2: W] : wait_set_Notified(T,W) != wait_set_Notify(W,T,X2) )).

% wait_set_action.distinct(16)
tff(fact_615_in__rel__Gr,axiom,(
    ! [B: $tType,A: $tType,A5: set(A),F3: fun(A,B)] : fun_in_rel(A,B,bNF_Gr(A,B,A5,F3)) = bNF_Grp(A,B,A5,F3) )).

% in_rel_Gr
tff(fact_616_conditional__action_Orec_I2_J,axiom,(
    ! [T: $tType,B: $tType,F1: fun(T,B),F22: B] : aa(conditional_action(T),B,aa(B,fun(conditional_action(T),B),aa(fun(T,B),fun(B,fun(conditional_action(T),B)),condit2004826933596026276action(T,B),F1),F22),conditional_Yield(T)) = F22 )).

% conditional_action.rec(2)
tff(fact_617_csquare__fstOp__sndOp,axiom,(
    ! [A: $tType,B: $tType,C: $tType,F3: fun(fun(A,fun(B,bool)),fun(product_prod(A,B),bool)),P: fun(A,fun(C,bool)),Q: fun(C,fun(B,bool))] : bNF_csquare(product_prod(A,B),product_prod(A,C),C,product_prod(C,B),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),F3,relcompp(A,C,B,P,Q))),product_snd(A,C),product_fst(C,B),bNF_fstOp(A,C,B,P,Q),bNF_sndOp(A,C,B,P,Q)) )).

% csquare_fstOp_sndOp
tff(fact_618_conditional__action_ODomainp__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] : domainp(conditional_action(A),conditional_action(B),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R)) = aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),domainp(A,B,R)) )).

% conditional_action.Domainp_rel
tff(fact_619_next_Osimps,axiom,(
    ! [V: code_natural,W2: code_natural] : next(aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),V),W2)) = aa(product_prod(code_natural,code_natural),product_prod(code_natural,product_prod(code_natural,code_natural)),aa(code_natural,fun(product_prod(code_natural,code_natural),product_prod(code_natural,product_prod(code_natural,code_natural))),product_Pair(code_natural,product_prod(code_natural,code_natural)),plus_plus(code_natural,minus_shift(numeral_numeral(code_natural,bit0(bit1(bit0(bit1(bit0(bit1(bit0(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(one))))))))))))))))))))))))))))))),minus_shift(numeral_numeral(code_natural,bit1(bit1(bit0(bit1(bit0(bit1(bit0(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(one))))))))))))))))))))))))))))))),times_times(code_natural,modulo_modulo(code_natural,V,numeral_numeral(code_natural,bit0(bit0(bit1(bit0(bit0(bit1(bit0(bit1(bit1(bit0(bit0(bit0(bit1(bit0(bit1(one))))))))))))))))),numeral_numeral(code_natural,bit0(bit1(bit1(bit1(bit0(bit0(bit1(bit0(bit0(bit0(bit1(bit1(bit1(bit0(bit0(one))))))))))))))))),times_times(code_natural,divide_divide(code_natural,V,numeral_numeral(code_natural,bit0(bit0(bit1(bit0(bit0(bit1(bit0(bit1(bit1(bit0(bit0(bit0(bit1(bit0(bit1(one))))))))))))))))),numeral_numeral(code_natural,bit1(bit1(bit0(bit0(bit1(bit1(bit0(bit1(bit1(bit1(bit1(bit1(bit0(one)))))))))))))))),plus_plus(code_natural,minus_shift(numeral_numeral(code_natural,bit1(bit1(bit1(bit0(bit0(bit0(bit0(bit0(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(one))))))))))))))))))))))))))))))),times_times(code_natural,modulo_modulo(code_natural,W2,numeral_numeral(code_natural,bit0(bit1(bit1(bit0(bit0(bit1(bit0(bit0(bit0(bit1(bit1(bit1(bit0(bit0(bit1(one))))))))))))))))),numeral_numeral(code_natural,bit0(bit0(bit1(bit0(bit1(bit1(bit1(bit1(bit0(bit1(bit1(bit1(bit1(bit0(bit0(one))))))))))))))))),times_times(code_natural,divide_divide(code_natural,W2,numeral_numeral(code_natural,bit0(bit1(bit1(bit0(bit0(bit1(bit0(bit0(bit0(bit1(bit1(bit1(bit0(bit0(bit1(one))))))))))))))))),numeral_numeral(code_natural,bit1(bit1(bit1(bit1(bit0(bit0(bit1(bit1(bit0(bit1(bit1(one)))))))))))))),one_one(code_natural))),one_one(code_natural))),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),minus_shift(numeral_numeral(code_natural,bit1(bit1(bit0(bit1(bit0(bit1(bit0(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(one))))))))))))))))))))))))))))))),times_times(code_natural,modulo_modulo(code_natural,V,numeral_numeral(code_natural,bit0(bit0(bit1(bit0(bit0(bit1(bit0(bit1(bit1(bit0(bit0(bit0(bit1(bit0(bit1(one))))))))))))))))),numeral_numeral(code_natural,bit0(bit1(bit1(bit1(bit0(bit0(bit1(bit0(bit0(bit0(bit1(bit1(bit1(bit0(bit0(one))))))))))))))))),times_times(code_natural,divide_divide(code_natural,V,numeral_numeral(code_natural,bit0(bit0(bit1(bit0(bit0(bit1(bit0(bit1(bit1(bit0(bit0(bit0(bit1(bit0(bit1(one))))))))))))))))),numeral_numeral(code_natural,bit1(bit1(bit0(bit0(bit1(bit1(bit0(bit1(bit1(bit1(bit1(bit1(bit0(one))))))))))))))))),minus_shift(numeral_numeral(code_natural,bit1(bit1(bit1(bit0(bit0(bit0(bit0(bit0(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(one))))))))))))))))))))))))))))))),times_times(code_natural,modulo_modulo(code_natural,W2,numeral_numeral(code_natural,bit0(bit1(bit1(bit0(bit0(bit1(bit0(bit0(bit0(bit1(bit1(bit1(bit0(bit0(bit1(one))))))))))))))))),numeral_numeral(code_natural,bit0(bit0(bit1(bit0(bit1(bit1(bit1(bit1(bit0(bit1(bit1(bit1(bit1(bit0(bit0(one))))))))))))))))),times_times(code_natural,divide_divide(code_natural,W2,numeral_numeral(code_natural,bit0(bit1(bit1(bit0(bit0(bit1(bit0(bit0(bit0(bit1(bit1(bit1(bit0(bit0(bit1(one))))))))))))))))),numeral_numeral(code_natural,bit1(bit1(bit1(bit1(bit0(bit0(bit1(bit1(bit0(bit1(bit1(one)))))))))))))))) )).

% next.simps
tff(fact_620_image__id,axiom,(
    ! [A: $tType] : aa(fun(A,A),fun(set(A),set(A)),image2(A,A),id(A)) = id(set(A)) )).

% image_id
tff(fact_621_Times__empty,axiom,(
    ! [G: $tType,H: $tType,A6: set(G),B9: set(H)] :
      ( product_Sigma(G,H,A6,aa(set(H),fun(G,set(H)),combk(set(H),G),B9)) = bot_bot(set(product_prod(G,H)))
    <=> ( A6 = bot_bot(set(G))
        | B9 = bot_bot(set(H)) ) ) )).

% Times_empty
tff(fact_622_conditional__action_Orel__compp,axiom,(
    ! [A: $tType,C: $tType,B: $tType,R: fun(A,fun(B,bool)),S3: fun(B,fun(C,bool))] : aa(fun(A,fun(C,bool)),fun(conditional_action(A),fun(conditional_action(C),bool)),condit4280512358590153947action(A,C),relcompp(A,B,C,R,S3)) = relcompp(conditional_action(A),conditional_action(B),conditional_action(C),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R),aa(fun(B,fun(C,bool)),fun(conditional_action(B),fun(conditional_action(C),bool)),condit4280512358590153947action(B,C),S3)) )).

% conditional_action.rel_compp
tff(fact_623_fun_Omap__id,axiom,(
    ! [A: $tType,D: $tType,T3: fun(D,A)] : aa(fun(D,A),fun(D,A),aa(fun(A,A),fun(fun(D,A),fun(D,A)),comp(A,A,D),id(A)),T3) = T3 )).

% fun.map_id
tff(fact_624_Sigma__empty2,axiom,(
    ! [H: $tType,G: $tType,A6: set(G)] : product_Sigma(G,H,A6,aa(set(H),fun(G,set(H)),combk(set(H),G),bot_bot(set(H)))) = bot_bot(set(product_prod(G,H))) )).

% Sigma_empty2
tff(fact_625_conditional__action_Orel__flip,axiom,(
    ! [A: $tType,B: $tType,R: fun(A,fun(B,bool)),A3: conditional_action(B),B3: conditional_action(A)] :
      ( pp(aa(conditional_action(A),bool,aa(conditional_action(B),fun(conditional_action(A),bool),aa(fun(B,fun(A,bool)),fun(conditional_action(B),fun(conditional_action(A),bool)),condit4280512358590153947action(B,A),conversep(A,B,R)),A3),B3))
    <=> pp(aa(conditional_action(B),bool,aa(conditional_action(A),fun(conditional_action(B),bool),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R),B3),A3)) ) )).

% conditional_action.rel_flip
tff(fact_626_wait__set__action_Odistinct_I7_J,axiom,(
    ! [W: $tType,T: $tType,X1: W] : wait_set_Suspend(W,T,X1) != wait_set_Notified(T,W) )).

% wait_set_action.distinct(7)
tff(fact_627_wait__set__action_Odistinct_I8_J,axiom,(
    ! [T: $tType,W: $tType,X1: W] : wait_set_Notified(T,W) != wait_set_Suspend(W,T,X1) )).

% wait_set_action.distinct(8)
tff(fact_628_relcompp__distrib2,axiom,(
    ! [A: $tType,B: $tType,C: $tType,S3: fun(A,fun(C,bool)),T2: fun(A,fun(C,bool)),R: fun(C,fun(B,bool))] : relcompp(A,C,B,aa(fun(A,fun(C,bool)),fun(A,fun(C,bool)),aa(fun(A,fun(C,bool)),fun(fun(A,fun(C,bool)),fun(A,fun(C,bool))),sup_sup(fun(A,fun(C,bool))),S3),T2),R) = aa(fun(A,fun(B,bool)),fun(A,fun(B,bool)),aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),fun(A,fun(B,bool))),sup_sup(fun(A,fun(B,bool))),relcompp(A,C,B,S3,R)),relcompp(A,C,B,T2,R)) )).

% relcompp_distrib2
tff(fact_629_interrupt__action_Omap__ident,axiom,(
    ! [G: $tType,T4: interrupt_action(G)] : aa(interrupt_action(G),interrupt_action(G),interr6514223866936857682action(G,G,combi(G)),T4) = T4 )).

% interrupt_action.map_ident
tff(fact_630_relcompp__distrib,axiom,(
    ! [A: $tType,B: $tType,C: $tType,R: fun(A,fun(C,bool)),S3: fun(C,fun(B,bool)),T2: fun(C,fun(B,bool))] : relcompp(A,C,B,R,aa(fun(C,fun(B,bool)),fun(C,fun(B,bool)),aa(fun(C,fun(B,bool)),fun(fun(C,fun(B,bool)),fun(C,fun(B,bool))),sup_sup(fun(C,fun(B,bool))),S3),T2)) = aa(fun(A,fun(B,bool)),fun(A,fun(B,bool)),aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),fun(A,fun(B,bool))),sup_sup(fun(A,fun(B,bool))),relcompp(A,C,B,R,S3)),relcompp(A,C,B,R,T2)) )).

% relcompp_distrib
tff(fact_631_conditional__action_Omap_I1_J,axiom,(
    ! [A: $tType,T: $tType,F3: fun(T,A),X1: T] : aa(conditional_action(T),conditional_action(A),aa(fun(T,A),fun(conditional_action(T),conditional_action(A)),condit198635377858011928action(T,A),F3),aa(T,conditional_action(T),conditional_Join(T),X1)) = aa(A,conditional_action(A),conditional_Join(A),aa(T,A,F3,X1)) )).

% conditional_action.map(1)
tff(fact_632_apfst__id,axiom,(
    ! [B: $tType,A: $tType] : product_apfst(A,A,B,id(A)) = id(product_prod(A,B)) )).

% apfst_id
tff(fact_633_Predicate_Oiterate__upto_Opsimps,axiom,(
    ! [G: $tType,F9: fun(code_natural,G),N3: code_natural,M4: code_natural] :
      ( accp(product_prod(fun(code_natural,G),product_prod(code_natural,code_natural)),iterate_upto_rel(G),aa(product_prod(code_natural,code_natural),product_prod(fun(code_natural,G),product_prod(code_natural,code_natural)),aa(fun(code_natural,G),fun(product_prod(code_natural,code_natural),product_prod(fun(code_natural,G),product_prod(code_natural,code_natural))),product_Pair(fun(code_natural,G),product_prod(code_natural,code_natural)),F9),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),N3),M4)))
     => iterate_upto(G,F9,N3,M4) = seq2(G,aa(seq(G),fun(product_unit,seq(G)),combk(seq(G),product_unit),aa(seq(G),seq(G),aa(seq(G),fun(seq(G),seq(G)),aa(bool,fun(seq(G),fun(seq(G),seq(G))),if(seq(G)),ord_less(code_natural,M4,N3)),empty(G)),insert(G,aa(code_natural,G,F9,N3),iterate_upto(G,F9,plus_plus(code_natural,N3,one_one(code_natural)),M4))))) ) )).

% Predicate.iterate_upto.psimps
tff(fact_634_apsnd__id,axiom,(
    ! [B: $tType,A: $tType] : product_apsnd(B,B,A,id(B)) = id(product_prod(A,B)) )).

% apsnd_id
tff(fact_635_interrupt__action_Odistinct_I5_J,axiom,(
    ! [T: $tType,X2: T,X32: T] : interrupt_Interrupt(T,X2) != interr7976201102587534891errupt(T,X32) )).

% interrupt_action.distinct(5)
tff(fact_636_swap__comp__swap,axiom,(
    ! [B: $tType,A: $tType] : aa(fun(product_prod(A,B),product_prod(B,A)),fun(product_prod(A,B),product_prod(A,B)),aa(fun(product_prod(B,A),product_prod(A,B)),fun(fun(product_prod(A,B),product_prod(B,A)),fun(product_prod(A,B),product_prod(A,B))),comp(product_prod(B,A),product_prod(A,B),product_prod(A,B)),product_swap(B,A)),product_swap(A,B)) = id(product_prod(A,B)) )).

% swap_comp_swap
tff(fact_637_interrupt__action_Odistinct_I6_J,axiom,(
    ! [T: $tType,X32: T,X2: T] : interr7976201102587534891errupt(T,X32) != interrupt_Interrupt(T,X2) )).

% interrupt_action.distinct(6)
tff(fact_638_fun_Omap__id0,axiom,(
    ! [A: $tType,D: $tType] : aa(fun(A,A),fun(fun(D,A),fun(D,A)),comp(A,A,D),id(A)) = id(fun(D,A)) )).

% fun.map_id0
tff(fact_639_Predicate_Oiterate__upto_Opelims,axiom,(
    ! [G: $tType,X9: fun(code_natural,G),Xa5: code_natural,Xb4: code_natural,Y9: pred(G)] :
      ( iterate_upto(G,X9,Xa5,Xb4) = Y9
     => ( accp(product_prod(fun(code_natural,G),product_prod(code_natural,code_natural)),iterate_upto_rel(G),aa(product_prod(code_natural,code_natural),product_prod(fun(code_natural,G),product_prod(code_natural,code_natural)),aa(fun(code_natural,G),fun(product_prod(code_natural,code_natural),product_prod(fun(code_natural,G),product_prod(code_natural,code_natural))),product_Pair(fun(code_natural,G),product_prod(code_natural,code_natural)),X9),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),Xa5),Xb4)))
       => ~ ( Y9 = seq2(G,aa(seq(G),fun(product_unit,seq(G)),combk(seq(G),product_unit),aa(seq(G),seq(G),aa(seq(G),fun(seq(G),seq(G)),aa(bool,fun(seq(G),fun(seq(G),seq(G))),if(seq(G)),ord_less(code_natural,Xb4,Xa5)),empty(G)),insert(G,aa(code_natural,G,X9,Xa5),iterate_upto(G,X9,plus_plus(code_natural,Xa5,one_one(code_natural)),Xb4)))))
           => ~ accp(product_prod(fun(code_natural,G),product_prod(code_natural,code_natural)),iterate_upto_rel(G),aa(product_prod(code_natural,code_natural),product_prod(fun(code_natural,G),product_prod(code_natural,code_natural)),aa(fun(code_natural,G),fun(product_prod(code_natural,code_natural),product_prod(fun(code_natural,G),product_prod(code_natural,code_natural))),product_Pair(fun(code_natural,G),product_prod(code_natural,code_natural)),X9),aa(code_natural,product_prod(code_natural,code_natural),aa(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural),Xa5),Xb4))) ) ) ) )).

% Predicate.iterate_upto.pelims
tff(fact_640_image2pE,axiom,(
    ! [D: $tType,B: $tType,A: $tType,C: $tType,F3: fun(A,B),G3: fun(C,D),R: fun(A,fun(C,bool)),Fx: B,Gy: D] :
      ( pp(aa(D,bool,aa(B,fun(D,bool),bNF_Greatest_image2p(A,B,C,D,F3,G3,R),Fx),Gy))
     => ~ ! [X4: A] :
            ( Fx = aa(A,B,F3,X4)
           => ! [Y3: C] :
                ( Gy = aa(C,D,G3,Y3)
               => ~ pp(aa(C,bool,aa(A,fun(C,bool),R,X4),Y3)) ) ) ) )).

% image2pE
tff(fact_641_new__thread__action_Osimps_I20_J,axiom,(
    ! [X: $tType,T: $tType,M: $tType,X21: T,X22: bool] : new_th6593320897181800883action(T,X,M,new_th4503388622997288770Exists(T,X,M,X21,X22)) = bot_bot(set(M)) )).

% new_thread_action.simps(20)
tff(fact_642_image2pI,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R: fun(A,fun(B,bool)),X3: A,Y: B,F3: fun(A,C),G3: fun(B,D)] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),R,X3),Y))
     => pp(aa(D,bool,aa(C,fun(D,bool),bNF_Greatest_image2p(A,C,B,D,F3,G3,R),aa(A,C,F3,X3)),aa(B,D,G3,Y))) ) )).

% image2pI
tff(fact_643_wait__set__action_Osimps_I24_J,axiom,(
    ! [T: $tType,W: $tType,X42: T,X32: W] : wait_set_WakeUp(T,W,X42) != wait_set_NotifyAll(W,T,X32) )).

% wait_set_action.simps(24)
tff(fact_644_nchotomy__relcomppE,axiom,(
    ! [C: $tType,B: $tType,A: $tType,D: $tType,F3: fun(B,A),R2: fun(C,fun(A,bool)),S: fun(A,fun(D,bool)),A3: C,C3: D] :
      ( ! [Y3: A] :
        ? [X5: B] : Y3 = aa(B,A,F3,X5)
     => ( pp(aa(D,bool,aa(C,fun(D,bool),relcompp(C,A,D,R2,S),A3),C3))
       => ~ ! [B2: B] :
              ( pp(aa(A,bool,aa(C,fun(A,bool),R2,A3),aa(B,A,F3,B2)))
             => ~ pp(aa(D,bool,aa(A,fun(D,bool),S,aa(B,A,F3,B2)),C3)) ) ) ) )).

% nchotomy_relcomppE
tff(fact_645_UNIV__not__empty,axiom,(
    ! [A: $tType] : top_top(set(A)) != bot_bot(set(A)) )).

% UNIV_not_empty
tff(fact_646_Sup_OSUP__id__eq,axiom,(
    ! [A: $tType,Sup: fun(set(A),A),A5: set(A)] : aa(set(A),A,Sup,aa(set(A),set(A),aa(fun(A,A),fun(set(A),set(A)),image2(A,A),id(A)),A5)) = aa(set(A),A,Sup,A5) )).

% Sup.SUP_id_eq
tff(fact_647_image__insert,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),A3: B,B6: set(B)] : aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),aa(set(B),set(B),aa(B,fun(set(B),set(B)),insert2(B),A3),B6)) = aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),aa(B,A,F3,A3)),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),B6)) )).

% image_insert
tff(fact_648_wait__set__action_Osimps_I23_J,axiom,(
    ! [W: $tType,T: $tType,X32: W,X42: T] : wait_set_NotifyAll(W,T,X32) != wait_set_WakeUp(T,W,X42) )).

% wait_set_action.simps(23)
tff(fact_649_Inf_OINF__id__eq,axiom,(
    ! [A: $tType,Inf: fun(set(A),A),A5: set(A)] : aa(set(A),A,Inf,aa(set(A),set(A),aa(fun(A,A),fun(set(A),set(A)),image2(A,A),id(A)),A5)) = aa(set(A),A,Inf,A5) )).

% Inf.INF_id_eq
tff(fact_650_Un__insert__right,axiom,(
    ! [A: $tType,A5: set(A),A3: A,B6: set(A)] : aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),A3),B6)) = aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),A3),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)) )).

% Un_insert_right
tff(fact_651_new__thread__action_Osimps_I19_J,axiom,(
    ! [T: $tType,X: $tType,M: $tType,X11: T,X12: X,X13: M] : new_th6593320897181800883action(T,X,M,new_thread_NewThread(T,X,M,X11,X12,X13)) = aa(set(M),set(M),aa(M,fun(set(M),set(M)),insert2(M),X13),bot_bot(set(M))) )).

% new_thread_action.simps(19)
tff(fact_652_comp__eq__id__dest,axiom,(
    ! [C: $tType,B: $tType,A: $tType,A3: fun(C,B),B3: fun(A,C),C3: fun(A,B),V: A] :
      ( aa(fun(A,C),fun(A,B),aa(fun(C,B),fun(fun(A,C),fun(A,B)),comp(C,B,A),A3),B3) = aa(fun(A,B),fun(A,B),aa(fun(B,B),fun(fun(A,B),fun(A,B)),comp(B,B,A),id(B)),C3)
     => aa(C,B,A3,aa(A,C,B3,V)) = aa(A,B,C3,V) ) )).

% comp_eq_id_dest
tff(fact_653_bot__empty__eq2,axiom,(
    ! [B: $tType,A: $tType,X5: A,Xa2: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),bot_bot(fun(A,fun(B,bool))),X5),Xa2))
    <=> pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X5),Xa2)),bot_bot(set(product_prod(A,B))))) ) )).

% bot_empty_eq2
tff(fact_654_conditional__action_Octr__transfer_I2_J,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool))] : pp(aa(conditional_action(A),bool,aa(conditional_action(T),fun(conditional_action(A),bool),aa(fun(T,fun(A,bool)),fun(conditional_action(T),fun(conditional_action(A),bool)),condit4280512358590153947action(T,A),R),conditional_Yield(T)),conditional_Yield(A))) )).

% conditional_action.ctr_transfer(2)
tff(fact_655_pointfree__idE,axiom,(
    ! [B: $tType,A: $tType,F3: fun(B,A),G3: fun(A,B),X3: A] :
      ( aa(fun(A,B),fun(A,A),aa(fun(B,A),fun(fun(A,B),fun(A,A)),comp(B,A,A),F3),G3) = id(A)
     => aa(B,A,F3,aa(A,B,G3,X3)) = X3 ) )).

% pointfree_idE
tff(fact_656_interrupt__action_Oinject_I1_J,axiom,(
    ! [T: $tType,X11: T,X12: bool,Y11: T,Y12: bool] :
      ( interr5885539089632487139rupted(T,X11,X12) = interr5885539089632487139rupted(T,Y11,Y12)
    <=> ( X11 = Y11
        & ( pp(X12)
        <=> pp(Y12) ) ) ) )).

% interrupt_action.inject(1)
tff(fact_657_leq__OOI,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( R = fequal(A)
     => pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),R),relcompp(A,A,A,R,R))) ) )).

% leq_OOI
tff(fact_658_new__thread__action_Osimps_I15_J,axiom,(
    ! [M: $tType,X: $tType,T: $tType,X11: T,X12: X,X13: M] : new_th4037974794548711221action(T,X,M,new_thread_NewThread(T,X,M,X11,X12,X13)) = aa(set(T),set(T),aa(T,fun(set(T),set(T)),insert2(T),X11),bot_bot(set(T))) )).

% new_thread_action.simps(15)
tff(fact_659_pick__middlep,axiom,(
    ! [B: $tType,A: $tType,C: $tType,P: fun(A,fun(B,bool)),Q: fun(B,fun(C,bool)),A3: A,C3: C] :
      ( pp(aa(C,bool,aa(A,fun(C,bool),relcompp(A,B,C,P,Q),A3),C3))
     => ( pp(aa(B,bool,aa(A,fun(B,bool),P,A3),bNF_pick_middlep(A,B,C,P,Q,A3,C3)))
        & pp(aa(C,bool,aa(B,fun(C,bool),Q,bNF_pick_middlep(A,B,C,P,Q,A3,C3)),C3)) ) ) )).

% pick_middlep
tff(fact_660_new__thread__action_Oset__cases_I3_J,axiom,(
    ! [X: $tType,T: $tType,M: $tType,E3: M,A3: new_thread_action(T,X,M)] :
      ( pp(aa(set(M),bool,aa(M,fun(set(M),bool),member(M),E3),new_th6593320897181800883action(T,X,M,A3)))
     => ~ ! [Z1: T,Z22: X] : A3 != new_thread_NewThread(T,X,M,Z1,Z22,E3) ) )).

% new_thread_action.set_cases(3)
tff(fact_661_GrD1,axiom,(
    ! [B: $tType,A: $tType,X3: A,Fx: B,A5: set(A),F3: fun(A,B)] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),Fx)),bNF_Gr(A,B,A5,F3)))
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X3),A5)) ) )).

% GrD1
tff(fact_662_new__thread__action_Oset__cases_I2_J,axiom,(
    ! [X: $tType,T: $tType,M: $tType,E3: X,A3: new_thread_action(T,X,M)] :
      ( pp(aa(set(X),bool,aa(X,fun(set(X),bool),member(X),E3),new_th5315647845865256052action(T,X,M,A3)))
     => ~ ! [Z1: T,Z32: M] : A3 != new_thread_NewThread(T,X,M,Z1,E3,Z32) ) )).

% new_thread_action.set_cases(2)
tff(fact_663_GrD2,axiom,(
    ! [A: $tType,B: $tType,X3: A,Fx: B,A5: set(A),F3: fun(A,B)] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),Fx)),bNF_Gr(A,B,A5,F3)))
     => aa(A,B,F3,X3) = Fx ) )).

% GrD2
tff(fact_664_Un__insert__left,axiom,(
    ! [A: $tType,A3: A,B6: set(A),C6: set(A)] : aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),A3),B6)),C6) = aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),A3),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),B6),C6)) )).

% Un_insert_left
tff(fact_665_wait__set__action_Osimps_I17_J,axiom,(
    ! [W: $tType,T: $tType,X2: W,X42: T] : wait_set_Notify(W,T,X2) != wait_set_WakeUp(T,W,X42) )).

% wait_set_action.simps(17)
tff(fact_666_csquare__def,axiom,(
    ! [B: $tType,C: $tType,D: $tType,A: $tType,A5: set(A),F1: fun(B,C),F22: fun(D,C),P12: fun(A,B),P23: fun(A,D)] :
      ( bNF_csquare(A,B,C,D,A5,F1,F22,P12,P23)
    <=> ! [X6: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X6),A5))
         => aa(B,C,F1,aa(A,B,P12,X6)) = aa(D,C,F22,aa(A,D,P23,X6)) ) ) )).

% csquare_def
tff(fact_667_new__thread__action_Oset__intros_I3_J,axiom,(
    ! [X: $tType,T: $tType,M: $tType,X12: X,X11: T,X13: M] : pp(aa(set(X),bool,aa(X,fun(set(X),bool),member(X),X12),new_th5315647845865256052action(T,X,M,new_thread_NewThread(T,X,M,X11,X12,X13)))) )).

% new_thread_action.set_intros(3)
tff(fact_668_apfst__def,axiom,(
    ! [A: $tType,C: $tType,B: $tType,F3: fun(A,C)] : product_apfst(A,C,B,F3) = product_map_prod(A,C,B,B,F3,id(B)) )).

% apfst_def
tff(fact_669_wait__set__action_Osimps_I18_J,axiom,(
    ! [T: $tType,W: $tType,X42: T,X2: W] : wait_set_WakeUp(T,W,X42) != wait_set_Notify(W,T,X2) )).

% wait_set_action.simps(18)
tff(fact_670_apsnd__def,axiom,(
    ! [A: $tType,C: $tType,B: $tType,F3: fun(B,C)] : product_apsnd(B,C,A,F3) = product_map_prod(A,A,B,C,id(A),F3) )).

% apsnd_def
tff(fact_671_interrupt__action_Osize_I2_J,axiom,(
    ! [T: $tType,X3: fun(T,nat),X2: T] : aa(interrupt_action(T),nat,interr4439281168783392195action(T,X3),interrupt_Interrupt(T,X2)) = plus_plus(nat,aa(T,nat,X3,X2),suc(zero_zero(nat))) )).

% interrupt_action.size(2)
tff(fact_672_fstOp__in,axiom,(
    ! [B: $tType,C: $tType,A: $tType,Ac2: product_prod(A,B),P: fun(A,fun(C,bool)),Q: fun(C,fun(B,bool))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),Ac2),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),relcompp(A,C,B,P,Q)))))
     => pp(aa(set(product_prod(A,C)),bool,aa(product_prod(A,C),fun(set(product_prod(A,C)),bool),member(product_prod(A,C)),aa(product_prod(A,B),product_prod(A,C),bNF_fstOp(A,C,B,P,Q),Ac2)),aa(fun(product_prod(A,C),bool),set(product_prod(A,C)),collect(product_prod(A,C)),aa(fun(A,fun(C,bool)),fun(product_prod(A,C),bool),product_case_prod(A,C,bool),P)))) ) )).

% fstOp_in
tff(fact_673_bsqr__max2,axiom,(
    ! [A: $tType,R2: set(product_prod(A,A)),A1: A,A22: A,B1: A,B22: A] :
      ( order_well_order_on(A,field(A,R2),R2)
     => ( pp(aa(set(product_prod(product_prod(A,A),product_prod(A,A))),bool,aa(product_prod(product_prod(A,A),product_prod(A,A)),fun(set(product_prod(product_prod(A,A),product_prod(A,A))),bool),member(product_prod(product_prod(A,A),product_prod(A,A))),aa(product_prod(A,A),product_prod(product_prod(A,A),product_prod(A,A)),aa(product_prod(A,A),fun(product_prod(A,A),product_prod(product_prod(A,A),product_prod(A,A))),product_Pair(product_prod(A,A),product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A1),A22)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),B1),B22))),bNF_Wellorder_bsqr(A,R2)))
       => pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),bNF_We1388413361240627857o_max2(A,R2,A1,A22)),bNF_We1388413361240627857o_max2(A,R2,B1,B22))),R2)) ) ) )).

% bsqr_max2
tff(fact_674_sndOp__in,axiom,(
    ! [A: $tType,B: $tType,C: $tType,Ac2: product_prod(A,B),P: fun(A,fun(C,bool)),Q: fun(C,fun(B,bool))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),Ac2),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),relcompp(A,C,B,P,Q)))))
     => pp(aa(set(product_prod(C,B)),bool,aa(product_prod(C,B),fun(set(product_prod(C,B)),bool),member(product_prod(C,B)),aa(product_prod(A,B),product_prod(C,B),bNF_sndOp(A,C,B,P,Q),Ac2)),aa(fun(product_prod(C,B),bool),set(product_prod(C,B)),collect(product_prod(C,B)),aa(fun(C,fun(B,bool)),fun(product_prod(C,B),bool),product_case_prod(C,B,bool),Q)))) ) )).

% sndOp_in
tff(fact_675_wait__set__action_Osimps_I10_J,axiom,(
    ! [T: $tType,W: $tType,X42: T,X1: W] : wait_set_WakeUp(T,W,X42) != wait_set_Suspend(W,T,X1) )).

% wait_set_action.simps(10)
tff(fact_676_rel__fun__image2p,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,R: fun(A,fun(B,bool)),F3: fun(A,C),G3: fun(B,D)] : pp(aa(fun(B,D),bool,aa(fun(A,C),fun(fun(B,D),bool),bNF_rel_fun(A,B,C,D,R,bNF_Greatest_image2p(A,C,B,D,F3,G3,R)),F3),G3)) )).

% rel_fun_image2p
tff(fact_677_interrupt__action_Osize_I3_J,axiom,(
    ! [T: $tType,X3: fun(T,nat),X32: T] : aa(interrupt_action(T),nat,interr4439281168783392195action(T,X3),interr7976201102587534891errupt(T,X32)) = plus_plus(nat,aa(T,nat,X3,X32),suc(zero_zero(nat))) )).

% interrupt_action.size(3)
tff(fact_678_wait__set__action_Odistinct_I5_J,axiom,(
    ! [W: $tType,T: $tType,X1: W,X42: T] : wait_set_Suspend(W,T,X1) != wait_set_WakeUp(T,W,X42) )).

% wait_set_action.distinct(5)
tff(fact_679_convol__mem__GrpI,axiom,(
    ! [B: $tType,A: $tType,X3: A,A5: set(A),G3: fun(A,B)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X3),A5))
     => pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(A,product_prod(A,B),bNF_convol(A,A,B,id(A),G3),X3)),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),bNF_Grp(A,B,A5,G3))))) ) )).

% convol_mem_GrpI
tff(fact_680_conditional__action_Orel__cong,axiom,(
    ! [A: $tType,B: $tType,X3: conditional_action(A),Ya2: conditional_action(A),Y: conditional_action(B),Xa3: conditional_action(B),R: fun(A,fun(B,bool)),Ra2: fun(A,fun(B,bool))] :
      ( X3 = Ya2
     => ( Y = Xa3
       => ( ! [Z2: A,Yb: B] :
              ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(conditional_action(A),set(A),condit2393454222984209554action(A),Ya2)))
             => ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),Yb),aa(conditional_action(B),set(B),condit2393454222984209554action(B),Xa3)))
               => ( pp(aa(B,bool,aa(A,fun(B,bool),R,Z2),Yb))
                <=> pp(aa(B,bool,aa(A,fun(B,bool),Ra2,Z2),Yb)) ) ) )
         => ( pp(aa(conditional_action(B),bool,aa(conditional_action(A),fun(conditional_action(B),bool),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R),X3),Y))
          <=> pp(aa(conditional_action(B),bool,aa(conditional_action(A),fun(conditional_action(B),bool),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),Ra2),Ya2),Xa3)) ) ) ) ) )).

% conditional_action.rel_cong
tff(fact_681_left__right__inverse__eq,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),G3: fun(A,B),H2: fun(B,A)] :
      ( aa(fun(A,B),fun(A,A),aa(fun(B,A),fun(fun(A,B),fun(A,A)),comp(B,A,A),F3),G3) = id(A)
     => ( aa(fun(B,A),fun(B,B),aa(fun(A,B),fun(fun(B,A),fun(B,B)),comp(A,B,B),G3),H2) = id(B)
       => F3 = H2 ) ) )).

% left_right_inverse_eq
tff(fact_682_interrupt__action_Omap__id0,axiom,(
    ! [A: $tType] : interr6514223866936857682action(A,A,id(A)) = id(interrupt_action(A)) )).

% interrupt_action.map_id0
tff(fact_683_isomorphism__expand,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),G3: fun(A,B)] :
      ( ( aa(fun(A,B),fun(A,A),aa(fun(B,A),fun(fun(A,B),fun(A,A)),comp(B,A,A),F3),G3) = id(A)
        & aa(fun(B,A),fun(B,B),aa(fun(A,B),fun(fun(B,A),fun(B,B)),comp(A,B,B),G3),F3) = id(B) )
    <=> ( ! [X6: A] : aa(B,A,F3,aa(A,B,G3,X6)) = X6
        & ! [X6: B] : aa(A,B,G3,aa(B,A,F3,X6)) = X6 ) ) )).

% isomorphism_expand
tff(fact_684_new__thread__action_Oset_I3_J,axiom,(
    ! [M: $tType,T: $tType,X: $tType,X11: T,X12: X,X13: M] : new_th5315647845865256052action(T,X,M,new_thread_NewThread(T,X,M,X11,X12,X13)) = aa(set(X),set(X),aa(X,fun(set(X),set(X)),insert2(X),X12),bot_bot(set(X))) )).

% new_thread_action.set(3)
tff(fact_685_image__Fpow__mono,axiom,(
    ! [B: $tType,A: $tType,F3: fun(B,A),A5: set(B),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)),B6))
     => pp(aa(set(set(A)),bool,aa(set(set(A)),fun(set(set(A)),bool),ord_less_eq(set(set(A))),aa(set(set(B)),set(set(A)),aa(fun(set(B),set(A)),fun(set(set(B)),set(set(A))),image2(set(B),set(A)),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3)),finite_Fpow(B,A5))),finite_Fpow(A,B6))) ) )).

% image_Fpow_mono
tff(fact_686_new__thread__action_Omap__id0,axiom,(
    ! [C: $tType,B: $tType,A: $tType] : new_th6052504119144402208action(A,A,B,B,C,C,id(A),id(B),id(C)) = id(new_thread_action(A,B,C)) )).

% new_thread_action.map_id0
tff(fact_687_surj__swap,axiom,(
    ! [B: $tType,A: $tType] : aa(set(product_prod(B,A)),set(product_prod(A,B)),aa(fun(product_prod(B,A),product_prod(A,B)),fun(set(product_prod(B,A)),set(product_prod(A,B))),image2(product_prod(B,A),product_prod(A,B)),product_swap(B,A)),top_top(set(product_prod(B,A)))) = top_top(set(product_prod(A,B))) )).

% surj_swap
tff(fact_688_interrupt__action_Osimps_I5_J,axiom,(
    ! [T: $tType,X2: T,X11: T,X12: bool] : interrupt_Interrupt(T,X2) != interr5885539089632487139rupted(T,X11,X12) )).

% interrupt_action.simps(5)
tff(fact_689_image2__eqI,axiom,(
    ! [A: $tType,C: $tType,B: $tType,B3: A,F3: fun(B,A),X3: B,C3: C,G3: fun(B,C),A5: set(B)] :
      ( B3 = aa(B,A,F3,X3)
     => ( C3 = aa(B,C,G3,X3)
       => ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X3),A5))
         => pp(aa(set(product_prod(A,C)),bool,aa(product_prod(A,C),fun(set(product_prod(A,C)),bool),member(product_prod(A,C)),aa(C,product_prod(A,C),aa(A,fun(C,product_prod(A,C)),product_Pair(A,C),B3),C3)),bNF_Greatest_image2(B,A,C,A5,F3,G3))) ) ) ) )).

% image2_eqI
tff(fact_690_conditional__action_Opred__map,axiom,(
    ! [B: $tType,A: $tType,Q: fun(B,bool),F3: fun(A,B),X3: conditional_action(A)] :
      ( pp(aa(conditional_action(B),bool,aa(fun(B,bool),fun(conditional_action(B),bool),condit606476673698705123action(B),Q),aa(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),F3),X3)))
    <=> pp(aa(conditional_action(A),bool,aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),aa(fun(A,B),fun(A,bool),aa(fun(B,bool),fun(fun(A,B),fun(A,bool)),comp(B,bool,A),Q),F3)),X3)) ) )).

% conditional_action.pred_map
tff(fact_691_Id__on__Gr,axiom,(
    ! [A: $tType,A5: set(A)] : id_on(A,A5) = bNF_Gr(A,A,A5,id(A)) )).

% Id_on_Gr
tff(fact_692_interrupt__action_Osimps_I6_J,axiom,(
    ! [T: $tType,X11: T,X12: bool,X32: T] : interr5885539089632487139rupted(T,X11,X12) != interr7976201102587534891errupt(T,X32) )).

% interrupt_action.simps(6)
tff(fact_693_sup__top__left,axiom,(
    ! [A: $tType] :
      ( bounded_lattice_top(A)
     => ! [X3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),top_top(A)),X3) = top_top(A) ) )).

% sup_top_left
tff(fact_694_wait__set__action_Odistinct_I11_J,axiom,(
    ! [T: $tType,W: $tType,X2: W,X32: W] : wait_set_Notify(W,T,X2) != wait_set_NotifyAll(W,T,X32) )).

% wait_set_action.distinct(11)
tff(fact_695_sup__top__right,axiom,(
    ! [A: $tType] :
      ( bounded_lattice_top(A)
     => ! [X3: A] : aa(A,A,aa(A,fun(A,A),sup_sup(A),X3),top_top(A)) = top_top(A) ) )).

% sup_top_right
tff(fact_696_FieldI2,axiom,(
    ! [A: $tType,I3: A,J3: A,R: set(product_prod(A,A))] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),I3),J3)),R))
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),J3),field(A,R))) ) )).

% FieldI2
tff(fact_697_conditional__action_Orel__inject_I1_J,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool)),X1: T,Y1: A] :
      ( pp(aa(conditional_action(A),bool,aa(conditional_action(T),fun(conditional_action(A),bool),aa(fun(T,fun(A,bool)),fun(conditional_action(T),fun(conditional_action(A),bool)),condit4280512358590153947action(T,A),R),aa(T,conditional_action(T),conditional_Join(T),X1)),aa(A,conditional_action(A),conditional_Join(A),Y1)))
    <=> pp(aa(A,bool,aa(T,fun(A,bool),R,X1),Y1)) ) )).

% conditional_action.rel_inject(1)
tff(fact_698_wait__set__action_Odistinct_I12_J,axiom,(
    ! [T: $tType,W: $tType,X32: W,X2: W] : wait_set_NotifyAll(W,T,X32) != wait_set_Notify(W,T,X2) )).

% wait_set_action.distinct(12)
tff(fact_699_range__snd,axiom,(
    ! [B: $tType,A: $tType] : aa(set(product_prod(B,A)),set(A),aa(fun(product_prod(B,A),A),fun(set(product_prod(B,A)),set(A)),image2(product_prod(B,A),A),product_snd(B,A)),top_top(set(product_prod(B,A)))) = top_top(set(A)) )).

% range_snd
tff(fact_700_conditional__action_Orel__intros_I1_J,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool)),X1: T,Y1: A] :
      ( pp(aa(A,bool,aa(T,fun(A,bool),R,X1),Y1))
     => pp(aa(conditional_action(A),bool,aa(conditional_action(T),fun(conditional_action(A),bool),aa(fun(T,fun(A,bool)),fun(conditional_action(T),fun(conditional_action(A),bool)),condit4280512358590153947action(T,A),R),aa(T,conditional_action(T),conditional_Join(T),X1)),aa(A,conditional_action(A),conditional_Join(A),Y1))) ) )).

% conditional_action.rel_intros(1)
tff(fact_701_range__fst,axiom,(
    ! [B: $tType,A: $tType] : aa(set(product_prod(A,B)),set(A),aa(fun(product_prod(A,B),A),fun(set(product_prod(A,B)),set(A)),image2(product_prod(A,B),A),product_fst(A,B)),top_top(set(product_prod(A,B)))) = top_top(set(A)) )).

% range_fst
tff(fact_702_conditional__action_Orel__mono__strong,axiom,(
    ! [A: $tType,B: $tType,R: fun(A,fun(B,bool)),X3: conditional_action(A),Y: conditional_action(B),Ra2: fun(A,fun(B,bool))] :
      ( pp(aa(conditional_action(B),bool,aa(conditional_action(A),fun(conditional_action(B),bool),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R),X3),Y))
     => ( ! [Z2: A,Yb: B] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(conditional_action(A),set(A),condit2393454222984209554action(A),X3)))
           => ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),Yb),aa(conditional_action(B),set(B),condit2393454222984209554action(B),Y)))
             => ( pp(aa(B,bool,aa(A,fun(B,bool),R,Z2),Yb))
               => pp(aa(B,bool,aa(A,fun(B,bool),Ra2,Z2),Yb)) ) ) )
       => pp(aa(conditional_action(B),bool,aa(conditional_action(A),fun(conditional_action(B),bool),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),Ra2),X3),Y)) ) ) )).

% conditional_action.rel_mono_strong
tff(fact_703_surjD,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),Y: A] :
      ( aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),top_top(set(B))) = top_top(set(A))
     => ? [X4: B] : Y = aa(B,A,F3,X4) ) )).

% surjD
tff(fact_704_conditional__action_Opred__transfer,axiom,(
    ! [A: $tType,B: $tType,R: fun(A,fun(B,bool))] : pp(aa(fun(fun(B,bool),fun(conditional_action(B),bool)),bool,aa(fun(fun(A,bool),fun(conditional_action(A),bool)),fun(fun(fun(B,bool),fun(conditional_action(B),bool)),bool),bNF_rel_fun(fun(A,bool),fun(B,bool),fun(conditional_action(A),bool),fun(conditional_action(B),bool),bNF_rel_fun(A,B,bool,bool,R,fequal(bool)),bNF_rel_fun(conditional_action(A),conditional_action(B),bool,bool,aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R),fequal(bool))),condit606476673698705123action(A)),condit606476673698705123action(B))) )).

% conditional_action.pred_transfer
tff(fact_705_surjE,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),Y: A] :
      ( aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),top_top(set(B))) = top_top(set(A))
     => ~ ! [X4: B] : Y != aa(B,A,F3,X4) ) )).

% surjE
tff(fact_706_wait__set__action_Odistinct_I3_J,axiom,(
    ! [T: $tType,W: $tType,X1: W,X32: W] : wait_set_Suspend(W,T,X1) != wait_set_NotifyAll(W,T,X32) )).

% wait_set_action.distinct(3)
tff(fact_707_surjI,axiom,(
    ! [B: $tType,A: $tType,G3: fun(B,A),F3: fun(A,B)] :
      ( ! [X4: A] : aa(B,A,G3,aa(A,B,F3,X4)) = X4
     => aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),G3),top_top(set(B))) = top_top(set(A)) ) )).

% surjI
tff(fact_708_FieldI1,axiom,(
    ! [A: $tType,I3: A,J3: A,R: set(product_prod(A,A))] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),I3),J3)),R))
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),I3),field(A,R))) ) )).

% FieldI1
tff(fact_709_conditional__action_Orel__refl__strong,axiom,(
    ! [A: $tType,X3: conditional_action(A),Ra2: fun(A,fun(A,bool))] :
      ( ! [Z2: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(conditional_action(A),set(A),condit2393454222984209554action(A),X3)))
         => pp(aa(A,bool,aa(A,fun(A,bool),Ra2,Z2),Z2)) )
     => pp(aa(conditional_action(A),bool,aa(conditional_action(A),fun(conditional_action(A),bool),aa(fun(A,fun(A,bool)),fun(conditional_action(A),fun(conditional_action(A),bool)),condit4280512358590153947action(A,A),Ra2),X3),X3)) ) )).

% conditional_action.rel_refl_strong
tff(fact_710_rangeI,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A),X3: B] : pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),aa(B,A,F3,X3)),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),top_top(set(B))))) )).

% rangeI
tff(fact_711_wait__set__action_Odistinct_I4_J,axiom,(
    ! [T: $tType,W: $tType,X32: W,X1: W] : wait_set_NotifyAll(W,T,X32) != wait_set_Suspend(W,T,X1) )).

% wait_set_action.distinct(4)
tff(fact_712_surj__def,axiom,(
    ! [A: $tType,B: $tType,F3: fun(B,A)] :
      ( aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),top_top(set(B))) = top_top(set(A))
    <=> ! [Y8: A] :
        ? [X6: B] : Y8 = aa(B,A,F3,X6) ) )).

% surj_def
tff(fact_713_conditional__action_Orel__cases,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool)),A3: conditional_action(T),B3: conditional_action(A)] :
      ( pp(aa(conditional_action(A),bool,aa(conditional_action(T),fun(conditional_action(A),bool),aa(fun(T,fun(A,bool)),fun(conditional_action(T),fun(conditional_action(A),bool)),condit4280512358590153947action(T,A),R),A3),B3))
     => ( ! [X4: T] :
            ( A3 = aa(T,conditional_action(T),conditional_Join(T),X4)
           => ! [Y3: A] :
                ( B3 = aa(A,conditional_action(A),conditional_Join(A),Y3)
               => ~ pp(aa(A,bool,aa(T,fun(A,bool),R,X4),Y3)) ) )
       => ~ ( A3 = conditional_Yield(T)
           => B3 != conditional_Yield(A) ) ) ) )).

% conditional_action.rel_cases
tff(fact_714_range__eqI,axiom,(
    ! [A: $tType,B: $tType,B3: A,F3: fun(B,A),X3: B] :
      ( B3 = aa(B,A,F3,X3)
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),B3),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),top_top(set(B))))) ) )).

% range_eqI
tff(fact_715_new__thread__action_Osimps_I16_J,axiom,(
    ! [X: $tType,M: $tType,T: $tType,X21: T,X22: bool] : new_th4037974794548711221action(T,X,M,new_th4503388622997288770Exists(T,X,M,X21,X22)) = aa(set(T),set(T),aa(T,fun(set(T),set(T)),insert2(T),X21),bot_bot(set(T))) )).

% new_thread_action.simps(16)
tff(fact_716_Un__UNIV__right,axiom,(
    ! [A: $tType,A5: set(A)] : aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),top_top(set(A))) = top_top(set(A)) )).

% Un_UNIV_right
tff(fact_717_interrupt__action_Odistinct_I1_J,axiom,(
    ! [T: $tType,X11: T,X12: bool,X2: T] : interr5885539089632487139rupted(T,X11,X12) != interrupt_Interrupt(T,X2) )).

% interrupt_action.distinct(1)
tff(fact_718_Un__UNIV__left,axiom,(
    ! [A: $tType,B6: set(A)] : aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),top_top(set(A))),B6) = top_top(set(A)) )).

% Un_UNIV_left
tff(fact_719_converse__iff,axiom,(
    ! [A: $tType,B: $tType,A3: A,B3: B,R2: set(product_prod(B,A))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),converse(B,A,R2)))
    <=> pp(aa(set(product_prod(B,A)),bool,aa(product_prod(B,A),fun(set(product_prod(B,A)),bool),member(product_prod(B,A)),aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),B3),A3)),R2)) ) )).

% converse_iff
tff(fact_720_conditional__action_Orel__induct,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool)),X3: conditional_action(T),Y: conditional_action(A),Q: fun(conditional_action(T),fun(conditional_action(A),bool))] :
      ( pp(aa(conditional_action(A),bool,aa(conditional_action(T),fun(conditional_action(A),bool),aa(fun(T,fun(A,bool)),fun(conditional_action(T),fun(conditional_action(A),bool)),condit4280512358590153947action(T,A),R),X3),Y))
     => ( ! [A12: T,B12: A] :
            ( pp(aa(A,bool,aa(T,fun(A,bool),R,A12),B12))
           => pp(aa(conditional_action(A),bool,aa(conditional_action(T),fun(conditional_action(A),bool),Q,aa(T,conditional_action(T),conditional_Join(T),A12)),aa(A,conditional_action(A),conditional_Join(A),B12))) )
       => ( pp(aa(conditional_action(A),bool,aa(conditional_action(T),fun(conditional_action(A),bool),Q,conditional_Yield(T)),conditional_Yield(A)))
         => pp(aa(conditional_action(A),bool,aa(conditional_action(T),fun(conditional_action(A),bool),Q,X3),Y)) ) ) ) )).

% conditional_action.rel_induct
tff(fact_721_Id__on__iff,axiom,(
    ! [A: $tType,X3: A,Y: A,A5: set(A)] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),X3),Y)),id_on(A,A5)))
    <=> ( X3 = Y
        & pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X3),A5)) ) ) )).

% Id_on_iff
tff(fact_722_new__thread__action_Osize_I2_J,axiom,(
    ! [X: $tType,M: $tType,T: $tType,Xb2: fun(T,nat),Xa3: fun(X,nat),X3: fun(M,nat),X21: T,X22: bool] : aa(new_thread_action(T,X,M),nat,new_th2129853655951111683action(T,X,M,Xb2,Xa3,X3),new_th4503388622997288770Exists(T,X,M,X21,X22)) = plus_plus(nat,aa(T,nat,Xb2,X21),suc(zero_zero(nat))) )).

% new_thread_action.size(2)
tff(fact_723_Id__on__eqI,axiom,(
    ! [A: $tType,A3: A,B3: A,A5: set(A)] :
      ( A3 = B3
     => ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),A5))
       => pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),B3)),id_on(A,A5))) ) ) )).

% Id_on_eqI
tff(fact_724_interrupt__action_Odistinct_I4_J,axiom,(
    ! [T: $tType,X32: T,X11: T,X12: bool] : interr7976201102587534891errupt(T,X32) != interr5885539089632487139rupted(T,X11,X12) )).

% interrupt_action.distinct(4)
tff(fact_725_Id__onE,axiom,(
    ! [A: $tType,C3: product_prod(A,A),A5: set(A)] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),C3),id_on(A,A5)))
     => ~ ! [X4: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),A5))
           => C3 != aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),X4),X4) ) ) )).

% Id_onE
tff(fact_726_wait__set__action_Odistinct_I1_J,axiom,(
    ! [T: $tType,W: $tType,X1: W,X2: W] : wait_set_Suspend(W,T,X1) != wait_set_Notify(W,T,X2) )).

% wait_set_action.distinct(1)
tff(fact_727_map__prod__surj,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,F3: fun(A,B),G3: fun(C,D)] :
      ( aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),top_top(set(A))) = top_top(set(B))
     => ( aa(set(C),set(D),aa(fun(C,D),fun(set(C),set(D)),image2(C,D),G3),top_top(set(C))) = top_top(set(D))
       => aa(set(product_prod(A,C)),set(product_prod(B,D)),aa(fun(product_prod(A,C),product_prod(B,D)),fun(set(product_prod(A,C)),set(product_prod(B,D))),image2(product_prod(A,C),product_prod(B,D)),product_map_prod(A,B,C,D,F3,G3)),top_top(set(product_prod(A,C)))) = top_top(set(product_prod(B,D))) ) ) )).

% map_prod_surj
tff(fact_728_prod__set__simps_I2_J,axiom,(
    ! [A: $tType,B: $tType,X3: A,Y: B] : basic_snds(A,B,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),Y)) = aa(set(B),set(B),aa(B,fun(set(B),set(B)),insert2(B),Y),bot_bot(set(B))) )).

% prod_set_simps(2)
tff(fact_729_new__thread__action_Oset__intros_I2_J,axiom,(
    ! [T: $tType,M: $tType,X: $tType,X21: T,X22: bool] : pp(aa(set(T),bool,aa(T,fun(set(T),bool),member(T),X21),new_th4037974794548711221action(T,X,M,new_th4503388622997288770Exists(T,X,M,X21,X22)))) )).

% new_thread_action.set_intros(2)
tff(fact_730_fun_Orel__refl__strong,axiom,(
    ! [A: $tType,B: $tType,X3: fun(B,A),Ra2: fun(A,fun(A,bool))] :
      ( ! [Z2: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),X3),top_top(set(B)))))
         => pp(aa(A,bool,aa(A,fun(A,bool),Ra2,Z2),Z2)) )
     => pp(aa(fun(B,A),bool,aa(fun(B,A),fun(fun(B,A),bool),bNF_rel_fun(B,B,A,A,fequal(B),Ra2),X3),X3)) ) )).

% fun.rel_refl_strong
tff(fact_731_wait__set__action_Odistinct_I2_J,axiom,(
    ! [T: $tType,W: $tType,X2: W,X1: W] : wait_set_Notify(W,T,X2) != wait_set_Suspend(W,T,X1) )).

% wait_set_action.distinct(2)
tff(fact_732_fun_Orel__mono__strong,axiom,(
    ! [A: $tType,B: $tType,D: $tType,R: fun(A,fun(B,bool)),X3: fun(D,A),Y: fun(D,B),Ra2: fun(A,fun(B,bool))] :
      ( pp(aa(fun(D,B),bool,aa(fun(D,A),fun(fun(D,B),bool),bNF_rel_fun(D,D,A,B,fequal(D),R),X3),Y))
     => ( ! [Z2: A,Yb: B] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(set(D),set(A),aa(fun(D,A),fun(set(D),set(A)),image2(D,A),X3),top_top(set(D)))))
           => ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),Yb),aa(set(D),set(B),aa(fun(D,B),fun(set(D),set(B)),image2(D,B),Y),top_top(set(D)))))
             => ( pp(aa(B,bool,aa(A,fun(B,bool),R,Z2),Yb))
               => pp(aa(B,bool,aa(A,fun(B,bool),Ra2,Z2),Yb)) ) ) )
       => pp(aa(fun(D,B),bool,aa(fun(D,A),fun(fun(D,B),bool),bNF_rel_fun(D,D,A,B,fequal(D),Ra2),X3),Y)) ) ) )).

% fun.rel_mono_strong
tff(fact_733_expand__finfun__eq,axiom,(
    ! [B: $tType,A: $tType,F3: finfun(A,B),G3: finfun(A,B)] :
      ( F3 = G3
    <=> finfun_apply(A,B,F3) = finfun_apply(A,B,G3) ) )).

% expand_finfun_eq
tff(fact_734_fun_Orel__cong,axiom,(
    ! [A: $tType,B: $tType,D: $tType,X3: fun(D,A),Ya2: fun(D,A),Y: fun(D,B),Xa3: fun(D,B),R: fun(A,fun(B,bool)),Ra2: fun(A,fun(B,bool))] :
      ( X3 = Ya2
     => ( Y = Xa3
       => ( ! [Z2: A,Yb: B] :
              ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(set(D),set(A),aa(fun(D,A),fun(set(D),set(A)),image2(D,A),Ya2),top_top(set(D)))))
             => ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),Yb),aa(set(D),set(B),aa(fun(D,B),fun(set(D),set(B)),image2(D,B),Xa3),top_top(set(D)))))
               => ( pp(aa(B,bool,aa(A,fun(B,bool),R,Z2),Yb))
                <=> pp(aa(B,bool,aa(A,fun(B,bool),Ra2,Z2),Yb)) ) ) )
         => ( pp(aa(fun(D,B),bool,aa(fun(D,A),fun(fun(D,B),bool),bNF_rel_fun(D,D,A,B,fequal(D),R),X3),Y))
          <=> pp(aa(fun(D,B),bool,aa(fun(D,A),fun(fun(D,B),bool),bNF_rel_fun(D,D,A,B,fequal(D),Ra2),Ya2),Xa3)) ) ) ) ) )).

% fun.rel_cong
tff(fact_735_interrupt__action_Osize_I1_J,axiom,(
    ! [T: $tType,X3: fun(T,nat),X11: T,X12: bool] : aa(interrupt_action(T),nat,interr4439281168783392195action(T,X3),interr5885539089632487139rupted(T,X11,X12)) = plus_plus(nat,aa(T,nat,X3,X11),suc(zero_zero(nat))) )).

% interrupt_action.size(1)
tff(fact_736_surj__fun__eq,axiom,(
    ! [B: $tType,C: $tType,A: $tType,F3: fun(B,A),X8: set(B),G1: fun(A,C),G22: fun(A,C)] :
      ( aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),X8) = top_top(set(A))
     => ( ! [X4: B] :
            ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X4),X8))
           => aa(B,C,aa(fun(B,A),fun(B,C),aa(fun(A,C),fun(fun(B,A),fun(B,C)),comp(A,C,B),G1),F3),X4) = aa(B,C,aa(fun(B,A),fun(B,C),aa(fun(A,C),fun(fun(B,A),fun(B,C)),comp(A,C,B),G22),F3),X4) )
       => G1 = G22 ) ) )).

% surj_fun_eq
tff(fact_737_prod__set__simps_I1_J,axiom,(
    ! [B: $tType,A: $tType,X3: A,Y: B] : basic_fsts(A,B,aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X3),Y)) = aa(set(A),set(A),aa(A,fun(set(A),set(A)),insert2(A),X3),bot_bot(set(A))) )).

% prod_set_simps(1)
tff(fact_738_conditional__action_Omap__transfer,axiom,(
    ! [A: $tType,B: $tType,F: $tType,E: $tType,Rb2: fun(A,fun(E,bool)),Sd: fun(B,fun(F,bool))] : pp(aa(fun(fun(E,F),fun(conditional_action(E),conditional_action(F))),bool,aa(fun(fun(A,B),fun(conditional_action(A),conditional_action(B))),fun(fun(fun(E,F),fun(conditional_action(E),conditional_action(F))),bool),bNF_rel_fun(fun(A,B),fun(E,F),fun(conditional_action(A),conditional_action(B)),fun(conditional_action(E),conditional_action(F)),bNF_rel_fun(A,E,B,F,Rb2,Sd),bNF_rel_fun(conditional_action(A),conditional_action(E),conditional_action(B),conditional_action(F),aa(fun(A,fun(E,bool)),fun(conditional_action(A),fun(conditional_action(E),bool)),condit4280512358590153947action(A,E),Rb2),aa(fun(B,fun(F,bool)),fun(conditional_action(B),fun(conditional_action(F),bool)),condit4280512358590153947action(B,F),Sd))),condit198635377858011928action(A,B)),condit198635377858011928action(E,F))) )).

% conditional_action.map_transfer
tff(fact_739_comp__surj,axiom,(
    ! [B: $tType,A: $tType,C: $tType,F3: fun(B,A),G3: fun(A,C)] :
      ( aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),top_top(set(B))) = top_top(set(A))
     => ( aa(set(A),set(C),aa(fun(A,C),fun(set(A),set(C)),image2(A,C),G3),top_top(set(A))) = top_top(set(C))
       => aa(set(B),set(C),aa(fun(B,C),fun(set(B),set(C)),image2(B,C),aa(fun(B,A),fun(B,C),aa(fun(A,C),fun(fun(B,A),fun(B,C)),comp(A,C,B),G3),F3)),top_top(set(B))) = top_top(set(C)) ) ) )).

% comp_surj
tff(fact_740_IdE,axiom,(
    ! [A: $tType,P2: product_prod(A,A)] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),P2),id2(A)))
     => ~ ! [X4: A] : P2 != aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),X4),X4) ) )).

% IdE
tff(fact_741_new__thread__action_Oset__intros_I1_J,axiom,(
    ! [X: $tType,T: $tType,M: $tType,X11: T,X12: X,X13: M] : pp(aa(set(T),bool,aa(T,fun(set(T),bool),member(T),X11),new_th4037974794548711221action(T,X,M,new_thread_NewThread(T,X,M,X11,X12,X13)))) )).

% new_thread_action.set_intros(1)
tff(fact_742_fun_Oset__map,axiom,(
    ! [B: $tType,A: $tType,D: $tType,F3: fun(A,B),V: fun(D,A)] : aa(set(D),set(B),aa(fun(D,B),fun(set(D),set(B)),image2(D,B),aa(fun(D,A),fun(D,B),aa(fun(A,B),fun(fun(D,A),fun(D,B)),comp(A,B,D),F3),V)),top_top(set(D))) = aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),aa(set(D),set(A),aa(fun(D,A),fun(set(D),set(A)),image2(D,A),V),top_top(set(D)))) )).

% fun.set_map
tff(fact_743_new__thread__action_Oset_I4_J,axiom,(
    ! [M: $tType,T: $tType,X: $tType,X21: T,X22: bool] : new_th5315647845865256052action(T,X,M,new_th4503388622997288770Exists(T,X,M,X21,X22)) = bot_bot(set(X)) )).

% new_thread_action.set(4)
tff(fact_744_fun_Omap__cong,axiom,(
    ! [B: $tType,A: $tType,D: $tType,X3: fun(D,A),Ya2: fun(D,A),F3: fun(A,B),G3: fun(A,B)] :
      ( X3 = Ya2
     => ( ! [Z2: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(set(D),set(A),aa(fun(D,A),fun(set(D),set(A)),image2(D,A),Ya2),top_top(set(D)))))
           => aa(A,B,F3,Z2) = aa(A,B,G3,Z2) )
       => aa(fun(D,A),fun(D,B),aa(fun(A,B),fun(fun(D,A),fun(D,B)),comp(A,B,D),F3),X3) = aa(fun(D,A),fun(D,B),aa(fun(A,B),fun(fun(D,A),fun(D,B)),comp(A,B,D),G3),Ya2) ) ) )).

% fun.map_cong
tff(fact_745_IdI,axiom,(
    ! [A: $tType,A3: A] : pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),A3)),id2(A))) )).

% IdI
tff(fact_746_new__thread__action_Oset__intros_I4_J,axiom,(
    ! [X: $tType,T: $tType,M: $tType,X13: M,X11: T,X12: X] : pp(aa(set(M),bool,aa(M,fun(set(M),bool),member(M),X13),new_th6593320897181800883action(T,X,M,new_thread_NewThread(T,X,M,X11,X12,X13)))) )).

% new_thread_action.set_intros(4)
tff(fact_747_fun_Omap__cong0,axiom,(
    ! [B: $tType,A: $tType,D: $tType,X3: fun(D,A),F3: fun(A,B),G3: fun(A,B)] :
      ( ! [Z2: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(set(D),set(A),aa(fun(D,A),fun(set(D),set(A)),image2(D,A),X3),top_top(set(D)))))
         => aa(A,B,F3,Z2) = aa(A,B,G3,Z2) )
     => aa(fun(D,A),fun(D,B),aa(fun(A,B),fun(fun(D,A),fun(D,B)),comp(A,B,D),F3),X3) = aa(fun(D,A),fun(D,B),aa(fun(A,B),fun(fun(D,A),fun(D,B)),comp(A,B,D),G3),X3) ) )).

% fun.map_cong0
tff(fact_748_conditional__action_Orel__transfer,axiom,(
    ! [A: $tType,B: $tType,D: $tType,C: $tType,Sa: fun(A,fun(C,bool)),Sc: fun(B,fun(D,bool))] : pp(aa(fun(fun(C,fun(D,bool)),fun(conditional_action(C),fun(conditional_action(D),bool))),bool,aa(fun(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool))),fun(fun(fun(C,fun(D,bool)),fun(conditional_action(C),fun(conditional_action(D),bool))),bool),bNF_rel_fun(fun(A,fun(B,bool)),fun(C,fun(D,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),fun(conditional_action(C),fun(conditional_action(D),bool)),bNF_rel_fun(A,C,fun(B,bool),fun(D,bool),Sa,bNF_rel_fun(B,D,bool,bool,Sc,fequal(bool))),bNF_rel_fun(conditional_action(A),conditional_action(C),fun(conditional_action(B),bool),fun(conditional_action(D),bool),aa(fun(A,fun(C,bool)),fun(conditional_action(A),fun(conditional_action(C),bool)),condit4280512358590153947action(A,C),Sa),bNF_rel_fun(conditional_action(B),conditional_action(D),bool,bool,aa(fun(B,fun(D,bool)),fun(conditional_action(B),fun(conditional_action(D),bool)),condit4280512358590153947action(B,D),Sc),fequal(bool)))),condit4280512358590153947action(A,B)),condit4280512358590153947action(C,D))) )).

% conditional_action.rel_transfer
tff(fact_749_fun_Oinj__map__strong,axiom,(
    ! [B: $tType,A: $tType,D: $tType,X3: fun(D,A),Xa3: fun(D,A),F3: fun(A,B),Fa: fun(A,B)] :
      ( ! [Z2: A,Za2: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),aa(set(D),set(A),aa(fun(D,A),fun(set(D),set(A)),image2(D,A),X3),top_top(set(D)))))
         => ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Za2),aa(set(D),set(A),aa(fun(D,A),fun(set(D),set(A)),image2(D,A),Xa3),top_top(set(D)))))
           => ( aa(A,B,F3,Z2) = aa(A,B,Fa,Za2)
             => Z2 = Za2 ) ) )
     => ( aa(fun(D,A),fun(D,B),aa(fun(A,B),fun(fun(D,A),fun(D,B)),comp(A,B,D),F3),X3) = aa(fun(D,A),fun(D,B),aa(fun(A,B),fun(fun(D,A),fun(D,B)),comp(A,B,D),Fa),Xa3)
       => X3 = Xa3 ) ) )).

% fun.inj_map_strong
tff(fact_750_wait__set__action_Oinject_I4_J,axiom,(
    ! [W: $tType,T: $tType,X42: T,Y42: T] :
      ( wait_set_WakeUp(T,W,X42) = wait_set_WakeUp(T,W,Y42)
    <=> X42 = Y42 ) )).

% wait_set_action.inject(4)
tff(fact_751_surj__id,axiom,(
    ! [A: $tType] : aa(set(A),set(A),aa(fun(A,A),fun(set(A),set(A)),image2(A,A),id(A)),top_top(set(A))) = top_top(set(A)) )).

% surj_id
tff(fact_752_eq__alt,axiom,(
    ! [A: $tType] : fequal(A) = bNF_Grp(A,A,top_top(set(A)),id(A)) )).

% eq_alt
tff(fact_753_IdD,axiom,(
    ! [A: $tType,A3: A,B3: A] :
      ( pp(aa(set(product_prod(A,A)),bool,aa(product_prod(A,A),fun(set(product_prod(A,A)),bool),member(product_prod(A,A)),aa(A,product_prod(A,A),aa(A,fun(A,product_prod(A,A)),product_Pair(A,A),A3),B3)),id2(A)))
     => A3 = B3 ) )).

% IdD
tff(fact_754_apply__rsp_H_H,axiom,(
    ! [C: $tType,A: $tType,B: $tType,R: fun(A,fun(A,bool)),Abs: fun(A,B),Rep: fun(B,A),T2: fun(A,fun(B,bool)),S3: fun(C,fun(C,bool)),F3: fun(A,C),X3: B] :
      ( quotient(A,B,R,Abs,Rep,T2)
     => ( pp(aa(fun(A,C),bool,aa(fun(A,C),fun(fun(A,C),bool),bNF_rel_fun(A,A,C,C,R,S3),F3),F3))
       => pp(aa(C,bool,aa(C,fun(C,bool),S3,aa(A,C,F3,aa(B,A,Rep,X3))),aa(A,C,F3,aa(B,A,Rep,X3)))) ) ) )).

% apply_rsp''
tff(fact_755_Grp__UNIV__idI,axiom,(
    ! [A: $tType,X3: A,Y: A] :
      ( X3 = Y
     => pp(aa(A,bool,aa(A,fun(A,bool),bNF_Grp(A,A,top_top(set(A)),id(A)),X3),Y)) ) )).

% Grp_UNIV_idI
tff(fact_756_conditional__action_Opred__rel,axiom,(
    ! [A: $tType,P: fun(A,bool),X3: conditional_action(A)] :
      ( pp(aa(conditional_action(A),bool,aa(fun(A,bool),fun(conditional_action(A),bool),condit606476673698705123action(A),P),X3))
    <=> pp(aa(conditional_action(A),bool,aa(conditional_action(A),fun(conditional_action(A),bool),aa(fun(A,fun(A,bool)),fun(conditional_action(A),fun(conditional_action(A),bool)),condit4280512358590153947action(A,A),bNF_eq_onp(A,P)),X3),X3)) ) )).

% conditional_action.pred_rel
tff(fact_757_image__Pow__mono,axiom,(
    ! [B: $tType,A: $tType,F3: fun(B,A),A5: set(B),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5)),B6))
     => pp(aa(set(set(A)),bool,aa(set(set(A)),fun(set(set(A)),bool),ord_less_eq(set(set(A))),aa(set(set(B)),set(set(A)),aa(fun(set(B),set(A)),fun(set(set(B)),set(set(A))),image2(set(B),set(A)),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3)),pow(B,A5))),pow(A,B6))) ) )).

% image_Pow_mono
tff(fact_758_finfun__apply,axiom,(
    ! [B: $tType,A: $tType,X3: finfun(A,B)] : pp(aa(set(fun(A,B)),bool,aa(fun(A,B),fun(set(fun(A,B)),bool),member(fun(A,B)),finfun_apply(A,B,X3)),finfun2(A,B))) )).

% finfun_apply
tff(fact_759_vimage2p__Grp,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,F3: fun(A,C),G3: fun(B,D),P: fun(C,fun(D,bool))] : aa(fun(C,fun(D,bool)),fun(A,fun(B,bool)),bNF_vimage2p(A,C,B,D,bool,F3,G3),P) = relcompp(A,C,B,bNF_Grp(A,C,top_top(set(A)),F3),relcompp(C,D,B,P,conversep(B,D,bNF_Grp(B,D,top_top(set(B)),G3)))) )).

% vimage2p_Grp
tff(fact_760_wait__set__action_Osimps_I3_J,axiom,(
    ! [T: $tType,W: $tType,X32: W,Y32: W] :
      ( wait_set_NotifyAll(W,T,X32) = wait_set_NotifyAll(W,T,Y32)
    <=> X32 = Y32 ) )).

% wait_set_action.simps(3)
tff(fact_761_fun_Oin__rel,axiom,(
    ! [H: $tType,I2: $tType,G: $tType,R3: fun(H,fun(I2,bool)),A9: fun(G,H),B10: fun(G,I2)] :
      ( pp(aa(fun(G,I2),bool,aa(fun(G,H),fun(fun(G,I2),bool),bNF_rel_fun(G,G,H,I2,fequal(G),R3),A9),B10))
    <=> ? [Z: fun(G,product_prod(H,I2))] :
          ( pp(aa(set(fun(G,product_prod(H,I2))),bool,aa(fun(G,product_prod(H,I2)),fun(set(fun(G,product_prod(H,I2))),bool),member(fun(G,product_prod(H,I2))),Z),aa(fun(fun(G,product_prod(H,I2)),bool),set(fun(G,product_prod(H,I2))),collect(fun(G,product_prod(H,I2))),aa(set(product_prod(H,I2)),fun(fun(G,product_prod(H,I2)),bool),aa(fun(fun(G,product_prod(H,I2)),fun(set(product_prod(H,I2)),bool)),fun(set(product_prod(H,I2)),fun(fun(G,product_prod(H,I2)),bool)),combc(fun(G,product_prod(H,I2)),set(product_prod(H,I2)),bool),aa(fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2))),fun(fun(G,product_prod(H,I2)),fun(set(product_prod(H,I2)),bool)),aa(fun(set(product_prod(H,I2)),fun(set(product_prod(H,I2)),bool)),fun(fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2))),fun(fun(G,product_prod(H,I2)),fun(set(product_prod(H,I2)),bool))),combb(set(product_prod(H,I2)),fun(set(product_prod(H,I2)),bool),fun(G,product_prod(H,I2))),ord_less_eq(set(product_prod(H,I2)))),aa(set(G),fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2))),aa(fun(fun(G,product_prod(H,I2)),fun(set(G),set(product_prod(H,I2)))),fun(set(G),fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2)))),combc(fun(G,product_prod(H,I2)),set(G),set(product_prod(H,I2))),image2(G,product_prod(H,I2))),top_top(set(G))))),aa(fun(product_prod(H,I2),bool),set(product_prod(H,I2)),collect(product_prod(H,I2)),aa(fun(H,fun(I2,bool)),fun(product_prod(H,I2),bool),product_case_prod(H,I2,bool),R3))))))
          & aa(fun(G,product_prod(H,I2)),fun(G,H),aa(fun(product_prod(H,I2),H),fun(fun(G,product_prod(H,I2)),fun(G,H)),comp(product_prod(H,I2),H,G),product_fst(H,I2)),Z) = A9
          & aa(fun(G,product_prod(H,I2)),fun(G,I2),aa(fun(product_prod(H,I2),I2),fun(fun(G,product_prod(H,I2)),fun(G,I2)),comp(product_prod(H,I2),I2,G),product_snd(H,I2)),Z) = B10 ) ) )).

% fun.in_rel
tff(fact_762_theI_H,axiom,(
    ! [A: $tType,P: fun(A,bool)] :
      ( ? [X5: A] :
          ( pp(aa(A,bool,P,X5))
          & ! [Y3: A] :
              ( pp(aa(A,bool,P,Y3))
             => Y3 = X5 ) )
     => pp(aa(A,bool,P,the(A,P))) ) )).

% theI'
tff(fact_763_Grp__UNIV__id,axiom,(
    ! [A: $tType,F3: fun(A,A)] :
      ( F3 = id(A)
     => relcompp(A,A,A,conversep(A,A,bNF_Grp(A,A,top_top(set(A)),F3)),bNF_Grp(A,A,top_top(set(A)),F3)) = bNF_Grp(A,A,top_top(set(A)),F3) ) )).

% Grp_UNIV_id
tff(fact_764_is__equality__eq,axiom,(
    ! [A: $tType] : is_equality(A,fequal(A)) )).

% is_equality_eq
tff(fact_765_type__copy__map__cong0,axiom,(
    ! [B: $tType,D: $tType,E: $tType,A: $tType,C: $tType,M2: fun(B,A),G3: fun(C,B),X3: C,N: fun(D,A),H2: fun(C,D),F3: fun(A,E)] :
      ( aa(B,A,M2,aa(C,B,G3,X3)) = aa(D,A,N,aa(C,D,H2,X3))
     => aa(C,E,aa(fun(C,B),fun(C,E),aa(fun(B,E),fun(fun(C,B),fun(C,E)),comp(B,E,C),aa(fun(B,A),fun(B,E),aa(fun(A,E),fun(fun(B,A),fun(B,E)),comp(A,E,B),F3),M2)),G3),X3) = aa(C,E,aa(fun(C,D),fun(C,E),aa(fun(D,E),fun(fun(C,D),fun(C,E)),comp(D,E,C),aa(fun(D,A),fun(D,E),aa(fun(A,E),fun(fun(D,A),fun(D,E)),comp(A,E,D),F3),N)),H2),X3) ) )).

% type_copy_map_cong0
tff(fact_766_interrupt__action_Oexhaust,axiom,(
    ! [T: $tType,Y: interrupt_action(T)] :
      ( ! [X112: T,X122: bool] : Y != interr5885539089632487139rupted(T,X112,X122)
     => ( ! [X23: T] : Y != interrupt_Interrupt(T,X23)
       => ~ ! [X33: T] : Y != interr7976201102587534891errupt(T,X33) ) ) )).

% interrupt_action.exhaust
tff(fact_767_type__copy__Rep__o__Abs,axiom,(
    ! [A: $tType,B: $tType,Rep: fun(A,B),Abs: fun(B,A)] :
      ( type_definition(A,B,Rep,Abs,top_top(set(B)))
     => aa(fun(B,A),fun(B,B),aa(fun(A,B),fun(fun(B,A),fun(B,B)),comp(A,B,B),Rep),Abs) = id(B) ) )).

% type_copy_Rep_o_Abs
tff(fact_768_conditional__action_Oset__map,axiom,(
    ! [B: $tType,A: $tType,F3: fun(A,B),V: conditional_action(A)] : aa(conditional_action(B),set(B),condit2393454222984209554action(B),aa(conditional_action(A),conditional_action(B),aa(fun(A,B),fun(conditional_action(A),conditional_action(B)),condit198635377858011928action(A,B),F3),V)) = aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),aa(conditional_action(A),set(A),condit2393454222984209554action(A),V)) )).

% conditional_action.set_map
tff(fact_769_DiffI,axiom,(
    ! [A: $tType,C3: A,A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),A5))
     => ( ~ pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),B6))
       => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),minus_minus(set(A),A5,B6))) ) ) )).

% DiffI
tff(fact_770_interrupt__action_Opred__set,axiom,(
    ! [A: $tType,P: fun(A,bool),X5: interrupt_action(A)] :
      ( pp(aa(interrupt_action(A),bool,interr8158014761281175971action(A,P),X5))
    <=> ! [Xa6: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Xa6),interr3053324309844243148action(A,X5)))
         => pp(aa(A,bool,P,Xa6)) ) ) )).

% interrupt_action.pred_set
tff(fact_771_split__part,axiom,(
    ! [H: $tType,G: $tType,P3: bool,Q3: fun(G,fun(H,bool)),X5: product_prod(G,H)] :
      ( pp(aa(product_prod(G,H),bool,aa(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),product_case_prod(G,H,bool),aa(fun(G,fun(H,bool)),fun(G,fun(H,bool)),aa(fun(fun(H,bool),fun(H,bool)),fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),combb(fun(H,bool),fun(H,bool),G),aa(fun(bool,bool),fun(fun(H,bool),fun(H,bool)),combb(bool,bool,H),aa(bool,fun(bool,bool),fconj,P3))),Q3)),X5))
    <=> ( pp(P3)
        & pp(aa(product_prod(G,H),bool,aa(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),product_case_prod(G,H,bool),Q3),X5)) ) ) )).

% split_part
tff(fact_772_wait__set__action_Oinject_I2_J,axiom,(
    ! [T: $tType,W: $tType,X2: W,Y2: W] :
      ( wait_set_Notify(W,T,X2) = wait_set_Notify(W,T,Y2)
    <=> X2 = Y2 ) )).

% wait_set_action.inject(2)
tff(fact_773_rtranclp__False,axiom,(
    ! [G: $tType] : transitive_rtranclp(G,aa(fun(G,bool),fun(G,fun(G,bool)),combk(fun(G,bool),G),aa(bool,fun(G,bool),combk(bool,G),fFalse))) = fequal(G) )).

% rtranclp_False
tff(fact_774_relcompE,axiom,(
    ! [A: $tType,B: $tType,C: $tType,Xz: product_prod(A,B),R2: set(product_prod(A,C)),S: set(product_prod(C,B))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),Xz),relcomp(A,C,B,R2,S)))
     => ~ ! [X4: A,Y3: C,Z2: B] :
            ( Xz = aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),X4),Z2)
           => ( pp(aa(set(product_prod(A,C)),bool,aa(product_prod(A,C),fun(set(product_prod(A,C)),bool),member(product_prod(A,C)),aa(C,product_prod(A,C),aa(A,fun(C,product_prod(A,C)),product_Pair(A,C),X4),Y3)),R2))
             => ~ pp(aa(set(product_prod(C,B)),bool,aa(product_prod(C,B),fun(set(product_prod(C,B)),bool),member(product_prod(C,B)),aa(B,product_prod(C,B),aa(C,fun(B,product_prod(C,B)),product_Pair(C,B),Y3),Z2)),S)) ) ) ) )).

% relcompE
tff(fact_775_DiffE,axiom,(
    ! [A: $tType,C3: A,A5: set(A),B6: set(A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),minus_minus(set(A),A5,B6)))
     => ~ ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),A5))
         => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),C3),B6)) ) ) )).

% DiffE
tff(fact_776_map__prod__ident,axiom,(
    ! [H: $tType,G: $tType,X5: product_prod(G,H)] : aa(product_prod(G,H),product_prod(G,H),product_map_prod(G,G,H,H,combi(G),combi(H)),X5) = X5 )).

% map_prod_ident
tff(fact_777_new__thread__action_Orel__refl,axiom,(
    ! [F: $tType,E: $tType,D: $tType,R1a: fun(D,fun(D,bool)),R2a: fun(E,fun(E,bool)),R3a: fun(F,fun(F,bool)),X3: new_thread_action(D,E,F)] :
      ( ! [X4: D] : pp(aa(D,bool,aa(D,fun(D,bool),R1a,X4),X4))
     => ( ! [X4: E] : pp(aa(E,bool,aa(E,fun(E,bool),R2a,X4),X4))
       => ( ! [X4: F] : pp(aa(F,bool,aa(F,fun(F,bool),R3a,X4),X4))
         => pp(aa(new_thread_action(D,E,F),bool,aa(new_thread_action(D,E,F),fun(new_thread_action(D,E,F),bool),new_th911009063021768419action(D,D,E,E,F,F,R1a,R2a,R3a),X3),X3)) ) ) ) )).

% new_thread_action.rel_refl
tff(fact_778_relcomp_OrelcompI,axiom,(
    ! [A: $tType,C: $tType,B: $tType,A3: A,B3: B,R2: set(product_prod(A,B)),C3: C,S: set(product_prod(B,C))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),R2))
     => ( pp(aa(set(product_prod(B,C)),bool,aa(product_prod(B,C),fun(set(product_prod(B,C)),bool),member(product_prod(B,C)),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),B3),C3)),S))
       => pp(aa(set(product_prod(A,C)),bool,aa(product_prod(A,C),fun(set(product_prod(A,C)),bool),member(product_prod(A,C)),aa(C,product_prod(A,C),aa(A,fun(C,product_prod(A,C)),product_Pair(A,C),A3),C3)),relcomp(A,B,C,R2,S))) ) ) )).

% relcomp.relcompI
tff(fact_779_wait__set__action_Oinject_I1_J,axiom,(
    ! [T: $tType,W: $tType,X1: W,Y1: W] :
      ( wait_set_Suspend(W,T,X1) = wait_set_Suspend(W,T,Y1)
    <=> X1 = Y1 ) )).

% wait_set_action.inject(1)
tff(fact_780_Abs__finfun__inverse,axiom,(
    ! [B: $tType,A: $tType,Y: fun(A,B)] :
      ( pp(aa(set(fun(A,B)),bool,aa(fun(A,B),fun(set(fun(A,B)),bool),member(fun(A,B)),Y),finfun2(A,B)))
     => finfun_apply(A,B,aa(fun(A,B),finfun(A,B),abs_finfun(A,B),Y)) = Y ) )).

% Abs_finfun_inverse
tff(fact_781_new__thread__action_Oright__total__rel,axiom,(
    ! [B: $tType,E: $tType,D: $tType,A: $tType,F: $tType,C: $tType,R1: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool))] :
      ( right_total(A,D,R1)
     => ( right_total(B,E,R22)
       => ( right_total(C,F,R32)
         => right_total(new_thread_action(A,B,C),new_thread_action(D,E,F),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32)) ) ) ) )).

% new_thread_action.right_total_rel
tff(fact_782_case__swap,axiom,(
    ! [G: $tType,H: $tType,I2: $tType,F9: fun(I2,fun(H,G)),P5: product_prod(I2,H)] : aa(product_prod(H,I2),G,aa(fun(H,fun(I2,G)),fun(product_prod(H,I2),G),product_case_prod(H,I2,G),aa(fun(I2,fun(H,G)),fun(H,fun(I2,G)),combc(I2,H,G),F9)),aa(product_prod(I2,H),product_prod(H,I2),product_swap(I2,H),P5)) = aa(product_prod(I2,H),G,aa(fun(I2,fun(H,G)),fun(product_prod(I2,H),G),product_case_prod(I2,H,G),F9),P5) )).

% case_swap
tff(fact_783_inj__onI,axiom,(
    ! [B: $tType,A: $tType,A5: set(A),F3: fun(A,B)] :
      ( ! [X4: A,Y3: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),A5))
         => ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Y3),A5))
           => ( aa(A,B,F3,X4) = aa(A,B,F3,Y3)
             => X4 = Y3 ) ) )
     => inj_on(A,B,F3,A5) ) )).

% inj_onI
tff(fact_784_wait__set__action_Omap__ident,axiom,(
    ! [H: $tType,G: $tType,T4: wait_set_action(G,H)] : aa(wait_set_action(G,H),wait_set_action(G,H),wait_s8865918783579551590action(G,G,H,H,combi(G),combi(H)),T4) = T4 )).

% wait_set_action.map_ident
tff(fact_785_new__thread__action_Oright__unique__rel,axiom,(
    ! [B: $tType,E: $tType,D: $tType,A: $tType,F: $tType,C: $tType,R1: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool))] :
      ( right_unique(A,D,R1)
     => ( right_unique(B,E,R22)
       => ( right_unique(C,F,R32)
         => right_unique(new_thread_action(A,B,C),new_thread_action(D,E,F),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32)) ) ) ) )).

% new_thread_action.right_unique_rel
tff(fact_786_list_Oset_I1_J,axiom,(
    ! [A: $tType] : aa(list(A),set(A),set2(A),nil(A)) = bot_bot(set(A)) )).

% list.set(1)
tff(fact_787_case__prod__map__prod,axiom,(
    ! [I2: $tType,G: $tType,H: $tType,K2: $tType,J: $tType,H3: fun(H,fun(I2,G)),F9: fun(J,H),G6: fun(K2,I2),X9: product_prod(J,K2)] : aa(product_prod(H,I2),G,aa(fun(H,fun(I2,G)),fun(product_prod(H,I2),G),product_case_prod(H,I2,G),H3),aa(product_prod(J,K2),product_prod(H,I2),product_map_prod(J,H,K2,I2,F9,G6),X9)) = aa(product_prod(J,K2),G,aa(fun(J,fun(K2,G)),fun(product_prod(J,K2),G),product_case_prod(J,K2,G),aa(fun(K2,I2),fun(J,fun(K2,G)),aa(fun(J,fun(fun(K2,I2),fun(K2,G))),fun(fun(K2,I2),fun(J,fun(K2,G))),combc(J,fun(K2,I2),fun(K2,G)),aa(fun(J,fun(I2,G)),fun(J,fun(fun(K2,I2),fun(K2,G))),aa(fun(fun(I2,G),fun(fun(K2,I2),fun(K2,G))),fun(fun(J,fun(I2,G)),fun(J,fun(fun(K2,I2),fun(K2,G)))),combb(fun(I2,G),fun(fun(K2,I2),fun(K2,G)),J),combb(I2,G,K2)),aa(fun(J,H),fun(J,fun(I2,G)),aa(fun(H,fun(I2,G)),fun(fun(J,H),fun(J,fun(I2,G))),combb(H,fun(I2,G),J),H3),F9))),G6)),X9) )).

% case_prod_map_prod
tff(fact_788_Id__on__def_H,axiom,(
    ! [G: $tType,A6: fun(G,bool)] : id_on(G,aa(fun(G,bool),set(G),collect(G),A6)) = aa(fun(product_prod(G,G),bool),set(product_prod(G,G)),collect(product_prod(G,G)),aa(fun(G,fun(G,bool)),fun(product_prod(G,G),bool),product_case_prod(G,G,bool),aa(fun(G,bool),fun(G,fun(G,bool)),aa(fun(G,fun(bool,fun(G,bool))),fun(fun(G,bool),fun(G,fun(G,bool))),combs(G,bool,fun(G,bool)),aa(fun(G,fun(G,fun(bool,bool))),fun(G,fun(bool,fun(G,bool))),aa(fun(fun(G,fun(bool,bool)),fun(bool,fun(G,bool))),fun(fun(G,fun(G,fun(bool,bool))),fun(G,fun(bool,fun(G,bool)))),combb(fun(G,fun(bool,bool)),fun(bool,fun(G,bool)),G),combc(G,bool,bool)),aa(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool))),aa(fun(fun(G,bool),fun(G,fun(bool,bool))),fun(fun(G,fun(G,bool)),fun(G,fun(G,fun(bool,bool)))),combb(fun(G,bool),fun(G,fun(bool,bool)),G),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj)),fequal(G)))),A6))) )).

% Id_on_def'
tff(fact_789_conditional__action_Octr__transfer_I1_J,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool))] : pp(aa(fun(A,conditional_action(A)),bool,aa(fun(T,conditional_action(T)),fun(fun(A,conditional_action(A)),bool),bNF_rel_fun(T,A,conditional_action(T),conditional_action(A),R,aa(fun(T,fun(A,bool)),fun(conditional_action(T),fun(conditional_action(A),bool)),condit4280512358590153947action(T,A),R)),conditional_Join(T)),conditional_Join(A))) )).

% conditional_action.ctr_transfer(1)
tff(fact_790_new__thread__action_Omap__id,axiom,(
    ! [C: $tType,B: $tType,A: $tType,T3: new_thread_action(A,B,C)] : aa(new_thread_action(A,B,C),new_thread_action(A,B,C),new_th6052504119144402208action(A,A,B,B,C,C,id(A),id(B),id(C)),T3) = T3 )).

% new_thread_action.map_id
tff(fact_791_prod_Odisc__eq__case,axiom,(
    ! [H: $tType,G: $tType,Prod3: product_prod(G,H)] : pp(aa(product_prod(G,H),bool,aa(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),product_case_prod(G,H,bool),aa(fun(H,bool),fun(G,fun(H,bool)),combk(fun(H,bool),G),aa(bool,fun(H,bool),combk(bool,H),fTrue))),Prod3)) )).

% prod.disc_eq_case
tff(fact_792_not__None__eq,axiom,(
    ! [A: $tType,X3: option(A)] :
      ( X3 != none(A)
    <=> ? [Y8: A] : X3 = aa(A,option(A),some(A),Y8) ) )).

% not_None_eq
tff(fact_793_prod_Ocase__distrib,axiom,(
    ! [H: $tType,G: $tType,J: $tType,I2: $tType,H3: fun(H,G),F9: fun(I2,fun(J,H)),Prod3: product_prod(I2,J)] : aa(H,G,H3,aa(product_prod(I2,J),H,aa(fun(I2,fun(J,H)),fun(product_prod(I2,J),H),product_case_prod(I2,J,H),F9),Prod3)) = aa(product_prod(I2,J),G,aa(fun(I2,fun(J,G)),fun(product_prod(I2,J),G),product_case_prod(I2,J,G),aa(fun(I2,fun(J,H)),fun(I2,fun(J,G)),aa(fun(fun(J,H),fun(J,G)),fun(fun(I2,fun(J,H)),fun(I2,fun(J,G))),combb(fun(J,H),fun(J,G),I2),aa(fun(H,G),fun(fun(J,H),fun(J,G)),combb(H,G,J),H3)),F9)),Prod3) )).

% prod.case_distrib
tff(fact_794_inj__on__convol__ident,axiom,(
    ! [H: $tType,G: $tType,F9: fun(G,H),X10: set(G)] : inj_on(G,product_prod(G,H),aa(fun(G,H),fun(G,product_prod(G,H)),aa(fun(G,fun(H,product_prod(G,H))),fun(fun(G,H),fun(G,product_prod(G,H))),combs(G,H,product_prod(G,H)),product_Pair(G,H)),F9),X10) )).

% inj_on_convol_ident
tff(fact_795_interrupt__action_Osimps_I30_J,axiom,(
    ! [T: $tType,X32: T] : interr3053324309844243148action(T,interr7976201102587534891errupt(T,X32)) = aa(set(T),set(T),aa(T,fun(set(T),set(T)),insert2(T),X32),bot_bot(set(T))) )).

% interrupt_action.simps(30)
tff(fact_796_inf_Ocobounded1,axiom,(
    ! [A: $tType] :
      ( semilattice_inf(A)
     => ! [A3: A,B3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),inf_inf(A,A3,B3)),A3)) ) )).

% inf.cobounded1
tff(fact_797_new__thread__action_Orel__transp,axiom,(
    ! [B: $tType,A: $tType,C: $tType,R1: fun(A,fun(A,bool)),R22: fun(B,fun(B,bool)),R32: fun(C,fun(C,bool))] :
      ( transp(A,R1)
     => ( transp(B,R22)
       => ( transp(C,R32)
         => transp(new_thread_action(A,B,C),new_th911009063021768419action(A,A,B,B,C,C,R1,R22,R32)) ) ) ) )).

% new_thread_action.rel_transp
tff(fact_798_conditional__action_Orel__distinct_I1_J,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool)),X1: T] : ~ pp(aa(conditional_action(A),bool,aa(conditional_action(T),fun(conditional_action(A),bool),aa(fun(T,fun(A,bool)),fun(conditional_action(T),fun(conditional_action(A),bool)),condit4280512358590153947action(T,A),R),aa(T,conditional_action(T),conditional_Join(T),X1)),conditional_Yield(A))) )).

% conditional_action.rel_distinct(1)
tff(fact_799_Sup_OSUP__identity__eq,axiom,(
    ! [G: $tType,Sup2: fun(set(G),G),A6: set(G)] : aa(set(G),G,Sup2,aa(set(G),set(G),aa(fun(G,G),fun(set(G),set(G)),image2(G,G),combi(G)),A6)) = aa(set(G),G,Sup2,A6) )).

% Sup.SUP_identity_eq
tff(fact_800_new__thread__action_Orel__reflp,axiom,(
    ! [B: $tType,A: $tType,C: $tType,R1: fun(A,fun(A,bool)),R22: fun(B,fun(B,bool)),R32: fun(C,fun(C,bool))] :
      ( reflp(A,R1)
     => ( reflp(B,R22)
       => ( reflp(C,R32)
         => reflp(new_thread_action(A,B,C),new_th911009063021768419action(A,A,B,B,C,C,R1,R22,R32)) ) ) ) )).

% new_thread_action.rel_reflp
tff(fact_801_Inf_OINF__identity__eq,axiom,(
    ! [G: $tType,Inf2: fun(set(G),G),A6: set(G)] : aa(set(G),G,Inf2,aa(set(G),set(G),aa(fun(G,G),fun(set(G),set(G)),image2(G,G),combi(G)),A6)) = aa(set(G),G,Inf2,A6) )).

% Inf.INF_identity_eq
tff(fact_802_inf__fun__def,axiom,(
    ! [B: $tType,A: $tType] :
      ( semilattice_inf(B)
     => ! [F3: fun(A,B),G3: fun(A,B),X5: A] : aa(A,B,inf_inf(fun(A,B),F3,G3),X5) = inf_inf(B,aa(A,B,F3,X5),aa(A,B,G3,X5)) ) )).

% inf_fun_def
tff(fact_803_new__thread__action_Orel__symp,axiom,(
    ! [B: $tType,A: $tType,C: $tType,R1: fun(A,fun(A,bool)),R22: fun(B,fun(B,bool)),R32: fun(C,fun(C,bool))] :
      ( symp(A,R1)
     => ( symp(B,R22)
       => ( symp(C,R32)
         => symp(new_thread_action(A,B,C),new_th911009063021768419action(A,A,B,B,C,C,R1,R22,R32)) ) ) ) )).

% new_thread_action.rel_symp
tff(fact_804_range__composition,axiom,(
    ! [G: $tType,I2: $tType,H: $tType,F9: fun(I2,G),G6: fun(H,I2)] : aa(set(H),set(G),aa(fun(H,G),fun(set(H),set(G)),image2(H,G),aa(fun(H,I2),fun(H,G),aa(fun(I2,G),fun(fun(H,I2),fun(H,G)),combb(I2,G,H),F9),G6)),top_top(set(H))) = aa(set(I2),set(G),aa(fun(I2,G),fun(set(I2),set(G)),image2(I2,G),F9),aa(set(H),set(I2),aa(fun(H,I2),fun(set(H),set(I2)),image2(H,I2),G6),top_top(set(H)))) )).

% range_composition
tff(fact_805_conditional__action_Orel__distinct_I2_J,axiom,(
    ! [A: $tType,B: $tType,R: fun(A,fun(B,bool)),X1: B] : ~ pp(aa(conditional_action(B),bool,aa(conditional_action(A),fun(conditional_action(B),bool),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R),conditional_Yield(A)),aa(B,conditional_action(B),conditional_Join(B),X1))) )).

% conditional_action.rel_distinct(2)
tff(fact_806_Compr__image__eq,axiom,(
    ! [G: $tType,H: $tType,F9: fun(H,G),A6: set(H),P3: fun(G,bool)] : aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(G,fun(bool,bool)),fun(fun(G,bool),fun(G,bool)),combs(G,bool,bool),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),aa(set(H),set(G),aa(fun(H,G),fun(set(H),set(G)),image2(H,G),F9),A6)))),P3)) = aa(set(H),set(G),aa(fun(H,G),fun(set(H),set(G)),image2(H,G),F9),aa(fun(H,bool),set(H),collect(H),aa(fun(H,bool),fun(H,bool),aa(fun(H,fun(bool,bool)),fun(fun(H,bool),fun(H,bool)),combs(H,bool,bool),aa(fun(H,bool),fun(H,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(H,bool),fun(H,fun(bool,bool))),combb(bool,fun(bool,bool),H),fconj),aa(set(H),fun(H,bool),aa(fun(H,fun(set(H),bool)),fun(set(H),fun(H,bool)),combc(H,set(H),bool),member(H)),A6))),aa(fun(H,G),fun(H,bool),aa(fun(G,bool),fun(fun(H,G),fun(H,bool)),combb(G,bool,H),P3),F9)))) )).

% Compr_image_eq
tff(fact_807_conditional__action_Orel__map_I1_J,axiom,(
    ! [I2: $tType,G: $tType,H: $tType,Sb: fun(G,fun(H,bool)),I5: fun(I2,G),X9: conditional_action(I2),Y9: conditional_action(H)] :
      ( pp(aa(conditional_action(H),bool,aa(conditional_action(G),fun(conditional_action(H),bool),aa(fun(G,fun(H,bool)),fun(conditional_action(G),fun(conditional_action(H),bool)),condit4280512358590153947action(G,H),Sb),aa(conditional_action(I2),conditional_action(G),aa(fun(I2,G),fun(conditional_action(I2),conditional_action(G)),condit198635377858011928action(I2,G),I5),X9)),Y9))
    <=> pp(aa(conditional_action(H),bool,aa(conditional_action(I2),fun(conditional_action(H),bool),aa(fun(I2,fun(H,bool)),fun(conditional_action(I2),fun(conditional_action(H),bool)),condit4280512358590153947action(I2,H),aa(fun(I2,G),fun(I2,fun(H,bool)),aa(fun(G,fun(H,bool)),fun(fun(I2,G),fun(I2,fun(H,bool))),combb(G,fun(H,bool),I2),Sb),I5)),X9),Y9)) ) )).

% conditional_action.rel_map(1)
tff(fact_808_new__thread__action_Oleft__unique__rel,axiom,(
    ! [B: $tType,E: $tType,D: $tType,A: $tType,F: $tType,C: $tType,R1: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool))] :
      ( left_unique(A,D,R1)
     => ( left_unique(B,E,R22)
       => ( left_unique(C,F,R32)
         => left_unique(new_thread_action(A,B,C),new_thread_action(D,E,F),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32)) ) ) ) )).

% new_thread_action.left_unique_rel
tff(fact_809_rangeE,axiom,(
    ! [A: $tType,B: $tType,B3: A,F3: fun(B,A)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),B3),aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),top_top(set(B)))))
     => ~ ! [X4: B] : B3 != aa(B,A,F3,X4) ) )).

% rangeE
tff(fact_810_conditional__action_Orel__map_I2_J,axiom,(
    ! [G: $tType,H: $tType,I2: $tType,Sa2: fun(G,fun(H,bool)),X9: conditional_action(G),G6: fun(I2,H),Y9: conditional_action(I2)] :
      ( pp(aa(conditional_action(H),bool,aa(conditional_action(G),fun(conditional_action(H),bool),aa(fun(G,fun(H,bool)),fun(conditional_action(G),fun(conditional_action(H),bool)),condit4280512358590153947action(G,H),Sa2),X9),aa(conditional_action(I2),conditional_action(H),aa(fun(I2,H),fun(conditional_action(I2),conditional_action(H)),condit198635377858011928action(I2,H),G6),Y9)))
    <=> pp(aa(conditional_action(I2),bool,aa(conditional_action(G),fun(conditional_action(I2),bool),aa(fun(G,fun(I2,bool)),fun(conditional_action(G),fun(conditional_action(I2),bool)),condit4280512358590153947action(G,I2),aa(fun(I2,H),fun(G,fun(I2,bool)),aa(fun(G,fun(fun(I2,H),fun(I2,bool))),fun(fun(I2,H),fun(G,fun(I2,bool))),combc(G,fun(I2,H),fun(I2,bool)),aa(fun(G,fun(H,bool)),fun(G,fun(fun(I2,H),fun(I2,bool))),aa(fun(fun(H,bool),fun(fun(I2,H),fun(I2,bool))),fun(fun(G,fun(H,bool)),fun(G,fun(fun(I2,H),fun(I2,bool)))),combb(fun(H,bool),fun(fun(I2,H),fun(I2,bool)),G),combb(H,bool,I2)),Sa2)),G6)),X9),Y9)) ) )).

% conditional_action.rel_map(2)
tff(fact_811_bi__total__eq,axiom,(
    ! [A: $tType] : bi_total(A,A,fequal(A)) )).

% bi_total_eq
tff(fact_812_new__thread__action_Oleft__total__rel,axiom,(
    ! [B: $tType,E: $tType,D: $tType,A: $tType,F: $tType,C: $tType,R1: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool))] :
      ( left_total(A,D,R1)
     => ( left_total(B,E,R22)
       => ( left_total(C,F,R32)
         => left_total(new_thread_action(A,B,C),new_thread_action(D,E,F),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32)) ) ) ) )).

% new_thread_action.left_total_rel
tff(fact_813_new__thread__action_Omap__cong__pred,axiom,(
    ! [L: $tType,J: $tType,K2: $tType,I2: $tType,H: $tType,G: $tType,X9: new_thread_action(G,H,I2),Ya: new_thread_action(G,H,I2),F12: fun(G,J),G12: fun(G,J),F23: fun(H,K2),G23: fun(H,K2),F33: fun(I2,L),G32: fun(I2,L)] :
      ( X9 = Ya
     => ( pp(aa(new_thread_action(G,H,I2),bool,new_th3963266298022529507action(G,H,I2,aa(fun(G,J),fun(G,bool),aa(fun(G,fun(J,bool)),fun(fun(G,J),fun(G,bool)),combs(G,J,bool),aa(fun(G,J),fun(G,fun(J,bool)),aa(fun(J,fun(J,bool)),fun(fun(G,J),fun(G,fun(J,bool))),combb(J,fun(J,bool),G),fequal(J)),F12)),G12),aa(fun(H,K2),fun(H,bool),aa(fun(H,fun(K2,bool)),fun(fun(H,K2),fun(H,bool)),combs(H,K2,bool),aa(fun(H,K2),fun(H,fun(K2,bool)),aa(fun(K2,fun(K2,bool)),fun(fun(H,K2),fun(H,fun(K2,bool))),combb(K2,fun(K2,bool),H),fequal(K2)),F23)),G23),aa(fun(I2,L),fun(I2,bool),aa(fun(I2,fun(L,bool)),fun(fun(I2,L),fun(I2,bool)),combs(I2,L,bool),aa(fun(I2,L),fun(I2,fun(L,bool)),aa(fun(L,fun(L,bool)),fun(fun(I2,L),fun(I2,fun(L,bool))),combb(L,fun(L,bool),I2),fequal(L)),F33)),G32)),Ya))
       => aa(new_thread_action(G,H,I2),new_thread_action(J,K2,L),new_th6052504119144402208action(G,J,H,K2,I2,L,F12,F23,F33),X9) = aa(new_thread_action(G,H,I2),new_thread_action(J,K2,L),new_th6052504119144402208action(G,J,H,K2,I2,L,G12,G23,G32),Ya) ) ) )).

% new_thread_action.map_cong_pred
tff(fact_814_interrupt__action_Oset__intros_I2_J,axiom,(
    ! [T: $tType,X2: T] : pp(aa(set(T),bool,aa(T,fun(set(T),bool),member(T),X2),interr3053324309844243148action(T,interrupt_Interrupt(T,X2)))) )).

% interrupt_action.set_intros(2)
tff(fact_815_interrupt__action_Oset__intros_I3_J,axiom,(
    ! [T: $tType,X32: T] : pp(aa(set(T),bool,aa(T,fun(set(T),bool),member(T),X32),interr3053324309844243148action(T,interr7976201102587534891errupt(T,X32)))) )).

% interrupt_action.set_intros(3)
tff(fact_816_new__thread__action_Obi__unique__rel,axiom,(
    ! [B: $tType,E: $tType,D: $tType,A: $tType,F: $tType,C: $tType,R1: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool))] :
      ( bi_unique(A,D,R1)
     => ( bi_unique(B,E,R22)
       => ( bi_unique(C,F,R32)
         => bi_unique(new_thread_action(A,B,C),new_thread_action(D,E,F),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32)) ) ) ) )).

% new_thread_action.bi_unique_rel
tff(fact_817_conditional__action_Oset__transfer,axiom,(
    ! [A: $tType,B: $tType,R: fun(A,fun(B,bool))] : pp(aa(fun(conditional_action(B),set(B)),bool,aa(fun(conditional_action(A),set(A)),fun(fun(conditional_action(B),set(B)),bool),bNF_rel_fun(conditional_action(A),conditional_action(B),set(A),set(B),aa(fun(A,fun(B,bool)),fun(conditional_action(A),fun(conditional_action(B),bool)),condit4280512358590153947action(A,B),R),bNF_rel_set(A,B,R)),condit2393454222984209554action(A)),condit2393454222984209554action(B))) )).

% conditional_action.set_transfer
tff(fact_818_comp__fun__commute_Ocomp__comp__fun__commute,axiom,(
    ! [B: $tType,A: $tType,C: $tType,F3: fun(A,fun(B,B)),G3: fun(C,A)] :
      ( finite6289374366891150609ommute(A,B,F3)
     => finite6289374366891150609ommute(C,B,aa(fun(C,A),fun(C,fun(B,B)),aa(fun(A,fun(B,B)),fun(fun(C,A),fun(C,fun(B,B))),comp(A,fun(B,B),C),F3),G3)) ) )).

% comp_fun_commute.comp_comp_fun_commute
tff(fact_819_comp__fun__commute_Ocommute__left__comp,axiom,(
    ! [A: $tType,B: $tType,C: $tType,F3: fun(A,fun(B,B)),Y: A,X3: A,G3: fun(C,B)] :
      ( finite6289374366891150609ommute(A,B,F3)
     => aa(fun(C,B),fun(C,B),aa(fun(B,B),fun(fun(C,B),fun(C,B)),comp(B,B,C),aa(A,fun(B,B),F3,Y)),aa(fun(C,B),fun(C,B),aa(fun(B,B),fun(fun(C,B),fun(C,B)),comp(B,B,C),aa(A,fun(B,B),F3,X3)),G3)) = aa(fun(C,B),fun(C,B),aa(fun(B,B),fun(fun(C,B),fun(C,B)),comp(B,B,C),aa(A,fun(B,B),F3,X3)),aa(fun(C,B),fun(C,B),aa(fun(B,B),fun(fun(C,B),fun(C,B)),comp(B,B,C),aa(A,fun(B,B),F3,Y)),G3)) ) )).

% comp_fun_commute.commute_left_comp
tff(fact_820_interrupt__action_Obi__unique__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( bi_unique(A,B,R)
     => bi_unique(interrupt_action(A),interrupt_action(B),interr1799892525631285141action(A,B,R)) ) )).

% interrupt_action.bi_unique_rel
tff(fact_821_new__thread__action_Obi__total__rel,axiom,(
    ! [B: $tType,E: $tType,D: $tType,A: $tType,F: $tType,C: $tType,R1: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool))] :
      ( bi_total(A,D,R1)
     => ( bi_total(B,E,R22)
       => ( bi_total(C,F,R32)
         => bi_total(new_thread_action(A,B,C),new_thread_action(D,E,F),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32)) ) ) ) )).

% new_thread_action.bi_total_rel
tff(fact_822_case__prod__app,axiom,(
    ! [J: $tType,G: $tType,I2: $tType,H: $tType,F9: fun(H,fun(I2,fun(J,G))),X9: product_prod(H,I2),Y9: J] : aa(J,G,aa(product_prod(H,I2),fun(J,G),aa(fun(H,fun(I2,fun(J,G))),fun(product_prod(H,I2),fun(J,G)),product_case_prod(H,I2,fun(J,G)),F9),X9),Y9) = aa(product_prod(H,I2),G,aa(fun(H,fun(I2,G)),fun(product_prod(H,I2),G),product_case_prod(H,I2,G),aa(J,fun(H,fun(I2,G)),aa(fun(H,fun(J,fun(I2,G))),fun(J,fun(H,fun(I2,G))),combc(H,J,fun(I2,G)),aa(fun(H,fun(I2,fun(J,G))),fun(H,fun(J,fun(I2,G))),aa(fun(fun(I2,fun(J,G)),fun(J,fun(I2,G))),fun(fun(H,fun(I2,fun(J,G))),fun(H,fun(J,fun(I2,G)))),combb(fun(I2,fun(J,G)),fun(J,fun(I2,G)),H),combc(I2,J,G)),F9)),Y9)),X9) )).

% case_prod_app
tff(fact_823_transfer__start,axiom,(
    ! [P: bool] :
      ( pp(P)
     => ~ pp(aa(bool,bool,aa(bool,fun(bool,bool),rel(bool,bool,fequal(bool)),P),fFalse)) ) )).

% transfer_start
tff(fact_824_image__Collect__subsetI,axiom,(
    ! [A: $tType,B: $tType,P: fun(A,bool),F3: fun(A,B),B6: set(B)] :
      ( ! [X4: A] :
          ( pp(aa(A,bool,P,X4))
         => pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),aa(A,B,F3,X4)),B6)) )
     => pp(aa(set(B),bool,aa(set(B),fun(set(B),bool),ord_less_eq(set(B)),aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),F3),aa(fun(A,bool),set(A),collect(A),P))),B6)) ) )).

% image_Collect_subsetI
tff(fact_825_add_Oright__neutral,axiom,(
    ! [A: $tType] :
      ( monoid_add(A)
     => ! [A3: A] : plus_plus(A,A3,zero_zero(A)) = A3 ) )).

% add.right_neutral
tff(fact_826_type__copy__wit,axiom,(
    ! [A: $tType,C: $tType,B: $tType,Rep: fun(A,B),Abs: fun(B,A),X3: C,S3: fun(B,set(C)),Y: B] :
      ( type_definition(A,B,Rep,Abs,top_top(set(B)))
     => ( pp(aa(set(C),bool,aa(C,fun(set(C),bool),member(C),X3),aa(A,set(C),aa(fun(A,B),fun(A,set(C)),aa(fun(B,set(C)),fun(fun(A,B),fun(A,set(C))),comp(B,set(C),A),S3),Rep),aa(B,A,Abs,Y))))
       => pp(aa(set(C),bool,aa(C,fun(set(C),bool),member(C),X3),aa(B,set(C),S3,Y))) ) ) )).

% type_copy_wit
tff(fact_827_interrupt__action_Orel__transp,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( transp(A,R)
     => transp(interrupt_action(A),interr1799892525631285141action(A,A,R)) ) )).

% interrupt_action.rel_transp
tff(fact_828_subset__CollectI,axiom,(
    ! [G: $tType,B9: set(G),A6: set(G),Q3: fun(G,bool),P3: fun(G,bool)] :
      ( pp(aa(set(G),bool,aa(set(G),fun(set(G),bool),ord_less_eq(set(G)),B9),A6))
     => ( ! [X4: G] :
            ( pp(aa(set(G),bool,aa(G,fun(set(G),bool),member(G),X4),B9))
           => ( pp(aa(G,bool,Q3,X4))
             => pp(aa(G,bool,P3,X4)) ) )
       => pp(aa(set(G),bool,aa(set(G),fun(set(G),bool),ord_less_eq(set(G)),aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(G,fun(bool,bool)),fun(fun(G,bool),fun(G,bool)),combs(G,bool,bool),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),B9))),Q3))),aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(G,fun(bool,bool)),fun(fun(G,bool),fun(G,bool)),combs(G,bool,bool),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),A6))),P3)))) ) ) )).

% subset_CollectI
tff(fact_829_interrupt__action_Omap__id,axiom,(
    ! [A: $tType,T3: interrupt_action(A)] : aa(interrupt_action(A),interrupt_action(A),interr6514223866936857682action(A,A,id(A)),T3) = T3 )).

% interrupt_action.map_id
tff(fact_830_subset__Collect__iff,axiom,(
    ! [G: $tType,B9: set(G),A6: set(G),P3: fun(G,bool)] :
      ( pp(aa(set(G),bool,aa(set(G),fun(set(G),bool),ord_less_eq(set(G)),B9),A6))
     => ( pp(aa(set(G),bool,aa(set(G),fun(set(G),bool),ord_less_eq(set(G)),B9),aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(G,fun(bool,bool)),fun(fun(G,bool),fun(G,bool)),combs(G,bool,bool),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),A6))),P3))))
      <=> ! [X6: G] :
            ( pp(aa(set(G),bool,aa(G,fun(set(G),bool),member(G),X6),B9))
           => pp(aa(G,bool,P3,X6)) ) ) ) )).

% subset_Collect_iff
tff(fact_831_interrupt__action_Obi__total__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( bi_total(A,B,R)
     => bi_total(interrupt_action(A),interrupt_action(B),interr1799892525631285141action(A,B,R)) ) )).

% interrupt_action.bi_total_rel
tff(fact_832_prop__restrict,axiom,(
    ! [G: $tType,X9: G,Z5: set(G),X10: set(G),P3: fun(G,bool)] :
      ( pp(aa(set(G),bool,aa(G,fun(set(G),bool),member(G),X9),Z5))
     => ( pp(aa(set(G),bool,aa(set(G),fun(set(G),bool),ord_less_eq(set(G)),Z5),aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(G,fun(bool,bool)),fun(fun(G,bool),fun(G,bool)),combs(G,bool,bool),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),X10))),P3))))
       => pp(aa(G,bool,P3,X9)) ) ) )).

% prop_restrict
tff(fact_833_new__thread__action_Oset__cases_I1_J,axiom,(
    ! [T: $tType,M: $tType,X: $tType,E3: T,A3: new_thread_action(T,X,M)] :
      ( pp(aa(set(T),bool,aa(T,fun(set(T),bool),member(T),E3),new_th4037974794548711221action(T,X,M,A3)))
     => ( ! [Z22: X,Z32: M] : A3 != new_thread_NewThread(T,X,M,E3,Z22,Z32)
       => ~ ! [Z22: bool] : A3 != new_th4503388622997288770Exists(T,X,M,E3,Z22) ) ) )).

% new_thread_action.set_cases(1)
tff(fact_834_Collect__restrict,axiom,(
    ! [G: $tType,X10: set(G),P3: fun(G,bool)] : pp(aa(set(G),bool,aa(set(G),fun(set(G),bool),ord_less_eq(set(G)),aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(G,fun(bool,bool)),fun(fun(G,bool),fun(G,bool)),combs(G,bool,bool),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),X10))),P3))),X10)) )).

% Collect_restrict
tff(fact_835_interrupt__action_Orel__reflp,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( reflp(A,R)
     => reflp(interrupt_action(A),interr1799892525631285141action(A,A,R)) ) )).

% interrupt_action.rel_reflp
tff(fact_836_interrupt__action_Orel__symp,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( symp(A,R)
     => symp(interrupt_action(A),interr1799892525631285141action(A,A,R)) ) )).

% interrupt_action.rel_symp
tff(fact_837_new__thread__action_Orel__intros_I1_J,axiom,(
    ! [M: $tType,T: $tType,X: $tType,B: $tType,A: $tType,C: $tType,R1: fun(T,fun(A,bool)),X11: T,Y11: A,R22: fun(X,fun(B,bool)),X12: X,Y12: B,R32: fun(M,fun(C,bool)),X13: M,Y13: C] :
      ( pp(aa(A,bool,aa(T,fun(A,bool),R1,X11),Y11))
     => ( pp(aa(B,bool,aa(X,fun(B,bool),R22,X12),Y12))
       => ( pp(aa(C,bool,aa(M,fun(C,bool),R32,X13),Y13))
         => pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),new_th911009063021768419action(T,A,X,B,M,C,R1,R22,R32),new_thread_NewThread(T,X,M,X11,X12,X13)),new_thread_NewThread(A,B,C,Y11,Y12,Y13))) ) ) ) )).

% new_thread_action.rel_intros(1)
tff(fact_838_fun_Omap__ident,axiom,(
    ! [H: $tType,G: $tType,T4: fun(G,H)] : aa(fun(G,H),fun(G,H),aa(fun(H,H),fun(fun(G,H),fun(G,H)),comp(H,H,G),combi(H)),T4) = T4 )).

% fun.map_ident
tff(fact_839_new__thread__action_Osimps_I12_J,axiom,(
    ! [B: $tType,C: $tType,M: $tType,X: $tType,T: $tType,A: $tType,R1: fun(T,fun(A,bool)),R22: fun(X,fun(B,bool)),R32: fun(M,fun(C,bool)),X21: T,X22: bool,Y21: A,Y22: bool] :
      ( pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),new_th911009063021768419action(T,A,X,B,M,C,R1,R22,R32),new_th4503388622997288770Exists(T,X,M,X21,X22)),new_th4503388622997288770Exists(A,B,C,Y21,Y22)))
    <=> ( pp(aa(A,bool,aa(T,fun(A,bool),R1,X21),Y21))
        & ( pp(X22)
        <=> pp(Y22) ) ) ) )).

% new_thread_action.simps(12)
tff(fact_840_fun_Orel__map_I1_J,axiom,(
    ! [J: $tType,H: $tType,I2: $tType,G: $tType,Sb: fun(H,fun(I2,bool)),I5: fun(J,H),X9: fun(G,J),Y9: fun(G,I2)] :
      ( pp(aa(fun(G,I2),bool,aa(fun(G,H),fun(fun(G,I2),bool),bNF_rel_fun(G,G,H,I2,fequal(G),Sb),aa(fun(G,J),fun(G,H),aa(fun(J,H),fun(fun(G,J),fun(G,H)),comp(J,H,G),I5),X9)),Y9))
    <=> pp(aa(fun(G,I2),bool,aa(fun(G,J),fun(fun(G,I2),bool),bNF_rel_fun(G,G,J,I2,fequal(G),aa(fun(J,H),fun(J,fun(I2,bool)),aa(fun(H,fun(I2,bool)),fun(fun(J,H),fun(J,fun(I2,bool))),combb(H,fun(I2,bool),J),Sb),I5)),X9),Y9)) ) )).

% fun.rel_map(1)
tff(fact_841_comp__fun__commute_Ofold__set__union__disj,axiom,(
    ! [B: $tType,A: $tType,F3: fun(A,fun(B,B)),A5: set(A),B6: set(A),Z3: B] :
      ( finite6289374366891150609ommute(A,B,F3)
     => ( pp(aa(set(A),bool,finite_finite(A),A5))
       => ( pp(aa(set(A),bool,finite_finite(A),B6))
         => ( inf_inf(set(A),A5,B6) = bot_bot(set(A))
           => finite_fold(A,B,F3,Z3,aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)) = finite_fold(A,B,F3,finite_fold(A,B,F3,Z3,A5),B6) ) ) ) ) )).

% comp_fun_commute.fold_set_union_disj
tff(fact_842_conditional__action_Ocase__transfer,axiom,(
    ! [T: $tType,B: $tType,C: $tType,A: $tType,R: fun(T,fun(A,bool)),S3: fun(B,fun(C,bool))] : pp(aa(fun(fun(A,C),fun(C,fun(conditional_action(A),C))),bool,aa(fun(fun(T,B),fun(B,fun(conditional_action(T),B))),fun(fun(fun(A,C),fun(C,fun(conditional_action(A),C))),bool),bNF_rel_fun(fun(T,B),fun(A,C),fun(B,fun(conditional_action(T),B)),fun(C,fun(conditional_action(A),C)),bNF_rel_fun(T,A,B,C,R,S3),bNF_rel_fun(B,C,fun(conditional_action(T),B),fun(conditional_action(A),C),S3,bNF_rel_fun(conditional_action(T),conditional_action(A),B,C,aa(fun(T,fun(A,bool)),fun(conditional_action(T),fun(conditional_action(A),bool)),condit4280512358590153947action(T,A),R),S3))),condit2152691216506315636action(T,B)),condit2152691216506315636action(A,C))) )).

% conditional_action.case_transfer
tff(fact_843_fun_Orel__map_I2_J,axiom,(
    ! [H: $tType,I2: $tType,J: $tType,G: $tType,Sa2: fun(H,fun(I2,bool)),X9: fun(G,H),G6: fun(J,I2),Y9: fun(G,J)] :
      ( pp(aa(fun(G,I2),bool,aa(fun(G,H),fun(fun(G,I2),bool),bNF_rel_fun(G,G,H,I2,fequal(G),Sa2),X9),aa(fun(G,J),fun(G,I2),aa(fun(J,I2),fun(fun(G,J),fun(G,I2)),comp(J,I2,G),G6),Y9)))
    <=> pp(aa(fun(G,J),bool,aa(fun(G,H),fun(fun(G,J),bool),bNF_rel_fun(G,G,H,J,fequal(G),aa(fun(J,I2),fun(H,fun(J,bool)),aa(fun(H,fun(fun(J,I2),fun(J,bool))),fun(fun(J,I2),fun(H,fun(J,bool))),combc(H,fun(J,I2),fun(J,bool)),aa(fun(H,fun(I2,bool)),fun(H,fun(fun(J,I2),fun(J,bool))),aa(fun(fun(I2,bool),fun(fun(J,I2),fun(J,bool))),fun(fun(H,fun(I2,bool)),fun(H,fun(fun(J,I2),fun(J,bool)))),combb(fun(I2,bool),fun(fun(J,I2),fun(J,bool)),H),combb(I2,bool,J)),Sa2)),G6)),X9),Y9)) ) )).

% fun.rel_map(2)
tff(fact_844_wait__set__action_Omap_I6_J,axiom,(
    ! [T: $tType,W: $tType,B: $tType,A: $tType,F1: fun(T,A),F22: fun(W,B)] : aa(wait_set_action(T,W),wait_set_action(A,B),wait_s8865918783579551590action(T,A,W,B,F1,F22),wait_set_WokenUp(T,W)) = wait_set_WokenUp(A,B) )).

% wait_set_action.map(6)
tff(fact_845_Collect__disj__eq,axiom,(
    ! [G: $tType,P3: fun(G,bool),Q3: fun(G,bool)] : aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(G,fun(bool,bool)),fun(fun(G,bool),fun(G,bool)),combs(G,bool,bool),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fdisj),P3)),Q3)) = aa(set(G),set(G),aa(set(G),fun(set(G),set(G)),sup_sup(set(G)),aa(fun(G,bool),set(G),collect(G),P3)),aa(fun(G,bool),set(G),collect(G),Q3)) )).

% Collect_disj_eq
tff(fact_846_split__seed__def,axiom,(
    ! [S5: product_prod(code_natural,code_natural)] : split_seed(S5) = aa(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)),aa(fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))),product_case_prod(code_natural,code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))),aa(product_prod(code_natural,code_natural),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),aa(fun(code_natural,fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(product_prod(code_natural,code_natural),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),combc(code_natural,product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),aa(fun(code_natural,fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(code_natural,fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),aa(fun(fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(fun(code_natural,fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(code_natural,fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),combb(fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),code_natural),combc(code_natural,product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),aa(fun(code_natural,fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),fun(code_natural,fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),aa(fun(fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(fun(code_natural,fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),fun(code_natural,fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),combb(fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),code_natural),aa(fun(fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),combb(fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))),code_natural),product_case_prod(code_natural,code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),aa(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),aa(fun(code_natural,fun(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))))),fun(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))))),combc(code_natural,fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),aa(fun(code_natural,fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),fun(code_natural,fun(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))))),aa(fun(fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))))),fun(fun(code_natural,fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),fun(code_natural,fun(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))))),combb(fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),code_natural),combb(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),code_natural)),aa(fun(code_natural,fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(code_natural,fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),aa(fun(fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),fun(fun(code_natural,fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(code_natural,fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))))),combb(fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),code_natural),combb(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))),code_natural)),aa(fun(code_natural,fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(code_natural,fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),aa(fun(fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(fun(code_natural,fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(code_natural,fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),combb(fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(product_prod(code_natural,code_natural),fun(code_natural,product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),code_natural),combc(code_natural,product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),aa(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),aa(fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),fun(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))))),combb(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),code_natural),aa(fun(product_prod(code_natural,code_natural),fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),fun(fun(code_natural,product_prod(code_natural,code_natural)),fun(code_natural,fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))))),combb(product_prod(code_natural,code_natural),fun(product_prod(code_natural,code_natural),product_prod(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural))),code_natural),product_Pair(product_prod(code_natural,code_natural),product_prod(code_natural,code_natural)))),aa(fun(code_natural,code_natural),fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),aa(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(fun(code_natural,code_natural),fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural)))),combb(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),code_natural),product_Pair(code_natural,code_natural)),inc_shift(numeral_numeral(code_natural,bit0(bit1(bit0(bit1(bit0(bit1(bit0(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(one)))))))))))))))))))))))))))))))))))))),aa(fun(code_natural,code_natural),fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),aa(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(fun(code_natural,code_natural),fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural)))),combb(code_natural,fun(code_natural,product_prod(code_natural,code_natural)),code_natural),aa(fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),fun(code_natural,fun(code_natural,product_prod(code_natural,code_natural))),combc(code_natural,code_natural,product_prod(code_natural,code_natural)),product_Pair(code_natural,code_natural))),inc_shift(numeral_numeral(code_natural,bit0(bit1(bit1(bit0(bit0(bit0(bit0(bit0(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(bit1(one))))))))))))))))))))))))))))))))))))),aa(product_prod(code_natural,product_prod(code_natural,code_natural)),product_prod(code_natural,code_natural),product_snd(code_natural,product_prod(code_natural,code_natural)),next(S5)))),S5) )).

% split_seed_def
tff(fact_847_sup__set__def,axiom,(
    ! [G: $tType,A6: set(G),B9: set(G)] : aa(set(G),set(G),aa(set(G),fun(set(G),set(G)),sup_sup(set(G)),A6),B9) = aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(G,bool),fun(fun(G,bool),fun(G,bool)),sup_sup(fun(G,bool)),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),A6)),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),B9))) )).

% sup_set_def
tff(fact_848_interrupt__action_Oset_I2_J,axiom,(
    ! [T: $tType,X2: T] : interr3053324309844243148action(T,interrupt_Interrupt(T,X2)) = aa(set(T),set(T),aa(T,fun(set(T),set(T)),insert2(T),X2),bot_bot(set(T))) )).

% interrupt_action.set(2)
tff(fact_849_Un__def,axiom,(
    ! [G: $tType,A6: set(G),B9: set(G)] : aa(set(G),set(G),aa(set(G),fun(set(G),set(G)),sup_sup(set(G)),A6),B9) = aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(G,fun(bool,bool)),fun(fun(G,bool),fun(G,bool)),combs(G,bool,bool),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fdisj),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),A6))),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),B9))) )).

% Un_def
tff(fact_850_wait__set__action_Omap_I5_J,axiom,(
    ! [T: $tType,W: $tType,B: $tType,A: $tType,F1: fun(T,A),F22: fun(W,B)] : aa(wait_set_action(T,W),wait_set_action(A,B),wait_s8865918783579551590action(T,A,W,B,F1,F22),wait_set_Notified(T,W)) = wait_set_Notified(A,B) )).

% wait_set_action.map(5)
tff(fact_851_Grp__def,axiom,(
    ! [B: $tType,A: $tType,A5: set(A),F3: fun(A,B),X5: A,Xa2: B] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),bNF_Grp(A,B,A5,F3),X5),Xa2))
    <=> ( Xa2 = aa(A,B,F3,X5)
        & pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X5),A5)) ) ) )).

% Grp_def
tff(fact_852_interrupt__action_Oleft__unique__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( left_unique(A,B,R)
     => left_unique(interrupt_action(A),interrupt_action(B),interr1799892525631285141action(A,B,R)) ) )).

% interrupt_action.left_unique_rel
tff(fact_853_curry__K,axiom,(
    ! [H: $tType,G: $tType,I2: $tType,C8: I2,X5: G,Xa2: H] : aa(H,I2,aa(G,fun(H,I2),product_curry(G,H,I2,aa(I2,fun(product_prod(G,H),I2),combk(I2,product_prod(G,H)),C8)),X5),Xa2) = C8 )).

% curry_K
tff(fact_854_interrupt__action_Oright__total__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( right_total(A,B,R)
     => right_total(interrupt_action(A),interrupt_action(B),interr1799892525631285141action(A,B,R)) ) )).

% interrupt_action.right_total_rel
tff(fact_855_interrupt__action_Osimps_I28_J,axiom,(
    ! [T: $tType,X11: T,X12: bool] : interr3053324309844243148action(T,interr5885539089632487139rupted(T,X11,X12)) = aa(set(T),set(T),aa(T,fun(set(T),set(T)),insert2(T),X11),bot_bot(set(T))) )).

% interrupt_action.simps(28)
tff(fact_856_sup__Un__eq,axiom,(
    ! [G: $tType,R3: set(G),S4: set(G),X5: G] :
      ( pp(aa(G,bool,aa(fun(G,bool),fun(G,bool),aa(fun(G,bool),fun(fun(G,bool),fun(G,bool)),sup_sup(fun(G,bool)),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),R3)),aa(set(G),fun(G,bool),aa(fun(G,fun(set(G),bool)),fun(set(G),fun(G,bool)),combc(G,set(G),bool),member(G)),S4)),X5))
    <=> pp(aa(set(G),bool,aa(G,fun(set(G),bool),member(G),X5),aa(set(G),set(G),aa(set(G),fun(set(G),set(G)),sup_sup(set(G)),R3),S4))) ) )).

% sup_Un_eq
tff(fact_857_conditional__action_Oin__rel,axiom,(
    ! [G: $tType,H: $tType,R3: fun(G,fun(H,bool)),A9: conditional_action(G),B10: conditional_action(H)] :
      ( pp(aa(conditional_action(H),bool,aa(conditional_action(G),fun(conditional_action(H),bool),aa(fun(G,fun(H,bool)),fun(conditional_action(G),fun(conditional_action(H),bool)),condit4280512358590153947action(G,H),R3),A9),B10))
    <=> ? [Z: conditional_action(product_prod(G,H))] :
          ( pp(aa(set(conditional_action(product_prod(G,H))),bool,aa(conditional_action(product_prod(G,H)),fun(set(conditional_action(product_prod(G,H))),bool),member(conditional_action(product_prod(G,H))),Z),aa(fun(conditional_action(product_prod(G,H)),bool),set(conditional_action(product_prod(G,H))),collect(conditional_action(product_prod(G,H))),aa(set(product_prod(G,H)),fun(conditional_action(product_prod(G,H)),bool),aa(fun(conditional_action(product_prod(G,H)),fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(conditional_action(product_prod(G,H)),bool)),combc(conditional_action(product_prod(G,H)),set(product_prod(G,H)),bool),aa(fun(conditional_action(product_prod(G,H)),set(product_prod(G,H))),fun(conditional_action(product_prod(G,H)),fun(set(product_prod(G,H)),bool)),aa(fun(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool)),fun(fun(conditional_action(product_prod(G,H)),set(product_prod(G,H))),fun(conditional_action(product_prod(G,H)),fun(set(product_prod(G,H)),bool))),combb(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool),conditional_action(product_prod(G,H))),ord_less_eq(set(product_prod(G,H)))),condit2393454222984209554action(product_prod(G,H)))),aa(fun(product_prod(G,H),bool),set(product_prod(G,H)),collect(product_prod(G,H)),aa(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),product_case_prod(G,H,bool),R3))))))
          & aa(conditional_action(product_prod(G,H)),conditional_action(G),aa(fun(product_prod(G,H),G),fun(conditional_action(product_prod(G,H)),conditional_action(G)),condit198635377858011928action(product_prod(G,H),G),product_fst(G,H)),Z) = A9
          & aa(conditional_action(product_prod(G,H)),conditional_action(H),aa(fun(product_prod(G,H),H),fun(conditional_action(product_prod(G,H)),conditional_action(H)),condit198635377858011928action(product_prod(G,H),H),product_snd(G,H)),Z) = B10 ) ) )).

% conditional_action.in_rel
tff(fact_858_sup__Un__eq2,axiom,(
    ! [H: $tType,G: $tType,R3: set(product_prod(G,H)),S4: set(product_prod(G,H)),X5: G,Xa2: H] :
      ( pp(aa(H,bool,aa(G,fun(H,bool),aa(fun(G,fun(H,bool)),fun(G,fun(H,bool)),aa(fun(G,fun(H,bool)),fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),sup_sup(fun(G,fun(H,bool))),aa(set(product_prod(G,H)),fun(G,fun(H,bool)),aa(fun(G,fun(set(product_prod(G,H)),fun(H,bool))),fun(set(product_prod(G,H)),fun(G,fun(H,bool))),combc(G,set(product_prod(G,H)),fun(H,bool)),aa(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool))),aa(fun(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool))),fun(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool)))),combb(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool)),G),combc(H,set(product_prod(G,H)),bool)),aa(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool))),aa(fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),fun(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool)))),combb(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool)),G),aa(fun(product_prod(G,H),fun(set(product_prod(G,H)),bool)),fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),combb(product_prod(G,H),fun(set(product_prod(G,H)),bool),H),member(product_prod(G,H)))),product_Pair(G,H)))),R3)),aa(set(product_prod(G,H)),fun(G,fun(H,bool)),aa(fun(G,fun(set(product_prod(G,H)),fun(H,bool))),fun(set(product_prod(G,H)),fun(G,fun(H,bool))),combc(G,set(product_prod(G,H)),fun(H,bool)),aa(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool))),aa(fun(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool))),fun(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool)))),combb(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool)),G),combc(H,set(product_prod(G,H)),bool)),aa(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool))),aa(fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),fun(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool)))),combb(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool)),G),aa(fun(product_prod(G,H),fun(set(product_prod(G,H)),bool)),fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),combb(product_prod(G,H),fun(set(product_prod(G,H)),bool),H),member(product_prod(G,H)))),product_Pair(G,H)))),S4)),X5),Xa2))
    <=> pp(aa(set(product_prod(G,H)),bool,aa(product_prod(G,H),fun(set(product_prod(G,H)),bool),member(product_prod(G,H)),aa(H,product_prod(G,H),aa(G,fun(H,product_prod(G,H)),product_Pair(G,H),X5),Xa2)),aa(set(product_prod(G,H)),set(product_prod(G,H)),aa(set(product_prod(G,H)),fun(set(product_prod(G,H)),set(product_prod(G,H))),sup_sup(set(product_prod(G,H))),R3),S4))) ) )).

% sup_Un_eq2
tff(fact_859_interrupt__action_Oleft__total__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( left_total(A,B,R)
     => left_total(interrupt_action(A),interrupt_action(B),interr1799892525631285141action(A,B,R)) ) )).

% interrupt_action.left_total_rel
tff(fact_860_type__copy__vimage2p__Grp__Rep,axiom,(
    ! [H: $tType,G: $tType,J: $tType,I2: $tType,Rep3: fun(G,H),Abs3: fun(H,G),F9: fun(I2,J),P3: fun(J,bool),H3: fun(J,H)] :
      ( type_definition(G,H,Rep3,Abs3,top_top(set(H)))
     => aa(fun(J,fun(H,bool)),fun(I2,fun(G,bool)),bNF_vimage2p(I2,J,G,H,bool,F9,Rep3),bNF_Grp(J,H,aa(fun(J,bool),set(J),collect(J),P3),H3)) = bNF_Grp(I2,G,aa(fun(I2,bool),set(I2),collect(I2),aa(fun(I2,J),fun(I2,bool),aa(fun(J,bool),fun(fun(I2,J),fun(I2,bool)),combb(J,bool,I2),P3),F9)),aa(fun(I2,J),fun(I2,G),aa(fun(J,G),fun(fun(I2,J),fun(I2,G)),comp(J,G,I2),aa(fun(J,H),fun(J,G),aa(fun(H,G),fun(fun(J,H),fun(J,G)),comp(H,G,J),Abs3),H3)),F9)) ) )).

% type_copy_vimage2p_Grp_Rep
tff(fact_861_new__thread__action_Osize_I1_J,axiom,(
    ! [M: $tType,T: $tType,X: $tType,Xb2: fun(T,nat),Xa3: fun(X,nat),X3: fun(M,nat),X11: T,X12: X,X13: M] : aa(new_thread_action(T,X,M),nat,new_th2129853655951111683action(T,X,M,Xb2,Xa3,X3),new_thread_NewThread(T,X,M,X11,X12,X13)) = plus_plus(nat,plus_plus(nat,plus_plus(nat,aa(T,nat,Xb2,X11),aa(X,nat,Xa3,X12)),aa(M,nat,X3,X13)),suc(zero_zero(nat))) )).

% new_thread_action.size(1)
tff(fact_862_type__copy__vimage2p__Grp__Abs,axiom,(
    ! [G: $tType,H: $tType,J: $tType,I2: $tType,Rep3: fun(G,H),Abs3: fun(H,G),G6: fun(I2,J),P3: fun(J,bool),H3: fun(J,G)] :
      ( type_definition(G,H,Rep3,Abs3,top_top(set(H)))
     => aa(fun(J,fun(G,bool)),fun(I2,fun(H,bool)),bNF_vimage2p(I2,J,H,G,bool,G6,Abs3),bNF_Grp(J,G,aa(fun(J,bool),set(J),collect(J),P3),H3)) = bNF_Grp(I2,H,aa(fun(I2,bool),set(I2),collect(I2),aa(fun(I2,J),fun(I2,bool),aa(fun(J,bool),fun(fun(I2,J),fun(I2,bool)),combb(J,bool,I2),P3),G6)),aa(fun(I2,J),fun(I2,H),aa(fun(J,H),fun(fun(I2,J),fun(I2,H)),comp(J,H,I2),aa(fun(J,G),fun(J,H),aa(fun(G,H),fun(fun(J,G),fun(J,H)),comp(G,H,J),Rep3),H3)),G6)) ) )).

% type_copy_vimage2p_Grp_Abs
tff(fact_863_ImageE,axiom,(
    ! [A: $tType,B: $tType,B3: A,R2: set(product_prod(B,A)),A5: set(B)] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),B3),image(B,A,R2,A5)))
     => ~ ! [X4: B] :
            ( pp(aa(set(product_prod(B,A)),bool,aa(product_prod(B,A),fun(set(product_prod(B,A)),bool),member(product_prod(B,A)),aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),X4),B3)),R2))
           => ~ pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),X4),A5)) ) ) )).

% ImageE
tff(fact_864_new__thread__action_Orel__mono,axiom,(
    ! [B: $tType,E: $tType,D: $tType,A: $tType,F: $tType,C: $tType,R1: fun(A,fun(D,bool)),R1a: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R2a: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool)),R3a: fun(C,fun(F,bool))] :
      ( pp(aa(fun(A,fun(D,bool)),bool,aa(fun(A,fun(D,bool)),fun(fun(A,fun(D,bool)),bool),ord_less_eq(fun(A,fun(D,bool))),R1),R1a))
     => ( pp(aa(fun(B,fun(E,bool)),bool,aa(fun(B,fun(E,bool)),fun(fun(B,fun(E,bool)),bool),ord_less_eq(fun(B,fun(E,bool))),R22),R2a))
       => ( pp(aa(fun(C,fun(F,bool)),bool,aa(fun(C,fun(F,bool)),fun(fun(C,fun(F,bool)),bool),ord_less_eq(fun(C,fun(F,bool))),R32),R3a))
         => pp(aa(fun(new_thread_action(A,B,C),fun(new_thread_action(D,E,F),bool)),bool,aa(fun(new_thread_action(A,B,C),fun(new_thread_action(D,E,F),bool)),fun(fun(new_thread_action(A,B,C),fun(new_thread_action(D,E,F),bool)),bool),ord_less_eq(fun(new_thread_action(A,B,C),fun(new_thread_action(D,E,F),bool))),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32)),new_th911009063021768419action(A,D,B,E,C,F,R1a,R2a,R3a))) ) ) ) )).

% new_thread_action.rel_mono
tff(fact_865_rtranclp__conversep,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool))] : transitive_rtranclp(A,conversep(A,A,R2)) = conversep(A,A,transitive_rtranclp(A,R2)) )).

% rtranclp_conversep
tff(fact_866_finite__Un,axiom,(
    ! [A: $tType,F6: set(A),G5: set(A)] :
      ( pp(aa(set(A),bool,finite_finite(A),aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),F6),G5)))
    <=> ( pp(aa(set(A),bool,finite_finite(A),F6))
        & pp(aa(set(A),bool,finite_finite(A),G5)) ) ) )).

% finite_Un
tff(fact_867_new__thread__action_Oinj__map,axiom,(
    ! [F: $tType,D: $tType,E: $tType,C: $tType,B: $tType,A: $tType,F1: fun(A,D),F22: fun(B,E),F32: fun(C,F)] :
      ( inj_on(A,D,F1,top_top(set(A)))
     => ( inj_on(B,E,F22,top_top(set(B)))
       => ( inj_on(C,F,F32,top_top(set(C)))
         => inj_on(new_thread_action(A,B,C),new_thread_action(D,E,F),new_th6052504119144402208action(A,D,B,E,C,F,F1,F22,F32),top_top(set(new_thread_action(A,B,C)))) ) ) ) )).

% new_thread_action.inj_map
tff(fact_868_rtranclp__converseI,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),Y: A,X3: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),Y),X3))
     => pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,conversep(A,A,R2)),X3),Y)) ) )).

% rtranclp_converseI
tff(fact_869_interrupt__action_Oright__unique__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] :
      ( right_unique(A,B,R)
     => right_unique(interrupt_action(A),interrupt_action(B),interr1799892525631285141action(A,B,R)) ) )).

% interrupt_action.right_unique_rel
tff(fact_870_rtranclp__converseD,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Y: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,conversep(A,A,R2)),X3),Y))
     => pp(aa(A,bool,aa(A,fun(A,bool),transitive_rtranclp(A,R2),Y),X3)) ) )).

% rtranclp_converseD
tff(fact_871_finfun__Diag__const__code_I1_J,axiom,(
    ! [A: $tType,B: $tType,C: $tType,B3: B,C3: C] : finfun_Diag(A,B,C,aa(B,finfun(A,B),finfun_const(B,A),B3),aa(C,finfun(A,C),finfun_const(C,A),C3)) = aa(product_prod(B,C),finfun(A,product_prod(B,C)),finfun_const(product_prod(B,C),A),aa(C,product_prod(B,C),aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),B3),C3)) )).

% finfun_Diag_const_code(1)
tff(fact_872_leq__conversepI,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( R = fequal(A)
     => pp(aa(fun(A,fun(A,bool)),bool,aa(fun(A,fun(A,bool)),fun(fun(A,fun(A,bool)),bool),ord_less_eq(fun(A,fun(A,bool))),R),conversep(A,A,R))) ) )).

% leq_conversepI
tff(fact_873_interrupt__action_Orel__conversep,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] : interr1799892525631285141action(B,A,conversep(A,B,R)) = conversep(interrupt_action(A),interrupt_action(B),interr1799892525631285141action(A,B,R)) )).

% interrupt_action.rel_conversep
tff(fact_874_tranclp__converseI,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Y: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),conversep(A,A,transitive_tranclp(A,R2)),X3),Y))
     => pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,conversep(A,A,R2)),X3),Y)) ) )).

% tranclp_converseI
tff(fact_875_interrupt__action_Orel__eq__onp,axiom,(
    ! [A: $tType,P: fun(A,bool)] : interr1799892525631285141action(A,A,bNF_eq_onp(A,P)) = bNF_eq_onp(interrupt_action(A),interr8158014761281175971action(A,P)) )).

% interrupt_action.rel_eq_onp
tff(fact_876_tranclp__converseD,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool)),X3: A,Y: A] :
      ( pp(aa(A,bool,aa(A,fun(A,bool),transitive_tranclp(A,conversep(A,A,R2)),X3),Y))
     => pp(aa(A,bool,aa(A,fun(A,bool),conversep(A,A,transitive_tranclp(A,R2)),X3),Y)) ) )).

% tranclp_converseD
tff(fact_877_conditional__action_Orel__compp__Grp,axiom,(
    ! [H: $tType,G: $tType,R3: fun(G,fun(H,bool))] : aa(fun(G,fun(H,bool)),fun(conditional_action(G),fun(conditional_action(H),bool)),condit4280512358590153947action(G,H),R3) = relcompp(conditional_action(G),conditional_action(product_prod(G,H)),conditional_action(H),conversep(conditional_action(product_prod(G,H)),conditional_action(G),bNF_Grp(conditional_action(product_prod(G,H)),conditional_action(G),aa(fun(conditional_action(product_prod(G,H)),bool),set(conditional_action(product_prod(G,H))),collect(conditional_action(product_prod(G,H))),aa(set(product_prod(G,H)),fun(conditional_action(product_prod(G,H)),bool),aa(fun(conditional_action(product_prod(G,H)),fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(conditional_action(product_prod(G,H)),bool)),combc(conditional_action(product_prod(G,H)),set(product_prod(G,H)),bool),aa(fun(conditional_action(product_prod(G,H)),set(product_prod(G,H))),fun(conditional_action(product_prod(G,H)),fun(set(product_prod(G,H)),bool)),aa(fun(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool)),fun(fun(conditional_action(product_prod(G,H)),set(product_prod(G,H))),fun(conditional_action(product_prod(G,H)),fun(set(product_prod(G,H)),bool))),combb(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool),conditional_action(product_prod(G,H))),ord_less_eq(set(product_prod(G,H)))),condit2393454222984209554action(product_prod(G,H)))),aa(fun(product_prod(G,H),bool),set(product_prod(G,H)),collect(product_prod(G,H)),aa(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),product_case_prod(G,H,bool),R3)))),aa(fun(product_prod(G,H),G),fun(conditional_action(product_prod(G,H)),conditional_action(G)),condit198635377858011928action(product_prod(G,H),G),product_fst(G,H)))),bNF_Grp(conditional_action(product_prod(G,H)),conditional_action(H),aa(fun(conditional_action(product_prod(G,H)),bool),set(conditional_action(product_prod(G,H))),collect(conditional_action(product_prod(G,H))),aa(set(product_prod(G,H)),fun(conditional_action(product_prod(G,H)),bool),aa(fun(conditional_action(product_prod(G,H)),fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(conditional_action(product_prod(G,H)),bool)),combc(conditional_action(product_prod(G,H)),set(product_prod(G,H)),bool),aa(fun(conditional_action(product_prod(G,H)),set(product_prod(G,H))),fun(conditional_action(product_prod(G,H)),fun(set(product_prod(G,H)),bool)),aa(fun(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool)),fun(fun(conditional_action(product_prod(G,H)),set(product_prod(G,H))),fun(conditional_action(product_prod(G,H)),fun(set(product_prod(G,H)),bool))),combb(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool),conditional_action(product_prod(G,H))),ord_less_eq(set(product_prod(G,H)))),condit2393454222984209554action(product_prod(G,H)))),aa(fun(product_prod(G,H),bool),set(product_prod(G,H)),collect(product_prod(G,H)),aa(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),product_case_prod(G,H,bool),R3)))),aa(fun(product_prod(G,H),H),fun(conditional_action(product_prod(G,H)),conditional_action(H)),condit198635377858011928action(product_prod(G,H),H),product_snd(G,H)))) )).

% conditional_action.rel_compp_Grp
tff(fact_878_tranclp__converse,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool))] : transitive_tranclp(A,conversep(A,A,R2)) = conversep(A,A,transitive_tranclp(A,R2)) )).

% tranclp_converse
tff(fact_879_interrupt__action_Omap__cong__pred,axiom,(
    ! [H: $tType,G: $tType,X9: interrupt_action(G),Ya: interrupt_action(G),F9: fun(G,H),G6: fun(G,H)] :
      ( X9 = Ya
     => ( pp(aa(interrupt_action(G),bool,interr8158014761281175971action(G,aa(fun(G,H),fun(G,bool),aa(fun(G,fun(H,bool)),fun(fun(G,H),fun(G,bool)),combs(G,H,bool),aa(fun(G,H),fun(G,fun(H,bool)),aa(fun(H,fun(H,bool)),fun(fun(G,H),fun(G,fun(H,bool))),combb(H,fun(H,bool),G),fequal(H)),F9)),G6)),Ya))
       => aa(interrupt_action(G),interrupt_action(H),interr6514223866936857682action(G,H,F9),X9) = aa(interrupt_action(G),interrupt_action(H),interr6514223866936857682action(G,H,G6),Ya) ) ) )).

% interrupt_action.map_cong_pred
tff(fact_880_map__prod_Oidentity,axiom,(
    ! [H: $tType,G: $tType] : product_map_prod(G,G,H,H,combi(G),combi(H)) = id(product_prod(G,H)) )).

% map_prod.identity
tff(fact_881_Image__singleton__iff,axiom,(
    ! [A: $tType,B: $tType,B3: A,R2: set(product_prod(B,A)),A3: B] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),B3),image(B,A,R2,aa(set(B),set(B),aa(B,fun(set(B),set(B)),insert2(B),A3),bot_bot(set(B))))))
    <=> pp(aa(set(product_prod(B,A)),bool,aa(product_prod(B,A),fun(set(product_prod(B,A)),bool),member(product_prod(B,A)),aa(A,product_prod(B,A),aa(B,fun(A,product_prod(B,A)),product_Pair(B,A),A3),B3)),R2)) ) )).

% Image_singleton_iff
tff(fact_882_fold__empty,axiom,(
    ! [B: $tType,A: $tType,F3: fun(B,fun(A,A)),Z3: A] : finite_fold(B,A,F3,Z3,bot_bot(set(B))) = Z3 )).

% fold_empty
tff(fact_883_converse__join,axiom,(
    ! [A: $tType,B: $tType,R2: fun(B,fun(A,bool)),S: fun(B,fun(A,bool))] : conversep(B,A,aa(fun(B,fun(A,bool)),fun(B,fun(A,bool)),aa(fun(B,fun(A,bool)),fun(fun(B,fun(A,bool)),fun(B,fun(A,bool))),sup_sup(fun(B,fun(A,bool))),R2),S)) = aa(fun(A,fun(B,bool)),fun(A,fun(B,bool)),aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),fun(A,fun(B,bool))),sup_sup(fun(A,fun(B,bool))),conversep(B,A,R2)),conversep(B,A,S)) )).

% converse_join
tff(fact_884_conditional__action_Orec__transfer,axiom,(
    ! [T: $tType,B: $tType,C: $tType,A: $tType,R: fun(T,fun(A,bool)),S3: fun(B,fun(C,bool))] : pp(aa(fun(fun(A,C),fun(C,fun(conditional_action(A),C))),bool,aa(fun(fun(T,B),fun(B,fun(conditional_action(T),B))),fun(fun(fun(A,C),fun(C,fun(conditional_action(A),C))),bool),bNF_rel_fun(fun(T,B),fun(A,C),fun(B,fun(conditional_action(T),B)),fun(C,fun(conditional_action(A),C)),bNF_rel_fun(T,A,B,C,R,S3),bNF_rel_fun(B,C,fun(conditional_action(T),B),fun(conditional_action(A),C),S3,bNF_rel_fun(conditional_action(T),conditional_action(A),B,C,aa(fun(T,fun(A,bool)),fun(conditional_action(T),fun(conditional_action(A),bool)),condit4280512358590153947action(T,A),R),S3))),condit2004826933596026276action(T,B)),condit2004826933596026276action(A,C))) )).

% conditional_action.rec_transfer
tff(fact_885_split__comp__eq,axiom,(
    ! [H: $tType,I2: $tType,J: $tType,G: $tType,F9: fun(J,fun(H,I2)),G6: fun(G,J)] : aa(fun(product_prod(G,H),H),fun(product_prod(G,H),I2),aa(fun(product_prod(G,H),fun(H,I2)),fun(fun(product_prod(G,H),H),fun(product_prod(G,H),I2)),combs(product_prod(G,H),H,I2),aa(fun(product_prod(G,H),J),fun(product_prod(G,H),fun(H,I2)),aa(fun(J,fun(H,I2)),fun(fun(product_prod(G,H),J),fun(product_prod(G,H),fun(H,I2))),combb(J,fun(H,I2),product_prod(G,H)),F9),aa(fun(product_prod(G,H),G),fun(product_prod(G,H),J),aa(fun(G,J),fun(fun(product_prod(G,H),G),fun(product_prod(G,H),J)),combb(G,J,product_prod(G,H)),G6),product_fst(G,H)))),product_snd(G,H)) = aa(fun(G,fun(H,I2)),fun(product_prod(G,H),I2),product_case_prod(G,H,I2),aa(fun(G,J),fun(G,fun(H,I2)),aa(fun(J,fun(H,I2)),fun(fun(G,J),fun(G,fun(H,I2))),combb(J,fun(H,I2),G),F9),G6)) )).

% split_comp_eq
tff(fact_886_interrupt__action_Osize__gen__o__map,axiom,(
    ! [A: $tType,T: $tType,F3: fun(A,nat),G3: fun(T,A)] : aa(fun(interrupt_action(T),interrupt_action(A)),fun(interrupt_action(T),nat),aa(fun(interrupt_action(A),nat),fun(fun(interrupt_action(T),interrupt_action(A)),fun(interrupt_action(T),nat)),comp(interrupt_action(A),nat,interrupt_action(T)),interr4439281168783392195action(A,F3)),interr6514223866936857682action(T,A,G3)) = interr4439281168783392195action(T,aa(fun(T,A),fun(T,nat),aa(fun(A,nat),fun(fun(T,A),fun(T,nat)),comp(A,nat,T),F3),G3)) )).

% interrupt_action.size_gen_o_map
tff(fact_887_new__thread__action_Opred__mono,axiom,(
    ! [B: $tType,A: $tType,C: $tType,P1: fun(A,bool),P1a: fun(A,bool),P22: fun(B,bool),P2a: fun(B,bool),P32: fun(C,bool),P3a: fun(C,bool)] :
      ( pp(aa(fun(A,bool),bool,aa(fun(A,bool),fun(fun(A,bool),bool),ord_less_eq(fun(A,bool)),P1),P1a))
     => ( pp(aa(fun(B,bool),bool,aa(fun(B,bool),fun(fun(B,bool),bool),ord_less_eq(fun(B,bool)),P22),P2a))
       => ( pp(aa(fun(C,bool),bool,aa(fun(C,bool),fun(fun(C,bool),bool),ord_less_eq(fun(C,bool)),P32),P3a))
         => pp(aa(fun(new_thread_action(A,B,C),bool),bool,aa(fun(new_thread_action(A,B,C),bool),fun(fun(new_thread_action(A,B,C),bool),bool),ord_less_eq(fun(new_thread_action(A,B,C),bool)),new_th3963266298022529507action(A,B,C,P1,P22,P32)),new_th3963266298022529507action(A,B,C,P1a,P2a,P3a))) ) ) ) )).

% new_thread_action.pred_mono
tff(fact_888_new__thread__action_Opred__inject_I1_J,axiom,(
    ! [X: $tType,T: $tType,M: $tType,P1: fun(T,bool),P22: fun(X,bool),P32: fun(M,bool),A3: T,Aa3: X,Ab2: M] :
      ( pp(aa(new_thread_action(T,X,M),bool,new_th3963266298022529507action(T,X,M,P1,P22,P32),new_thread_NewThread(T,X,M,A3,Aa3,Ab2)))
    <=> ( pp(aa(T,bool,P1,A3))
        & pp(aa(X,bool,P22,Aa3))
        & pp(aa(M,bool,P32,Ab2)) ) ) )).

% new_thread_action.pred_inject(1)
tff(fact_889_exE__realizer,axiom,(
    ! [C: $tType,A: $tType,B: $tType,P: fun(A,fun(B,bool)),P2: product_prod(B,A),Q: fun(C,bool),F3: fun(B,fun(A,C))] :
      ( pp(aa(B,bool,aa(A,fun(B,bool),P,aa(product_prod(B,A),A,product_snd(B,A),P2)),aa(product_prod(B,A),B,product_fst(B,A),P2)))
     => ( ! [X4: B,Y3: A] :
            ( pp(aa(B,bool,aa(A,fun(B,bool),P,Y3),X4))
           => pp(aa(C,bool,Q,aa(A,C,aa(B,fun(A,C),F3,X4),Y3))) )
       => pp(aa(C,bool,Q,aa(product_prod(B,A),C,aa(fun(B,fun(A,C)),fun(product_prod(B,A),C),product_case_prod(B,A,C),F3),P2))) ) ) )).

% exE_realizer
tff(fact_890_new__thread__action_Orel__inject_I1_J,axiom,(
    ! [B: $tType,X: $tType,T: $tType,A: $tType,M: $tType,C: $tType,R1: fun(T,fun(A,bool)),R22: fun(X,fun(B,bool)),R32: fun(M,fun(C,bool)),X11: T,X12: X,X13: M,Y11: A,Y12: B,Y13: C] :
      ( pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),new_th911009063021768419action(T,A,X,B,M,C,R1,R22,R32),new_thread_NewThread(T,X,M,X11,X12,X13)),new_thread_NewThread(A,B,C,Y11,Y12,Y13)))
    <=> ( pp(aa(A,bool,aa(T,fun(A,bool),R1,X11),Y11))
        & pp(aa(B,bool,aa(X,fun(B,bool),R22,X12),Y12))
        & pp(aa(C,bool,aa(M,fun(C,bool),R32,X13),Y13)) ) ) )).

% new_thread_action.rel_inject(1)
tff(fact_891_interrupt__action_Orel__refl,axiom,(
    ! [B: $tType,Ra2: fun(B,fun(B,bool)),X3: interrupt_action(B)] :
      ( ! [X4: B] : pp(aa(B,bool,aa(B,fun(B,bool),Ra2,X4),X4))
     => pp(aa(interrupt_action(B),bool,aa(interrupt_action(B),fun(interrupt_action(B),bool),interr1799892525631285141action(B,B,Ra2),X3),X3)) ) )).

% interrupt_action.rel_refl
tff(fact_892_type__copy__map__comp0,axiom,(
    ! [F: $tType,D: $tType,B: $tType,A: $tType,C: $tType,E: $tType,Rep: fun(A,B),Abs: fun(B,A),M2: fun(C,D),M1: fun(B,D),M22: fun(C,B),F3: fun(D,F),G3: fun(E,C)] :
      ( type_definition(A,B,Rep,Abs,top_top(set(B)))
     => ( M2 = aa(fun(C,B),fun(C,D),aa(fun(B,D),fun(fun(C,B),fun(C,D)),comp(B,D,C),M1),M22)
       => aa(fun(E,C),fun(E,F),aa(fun(C,F),fun(fun(E,C),fun(E,F)),comp(C,F,E),aa(fun(C,D),fun(C,F),aa(fun(D,F),fun(fun(C,D),fun(C,F)),comp(D,F,C),F3),M2)),G3) = aa(fun(E,A),fun(E,F),aa(fun(A,F),fun(fun(E,A),fun(E,F)),comp(A,F,E),aa(fun(A,B),fun(A,F),aa(fun(B,F),fun(fun(A,B),fun(A,F)),comp(B,F,A),aa(fun(B,D),fun(B,F),aa(fun(D,F),fun(fun(B,D),fun(B,F)),comp(D,F,B),F3),M1)),Rep)),aa(fun(E,C),fun(E,A),aa(fun(C,A),fun(fun(E,C),fun(E,A)),comp(C,A,E),aa(fun(C,B),fun(C,A),aa(fun(B,A),fun(fun(C,B),fun(C,A)),comp(B,A,C),Abs),M22)),G3)) ) ) )).

% type_copy_map_comp0
tff(fact_893_add__Suc__right,axiom,(
    ! [M5: nat,N4: nat] : plus_plus(nat,M5,suc(N4)) = suc(plus_plus(nat,M5,N4)) )).

% add_Suc_right
tff(fact_894_new__thread__action_Orel__flip,axiom,(
    ! [A: $tType,B: $tType,C: $tType,F: $tType,E: $tType,D: $tType,R1: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool)),A3: new_thread_action(D,E,F),B3: new_thread_action(A,B,C)] :
      ( pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(D,E,F),fun(new_thread_action(A,B,C),bool),new_th911009063021768419action(D,A,E,B,F,C,conversep(A,D,R1),conversep(B,E,R22),conversep(C,F,R32)),A3),B3))
    <=> pp(aa(new_thread_action(D,E,F),bool,aa(new_thread_action(A,B,C),fun(new_thread_action(D,E,F),bool),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32),B3),A3)) ) )).

% new_thread_action.rel_flip
tff(fact_895_case__prod__o__map__prod,axiom,(
    ! [G: $tType,J: $tType,I2: $tType,K2: $tType,H: $tType,F9: fun(J,fun(K2,I2)),G12: fun(G,J),G23: fun(H,K2)] : aa(fun(product_prod(G,H),product_prod(J,K2)),fun(product_prod(G,H),I2),aa(fun(product_prod(J,K2),I2),fun(fun(product_prod(G,H),product_prod(J,K2)),fun(product_prod(G,H),I2)),comp(product_prod(J,K2),I2,product_prod(G,H)),aa(fun(J,fun(K2,I2)),fun(product_prod(J,K2),I2),product_case_prod(J,K2,I2),F9)),product_map_prod(G,J,H,K2,G12,G23)) = aa(fun(G,fun(H,I2)),fun(product_prod(G,H),I2),product_case_prod(G,H,I2),aa(fun(H,K2),fun(G,fun(H,I2)),aa(fun(G,fun(fun(H,K2),fun(H,I2))),fun(fun(H,K2),fun(G,fun(H,I2))),combc(G,fun(H,K2),fun(H,I2)),aa(fun(G,fun(K2,I2)),fun(G,fun(fun(H,K2),fun(H,I2))),aa(fun(fun(K2,I2),fun(fun(H,K2),fun(H,I2))),fun(fun(G,fun(K2,I2)),fun(G,fun(fun(H,K2),fun(H,I2)))),combb(fun(K2,I2),fun(fun(H,K2),fun(H,I2)),G),combb(K2,I2,H)),aa(fun(G,J),fun(G,fun(K2,I2)),aa(fun(J,fun(K2,I2)),fun(fun(G,J),fun(G,fun(K2,I2))),combb(J,fun(K2,I2),G),F9),G12))),G23)) )).

% case_prod_o_map_prod
tff(fact_896_new__thread__action_Orel__induct,axiom,(
    ! [T: $tType,X: $tType,M: $tType,C: $tType,B: $tType,A: $tType,R1: fun(T,fun(A,bool)),R22: fun(X,fun(B,bool)),R32: fun(M,fun(C,bool)),X3: new_thread_action(T,X,M),Y: new_thread_action(A,B,C),Q: fun(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool))] :
      ( pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),new_th911009063021768419action(T,A,X,B,M,C,R1,R22,R32),X3),Y))
     => ( ! [A11: T,A122: X,A13: M,B11: A,B122: B,B13: C] :
            ( pp(aa(A,bool,aa(T,fun(A,bool),R1,A11),B11))
           => ( pp(aa(B,bool,aa(X,fun(B,bool),R22,A122),B122))
             => ( pp(aa(C,bool,aa(M,fun(C,bool),R32,A13),B13))
               => pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),Q,new_thread_NewThread(T,X,M,A11,A122,A13)),new_thread_NewThread(A,B,C,B11,B122,B13))) ) ) )
       => ( ! [A21: T,A222: bool,B21: A,B222: bool] :
              ( pp(aa(A,bool,aa(T,fun(A,bool),R1,A21),B21))
             => ( ( pp(A222)
                <=> pp(B222) )
               => pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),Q,new_th4503388622997288770Exists(T,X,M,A21,A222)),new_th4503388622997288770Exists(A,B,C,B21,B222))) ) )
         => pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),Q,X3),Y)) ) ) ) )).

% new_thread_action.rel_induct
tff(fact_897_flip__pred,axiom,(
    ! [G: $tType,H: $tType,A6: set(product_prod(G,H)),R3: fun(H,fun(G,bool))] :
      ( pp(aa(set(product_prod(G,H)),bool,aa(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool),ord_less_eq(set(product_prod(G,H))),A6),aa(fun(product_prod(G,H),bool),set(product_prod(G,H)),collect(product_prod(G,H)),aa(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),product_case_prod(G,H,bool),conversep(H,G,R3)))))
     => pp(aa(set(product_prod(H,G)),bool,aa(set(product_prod(H,G)),fun(set(product_prod(H,G)),bool),ord_less_eq(set(product_prod(H,G))),aa(set(product_prod(G,H)),set(product_prod(H,G)),aa(fun(product_prod(G,H),product_prod(H,G)),fun(set(product_prod(G,H)),set(product_prod(H,G))),image2(product_prod(G,H),product_prod(H,G)),aa(fun(G,fun(H,product_prod(H,G))),fun(product_prod(G,H),product_prod(H,G)),product_case_prod(G,H,product_prod(H,G)),aa(fun(H,fun(G,product_prod(H,G))),fun(G,fun(H,product_prod(H,G))),combc(H,G,product_prod(H,G)),product_Pair(H,G)))),A6)),aa(fun(product_prod(H,G),bool),set(product_prod(H,G)),collect(product_prod(H,G)),aa(fun(H,fun(G,bool)),fun(product_prod(H,G),bool),product_case_prod(H,G,bool),R3)))) ) )).

% flip_pred
tff(fact_898_dom__def,axiom,(
    ! [G: $tType,H: $tType,M4: fun(G,option(H))] : dom(G,H,M4) = aa(fun(G,bool),set(G),collect(G),aa(fun(G,bool),fun(G,bool),aa(fun(bool,bool),fun(fun(G,bool),fun(G,bool)),combb(bool,bool,G),fNot),aa(option(H),fun(G,bool),aa(fun(G,fun(option(H),bool)),fun(option(H),fun(G,bool)),combc(G,option(H),bool),aa(fun(G,option(H)),fun(G,fun(option(H),bool)),aa(fun(option(H),fun(option(H),bool)),fun(fun(G,option(H)),fun(G,fun(option(H),bool))),combb(option(H),fun(option(H),bool),G),fequal(option(H))),M4)),none(H)))) )).

% dom_def
tff(fact_899_interrupt__action_Orel__mono,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool)),Ra2: fun(A,fun(B,bool))] :
      ( pp(aa(fun(A,fun(B,bool)),bool,aa(fun(A,fun(B,bool)),fun(fun(A,fun(B,bool)),bool),ord_less_eq(fun(A,fun(B,bool))),R),Ra2))
     => pp(aa(fun(interrupt_action(A),fun(interrupt_action(B),bool)),bool,aa(fun(interrupt_action(A),fun(interrupt_action(B),bool)),fun(fun(interrupt_action(A),fun(interrupt_action(B),bool)),bool),ord_less_eq(fun(interrupt_action(A),fun(interrupt_action(B),bool))),interr1799892525631285141action(A,B,R)),interr1799892525631285141action(A,B,Ra2))) ) )).

% interrupt_action.rel_mono
tff(fact_900_new__thread__action_Orel__cases,axiom,(
    ! [B: $tType,C: $tType,M: $tType,X: $tType,T: $tType,A: $tType,R1: fun(T,fun(A,bool)),R22: fun(X,fun(B,bool)),R32: fun(M,fun(C,bool)),A3: new_thread_action(T,X,M),B3: new_thread_action(A,B,C)] :
      ( pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),new_th911009063021768419action(T,A,X,B,M,C,R1,R22,R32),A3),B3))
     => ( ! [X14: T,X23: X,X33: M] :
            ( A3 = new_thread_NewThread(T,X,M,X14,X23,X33)
           => ! [Y14: A,Y23: B,Y33: C] :
                ( B3 = new_thread_NewThread(A,B,C,Y14,Y23,Y33)
               => ( pp(aa(A,bool,aa(T,fun(A,bool),R1,X14),Y14))
                 => ( pp(aa(B,bool,aa(X,fun(B,bool),R22,X23),Y23))
                   => ~ pp(aa(C,bool,aa(M,fun(C,bool),R32,X33),Y33)) ) ) ) )
       => ~ ! [X1a: T,X2a2: bool] :
              ( A3 = new_th4503388622997288770Exists(T,X,M,X1a,X2a2)
             => ! [Y1a: A,Y2a: bool] :
                  ( B3 = new_th4503388622997288770Exists(A,B,C,Y1a,Y2a)
                 => ( pp(aa(A,bool,aa(T,fun(A,bool),R1,X1a),Y1a))
                   => ( pp(X2a2)
                    <=> ~ pp(Y2a) ) ) ) ) ) ) )).

% new_thread_action.rel_cases
tff(fact_901_predicate2__transferD,axiom,(
    ! [A: $tType,B: $tType,D: $tType,C: $tType,R1: fun(A,fun(B,bool)),R22: fun(C,fun(D,bool)),P: fun(A,fun(C,bool)),Q: fun(B,fun(D,bool)),A3: product_prod(A,B),A5: set(product_prod(A,B)),B3: product_prod(C,D),B6: set(product_prod(C,D))] :
      ( pp(aa(fun(B,fun(D,bool)),bool,aa(fun(A,fun(C,bool)),fun(fun(B,fun(D,bool)),bool),bNF_rel_fun(A,B,fun(C,bool),fun(D,bool),R1,bNF_rel_fun(C,D,bool,bool,R22,fequal(bool))),P),Q))
     => ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),A3),A5))
       => ( pp(aa(set(product_prod(C,D)),bool,aa(product_prod(C,D),fun(set(product_prod(C,D)),bool),member(product_prod(C,D)),B3),B6))
         => ( pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),A5),aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),R1))))
           => ( pp(aa(set(product_prod(C,D)),bool,aa(set(product_prod(C,D)),fun(set(product_prod(C,D)),bool),ord_less_eq(set(product_prod(C,D))),B6),aa(fun(product_prod(C,D),bool),set(product_prod(C,D)),collect(product_prod(C,D)),aa(fun(C,fun(D,bool)),fun(product_prod(C,D),bool),product_case_prod(C,D,bool),R22))))
             => ( pp(aa(C,bool,aa(A,fun(C,bool),P,aa(product_prod(A,B),A,product_fst(A,B),A3)),aa(product_prod(C,D),C,product_fst(C,D),B3)))
              <=> pp(aa(D,bool,aa(B,fun(D,bool),Q,aa(product_prod(A,B),B,product_snd(A,B),A3)),aa(product_prod(C,D),D,product_snd(C,D),B3))) ) ) ) ) ) ) )).

% predicate2_transferD
tff(fact_902_wait__set__action_Orel__eq,axiom,(
    ! [B: $tType,A: $tType] : wait_s4151587442273979049action(A,A,B,B,fequal(A),fequal(B)) = fequal(wait_set_action(A,B)) )).

% wait_set_action.rel_eq
tff(fact_903_case__prod__comp,axiom,(
    ! [D: $tType,A: $tType,C: $tType,B: $tType,F3: fun(D,fun(C,A)),G3: fun(B,D),X3: product_prod(B,C)] : aa(product_prod(B,C),A,aa(fun(B,fun(C,A)),fun(product_prod(B,C),A),product_case_prod(B,C,A),aa(fun(B,D),fun(B,fun(C,A)),aa(fun(D,fun(C,A)),fun(fun(B,D),fun(B,fun(C,A))),comp(D,fun(C,A),B),F3),G3)),X3) = aa(C,A,aa(D,fun(C,A),F3,aa(B,D,G3,aa(product_prod(B,C),B,product_fst(B,C),X3))),aa(product_prod(B,C),C,product_snd(B,C),X3)) )).

% case_prod_comp
tff(fact_904_is__equality__def,axiom,(
    ! [A: $tType,R: fun(A,fun(A,bool))] :
      ( is_equality(A,R)
    <=> R = fequal(A) ) )).

% is_equality_def
tff(fact_905_Grp__fst__snd,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] : relcompp(A,product_prod(A,B),B,conversep(product_prod(A,B),A,bNF_Grp(product_prod(A,B),A,aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),R)),product_fst(A,B))),bNF_Grp(product_prod(A,B),B,aa(fun(product_prod(A,B),bool),set(product_prod(A,B)),collect(product_prod(A,B)),aa(fun(A,fun(B,bool)),fun(product_prod(A,B),bool),product_case_prod(A,B,bool),R)),product_snd(A,B))) = R )).

% Grp_fst_snd
tff(fact_906_wait__set__action_Orec__o__map,axiom,(
    ! [H: $tType,K2: $tType,J: $tType,G: $tType,I2: $tType,G6: fun(K2,I2),Ga2: fun(K2,I2),Gb: fun(K2,I2),Gc: fun(J,I2),Gd: I2,Ge: I2,F9: fun(G,J),Fa2: fun(H,K2)] : aa(fun(wait_set_action(G,H),wait_set_action(J,K2)),fun(wait_set_action(G,H),I2),aa(fun(wait_set_action(J,K2),I2),fun(fun(wait_set_action(G,H),wait_set_action(J,K2)),fun(wait_set_action(G,H),I2)),comp(wait_set_action(J,K2),I2,wait_set_action(G,H)),wait_s6484701876979208178action(K2,I2,J,G6,Ga2,Gb,Gc,Gd,Ge)),wait_s8865918783579551590action(G,J,H,K2,F9,Fa2)) = wait_s6484701876979208178action(H,I2,G,aa(fun(H,K2),fun(H,I2),aa(fun(K2,I2),fun(fun(H,K2),fun(H,I2)),combb(K2,I2,H),G6),Fa2),aa(fun(H,K2),fun(H,I2),aa(fun(K2,I2),fun(fun(H,K2),fun(H,I2)),combb(K2,I2,H),Ga2),Fa2),aa(fun(H,K2),fun(H,I2),aa(fun(K2,I2),fun(fun(H,K2),fun(H,I2)),combb(K2,I2,H),Gb),Fa2),aa(fun(G,J),fun(G,I2),aa(fun(J,I2),fun(fun(G,J),fun(G,I2)),combb(J,I2,G),Gc),F9),Gd,Ge) )).

% wait_set_action.rec_o_map
tff(fact_907_new__thread__action_Osimps_I5_J,axiom,(
    ! [X: $tType,A: $tType,T: $tType,M: $tType,F1: fun(T,fun(X,fun(M,A))),F22: fun(T,fun(bool,A)),X11: T,X12: X,X13: M] : new_th5509480840830140020action(T,X,M,A,F1,F22,new_thread_NewThread(T,X,M,X11,X12,X13)) = aa(M,A,aa(X,fun(M,A),aa(T,fun(X,fun(M,A)),F1,X11),X12),X13) )).

% new_thread_action.simps(5)
tff(fact_908_Collect__const,axiom,(
    ! [G: $tType,P3: bool] :
      ( ( pp(P3)
       => aa(fun(G,bool),set(G),collect(G),aa(bool,fun(G,bool),combk(bool,G),P3)) = top_top(set(G)) )
      & ( ~ pp(P3)
       => aa(fun(G,bool),set(G),collect(G),aa(bool,fun(G,bool),combk(bool,G),P3)) = bot_bot(set(G)) ) ) )).

% Collect_const
tff(fact_909_type__copy__set__map0,axiom,(
    ! [A: $tType,B: $tType,D: $tType,E: $tType,C: $tType,F: $tType,Rep: fun(A,B),Abs: fun(B,A),S3: fun(B,set(D)),M2: fun(C,B),F3: fun(E,D),S6: fun(C,set(E)),G3: fun(F,C)] :
      ( type_definition(A,B,Rep,Abs,top_top(set(B)))
     => ( aa(fun(C,B),fun(C,set(D)),aa(fun(B,set(D)),fun(fun(C,B),fun(C,set(D))),comp(B,set(D),C),S3),M2) = aa(fun(C,set(E)),fun(C,set(D)),aa(fun(set(E),set(D)),fun(fun(C,set(E)),fun(C,set(D))),comp(set(E),set(D),C),aa(fun(E,D),fun(set(E),set(D)),image2(E,D),F3)),S6)
       => aa(fun(F,A),fun(F,set(D)),aa(fun(A,set(D)),fun(fun(F,A),fun(F,set(D))),comp(A,set(D),F),aa(fun(A,B),fun(A,set(D)),aa(fun(B,set(D)),fun(fun(A,B),fun(A,set(D))),comp(B,set(D),A),S3),Rep)),aa(fun(F,C),fun(F,A),aa(fun(C,A),fun(fun(F,C),fun(F,A)),comp(C,A,F),aa(fun(C,B),fun(C,A),aa(fun(B,A),fun(fun(C,B),fun(C,A)),comp(B,A,C),Abs),M2)),G3)) = aa(fun(F,set(E)),fun(F,set(D)),aa(fun(set(E),set(D)),fun(fun(F,set(E)),fun(F,set(D))),comp(set(E),set(D),F),aa(fun(E,D),fun(set(E),set(D)),image2(E,D),F3)),aa(fun(F,C),fun(F,set(E)),aa(fun(C,set(E)),fun(fun(F,C),fun(F,set(E))),comp(C,set(E),F),S6),G3)) ) ) )).

% type_copy_set_map0
tff(fact_910_interrupt__action_Opred__inject_I3_J,axiom,(
    ! [T: $tType,P: fun(T,bool),A3: T] :
      ( pp(aa(interrupt_action(T),bool,interr8158014761281175971action(T,P),interr7976201102587534891errupt(T,A3)))
    <=> pp(aa(T,bool,P,A3)) ) )).

% interrupt_action.pred_inject(3)
tff(fact_911_type__copy__map__id0,axiom,(
    ! [B: $tType,A: $tType,Rep: fun(A,B),Abs: fun(B,A),M2: fun(B,B)] :
      ( type_definition(A,B,Rep,Abs,top_top(set(B)))
     => ( M2 = id(B)
       => aa(fun(A,B),fun(A,A),aa(fun(B,A),fun(fun(A,B),fun(A,A)),comp(B,A,A),aa(fun(B,B),fun(B,A),aa(fun(B,A),fun(fun(B,B),fun(B,A)),comp(B,A,B),Abs),M2)),Rep) = id(A) ) ) )).

% type_copy_map_id0
tff(fact_912_wait__set__action_Opred__True,axiom,(
    ! [H: $tType,G: $tType,X5: wait_set_action(G,H)] : wait_s752929372302630947action(G,H,aa(bool,fun(G,bool),combk(bool,G),fTrue),aa(bool,fun(H,bool),combk(bool,H),fTrue),X5) )).

% wait_set_action.pred_True
tff(fact_913_type__copy__map__comp0__undo,axiom,(
    ! [E: $tType,A: $tType,C: $tType,B: $tType,D: $tType,F: $tType,Rep: fun(A,B),Abs: fun(B,A),Rep2: fun(C,D),Abs4: fun(D,C),Rep4: fun(E,F),Abs5: fun(F,E),M2: fun(F,D),M1: fun(B,D),M22: fun(F,B)] :
      ( type_definition(A,B,Rep,Abs,top_top(set(B)))
     => ( type_definition(C,D,Rep2,Abs4,top_top(set(D)))
       => ( type_definition(E,F,Rep4,Abs5,top_top(set(F)))
         => ( aa(fun(E,F),fun(E,C),aa(fun(F,C),fun(fun(E,F),fun(E,C)),comp(F,C,E),aa(fun(F,D),fun(F,C),aa(fun(D,C),fun(fun(F,D),fun(F,C)),comp(D,C,F),Abs4),M2)),Rep4) = aa(fun(E,A),fun(E,C),aa(fun(A,C),fun(fun(E,A),fun(E,C)),comp(A,C,E),aa(fun(A,B),fun(A,C),aa(fun(B,C),fun(fun(A,B),fun(A,C)),comp(B,C,A),aa(fun(B,D),fun(B,C),aa(fun(D,C),fun(fun(B,D),fun(B,C)),comp(D,C,B),Abs4),M1)),Rep)),aa(fun(E,F),fun(E,A),aa(fun(F,A),fun(fun(E,F),fun(E,A)),comp(F,A,E),aa(fun(F,B),fun(F,A),aa(fun(B,A),fun(fun(F,B),fun(F,A)),comp(B,A,F),Abs),M22)),Rep4))
           => aa(fun(F,B),fun(F,D),aa(fun(B,D),fun(fun(F,B),fun(F,D)),comp(B,D,F),M1),M22) = M2 ) ) ) ) )).

% type_copy_map_comp0_undo
tff(fact_914_interrupt__action_Oset__intros_I1_J,axiom,(
    ! [T: $tType,X11: T,X12: bool] : pp(aa(set(T),bool,aa(T,fun(set(T),bool),member(T),X11),interr3053324309844243148action(T,interr5885539089632487139rupted(T,X11,X12)))) )).

% interrupt_action.set_intros(1)
tff(fact_915_fst__snd__flip,axiom,(
    ! [H: $tType,G: $tType,Xy: product_prod(G,H)] : aa(product_prod(G,H),G,product_fst(G,H),Xy) = aa(product_prod(G,H),G,aa(fun(product_prod(G,H),product_prod(H,G)),fun(product_prod(G,H),G),aa(fun(product_prod(H,G),G),fun(fun(product_prod(G,H),product_prod(H,G)),fun(product_prod(G,H),G)),comp(product_prod(H,G),G,product_prod(G,H)),product_snd(H,G)),aa(fun(G,fun(H,product_prod(H,G))),fun(product_prod(G,H),product_prod(H,G)),product_case_prod(G,H,product_prod(H,G)),aa(fun(H,fun(G,product_prod(H,G))),fun(G,fun(H,product_prod(H,G))),combc(H,G,product_prod(H,G)),product_Pair(H,G)))),Xy) )).

% fst_snd_flip
tff(fact_916_typerep__new__thread__action__def,axiom,(
    ! [A: $tType,B: $tType,C: $tType] :
      ( ( typerep2(C)
        & typerep2(B)
        & typerep2(A) )
     => ! [T2: itself(new_thread_action(A,B,C))] : typerep_typerep(new_thread_action(A,B,C),T2) = typerep3(literal2(fFalse,fTrue,fTrue,fFalse,fFalse,fFalse,fTrue,literal2(fTrue,fTrue,fTrue,fFalse,fTrue,fFalse,fTrue,literal2(fTrue,fTrue,fFalse,fFalse,fTrue,fFalse,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fTrue,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fTrue,fTrue,fTrue,fFalse,fTrue,fFalse,literal2(fFalse,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fFalse,fTrue,fFalse,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fFalse,fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,literal2(fFalse,fTrue,fFalse,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fTrue,fFalse,fFalse,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,literal2(fTrue,fFalse,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fFalse,fFalse,fFalse,fTrue,fTrue,literal2(fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,fTrue,literal2(fTrue,fFalse,fFalse,fTrue,fFalse,fTrue,fTrue,literal2(fTrue,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,literal2(fFalse,fTrue,fTrue,fTrue,fFalse,fTrue,fTrue,zero_zero(literal)))))))))))))))))))))))))),aa(list(typerep),list(typerep),aa(typerep,fun(list(typerep),list(typerep)),cons(typerep),typerep_typerep(A,type2(A))),aa(list(typerep),list(typerep),aa(typerep,fun(list(typerep),list(typerep)),cons(typerep),typerep_typerep(B,type2(B))),aa(list(typerep),list(typerep),aa(typerep,fun(list(typerep),list(typerep)),cons(typerep),typerep_typerep(C,type2(C))),nil(typerep))))) ) )).

% typerep_new_thread_action_def
tff(fact_917_snd__fst__flip,axiom,(
    ! [G: $tType,H: $tType,Xy: product_prod(H,G)] : aa(product_prod(H,G),G,product_snd(H,G),Xy) = aa(product_prod(H,G),G,aa(fun(product_prod(H,G),product_prod(G,H)),fun(product_prod(H,G),G),aa(fun(product_prod(G,H),G),fun(fun(product_prod(H,G),product_prod(G,H)),fun(product_prod(H,G),G)),comp(product_prod(G,H),G,product_prod(H,G)),product_fst(G,H)),aa(fun(H,fun(G,product_prod(G,H))),fun(product_prod(H,G),product_prod(G,H)),product_case_prod(H,G,product_prod(G,H)),aa(fun(G,fun(H,product_prod(G,H))),fun(H,fun(G,product_prod(G,H))),combc(G,H,product_prod(G,H)),product_Pair(G,H)))),Xy) )).

% snd_fst_flip
tff(fact_918_new__thread__action_Opred__set,axiom,(
    ! [A: $tType,B: $tType,C: $tType,P1: fun(A,bool),P22: fun(B,bool),P32: fun(C,bool),X5: new_thread_action(A,B,C)] :
      ( pp(aa(new_thread_action(A,B,C),bool,new_th3963266298022529507action(A,B,C,P1,P22,P32),X5))
    <=> ( ! [Xa6: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Xa6),new_th4037974794548711221action(A,B,C,X5)))
           => pp(aa(A,bool,P1,Xa6)) )
        & ! [Xa6: B] :
            ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),Xa6),new_th5315647845865256052action(A,B,C,X5)))
           => pp(aa(B,bool,P22,Xa6)) )
        & ! [Xa6: C] :
            ( pp(aa(set(C),bool,aa(C,fun(set(C),bool),member(C),Xa6),new_th6593320897181800883action(A,B,C,X5)))
           => pp(aa(C,bool,P32,Xa6)) ) ) ) )).

% new_thread_action.pred_set
tff(fact_919_fun_Orel__compp__Grp,axiom,(
    ! [G: $tType,I2: $tType,H: $tType,R3: fun(H,fun(I2,bool))] : bNF_rel_fun(G,G,H,I2,fequal(G),R3) = relcompp(fun(G,H),fun(G,product_prod(H,I2)),fun(G,I2),conversep(fun(G,product_prod(H,I2)),fun(G,H),bNF_Grp(fun(G,product_prod(H,I2)),fun(G,H),aa(fun(fun(G,product_prod(H,I2)),bool),set(fun(G,product_prod(H,I2))),collect(fun(G,product_prod(H,I2))),aa(set(product_prod(H,I2)),fun(fun(G,product_prod(H,I2)),bool),aa(fun(fun(G,product_prod(H,I2)),fun(set(product_prod(H,I2)),bool)),fun(set(product_prod(H,I2)),fun(fun(G,product_prod(H,I2)),bool)),combc(fun(G,product_prod(H,I2)),set(product_prod(H,I2)),bool),aa(fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2))),fun(fun(G,product_prod(H,I2)),fun(set(product_prod(H,I2)),bool)),aa(fun(set(product_prod(H,I2)),fun(set(product_prod(H,I2)),bool)),fun(fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2))),fun(fun(G,product_prod(H,I2)),fun(set(product_prod(H,I2)),bool))),combb(set(product_prod(H,I2)),fun(set(product_prod(H,I2)),bool),fun(G,product_prod(H,I2))),ord_less_eq(set(product_prod(H,I2)))),aa(set(G),fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2))),aa(fun(fun(G,product_prod(H,I2)),fun(set(G),set(product_prod(H,I2)))),fun(set(G),fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2)))),combc(fun(G,product_prod(H,I2)),set(G),set(product_prod(H,I2))),image2(G,product_prod(H,I2))),top_top(set(G))))),aa(fun(product_prod(H,I2),bool),set(product_prod(H,I2)),collect(product_prod(H,I2)),aa(fun(H,fun(I2,bool)),fun(product_prod(H,I2),bool),product_case_prod(H,I2,bool),R3)))),aa(fun(product_prod(H,I2),H),fun(fun(G,product_prod(H,I2)),fun(G,H)),comp(product_prod(H,I2),H,G),product_fst(H,I2)))),bNF_Grp(fun(G,product_prod(H,I2)),fun(G,I2),aa(fun(fun(G,product_prod(H,I2)),bool),set(fun(G,product_prod(H,I2))),collect(fun(G,product_prod(H,I2))),aa(set(product_prod(H,I2)),fun(fun(G,product_prod(H,I2)),bool),aa(fun(fun(G,product_prod(H,I2)),fun(set(product_prod(H,I2)),bool)),fun(set(product_prod(H,I2)),fun(fun(G,product_prod(H,I2)),bool)),combc(fun(G,product_prod(H,I2)),set(product_prod(H,I2)),bool),aa(fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2))),fun(fun(G,product_prod(H,I2)),fun(set(product_prod(H,I2)),bool)),aa(fun(set(product_prod(H,I2)),fun(set(product_prod(H,I2)),bool)),fun(fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2))),fun(fun(G,product_prod(H,I2)),fun(set(product_prod(H,I2)),bool))),combb(set(product_prod(H,I2)),fun(set(product_prod(H,I2)),bool),fun(G,product_prod(H,I2))),ord_less_eq(set(product_prod(H,I2)))),aa(set(G),fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2))),aa(fun(fun(G,product_prod(H,I2)),fun(set(G),set(product_prod(H,I2)))),fun(set(G),fun(fun(G,product_prod(H,I2)),set(product_prod(H,I2)))),combc(fun(G,product_prod(H,I2)),set(G),set(product_prod(H,I2))),image2(G,product_prod(H,I2))),top_top(set(G))))),aa(fun(product_prod(H,I2),bool),set(product_prod(H,I2)),collect(product_prod(H,I2)),aa(fun(H,fun(I2,bool)),fun(product_prod(H,I2),bool),product_case_prod(H,I2,bool),R3)))),aa(fun(product_prod(H,I2),I2),fun(fun(G,product_prod(H,I2)),fun(G,I2)),comp(product_prod(H,I2),I2,G),product_snd(H,I2)))) )).

% fun.rel_compp_Grp
tff(fact_920_new__thread__action_Orel__intros_I2_J,axiom,(
    ! [X: $tType,M: $tType,T: $tType,A: $tType,C: $tType,B: $tType,R1: fun(T,fun(A,bool)),X21: T,Y21: A,X22: bool,Y22: bool,R22: fun(X,fun(B,bool)),R32: fun(M,fun(C,bool))] :
      ( pp(aa(A,bool,aa(T,fun(A,bool),R1,X21),Y21))
     => ( ( pp(X22)
        <=> pp(Y22) )
       => pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),new_th911009063021768419action(T,A,X,B,M,C,R1,R22,R32),new_th4503388622997288770Exists(T,X,M,X21,X22)),new_th4503388622997288770Exists(A,B,C,Y21,Y22))) ) ) )).

% new_thread_action.rel_intros(2)
tff(fact_921_Un__Pow__subset,axiom,(
    ! [A: $tType,A5: set(A),B6: set(A)] : pp(aa(set(set(A)),bool,aa(set(set(A)),fun(set(set(A)),bool),ord_less_eq(set(set(A))),aa(set(set(A)),set(set(A)),aa(set(set(A)),fun(set(set(A)),set(set(A))),sup_sup(set(set(A))),pow(A,A5)),pow(A,B6))),pow(A,aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),A5),B6)))) )).

% Un_Pow_subset
tff(fact_922_interrupt__action_Opred__mono,axiom,(
    ! [A: $tType,P: fun(A,bool),Pa: fun(A,bool)] :
      ( pp(aa(fun(A,bool),bool,aa(fun(A,bool),fun(fun(A,bool),bool),ord_less_eq(fun(A,bool)),P),Pa))
     => pp(aa(fun(interrupt_action(A),bool),bool,aa(fun(interrupt_action(A),bool),fun(fun(interrupt_action(A),bool),bool),ord_less_eq(fun(interrupt_action(A),bool)),interr8158014761281175971action(A,P)),interr8158014761281175971action(A,Pa))) ) )).

% interrupt_action.pred_mono
tff(fact_923_image__Pow__surj,axiom,(
    ! [B: $tType,A: $tType,F3: fun(B,A),A5: set(B),B6: set(A)] :
      ( aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3),A5) = B6
     => aa(set(set(B)),set(set(A)),aa(fun(set(B),set(A)),fun(set(set(B)),set(set(A))),image2(set(B),set(A)),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),F3)),pow(B,A5)) = pow(A,B6) ) )).

% image_Pow_surj
tff(fact_924_interrupt__action_Opred__inject_I2_J,axiom,(
    ! [T: $tType,P: fun(T,bool),A3: T] :
      ( pp(aa(interrupt_action(T),bool,interr8158014761281175971action(T,P),interrupt_Interrupt(T,A3)))
    <=> pp(aa(T,bool,P,A3)) ) )).

% interrupt_action.pred_inject(2)
tff(fact_925_interrupt__action_Osimps_I17_J,axiom,(
    ! [A: $tType,T: $tType,F3: fun(T,A),X2: T] : aa(interrupt_action(T),interrupt_action(A),interr6514223866936857682action(T,A,F3),interrupt_Interrupt(T,X2)) = interrupt_Interrupt(A,aa(T,A,F3,X2)) )).

% interrupt_action.simps(17)
tff(fact_926_transfer__forall__transfer_I1_J,axiom,(
    ! [A: $tType,B: $tType,A5: fun(A,fun(B,bool))] :
      ( bi_total(A,B,A5)
     => pp(aa(fun(fun(B,bool),bool),bool,aa(fun(fun(A,bool),bool),fun(fun(fun(B,bool),bool),bool),bNF_rel_fun(fun(A,bool),fun(B,bool),bool,bool,bNF_rel_fun(A,B,bool,bool,A5,fequal(bool)),fequal(bool)),transfer_forall(A)),transfer_forall(B))) ) )).

% transfer_forall_transfer(1)
tff(fact_927_fun_Orel__Grp,axiom,(
    ! [G: $tType,I2: $tType,H: $tType,A6: set(H),F9: fun(H,I2)] : bNF_rel_fun(G,G,H,I2,fequal(G),bNF_Grp(H,I2,A6,F9)) = bNF_Grp(fun(G,H),fun(G,I2),aa(fun(fun(G,H),bool),set(fun(G,H)),collect(fun(G,H)),aa(set(H),fun(fun(G,H),bool),aa(fun(fun(G,H),fun(set(H),bool)),fun(set(H),fun(fun(G,H),bool)),combc(fun(G,H),set(H),bool),aa(fun(fun(G,H),set(H)),fun(fun(G,H),fun(set(H),bool)),aa(fun(set(H),fun(set(H),bool)),fun(fun(fun(G,H),set(H)),fun(fun(G,H),fun(set(H),bool))),combb(set(H),fun(set(H),bool),fun(G,H)),ord_less_eq(set(H))),aa(set(G),fun(fun(G,H),set(H)),aa(fun(fun(G,H),fun(set(G),set(H))),fun(set(G),fun(fun(G,H),set(H))),combc(fun(G,H),set(G),set(H)),image2(G,H)),top_top(set(G))))),A6)),aa(fun(H,I2),fun(fun(G,H),fun(G,I2)),comp(H,I2,G),F9)) )).

% fun.rel_Grp
tff(fact_928_new__thread__action_Orec__o__map,axiom,(
    ! [I2: $tType,M: $tType,L: $tType,H: $tType,J: $tType,K2: $tType,G: $tType,G6: fun(K2,fun(L,fun(M,J))),Ga2: fun(K2,fun(bool,J)),F9: fun(G,K2),Fa2: fun(H,L),Fb: fun(I2,M)] : aa(fun(new_thread_action(G,H,I2),new_thread_action(K2,L,M)),fun(new_thread_action(G,H,I2),J),aa(fun(new_thread_action(K2,L,M),J),fun(fun(new_thread_action(G,H,I2),new_thread_action(K2,L,M)),fun(new_thread_action(G,H,I2),J)),comp(new_thread_action(K2,L,M),J,new_thread_action(G,H,I2)),new_th7858695674882416556action(K2,L,M,J,G6,Ga2)),new_th6052504119144402208action(G,K2,H,L,I2,M,F9,Fa2,Fb)) = new_th7858695674882416556action(G,H,I2,J,aa(fun(I2,M),fun(G,fun(H,fun(I2,J))),aa(fun(G,fun(fun(I2,M),fun(H,fun(I2,J)))),fun(fun(I2,M),fun(G,fun(H,fun(I2,J)))),combc(G,fun(I2,M),fun(H,fun(I2,J))),aa(fun(G,fun(H,fun(fun(I2,M),fun(I2,J)))),fun(G,fun(fun(I2,M),fun(H,fun(I2,J)))),aa(fun(fun(H,fun(fun(I2,M),fun(I2,J))),fun(fun(I2,M),fun(H,fun(I2,J)))),fun(fun(G,fun(H,fun(fun(I2,M),fun(I2,J)))),fun(G,fun(fun(I2,M),fun(H,fun(I2,J))))),combb(fun(H,fun(fun(I2,M),fun(I2,J))),fun(fun(I2,M),fun(H,fun(I2,J))),G),combc(H,fun(I2,M),fun(I2,J))),aa(fun(G,fun(H,fun(M,J))),fun(G,fun(H,fun(fun(I2,M),fun(I2,J)))),aa(fun(fun(H,fun(M,J)),fun(H,fun(fun(I2,M),fun(I2,J)))),fun(fun(G,fun(H,fun(M,J))),fun(G,fun(H,fun(fun(I2,M),fun(I2,J))))),combb(fun(H,fun(M,J)),fun(H,fun(fun(I2,M),fun(I2,J))),G),aa(fun(fun(M,J),fun(fun(I2,M),fun(I2,J))),fun(fun(H,fun(M,J)),fun(H,fun(fun(I2,M),fun(I2,J)))),combb(fun(M,J),fun(fun(I2,M),fun(I2,J)),H),combb(M,J,I2))),aa(fun(H,L),fun(G,fun(H,fun(M,J))),aa(fun(G,fun(fun(H,L),fun(H,fun(M,J)))),fun(fun(H,L),fun(G,fun(H,fun(M,J)))),combc(G,fun(H,L),fun(H,fun(M,J))),aa(fun(G,fun(L,fun(M,J))),fun(G,fun(fun(H,L),fun(H,fun(M,J)))),aa(fun(fun(L,fun(M,J)),fun(fun(H,L),fun(H,fun(M,J)))),fun(fun(G,fun(L,fun(M,J))),fun(G,fun(fun(H,L),fun(H,fun(M,J))))),combb(fun(L,fun(M,J)),fun(fun(H,L),fun(H,fun(M,J))),G),combb(L,fun(M,J),H)),aa(fun(G,K2),fun(G,fun(L,fun(M,J))),aa(fun(K2,fun(L,fun(M,J))),fun(fun(G,K2),fun(G,fun(L,fun(M,J)))),combb(K2,fun(L,fun(M,J)),G),G6),F9))),Fa2)))),Fb),aa(fun(G,K2),fun(G,fun(bool,J)),aa(fun(K2,fun(bool,J)),fun(fun(G,K2),fun(G,fun(bool,J))),combb(K2,fun(bool,J),G),Ga2),F9)) )).

% new_thread_action.rec_o_map
tff(fact_929_type__copy__Abs__o__Rep,axiom,(
    ! [B: $tType,A: $tType,Rep: fun(A,B),Abs: fun(B,A)] :
      ( type_definition(A,B,Rep,Abs,top_top(set(B)))
     => aa(fun(A,B),fun(A,A),aa(fun(B,A),fun(fun(A,B),fun(A,A)),comp(B,A,A),Abs),Rep) = id(A) ) )).

% type_copy_Abs_o_Rep
tff(fact_930_conversep__converse__eq,axiom,(
    ! [G: $tType,H: $tType,R4: set(product_prod(H,G)),X5: G,Xa2: H] :
      ( pp(aa(H,bool,aa(G,fun(H,bool),conversep(H,G,aa(set(product_prod(H,G)),fun(H,fun(G,bool)),aa(fun(H,fun(set(product_prod(H,G)),fun(G,bool))),fun(set(product_prod(H,G)),fun(H,fun(G,bool))),combc(H,set(product_prod(H,G)),fun(G,bool)),aa(fun(H,fun(G,fun(set(product_prod(H,G)),bool))),fun(H,fun(set(product_prod(H,G)),fun(G,bool))),aa(fun(fun(G,fun(set(product_prod(H,G)),bool)),fun(set(product_prod(H,G)),fun(G,bool))),fun(fun(H,fun(G,fun(set(product_prod(H,G)),bool))),fun(H,fun(set(product_prod(H,G)),fun(G,bool)))),combb(fun(G,fun(set(product_prod(H,G)),bool)),fun(set(product_prod(H,G)),fun(G,bool)),H),combc(G,set(product_prod(H,G)),bool)),aa(fun(H,fun(G,product_prod(H,G))),fun(H,fun(G,fun(set(product_prod(H,G)),bool))),aa(fun(fun(G,product_prod(H,G)),fun(G,fun(set(product_prod(H,G)),bool))),fun(fun(H,fun(G,product_prod(H,G))),fun(H,fun(G,fun(set(product_prod(H,G)),bool)))),combb(fun(G,product_prod(H,G)),fun(G,fun(set(product_prod(H,G)),bool)),H),aa(fun(product_prod(H,G),fun(set(product_prod(H,G)),bool)),fun(fun(G,product_prod(H,G)),fun(G,fun(set(product_prod(H,G)),bool))),combb(product_prod(H,G),fun(set(product_prod(H,G)),bool),G),member(product_prod(H,G)))),product_Pair(H,G)))),R4)),X5),Xa2))
    <=> pp(aa(set(product_prod(G,H)),bool,aa(product_prod(G,H),fun(set(product_prod(G,H)),bool),member(product_prod(G,H)),aa(H,product_prod(G,H),aa(G,fun(H,product_prod(G,H)),product_Pair(G,H),X5),Xa2)),converse(H,G,R4))) ) )).

% conversep_converse_eq
tff(fact_931_new__thread__action_Osimps_I6_J,axiom,(
    ! [X: $tType,M: $tType,T: $tType,A: $tType,F1: fun(T,fun(X,fun(M,A))),F22: fun(T,fun(bool,A)),X21: T,X22: bool] : new_th5509480840830140020action(T,X,M,A,F1,F22,new_th4503388622997288770Exists(T,X,M,X21,X22)) = aa(bool,A,aa(T,fun(bool,A),F22,X21),X22) )).

% new_thread_action.simps(6)
tff(fact_932_type__definition_Ouniv,axiom,(
    ! [B: $tType,A: $tType,Rep: fun(B,A),Abs: fun(A,B),A5: set(A)] :
      ( type_definition(B,A,Rep,Abs,A5)
     => top_top(set(B)) = aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),Abs),A5) ) )).

% type_definition.univ
tff(fact_933_relcompp__relcomp__eq,axiom,(
    ! [G: $tType,H: $tType,I2: $tType,R4: set(product_prod(G,I2)),S5: set(product_prod(I2,H)),X5: G,Xa2: H] :
      ( pp(aa(H,bool,aa(G,fun(H,bool),relcompp(G,I2,H,aa(set(product_prod(G,I2)),fun(G,fun(I2,bool)),aa(fun(G,fun(set(product_prod(G,I2)),fun(I2,bool))),fun(set(product_prod(G,I2)),fun(G,fun(I2,bool))),combc(G,set(product_prod(G,I2)),fun(I2,bool)),aa(fun(G,fun(I2,fun(set(product_prod(G,I2)),bool))),fun(G,fun(set(product_prod(G,I2)),fun(I2,bool))),aa(fun(fun(I2,fun(set(product_prod(G,I2)),bool)),fun(set(product_prod(G,I2)),fun(I2,bool))),fun(fun(G,fun(I2,fun(set(product_prod(G,I2)),bool))),fun(G,fun(set(product_prod(G,I2)),fun(I2,bool)))),combb(fun(I2,fun(set(product_prod(G,I2)),bool)),fun(set(product_prod(G,I2)),fun(I2,bool)),G),combc(I2,set(product_prod(G,I2)),bool)),aa(fun(G,fun(I2,product_prod(G,I2))),fun(G,fun(I2,fun(set(product_prod(G,I2)),bool))),aa(fun(fun(I2,product_prod(G,I2)),fun(I2,fun(set(product_prod(G,I2)),bool))),fun(fun(G,fun(I2,product_prod(G,I2))),fun(G,fun(I2,fun(set(product_prod(G,I2)),bool)))),combb(fun(I2,product_prod(G,I2)),fun(I2,fun(set(product_prod(G,I2)),bool)),G),aa(fun(product_prod(G,I2),fun(set(product_prod(G,I2)),bool)),fun(fun(I2,product_prod(G,I2)),fun(I2,fun(set(product_prod(G,I2)),bool))),combb(product_prod(G,I2),fun(set(product_prod(G,I2)),bool),I2),member(product_prod(G,I2)))),product_Pair(G,I2)))),R4),aa(set(product_prod(I2,H)),fun(I2,fun(H,bool)),aa(fun(I2,fun(set(product_prod(I2,H)),fun(H,bool))),fun(set(product_prod(I2,H)),fun(I2,fun(H,bool))),combc(I2,set(product_prod(I2,H)),fun(H,bool)),aa(fun(I2,fun(H,fun(set(product_prod(I2,H)),bool))),fun(I2,fun(set(product_prod(I2,H)),fun(H,bool))),aa(fun(fun(H,fun(set(product_prod(I2,H)),bool)),fun(set(product_prod(I2,H)),fun(H,bool))),fun(fun(I2,fun(H,fun(set(product_prod(I2,H)),bool))),fun(I2,fun(set(product_prod(I2,H)),fun(H,bool)))),combb(fun(H,fun(set(product_prod(I2,H)),bool)),fun(set(product_prod(I2,H)),fun(H,bool)),I2),combc(H,set(product_prod(I2,H)),bool)),aa(fun(I2,fun(H,product_prod(I2,H))),fun(I2,fun(H,fun(set(product_prod(I2,H)),bool))),aa(fun(fun(H,product_prod(I2,H)),fun(H,fun(set(product_prod(I2,H)),bool))),fun(fun(I2,fun(H,product_prod(I2,H))),fun(I2,fun(H,fun(set(product_prod(I2,H)),bool)))),combb(fun(H,product_prod(I2,H)),fun(H,fun(set(product_prod(I2,H)),bool)),I2),aa(fun(product_prod(I2,H),fun(set(product_prod(I2,H)),bool)),fun(fun(H,product_prod(I2,H)),fun(H,fun(set(product_prod(I2,H)),bool))),combb(product_prod(I2,H),fun(set(product_prod(I2,H)),bool),H),member(product_prod(I2,H)))),product_Pair(I2,H)))),S5)),X5),Xa2))
    <=> pp(aa(set(product_prod(G,H)),bool,aa(product_prod(G,H),fun(set(product_prod(G,H)),bool),member(product_prod(G,H)),aa(H,product_prod(G,H),aa(G,fun(H,product_prod(G,H)),product_Pair(G,H),X5),Xa2)),relcomp(G,I2,H,R4,S5))) ) )).

% relcompp_relcomp_eq
tff(fact_934_wait__set__action_Omap_I4_J,axiom,(
    ! [W: $tType,B: $tType,A: $tType,T: $tType,F1: fun(T,A),F22: fun(W,B),X42: T] : aa(wait_set_action(T,W),wait_set_action(A,B),wait_s8865918783579551590action(T,A,W,B,F1,F22),wait_set_WakeUp(T,W,X42)) = wait_set_WakeUp(A,B,aa(T,A,F1,X42)) )).

% wait_set_action.map(4)
tff(fact_935_type__definition_OAbs__image,axiom,(
    ! [A: $tType,B: $tType,Rep: fun(B,A),Abs: fun(A,B),A5: set(A)] :
      ( type_definition(B,A,Rep,Abs,A5)
     => aa(set(A),set(B),aa(fun(A,B),fun(set(A),set(B)),image2(A,B),Abs),A5) = top_top(set(B)) ) )).

% type_definition.Abs_image
tff(fact_936_new__thread__action_Orel__conversep,axiom,(
    ! [B: $tType,E: $tType,D: $tType,A: $tType,F: $tType,C: $tType,R1: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool))] : new_th911009063021768419action(D,A,E,B,F,C,conversep(A,D,R1),conversep(B,E,R22),conversep(C,F,R32)) = conversep(new_thread_action(A,B,C),new_thread_action(D,E,F),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32)) )).

% new_thread_action.rel_conversep
tff(fact_937_type__definition_ORep__range,axiom,(
    ! [B: $tType,A: $tType,Rep: fun(B,A),Abs: fun(A,B),A5: set(A)] :
      ( type_definition(B,A,Rep,Abs,A5)
     => aa(set(B),set(A),aa(fun(B,A),fun(set(B),set(A)),image2(B,A),Rep),top_top(set(B))) = A5 ) )).

% type_definition.Rep_range
tff(fact_938_relcomp__def,axiom,(
    ! [G: $tType,I2: $tType,H: $tType,X5: set(product_prod(G,H)),Xa2: set(product_prod(H,I2))] : relcomp(G,H,I2,X5,Xa2) = aa(fun(product_prod(G,I2),bool),set(product_prod(G,I2)),collect(product_prod(G,I2)),aa(fun(G,fun(I2,bool)),fun(product_prod(G,I2),bool),product_case_prod(G,I2,bool),relcompp(G,H,I2,aa(set(product_prod(G,H)),fun(G,fun(H,bool)),aa(fun(G,fun(set(product_prod(G,H)),fun(H,bool))),fun(set(product_prod(G,H)),fun(G,fun(H,bool))),combc(G,set(product_prod(G,H)),fun(H,bool)),aa(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool))),aa(fun(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool))),fun(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool)))),combb(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool)),G),combc(H,set(product_prod(G,H)),bool)),aa(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool))),aa(fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),fun(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool)))),combb(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool)),G),aa(fun(product_prod(G,H),fun(set(product_prod(G,H)),bool)),fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),combb(product_prod(G,H),fun(set(product_prod(G,H)),bool),H),member(product_prod(G,H)))),product_Pair(G,H)))),X5),aa(set(product_prod(H,I2)),fun(H,fun(I2,bool)),aa(fun(H,fun(set(product_prod(H,I2)),fun(I2,bool))),fun(set(product_prod(H,I2)),fun(H,fun(I2,bool))),combc(H,set(product_prod(H,I2)),fun(I2,bool)),aa(fun(H,fun(I2,fun(set(product_prod(H,I2)),bool))),fun(H,fun(set(product_prod(H,I2)),fun(I2,bool))),aa(fun(fun(I2,fun(set(product_prod(H,I2)),bool)),fun(set(product_prod(H,I2)),fun(I2,bool))),fun(fun(H,fun(I2,fun(set(product_prod(H,I2)),bool))),fun(H,fun(set(product_prod(H,I2)),fun(I2,bool)))),combb(fun(I2,fun(set(product_prod(H,I2)),bool)),fun(set(product_prod(H,I2)),fun(I2,bool)),H),combc(I2,set(product_prod(H,I2)),bool)),aa(fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(I2,fun(set(product_prod(H,I2)),bool))),aa(fun(fun(I2,product_prod(H,I2)),fun(I2,fun(set(product_prod(H,I2)),bool))),fun(fun(H,fun(I2,product_prod(H,I2))),fun(H,fun(I2,fun(set(product_prod(H,I2)),bool)))),combb(fun(I2,product_prod(H,I2)),fun(I2,fun(set(product_prod(H,I2)),bool)),H),aa(fun(product_prod(H,I2),fun(set(product_prod(H,I2)),bool)),fun(fun(I2,product_prod(H,I2)),fun(I2,fun(set(product_prod(H,I2)),bool))),combb(product_prod(H,I2),fun(set(product_prod(H,I2)),bool),I2),member(product_prod(H,I2)))),product_Pair(H,I2)))),Xa2)))) )).

% relcomp_def
tff(fact_939_new__thread__action_Orel__eq__onp,axiom,(
    ! [B: $tType,A: $tType,C: $tType,P1: fun(A,bool),P22: fun(B,bool),P32: fun(C,bool)] : new_th911009063021768419action(A,A,B,B,C,C,bNF_eq_onp(A,P1),bNF_eq_onp(B,P22),bNF_eq_onp(C,P32)) = bNF_eq_onp(new_thread_action(A,B,C),new_th3963266298022529507action(A,B,C,P1,P22,P32)) )).

% new_thread_action.rel_eq_onp
tff(fact_940_scomp__unfold,axiom,(
    ! [D: $tType,B: $tType,C: $tType,A: $tType,X5: fun(A,product_prod(B,C)),Xa2: fun(B,fun(C,D)),Xb3: A] : aa(A,D,aa(fun(B,fun(C,D)),fun(A,D),aa(fun(A,product_prod(B,C)),fun(fun(B,fun(C,D)),fun(A,D)),product_scomp(A,B,C,D),X5),Xa2),Xb3) = aa(C,D,aa(B,fun(C,D),Xa2,aa(product_prod(B,C),B,product_fst(B,C),aa(A,product_prod(B,C),X5,Xb3))),aa(product_prod(B,C),C,product_snd(B,C),aa(A,product_prod(B,C),X5,Xb3))) )).

% scomp_unfold
tff(fact_941_ImageI,axiom,(
    ! [B: $tType,A: $tType,A3: A,B3: B,R2: set(product_prod(A,B)),A5: set(A)] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),R2))
     => ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),A5))
       => pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),B3),image(A,B,R2,A5))) ) ) )).

% ImageI
tff(fact_942_interrupt__action_Oinj__map__strong,axiom,(
    ! [B: $tType,A: $tType,X3: interrupt_action(A),Xa3: interrupt_action(A),F3: fun(A,B),Fa: fun(A,B)] :
      ( ! [Z2: A,Za2: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),interr3053324309844243148action(A,X3)))
         => ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Za2),interr3053324309844243148action(A,Xa3)))
           => ( aa(A,B,F3,Z2) = aa(A,B,Fa,Za2)
             => Z2 = Za2 ) ) )
     => ( aa(interrupt_action(A),interrupt_action(B),interr6514223866936857682action(A,B,F3),X3) = aa(interrupt_action(A),interrupt_action(B),interr6514223866936857682action(A,B,Fa),Xa3)
       => X3 = Xa3 ) ) )).

% interrupt_action.inj_map_strong
tff(fact_943_acyclicP__converse,axiom,(
    ! [A: $tType,R2: fun(A,fun(A,bool))] :
      ( transitive_acyclic(A,aa(fun(product_prod(A,A),bool),set(product_prod(A,A)),collect(product_prod(A,A)),aa(fun(A,fun(A,bool)),fun(product_prod(A,A),bool),product_case_prod(A,A,bool),conversep(A,A,R2))))
    <=> transitive_acyclic(A,aa(fun(product_prod(A,A),bool),set(product_prod(A,A)),collect(product_prod(A,A)),aa(fun(A,fun(A,bool)),fun(product_prod(A,A),bool),product_case_prod(A,A,bool),R2))) ) )).

% acyclicP_converse
tff(fact_944_wait__set__action_Osimps_I100_J,axiom,(
    ! [T: $tType,W: $tType] : wait_s6444424490270475060action(T,W,wait_set_WokenUp(T,W)) = bot_bot(set(W)) )).

% wait_set_action.simps(100)
tff(fact_945_sup1CI,axiom,(
    ! [A: $tType,B6: fun(A,bool),X3: A,A5: fun(A,bool)] :
      ( ( ~ pp(aa(A,bool,B6,X3))
       => pp(aa(A,bool,A5,X3)) )
     => pp(aa(A,bool,aa(fun(A,bool),fun(A,bool),aa(fun(A,bool),fun(fun(A,bool),fun(A,bool)),sup_sup(fun(A,bool)),A5),B6),X3)) ) )).

% sup1CI
tff(fact_946_finfun__def,axiom,(
    ! [G: $tType,H: $tType] : finfun2(G,H) = aa(fun(fun(G,H),bool),set(fun(G,H)),collect(fun(G,H)),aa(fun(fun(G,H),fun(H,bool)),fun(fun(G,H),bool),aa(fun(fun(H,bool),bool),fun(fun(fun(G,H),fun(H,bool)),fun(fun(G,H),bool)),combb(fun(H,bool),bool,fun(G,H)),fEx(H)),aa(fun(fun(G,H),fun(H,set(G))),fun(fun(G,H),fun(H,bool)),aa(fun(fun(H,set(G)),fun(H,bool)),fun(fun(fun(G,H),fun(H,set(G))),fun(fun(G,H),fun(H,bool))),combb(fun(H,set(G)),fun(H,bool),fun(G,H)),aa(fun(set(G),bool),fun(fun(H,set(G)),fun(H,bool)),combb(set(G),bool,H),finite_finite(G))),aa(fun(fun(G,H),fun(H,fun(G,bool))),fun(fun(G,H),fun(H,set(G))),aa(fun(fun(H,fun(G,bool)),fun(H,set(G))),fun(fun(fun(G,H),fun(H,fun(G,bool))),fun(fun(G,H),fun(H,set(G)))),combb(fun(H,fun(G,bool)),fun(H,set(G)),fun(G,H)),aa(fun(fun(G,bool),set(G)),fun(fun(H,fun(G,bool)),fun(H,set(G))),combb(fun(G,bool),set(G),H),collect(G))),aa(fun(fun(G,H),fun(H,fun(G,bool))),fun(fun(G,H),fun(H,fun(G,bool))),aa(fun(fun(H,fun(G,bool)),fun(H,fun(G,bool))),fun(fun(fun(G,H),fun(H,fun(G,bool))),fun(fun(G,H),fun(H,fun(G,bool)))),combb(fun(H,fun(G,bool)),fun(H,fun(G,bool)),fun(G,H)),aa(fun(fun(G,bool),fun(G,bool)),fun(fun(H,fun(G,bool)),fun(H,fun(G,bool))),combb(fun(G,bool),fun(G,bool),H),aa(fun(bool,bool),fun(fun(G,bool),fun(G,bool)),combb(bool,bool,G),fNot))),aa(fun(fun(G,H),fun(G,fun(H,bool))),fun(fun(G,H),fun(H,fun(G,bool))),aa(fun(fun(G,fun(H,bool)),fun(H,fun(G,bool))),fun(fun(fun(G,H),fun(G,fun(H,bool))),fun(fun(G,H),fun(H,fun(G,bool)))),combb(fun(G,fun(H,bool)),fun(H,fun(G,bool)),fun(G,H)),combc(G,H,bool)),aa(fun(H,fun(H,bool)),fun(fun(G,H),fun(G,fun(H,bool))),combb(H,fun(H,bool),G),fequal(H)))))))) )).

% finfun_def
tff(fact_947_scomp__apply,axiom,(
    ! [A: $tType,C: $tType,D: $tType,B: $tType,F3: fun(B,product_prod(C,D)),G3: fun(C,fun(D,A)),X3: B] : aa(B,A,aa(fun(C,fun(D,A)),fun(B,A),aa(fun(B,product_prod(C,D)),fun(fun(C,fun(D,A)),fun(B,A)),product_scomp(B,C,D,A),F3),G3),X3) = aa(product_prod(C,D),A,aa(fun(C,fun(D,A)),fun(product_prod(C,D),A),product_case_prod(C,D,A),G3),aa(B,product_prod(C,D),F3,X3)) )).

% scomp_apply
tff(fact_948_interrupt__action_Omap__cong,axiom,(
    ! [B: $tType,A: $tType,X3: interrupt_action(A),Ya2: interrupt_action(A),F3: fun(A,B),G3: fun(A,B)] :
      ( X3 = Ya2
     => ( ! [Z2: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),interr3053324309844243148action(A,Ya2)))
           => aa(A,B,F3,Z2) = aa(A,B,G3,Z2) )
       => aa(interrupt_action(A),interrupt_action(B),interr6514223866936857682action(A,B,F3),X3) = aa(interrupt_action(A),interrupt_action(B),interr6514223866936857682action(A,B,G3),Ya2) ) ) )).

% interrupt_action.map_cong
tff(fact_949_scomp__scomp,axiom,(
    ! [G: $tType,K2: $tType,L: $tType,H: $tType,J: $tType,I2: $tType,F9: fun(G,product_prod(K2,L)),G6: fun(K2,fun(L,product_prod(I2,J))),H3: fun(I2,fun(J,H))] : aa(fun(I2,fun(J,H)),fun(G,H),aa(fun(G,product_prod(I2,J)),fun(fun(I2,fun(J,H)),fun(G,H)),product_scomp(G,I2,J,H),aa(fun(K2,fun(L,product_prod(I2,J))),fun(G,product_prod(I2,J)),aa(fun(G,product_prod(K2,L)),fun(fun(K2,fun(L,product_prod(I2,J))),fun(G,product_prod(I2,J))),product_scomp(G,K2,L,product_prod(I2,J)),F9),G6)),H3) = aa(fun(K2,fun(L,H)),fun(G,H),aa(fun(G,product_prod(K2,L)),fun(fun(K2,fun(L,H)),fun(G,H)),product_scomp(G,K2,L,H),F9),aa(fun(I2,fun(J,H)),fun(K2,fun(L,H)),aa(fun(K2,fun(fun(I2,fun(J,H)),fun(L,H))),fun(fun(I2,fun(J,H)),fun(K2,fun(L,H))),combc(K2,fun(I2,fun(J,H)),fun(L,H)),aa(fun(K2,fun(L,product_prod(I2,J))),fun(K2,fun(fun(I2,fun(J,H)),fun(L,H))),aa(fun(fun(L,product_prod(I2,J)),fun(fun(I2,fun(J,H)),fun(L,H))),fun(fun(K2,fun(L,product_prod(I2,J))),fun(K2,fun(fun(I2,fun(J,H)),fun(L,H)))),combb(fun(L,product_prod(I2,J)),fun(fun(I2,fun(J,H)),fun(L,H)),K2),product_scomp(L,I2,J,H)),G6)),H3)) )).

% scomp_scomp
tff(fact_950_interrupt__action_Omap__cong0,axiom,(
    ! [B: $tType,A: $tType,X3: interrupt_action(A),F3: fun(A,B),G3: fun(A,B)] :
      ( ! [Z2: A] :
          ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),interr3053324309844243148action(A,X3)))
         => aa(A,B,F3,Z2) = aa(A,B,G3,Z2) )
     => aa(interrupt_action(A),interrupt_action(B),interr6514223866936857682action(A,B,F3),X3) = aa(interrupt_action(A),interrupt_action(B),interr6514223866936857682action(A,B,G3),X3) ) )).

% interrupt_action.map_cong0
tff(fact_951_sup1I2,axiom,(
    ! [A: $tType,B6: fun(A,bool),X3: A,A5: fun(A,bool)] :
      ( pp(aa(A,bool,B6,X3))
     => pp(aa(A,bool,aa(fun(A,bool),fun(A,bool),aa(fun(A,bool),fun(fun(A,bool),fun(A,bool)),sup_sup(fun(A,bool)),A5),B6),X3)) ) )).

% sup1I2
tff(fact_952_wait__set__action_Oset_I6_J,axiom,(
    ! [W: $tType,T: $tType] : wait_s8753297657872117365action(T,W,wait_set_WokenUp(T,W)) = bot_bot(set(T)) )).

% wait_set_action.set(6)
tff(fact_953_sup1I1,axiom,(
    ! [A: $tType,A5: fun(A,bool),X3: A,B6: fun(A,bool)] :
      ( pp(aa(A,bool,A5,X3))
     => pp(aa(A,bool,aa(fun(A,bool),fun(A,bool),aa(fun(A,bool),fun(fun(A,bool),fun(A,bool)),sup_sup(fun(A,bool)),A5),B6),X3)) ) )).

% sup1I1
tff(fact_954_converse__def,axiom,(
    ! [H: $tType,G: $tType,X5: set(product_prod(G,H))] : converse(G,H,X5) = aa(fun(product_prod(H,G),bool),set(product_prod(H,G)),collect(product_prod(H,G)),aa(fun(H,fun(G,bool)),fun(product_prod(H,G),bool),product_case_prod(H,G,bool),conversep(G,H,aa(set(product_prod(G,H)),fun(G,fun(H,bool)),aa(fun(G,fun(set(product_prod(G,H)),fun(H,bool))),fun(set(product_prod(G,H)),fun(G,fun(H,bool))),combc(G,set(product_prod(G,H)),fun(H,bool)),aa(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool))),aa(fun(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool))),fun(fun(G,fun(H,fun(set(product_prod(G,H)),bool))),fun(G,fun(set(product_prod(G,H)),fun(H,bool)))),combb(fun(H,fun(set(product_prod(G,H)),bool)),fun(set(product_prod(G,H)),fun(H,bool)),G),combc(H,set(product_prod(G,H)),bool)),aa(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool))),aa(fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),fun(fun(G,fun(H,product_prod(G,H))),fun(G,fun(H,fun(set(product_prod(G,H)),bool)))),combb(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool)),G),aa(fun(product_prod(G,H),fun(set(product_prod(G,H)),bool)),fun(fun(H,product_prod(G,H)),fun(H,fun(set(product_prod(G,H)),bool))),combb(product_prod(G,H),fun(set(product_prod(G,H)),bool),H),member(product_prod(G,H)))),product_Pair(G,H)))),X5)))) )).

% converse_def
tff(fact_955_finfun__Diag__const1,axiom,(
    ! [B: $tType,C: $tType,A: $tType,B3: B,G3: finfun(A,C)] : finfun_Diag(A,B,C,aa(B,finfun(A,B),finfun_const(B,A),B3),G3) = finfun_comp(C,product_prod(B,C),A,aa(B,fun(C,product_prod(B,C)),product_Pair(B,C),B3),G3) )).

% finfun_Diag_const1
tff(fact_956_sup1E,axiom,(
    ! [A: $tType,A5: fun(A,bool),B6: fun(A,bool),X3: A] :
      ( pp(aa(A,bool,aa(fun(A,bool),fun(A,bool),aa(fun(A,bool),fun(fun(A,bool),fun(A,bool)),sup_sup(fun(A,bool)),A5),B6),X3))
     => ( ~ pp(aa(A,bool,A5,X3))
       => pp(aa(A,bool,B6,X3)) ) ) )).

% sup1E
tff(fact_957_new__thread__action_Osimps_I10_J,axiom,(
    ! [X: $tType,M: $tType,T: $tType,A: $tType,C: $tType,B: $tType,F1: fun(T,A),F22: fun(X,B),F32: fun(M,C),X21: T,X22: bool] : aa(new_thread_action(T,X,M),new_thread_action(A,B,C),new_th6052504119144402208action(T,A,X,B,M,C,F1,F22,F32),new_th4503388622997288770Exists(T,X,M,X21,X22)) = new_th4503388622997288770Exists(A,B,C,aa(T,A,F1,X21),X22) )).

% new_thread_action.simps(10)
tff(fact_958_wait__set__action_Omap_I3_J,axiom,(
    ! [T: $tType,A: $tType,B: $tType,W: $tType,F1: fun(T,A),F22: fun(W,B),X32: W] : aa(wait_set_action(T,W),wait_set_action(A,B),wait_s8865918783579551590action(T,A,W,B,F1,F22),wait_set_NotifyAll(W,T,X32)) = wait_set_NotifyAll(B,A,aa(W,B,F22,X32)) )).

% wait_set_action.map(3)
tff(fact_959_acyclic__subset,axiom,(
    ! [A: $tType,S: set(product_prod(A,A)),R2: set(product_prod(A,A))] :
      ( transitive_acyclic(A,S)
     => ( pp(aa(set(product_prod(A,A)),bool,aa(set(product_prod(A,A)),fun(set(product_prod(A,A)),bool),ord_less_eq(set(product_prod(A,A))),R2),S))
       => transitive_acyclic(A,R2) ) ) )).

% acyclic_subset
tff(fact_960_wait__set__action_Omap__id0,axiom,(
    ! [B: $tType,A: $tType] : wait_s8865918783579551590action(A,A,B,B,id(A),id(B)) = id(wait_set_action(A,B)) )).

% wait_set_action.map_id0
tff(fact_961_wait__set__action_Omap_I2_J,axiom,(
    ! [T: $tType,A: $tType,B: $tType,W: $tType,F1: fun(T,A),F22: fun(W,B),X2: W] : aa(wait_set_action(T,W),wait_set_action(A,B),wait_s8865918783579551590action(T,A,W,B,F1,F22),wait_set_Notify(W,T,X2)) = wait_set_Notify(B,A,aa(W,B,F22,X2)) )).

% wait_set_action.map(2)
tff(fact_962_scomp__def,axiom,(
    ! [D: $tType,B: $tType,C: $tType,A: $tType,F3: fun(A,product_prod(B,C)),G3: fun(B,fun(C,D)),X5: A] : aa(A,D,aa(fun(B,fun(C,D)),fun(A,D),aa(fun(A,product_prod(B,C)),fun(fun(B,fun(C,D)),fun(A,D)),product_scomp(A,B,C,D),F3),G3),X5) = aa(product_prod(B,C),D,aa(fun(B,fun(C,D)),fun(product_prod(B,C),D),product_case_prod(B,C,D),G3),aa(A,product_prod(B,C),F3,X5)) )).

% scomp_def
tff(fact_963_new__thread__action_Osimps_I13_J,axiom,(
    ! [M: $tType,T: $tType,X: $tType,A: $tType,C: $tType,B: $tType,R1: fun(T,fun(A,bool)),R22: fun(X,fun(B,bool)),R32: fun(M,fun(C,bool)),X11: T,X12: X,X13: M,Y21: A,Y22: bool] : ~ pp(aa(new_thread_action(A,B,C),bool,aa(new_thread_action(T,X,M),fun(new_thread_action(A,B,C),bool),new_th911009063021768419action(T,A,X,B,M,C,R1,R22,R32),new_thread_NewThread(T,X,M,X11,X12,X13)),new_th4503388622997288770Exists(A,B,C,Y21,Y22))) )).

% new_thread_action.simps(13)
tff(fact_964_image__o__collect,axiom,(
    ! [B: $tType,C: $tType,A: $tType,G3: fun(C,B),F6: set(fun(A,set(C)))] : bNF_collect(A,B,aa(set(fun(A,set(C))),set(fun(A,set(B))),aa(fun(fun(A,set(C)),fun(A,set(B))),fun(set(fun(A,set(C))),set(fun(A,set(B)))),image2(fun(A,set(C)),fun(A,set(B))),aa(fun(set(C),set(B)),fun(fun(A,set(C)),fun(A,set(B))),comp(set(C),set(B),A),aa(fun(C,B),fun(set(C),set(B)),image2(C,B),G3))),F6)) = aa(fun(A,set(C)),fun(A,set(B)),aa(fun(set(C),set(B)),fun(fun(A,set(C)),fun(A,set(B))),comp(set(C),set(B),A),aa(fun(C,B),fun(set(C),set(B)),image2(C,B),G3)),bNF_collect(A,C,F6)) )).

% image_o_collect
tff(fact_965_interrupt__action_Oinj__map,axiom,(
    ! [B: $tType,A: $tType,F3: fun(A,B)] :
      ( inj_on(A,B,F3,top_top(set(A)))
     => inj_on(interrupt_action(A),interrupt_action(B),interr6514223866936857682action(A,B,F3),top_top(set(interrupt_action(A)))) ) )).

% interrupt_action.inj_map
tff(fact_966_K__record__comp,axiom,(
    ! [G: $tType,I2: $tType,H: $tType,C8: H,F9: fun(G,I2),X5: G] : aa(G,H,aa(fun(G,I2),fun(G,H),aa(fun(I2,H),fun(fun(G,I2),fun(G,H)),comp(I2,H,G),aa(H,fun(I2,H),combk(H,I2),C8)),F9),X5) = C8 )).

% K_record_comp
tff(fact_967_finfun__const__def,axiom,(
    ! [H: $tType,G: $tType] : finfun_const(G,H) = aa(fun(G,fun(H,G)),fun(G,finfun(H,G)),map_fun(G,G,fun(H,G),finfun(H,G),id(G),abs_finfun(H,G)),combk(G,H)) )).

% finfun_const_def
tff(fact_968_image__paired__Times,axiom,(
    ! [I2: $tType,G: $tType,H: $tType,J: $tType,F9: fun(I2,G),G6: fun(J,H),A6: set(I2),B9: set(J)] : aa(set(product_prod(I2,J)),set(product_prod(G,H)),aa(fun(product_prod(I2,J),product_prod(G,H)),fun(set(product_prod(I2,J)),set(product_prod(G,H))),image2(product_prod(I2,J),product_prod(G,H)),aa(fun(I2,fun(J,product_prod(G,H))),fun(product_prod(I2,J),product_prod(G,H)),product_case_prod(I2,J,product_prod(G,H)),aa(fun(J,H),fun(I2,fun(J,product_prod(G,H))),aa(fun(I2,fun(fun(J,H),fun(J,product_prod(G,H)))),fun(fun(J,H),fun(I2,fun(J,product_prod(G,H)))),combc(I2,fun(J,H),fun(J,product_prod(G,H))),aa(fun(I2,fun(H,product_prod(G,H))),fun(I2,fun(fun(J,H),fun(J,product_prod(G,H)))),aa(fun(fun(H,product_prod(G,H)),fun(fun(J,H),fun(J,product_prod(G,H)))),fun(fun(I2,fun(H,product_prod(G,H))),fun(I2,fun(fun(J,H),fun(J,product_prod(G,H))))),combb(fun(H,product_prod(G,H)),fun(fun(J,H),fun(J,product_prod(G,H))),I2),combb(H,product_prod(G,H),J)),aa(fun(I2,G),fun(I2,fun(H,product_prod(G,H))),aa(fun(G,fun(H,product_prod(G,H))),fun(fun(I2,G),fun(I2,fun(H,product_prod(G,H)))),combb(G,fun(H,product_prod(G,H)),I2),product_Pair(G,H)),F9))),G6))),product_Sigma(I2,J,A6,aa(set(J),fun(I2,set(J)),combk(set(J),I2),B9))) = product_Sigma(G,H,aa(set(I2),set(G),aa(fun(I2,G),fun(set(I2),set(G)),image2(I2,G),F9),A6),aa(set(H),fun(G,set(H)),combk(set(H),G),aa(set(J),set(H),aa(fun(J,H),fun(set(J),set(H)),image2(J,H),G6),B9))) )).

% image_paired_Times
tff(fact_969_order__refl,axiom,(
    ! [A: $tType] :
      ( preorder(A)
     => ! [X3: A] : pp(aa(A,bool,aa(A,fun(A,bool),ord_less_eq(A),X3),X3)) ) )).

% order_refl
tff(fact_970_Gr__incl,axiom,(
    ! [G: $tType,H: $tType,A6: set(G),F9: fun(G,H),B9: set(H)] :
      ( pp(aa(set(product_prod(G,H)),bool,aa(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool),ord_less_eq(set(product_prod(G,H))),bNF_Gr(G,H,A6,F9)),product_Sigma(G,H,A6,aa(set(H),fun(G,set(H)),combk(set(H),G),B9))))
    <=> pp(aa(set(H),bool,aa(set(H),fun(set(H),bool),ord_less_eq(set(H)),aa(set(G),set(H),aa(fun(G,H),fun(set(G),set(H)),image2(G,H),F9),A6)),B9)) ) )).

% Gr_incl
tff(fact_971_wait__set__action_Omap_I1_J,axiom,(
    ! [T: $tType,A: $tType,B: $tType,W: $tType,F1: fun(T,A),F22: fun(W,B),X1: W] : aa(wait_set_action(T,W),wait_set_action(A,B),wait_s8865918783579551590action(T,A,W,B,F1,F22),wait_set_Suspend(W,T,X1)) = wait_set_Suspend(B,A,aa(W,B,F22,X1)) )).

% wait_set_action.map(1)
tff(fact_972_interrupt__action_Opred__inject_I1_J,axiom,(
    ! [T: $tType,P: fun(T,bool),A3: T,Aa3: bool] :
      ( pp(aa(interrupt_action(T),bool,interr8158014761281175971action(T,P),interr5885539089632487139rupted(T,A3,Aa3)))
    <=> pp(aa(T,bool,P,A3)) ) )).

% interrupt_action.pred_inject(1)
tff(fact_973_SigmaI,axiom,(
    ! [B: $tType,A: $tType,A3: A,A5: set(A),B3: B,B6: fun(A,set(B))] :
      ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),A5))
     => ( pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),B3),aa(A,set(B),B6,A3)))
       => pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),product_Sigma(A,B,A5,B6))) ) ) )).

% SigmaI
tff(fact_974_interrupt__action_Osimps_I21_J,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool)),X32: T,Y32: A] :
      ( pp(aa(interrupt_action(A),bool,aa(interrupt_action(T),fun(interrupt_action(A),bool),interr1799892525631285141action(T,A,R),interr7976201102587534891errupt(T,X32)),interr7976201102587534891errupt(A,Y32)))
    <=> pp(aa(A,bool,aa(T,fun(A,bool),R,X32),Y32)) ) )).

% interrupt_action.simps(21)
tff(fact_975_interrupt__action_Omap_I3_J,axiom,(
    ! [A: $tType,T: $tType,F3: fun(T,A),X32: T] : aa(interrupt_action(T),interrupt_action(A),interr6514223866936857682action(T,A,F3),interr7976201102587534891errupt(T,X32)) = interr7976201102587534891errupt(A,aa(T,A,F3,X32)) )).

% interrupt_action.map(3)
tff(fact_976_wait__set__action_Oset_I11_J,axiom,(
    ! [T: $tType,W: $tType] : wait_s6444424490270475060action(T,W,wait_set_Notified(T,W)) = bot_bot(set(W)) )).

% wait_set_action.set(11)
tff(fact_977_Sigma__cong,axiom,(
    ! [B: $tType,A: $tType,A5: set(A),B6: set(A),C6: fun(A,set(B)),D4: fun(A,set(B))] :
      ( A5 = B6
     => ( ! [X4: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),B6))
           => aa(A,set(B),C6,X4) = aa(A,set(B),D4,X4) )
       => product_Sigma(A,B,A5,C6) = product_Sigma(A,B,B6,D4) ) ) )).

% Sigma_cong
tff(fact_978_option_Osimps_I3_J,axiom,(
    ! [A: $tType,X2: A] : aa(A,option(A),some(A),X2) != none(A) )).

% option.simps(3)
tff(fact_979_Times__eq__cancel2,axiom,(
    ! [G: $tType,H: $tType,X9: G,C9: set(G),A6: set(H),B9: set(H)] :
      ( pp(aa(set(G),bool,aa(G,fun(set(G),bool),member(G),X9),C9))
     => ( product_Sigma(H,G,A6,aa(set(G),fun(H,set(G)),combk(set(G),H),C9)) = product_Sigma(H,G,B9,aa(set(G),fun(H,set(G)),combk(set(G),H),C9))
      <=> A6 = B9 ) ) )).

% Times_eq_cancel2
tff(fact_980_fun__upd__upd,axiom,(
    ! [A: $tType,B: $tType,F3: fun(A,B),X3: A,Y: B,Z3: B] : fun_upd(A,B,fun_upd(A,B,F3,X3,Y),X3,Z3) = fun_upd(A,B,F3,X3,Z3) )).

% fun_upd_upd
tff(fact_981_SigmaE2,axiom,(
    ! [B: $tType,A: $tType,A3: A,B3: B,A5: set(A),B6: fun(A,set(B))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),product_Sigma(A,B,A5,B6)))
     => ~ ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),A5))
         => ~ pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),B3),aa(A,set(B),B6,A3))) ) ) )).

% SigmaE2
tff(fact_982_wait__set__action_Osimps_I93_J,axiom,(
    ! [W: $tType,T: $tType] : wait_s8753297657872117365action(T,W,wait_set_Notified(T,W)) = bot_bot(set(T)) )).

% wait_set_action.simps(93)
tff(fact_983_SigmaD2,axiom,(
    ! [B: $tType,A: $tType,A3: A,B3: B,A5: set(A),B6: fun(A,set(B))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),product_Sigma(A,B,A5,B6)))
     => pp(aa(set(B),bool,aa(B,fun(set(B),bool),member(B),B3),aa(A,set(B),B6,A3))) ) )).

% SigmaD2
tff(fact_984_new__thread__action_Osize__gen__o__map,axiom,(
    ! [X: $tType,B: $tType,A: $tType,T: $tType,C: $tType,M: $tType,F3: fun(A,nat),Fa: fun(B,nat),Fb2: fun(C,nat),G3: fun(T,A),Ga: fun(X,B),Gb2: fun(M,C)] : aa(fun(new_thread_action(T,X,M),new_thread_action(A,B,C)),fun(new_thread_action(T,X,M),nat),aa(fun(new_thread_action(A,B,C),nat),fun(fun(new_thread_action(T,X,M),new_thread_action(A,B,C)),fun(new_thread_action(T,X,M),nat)),comp(new_thread_action(A,B,C),nat,new_thread_action(T,X,M)),new_th2129853655951111683action(A,B,C,F3,Fa,Fb2)),new_th6052504119144402208action(T,A,X,B,M,C,G3,Ga,Gb2)) = new_th2129853655951111683action(T,X,M,aa(fun(T,A),fun(T,nat),aa(fun(A,nat),fun(fun(T,A),fun(T,nat)),comp(A,nat,T),F3),G3),aa(fun(X,B),fun(X,nat),aa(fun(B,nat),fun(fun(X,B),fun(X,nat)),comp(B,nat,X),Fa),Ga),aa(fun(M,C),fun(M,nat),aa(fun(C,nat),fun(fun(M,C),fun(M,nat)),comp(C,nat,M),Fb2),Gb2)) )).

% new_thread_action.size_gen_o_map
tff(fact_985_SigmaD1,axiom,(
    ! [B: $tType,A: $tType,A3: A,B3: B,A5: set(A),B6: fun(A,set(B))] :
      ( pp(aa(set(product_prod(A,B)),bool,aa(product_prod(A,B),fun(set(product_prod(A,B)),bool),member(product_prod(A,B)),aa(B,product_prod(A,B),aa(A,fun(B,product_prod(A,B)),product_Pair(A,B),A3),B3)),product_Sigma(A,B,A5,B6)))
     => pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),A3),A5)) ) )).

% SigmaD1
tff(fact_986_interrupt__action_Opred__cong,axiom,(
    ! [A: $tType,X3: interrupt_action(A),Ya2: interrupt_action(A),P: fun(A,bool),Pa: fun(A,bool)] :
      ( X3 = Ya2
     => ( ! [Z2: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),interr3053324309844243148action(A,Ya2)))
           => ( pp(aa(A,bool,P,Z2))
            <=> pp(aa(A,bool,Pa,Z2)) ) )
       => ( pp(aa(interrupt_action(A),bool,interr8158014761281175971action(A,P),X3))
        <=> pp(aa(interrupt_action(A),bool,interr8158014761281175971action(A,Pa),Ya2)) ) ) ) )).

% interrupt_action.pred_cong
tff(fact_987_new__thread__action_Opred__inject_I2_J,axiom,(
    ! [X: $tType,M: $tType,T: $tType,P1: fun(T,bool),P22: fun(X,bool),P32: fun(M,bool),A3: T,Aa3: bool] :
      ( pp(aa(new_thread_action(T,X,M),bool,new_th3963266298022529507action(T,X,M,P1,P22,P32),new_th4503388622997288770Exists(T,X,M,A3,Aa3)))
    <=> pp(aa(T,bool,P1,A3)) ) )).

% new_thread_action.pred_inject(2)
tff(fact_988_Collect__case__prod__Sigma,axiom,(
    ! [H: $tType,G: $tType,P3: fun(G,bool),Q3: fun(G,fun(H,bool))] : aa(fun(product_prod(G,H),bool),set(product_prod(G,H)),collect(product_prod(G,H)),aa(fun(G,fun(H,bool)),fun(product_prod(G,H),bool),product_case_prod(G,H,bool),aa(fun(G,fun(H,bool)),fun(G,fun(H,bool)),aa(fun(G,fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(H,bool)),fun(G,fun(H,bool))),combs(G,fun(H,bool),fun(H,bool)),aa(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool))),aa(fun(fun(bool,bool),fun(fun(H,bool),fun(H,bool))),fun(fun(G,fun(bool,bool)),fun(G,fun(fun(H,bool),fun(H,bool)))),combb(fun(bool,bool),fun(fun(H,bool),fun(H,bool)),G),combb(bool,bool,H)),aa(fun(G,bool),fun(G,fun(bool,bool)),aa(fun(bool,fun(bool,bool)),fun(fun(G,bool),fun(G,fun(bool,bool))),combb(bool,fun(bool,bool),G),fconj),P3))),Q3))) = product_Sigma(G,H,aa(fun(G,bool),set(G),collect(G),P3),aa(fun(G,fun(H,bool)),fun(G,set(H)),aa(fun(fun(H,bool),set(H)),fun(fun(G,fun(H,bool)),fun(G,set(H))),combb(fun(H,bool),set(H),G),collect(H)),Q3)) )).

% Collect_case_prod_Sigma
tff(fact_989_interrupt__action_Oset__cases,axiom,(
    ! [T: $tType,E3: T,A3: interrupt_action(T)] :
      ( pp(aa(set(T),bool,aa(T,fun(set(T),bool),member(T),E3),interr3053324309844243148action(T,A3)))
     => ( ! [Z22: bool] : A3 != interr5885539089632487139rupted(T,E3,Z22)
       => ( A3 != interrupt_Interrupt(T,E3)
         => A3 = interr7976201102587534891errupt(T,E3) ) ) ) )).

% interrupt_action.set_cases
tff(fact_990_Sigma__mono,axiom,(
    ! [B: $tType,A: $tType,A5: set(A),C6: set(A),B6: fun(A,set(B)),D4: fun(A,set(B))] :
      ( pp(aa(set(A),bool,aa(set(A),fun(set(A),bool),ord_less_eq(set(A)),A5),C6))
     => ( ! [X4: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),X4),A5))
           => pp(aa(set(B),bool,aa(set(B),fun(set(B),bool),ord_less_eq(set(B)),aa(A,set(B),B6,X4)),aa(A,set(B),D4,X4))) )
       => pp(aa(set(product_prod(A,B)),bool,aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),bool),ord_less_eq(set(product_prod(A,B))),product_Sigma(A,B,A5,B6)),product_Sigma(A,B,C6,D4))) ) ) )).

% Sigma_mono
tff(fact_991_interrupt__action_Opred__mono__strong,axiom,(
    ! [A: $tType,P: fun(A,bool),X3: interrupt_action(A),Pa: fun(A,bool)] :
      ( pp(aa(interrupt_action(A),bool,interr8158014761281175971action(A,P),X3))
     => ( ! [Z2: A] :
            ( pp(aa(set(A),bool,aa(A,fun(set(A),bool),member(A),Z2),interr3053324309844243148action(A,X3)))
           => ( pp(aa(A,bool,P,Z2))
             => pp(aa(A,bool,Pa,Z2)) ) )
       => pp(aa(interrupt_action(A),bool,interr8158014761281175971action(A,Pa),X3)) ) ) )).

% interrupt_action.pred_mono_strong
tff(fact_992_Sigma__Un__distrib1,axiom,(
    ! [B: $tType,A: $tType,I6: set(A),J4: set(A),C6: fun(A,set(B))] : product_Sigma(A,B,aa(set(A),set(A),aa(set(A),fun(set(A),set(A)),sup_sup(set(A)),I6),J4),C6) = aa(set(product_prod(A,B)),set(product_prod(A,B)),aa(set(product_prod(A,B)),fun(set(product_prod(A,B)),set(product_prod(A,B))),sup_sup(set(product_prod(A,B))),product_Sigma(A,B,I6,C6)),product_Sigma(A,B,J4,C6)) )).

% Sigma_Un_distrib1
tff(fact_993_interrupt__action_ODomainp__rel,axiom,(
    ! [B: $tType,A: $tType,R: fun(A,fun(B,bool))] : domainp(interrupt_action(A),interrupt_action(B),interr1799892525631285141action(A,B,R)) = interr8158014761281175971action(A,domainp(A,B,R)) )).

% interrupt_action.Domainp_rel
tff(fact_994_Times__subset__cancel2,axiom,(
    ! [G: $tType,H: $tType,X9: G,C9: set(G),A6: set(H),B9: set(H)] :
      ( pp(aa(set(G),bool,aa(G,fun(set(G),bool),member(G),X9),C9))
     => ( pp(aa(set(product_prod(H,G)),bool,aa(set(product_prod(H,G)),fun(set(product_prod(H,G)),bool),ord_less_eq(set(product_prod(H,G))),product_Sigma(H,G,A6,aa(set(G),fun(H,set(G)),combk(set(G),H),C9))),product_Sigma(H,G,B9,aa(set(G),fun(H,set(G)),combk(set(G),H),C9))))
      <=> pp(aa(set(H),bool,aa(set(H),fun(set(H),bool),ord_less_eq(set(H)),A6),B9)) ) ) )).

% Times_subset_cancel2
tff(fact_995_new__thread__action_Ocase__distrib,axiom,(
    ! [H: $tType,G: $tType,K2: $tType,J: $tType,I2: $tType,H3: fun(H,G),F12: fun(I2,fun(J,fun(K2,H))),F23: fun(I2,fun(bool,H)),New_thread_action: new_thread_action(I2,J,K2)] : aa(H,G,H3,new_th5509480840830140020action(I2,J,K2,H,F12,F23,New_thread_action)) = new_th5509480840830140020action(I2,J,K2,G,aa(fun(I2,fun(J,fun(K2,H))),fun(I2,fun(J,fun(K2,G))),aa(fun(fun(J,fun(K2,H)),fun(J,fun(K2,G))),fun(fun(I2,fun(J,fun(K2,H))),fun(I2,fun(J,fun(K2,G)))),combb(fun(J,fun(K2,H)),fun(J,fun(K2,G)),I2),aa(fun(fun(K2,H),fun(K2,G)),fun(fun(J,fun(K2,H)),fun(J,fun(K2,G))),combb(fun(K2,H),fun(K2,G),J),aa(fun(H,G),fun(fun(K2,H),fun(K2,G)),combb(H,G,K2),H3))),F12),aa(fun(I2,fun(bool,H)),fun(I2,fun(bool,G)),aa(fun(fun(bool,H),fun(bool,G)),fun(fun(I2,fun(bool,H)),fun(I2,fun(bool,G))),combb(fun(bool,H),fun(bool,G),I2),aa(fun(H,G),fun(fun(bool,H),fun(bool,G)),combb(H,G,bool),H3)),F23),New_thread_action) )).

% new_thread_action.case_distrib
tff(fact_996_mem__Times__iff,axiom,(
    ! [G: $tType,H: $tType,X9: product_prod(G,H),A6: set(G),B9: set(H)] :
      ( pp(aa(set(product_prod(G,H)),bool,aa(product_prod(G,H),fun(set(product_prod(G,H)),bool),member(product_prod(G,H)),X9),product_Sigma(G,H,A6,aa(set(H),fun(G,set(H)),combk(set(H),G),B9))))
    <=> ( pp(aa(set(G),bool,aa(G,fun(set(G),bool),member(G),aa(product_prod(G,H),G,product_fst(G,H),X9)),A6))
        & pp(aa(set(H),bool,aa(H,fun(set(H),bool),member(H),aa(product_prod(G,H),H,product_snd(G,H),X9)),B9)) ) ) )).

% mem_Times_iff
tff(fact_997_right__unique__eq,axiom,(
    ! [A: $tType] : right_unique(A,A,fequal(A)) )).

% right_unique_eq
tff(fact_998_Times__Un__distrib1,axiom,(
    ! [G: $tType,H: $tType,A6: set(G),B9: set(G),C9: set(H)] : product_Sigma(G,H,aa(set(G),set(G),aa(set(G),fun(set(G),set(G)),sup_sup(set(G)),A6),B9),aa(set(H),fun(G,set(H)),combk(set(H),G),C9)) = aa(set(product_prod(G,H)),set(product_prod(G,H)),aa(set(product_prod(G,H)),fun(set(product_prod(G,H)),set(product_prod(G,H))),sup_sup(set(product_prod(G,H))),product_Sigma(G,H,A6,aa(set(H),fun(G,set(H)),combk(set(H),G),C9))),product_Sigma(G,H,B9,aa(set(H),fun(G,set(H)),combk(set(H),G),C9))) )).

% Times_Un_distrib1
tff(fact_999_finfun__Diag__const2,axiom,(
    ! [I2: $tType,H: $tType,G: $tType,F9: finfun(G,H),C8: I2] : finfun_Diag(G,H,I2,F9,aa(I2,finfun(G,I2),finfun_const(I2,G),C8)) = finfun_comp(H,product_prod(H,I2),G,aa(I2,fun(H,product_prod(H,I2)),aa(fun(H,fun(I2,product_prod(H,I2))),fun(I2,fun(H,product_prod(H,I2))),combc(H,I2,product_prod(H,I2)),product_Pair(H,I2)),C8),F9) )).

% finfun_Diag_const2
tff(fact_1000_Sigma__Un__distrib2,axiom,(
    ! [H: $tType,G: $tType,I7: set(G),A6: fun(G,set(H)),B9: fun(G,set(H))] : product_Sigma(G,H,I7,aa(fun(G,set(H)),fun(G,set(H)),aa(fun(G,fun(set(H),set(H))),fun(fun(G,set(H)),fun(G,set(H))),combs(G,set(H),set(H)),aa(fun(G,set(H)),fun(G,fun(set(H),set(H))),aa(fun(set(H),fun(set(H),set(H))),fun(fun(G,set(H)),fun(G,fun(set(H),set(H)))),combb(set(H),fun(set(H),set(H)),G),sup_sup(set(H))),A6)),B9)) = aa(set(product_prod(G,H)),set(product_prod(G,H)),aa(set(product_prod(G,H)),fun(set(product_prod(G,H)),set(product_prod(G,H))),sup_sup(set(product_prod(G,H))),product_Sigma(G,H,I7,A6)),product_Sigma(G,H,I7,B9)) )).

% Sigma_Un_distrib2
tff(fact_1001_wait__set__action_Oset_I10_J,axiom,(
    ! [T: $tType,W: $tType,X42: T] : wait_s6444424490270475060action(T,W,wait_set_WakeUp(T,W,X42)) = bot_bot(set(W)) )).

% wait_set_action.set(10)
tff(fact_1002_product__swap,axiom,(
    ! [G: $tType,H: $tType,A6: set(H),B9: set(G)] : aa(set(product_prod(H,G)),set(product_prod(G,H)),aa(fun(product_prod(H,G),product_prod(G,H)),fun(set(product_prod(H,G)),set(product_prod(G,H))),image2(product_prod(H,G),product_prod(G,H)),product_swap(H,G)),product_Sigma(H,G,A6,aa(set(G),fun(H,set(G)),combk(set(G),H),B9))) = product_Sigma(G,H,B9,aa(set(H),fun(G,set(H)),combk(set(H),G),A6)) )).

% product_swap
tff(fact_1003_interrupt__action_Orel__intros_I2_J,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool)),X2: T,Y2: A] :
      ( pp(aa(A,bool,aa(T,fun(A,bool),R,X2),Y2))
     => pp(aa(interrupt_action(A),bool,aa(interrupt_action(T),fun(interrupt_action(A),bool),interr1799892525631285141action(T,A,R),interrupt_Interrupt(T,X2)),interrupt_Interrupt(A,Y2))) ) )).

% interrupt_action.rel_intros(2)
tff(fact_1004_swap__product,axiom,(
    ! [G: $tType,H: $tType,A6: set(H),B9: set(G)] : aa(set(product_prod(H,G)),set(product_prod(G,H)),aa(fun(product_prod(H,G),product_prod(G,H)),fun(set(product_prod(H,G)),set(product_prod(G,H))),image2(product_prod(H,G),product_prod(G,H)),aa(fun(H,fun(G,product_prod(G,H))),fun(product_prod(H,G),product_prod(G,H)),product_case_prod(H,G,product_prod(G,H)),aa(fun(G,fun(H,product_prod(G,H))),fun(H,fun(G,product_prod(G,H))),combc(G,H,product_prod(G,H)),product_Pair(G,H)))),product_Sigma(H,G,A6,aa(set(G),fun(H,set(G)),combk(set(G),H),B9))) = product_Sigma(G,H,B9,aa(set(H),fun(G,set(H)),combk(set(H),G),A6)) )).

% swap_product
tff(fact_1005_interrupt__action_Orel__intros_I3_J,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool)),X32: T,Y32: A] :
      ( pp(aa(A,bool,aa(T,fun(A,bool),R,X32),Y32))
     => pp(aa(interrupt_action(A),bool,aa(interrupt_action(T),fun(interrupt_action(A),bool),interr1799892525631285141action(T,A,R),interr7976201102587534891errupt(T,X32)),interr7976201102587534891errupt(A,Y32))) ) )).

% interrupt_action.rel_intros(3)
tff(fact_1006_map__prod__surj__on,axiom,(
    ! [J: $tType,H: $tType,G: $tType,I2: $tType,F9: fun(H,G),A6: set(H),A10: set(G),G6: fun(J,I2),B9: set(J),B14: set(I2)] :
      ( aa(set(H),set(G),aa(fun(H,G),fun(set(H),set(G)),image2(H,G),F9),A6) = A10
     => ( aa(set(J),set(I2),aa(fun(J,I2),fun(set(J),set(I2)),image2(J,I2),G6),B9) = B14
       => aa(set(product_prod(H,J)),set(product_prod(G,I2)),aa(fun(product_prod(H,J),product_prod(G,I2)),fun(set(product_prod(H,J)),set(product_prod(G,I2))),image2(product_prod(H,J),product_prod(G,I2)),product_map_prod(H,G,J,I2,F9,G6)),product_Sigma(H,J,A6,aa(set(J),fun(H,set(J)),combk(set(J),H),B9))) = product_Sigma(G,I2,A10,aa(set(I2),fun(G,set(I2)),combk(set(I2),G),B14)) ) ) )).

% map_prod_surj_on
tff(fact_1007_typedef__to__Quotient,axiom,(
    ! [G: $tType,H: $tType,Rep3: fun(G,H),Abs3: fun(H,G),S4: set(H),T6: fun(H,fun(G,bool))] :
      ( type_definition(G,H,Rep3,Abs3,S4)
     => ( ! [X4: H,Xa4: G] :
            ( pp(aa(G,bool,aa(H,fun(G,bool),T6,X4),Xa4))
          <=> X4 = aa(G,H,Rep3,Xa4) )
       => quotient(H,G,bNF_eq_onp(H,aa(set(H),fun(H,bool),aa(fun(H,fun(set(H),bool)),fun(set(H),fun(H,bool)),combc(H,set(H),bool),member(H)),S4)),Abs3,Rep3,T6) ) ) )).

% typedef_to_Quotient
tff(fact_1008_collect__comp,axiom,(
    ! [G: $tType,H: $tType,I2: $tType,F10: set(fun(I2,set(H))),G6: fun(G,I2)] : aa(fun(G,I2),fun(G,set(H)),aa(fun(I2,set(H)),fun(fun(G,I2),fun(G,set(H))),comp(I2,set(H),G),bNF_collect(I2,H,F10)),G6) = bNF_collect(G,H,aa(set(fun(I2,set(H))),set(fun(G,set(H))),aa(fun(fun(I2,set(H)),fun(G,set(H))),fun(set(fun(I2,set(H))),set(fun(G,set(H)))),image2(fun(I2,set(H)),fun(G,set(H))),aa(fun(G,I2),fun(fun(I2,set(H)),fun(G,set(H))),aa(fun(fun(I2,set(H)),fun(fun(G,I2),fun(G,set(H)))),fun(fun(G,I2),fun(fun(I2,set(H)),fun(G,set(H)))),combc(fun(I2,set(H)),fun(G,I2),fun(G,set(H))),comp(I2,set(H),G)),G6)),F10)) )).

% collect_comp
tff(fact_1009_interrupt__action_Orel__flip,axiom,(
    ! [A: $tType,B: $tType,R: fun(A,fun(B,bool)),A3: interrupt_action(B),B3: interrupt_action(A)] :
      ( pp(aa(interrupt_action(A),bool,aa(interrupt_action(B),fun(interrupt_action(A),bool),interr1799892525631285141action(B,A,conversep(A,B,R)),A3),B3))
    <=> pp(aa(interrupt_action(B),bool,aa(interrupt_action(A),fun(interrupt_action(B),bool),interr1799892525631285141action(A,B,R),B3),A3)) ) )).

% interrupt_action.rel_flip
tff(fact_1010_subset__fst__snd,axiom,(
    ! [H: $tType,G: $tType,A6: set(product_prod(G,H))] : pp(aa(set(product_prod(G,H)),bool,aa(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool),ord_less_eq(set(product_prod(G,H))),A6),product_Sigma(G,H,aa(set(product_prod(G,H)),set(G),aa(fun(product_prod(G,H),G),fun(set(product_prod(G,H)),set(G)),image2(product_prod(G,H),G),product_fst(G,H)),A6),aa(set(H),fun(G,set(H)),combk(set(H),G),aa(set(product_prod(G,H)),set(H),aa(fun(product_prod(G,H),H),fun(set(product_prod(G,H)),set(H)),image2(product_prod(G,H),H),product_snd(G,H)),A6))))) )).

% subset_fst_snd
tff(fact_1011_nat__induct,axiom,(
    ! [P: fun(nat,bool),N4: nat] :
      ( pp(aa(nat,bool,P,zero_zero(nat)))
     => ( ! [N2: nat] :
            ( pp(aa(nat,bool,P,N2))
           => pp(aa(nat,bool,P,suc(N2))) )
       => pp(aa(nat,bool,P,N4)) ) ) )).

% nat_induct
tff(fact_1012_subset__fst__imageI,axiom,(
    ! [H: $tType,G: $tType,A6: set(G),B9: set(H),S4: set(product_prod(G,H)),Y9: H] :
      ( pp(aa(set(product_prod(G,H)),bool,aa(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool),ord_less_eq(set(product_prod(G,H))),product_Sigma(G,H,A6,aa(set(H),fun(G,set(H)),combk(set(H),G),B9))),S4))
     => ( pp(aa(set(H),bool,aa(H,fun(set(H),bool),member(H),Y9),B9))
       => pp(aa(set(G),bool,aa(set(G),fun(set(G),bool),ord_less_eq(set(G)),A6),aa(set(product_prod(G,H)),set(G),aa(fun(product_prod(G,H),G),fun(set(product_prod(G,H)),set(G)),image2(product_prod(G,H),G),product_fst(G,H)),S4))) ) ) )).

% subset_fst_imageI
tff(fact_1013_interrupt__action_Orel__inject_I2_J,axiom,(
    ! [T: $tType,A: $tType,R: fun(T,fun(A,bool)),X2: T,Y2: A] :
      ( pp(aa(interrupt_action(A),bool,aa(interrupt_action(T),fun(interrupt_action(A),bool),interr1799892525631285141action(T,A,R),interrupt_Interrupt(T,X2)),interrupt_Interrupt(A,Y2)))
    <=> pp(aa(A,bool,aa(T,fun(A,bool),R,X2),Y2)) ) )).

% interrupt_action.rel_inject(2)
tff(fact_1014_subset__snd__imageI,axiom,(
    ! [H: $tType,G: $tType,A6: set(G),B9: set(H),S4: set(product_prod(G,H)),X9: G] :
      ( pp(aa(set(product_prod(G,H)),bool,aa(set(product_prod(G,H)),fun(set(product_prod(G,H)),bool),ord_less_eq(set(product_prod(G,H))),product_Sigma(G,H,A6,aa(set(H),fun(G,set(H)),combk(set(H),G),B9))),S4))
     => ( pp(aa(set(G),bool,aa(G,fun(set(G),bool),member(G),X9),A6))
       => pp(aa(set(H),bool,aa(set(H),fun(set(H),bool),ord_less_eq(set(H)),B9),aa(set(product_prod(G,H)),set(H),aa(fun(product_prod(G,H),H),fun(set(product_prod(G,H)),set(H)),image2(product_prod(G,H),H),product_snd(G,H)),S4))) ) ) )).

% subset_snd_imageI
tff(fact_1015_new__thread__action_Orel__distinct_I2_J,axiom,(
    ! [B: $tType,C: $tType,A: $tType,E: $tType,D: $tType,F: $tType,R1: fun(A,fun(D,bool)),R22: fun(B,fun(E,bool)),R32: fun(C,fun(F,bool)),Y21: A,Y22: bool,X11: D,X12: E,X13: F] : ~ pp(aa(new_thread_action(D,E,F),bool,aa(new_thread_action(A,B,C),fun(new_thread_action(D,E,F),bool),new_th911009063021768419action(A,D,B,E,C,F,R1,R22,R32),new_th4503388622997288770Exists(A,B,C,Y21,Y22)),new_thread_NewThread(D,E,F,X11,X12,X13))) )).

% new_thread_action.rel_distinct(2)
tff(fact_1016_interrupt__action_Orel__compp,axiom,(
    ! [A: $tType,C: $tType,B: $tType,R: fun(A,fun(B,bool)),S3: fun(B,fun(C,bool))] : interr1799892525631285141action(A,C,relcompp(A,B,C,R,S3)) = relcompp(interrupt_action(A),interrupt_action(B),interrupt_action(C),interr1799892525631285141action(A,B,R),interr1799892525631285141action(B,C,S3)) )).

% interrupt_action.rel_compp
tff(fact_1017_member__product,axiom,(
    ! [G: $tType,H: $tType,X9: product_prod(G,H),A6: set(G),B9: set(H)] :
      ( pp(aa(set(product_prod(G,H)),bool,aa(product_prod(G,H),fun(set(product_prod(G,H)),bool),member(product_prod(G,H)),X9),product_product(G,H,A6,B9)))
    <=> pp(aa(set(product_prod(G,H)),bool,aa(product_prod(G,H),fun(set(product_prod(G,H)),bool),member(product_prod(G,H)),X9),product_Sigma(G,H,A6,aa(set(H),fun(G,set(H)),combk(set(H),G),B9)))) ) )).

% member_product
tff(fact_1018_nat_Oinject,axiom,(
    ! [X2: nat,Y2: nat] :
      ( suc(X2) = suc(Y2)
    <=> X2 = Y2 ) )).

% nat.inject
tff(fact_1019_fst__image__times,axiom,(
    ! [G: $tType,H: $tType,B9: set(G),A6: set(H)] :
      ( ( B9 = bot_bot(set(G))
       => aa(set(product_prod(H,G)),set(H),aa(fun(product_prod(H,G),H),fun(set(product_prod(H,G)),set(H)),image2(product_prod(H,G),H),product_fst(H,G)),product_Sigma(H,G,A6,aa(set(G),fun(H,set(G)),combk(set(G),H),B9))) = bot_bot(set(H)) )
      & ( B9 != bot_bot(set(G))
       => aa(set(product_prod(H,G)),set(H),aa(fun(product_prod(H,G),H),fun(set(product_prod(H,G)),set(H)),image2(product_prod(H,G),H),product_fst(H,G)),product_Sigma(H,G,A6,aa(set(G),fun(H,set(G)),combk(set(G),H),B9))) = A6 ) ) )).

% fst_image_times
tff(fact_1020_const__finfun,axiom,(
    ! [H: $tType,G: $tType,A9: H] : pp(aa(set(fun(G,H)),bool,aa(fun(G,H),fun(set(fun(G,H)),bool),member(fun(G,H)),aa(H,fun(G,H),combk(H,G),A9)),finfun2(G,H))) )).

% const_finfun

% Type constructors (221)
tff(tcon_FWState_Oconditional__action___Code__Evaluation_Oterm__of,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => code_term_of(conditional_action(A14)) ) )).

tff(tcon_FWState_Onew__thread__action___Code__Evaluation_Oterm__of_1,axiom,(
    ! [A14: $tType,A15: $tType,A16: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15)
        & typerep2(A16) )
     => code_term_of(new_thread_action(A14,A15,A16)) ) )).

tff(tcon_FWState_Ointerrupt__action___Code__Evaluation_Oterm__of_2,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => code_term_of(interrupt_action(A14)) ) )).

tff(tcon_FWState_Owait__set__action___Code__Evaluation_Oterm__of_3,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15) )
     => code_term_of(wait_set_action(A14,A15)) ) )).

tff(tcon_Code__Numeral_Onatural___Code__Evaluation_Oterm__of_4,axiom,(
    code_term_of(code_natural) )).

tff(tcon_Code__Numeral_Onatural___Cardinality_Ocard__UNIV,axiom,(
    card_UNIV(code_natural) )).

tff(tcon_Code__Numeral_Ointeger___Code__Evaluation_Oterm__of_5,axiom,(
    code_term_of(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___Cardinality_Ocard__UNIV_6,axiom,(
    card_UNIV(code_integer) )).

tff(tcon_Code__Evaluation_Oterm___Code__Evaluation_Oterm__of_7,axiom,(
    code_term_of(code_term) )).

tff(tcon_FWState_Olock__action___Code__Evaluation_Oterm__of_8,axiom,(
    code_term_of(lock_action) )).

tff(tcon_Product__Type_Ounit___Lattices_Obounded__lattice,axiom,(
    bounded_lattice(product_unit) )).

tff(tcon_Product__Type_Ounit___Code__Evaluation_Oterm__of_9,axiom,(
    code_term_of(product_unit) )).

tff(tcon_Product__Type_Ounit___Enum_Oenum,axiom,(
    enum(product_unit) )).

tff(tcon_Product__Type_Ounit___Cardinality_Ocard__UNIV_10,axiom,(
    card_UNIV(product_unit) )).

tff(tcon_Product__Type_Oprod___Code__Evaluation_Oterm__of_11,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15) )
     => code_term_of(product_prod(A14,A15)) ) )).

tff(tcon_Product__Type_Oprod___Enum_Oenum_12,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( enum(A14)
        & enum(A15) )
     => enum(product_prod(A14,A15)) ) )).

tff(tcon_Product__Type_Oprod___Cardinality_Ocard__UNIV_13,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( card_UNIV(A14)
        & card_UNIV(A15) )
     => card_UNIV(product_prod(A14,A15)) ) )).

tff(tcon_Typerep_Otyperep___Code__Evaluation_Oterm__of_14,axiom,(
    code_term_of(typerep) )).

tff(tcon_String_Oliteral___Code__Evaluation_Oterm__of_15,axiom,(
    code_term_of(literal) )).

tff(tcon_String_Oliteral___Cardinality_Ocard__UNIV_16,axiom,(
    card_UNIV(literal) )).

tff(tcon_Predicate_Opred___Lattices_Obounded__lattice_17,axiom,(
    ! [A14: $tType] : bounded_lattice(pred(A14)) )).

tff(tcon_Predicate_Opred___Code__Evaluation_Oterm__of_18,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => code_term_of(pred(A14)) ) )).

tff(tcon_Predicate_Oseq___Code__Evaluation_Oterm__of_19,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => code_term_of(seq(A14)) ) )).

tff(tcon_Option_Ooption___Code__Evaluation_Oterm__of_20,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => code_term_of(option(A14)) ) )).

tff(tcon_Option_Ooption___Enum_Oenum_21,axiom,(
    ! [A14: $tType] :
      ( enum(A14)
     => enum(option(A14)) ) )).

tff(tcon_Option_Ooption___Cardinality_Ocard__UNIV_22,axiom,(
    ! [A14: $tType] :
      ( card_UNIV(A14)
     => card_UNIV(option(A14)) ) )).

tff(tcon_FinFun_Ofinfun___Code__Evaluation_Oterm__of_23,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15) )
     => code_term_of(finfun(A14,A15)) ) )).

tff(tcon_FinFun_Ofinfun___Cardinality_Ocard__UNIV_24,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( card_UNIV(A14)
        & card_UNIV(A15) )
     => card_UNIV(finfun(A14,A15)) ) )).

tff(tcon_Filter_Ofilter___Lattices_Obounded__lattice_25,axiom,(
    ! [A14: $tType] : bounded_lattice(filter(A14)) )).

tff(tcon_Filter_Ofilter___Code__Evaluation_Oterm__of_26,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => code_term_of(filter(A14)) ) )).

tff(tcon_List_Olist___Code__Evaluation_Oterm__of_27,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => code_term_of(list(A14)) ) )).

tff(tcon_List_Olist___Cardinality_Ocard__UNIV_28,axiom,(
    ! [A14: $tType] : card_UNIV(list(A14)) )).

tff(tcon_HOL_Obool___Lattices_Obounded__lattice_29,axiom,(
    bounded_lattice(bool) )).

tff(tcon_HOL_Obool___Code__Evaluation_Oterm__of_30,axiom,(
    code_term_of(bool) )).

tff(tcon_HOL_Obool___Enum_Oenum_31,axiom,(
    enum(bool) )).

tff(tcon_HOL_Obool___Cardinality_Ocard__UNIV_32,axiom,(
    card_UNIV(bool) )).

tff(tcon_Set_Oset___Lattices_Obounded__lattice_33,axiom,(
    ! [A14: $tType] : bounded_lattice(set(A14)) )).

tff(tcon_Set_Oset___Code__Evaluation_Oterm__of_34,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => code_term_of(set(A14)) ) )).

tff(tcon_Set_Oset___Enum_Oenum_35,axiom,(
    ! [A14: $tType] :
      ( enum(A14)
     => enum(set(A14)) ) )).

tff(tcon_Set_Oset___Cardinality_Ocard__UNIV_36,axiom,(
    ! [A14: $tType] :
      ( card_UNIV(A14)
     => card_UNIV(set(A14)) ) )).

tff(tcon_Nat_Onat___Code__Evaluation_Oterm__of_37,axiom,(
    code_term_of(nat) )).

tff(tcon_Nat_Onat___Cardinality_Ocard__UNIV_38,axiom,(
    card_UNIV(nat) )).

tff(tcon_Int_Oint___Code__Evaluation_Oterm__of_39,axiom,(
    code_term_of(int) )).

tff(tcon_Int_Oint___Cardinality_Ocard__UNIV_40,axiom,(
    card_UNIV(int) )).

tff(tcon_itself___Code__Evaluation_Oterm__of_41,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => code_term_of(itself(A14)) ) )).

tff(tcon_fun___Lattices_Obounded__lattice_42,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( bounded_lattice(A15)
     => bounded_lattice(fun(A14,A15)) ) )).

tff(tcon_fun___Code__Evaluation_Oterm__of_43,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15) )
     => code_term_of(fun(A14,A15)) ) )).

tff(tcon_fun___Enum_Oenum_44,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( enum(A14)
        & enum(A15) )
     => enum(fun(A14,A15)) ) )).

tff(tcon_fun___Cardinality_Ocard__UNIV_45,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( card_UNIV(A14)
        & card_UNIV(A15) )
     => card_UNIV(fun(A14,A15)) ) )).

tff(tcon_fun___Quickcheck__Exhaustive_Ofull__exhaustive,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( cl_HOL_Oequal(A14)
        & quickc3360725361186068524ustive(A14)
        & quickc3360725361186068524ustive(A15) )
     => quickc3360725361186068524ustive(fun(A14,A15)) ) )).

tff(tcon_fun___Lattices_Obounded__semilattice__sup__bot,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( bounded_lattice(A15)
     => bounde4967611905675639751up_bot(fun(A14,A15)) ) )).

tff(tcon_fun___Quickcheck__Exhaustive_Oexhaustive,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( cl_HOL_Oequal(A14)
        & quickc658316121487927005ustive(A14)
        & quickc658316121487927005ustive(A15) )
     => quickc658316121487927005ustive(fun(A14,A15)) ) )).

tff(tcon_fun___Lattices_Obounded__lattice__top,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( bounded_lattice(A15)
     => bounded_lattice_top(fun(A14,A15)) ) )).

tff(tcon_fun___Quickcheck__Random_Orandom,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( code_term_of(A14)
        & cl_HOL_Oequal(A14)
        & quickcheck_random(A15) )
     => quickcheck_random(fun(A14,A15)) ) )).

tff(tcon_fun___Lattices_Osemilattice__sup,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( semilattice_sup(A15)
     => semilattice_sup(fun(A14,A15)) ) )).

tff(tcon_fun___Lattices_Osemilattice__inf,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( semilattice_inf(A15)
     => semilattice_inf(fun(A14,A15)) ) )).

tff(tcon_fun___Orderings_Opreorder,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( preorder(A15)
     => preorder(fun(A14,A15)) ) )).

tff(tcon_fun___Lattices_Olattice,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( lattice(A15)
     => lattice(fun(A14,A15)) ) )).

tff(tcon_fun___Typerep_Otyperep,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15) )
     => typerep2(fun(A14,A15)) ) )).

tff(tcon_fun___Orderings_Oorder,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( order(A15)
     => order(fun(A14,A15)) ) )).

tff(tcon_fun___Orderings_Oord,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ord(A15)
     => ord(fun(A14,A15)) ) )).

tff(tcon_fun___HOL_Oequal,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( enum(A14)
        & cl_HOL_Oequal(A15) )
     => cl_HOL_Oequal(fun(A14,A15)) ) )).

tff(tcon_itself___Quickcheck__Random_Orandom_46,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => quickcheck_random(itself(A14)) ) )).

tff(tcon_itself___Typerep_Otyperep_47,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => typerep2(itself(A14)) ) )).

tff(tcon_itself___HOL_Oequal_48,axiom,(
    ! [A14: $tType] : cl_HOL_Oequal(itself(A14)) )).

tff(tcon_Int_Oint___Quickcheck__Exhaustive_Ofull__exhaustive_49,axiom,(
    quickc3360725361186068524ustive(int) )).

tff(tcon_Int_Oint___Quickcheck__Exhaustive_Oexhaustive_50,axiom,(
    quickc658316121487927005ustive(int) )).

tff(tcon_Int_Oint___Quickcheck__Random_Orandom_51,axiom,(
    quickcheck_random(int) )).

tff(tcon_Int_Oint___Lattices_Osemilattice__sup_52,axiom,(
    semilattice_sup(int) )).

tff(tcon_Int_Oint___Lattices_Osemilattice__inf_53,axiom,(
    semilattice_inf(int) )).

tff(tcon_Int_Oint___Orderings_Opreorder_54,axiom,(
    preorder(int) )).

tff(tcon_Int_Oint___Orderings_Olinorder,axiom,(
    linorder(int) )).

tff(tcon_Int_Oint___Groups_Omonoid__add,axiom,(
    monoid_add(int) )).

tff(tcon_Int_Oint___Lattices_Olattice_55,axiom,(
    lattice(int) )).

tff(tcon_Int_Oint___Typerep_Otyperep_56,axiom,(
    typerep2(int) )).

tff(tcon_Int_Oint___Orderings_Oorder_57,axiom,(
    order(int) )).

tff(tcon_Int_Oint___Orderings_Oord_58,axiom,(
    ord(int) )).

tff(tcon_Int_Oint___HOL_Oequal_59,axiom,(
    cl_HOL_Oequal(int) )).

tff(tcon_Nat_Onat___Quickcheck__Exhaustive_Ofull__exhaustive_60,axiom,(
    quickc3360725361186068524ustive(nat) )).

tff(tcon_Nat_Onat___Quickcheck__Exhaustive_Oexhaustive_61,axiom,(
    quickc658316121487927005ustive(nat) )).

tff(tcon_Nat_Onat___Quickcheck__Random_Orandom_62,axiom,(
    quickcheck_random(nat) )).

tff(tcon_Nat_Onat___Lattices_Osemilattice__sup_63,axiom,(
    semilattice_sup(nat) )).

tff(tcon_Nat_Onat___Lattices_Osemilattice__inf_64,axiom,(
    semilattice_inf(nat) )).

tff(tcon_Nat_Onat___Orderings_Opreorder_65,axiom,(
    preorder(nat) )).

tff(tcon_Nat_Onat___Orderings_Olinorder_66,axiom,(
    linorder(nat) )).

tff(tcon_Nat_Onat___Groups_Omonoid__add_67,axiom,(
    monoid_add(nat) )).

tff(tcon_Nat_Onat___Lattices_Olattice_68,axiom,(
    lattice(nat) )).

tff(tcon_Nat_Onat___Typerep_Otyperep_69,axiom,(
    typerep2(nat) )).

tff(tcon_Nat_Onat___Orderings_Oorder_70,axiom,(
    order(nat) )).

tff(tcon_Nat_Onat___Orderings_Oord_71,axiom,(
    ord(nat) )).

tff(tcon_Nat_Onat___HOL_Oequal_72,axiom,(
    cl_HOL_Oequal(nat) )).

tff(tcon_Set_Oset___Quickcheck__Exhaustive_Ofull__exhaustive_73,axiom,(
    ! [A14: $tType] :
      ( quickc3360725361186068524ustive(A14)
     => quickc3360725361186068524ustive(set(A14)) ) )).

tff(tcon_Set_Oset___Lattices_Obounded__semilattice__sup__bot_74,axiom,(
    ! [A14: $tType] : bounde4967611905675639751up_bot(set(A14)) )).

tff(tcon_Set_Oset___Quickcheck__Exhaustive_Oexhaustive_75,axiom,(
    ! [A14: $tType] :
      ( quickc658316121487927005ustive(A14)
     => quickc658316121487927005ustive(set(A14)) ) )).

tff(tcon_Set_Oset___Lattices_Obounded__lattice__top_76,axiom,(
    ! [A14: $tType] : bounded_lattice_top(set(A14)) )).

tff(tcon_Set_Oset___Quickcheck__Random_Orandom_77,axiom,(
    ! [A14: $tType] :
      ( quickcheck_random(A14)
     => quickcheck_random(set(A14)) ) )).

tff(tcon_Set_Oset___Lattices_Osemilattice__sup_78,axiom,(
    ! [A14: $tType] : semilattice_sup(set(A14)) )).

tff(tcon_Set_Oset___Lattices_Osemilattice__inf_79,axiom,(
    ! [A14: $tType] : semilattice_inf(set(A14)) )).

tff(tcon_Set_Oset___Orderings_Opreorder_80,axiom,(
    ! [A14: $tType] : preorder(set(A14)) )).

tff(tcon_Set_Oset___Lattices_Olattice_81,axiom,(
    ! [A14: $tType] : lattice(set(A14)) )).

tff(tcon_Set_Oset___Typerep_Otyperep_82,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => typerep2(set(A14)) ) )).

tff(tcon_Set_Oset___Orderings_Oorder_83,axiom,(
    ! [A14: $tType] : order(set(A14)) )).

tff(tcon_Set_Oset___Orderings_Oord_84,axiom,(
    ! [A14: $tType] : ord(set(A14)) )).

tff(tcon_Set_Oset___HOL_Oequal_85,axiom,(
    ! [A14: $tType] :
      ( cl_HOL_Oequal(A14)
     => cl_HOL_Oequal(set(A14)) ) )).

tff(tcon_HOL_Obool___Quickcheck__Exhaustive_Ofull__exhaustive_86,axiom,(
    quickc3360725361186068524ustive(bool) )).

tff(tcon_HOL_Obool___Lattices_Obounded__semilattice__sup__bot_87,axiom,(
    bounde4967611905675639751up_bot(bool) )).

tff(tcon_HOL_Obool___Lattices_Obounded__lattice__top_88,axiom,(
    bounded_lattice_top(bool) )).

tff(tcon_HOL_Obool___Quickcheck__Random_Orandom_89,axiom,(
    quickcheck_random(bool) )).

tff(tcon_HOL_Obool___Lattices_Osemilattice__sup_90,axiom,(
    semilattice_sup(bool) )).

tff(tcon_HOL_Obool___Lattices_Osemilattice__inf_91,axiom,(
    semilattice_inf(bool) )).

tff(tcon_HOL_Obool___Orderings_Opreorder_92,axiom,(
    preorder(bool) )).

tff(tcon_HOL_Obool___Orderings_Olinorder_93,axiom,(
    linorder(bool) )).

tff(tcon_HOL_Obool___Lattices_Olattice_94,axiom,(
    lattice(bool) )).

tff(tcon_HOL_Obool___Typerep_Otyperep_95,axiom,(
    typerep2(bool) )).

tff(tcon_HOL_Obool___Orderings_Oorder_96,axiom,(
    order(bool) )).

tff(tcon_HOL_Obool___Orderings_Oord_97,axiom,(
    ord(bool) )).

tff(tcon_HOL_Obool___HOL_Oequal_98,axiom,(
    cl_HOL_Oequal(bool) )).

tff(tcon_List_Olist___Quickcheck__Exhaustive_Ofull__exhaustive_99,axiom,(
    ! [A14: $tType] :
      ( quickc3360725361186068524ustive(A14)
     => quickc3360725361186068524ustive(list(A14)) ) )).

tff(tcon_List_Olist___Quickcheck__Random_Orandom_100,axiom,(
    ! [A14: $tType] :
      ( quickcheck_random(A14)
     => quickcheck_random(list(A14)) ) )).

tff(tcon_List_Olist___Typerep_Otyperep_101,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => typerep2(list(A14)) ) )).

tff(tcon_List_Olist___HOL_Oequal_102,axiom,(
    ! [A14: $tType] : cl_HOL_Oequal(list(A14)) )).

tff(tcon_Filter_Ofilter___Lattices_Obounded__semilattice__sup__bot_103,axiom,(
    ! [A14: $tType] : bounde4967611905675639751up_bot(filter(A14)) )).

tff(tcon_Filter_Ofilter___Lattices_Obounded__lattice__top_104,axiom,(
    ! [A14: $tType] : bounded_lattice_top(filter(A14)) )).

tff(tcon_Filter_Ofilter___Lattices_Osemilattice__sup_105,axiom,(
    ! [A14: $tType] : semilattice_sup(filter(A14)) )).

tff(tcon_Filter_Ofilter___Lattices_Osemilattice__inf_106,axiom,(
    ! [A14: $tType] : semilattice_inf(filter(A14)) )).

tff(tcon_Filter_Ofilter___Orderings_Opreorder_107,axiom,(
    ! [A14: $tType] : preorder(filter(A14)) )).

tff(tcon_Filter_Ofilter___Lattices_Olattice_108,axiom,(
    ! [A14: $tType] : lattice(filter(A14)) )).

tff(tcon_Filter_Ofilter___Typerep_Otyperep_109,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => typerep2(filter(A14)) ) )).

tff(tcon_Filter_Ofilter___Orderings_Oorder_110,axiom,(
    ! [A14: $tType] : order(filter(A14)) )).

tff(tcon_Filter_Ofilter___Orderings_Oord_111,axiom,(
    ! [A14: $tType] : ord(filter(A14)) )).

tff(tcon_Filter_Ofilter___HOL_Oequal_112,axiom,(
    ! [A14: $tType] :
      ( cl_HOL_Oequal(A14)
     => cl_HOL_Oequal(filter(A14)) ) )).

tff(tcon_FinFun_Ofinfun___Quickcheck__Exhaustive_Ofull__exhaustive_113,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( quickc3360725361186068524ustive(A14)
        & quickc3360725361186068524ustive(A15) )
     => quickc3360725361186068524ustive(finfun(A14,A15)) ) )).

tff(tcon_FinFun_Ofinfun___Quickcheck__Exhaustive_Oexhaustive_114,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( quickc658316121487927005ustive(A14)
        & quickc658316121487927005ustive(A15) )
     => quickc658316121487927005ustive(finfun(A14,A15)) ) )).

tff(tcon_FinFun_Ofinfun___Quickcheck__Random_Orandom_115,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( quickcheck_random(A14)
        & quickcheck_random(A15) )
     => quickcheck_random(finfun(A14,A15)) ) )).

tff(tcon_FinFun_Ofinfun___Typerep_Otyperep_116,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15) )
     => typerep2(finfun(A14,A15)) ) )).

tff(tcon_FinFun_Ofinfun___HOL_Oequal_117,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( card_UNIV(A14)
        & cl_HOL_Oequal(A14)
        & cl_HOL_Oequal(A15) )
     => cl_HOL_Oequal(finfun(A14,A15)) ) )).

tff(tcon_Option_Ooption___Quickcheck__Exhaustive_Ofull__exhaustive_118,axiom,(
    ! [A14: $tType] :
      ( quickc3360725361186068524ustive(A14)
     => quickc3360725361186068524ustive(option(A14)) ) )).

tff(tcon_Option_Ooption___Quickcheck__Random_Orandom_119,axiom,(
    ! [A14: $tType] :
      ( quickcheck_random(A14)
     => quickcheck_random(option(A14)) ) )).

tff(tcon_Option_Ooption___Typerep_Otyperep_120,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => typerep2(option(A14)) ) )).

tff(tcon_Option_Ooption___HOL_Oequal_121,axiom,(
    ! [A14: $tType] : cl_HOL_Oequal(option(A14)) )).

tff(tcon_Predicate_Oseq___Typerep_Otyperep_122,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => typerep2(seq(A14)) ) )).

tff(tcon_Predicate_Oseq___HOL_Oequal_123,axiom,(
    ! [A14: $tType] : cl_HOL_Oequal(seq(A14)) )).

tff(tcon_Predicate_Opred___Lattices_Obounded__semilattice__sup__bot_124,axiom,(
    ! [A14: $tType] : bounde4967611905675639751up_bot(pred(A14)) )).

tff(tcon_Predicate_Opred___Lattices_Obounded__lattice__top_125,axiom,(
    ! [A14: $tType] : bounded_lattice_top(pred(A14)) )).

tff(tcon_Predicate_Opred___Lattices_Osemilattice__sup_126,axiom,(
    ! [A14: $tType] : semilattice_sup(pred(A14)) )).

tff(tcon_Predicate_Opred___Lattices_Osemilattice__inf_127,axiom,(
    ! [A14: $tType] : semilattice_inf(pred(A14)) )).

tff(tcon_Predicate_Opred___Orderings_Opreorder_128,axiom,(
    ! [A14: $tType] : preorder(pred(A14)) )).

tff(tcon_Predicate_Opred___Lattices_Olattice_129,axiom,(
    ! [A14: $tType] : lattice(pred(A14)) )).

tff(tcon_Predicate_Opred___Typerep_Otyperep_130,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => typerep2(pred(A14)) ) )).

tff(tcon_Predicate_Opred___Orderings_Oorder_131,axiom,(
    ! [A14: $tType] : order(pred(A14)) )).

tff(tcon_Predicate_Opred___Orderings_Oord_132,axiom,(
    ! [A14: $tType] : ord(pred(A14)) )).

tff(tcon_Predicate_Opred___HOL_Oequal_133,axiom,(
    ! [A14: $tType] : cl_HOL_Oequal(pred(A14)) )).

tff(tcon_String_Oliteral___Quickcheck__Random_Orandom_134,axiom,(
    quickcheck_random(literal) )).

tff(tcon_String_Oliteral___Orderings_Opreorder_135,axiom,(
    preorder(literal) )).

tff(tcon_String_Oliteral___Orderings_Olinorder_136,axiom,(
    linorder(literal) )).

tff(tcon_String_Oliteral___Groups_Omonoid__add_137,axiom,(
    monoid_add(literal) )).

tff(tcon_String_Oliteral___Typerep_Otyperep_138,axiom,(
    typerep2(literal) )).

tff(tcon_String_Oliteral___Orderings_Oorder_139,axiom,(
    order(literal) )).

tff(tcon_String_Oliteral___Orderings_Oord_140,axiom,(
    ord(literal) )).

tff(tcon_String_Oliteral___HOL_Oequal_141,axiom,(
    cl_HOL_Oequal(literal) )).

tff(tcon_Typerep_Otyperep___Typerep_Otyperep_142,axiom,(
    typerep2(typerep) )).

tff(tcon_Typerep_Otyperep___HOL_Oequal_143,axiom,(
    cl_HOL_Oequal(typerep) )).

tff(tcon_Product__Type_Oprod___Quickcheck__Exhaustive_Ofull__exhaustive_144,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( quickc3360725361186068524ustive(A14)
        & quickc3360725361186068524ustive(A15) )
     => quickc3360725361186068524ustive(product_prod(A14,A15)) ) )).

tff(tcon_Product__Type_Oprod___Quickcheck__Exhaustive_Oexhaustive_145,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( quickc658316121487927005ustive(A14)
        & quickc658316121487927005ustive(A15) )
     => quickc658316121487927005ustive(product_prod(A14,A15)) ) )).

tff(tcon_Product__Type_Oprod___Quickcheck__Random_Orandom_146,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( quickcheck_random(A14)
        & quickcheck_random(A15) )
     => quickcheck_random(product_prod(A14,A15)) ) )).

tff(tcon_Product__Type_Oprod___Typerep_Otyperep_147,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15) )
     => typerep2(product_prod(A14,A15)) ) )).

tff(tcon_Product__Type_Oprod___HOL_Oequal_148,axiom,(
    ! [A14: $tType,A15: $tType] : cl_HOL_Oequal(product_prod(A14,A15)) )).

tff(tcon_Product__Type_Ounit___Quickcheck__Exhaustive_Ofull__exhaustive_149,axiom,(
    quickc3360725361186068524ustive(product_unit) )).

tff(tcon_Product__Type_Ounit___Lattices_Obounded__semilattice__sup__bot_150,axiom,(
    bounde4967611905675639751up_bot(product_unit) )).

tff(tcon_Product__Type_Ounit___Lattices_Obounded__lattice__top_151,axiom,(
    bounded_lattice_top(product_unit) )).

tff(tcon_Product__Type_Ounit___Quickcheck__Random_Orandom_152,axiom,(
    quickcheck_random(product_unit) )).

tff(tcon_Product__Type_Ounit___Lattices_Osemilattice__sup_153,axiom,(
    semilattice_sup(product_unit) )).

tff(tcon_Product__Type_Ounit___Lattices_Osemilattice__inf_154,axiom,(
    semilattice_inf(product_unit) )).

tff(tcon_Product__Type_Ounit___Orderings_Opreorder_155,axiom,(
    preorder(product_unit) )).

tff(tcon_Product__Type_Ounit___Orderings_Olinorder_156,axiom,(
    linorder(product_unit) )).

tff(tcon_Product__Type_Ounit___Lattices_Olattice_157,axiom,(
    lattice(product_unit) )).

tff(tcon_Product__Type_Ounit___Typerep_Otyperep_158,axiom,(
    typerep2(product_unit) )).

tff(tcon_Product__Type_Ounit___Orderings_Oorder_159,axiom,(
    order(product_unit) )).

tff(tcon_Product__Type_Ounit___Orderings_Oord_160,axiom,(
    ord(product_unit) )).

tff(tcon_Product__Type_Ounit___HOL_Oequal_161,axiom,(
    cl_HOL_Oequal(product_unit) )).

tff(tcon_FWState_Olock__action___Quickcheck__Exhaustive_Ofull__exhaustive_162,axiom,(
    quickc3360725361186068524ustive(lock_action) )).

tff(tcon_FWState_Olock__action___Quickcheck__Random_Orandom_163,axiom,(
    quickcheck_random(lock_action) )).

tff(tcon_FWState_Olock__action___Typerep_Otyperep_164,axiom,(
    typerep2(lock_action) )).

tff(tcon_FWState_Olock__action___HOL_Oequal_165,axiom,(
    cl_HOL_Oequal(lock_action) )).

tff(tcon_Code__Evaluation_Oterm___Typerep_Otyperep_166,axiom,(
    typerep2(code_term) )).

tff(tcon_Code__Numeral_Ointeger___Quickcheck__Exhaustive_Ofull__exhaustive_167,axiom,(
    quickc3360725361186068524ustive(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___Quickcheck__Exhaustive_Oexhaustive_168,axiom,(
    quickc658316121487927005ustive(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___Quickcheck__Random_Orandom_169,axiom,(
    quickcheck_random(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___Orderings_Opreorder_170,axiom,(
    preorder(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___Orderings_Olinorder_171,axiom,(
    linorder(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___Groups_Omonoid__add_172,axiom,(
    monoid_add(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___Typerep_Otyperep_173,axiom,(
    typerep2(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___Orderings_Oorder_174,axiom,(
    order(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___Orderings_Oord_175,axiom,(
    ord(code_integer) )).

tff(tcon_Code__Numeral_Ointeger___HOL_Oequal_176,axiom,(
    cl_HOL_Oequal(code_integer) )).

tff(tcon_Code__Numeral_Onatural___Quickcheck__Exhaustive_Ofull__exhaustive_177,axiom,(
    quickc3360725361186068524ustive(code_natural) )).

tff(tcon_Code__Numeral_Onatural___Quickcheck__Exhaustive_Oexhaustive_178,axiom,(
    quickc658316121487927005ustive(code_natural) )).

tff(tcon_Code__Numeral_Onatural___Quickcheck__Random_Orandom_179,axiom,(
    quickcheck_random(code_natural) )).

tff(tcon_Code__Numeral_Onatural___Orderings_Opreorder_180,axiom,(
    preorder(code_natural) )).

tff(tcon_Code__Numeral_Onatural___Orderings_Olinorder_181,axiom,(
    linorder(code_natural) )).

tff(tcon_Code__Numeral_Onatural___Groups_Omonoid__add_182,axiom,(
    monoid_add(code_natural) )).

tff(tcon_Code__Numeral_Onatural___Typerep_Otyperep_183,axiom,(
    typerep2(code_natural) )).

tff(tcon_Code__Numeral_Onatural___Orderings_Oorder_184,axiom,(
    order(code_natural) )).

tff(tcon_Code__Numeral_Onatural___Orderings_Oord_185,axiom,(
    ord(code_natural) )).

tff(tcon_Code__Numeral_Onatural___HOL_Oequal_186,axiom,(
    cl_HOL_Oequal(code_natural) )).

tff(tcon_FWState_Owait__set__action___Quickcheck__Exhaustive_Ofull__exhaustive_187,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( quickc3360725361186068524ustive(A14)
        & quickc3360725361186068524ustive(A15) )
     => quickc3360725361186068524ustive(wait_set_action(A14,A15)) ) )).

tff(tcon_FWState_Owait__set__action___Quickcheck__Random_Orandom_188,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( quickcheck_random(A14)
        & quickcheck_random(A15) )
     => quickcheck_random(wait_set_action(A14,A15)) ) )).

tff(tcon_FWState_Owait__set__action___Typerep_Otyperep_189,axiom,(
    ! [A14: $tType,A15: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15) )
     => typerep2(wait_set_action(A14,A15)) ) )).

tff(tcon_FWState_Owait__set__action___HOL_Oequal_190,axiom,(
    ! [A14: $tType,A15: $tType] : cl_HOL_Oequal(wait_set_action(A14,A15)) )).

tff(tcon_FWState_Ointerrupt__action___Quickcheck__Exhaustive_Ofull__exhaustive_191,axiom,(
    ! [A14: $tType] :
      ( quickc3360725361186068524ustive(A14)
     => quickc3360725361186068524ustive(interrupt_action(A14)) ) )).

tff(tcon_FWState_Ointerrupt__action___Quickcheck__Random_Orandom_192,axiom,(
    ! [A14: $tType] :
      ( quickcheck_random(A14)
     => quickcheck_random(interrupt_action(A14)) ) )).

tff(tcon_FWState_Ointerrupt__action___Typerep_Otyperep_193,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => typerep2(interrupt_action(A14)) ) )).

tff(tcon_FWState_Ointerrupt__action___HOL_Oequal_194,axiom,(
    ! [A14: $tType] : cl_HOL_Oequal(interrupt_action(A14)) )).

tff(tcon_FWState_Onew__thread__action___Quickcheck__Exhaustive_Ofull__exhaustive_195,axiom,(
    ! [A14: $tType,A15: $tType,A16: $tType] :
      ( ( quickc3360725361186068524ustive(A14)
        & quickc3360725361186068524ustive(A15)
        & quickc3360725361186068524ustive(A16) )
     => quickc3360725361186068524ustive(new_thread_action(A14,A15,A16)) ) )).

tff(tcon_FWState_Onew__thread__action___Quickcheck__Random_Orandom_196,axiom,(
    ! [A14: $tType,A15: $tType,A16: $tType] :
      ( ( quickcheck_random(A14)
        & quickcheck_random(A15)
        & quickcheck_random(A16) )
     => quickcheck_random(new_thread_action(A14,A15,A16)) ) )).

tff(tcon_FWState_Onew__thread__action___Typerep_Otyperep_197,axiom,(
    ! [A14: $tType,A15: $tType,A16: $tType] :
      ( ( typerep2(A14)
        & typerep2(A15)
        & typerep2(A16) )
     => typerep2(new_thread_action(A14,A15,A16)) ) )).

tff(tcon_FWState_Onew__thread__action___HOL_Oequal_198,axiom,(
    ! [A14: $tType,A15: $tType,A16: $tType] : cl_HOL_Oequal(new_thread_action(A14,A15,A16)) )).

tff(tcon_FWState_Oconditional__action___Quickcheck__Exhaustive_Ofull__exhaustive_199,axiom,(
    ! [A14: $tType] :
      ( quickc3360725361186068524ustive(A14)
     => quickc3360725361186068524ustive(conditional_action(A14)) ) )).

tff(tcon_FWState_Oconditional__action___Quickcheck__Random_Orandom_200,axiom,(
    ! [A14: $tType] :
      ( quickcheck_random(A14)
     => quickcheck_random(conditional_action(A14)) ) )).

tff(tcon_FWState_Oconditional__action___Typerep_Otyperep_201,axiom,(
    ! [A14: $tType] :
      ( typerep2(A14)
     => typerep2(conditional_action(A14)) ) )).

tff(tcon_FWState_Oconditional__action___HOL_Oequal_202,axiom,(
    ! [A14: $tType] : cl_HOL_Oequal(conditional_action(A14)) )).

% Helper facts (22)
tff(help_If_2_1_T,axiom,(
    ! [A: $tType,X3: A,Y: A] : aa(A,A,aa(A,fun(A,A),aa(bool,fun(A,fun(A,A)),if(A),fFalse),X3),Y) = Y )).

tff(help_If_1_1_T,axiom,(
    ! [A: $tType,X3: A,Y: A] : aa(A,A,aa(A,fun(A,A),aa(bool,fun(A,fun(A,A)),if(A),fTrue),X3),Y) = X3 )).

tff(help_fEx_1_1_U,axiom,(
    ! [A: $tType,P: fun(A,bool),X3: A] :
      ( ~ pp(aa(A,bool,P,X3))
      | pp(aa(fun(A,bool),bool,fEx(A),P)) ) )).

tff(help_fAll_1_1_U,axiom,(
    ! [A: $tType,P: fun(A,bool),X3: A] :
      ( ~ pp(aa(fun(A,bool),bool,fAll(A),P))
      | pp(aa(A,bool,P,X3)) ) )).

tff(help_fNot_2_1_U,axiom,(
    ! [P: bool] :
      ( pp(P)
      | pp(aa(bool,bool,fNot,P)) ) )).

tff(help_fNot_1_1_U,axiom,(
    ! [P: bool] :
      ( ~ pp(aa(bool,bool,fNot,P))
      | ~ pp(P) ) )).

tff(help_COMBB_1_1_U,axiom,(
    ! [C: $tType,B: $tType,A: $tType,P: fun(B,C),Q: fun(A,B),R: A] : aa(A,C,aa(fun(A,B),fun(A,C),aa(fun(B,C),fun(fun(A,B),fun(A,C)),combb(B,C,A),P),Q),R) = aa(B,C,P,aa(A,B,Q,R)) )).

tff(help_COMBC_1_1_U,axiom,(
    ! [A: $tType,C: $tType,B: $tType,P: fun(A,fun(B,C)),Q: B,R: A] : aa(A,C,aa(B,fun(A,C),aa(fun(A,fun(B,C)),fun(B,fun(A,C)),combc(A,B,C),P),Q),R) = aa(B,C,aa(A,fun(B,C),P,R),Q) )).

tff(help_COMBI_1_1_U,axiom,(
    ! [A: $tType,P: A] : aa(A,A,combi(A),P) = P )).

tff(help_COMBK_1_1_U,axiom,(
    ! [B: $tType,A: $tType,P: A,Q: B] : aa(B,A,aa(A,fun(B,A),combk(A,B),P),Q) = P )).

tff(help_COMBS_1_1_U,axiom,(
    ! [C: $tType,B: $tType,A: $tType,P: fun(A,fun(B,C)),Q: fun(A,B),R: A] : aa(A,C,aa(fun(A,B),fun(A,C),aa(fun(A,fun(B,C)),fun(fun(A,B),fun(A,C)),combs(A,B,C),P),Q),R) = aa(B,C,aa(A,fun(B,C),P,R),aa(A,B,Q,R)) )).

tff(help_fTrue_1_1_U,axiom,(
    pp(fTrue) )).

tff(help_fconj_3_1_U,axiom,(
    ! [P: bool,Q: bool] :
      ( ~ pp(aa(bool,bool,aa(bool,fun(bool,bool),fconj,P),Q))
      | pp(Q) ) )).

tff(help_fconj_2_1_U,axiom,(
    ! [P: bool,Q: bool] :
      ( ~ pp(aa(bool,bool,aa(bool,fun(bool,bool),fconj,P),Q))
      | pp(P) ) )).

tff(help_fconj_1_1_U,axiom,(
    ! [P: bool,Q: bool] :
      ( ~ pp(P)
      | ~ pp(Q)
      | pp(aa(bool,bool,aa(bool,fun(bool,bool),fconj,P),Q)) ) )).

tff(help_fdisj_3_1_U,axiom,(
    ! [P: bool,Q: bool] :
      ( ~ pp(aa(bool,bool,aa(bool,fun(bool,bool),fdisj,P),Q))
      | pp(P)
      | pp(Q) ) )).

tff(help_fdisj_2_1_U,axiom,(
    ! [Q: bool,P: bool] :
      ( ~ pp(Q)
      | pp(aa(bool,bool,aa(bool,fun(bool,bool),fdisj,P),Q)) ) )).

tff(help_fdisj_1_1_U,axiom,(
    ! [P: bool,Q: bool] :
      ( ~ pp(P)
      | pp(aa(bool,bool,aa(bool,fun(bool,bool),fdisj,P),Q)) ) )).

tff(help_fFalse_1_1_T,axiom,(
    ! [P: bool] :
      ( P = fTrue
      | P = fFalse ) )).

tff(help_fFalse_1_1_U,axiom,(
    ~ pp(fFalse) )).

tff(help_fequal_2_1_T,axiom,(
    ! [A: $tType,X3: A,Y: A] :
      ( X3 != Y
      | pp(aa(A,bool,aa(A,fun(A,bool),fequal(A),X3),Y)) ) )).

tff(help_fequal_1_1_T,axiom,(
    ! [A: $tType,X3: A,Y: A] :
      ( ~ pp(aa(A,bool,aa(A,fun(A,bool),fequal(A),X3),Y))
      | X3 = Y ) )).

% Conjectures (1)
tff(conj_0,conjecture,(
    aa(product_prod(finfun(d,list(lock_action)),product_prod(list(new_thread_action(a,b,c)),product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f)))))),list(new_thread_action(a,b,c)),thr_a(d,a,b,c,e,f),aa(product_prod(list(new_thread_action(a,b,c)),product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f))))),product_prod(finfun(d,list(lock_action)),product_prod(list(new_thread_action(a,b,c)),product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f)))))),aa(finfun(d,list(lock_action)),fun(product_prod(list(new_thread_action(a,b,c)),product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f))))),product_prod(finfun(d,list(lock_action)),product_prod(list(new_thread_action(a,b,c)),product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f))))))),product_Pair(finfun(d,list(lock_action)),product_prod(list(new_thread_action(a,b,c)),product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f)))))),ls),aa(product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f)))),product_prod(list(new_thread_action(a,b,c)),product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f))))),aa(list(new_thread_action(a,b,c)),fun(product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f)))),product_prod(list(new_thread_action(a,b,c)),product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f)))))),product_Pair(list(new_thread_action(a,b,c)),product_prod(list(conditional_action(a)),product_prod(list(wait_set_action(a,e)),product_prod(list(interrupt_action(a)),list(f))))),nts),jswss))) = nts )).
