TPTP Problem File: DAT221^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : DAT221^1 : TPTP v9.0.0. Released v7.0.0.
% Domain : Data Structures
% Problem : Tllist 340
% Version : [Bla16] axioms : Especial.
% English :
% Refs : [Loc10] Lochbihler (2010), Coinductive
% : [RB15] Reynolds & Blanchette (2015), A Decision Procedure for
% : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source : [Bla16]
% Names : tllist__340.p [Bla16]
% Status : Theorem
% Rating : 1.00 v7.1.0
% Syntax : Number of formulae : 331 ( 108 unt; 61 typ; 0 def)
% Number of atoms : 1165 ( 265 equ; 6 cnn)
% Maximal formula atoms : 20 ( 4 avg)
% Number of connectives : 5970 ( 19 ~; 4 |; 61 &;5586 @)
% ( 0 <=>; 300 =>; 0 <=; 0 <~>)
% Maximal formula depth : 26 ( 12 avg)
% Number of types : 5 ( 4 usr)
% Number of type conns : 2042 (2042 >; 0 *; 0 +; 0 <<)
% Number of symbols : 61 ( 57 usr; 3 con; 0-10 aty)
% Number of variables : 2038 ( 471 ^;1424 !; 39 ?;2038 :)
% ( 104 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_THM_EQU_NAR
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2016-07-13 14:51:15.680
%------------------------------------------------------------------------------
%----Could-be-implicit typings (9)
thf(ty_t_TLList__Mirabelle__qhjoikztpd_Otllist,type,
tLList446370796tllist: $tType > $tType > $tType ).
thf(ty_t_Coinductive__List_Ollist,type,
coinductive_llist: $tType > $tType ).
thf(ty_t_Product__Type_Oprod,type,
product_prod: $tType > $tType > $tType ).
thf(ty_t_Set_Oset,type,
set: $tType > $tType ).
thf(ty_t_itself,type,
itself: $tType > $tType ).
thf(ty_tf_d,type,
d: $tType ).
thf(ty_tf_c,type,
c: $tType ).
thf(ty_tf_b,type,
b: $tType ).
thf(ty_tf_a,type,
a: $tType ).
%----Explicit typings (52)
thf(sy_cl_HOL_Otype,type,
type:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Oorder,type,
order:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Olinorder,type,
linorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Opreorder,type,
preorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Complete__Lattices_Ocomplete__lattice,type,
comple187826305attice:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_c_BNF__Def_OfstOp,type,
bNF_fstOp:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > B > $o ) > ( B > C > $o ) > ( product_prod @ A @ C ) > ( product_prod @ A @ B ) ) ).
thf(sy_c_BNF__Def_Orel__fun,type,
bNF_rel_fun:
!>[A: $tType,C: $tType,B: $tType,D: $tType] : ( ( A > C > $o ) > ( B > D > $o ) > ( A > B ) > ( C > D ) > $o ) ).
thf(sy_c_BNF__Def_OsndOp,type,
bNF_sndOp:
!>[C: $tType,A: $tType,B: $tType] : ( ( C > A > $o ) > ( A > B > $o ) > ( product_prod @ C @ B ) > ( product_prod @ A @ B ) ) ).
thf(sy_c_BNF__Greatest__Fixpoint_Oimage2p,type,
bNF_Greatest_image2p:
!>[C: $tType,A: $tType,D: $tType,B: $tType] : ( ( C > A ) > ( D > B ) > ( C > D > $o ) > A > B > $o ) ).
thf(sy_c_Basic__BNFs_Opred__fun,type,
basic_pred_fun:
!>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( A > B ) > $o ) ).
thf(sy_c_Basic__BNFs_Opred__prod,type,
basic_pred_prod:
!>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( product_prod @ A @ B ) > $o ) ).
thf(sy_c_Basic__BNFs_Orel__prod,type,
basic_rel_prod:
!>[A: $tType,B: $tType,C: $tType,D: $tType] : ( ( A > B > $o ) > ( C > D > $o ) > ( product_prod @ A @ C ) > ( product_prod @ B @ D ) > $o ) ).
thf(sy_c_Coinductive__List_Oiterates,type,
coinductive_iterates:
!>[A: $tType] : ( ( A > A ) > A > ( coinductive_llist @ A ) ) ).
thf(sy_c_Coinductive__List_Olfinite,type,
coinductive_lfinite:
!>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Ollist_Ocase__llist,type,
coindu1381640503_llist:
!>[B: $tType,A: $tType] : ( B > ( A > ( coinductive_llist @ A ) > B ) > ( coinductive_llist @ A ) > B ) ).
thf(sy_c_Coinductive__List_Ollist_Ocorec__llist,type,
coindu1259883913_llist:
!>[C: $tType,A: $tType] : ( ( C > $o ) > ( C > A ) > ( C > $o ) > ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) ).
thf(sy_c_Coinductive__List_Ollist_Ollist__all2,type,
coindu1486289336t_all2:
!>[A: $tType,B: $tType] : ( ( A > B > $o ) > ( coinductive_llist @ A ) > ( coinductive_llist @ B ) > $o ) ).
thf(sy_c_Coinductive__List_Ollist_Opred__llist,type,
coindu543516966_llist:
!>[A: $tType] : ( ( A > $o ) > ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Ounfold__llist,type,
coindu1441602521_llist:
!>[A: $tType,B: $tType] : ( ( A > $o ) > ( A > B ) > ( A > A ) > A > ( coinductive_llist @ B ) ) ).
thf(sy_c_Complete__Partial__Order_Omonotone,type,
comple1396247847notone:
!>[A: $tType,B: $tType] : ( ( A > A > $o ) > ( B > B > $o ) > ( A > B ) > $o ) ).
thf(sy_c_Fun_Omap__fun,type,
map_fun:
!>[C: $tType,A: $tType,B: $tType,D: $tType] : ( ( C > A ) > ( B > D ) > ( A > B ) > C > D ) ).
thf(sy_c_If,type,
if:
!>[A: $tType] : ( $o > A > A > A ) ).
thf(sy_c_Lifting_Orel__pred__comp,type,
rel_pred_comp:
!>[A: $tType,B: $tType] : ( ( A > B > $o ) > ( B > $o ) > A > $o ) ).
thf(sy_c_Orderings_Oord__class_Oless__eq,type,
ord_less_eq:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Orderings_Oorder__class_Omono,type,
order_mono:
!>[A: $tType,B: $tType] : ( ( A > B ) > $o ) ).
thf(sy_c_Partial__Function_Ofun__ord,type,
partial_fun_ord:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > B > $o ) > ( C > A ) > ( C > B ) > $o ) ).
thf(sy_c_Partial__Function_Opartial__function__definitions,type,
partia17684980itions:
!>[A: $tType] : ( ( A > A > $o ) > ( ( set @ A ) > A ) > $o ) ).
thf(sy_c_Product__Type_Ocurry,type,
product_curry:
!>[A: $tType,B: $tType,C: $tType] : ( ( ( product_prod @ A @ B ) > C ) > A > B > C ) ).
thf(sy_c_Product__Type_Ointernal__case__prod,type,
produc2004651681e_prod:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).
thf(sy_c_Product__Type_Oprod_Ocase__prod,type,
product_case_prod:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).
thf(sy_c_Pure_Otype,type,
type2:
!>[A: $tType] : ( itself @ A ) ).
thf(sy_c_Quotient_OBex1__rel,type,
bex1_rel:
!>[A: $tType] : ( ( A > A > $o ) > ( A > $o ) > $o ) ).
thf(sy_c_Quotient_OQuotient3,type,
quotient3:
!>[A: $tType,B: $tType] : ( ( A > A > $o ) > ( A > B ) > ( B > A ) > $o ) ).
thf(sy_c_Relation_ODomainp,type,
domainp:
!>[A: $tType,B: $tType] : ( ( A > B > $o ) > A > $o ) ).
thf(sy_c_Relation_Oreflp,type,
reflp:
!>[A: $tType] : ( ( A > A > $o ) > $o ) ).
thf(sy_c_Relation_Orelcompp,type,
relcompp:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > B > $o ) > ( B > C > $o ) > A > C > $o ) ).
thf(sy_c_Set_OBex,type,
bex:
!>[A: $tType] : ( ( set @ A ) > ( A > $o ) > $o ) ).
thf(sy_c_Set_OCollect,type,
collect:
!>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
thf(sy_c_TLList__Mirabelle__qhjoikztpd_Ocr__tllist,type,
tLList47617868tllist:
!>[A: $tType,B: $tType] : ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > ( tLList446370796tllist @ A @ B ) > $o ) ).
thf(sy_c_TLList__Mirabelle__qhjoikztpd_Opcr__tllist,type,
tLList1832236142tllist:
!>[C: $tType,A: $tType,D: $tType,B: $tType] : ( ( C > A > $o ) > ( D > B > $o ) > ( product_prod @ ( coinductive_llist @ C ) @ D ) > ( tLList446370796tllist @ A @ B ) > $o ) ).
thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ocase__tllist,type,
tLList200813139tllist:
!>[B: $tType,C: $tType,A: $tType] : ( ( B > C ) > ( A > ( tLList446370796tllist @ A @ B ) > C ) > ( tLList446370796tllist @ A @ B ) > C ) ).
thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Ocorec__tllist,type,
tLList1614408749tllist:
!>[E: $tType,B: $tType,A: $tType] : ( ( E > $o ) > ( E > B ) > ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) ).
thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Opred__tllist,type,
tLList11265572tllist:
!>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( tLList446370796tllist @ A @ B ) > $o ) ).
thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist_Otllist__all2,type,
tLList1380991092t_all2:
!>[A: $tType,C: $tType,B: $tType,D: $tType] : ( ( A > C > $o ) > ( B > D > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) ).
thf(sy_c_TLList__Mirabelle__qhjoikztpd_Otllist__of__llist,type,
tLList1672613558_llist:
!>[B: $tType,A: $tType] : ( B > ( coinductive_llist @ A ) > ( tLList446370796tllist @ A @ B ) ) ).
thf(sy_c_Transfer_Obi__total,type,
bi_total:
!>[A: $tType,B: $tType] : ( ( A > B > $o ) > $o ) ).
thf(sy_c_Transfer_Oleft__total,type,
left_total:
!>[A: $tType,B: $tType] : ( ( A > B > $o ) > $o ) ).
thf(sy_c_Transfer_Orev__implies,type,
rev_implies: $o > $o > $o ).
thf(sy_c_Transfer_Oright__total,type,
right_total:
!>[A: $tType,B: $tType] : ( ( A > B > $o ) > $o ) ).
thf(sy_c_Transfer_Otransfer__bforall,type,
transfer_bforall:
!>[A: $tType] : ( ( A > $o ) > ( A > $o ) > $o ) ).
thf(sy_c_Transfer_Otransfer__forall,type,
transfer_forall:
!>[A: $tType] : ( ( A > $o ) > $o ) ).
thf(sy_c_member,type,
member:
!>[A: $tType] : ( A > ( set @ A ) > $o ) ).
%----Relevant facts (256)
thf(fact_0_tllist_Orel__eq,axiom,
! [B: $tType,A: $tType] :
( ( tLList1380991092t_all2 @ A @ A @ B @ B
@ ^ [Y: A,Z: A] : ( Y = Z )
@ ^ [Y: B,Z: B] : ( Y = Z ) )
= ( ^ [Y: tLList446370796tllist @ A @ B,Z: tLList446370796tllist @ A @ B] : ( Y = Z ) ) ) ).
% tllist.rel_eq
thf(fact_1_tllist_Orel__refl,axiom,
! [D: $tType,C: $tType,R1a: C > C > $o,R2a: D > D > $o,X: tLList446370796tllist @ C @ D] :
( ! [X2: C] : ( R1a @ X2 @ X2 )
=> ( ! [X2: D] : ( R2a @ X2 @ X2 )
=> ( tLList1380991092t_all2 @ C @ C @ D @ D @ R1a @ R2a @ X @ X ) ) ) ).
% tllist.rel_refl
thf(fact_2_split__part,axiom,
! [B: $tType,A: $tType,P: $o,Q: A > B > $o] :
( ( product_case_prod @ A @ B @ $o
@ ^ [A2: A,B2: B] :
( P
& ( Q @ A2 @ B2 ) ) )
= ( ^ [Ab: product_prod @ A @ B] :
( P
& ( product_case_prod @ A @ B @ $o @ Q @ Ab ) ) ) ) ).
% split_part
thf(fact_3_tllist_Orel__eq__transfer,axiom,
! [B: $tType,A: $tType] :
( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o ) @ ( ( tLList446370796tllist @ A @ B ) > $o )
@ ( tLList1832236142tllist @ A @ A @ B @ B
@ ^ [Y: A,Z: A] : ( Y = Z )
@ ^ [Y: B,Z: B] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ $o @ $o
@ ( tLList1832236142tllist @ A @ A @ B @ B
@ ^ [Y: A,Z: A] : ( Y = Z )
@ ^ [Y: B,Z: B] : ( Y = Z ) )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
@ ^ [Xs: coinductive_llist @ A,A2: B] :
( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
@ ^ [Ys: coinductive_llist @ A,B2: B] :
( ( Xs = Ys )
& ( ( coinductive_lfinite @ A @ Ys )
=> ( A2 = B2 ) ) ) ) )
@ ^ [Y: tLList446370796tllist @ A @ B,Z: tLList446370796tllist @ A @ B] : ( Y = Z ) ) ).
% tllist.rel_eq_transfer
thf(fact_4_let__rsp,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > B > $o,R2: C > D > $o] :
( bNF_rel_fun @ A @ B @ ( ( A > C ) > C ) @ ( ( B > D ) > D ) @ R1 @ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ C @ D @ ( bNF_rel_fun @ A @ B @ C @ D @ R1 @ R2 ) @ R2 )
@ ^ [S: A,F: A > C] : ( F @ S )
@ ^ [S: B,F: B > D] : ( F @ S ) ) ).
% let_rsp
thf(fact_5_Let__transfer,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
( bNF_rel_fun @ A @ B @ ( ( A > C ) > C ) @ ( ( B > D ) > D ) @ A3 @ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ C @ D @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 ) @ B3 )
@ ^ [S: A,F: A > C] : ( F @ S )
@ ^ [S: B,F: B > D] : ( F @ S ) ) ).
% Let_transfer
thf(fact_6_fun_Orel__transfer,axiom,
! [B: $tType,A: $tType,C: $tType,E: $tType,D: $tType,Sa: A > C > $o,Sc: B > E > $o] :
( bNF_rel_fun @ ( A > B > $o ) @ ( C > E > $o ) @ ( ( D > A ) > ( D > B ) > $o ) @ ( ( D > C ) > ( D > E ) > $o )
@ ( bNF_rel_fun @ A @ C @ ( B > $o ) @ ( E > $o ) @ Sa
@ ( bNF_rel_fun @ B @ E @ $o @ $o @ Sc
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( D > A ) @ ( D > C ) @ ( ( D > B ) > $o ) @ ( ( D > E ) > $o )
@ ( bNF_rel_fun @ D @ D @ A @ C
@ ^ [Y: D,Z: D] : ( Y = Z )
@ Sa )
@ ( bNF_rel_fun @ ( D > B ) @ ( D > E ) @ $o @ $o
@ ( bNF_rel_fun @ D @ D @ B @ E
@ ^ [Y: D,Z: D] : ( Y = Z )
@ Sc )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ D @ D @ A @ B
@ ^ [Y: D,Z: D] : ( Y = Z ) )
@ ( bNF_rel_fun @ D @ D @ C @ E
@ ^ [Y: D,Z: D] : ( Y = Z ) ) ) ).
% fun.rel_transfer
thf(fact_7_rel__funI,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o,F2: A > C,G: B > D] :
( ! [X2: A,Y2: B] :
( ( A3 @ X2 @ Y2 )
=> ( B3 @ ( F2 @ X2 ) @ ( G @ Y2 ) ) )
=> ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 @ F2 @ G ) ) ).
% rel_funI
thf(fact_8_case__prod__app,axiom,
! [A: $tType,D: $tType,C: $tType,B: $tType] :
( ( product_case_prod @ B @ C @ ( D > A ) )
= ( ^ [F: B > C > D > A,X3: product_prod @ B @ C,Y3: D] :
( product_case_prod @ B @ C @ A
@ ^ [L: B,R: C] : ( F @ L @ R @ Y3 )
@ X3 ) ) ) ).
% case_prod_app
thf(fact_9_llist__all2__lfiniteD,axiom,
! [A: $tType,B: $tType,P: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B] :
( ( coindu1486289336t_all2 @ A @ B @ P @ Xs2 @ Ys2 )
=> ( ( coinductive_lfinite @ A @ Xs2 )
= ( coinductive_lfinite @ B @ Ys2 ) ) ) ).
% llist_all2_lfiniteD
thf(fact_10_If__transfer,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( bNF_rel_fun @ $o @ $o @ ( A > A > A ) @ ( B > B > B )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( bNF_rel_fun @ A @ B @ ( A > A ) @ ( B > B ) @ A3 @ ( bNF_rel_fun @ A @ B @ A @ B @ A3 @ A3 ) )
@ ( if @ A )
@ ( if @ B ) ) ).
% If_transfer
thf(fact_11_rel__fun__def__butlast,axiom,
! [B: $tType,D: $tType,C: $tType,E: $tType,F3: $tType,A: $tType,R3: A > B > $o,S2: C > E > $o,T: D > F3 > $o,F2: A > C > D,G: B > E > F3] :
( ( bNF_rel_fun @ A @ B @ ( C > D ) @ ( E > F3 ) @ R3 @ ( bNF_rel_fun @ C @ E @ D @ F3 @ S2 @ T ) @ F2 @ G )
= ( ! [X3: A,Y3: B] :
( ( R3 @ X3 @ Y3 )
=> ( bNF_rel_fun @ C @ E @ D @ F3 @ S2 @ T @ ( F2 @ X3 ) @ ( G @ Y3 ) ) ) ) ) ).
% rel_fun_def_butlast
thf(fact_12_llist__all2__conj,axiom,
! [A: $tType,B: $tType,P: A > B > $o,Q: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B] :
( ( coindu1486289336t_all2 @ A @ B
@ ^ [X3: A,Y3: B] :
( ( P @ X3 @ Y3 )
& ( Q @ X3 @ Y3 ) )
@ Xs2
@ Ys2 )
= ( ( coindu1486289336t_all2 @ A @ B @ P @ Xs2 @ Ys2 )
& ( coindu1486289336t_all2 @ A @ B @ Q @ Xs2 @ Ys2 ) ) ) ).
% llist_all2_conj
thf(fact_13_prod_Odisc__eq__case,axiom,
! [B: $tType,A: $tType,Prod: product_prod @ A @ B] :
( product_case_prod @ A @ B @ $o
@ ^ [Uu: A,Uv: B] : $true
@ Prod ) ).
% prod.disc_eq_case
thf(fact_14_tllist_Orel__transfer,axiom,
! [A: $tType,C: $tType,B: $tType,D: $tType,H: $tType,F3: $tType,G2: $tType,E: $tType,S1a: A > E > $o,S1c: C > G2 > $o,S2a: B > F3 > $o,S2c: D > H > $o] :
( bNF_rel_fun @ ( A > C > $o ) @ ( E > G2 > $o ) @ ( ( B > D > $o ) > ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) @ ( ( F3 > H > $o ) > ( tLList446370796tllist @ E @ F3 ) > ( tLList446370796tllist @ G2 @ H ) > $o )
@ ( bNF_rel_fun @ A @ E @ ( C > $o ) @ ( G2 > $o ) @ S1a
@ ( bNF_rel_fun @ C @ G2 @ $o @ $o @ S1c
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( B > D > $o ) @ ( F3 > H > $o ) @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) @ ( ( tLList446370796tllist @ E @ F3 ) > ( tLList446370796tllist @ G2 @ H ) > $o )
@ ( bNF_rel_fun @ B @ F3 @ ( D > $o ) @ ( H > $o ) @ S2a
@ ( bNF_rel_fun @ D @ H @ $o @ $o @ S2c
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ E @ F3 ) @ ( ( tLList446370796tllist @ C @ D ) > $o ) @ ( ( tLList446370796tllist @ G2 @ H ) > $o ) @ ( tLList1380991092t_all2 @ A @ E @ B @ F3 @ S1a @ S2a )
@ ( bNF_rel_fun @ ( tLList446370796tllist @ C @ D ) @ ( tLList446370796tllist @ G2 @ H ) @ $o @ $o @ ( tLList1380991092t_all2 @ C @ G2 @ D @ H @ S1c @ S2c )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) ) )
@ ( tLList1380991092t_all2 @ A @ C @ B @ D )
@ ( tLList1380991092t_all2 @ E @ G2 @ F3 @ H ) ) ).
% tllist.rel_transfer
thf(fact_15_lfinite__transfer,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ A3 )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( coinductive_lfinite @ A )
@ ( coinductive_lfinite @ B ) ) ).
% lfinite_transfer
thf(fact_16_llist_Orel__transfer,axiom,
! [A: $tType,B: $tType,D: $tType,C: $tType,Sa: A > C > $o,Sc: B > D > $o] :
( bNF_rel_fun @ ( A > B > $o ) @ ( C > D > $o ) @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ B ) > $o ) @ ( ( coinductive_llist @ C ) > ( coinductive_llist @ D ) > $o )
@ ( bNF_rel_fun @ A @ C @ ( B > $o ) @ ( D > $o ) @ Sa
@ ( bNF_rel_fun @ B @ D @ $o @ $o @ Sc
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ C ) @ ( ( coinductive_llist @ B ) > $o ) @ ( ( coinductive_llist @ D ) > $o ) @ ( coindu1486289336t_all2 @ A @ C @ Sa )
@ ( bNF_rel_fun @ ( coinductive_llist @ B ) @ ( coinductive_llist @ D ) @ $o @ $o @ ( coindu1486289336t_all2 @ B @ D @ Sc )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( coindu1486289336t_all2 @ A @ B )
@ ( coindu1486289336t_all2 @ C @ D ) ) ).
% llist.rel_transfer
thf(fact_17_llist__all2__transfer,axiom,
! [A: $tType,B: $tType,R3: A > B > $o] :
( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > ( coinductive_llist @ B ) > $o )
@ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ R3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ R3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > $o ) @ ( coindu1486289336t_all2 @ A @ B @ R3 )
@ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ R3 )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( coindu1486289336t_all2 @ A @ A )
@ ( coindu1486289336t_all2 @ B @ B ) ) ).
% llist_all2_transfer
thf(fact_18_tllist_Opcr__cr__eq,axiom,
! [F3: $tType,E: $tType] :
( ( tLList1832236142tllist @ E @ E @ F3 @ F3
@ ^ [Y: E,Z: E] : ( Y = Z )
@ ^ [Y: F3,Z: F3] : ( Y = Z ) )
= ( tLList47617868tllist @ E @ F3 ) ) ).
% tllist.pcr_cr_eq
thf(fact_19_fun_Orel__refl,axiom,
! [B: $tType,D: $tType,Ra: B > B > $o,X: D > B] :
( ! [X2: B] : ( Ra @ X2 @ X2 )
=> ( bNF_rel_fun @ D @ D @ B @ B
@ ^ [Y: D,Z: D] : ( Y = Z )
@ Ra
@ X
@ X ) ) ).
% fun.rel_refl
thf(fact_20_fun_Orel__eq,axiom,
! [A: $tType,D: $tType] :
( ( bNF_rel_fun @ D @ D @ A @ A
@ ^ [Y: D,Z: D] : ( Y = Z )
@ ^ [Y: A,Z: A] : ( Y = Z ) )
= ( ^ [Y: D > A,Z: D > A] : ( Y = Z ) ) ) ).
% fun.rel_eq
thf(fact_21_rel__fun__mono_H,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,Y4: A > B > $o,X4: A > B > $o,A3: C > D > $o,B3: C > D > $o,F2: A > C,G: B > D] :
( ! [X2: A,Y2: B] :
( ( Y4 @ X2 @ Y2 )
=> ( X4 @ X2 @ Y2 ) )
=> ( ! [X2: C,Y2: D] :
( ( A3 @ X2 @ Y2 )
=> ( B3 @ X2 @ Y2 ) )
=> ( ( bNF_rel_fun @ A @ B @ C @ D @ X4 @ A3 @ F2 @ G )
=> ( bNF_rel_fun @ A @ B @ C @ D @ Y4 @ B3 @ F2 @ G ) ) ) ) ).
% rel_fun_mono'
thf(fact_22_rel__fun__mono,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,X4: A > B > $o,A3: C > D > $o,F2: A > C,G: B > D,Y4: A > B > $o,B3: C > D > $o] :
( ( bNF_rel_fun @ A @ B @ C @ D @ X4 @ A3 @ F2 @ G )
=> ( ! [X2: A,Y2: B] :
( ( Y4 @ X2 @ Y2 )
=> ( X4 @ X2 @ Y2 ) )
=> ( ! [X2: C,Y2: D] :
( ( A3 @ X2 @ Y2 )
=> ( B3 @ X2 @ Y2 ) )
=> ( bNF_rel_fun @ A @ B @ C @ D @ Y4 @ B3 @ F2 @ G ) ) ) ) ).
% rel_fun_mono
thf(fact_23_rel__funD2,axiom,
! [B: $tType,C: $tType,A: $tType,A3: A > A > $o,B3: B > C > $o,F2: A > B,G: A > C,X: A] :
( ( bNF_rel_fun @ A @ A @ B @ C @ A3 @ B3 @ F2 @ G )
=> ( ( A3 @ X @ X )
=> ( B3 @ ( F2 @ X ) @ ( G @ X ) ) ) ) ).
% rel_funD2
thf(fact_24_rel__funE,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o,F2: A > C,G: B > D,X: A,Y5: B] :
( ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 @ F2 @ G )
=> ( ( A3 @ X @ Y5 )
=> ( B3 @ ( F2 @ X ) @ ( G @ Y5 ) ) ) ) ).
% rel_funE
thf(fact_25_rel__funD,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o,F2: A > C,G: B > D,X: A,Y5: B] :
( ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 @ F2 @ G )
=> ( ( A3 @ X @ Y5 )
=> ( B3 @ ( F2 @ X ) @ ( G @ Y5 ) ) ) ) ).
% rel_funD
thf(fact_26_llist_Orel__refl,axiom,
! [B: $tType,Ra: B > B > $o,X: coinductive_llist @ B] :
( ! [X2: B] : ( Ra @ X2 @ X2 )
=> ( coindu1486289336t_all2 @ B @ B @ Ra @ X @ X ) ) ).
% llist.rel_refl
thf(fact_27_llist_Orel__eq,axiom,
! [A: $tType] :
( ( coindu1486289336t_all2 @ A @ A
@ ^ [Y: A,Z: A] : ( Y = Z ) )
= ( ^ [Y: coinductive_llist @ A,Z: coinductive_llist @ A] : ( Y = Z ) ) ) ).
% llist.rel_eq
thf(fact_28_llist__all2__mono,axiom,
! [A: $tType,B: $tType,P: A > B > $o,Xs2: coinductive_llist @ A,Ys2: coinductive_llist @ B,P2: A > B > $o] :
( ( coindu1486289336t_all2 @ A @ B @ P @ Xs2 @ Ys2 )
=> ( ! [X2: A,Y2: B] :
( ( P @ X2 @ Y2 )
=> ( P2 @ X2 @ Y2 ) )
=> ( coindu1486289336t_all2 @ A @ B @ P2 @ Xs2 @ Ys2 ) ) ) ).
% llist_all2_mono
thf(fact_29_llist__all2__rsp,axiom,
! [A: $tType,B: $tType,R3: A > B > $o,S2: A > A > $o,T: B > B > $o,X: coinductive_llist @ A,Y5: coinductive_llist @ B,A4: coinductive_llist @ A,B4: coinductive_llist @ B] :
( ! [X2: A,Y2: B] :
( ( R3 @ X2 @ Y2 )
=> ! [A5: A,B5: B] :
( ( R3 @ A5 @ B5 )
=> ( ( S2 @ X2 @ A5 )
= ( T @ Y2 @ B5 ) ) ) )
=> ( ( coindu1486289336t_all2 @ A @ B @ R3 @ X @ Y5 )
=> ( ( coindu1486289336t_all2 @ A @ B @ R3 @ A4 @ B4 )
=> ( ( coindu1486289336t_all2 @ A @ A @ S2 @ X @ A4 )
= ( coindu1486289336t_all2 @ B @ B @ T @ Y5 @ B4 ) ) ) ) ) ).
% llist_all2_rsp
thf(fact_30_prod_Ocase__distrib,axiom,
! [C: $tType,D: $tType,B: $tType,A: $tType,H2: C > D,F2: A > B > C,Prod: product_prod @ A @ B] :
( ( H2 @ ( product_case_prod @ A @ B @ C @ F2 @ Prod ) )
= ( product_case_prod @ A @ B @ D
@ ^ [X1: A,X22: B] : ( H2 @ ( F2 @ X1 @ X22 ) )
@ Prod ) ) ).
% prod.case_distrib
thf(fact_31_tllist_Oabs__eq__iff,axiom,
! [B: $tType,A: $tType,X: product_prod @ ( coinductive_llist @ A ) @ B,Y5: product_prod @ ( coinductive_llist @ A ) @ B] :
( ( ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
@ ^ [Xs: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs )
@ X )
= ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
@ ^ [Xs: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs )
@ Y5 ) )
= ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
@ ^ [Xs: coinductive_llist @ A,A2: B] :
( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
@ ^ [Ys: coinductive_llist @ A,B2: B] :
( ( Xs = Ys )
& ( ( coinductive_lfinite @ A @ Ys )
=> ( A2 = B2 ) ) ) )
@ X
@ Y5 ) ) ).
% tllist.abs_eq_iff
thf(fact_32_fun_Opred__transfer,axiom,
! [A: $tType,B: $tType,D: $tType,R3: A > B > $o] :
( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( D > A ) > $o ) @ ( ( D > B ) > $o )
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ R3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( D > A ) @ ( D > B ) @ $o @ $o
@ ( bNF_rel_fun @ D @ D @ A @ B
@ ^ [Y: D,Z: D] : ( Y = Z )
@ R3 )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( basic_pred_fun @ D @ A
@ ^ [Uu: D] : $true )
@ ( basic_pred_fun @ D @ B
@ ^ [Uu: D] : $true ) ) ).
% fun.pred_transfer
thf(fact_33_reflp__tllist,axiom,
! [B: $tType,A: $tType] :
( reflp @ ( product_prod @ ( coinductive_llist @ A ) @ B )
@ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( product_prod @ ( coinductive_llist @ A ) @ B ) > $o )
@ ^ [Xs: coinductive_llist @ A,A2: B] :
( product_case_prod @ ( coinductive_llist @ A ) @ B @ $o
@ ^ [Ys: coinductive_llist @ A,B2: B] :
( ( Xs = Ys )
& ( ( coinductive_lfinite @ A @ Ys )
=> ( A2 = B2 ) ) ) ) ) ) ).
% reflp_tllist
thf(fact_34_internal__case__prod__def,axiom,
! [C: $tType,B: $tType,A: $tType] :
( ( produc2004651681e_prod @ A @ B @ C )
= ( product_case_prod @ A @ B @ C ) ) ).
% internal_case_prod_def
thf(fact_35_tllist_Ocorec__transfer,axiom,
! [E: $tType,B: $tType,A: $tType,C: $tType,D: $tType,F3: $tType,S2: E > F3 > $o,R2: B > D > $o,R1: A > C > $o] :
( bNF_rel_fun @ ( E > $o ) @ ( F3 > $o ) @ ( ( E > B ) > ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > D ) > ( F3 > C ) > ( F3 > $o ) > ( F3 > ( tLList446370796tllist @ C @ D ) ) > ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) )
@ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ S2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( E > B ) @ ( F3 > D ) @ ( ( E > A ) > ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > C ) > ( F3 > $o ) > ( F3 > ( tLList446370796tllist @ C @ D ) ) > ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F3 @ B @ D @ S2 @ R2 )
@ ( bNF_rel_fun @ ( E > A ) @ ( F3 > C ) @ ( ( E > $o ) > ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > $o ) > ( F3 > ( tLList446370796tllist @ C @ D ) ) > ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F3 @ A @ C @ S2 @ R1 )
@ ( bNF_rel_fun @ ( E > $o ) @ ( F3 > $o ) @ ( ( E > ( tLList446370796tllist @ A @ B ) ) > ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > ( tLList446370796tllist @ C @ D ) ) > ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) )
@ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ S2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( E > ( tLList446370796tllist @ A @ B ) ) @ ( F3 > ( tLList446370796tllist @ C @ D ) ) @ ( ( E > E ) > E > ( tLList446370796tllist @ A @ B ) ) @ ( ( F3 > F3 ) > F3 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F3 @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ S2 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) @ ( bNF_rel_fun @ ( E > E ) @ ( F3 > F3 ) @ ( E > ( tLList446370796tllist @ A @ B ) ) @ ( F3 > ( tLList446370796tllist @ C @ D ) ) @ ( bNF_rel_fun @ E @ F3 @ E @ F3 @ S2 @ S2 ) @ ( bNF_rel_fun @ E @ F3 @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ S2 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ) ) )
@ ( tLList1614408749tllist @ E @ B @ A )
@ ( tLList1614408749tllist @ F3 @ D @ C ) ) ).
% tllist.corec_transfer
thf(fact_36_if__rsp,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( bNF_rel_fun @ $o @ $o @ ( A > A > A ) @ ( A > A > A )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( bNF_rel_fun @ A @ A @ ( A > A ) @ ( A > A ) @ R3 @ ( bNF_rel_fun @ A @ A @ A @ A @ R3 @ R3 ) )
@ ( if @ A )
@ ( if @ A ) ) ) ).
% if_rsp
thf(fact_37_llist__corec__transfer,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( A > C ) > ( A > $o ) > ( A > ( coinductive_llist @ C ) ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > D ) > ( B > $o ) > ( B > ( coinductive_llist @ D ) ) > ( B > B ) > B > ( coinductive_llist @ D ) )
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ ( ( A > $o ) > ( A > ( coinductive_llist @ C ) ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > $o ) > ( B > ( coinductive_llist @ D ) ) > ( B > B ) > B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 )
@ ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( A > ( coinductive_llist @ C ) ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > ( coinductive_llist @ D ) ) > ( B > B ) > B > ( coinductive_llist @ D ) )
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( A > ( coinductive_llist @ C ) ) @ ( B > ( coinductive_llist @ D ) ) @ ( ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > B ) > B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A3 @ ( coindu1486289336t_all2 @ C @ D @ B3 ) ) @ ( bNF_rel_fun @ ( A > A ) @ ( B > B ) @ ( A > ( coinductive_llist @ C ) ) @ ( B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ A @ B @ A3 @ A3 ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A3 @ ( coindu1486289336t_all2 @ C @ D @ B3 ) ) ) ) ) )
@ ( coindu1259883913_llist @ A @ C )
@ ( coindu1259883913_llist @ B @ D ) ) ).
% llist_corec_transfer
thf(fact_38_llist_Ocorec__transfer,axiom,
! [C: $tType,A: $tType,B: $tType,D: $tType,S2: C > D > $o,R3: A > B > $o] :
( bNF_rel_fun @ ( C > $o ) @ ( D > $o ) @ ( ( C > A ) > ( C > $o ) > ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > B ) > ( D > $o ) > ( D > ( coinductive_llist @ B ) ) > ( D > D ) > D > ( coinductive_llist @ B ) )
@ ( bNF_rel_fun @ C @ D @ $o @ $o @ S2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( C > A ) @ ( D > B ) @ ( ( C > $o ) > ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > $o ) > ( D > ( coinductive_llist @ B ) ) > ( D > D ) > D > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ C @ D @ A @ B @ S2 @ R3 )
@ ( bNF_rel_fun @ ( C > $o ) @ ( D > $o ) @ ( ( C > ( coinductive_llist @ A ) ) > ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > ( coinductive_llist @ B ) ) > ( D > D ) > D > ( coinductive_llist @ B ) )
@ ( bNF_rel_fun @ C @ D @ $o @ $o @ S2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( C > ( coinductive_llist @ A ) ) @ ( D > ( coinductive_llist @ B ) ) @ ( ( C > C ) > C > ( coinductive_llist @ A ) ) @ ( ( D > D ) > D > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ C @ D @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ S2 @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) @ ( bNF_rel_fun @ ( C > C ) @ ( D > D ) @ ( C > ( coinductive_llist @ A ) ) @ ( D > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ C @ D @ C @ D @ S2 @ S2 ) @ ( bNF_rel_fun @ C @ D @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ S2 @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) ) ) ) )
@ ( coindu1259883913_llist @ C @ A )
@ ( coindu1259883913_llist @ D @ B ) ) ).
% llist.corec_transfer
thf(fact_39_unfold__llist__transfer,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( A > C ) > ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > D ) > ( B > B ) > B > ( coinductive_llist @ D ) )
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ ( ( A > A ) > A > ( coinductive_llist @ C ) ) @ ( ( B > B ) > B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 ) @ ( bNF_rel_fun @ ( A > A ) @ ( B > B ) @ ( A > ( coinductive_llist @ C ) ) @ ( B > ( coinductive_llist @ D ) ) @ ( bNF_rel_fun @ A @ B @ A @ B @ A3 @ A3 ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A3 @ ( coindu1486289336t_all2 @ C @ D @ B3 ) ) ) )
@ ( coindu1441602521_llist @ A @ C )
@ ( coindu1441602521_llist @ B @ D ) ) ).
% unfold_llist_transfer
thf(fact_40_map__fun__parametric,axiom,
! [A: $tType,B: $tType,E: $tType,F3: $tType,H: $tType,G2: $tType,D: $tType,C: $tType,A3: A > C > $o,B3: B > D > $o,C2: E > G2 > $o,D2: F3 > H > $o] : ( bNF_rel_fun @ ( A > B ) @ ( C > D ) @ ( ( E > F3 ) > ( B > E ) > A > F3 ) @ ( ( G2 > H ) > ( D > G2 ) > C > H ) @ ( bNF_rel_fun @ A @ C @ B @ D @ A3 @ B3 ) @ ( bNF_rel_fun @ ( E > F3 ) @ ( G2 > H ) @ ( ( B > E ) > A > F3 ) @ ( ( D > G2 ) > C > H ) @ ( bNF_rel_fun @ E @ G2 @ F3 @ H @ C2 @ D2 ) @ ( bNF_rel_fun @ ( B > E ) @ ( D > G2 ) @ ( A > F3 ) @ ( C > H ) @ ( bNF_rel_fun @ B @ D @ E @ G2 @ B3 @ C2 ) @ ( bNF_rel_fun @ A @ C @ F3 @ H @ A3 @ D2 ) ) ) @ ( map_fun @ A @ B @ E @ F3 ) @ ( map_fun @ C @ D @ G2 @ H ) ) ).
% map_fun_parametric
thf(fact_41_apply__rsp_H,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > B > $o,R2: C > D > $o,F2: A > C,G: B > D,X: A,Y5: B] :
( ( bNF_rel_fun @ A @ B @ C @ D @ R1 @ R2 @ F2 @ G )
=> ( ( R1 @ X @ Y5 )
=> ( R2 @ ( F2 @ X ) @ ( G @ Y5 ) ) ) ) ).
% apply_rsp'
thf(fact_42_tllist__of__llist__inject,axiom,
! [A: $tType,B: $tType,B4: B,Xs2: coinductive_llist @ A,C3: B,Ys2: coinductive_llist @ A] :
( ( ( tLList1672613558_llist @ B @ A @ B4 @ Xs2 )
= ( tLList1672613558_llist @ B @ A @ C3 @ Ys2 ) )
= ( ( Xs2 = Ys2 )
& ( ( coinductive_lfinite @ A @ Ys2 )
=> ( B4 = C3 ) ) ) ) ).
% tllist_of_llist_inject
thf(fact_43_let__prs,axiom,
! [C: $tType,A: $tType,B: $tType,D: $tType,R1: A > A > $o,Abs1: A > B,Rep1: B > A,R2: C > C > $o,Abs2: C > D,Rep2: D > C] :
( ( quotient3 @ A @ B @ R1 @ Abs1 @ Rep1 )
=> ( ( quotient3 @ C @ D @ R2 @ Abs2 @ Rep2 )
=> ( ( map_fun @ D @ C @ ( ( C > A ) > A ) @ ( ( D > B ) > B ) @ Rep2 @ ( map_fun @ ( D > B ) @ ( C > A ) @ A @ B @ ( map_fun @ C @ D @ B @ A @ Abs2 @ Rep1 ) @ Abs1 )
@ ^ [S: C,F: C > A] : ( F @ S ) )
= ( ^ [S: D,F: D > B] : ( F @ S ) ) ) ) ) ).
% let_prs
thf(fact_44_cond__prs,axiom,
! [A: $tType,B: $tType,R3: A > A > $o,Absf: A > B,Repf: B > A,A4: $o,B4: B,C3: B] :
( ( quotient3 @ A @ B @ R3 @ Absf @ Repf )
=> ( ( A4
=> ( ( Absf @ ( if @ A @ A4 @ ( Repf @ B4 ) @ ( Repf @ C3 ) ) )
= B4 ) )
& ( ~ A4
=> ( ( Absf @ ( if @ A @ A4 @ ( Repf @ B4 ) @ ( Repf @ C3 ) ) )
= C3 ) ) ) ) ).
% cond_prs
thf(fact_45_mem__Collect__eq,axiom,
! [A: $tType,A4: A,P: A > $o] :
( ( member @ A @ A4 @ ( collect @ A @ P ) )
= ( P @ A4 ) ) ).
% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
! [A: $tType,A3: set @ A] :
( ( collect @ A
@ ^ [X3: A] : ( member @ A @ X3 @ A3 ) )
= A3 ) ).
% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ! [X2: A] :
( ( P @ X2 )
= ( Q @ X2 ) )
=> ( ( collect @ A @ P )
= ( collect @ A @ Q ) ) ) ).
% Collect_cong
thf(fact_48_ext,axiom,
! [B: $tType,A: $tType,F2: A > B,G: A > B] :
( ! [X2: A] :
( ( F2 @ X2 )
= ( G @ X2 ) )
=> ( F2 = G ) ) ).
% ext
thf(fact_49_Quotient3I,axiom,
! [B: $tType,A: $tType,Abs: B > A,Rep: A > B,R3: B > B > $o] :
( ! [A5: A] :
( ( Abs @ ( Rep @ A5 ) )
= A5 )
=> ( ! [A5: A] : ( R3 @ ( Rep @ A5 ) @ ( Rep @ A5 ) )
=> ( ! [R4: B,S3: B] :
( ( R3 @ R4 @ S3 )
= ( ( R3 @ R4 @ R4 )
& ( R3 @ S3 @ S3 )
& ( ( Abs @ R4 )
= ( Abs @ S3 ) ) ) )
=> ( quotient3 @ B @ A @ R3 @ Abs @ Rep ) ) ) ) ).
% Quotient3I
thf(fact_50_equals__rsp,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,Xa: A,Xb: A,Ya: A,Yb: A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( R3 @ Xa @ Xb )
=> ( ( R3 @ Ya @ Yb )
=> ( ( R3 @ Xa @ Ya )
= ( R3 @ Xb @ Yb ) ) ) ) ) ).
% equals_rsp
thf(fact_51_lambda__prs,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > A > $o,Abs1: A > B,Rep1: B > A,R2: C > C > $o,Abs2: C > D,Rep2: D > C,F2: B > D] :
( ( quotient3 @ A @ B @ R1 @ Abs1 @ Rep1 )
=> ( ( quotient3 @ C @ D @ R2 @ Abs2 @ Rep2 )
=> ( ( map_fun @ B @ A @ C @ D @ Rep1 @ Abs2
@ ^ [X3: A] : ( Rep2 @ ( F2 @ ( Abs1 @ X3 ) ) ) )
= F2 ) ) ) ).
% lambda_prs
thf(fact_52_pred__funI,axiom,
! [B: $tType,A: $tType,A3: A > $o,B3: B > $o,F2: A > B] :
( ! [X2: A] :
( ( A3 @ X2 )
=> ( B3 @ ( F2 @ X2 ) ) )
=> ( basic_pred_fun @ A @ B @ A3 @ B3 @ F2 ) ) ).
% pred_funI
thf(fact_53_lambda__prs1,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > A > $o,Abs1: A > B,Rep1: B > A,R2: C > C > $o,Abs2: C > D,Rep2: D > C,F2: B > D] :
( ( quotient3 @ A @ B @ R1 @ Abs1 @ Rep1 )
=> ( ( quotient3 @ C @ D @ R2 @ Abs2 @ Rep2 )
=> ( ( map_fun @ B @ A @ C @ D @ Rep1 @ Abs2 @ ( map_fun @ A @ B @ D @ C @ Abs1 @ Rep2 @ F2 ) )
= F2 ) ) ) ).
% lambda_prs1
thf(fact_54_rep__abs__rsp,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,X12: A,X23: A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( R3 @ X12 @ X23 )
=> ( R3 @ X12 @ ( Rep @ ( Abs @ X23 ) ) ) ) ) ).
% rep_abs_rsp
thf(fact_55_Quotient3__def,axiom,
! [B: $tType,A: $tType] :
( ( quotient3 @ A @ B )
= ( ^ [R5: A > A > $o,Abs3: A > B,Rep3: B > A] :
( ! [A2: B] :
( ( Abs3 @ ( Rep3 @ A2 ) )
= A2 )
& ! [A2: B] : ( R5 @ ( Rep3 @ A2 ) @ ( Rep3 @ A2 ) )
& ! [R: A,S: A] :
( ( R5 @ R @ S )
= ( ( R5 @ R @ R )
& ( R5 @ S @ S )
& ( ( Abs3 @ R )
= ( Abs3 @ S ) ) ) ) ) ) ) ).
% Quotient3_def
thf(fact_56_Quotient3__rel,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A,S4: A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( ( R3 @ R6 @ R6 )
& ( R3 @ S4 @ S4 )
& ( ( Abs @ R6 )
= ( Abs @ S4 ) ) )
= ( R3 @ R6 @ S4 ) ) ) ).
% Quotient3_rel
thf(fact_57_fun__quotient3,axiom,
! [A: $tType,B: $tType,C: $tType,D: $tType,R1: A > A > $o,Abs12: A > B,Rep12: B > A,R2: C > C > $o,Abs22: C > D,Rep22: D > C] :
( ( quotient3 @ A @ B @ R1 @ Abs12 @ Rep12 )
=> ( ( quotient3 @ C @ D @ R2 @ Abs22 @ Rep22 )
=> ( quotient3 @ ( A > C ) @ ( B > D ) @ ( bNF_rel_fun @ A @ A @ C @ C @ R1 @ R2 ) @ ( map_fun @ B @ A @ C @ D @ Rep12 @ Abs22 ) @ ( map_fun @ A @ B @ D @ C @ Abs12 @ Rep22 ) ) ) ) ).
% fun_quotient3
thf(fact_58_Quotient3__refl1,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A,S4: A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( R3 @ R6 @ S4 )
=> ( R3 @ R6 @ R6 ) ) ) ).
% Quotient3_refl1
thf(fact_59_Quotient3__refl2,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A,S4: A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( R3 @ R6 @ S4 )
=> ( R3 @ S4 @ S4 ) ) ) ).
% Quotient3_refl2
thf(fact_60_rep__abs__rsp__left,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,X12: A,X23: A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( R3 @ X12 @ X23 )
=> ( R3 @ ( Rep @ ( Abs @ X12 ) ) @ X23 ) ) ) ).
% rep_abs_rsp_left
thf(fact_61_Quotient3__abs__rep,axiom,
! [A: $tType,B: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,A4: B] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( Abs @ ( Rep @ A4 ) )
= A4 ) ) ).
% Quotient3_abs_rep
thf(fact_62_Quotient3__rel__abs,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A,S4: A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( R3 @ R6 @ S4 )
=> ( ( Abs @ R6 )
= ( Abs @ S4 ) ) ) ) ).
% Quotient3_rel_abs
thf(fact_63_Quotient3__rel__rep,axiom,
! [A: $tType,B: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,A4: B,B4: B] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( R3 @ ( Rep @ A4 ) @ ( Rep @ B4 ) )
= ( A4 = B4 ) ) ) ).
% Quotient3_rel_rep
thf(fact_64_Quotient3__rep__abs,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,R6: A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( R3 @ R6 @ R6 )
=> ( R3 @ ( Rep @ ( Abs @ R6 ) ) @ R6 ) ) ) ).
% Quotient3_rep_abs
thf(fact_65_Quotient3__rep__reflp,axiom,
! [A: $tType,B: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,A4: B] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( R3 @ ( Rep @ A4 ) @ ( Rep @ A4 ) ) ) ).
% Quotient3_rep_reflp
thf(fact_66_corec__llist__never__stop,axiom,
! [A: $tType,B: $tType,IS_LNIL: B > $o,LHD: B > A,MORE: B > ( coinductive_llist @ A ),LTL: B > B,X: B] :
( ( coindu1259883913_llist @ B @ A @ IS_LNIL @ LHD
@ ^ [Uu: B] : $false
@ MORE
@ LTL
@ X )
= ( coindu1441602521_llist @ B @ A @ IS_LNIL @ LHD @ LTL @ X ) ) ).
% corec_llist_never_stop
thf(fact_67_fun_Orel__reflp,axiom,
! [D: $tType,A: $tType,R3: A > A > $o] :
( ( reflp @ A @ R3 )
=> ( reflp @ ( D > A )
@ ( bNF_rel_fun @ D @ D @ A @ A
@ ^ [Y: D,Z: D] : ( Y = Z )
@ R3 ) ) ) ).
% fun.rel_reflp
thf(fact_68_llist_Orel__reflp,axiom,
! [A: $tType,R3: A > A > $o] :
( ( reflp @ A @ R3 )
=> ( reflp @ ( coinductive_llist @ A ) @ ( coindu1486289336t_all2 @ A @ A @ R3 ) ) ) ).
% llist.rel_reflp
thf(fact_69_tllist_Orel__reflp,axiom,
! [A: $tType,B: $tType,R1: A > A > $o,R2: B > B > $o] :
( ( reflp @ A @ R1 )
=> ( ( reflp @ B @ R2 )
=> ( reflp @ ( tLList446370796tllist @ A @ B ) @ ( tLList1380991092t_all2 @ A @ A @ B @ B @ R1 @ R2 ) ) ) ) ).
% tllist.rel_reflp
thf(fact_70_tllist_Oabs__induct,axiom,
! [B: $tType,A: $tType,P: ( tLList446370796tllist @ A @ B ) > $o,X: tLList446370796tllist @ A @ B] :
( ! [Y2: product_prod @ ( coinductive_llist @ A ) @ B] :
( P
@ ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( tLList446370796tllist @ A @ B )
@ ^ [Xs: coinductive_llist @ A,A2: B] : ( tLList1672613558_llist @ B @ A @ A2 @ Xs )
@ Y2 ) )
=> ( P @ X ) ) ).
% tllist.abs_induct
thf(fact_71_fun_Opred__True,axiom,
! [A: $tType,D: $tType] :
( ( basic_pred_fun @ D @ A
@ ^ [Uu: D] : $true
@ ^ [Uu: A] : $true )
= ( ^ [Uu: D > A] : $true ) ) ).
% fun.pred_True
thf(fact_72_apply__rspQ3,axiom,
! [B: $tType,C: $tType,A: $tType,R1: A > A > $o,Abs1: A > B,Rep1: B > A,R2: C > C > $o,F2: A > C,G: A > C,X: A,Y5: A] :
( ( quotient3 @ A @ B @ R1 @ Abs1 @ Rep1 )
=> ( ( bNF_rel_fun @ A @ A @ C @ C @ R1 @ R2 @ F2 @ G )
=> ( ( R1 @ X @ Y5 )
=> ( R2 @ ( F2 @ X ) @ ( G @ Y5 ) ) ) ) ) ).
% apply_rspQ3
thf(fact_73_apply__rspQ3_H_H,axiom,
! [C: $tType,A: $tType,B: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A,S2: C > C > $o,F2: A > C,X: B] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( ( bNF_rel_fun @ A @ A @ C @ C @ R3 @ S2 @ F2 @ F2 )
=> ( S2 @ ( F2 @ ( Rep @ X ) ) @ ( F2 @ ( Rep @ X ) ) ) ) ) ).
% apply_rspQ3''
thf(fact_74_tllist__of__llist__cong,axiom,
! [B: $tType,A: $tType,Xs2: coinductive_llist @ A,Xs3: coinductive_llist @ A,B4: B,B6: B] :
( ( Xs2 = Xs3 )
=> ( ( ( coinductive_lfinite @ A @ Xs3 )
=> ( B4 = B6 ) )
=> ( ( tLList1672613558_llist @ B @ A @ B4 @ Xs2 )
= ( tLList1672613558_llist @ B @ A @ B6 @ Xs3 ) ) ) ) ).
% tllist_of_llist_cong
thf(fact_75_quot__rel__rsp,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Abs: A > B,Rep: B > A] :
( ( quotient3 @ A @ B @ R3 @ Abs @ Rep )
=> ( bNF_rel_fun @ A @ A @ ( A > $o ) @ ( A > $o ) @ R3
@ ( bNF_rel_fun @ A @ A @ $o @ $o @ R3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ R3
@ R3 ) ) ).
% quot_rel_rsp
thf(fact_76_cr__tllist__def,axiom,
! [B: $tType,A: $tType] :
( ( tLList47617868tllist @ A @ B )
= ( product_case_prod @ ( coinductive_llist @ A ) @ B @ ( ( tLList446370796tllist @ A @ B ) > $o )
@ ^ [Xs: coinductive_llist @ A,B2: B] :
( ^ [Y: tLList446370796tllist @ A @ B,Z: tLList446370796tllist @ A @ B] : ( Y = Z )
@ ( tLList1672613558_llist @ B @ A @ B2 @ Xs ) ) ) ) ).
% cr_tllist_def
thf(fact_77_map__fun__apply,axiom,
! [D: $tType,A: $tType,C: $tType,B: $tType] :
( ( map_fun @ B @ C @ D @ A )
= ( ^ [F: B > C,G3: D > A,H3: C > D,X3: B] : ( G3 @ ( H3 @ ( F @ X3 ) ) ) ) ) ).
% map_fun_apply
thf(fact_78_tllist_Ocase__transfer,axiom,
! [B: $tType,E: $tType,A: $tType,C: $tType,F3: $tType,D: $tType,R2: B > D > $o,S2: E > F3 > $o,R1: A > C > $o] : ( bNF_rel_fun @ ( B > E ) @ ( D > F3 ) @ ( ( A > ( tLList446370796tllist @ A @ B ) > E ) > ( tLList446370796tllist @ A @ B ) > E ) @ ( ( C > ( tLList446370796tllist @ C @ D ) > F3 ) > ( tLList446370796tllist @ C @ D ) > F3 ) @ ( bNF_rel_fun @ B @ D @ E @ F3 @ R2 @ S2 ) @ ( bNF_rel_fun @ ( A > ( tLList446370796tllist @ A @ B ) > E ) @ ( C > ( tLList446370796tllist @ C @ D ) > F3 ) @ ( ( tLList446370796tllist @ A @ B ) > E ) @ ( ( tLList446370796tllist @ C @ D ) > F3 ) @ ( bNF_rel_fun @ A @ C @ ( ( tLList446370796tllist @ A @ B ) > E ) @ ( ( tLList446370796tllist @ C @ D ) > F3 ) @ R1 @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ E @ F3 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) @ S2 ) ) @ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ E @ F3 @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) @ S2 ) ) @ ( tLList200813139tllist @ B @ E @ A ) @ ( tLList200813139tllist @ D @ F3 @ C ) ) ).
% tllist.case_transfer
thf(fact_79_tllist_Opred__transfer,axiom,
! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R2: B > D > $o] :
( bNF_rel_fun @ ( A > $o ) @ ( C > $o ) @ ( ( B > $o ) > ( tLList446370796tllist @ A @ B ) > $o ) @ ( ( D > $o ) > ( tLList446370796tllist @ C @ D ) > $o )
@ ( bNF_rel_fun @ A @ C @ $o @ $o @ R1
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( B > $o ) @ ( D > $o ) @ ( ( tLList446370796tllist @ A @ B ) > $o ) @ ( ( tLList446370796tllist @ C @ D ) > $o )
@ ( bNF_rel_fun @ B @ D @ $o @ $o @ R2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ $o @ $o @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( tLList11265572tllist @ A @ B )
@ ( tLList11265572tllist @ C @ D ) ) ).
% tllist.pred_transfer
thf(fact_80_iterates__transfer,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] : ( bNF_rel_fun @ ( A > A ) @ ( B > B ) @ ( A > ( coinductive_llist @ A ) ) @ ( B > ( coinductive_llist @ B ) ) @ ( bNF_rel_fun @ A @ B @ A @ B @ A3 @ A3 ) @ ( bNF_rel_fun @ A @ B @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ A3 @ ( coindu1486289336t_all2 @ A @ B @ A3 ) ) @ ( coinductive_iterates @ A ) @ ( coinductive_iterates @ B ) ) ).
% iterates_transfer
thf(fact_81_llist__all__transfer,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > $o )
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ A3 )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( coindu543516966_llist @ A )
@ ( coindu543516966_llist @ B ) ) ).
% llist_all_transfer
thf(fact_82_llist_Opred__transfer,axiom,
! [A: $tType,B: $tType,R3: A > B > $o] :
( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( coinductive_llist @ A ) > $o ) @ ( ( coinductive_llist @ B ) > $o )
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ R3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ $o @ $o @ ( coindu1486289336t_all2 @ A @ B @ R3 )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( coindu543516966_llist @ A )
@ ( coindu543516966_llist @ B ) ) ).
% llist.pred_transfer
thf(fact_83_tllist_Oid__abs__transfer,axiom,
! [G2: $tType,H: $tType,J: $tType,I: $tType,T: G2 > I > $o,Ta: H > J > $o] :
( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( product_prod @ ( coinductive_llist @ I ) @ J ) @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( tLList446370796tllist @ I @ J ) @ ( basic_rel_prod @ ( coinductive_llist @ G2 ) @ ( coinductive_llist @ I ) @ H @ J @ ( coindu1486289336t_all2 @ G2 @ I @ T ) @ Ta ) @ ( tLList1832236142tllist @ G2 @ I @ H @ J @ T @ Ta )
@ ^ [X3: product_prod @ ( coinductive_llist @ G2 ) @ H] : X3
@ ( product_case_prod @ ( coinductive_llist @ I ) @ J @ ( tLList446370796tllist @ I @ J )
@ ^ [Xs: coinductive_llist @ I,A2: J] : ( tLList1672613558_llist @ J @ I @ A2 @ Xs ) ) ) ).
% tllist.id_abs_transfer
thf(fact_84_llist_Ocase__transfer,axiom,
! [C: $tType,A: $tType,B: $tType,D: $tType,S2: C > D > $o,R3: A > B > $o] : ( bNF_rel_fun @ C @ D @ ( ( A > ( coinductive_llist @ A ) > C ) > ( coinductive_llist @ A ) > C ) @ ( ( B > ( coinductive_llist @ B ) > D ) > ( coinductive_llist @ B ) > D ) @ S2 @ ( bNF_rel_fun @ ( A > ( coinductive_llist @ A ) > C ) @ ( B > ( coinductive_llist @ B ) > D ) @ ( ( coinductive_llist @ A ) > C ) @ ( ( coinductive_llist @ B ) > D ) @ ( bNF_rel_fun @ A @ B @ ( ( coinductive_llist @ A ) > C ) @ ( ( coinductive_llist @ B ) > D ) @ R3 @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ C @ D @ ( coindu1486289336t_all2 @ A @ B @ R3 ) @ S2 ) ) @ ( bNF_rel_fun @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ C @ D @ ( coindu1486289336t_all2 @ A @ B @ R3 ) @ S2 ) ) @ ( coindu1381640503_llist @ C @ A ) @ ( coindu1381640503_llist @ D @ B ) ) ).
% llist.case_transfer
thf(fact_85_prod_Orel__refl,axiom,
! [D: $tType,C: $tType,R1a: C > C > $o,R2a: D > D > $o,X: product_prod @ C @ D] :
( ! [X2: C] : ( R1a @ X2 @ X2 )
=> ( ! [X2: D] : ( R2a @ X2 @ X2 )
=> ( basic_rel_prod @ C @ C @ D @ D @ R1a @ R2a @ X @ X ) ) ) ).
% prod.rel_refl
thf(fact_86_prod_Orel__eq,axiom,
! [B: $tType,A: $tType] :
( ( basic_rel_prod @ A @ A @ B @ B
@ ^ [Y: A,Z: A] : ( Y = Z )
@ ^ [Y: B,Z: B] : ( Y = Z ) )
= ( ^ [Y: product_prod @ A @ B,Z: product_prod @ A @ B] : ( Y = Z ) ) ) ).
% prod.rel_eq
thf(fact_87_llist_Ocase__distrib,axiom,
! [B: $tType,C: $tType,A: $tType,H2: B > C,F1: B,F22: A > ( coinductive_llist @ A ) > B,Llist: coinductive_llist @ A] :
( ( H2 @ ( coindu1381640503_llist @ B @ A @ F1 @ F22 @ Llist ) )
= ( coindu1381640503_llist @ C @ A @ ( H2 @ F1 )
@ ^ [X1: A,X22: coinductive_llist @ A] : ( H2 @ ( F22 @ X1 @ X22 ) )
@ Llist ) ) ).
% llist.case_distrib
thf(fact_88_llist_Opred__True,axiom,
! [A: $tType] :
( ( coindu543516966_llist @ A
@ ^ [Uu: A] : $true )
= ( ^ [Uu: coinductive_llist @ A] : $true ) ) ).
% llist.pred_True
thf(fact_89_tllist_Opred__True,axiom,
! [B: $tType,A: $tType] :
( ( tLList11265572tllist @ A @ B
@ ^ [Uu: A] : $true
@ ^ [Uu: B] : $true )
= ( ^ [Uu: tLList446370796tllist @ A @ B] : $true ) ) ).
% tllist.pred_True
thf(fact_90_tllist_Ocase__distrib,axiom,
! [C: $tType,D: $tType,B: $tType,A: $tType,H2: C > D,F1: B > C,F22: A > ( tLList446370796tllist @ A @ B ) > C,Tllist: tLList446370796tllist @ A @ B] :
( ( H2 @ ( tLList200813139tllist @ B @ C @ A @ F1 @ F22 @ Tllist ) )
= ( tLList200813139tllist @ B @ D @ A
@ ^ [X3: B] : ( H2 @ ( F1 @ X3 ) )
@ ^ [X1: A,X22: tLList446370796tllist @ A @ B] : ( H2 @ ( F22 @ X1 @ X22 ) )
@ Tllist ) ) ).
% tllist.case_distrib
thf(fact_91_lfinite__iterates,axiom,
! [A: $tType,F2: A > A,X: A] :
~ ( coinductive_lfinite @ A @ ( coinductive_iterates @ A @ F2 @ X ) ) ).
% lfinite_iterates
thf(fact_92_prod_Orel__transfer,axiom,
! [A: $tType,C: $tType,B: $tType,D: $tType,H: $tType,F3: $tType,G2: $tType,E: $tType,S1a: A > E > $o,S1c: C > G2 > $o,S2a: B > F3 > $o,S2c: D > H > $o] :
( bNF_rel_fun @ ( A > C > $o ) @ ( E > G2 > $o ) @ ( ( B > D > $o ) > ( product_prod @ A @ B ) > ( product_prod @ C @ D ) > $o ) @ ( ( F3 > H > $o ) > ( product_prod @ E @ F3 ) > ( product_prod @ G2 @ H ) > $o )
@ ( bNF_rel_fun @ A @ E @ ( C > $o ) @ ( G2 > $o ) @ S1a
@ ( bNF_rel_fun @ C @ G2 @ $o @ $o @ S1c
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( B > D > $o ) @ ( F3 > H > $o ) @ ( ( product_prod @ A @ B ) > ( product_prod @ C @ D ) > $o ) @ ( ( product_prod @ E @ F3 ) > ( product_prod @ G2 @ H ) > $o )
@ ( bNF_rel_fun @ B @ F3 @ ( D > $o ) @ ( H > $o ) @ S2a
@ ( bNF_rel_fun @ D @ H @ $o @ $o @ S2c
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( product_prod @ A @ B ) @ ( product_prod @ E @ F3 ) @ ( ( product_prod @ C @ D ) > $o ) @ ( ( product_prod @ G2 @ H ) > $o ) @ ( basic_rel_prod @ A @ E @ B @ F3 @ S1a @ S2a )
@ ( bNF_rel_fun @ ( product_prod @ C @ D ) @ ( product_prod @ G2 @ H ) @ $o @ $o @ ( basic_rel_prod @ C @ G2 @ D @ H @ S1c @ S2c )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) ) )
@ ( basic_rel_prod @ A @ C @ B @ D )
@ ( basic_rel_prod @ E @ G2 @ F3 @ H ) ) ).
% prod.rel_transfer
thf(fact_93_rel__prod__conv,axiom,
! [B: $tType,D: $tType,C: $tType,A: $tType] :
( ( basic_rel_prod @ A @ C @ B @ D )
= ( ^ [R12: A > C > $o,R22: B > D > $o] :
( product_case_prod @ A @ B @ ( ( product_prod @ C @ D ) > $o )
@ ^ [A2: A,B2: B] :
( product_case_prod @ C @ D @ $o
@ ^ [C4: C,D3: D] :
( ( R12 @ A2 @ C4 )
& ( R22 @ B2 @ D3 ) ) ) ) ) ) ).
% rel_prod_conv
thf(fact_94_case__prod__transfer,axiom,
! [A: $tType,B: $tType,C: $tType,F3: $tType,E: $tType,D: $tType,A3: A > D > $o,B3: B > E > $o,C2: C > F3 > $o] : ( bNF_rel_fun @ ( A > B > C ) @ ( D > E > F3 ) @ ( ( product_prod @ A @ B ) > C ) @ ( ( product_prod @ D @ E ) > F3 ) @ ( bNF_rel_fun @ A @ D @ ( B > C ) @ ( E > F3 ) @ A3 @ ( bNF_rel_fun @ B @ E @ C @ F3 @ B3 @ C2 ) ) @ ( bNF_rel_fun @ ( product_prod @ A @ B ) @ ( product_prod @ D @ E ) @ C @ F3 @ ( basic_rel_prod @ A @ D @ B @ E @ A3 @ B3 ) @ C2 ) @ ( product_case_prod @ A @ B @ C ) @ ( product_case_prod @ D @ E @ F3 ) ) ).
% case_prod_transfer
thf(fact_95_prod_Orel__reflp,axiom,
! [A: $tType,B: $tType,R1: A > A > $o,R2: B > B > $o] :
( ( reflp @ A @ R1 )
=> ( ( reflp @ B @ R2 )
=> ( reflp @ ( product_prod @ A @ B ) @ ( basic_rel_prod @ A @ A @ B @ B @ R1 @ R2 ) ) ) ) ).
% prod.rel_reflp
thf(fact_96_case__llist__transfer,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,B3: A > B > $o,A3: C > D > $o] : ( bNF_rel_fun @ A @ B @ ( ( C > ( coinductive_llist @ C ) > A ) > ( coinductive_llist @ C ) > A ) @ ( ( D > ( coinductive_llist @ D ) > B ) > ( coinductive_llist @ D ) > B ) @ B3 @ ( bNF_rel_fun @ ( C > ( coinductive_llist @ C ) > A ) @ ( D > ( coinductive_llist @ D ) > B ) @ ( ( coinductive_llist @ C ) > A ) @ ( ( coinductive_llist @ D ) > B ) @ ( bNF_rel_fun @ C @ D @ ( ( coinductive_llist @ C ) > A ) @ ( ( coinductive_llist @ D ) > B ) @ A3 @ ( bNF_rel_fun @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A @ B @ ( coindu1486289336t_all2 @ C @ D @ A3 ) @ B3 ) ) @ ( bNF_rel_fun @ ( coinductive_llist @ C ) @ ( coinductive_llist @ D ) @ A @ B @ ( coindu1486289336t_all2 @ C @ D @ A3 ) @ B3 ) ) @ ( coindu1381640503_llist @ A @ C ) @ ( coindu1381640503_llist @ B @ D ) ) ).
% case_llist_transfer
thf(fact_97_pcr__tllist__def,axiom,
! [D: $tType,B: $tType,A: $tType,C: $tType] :
( ( tLList1832236142tllist @ C @ A @ D @ B )
= ( ^ [T2: C > A > $o,Ta2: D > B > $o] : ( relcompp @ ( product_prod @ ( coinductive_llist @ C ) @ D ) @ ( product_prod @ ( coinductive_llist @ A ) @ B ) @ ( tLList446370796tllist @ A @ B ) @ ( basic_rel_prod @ ( coinductive_llist @ C ) @ ( coinductive_llist @ A ) @ D @ B @ ( coindu1486289336t_all2 @ C @ A @ T2 ) @ Ta2 ) @ ( tLList47617868tllist @ A @ B ) ) ) ) ).
% pcr_tllist_def
thf(fact_98_curry__transfer,axiom,
! [A: $tType,B: $tType,C: $tType,F3: $tType,E: $tType,D: $tType,A3: A > D > $o,B3: B > E > $o,C2: C > F3 > $o] : ( bNF_rel_fun @ ( ( product_prod @ A @ B ) > C ) @ ( ( product_prod @ D @ E ) > F3 ) @ ( A > B > C ) @ ( D > E > F3 ) @ ( bNF_rel_fun @ ( product_prod @ A @ B ) @ ( product_prod @ D @ E ) @ C @ F3 @ ( basic_rel_prod @ A @ D @ B @ E @ A3 @ B3 ) @ C2 ) @ ( bNF_rel_fun @ A @ D @ ( B > C ) @ ( E > F3 ) @ A3 @ ( bNF_rel_fun @ B @ E @ C @ F3 @ B3 @ C2 ) ) @ ( product_curry @ A @ B @ C ) @ ( product_curry @ D @ E @ F3 ) ) ).
% curry_transfer
thf(fact_99_bex1__rel__rsp,axiom,
! [B: $tType,A: $tType,R3: A > A > $o,Absf: A > B,Repf: B > A] :
( ( quotient3 @ A @ B @ R3 @ Absf @ Repf )
=> ( bNF_rel_fun @ ( A > $o ) @ ( A > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ A @ $o @ $o @ R3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( bex1_rel @ A @ R3 )
@ ( bex1_rel @ A @ R3 ) ) ) ).
% bex1_rel_rsp
thf(fact_100_reflpD,axiom,
! [A: $tType,R6: A > A > $o,X: A] :
( ( reflp @ A @ R6 )
=> ( R6 @ X @ X ) ) ).
% reflpD
thf(fact_101_reflpE,axiom,
! [A: $tType,R6: A > A > $o,X: A] :
( ( reflp @ A @ R6 )
=> ( R6 @ X @ X ) ) ).
% reflpE
thf(fact_102_reflpI,axiom,
! [A: $tType,R6: A > A > $o] :
( ! [X2: A] : ( R6 @ X2 @ X2 )
=> ( reflp @ A @ R6 ) ) ).
% reflpI
thf(fact_103_case__prod__curry,axiom,
! [C: $tType,B: $tType,A: $tType,F2: ( product_prod @ A @ B ) > C] :
( ( product_case_prod @ A @ B @ C @ ( product_curry @ A @ B @ C @ F2 ) )
= F2 ) ).
% case_prod_curry
thf(fact_104_curry__case__prod,axiom,
! [C: $tType,B: $tType,A: $tType,F2: A > B > C] :
( ( product_curry @ A @ B @ C @ ( product_case_prod @ A @ B @ C @ F2 ) )
= F2 ) ).
% curry_case_prod
thf(fact_105_fun_Orel__compp,axiom,
! [A: $tType,D: $tType,C: $tType,B: $tType,R3: A > B > $o,S2: B > C > $o] :
( ( bNF_rel_fun @ D @ D @ A @ C
@ ^ [Y: D,Z: D] : ( Y = Z )
@ ( relcompp @ A @ B @ C @ R3 @ S2 ) )
= ( relcompp @ ( D > A ) @ ( D > B ) @ ( D > C )
@ ( bNF_rel_fun @ D @ D @ A @ B
@ ^ [Y: D,Z: D] : ( Y = Z )
@ R3 )
@ ( bNF_rel_fun @ D @ D @ B @ C
@ ^ [Y: D,Z: D] : ( Y = Z )
@ S2 ) ) ) ).
% fun.rel_compp
thf(fact_106_prod_Orel__compp,axiom,
! [B: $tType,A: $tType,C: $tType,E: $tType,F3: $tType,D: $tType,R1: A > C > $o,S1: C > E > $o,R2: B > D > $o,S22: D > F3 > $o] :
( ( basic_rel_prod @ A @ E @ B @ F3 @ ( relcompp @ A @ C @ E @ R1 @ S1 ) @ ( relcompp @ B @ D @ F3 @ R2 @ S22 ) )
= ( relcompp @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( product_prod @ E @ F3 ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) @ ( basic_rel_prod @ C @ E @ D @ F3 @ S1 @ S22 ) ) ) ).
% prod.rel_compp
thf(fact_107_eq__comp__r,axiom,
! [A: $tType,R3: A > A > $o] :
( ( relcompp @ A @ A @ A
@ ^ [Y: A,Z: A] : ( Y = Z )
@ ( relcompp @ A @ A @ A @ R3
@ ^ [Y: A,Z: A] : ( Y = Z ) ) )
= R3 ) ).
% eq_comp_r
thf(fact_108_bex1__rel__aux,axiom,
! [A: $tType,R3: A > A > $o,X: A > $o,Y5: A > $o] :
( ! [Xa2: A,Ya2: A] :
( ( R3 @ Xa2 @ Ya2 )
=> ( ( X @ Xa2 )
= ( Y5 @ Ya2 ) ) )
=> ( ( bex1_rel @ A @ R3 @ X )
=> ( bex1_rel @ A @ R3 @ Y5 ) ) ) ).
% bex1_rel_aux
thf(fact_109_bex1__rel__aux2,axiom,
! [A: $tType,R3: A > A > $o,X: A > $o,Y5: A > $o] :
( ! [Xa2: A,Ya2: A] :
( ( R3 @ Xa2 @ Ya2 )
=> ( ( X @ Xa2 )
= ( Y5 @ Ya2 ) ) )
=> ( ( bex1_rel @ A @ R3 @ Y5 )
=> ( bex1_rel @ A @ R3 @ X ) ) ) ).
% bex1_rel_aux2
thf(fact_110_llist_Orel__compp,axiom,
! [A: $tType,C: $tType,B: $tType,R3: A > B > $o,S2: B > C > $o] :
( ( coindu1486289336t_all2 @ A @ C @ ( relcompp @ A @ B @ C @ R3 @ S2 ) )
= ( relcompp @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coinductive_llist @ C ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) @ ( coindu1486289336t_all2 @ B @ C @ S2 ) ) ) ).
% llist.rel_compp
thf(fact_111_tllist_Orel__compp,axiom,
! [B: $tType,A: $tType,C: $tType,E: $tType,F3: $tType,D: $tType,R1: A > C > $o,S1: C > E > $o,R2: B > D > $o,S22: D > F3 > $o] :
( ( tLList1380991092t_all2 @ A @ E @ B @ F3 @ ( relcompp @ A @ C @ E @ R1 @ S1 ) @ ( relcompp @ B @ D @ F3 @ R2 @ S22 ) )
= ( relcompp @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList446370796tllist @ E @ F3 ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) @ ( tLList1380991092t_all2 @ C @ E @ D @ F3 @ S1 @ S22 ) ) ) ).
% tllist.rel_compp
thf(fact_112_relcompp_OrelcompI,axiom,
! [A: $tType,B: $tType,C: $tType,R6: A > B > $o,A4: A,B4: B,S4: B > C > $o,C3: C] :
( ( R6 @ A4 @ B4 )
=> ( ( S4 @ B4 @ C3 )
=> ( relcompp @ A @ B @ C @ R6 @ S4 @ A4 @ C3 ) ) ) ).
% relcompp.relcompI
thf(fact_113_relcompp_Oinducts,axiom,
! [B: $tType,A: $tType,C: $tType,R6: A > B > $o,S4: B > C > $o,X12: A,X23: C,P: A > C > $o] :
( ( relcompp @ A @ B @ C @ R6 @ S4 @ X12 @ X23 )
=> ( ! [A5: A,B5: B,C5: C] :
( ( R6 @ A5 @ B5 )
=> ( ( S4 @ B5 @ C5 )
=> ( P @ A5 @ C5 ) ) )
=> ( P @ X12 @ X23 ) ) ) ).
% relcompp.inducts
thf(fact_114_relcompp__assoc,axiom,
! [A: $tType,D: $tType,B: $tType,C: $tType,R6: A > D > $o,S4: D > C > $o,T3: C > B > $o] :
( ( relcompp @ A @ C @ B @ ( relcompp @ A @ D @ C @ R6 @ S4 ) @ T3 )
= ( relcompp @ A @ D @ B @ R6 @ ( relcompp @ D @ C @ B @ S4 @ T3 ) ) ) ).
% relcompp_assoc
thf(fact_115_relcompp__apply,axiom,
! [C: $tType,B: $tType,A: $tType] :
( ( relcompp @ A @ B @ C )
= ( ^ [R5: A > B > $o,S5: B > C > $o,A2: A,C4: C] :
? [B2: B] :
( ( R5 @ A2 @ B2 )
& ( S5 @ B2 @ C4 ) ) ) ) ).
% relcompp_apply
thf(fact_116_relcompp_Osimps,axiom,
! [C: $tType,B: $tType,A: $tType] :
( ( relcompp @ A @ B @ C )
= ( ^ [R: A > B > $o,S: B > C > $o,A1: A,A22: C] :
? [A2: A,B2: B,C4: C] :
( ( A1 = A2 )
& ( A22 = C4 )
& ( R @ A2 @ B2 )
& ( S @ B2 @ C4 ) ) ) ) ).
% relcompp.simps
thf(fact_117_relcompp_Ocases,axiom,
! [A: $tType,B: $tType,C: $tType,R6: A > B > $o,S4: B > C > $o,A12: A,A23: C] :
( ( relcompp @ A @ B @ C @ R6 @ S4 @ A12 @ A23 )
=> ~ ! [B5: B] :
( ( R6 @ A12 @ B5 )
=> ~ ( S4 @ B5 @ A23 ) ) ) ).
% relcompp.cases
thf(fact_118_relcomppE,axiom,
! [A: $tType,B: $tType,C: $tType,R6: A > B > $o,S4: B > C > $o,A4: A,C3: C] :
( ( relcompp @ A @ B @ C @ R6 @ S4 @ A4 @ C3 )
=> ~ ! [B5: B] :
( ( R6 @ A4 @ B5 )
=> ~ ( S4 @ B5 @ C3 ) ) ) ).
% relcomppE
thf(fact_119_eq__OO,axiom,
! [B: $tType,A: $tType,R3: A > B > $o] :
( ( relcompp @ A @ A @ B
@ ^ [Y: A,Z: A] : ( Y = Z )
@ R3 )
= R3 ) ).
% eq_OO
thf(fact_120_OO__eq,axiom,
! [B: $tType,A: $tType,R3: A > B > $o] :
( ( relcompp @ A @ B @ B @ R3
@ ^ [Y: B,Z: B] : ( Y = Z ) )
= R3 ) ).
% OO_eq
thf(fact_121_curry__K,axiom,
! [B: $tType,C: $tType,A: $tType,C3: C] :
( ( product_curry @ A @ B @ C
@ ^ [X3: product_prod @ A @ B] : C3 )
= ( ^ [X3: A,Y3: B] : C3 ) ) ).
% curry_K
thf(fact_122_reflp__mono,axiom,
! [A: $tType,R3: A > A > $o,Q: A > A > $o] :
( ( reflp @ A @ R3 )
=> ( ! [X2: A,Y2: A] :
( ( R3 @ X2 @ Y2 )
=> ( Q @ X2 @ Y2 ) )
=> ( reflp @ A @ Q ) ) ) ).
% reflp_mono
thf(fact_123_reflp__def,axiom,
! [A: $tType] :
( ( reflp @ A )
= ( ^ [R: A > A > $o] :
! [X3: A] : ( R @ X3 @ X3 ) ) ) ).
% reflp_def
thf(fact_124_relcompp__transfer,axiom,
! [C: $tType,A: $tType,E: $tType,F3: $tType,B: $tType,D: $tType,B3: A > B > $o,A3: C > D > $o,C2: E > F3 > $o] :
( ( bi_total @ A @ B @ B3 )
=> ( bNF_rel_fun @ ( C > A > $o ) @ ( D > B > $o ) @ ( ( A > E > $o ) > C > E > $o ) @ ( ( B > F3 > $o ) > D > F3 > $o )
@ ( bNF_rel_fun @ C @ D @ ( A > $o ) @ ( B > $o ) @ A3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( A > E > $o ) @ ( B > F3 > $o ) @ ( C > E > $o ) @ ( D > F3 > $o )
@ ( bNF_rel_fun @ A @ B @ ( E > $o ) @ ( F3 > $o ) @ B3
@ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ C2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ C @ D @ ( E > $o ) @ ( F3 > $o ) @ A3
@ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ C2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) ) )
@ ( relcompp @ C @ A @ E )
@ ( relcompp @ D @ B @ F3 ) ) ) ).
% relcompp_transfer
thf(fact_125_sndOp__in,axiom,
! [A: $tType,B: $tType,C: $tType,Ac: product_prod @ A @ B,P: A > C > $o,Q: C > B > $o] :
( ( member @ ( product_prod @ A @ B ) @ Ac @ ( collect @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ ( relcompp @ A @ C @ B @ P @ Q ) ) ) )
=> ( member @ ( product_prod @ C @ B ) @ ( bNF_sndOp @ A @ C @ B @ P @ Q @ Ac ) @ ( collect @ ( product_prod @ C @ B ) @ ( product_case_prod @ C @ B @ $o @ Q ) ) ) ) ).
% sndOp_in
thf(fact_126_fstOp__in,axiom,
! [B: $tType,C: $tType,A: $tType,Ac: product_prod @ A @ B,P: A > C > $o,Q: C > B > $o] :
( ( member @ ( product_prod @ A @ B ) @ Ac @ ( collect @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ ( relcompp @ A @ C @ B @ P @ Q ) ) ) )
=> ( member @ ( product_prod @ A @ C ) @ ( bNF_fstOp @ A @ C @ B @ P @ Q @ Ac ) @ ( collect @ ( product_prod @ A @ C ) @ ( product_case_prod @ A @ C @ $o @ P ) ) ) ) ).
% fstOp_in
thf(fact_127_prod__pred__parametric,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ ( ( C > $o ) > ( product_prod @ A @ C ) > $o ) @ ( ( D > $o ) > ( product_prod @ B @ D ) > $o )
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( C > $o ) @ ( D > $o ) @ ( ( product_prod @ A @ C ) > $o ) @ ( ( product_prod @ B @ D ) > $o )
@ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( product_prod @ A @ C ) @ ( product_prod @ B @ D ) @ $o @ $o @ ( basic_rel_prod @ A @ B @ C @ D @ A3 @ B3 )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( basic_pred_prod @ A @ C )
@ ( basic_pred_prod @ B @ D ) ) ).
% prod_pred_parametric
thf(fact_128_prod_Opred__transfer,axiom,
! [A: $tType,B: $tType,D: $tType,C: $tType,R1: A > C > $o,R2: B > D > $o] :
( bNF_rel_fun @ ( A > $o ) @ ( C > $o ) @ ( ( B > $o ) > ( product_prod @ A @ B ) > $o ) @ ( ( D > $o ) > ( product_prod @ C @ D ) > $o )
@ ( bNF_rel_fun @ A @ C @ $o @ $o @ R1
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( B > $o ) @ ( D > $o ) @ ( ( product_prod @ A @ B ) > $o ) @ ( ( product_prod @ C @ D ) > $o )
@ ( bNF_rel_fun @ B @ D @ $o @ $o @ R2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( bNF_rel_fun @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ $o @ $o @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( basic_pred_prod @ A @ B )
@ ( basic_pred_prod @ C @ D ) ) ).
% prod.pred_transfer
thf(fact_129_prod_Obi__total__rel,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
( ( bi_total @ A @ C @ R1 )
=> ( ( bi_total @ B @ D @ R2 )
=> ( bi_total @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).
% prod.bi_total_rel
thf(fact_130_llist_Obi__total__rel,axiom,
! [B: $tType,A: $tType,R3: A > B > $o] :
( ( bi_total @ A @ B @ R3 )
=> ( bi_total @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) ) ).
% llist.bi_total_rel
thf(fact_131_tllist_Obi__total__rel,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
( ( bi_total @ A @ C @ R1 )
=> ( ( bi_total @ B @ D @ R2 )
=> ( bi_total @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).
% tllist.bi_total_rel
thf(fact_132_tllist_Obi__total,axiom,
! [G2: $tType,I: $tType,J: $tType,H: $tType,T: G2 > I > $o,Ta: H > J > $o] :
( ( bi_total @ G2 @ I @ T )
=> ( ( bi_total @ H @ J @ Ta )
=> ( bi_total @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( tLList446370796tllist @ I @ J ) @ ( tLList1832236142tllist @ G2 @ I @ H @ J @ T @ Ta ) ) ) ) ).
% tllist.bi_total
thf(fact_133_bi__total__def,axiom,
! [B: $tType,A: $tType] :
( ( bi_total @ A @ B )
= ( ^ [R5: A > B > $o] :
( ! [X3: A] :
( ^ [P3: B > $o] :
? [X5: B] : ( P3 @ X5 )
@ ( R5 @ X3 ) )
& ! [Y3: B] :
? [X3: A] : ( R5 @ X3 @ Y3 ) ) ) ) ).
% bi_total_def
thf(fact_134_bi__total__eq,axiom,
! [A: $tType] :
( bi_total @ A @ A
@ ^ [Y: A,Z: A] : ( Y = Z ) ) ).
% bi_total_eq
thf(fact_135_prod_Opred__True,axiom,
! [B: $tType,A: $tType] :
( ( basic_pred_prod @ A @ B
@ ^ [Uu: A] : $true
@ ^ [Uu: B] : $true )
= ( ^ [Uu: product_prod @ A @ B] : $true ) ) ).
% prod.pred_True
thf(fact_136_bi__total__OO,axiom,
! [A: $tType,C: $tType,B: $tType,A3: A > B > $o,B3: B > C > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( ( bi_total @ B @ C @ B3 )
=> ( bi_total @ A @ C @ ( relcompp @ A @ B @ C @ A3 @ B3 ) ) ) ) ).
% bi_total_OO
thf(fact_137_reflp__transfer_I1_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( reflp @ A )
@ ( reflp @ B ) ) ) ).
% reflp_transfer(1)
thf(fact_138_reflp__transfer_I4_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3 @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3 @ rev_implies ) ) @ rev_implies @ ( reflp @ A ) @ ( reflp @ B ) ) ) ).
% reflp_transfer(4)
thf(fact_139_reflp__transfer_I5_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ rev_implies
@ ( reflp @ A )
@ ( reflp @ B ) ) ) ).
% reflp_transfer(5)
thf(fact_140_fun__ord__parametric,axiom,
! [C: $tType,D: $tType,A: $tType,B: $tType,F3: $tType,E: $tType,C2: A > B > $o,A3: C > E > $o,B3: D > F3 > $o] :
( ( bi_total @ A @ B @ C2 )
=> ( bNF_rel_fun @ ( C > D > $o ) @ ( E > F3 > $o ) @ ( ( A > C ) > ( A > D ) > $o ) @ ( ( B > E ) > ( B > F3 ) > $o )
@ ( bNF_rel_fun @ C @ E @ ( D > $o ) @ ( F3 > $o ) @ A3
@ ( bNF_rel_fun @ D @ F3 @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( A > C ) @ ( B > E ) @ ( ( A > D ) > $o ) @ ( ( B > F3 ) > $o ) @ ( bNF_rel_fun @ A @ B @ C @ E @ C2 @ A3 )
@ ( bNF_rel_fun @ ( A > D ) @ ( B > F3 ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ D @ F3 @ C2 @ B3 )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( partial_fun_ord @ C @ D @ A )
@ ( partial_fun_ord @ E @ F3 @ B ) ) ) ).
% fun_ord_parametric
thf(fact_141_transfer__forall__transfer_I1_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( transfer_forall @ A )
@ ( transfer_forall @ B ) ) ) ).
% transfer_forall_transfer(1)
thf(fact_142_rev__implies__def,axiom,
( rev_implies
= ( ^ [X3: $o,Y3: $o] :
( Y3
=> X3 ) ) ) ).
% rev_implies_def
thf(fact_143_transfer__forall__transfer_I4_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ rev_implies
@ ( transfer_forall @ A )
@ ( transfer_forall @ B ) ) ) ).
% transfer_forall_transfer(4)
thf(fact_144_transfer__forall__transfer_I5_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3 @ rev_implies ) @ rev_implies @ ( transfer_forall @ A ) @ ( transfer_forall @ B ) ) ) ).
% transfer_forall_transfer(5)
thf(fact_145_left__total__parametric,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( ( bi_total @ C @ D @ B3 )
=> ( bNF_rel_fun @ ( A > C > $o ) @ ( B > D > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ ( C > $o ) @ ( D > $o ) @ A3
@ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( left_total @ A @ C )
@ ( left_total @ B @ D ) ) ) ) ).
% left_total_parametric
thf(fact_146_monotone__parametric,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ ( ( C > C > $o ) > ( A > C ) > $o ) @ ( ( D > D > $o ) > ( B > D ) > $o )
@ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( C > C > $o ) @ ( D > D > $o ) @ ( ( A > C ) > $o ) @ ( ( B > D ) > $o )
@ ( bNF_rel_fun @ C @ D @ ( C > $o ) @ ( D > $o ) @ B3
@ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( comple1396247847notone @ A @ C )
@ ( comple1396247847notone @ B @ D ) ) ) ).
% monotone_parametric
thf(fact_147_reflp__transfer_I3_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( right_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ (=>)
@ ( reflp @ A )
@ ( reflp @ B ) ) ) ).
% reflp_transfer(3)
thf(fact_148_reflp__transfer_I2_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( right_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > A > $o ) @ ( B > B > $o ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3 @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3 @ (=>) ) ) @ (=>) @ ( reflp @ A ) @ ( reflp @ B ) ) ) ).
% reflp_transfer(2)
thf(fact_149_bi__total__alt__def,axiom,
! [B: $tType,A: $tType] :
( ( bi_total @ A @ B )
= ( ^ [A6: A > B > $o] :
( ( left_total @ A @ B @ A6 )
& ( right_total @ A @ B @ A6 ) ) ) ) ).
% bi_total_alt_def
thf(fact_150_bi__totalI,axiom,
! [B: $tType,A: $tType,R3: A > B > $o] :
( ( left_total @ A @ B @ R3 )
=> ( ( right_total @ A @ B @ R3 )
=> ( bi_total @ A @ B @ R3 ) ) ) ).
% bi_totalI
thf(fact_151_prod_Oright__total__rel,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
( ( right_total @ A @ C @ R1 )
=> ( ( right_total @ B @ D @ R2 )
=> ( right_total @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).
% prod.right_total_rel
thf(fact_152_prod_Oleft__total__rel,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
( ( left_total @ A @ C @ R1 )
=> ( ( left_total @ B @ D @ R2 )
=> ( left_total @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).
% prod.left_total_rel
thf(fact_153_llist_Oright__total__rel,axiom,
! [B: $tType,A: $tType,R3: A > B > $o] :
( ( right_total @ A @ B @ R3 )
=> ( right_total @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) ) ).
% llist.right_total_rel
thf(fact_154_tllist_Oright__total__rel,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
( ( right_total @ A @ C @ R1 )
=> ( ( right_total @ B @ D @ R2 )
=> ( right_total @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).
% tllist.right_total_rel
thf(fact_155_llist_Oleft__total__rel,axiom,
! [B: $tType,A: $tType,R3: A > B > $o] :
( ( left_total @ A @ B @ R3 )
=> ( left_total @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) ) ) ).
% llist.left_total_rel
thf(fact_156_tllist_Oright__total,axiom,
! [G2: $tType,I: $tType,J: $tType,H: $tType,T: G2 > I > $o,Ta: H > J > $o] :
( ( right_total @ G2 @ I @ T )
=> ( ( right_total @ H @ J @ Ta )
=> ( right_total @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( tLList446370796tllist @ I @ J ) @ ( tLList1832236142tllist @ G2 @ I @ H @ J @ T @ Ta ) ) ) ) ).
% tllist.right_total
thf(fact_157_tllist_Oleft__total__rel,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
( ( left_total @ A @ C @ R1 )
=> ( ( left_total @ B @ D @ R2 )
=> ( left_total @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) ) ) ) ).
% tllist.left_total_rel
thf(fact_158_right__total__def,axiom,
! [B: $tType,A: $tType] :
( ( right_total @ A @ B )
= ( ^ [R5: A > B > $o] :
! [Y3: B] :
? [X3: A] : ( R5 @ X3 @ Y3 ) ) ) ).
% right_total_def
thf(fact_159_right__total__eq,axiom,
! [A: $tType] :
( right_total @ A @ A
@ ^ [Y: A,Z: A] : ( Y = Z ) ) ).
% right_total_eq
thf(fact_160_left__total__def,axiom,
! [B: $tType,A: $tType] :
( ( left_total @ A @ B )
= ( ^ [R5: A > B > $o] :
! [X3: A] :
( ^ [P3: B > $o] :
? [X5: B] : ( P3 @ X5 )
@ ( R5 @ X3 ) ) ) ) ).
% left_total_def
thf(fact_161_left__total__eq,axiom,
! [A: $tType] :
( left_total @ A @ A
@ ^ [Y: A,Z: A] : ( Y = Z ) ) ).
% left_total_eq
thf(fact_162_right__totalI,axiom,
! [A: $tType,B: $tType,A3: B > A > $o] :
( ! [Y2: A] :
? [X6: B] : ( A3 @ X6 @ Y2 )
=> ( right_total @ B @ A @ A3 ) ) ).
% right_totalI
thf(fact_163_right__totalE,axiom,
! [A: $tType,B: $tType,A3: A > B > $o,Y5: B] :
( ( right_total @ A @ B @ A3 )
=> ~ ! [X2: A] :
~ ( A3 @ X2 @ Y5 ) ) ).
% right_totalE
thf(fact_164_left__totalI,axiom,
! [B: $tType,A: $tType,R3: A > B > $o] :
( ! [X2: A] :
? [X13: B] : ( R3 @ X2 @ X13 )
=> ( left_total @ A @ B @ R3 ) ) ).
% left_totalI
thf(fact_165_left__totalE,axiom,
! [A: $tType,B: $tType,R3: A > B > $o] :
( ( left_total @ A @ B @ R3 )
=> ! [X6: A] :
? [X14: B] : ( R3 @ X6 @ X14 ) ) ).
% left_totalE
thf(fact_166_tllist_Oleft__total,axiom,
! [G2: $tType,I: $tType,J: $tType,H: $tType,T: G2 > I > $o,Ta: H > J > $o] :
( ( left_total @ G2 @ I @ T )
=> ( ( left_total @ H @ J @ Ta )
=> ( left_total @ ( product_prod @ ( coinductive_llist @ G2 ) @ H ) @ ( tLList446370796tllist @ I @ J ) @ ( tLList1832236142tllist @ G2 @ I @ H @ J @ T @ Ta ) ) ) ) ).
% tllist.left_total
thf(fact_167_llist__case__mono,axiom,
! [C: $tType,B: $tType,A: $tType,Orda: A > A > $o,Ordb: B > B > $o,Lnil: A > B,Lcons: A > C > ( coinductive_llist @ C ) > B,X: coinductive_llist @ C] :
( ( comple1396247847notone @ A @ B @ Orda @ Ordb @ Lnil )
=> ( ! [X2: C,Xs4: coinductive_llist @ C] :
( comple1396247847notone @ A @ B @ Orda @ Ordb
@ ^ [F: A] : ( Lcons @ F @ X2 @ Xs4 ) )
=> ( comple1396247847notone @ A @ B @ Orda @ Ordb
@ ^ [F: A] : ( coindu1381640503_llist @ B @ C @ ( Lnil @ F ) @ ( Lcons @ F ) @ X ) ) ) ) ).
% llist_case_mono
thf(fact_168_left__total__OO,axiom,
! [A: $tType,C: $tType,B: $tType,R3: A > B > $o,S2: B > C > $o] :
( ( left_total @ A @ B @ R3 )
=> ( ( left_total @ B @ C @ S2 )
=> ( left_total @ A @ C @ ( relcompp @ A @ B @ C @ R3 @ S2 ) ) ) ) ).
% left_total_OO
thf(fact_169_right__total__OO,axiom,
! [A: $tType,C: $tType,B: $tType,A3: A > B > $o,B3: B > C > $o] :
( ( right_total @ A @ B @ A3 )
=> ( ( right_total @ B @ C @ B3 )
=> ( right_total @ A @ C @ ( relcompp @ A @ B @ C @ A3 @ B3 ) ) ) ) ).
% right_total_OO
thf(fact_170_transfer__forall__transfer_I3_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( right_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3 @ (=>) ) @ (=>) @ ( transfer_forall @ A ) @ ( transfer_forall @ B ) ) ) ).
% transfer_forall_transfer(3)
thf(fact_171_transfer__forall__transfer_I2_J,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( right_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ (=>)
@ ( transfer_forall @ A )
@ ( transfer_forall @ B ) ) ) ).
% transfer_forall_transfer(2)
thf(fact_172_right__total__parametric,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,A3: A > B > $o,B3: C > D > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( ( bi_total @ C @ D @ B3 )
=> ( bNF_rel_fun @ ( A > C > $o ) @ ( B > D > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ ( C > $o ) @ ( D > $o ) @ A3
@ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( right_total @ A @ C )
@ ( right_total @ B @ D ) ) ) ) ).
% right_total_parametric
thf(fact_173_monotone__fun__ord__apply,axiom,
! [A: $tType,C: $tType,B: $tType,Orda: A > A > $o,Ordb: C > C > $o,F2: A > B > C] :
( ( comple1396247847notone @ A @ ( B > C ) @ Orda @ ( partial_fun_ord @ C @ C @ B @ Ordb ) @ F2 )
= ( ! [X3: B] :
( comple1396247847notone @ A @ C @ Orda @ Ordb
@ ^ [Y3: A] : ( F2 @ Y3 @ X3 ) ) ) ) ).
% monotone_fun_ord_apply
thf(fact_174_monotone__applyI,axiom,
! [B: $tType,A: $tType,C: $tType,Orda: A > A > $o,Ordb: B > B > $o,F4: A > B,X: C] :
( ( comple1396247847notone @ A @ B @ Orda @ Ordb @ F4 )
=> ( comple1396247847notone @ ( C > A ) @ B @ ( partial_fun_ord @ A @ A @ C @ Orda ) @ Ordb
@ ^ [F: C > A] : ( F4 @ ( F @ X ) ) ) ) ).
% monotone_applyI
thf(fact_175_monotone__case__prod__applyD,axiom,
! [B: $tType,C: $tType,D: $tType,A: $tType,Orda: ( product_prod @ A @ B ) > ( product_prod @ A @ B ) > $o,Ordb: C > C > $o,F2: A > B > D > C,Y5: D] :
( ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
@ ^ [X3: product_prod @ A @ B] : ( product_case_prod @ A @ B @ ( D > C ) @ F2 @ X3 @ Y5 ) )
=> ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
@ ( product_case_prod @ A @ B @ C
@ ^ [A2: A,B2: B] : ( F2 @ A2 @ B2 @ Y5 ) ) ) ) ).
% monotone_case_prod_applyD
thf(fact_176_monotone__id_H,axiom,
! [A: $tType,Ord: A > A > $o] :
( comple1396247847notone @ A @ A @ Ord @ Ord
@ ^ [X3: A] : X3 ) ).
% monotone_id'
thf(fact_177_monotone__if__fun,axiom,
! [C: $tType,D: $tType,B: $tType,A: $tType,Orda: B > B > $o,Ordb: D > D > $o,F4: ( A > B ) > C > D,G4: ( A > B ) > C > D,C3: C > $o] :
( ( comple1396247847notone @ ( A > B ) @ ( C > D ) @ ( partial_fun_ord @ B @ B @ A @ Orda ) @ ( partial_fun_ord @ D @ D @ C @ Ordb ) @ F4 )
=> ( ( comple1396247847notone @ ( A > B ) @ ( C > D ) @ ( partial_fun_ord @ B @ B @ A @ Orda ) @ ( partial_fun_ord @ D @ D @ C @ Ordb ) @ G4 )
=> ( comple1396247847notone @ ( A > B ) @ ( C > D ) @ ( partial_fun_ord @ B @ B @ A @ Orda ) @ ( partial_fun_ord @ D @ D @ C @ Ordb )
@ ^ [F: A > B,N: C] : ( if @ D @ ( C3 @ N ) @ ( F4 @ F @ N ) @ ( G4 @ F @ N ) ) ) ) ) ).
% monotone_if_fun
thf(fact_178_monotone__fun__apply__fun,axiom,
! [D: $tType,C: $tType,B: $tType,A: $tType,Ord: C > C > $o,T3: A,G: D > B] :
( comple1396247847notone @ ( A > B > C ) @ ( D > C ) @ ( partial_fun_ord @ ( B > C ) @ ( B > C ) @ A @ ( partial_fun_ord @ C @ C @ B @ Ord ) ) @ ( partial_fun_ord @ C @ C @ D @ Ord )
@ ^ [F: A > B > C,N: D] : ( F @ T3 @ ( G @ N ) ) ) ).
% monotone_fun_apply_fun
thf(fact_179_mono2mono__case__prod,axiom,
! [A: $tType,B: $tType,D: $tType,C: $tType,Orda: C > C > $o,Ordb: D > D > $o,Pair: C > A > B > D,X: product_prod @ A @ B] :
( ! [X2: A,Y2: B] :
( comple1396247847notone @ C @ D @ Orda @ Ordb
@ ^ [F: C] : ( Pair @ F @ X2 @ Y2 ) )
=> ( comple1396247847notone @ C @ D @ Orda @ Ordb
@ ^ [F: C] : ( product_case_prod @ A @ B @ D @ ( Pair @ F ) @ X ) ) ) ).
% mono2mono_case_prod
thf(fact_180_monotone__case__prod__apply__iff,axiom,
! [B: $tType,C: $tType,D: $tType,A: $tType,Orda: ( product_prod @ A @ B ) > ( product_prod @ A @ B ) > $o,Ordb: C > C > $o,F2: A > B > D > C,Y5: D] :
( ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
@ ^ [X3: product_prod @ A @ B] : ( product_case_prod @ A @ B @ ( D > C ) @ F2 @ X3 @ Y5 ) )
= ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
@ ( product_case_prod @ A @ B @ C
@ ^ [A2: A,B2: B] : ( F2 @ A2 @ B2 @ Y5 ) ) ) ) ).
% monotone_case_prod_apply_iff
thf(fact_181_monotone__case__prod__applyI,axiom,
! [D: $tType,C: $tType,B: $tType,A: $tType,Orda: ( product_prod @ A @ B ) > ( product_prod @ A @ B ) > $o,Ordb: C > C > $o,F2: A > B > D > C,Y5: D] :
( ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
@ ( product_case_prod @ A @ B @ C
@ ^ [A2: A,B2: B] : ( F2 @ A2 @ B2 @ Y5 ) ) )
=> ( comple1396247847notone @ ( product_prod @ A @ B ) @ C @ Orda @ Ordb
@ ^ [X3: product_prod @ A @ B] : ( product_case_prod @ A @ B @ ( D > C ) @ F2 @ X3 @ Y5 ) ) ) ).
% monotone_case_prod_applyI
thf(fact_182_call__mono,axiom,
! [B: $tType,A: $tType,Ord: B > B > $o,T3: A] :
( comple1396247847notone @ ( A > B ) @ B @ ( partial_fun_ord @ B @ B @ A @ Ord ) @ Ord
@ ^ [F: A > B] : ( F @ T3 ) ) ).
% call_mono
thf(fact_183_Domainp__transfer,axiom,
! [C: $tType,A: $tType,B: $tType,D: $tType,B3: A > B > $o,A3: C > D > $o] :
( ( bi_total @ A @ B @ B3 )
=> ( bNF_rel_fun @ ( C > A > $o ) @ ( D > B > $o ) @ ( C > $o ) @ ( D > $o )
@ ( bNF_rel_fun @ C @ D @ ( A > $o ) @ ( B > $o ) @ A3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ C @ D @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( domainp @ C @ A )
@ ( domainp @ D @ B ) ) ) ).
% Domainp_transfer
thf(fact_184_partial__function__definitions_Omono2mono2,axiom,
! [C: $tType,A: $tType,B: $tType,D: $tType,Leq: A > A > $o,Lub: ( set @ A ) > A,Ordb: B > B > $o,Ordc: C > C > $o,F2: B > C > A,Orda: D > D > $o,T3: D > B,T4: D > C] :
( ( partia17684980itions @ A @ Leq @ Lub )
=> ( ( comple1396247847notone @ ( product_prod @ B @ C ) @ A @ ( basic_rel_prod @ B @ B @ C @ C @ Ordb @ Ordc ) @ Leq @ ( product_case_prod @ B @ C @ A @ F2 ) )
=> ( ( comple1396247847notone @ D @ B @ Orda @ Ordb @ T3 )
=> ( ( comple1396247847notone @ D @ C @ Orda @ Ordc @ T4 )
=> ( comple1396247847notone @ D @ A @ Orda @ Leq
@ ^ [X3: D] : ( F2 @ ( T3 @ X3 ) @ ( T4 @ X3 ) ) ) ) ) ) ) ).
% partial_function_definitions.mono2mono2
thf(fact_185_partial__function__definitions_Oconst__mono,axiom,
! [A: $tType,B: $tType,Leq: A > A > $o,Lub: ( set @ A ) > A,Ord: B > B > $o,C3: A] :
( ( partia17684980itions @ A @ Leq @ Lub )
=> ( comple1396247847notone @ B @ A @ Ord @ Leq
@ ^ [F: B] : C3 ) ) ).
% partial_function_definitions.const_mono
thf(fact_186_partial__function__definitions_Omono2mono,axiom,
! [B: $tType,A: $tType,C: $tType,Leq: A > A > $o,Lub: ( set @ A ) > A,Ordb: B > B > $o,F2: B > A,Orda: C > C > $o,T3: C > B] :
( ( partia17684980itions @ A @ Leq @ Lub )
=> ( ( comple1396247847notone @ B @ A @ Ordb @ Leq @ F2 )
=> ( ( comple1396247847notone @ C @ B @ Orda @ Ordb @ T3 )
=> ( comple1396247847notone @ C @ A @ Orda @ Leq
@ ^ [X3: C] : ( F2 @ ( T3 @ X3 ) ) ) ) ) ) ).
% partial_function_definitions.mono2mono
thf(fact_187_Domainp_Oinducts,axiom,
! [B: $tType,A: $tType,R6: A > B > $o,X: A,P: A > $o] :
( ( domainp @ A @ B @ R6 @ X )
=> ( ! [A5: A,B5: B] :
( ( R6 @ A5 @ B5 )
=> ( P @ A5 ) )
=> ( P @ X ) ) ) ).
% Domainp.inducts
thf(fact_188_Domainp_ODomainI,axiom,
! [B: $tType,A: $tType,R6: A > B > $o,A4: A,B4: B] :
( ( R6 @ A4 @ B4 )
=> ( domainp @ A @ B @ R6 @ A4 ) ) ).
% Domainp.DomainI
thf(fact_189_Domainp_Osimps,axiom,
! [B: $tType,A: $tType] :
( ( domainp @ A @ B )
= ( ^ [R: A > B > $o,A2: A] :
? [B2: A,C4: B] :
( ( A2 = B2 )
& ( R @ B2 @ C4 ) ) ) ) ).
% Domainp.simps
thf(fact_190_Domainp_Ocases,axiom,
! [A: $tType,B: $tType,R6: A > B > $o,A4: A] :
( ( domainp @ A @ B @ R6 @ A4 )
=> ~ ! [B5: B] :
~ ( R6 @ A4 @ B5 ) ) ).
% Domainp.cases
thf(fact_191_DomainpE,axiom,
! [A: $tType,B: $tType,R6: A > B > $o,A4: A] :
( ( domainp @ A @ B @ R6 @ A4 )
=> ~ ! [B5: B] :
~ ( R6 @ A4 @ B5 ) ) ).
% DomainpE
thf(fact_192_llist_ODomainp__rel,axiom,
! [B: $tType,A: $tType,R3: A > B > $o] :
( ( domainp @ ( coinductive_llist @ A ) @ ( coinductive_llist @ B ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) )
= ( coindu543516966_llist @ A @ ( domainp @ A @ B @ R3 ) ) ) ).
% llist.Domainp_rel
thf(fact_193_Domainp__refl,axiom,
! [B: $tType,A: $tType] :
( ( domainp @ A @ B )
= ( domainp @ A @ B ) ) ).
% Domainp_refl
thf(fact_194_Domainp__iff,axiom,
! [B: $tType,A: $tType] :
( ( domainp @ A @ B )
= ( ^ [T2: A > B > $o,X3: A] :
( ^ [P3: B > $o] :
? [X5: B] : ( P3 @ X5 )
@ ( T2 @ X3 ) ) ) ) ).
% Domainp_iff
thf(fact_195_tllist_ODomainp__rel,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
( ( domainp @ ( tLList446370796tllist @ A @ B ) @ ( tLList446370796tllist @ C @ D ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) )
= ( tLList11265572tllist @ A @ B @ ( domainp @ A @ C @ R1 ) @ ( domainp @ B @ D @ R2 ) ) ) ).
% tllist.Domainp_rel
thf(fact_196_tllist_Odomain,axiom,
! [B: $tType,A: $tType,C: $tType,D: $tType,T: C > A > $o,DR: C > $o,Ta: D > B > $o,DR2: D > $o] :
( ( ( domainp @ C @ A @ T )
= DR )
=> ( ( ( domainp @ D @ B @ Ta )
= DR2 )
=> ( ( domainp @ ( product_prod @ ( coinductive_llist @ C ) @ D ) @ ( tLList446370796tllist @ A @ B ) @ ( tLList1832236142tllist @ C @ A @ D @ B @ T @ Ta ) )
= ( basic_pred_prod @ ( coinductive_llist @ C ) @ D @ ( coindu543516966_llist @ C @ DR ) @ DR2 ) ) ) ) ).
% tllist.domain
thf(fact_197_prod_ODomainp__rel,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R2: B > D > $o] :
( ( domainp @ ( product_prod @ A @ B ) @ ( product_prod @ C @ D ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) )
= ( basic_pred_prod @ A @ B @ ( domainp @ A @ C @ R1 ) @ ( domainp @ B @ D @ R2 ) ) ) ).
% prod.Domainp_rel
thf(fact_198_fun_ODomainp__rel,axiom,
! [C: $tType,B: $tType,A: $tType,R3: A > B > $o] :
( ( domainp @ ( C > A ) @ ( C > B )
@ ( bNF_rel_fun @ C @ C @ A @ B
@ ^ [Y: C,Z: C] : ( Y = Z )
@ R3 ) )
= ( basic_pred_fun @ C @ A
@ ^ [Uu: C] : $true
@ ( domainp @ A @ B @ R3 ) ) ) ).
% fun.Domainp_rel
thf(fact_199_pcr__Domainp__total,axiom,
! [A: $tType,B: $tType,C: $tType,B3: A > B > $o,A3: C > A > $o,P: C > $o] :
( ( left_total @ A @ B @ B3 )
=> ( ( ( domainp @ C @ A @ A3 )
= P )
=> ( ( domainp @ C @ B @ ( relcompp @ C @ A @ B @ A3 @ B3 ) )
= P ) ) ) ).
% pcr_Domainp_total
thf(fact_200_pcr__Domainp__par__left__total,axiom,
! [A: $tType,B: $tType,C: $tType,B3: A > B > $o,P: A > $o,A3: C > A > $o,P2: C > $o] :
( ( ( domainp @ A @ B @ B3 )
= P )
=> ( ( left_total @ C @ A @ A3 )
=> ( ( bNF_rel_fun @ C @ A @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ P2
@ P )
=> ( ( domainp @ C @ B @ ( relcompp @ C @ A @ B @ A3 @ B3 ) )
= P2 ) ) ) ) ).
% pcr_Domainp_par_left_total
thf(fact_201_if__mono,axiom,
! [B: $tType,A: $tType,Orda: A > A > $o,Ordb: B > B > $o,F4: A > B,G4: A > B,C3: $o] :
( ( comple1396247847notone @ A @ B @ Orda @ Ordb @ F4 )
=> ( ( comple1396247847notone @ A @ B @ Orda @ Ordb @ G4 )
=> ( comple1396247847notone @ A @ B @ Orda @ Ordb
@ ^ [F: A] : ( if @ B @ C3 @ ( F4 @ F ) @ ( G4 @ F ) ) ) ) ) ).
% if_mono
thf(fact_202_let__mono,axiom,
! [A: $tType,C: $tType,B: $tType,Orda: B > B > $o,Ordb: C > C > $o,B4: B > A > C,T3: A] :
( ! [X2: A] :
( comple1396247847notone @ B @ C @ Orda @ Ordb
@ ^ [F: B] : ( B4 @ F @ X2 ) )
=> ( comple1396247847notone @ B @ C @ Orda @ Ordb
@ ^ [F: B] : ( B4 @ F @ T3 ) ) ) ).
% let_mono
thf(fact_203_Domainp__forall__transfer,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( right_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( transfer_bforall @ A @ ( domainp @ A @ B @ A3 ) )
@ ( transfer_forall @ B ) ) ) ).
% Domainp_forall_transfer
thf(fact_204_right__total__relcompp__transfer,axiom,
! [C: $tType,A: $tType,E: $tType,F3: $tType,B: $tType,D: $tType,B3: A > B > $o,A3: C > D > $o,C2: E > F3 > $o] :
( ( right_total @ A @ B @ B3 )
=> ( bNF_rel_fun @ ( C > A > $o ) @ ( D > B > $o ) @ ( ( A > E > $o ) > C > E > $o ) @ ( ( B > F3 > $o ) > D > F3 > $o )
@ ( bNF_rel_fun @ C @ D @ ( A > $o ) @ ( B > $o ) @ A3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ ( A > E > $o ) @ ( B > F3 > $o ) @ ( C > E > $o ) @ ( D > F3 > $o )
@ ( bNF_rel_fun @ A @ B @ ( E > $o ) @ ( F3 > $o ) @ B3
@ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ C2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ C @ D @ ( E > $o ) @ ( F3 > $o ) @ A3
@ ( bNF_rel_fun @ E @ F3 @ $o @ $o @ C2
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) ) )
@ ^ [R5: C > A > $o,S5: A > E > $o,X3: C,Z2: E] :
? [Y3: A] :
( ( member @ A @ Y3 @ ( collect @ A @ ( domainp @ A @ B @ B3 ) ) )
& ( R5 @ X3 @ Y3 )
& ( S5 @ Y3 @ Z2 ) )
@ ( relcompp @ D @ B @ F3 ) ) ) ).
% right_total_relcompp_transfer
thf(fact_205_right__total__Domainp__transfer,axiom,
! [C: $tType,A: $tType,B: $tType,D: $tType,B3: A > B > $o,A3: C > D > $o] :
( ( right_total @ A @ B @ B3 )
=> ( bNF_rel_fun @ ( C > A > $o ) @ ( D > B > $o ) @ ( C > $o ) @ ( D > $o )
@ ( bNF_rel_fun @ C @ D @ ( A > $o ) @ ( B > $o ) @ A3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) )
@ ( bNF_rel_fun @ C @ D @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ^ [T2: C > A > $o,X3: C] :
? [Y3: A] :
( ( member @ A @ Y3 @ ( collect @ A @ ( domainp @ A @ B @ B3 ) ) )
& ( T2 @ X3 @ Y3 ) )
@ ( domainp @ D @ B ) ) ) ).
% right_total_Domainp_transfer
thf(fact_206_bex__reg,axiom,
! [A: $tType,R3: set @ A,P: A > $o,Q: A > $o] :
( ! [X2: A] :
( ( member @ A @ X2 @ R3 )
=> ( ( P @ X2 )
=> ( Q @ X2 ) ) )
=> ( ? [X6: A] :
( ( member @ A @ X6 @ R3 )
& ( P @ X6 ) )
=> ? [X2: A] :
( ( member @ A @ X2 @ R3 )
& ( Q @ X2 ) ) ) ) ).
% bex_reg
thf(fact_207_right__total__Ex__transfer,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( right_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( bex @ A @ ( collect @ A @ ( domainp @ A @ B @ A3 ) ) )
@ ^ [P3: B > $o] :
? [X5: B] : ( P3 @ X5 ) ) ) ).
% right_total_Ex_transfer
thf(fact_208_lfp_Omono2mono2,axiom,
! [C: $tType,A: $tType,B: $tType,D: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Ordb: B > B > $o,Ordc: C > C > $o,F2: B > C > A,Orda: D > D > $o,T3: D > B,T4: D > C] :
( ( comple1396247847notone @ ( product_prod @ B @ C ) @ A @ ( basic_rel_prod @ B @ B @ C @ C @ Ordb @ Ordc ) @ ( ord_less_eq @ A ) @ ( product_case_prod @ B @ C @ A @ F2 ) )
=> ( ( comple1396247847notone @ D @ B @ Orda @ Ordb @ T3 )
=> ( ( comple1396247847notone @ D @ C @ Orda @ Ordc @ T4 )
=> ( comple1396247847notone @ D @ A @ Orda @ ( ord_less_eq @ A )
@ ^ [X3: D] : ( F2 @ ( T3 @ X3 ) @ ( T4 @ X3 ) ) ) ) ) ) ) ).
% lfp.mono2mono2
thf(fact_209_bex__reg__left,axiom,
! [A: $tType,R3: set @ A,Q: A > $o,P: A > $o] :
( ! [X2: A] :
( ( member @ A @ X2 @ R3 )
=> ( ( Q @ X2 )
=> ( P @ X2 ) ) )
=> ( ? [X6: A] :
( ( member @ A @ X6 @ R3 )
& ( Q @ X6 ) )
=> ? [X14: A] : ( P @ X14 ) ) ) ).
% bex_reg_left
thf(fact_210_pcr__Domainp,axiom,
! [B: $tType,A: $tType,C: $tType,B3: A > B > $o,P: A > $o,A3: C > A > $o] :
( ( ( domainp @ A @ B @ B3 )
= P )
=> ( ( domainp @ C @ B @ ( relcompp @ C @ A @ B @ A3 @ B3 ) )
= ( ^ [X3: C] :
? [Y3: A] :
( ( A3 @ X3 @ Y3 )
& ( P @ Y3 ) ) ) ) ) ).
% pcr_Domainp
thf(fact_211_OO__def,axiom,
! [B: $tType,C: $tType,A: $tType] :
( ( relcompp @ A @ C @ B )
= ( ^ [R5: A > C > $o,S5: C > B > $o,X3: A,Z2: B] :
? [Y3: C] :
( ( R5 @ X3 @ Y3 )
& ( S5 @ Y3 @ Z2 ) ) ) ) ).
% OO_def
thf(fact_212_Collect__case__prod__mono,axiom,
! [B: $tType,A: $tType,A3: A > B > $o,B3: A > B > $o] :
( ( ord_less_eq @ ( A > B > $o ) @ A3 @ B3 )
=> ( ord_less_eq @ ( set @ ( product_prod @ A @ B ) ) @ ( collect @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ A3 ) ) @ ( collect @ ( product_prod @ A @ B ) @ ( product_case_prod @ A @ B @ $o @ B3 ) ) ) ) ).
% Collect_case_prod_mono
thf(fact_213_prod_Orel__mono,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R1a: A > C > $o,R2: B > D > $o,R2a: B > D > $o] :
( ( ord_less_eq @ ( A > C > $o ) @ R1 @ R1a )
=> ( ( ord_less_eq @ ( B > D > $o ) @ R2 @ R2a )
=> ( ord_less_eq @ ( ( product_prod @ A @ B ) > ( product_prod @ C @ D ) > $o ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1 @ R2 ) @ ( basic_rel_prod @ A @ C @ B @ D @ R1a @ R2a ) ) ) ) ).
% prod.rel_mono
thf(fact_214_llist_Orel__mono,axiom,
! [B: $tType,A: $tType,R3: A > B > $o,Ra: A > B > $o] :
( ( ord_less_eq @ ( A > B > $o ) @ R3 @ Ra )
=> ( ord_less_eq @ ( ( coinductive_llist @ A ) > ( coinductive_llist @ B ) > $o ) @ ( coindu1486289336t_all2 @ A @ B @ R3 ) @ ( coindu1486289336t_all2 @ A @ B @ Ra ) ) ) ).
% llist.rel_mono
thf(fact_215_tllist_Orel__mono,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R1: A > C > $o,R1a: A > C > $o,R2: B > D > $o,R2a: B > D > $o] :
( ( ord_less_eq @ ( A > C > $o ) @ R1 @ R1a )
=> ( ( ord_less_eq @ ( B > D > $o ) @ R2 @ R2a )
=> ( ord_less_eq @ ( ( tLList446370796tllist @ A @ B ) > ( tLList446370796tllist @ C @ D ) > $o ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1 @ R2 ) @ ( tLList1380991092t_all2 @ A @ C @ B @ D @ R1a @ R2a ) ) ) ) ).
% tllist.rel_mono
thf(fact_216_wlog__linorder__le,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > A > $o,B4: A,A4: A] :
( ! [A5: A,B5: A] :
( ( ord_less_eq @ A @ A5 @ B5 )
=> ( P @ A5 @ B5 ) )
=> ( ( ( P @ B4 @ A4 )
=> ( P @ A4 @ B4 ) )
=> ( P @ A4 @ B4 ) ) ) ) ).
% wlog_linorder_le
thf(fact_217_reflp__eq,axiom,
! [A: $tType] :
( ( reflp @ A )
= ( ord_less_eq @ ( A > A > $o )
@ ^ [Y: A,Z: A] : ( Y = Z ) ) ) ).
% reflp_eq
thf(fact_218_reflp__ge__eq,axiom,
! [A: $tType,R3: A > A > $o] :
( ( reflp @ A @ R3 )
=> ( ord_less_eq @ ( A > A > $o )
@ ^ [Y: A,Z: A] : ( Y = Z )
@ R3 ) ) ).
% reflp_ge_eq
thf(fact_219_leq__OOI,axiom,
! [A: $tType,R3: A > A > $o] :
( ( R3
= ( ^ [Y: A,Z: A] : ( Y = Z ) ) )
=> ( ord_less_eq @ ( A > A > $o ) @ R3 @ ( relcompp @ A @ A @ A @ R3 @ R3 ) ) ) ).
% leq_OOI
thf(fact_220_relcompp__mono,axiom,
! [A: $tType,C: $tType,B: $tType,R7: A > B > $o,R6: A > B > $o,S6: B > C > $o,S4: B > C > $o] :
( ( ord_less_eq @ ( A > B > $o ) @ R7 @ R6 )
=> ( ( ord_less_eq @ ( B > C > $o ) @ S6 @ S4 )
=> ( ord_less_eq @ ( A > C > $o ) @ ( relcompp @ A @ B @ C @ R7 @ S6 ) @ ( relcompp @ A @ B @ C @ R6 @ S4 ) ) ) ) ).
% relcompp_mono
thf(fact_221_fun__mono,axiom,
! [A: $tType,B: $tType,D: $tType,C: $tType,C2: A > B > $o,A3: A > B > $o,B3: C > D > $o,D2: C > D > $o] :
( ( ord_less_eq @ ( A > B > $o ) @ C2 @ A3 )
=> ( ( ord_less_eq @ ( C > D > $o ) @ B3 @ D2 )
=> ( ord_less_eq @ ( ( A > C ) > ( B > D ) > $o ) @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 ) @ ( bNF_rel_fun @ A @ B @ C @ D @ C2 @ D2 ) ) ) ) ).
% fun_mono
thf(fact_222_fun_Orel__mono,axiom,
! [D: $tType,B: $tType,A: $tType,R3: A > B > $o,Ra: A > B > $o] :
( ( ord_less_eq @ ( A > B > $o ) @ R3 @ Ra )
=> ( ord_less_eq @ ( ( D > A ) > ( D > B ) > $o )
@ ( bNF_rel_fun @ D @ D @ A @ B
@ ^ [Y: D,Z: D] : ( Y = Z )
@ R3 )
@ ( bNF_rel_fun @ D @ D @ A @ B
@ ^ [Y: D,Z: D] : ( Y = Z )
@ Ra ) ) ) ).
% fun.rel_mono
thf(fact_223_monotone__if__bot,axiom,
! [B: $tType,A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [Bound: A,Ord: B > B > $o,F2: A > B,Bot: B] :
( ! [X2: A,Y2: A] :
( ( ord_less_eq @ A @ X2 @ Y2 )
=> ( ~ ( ord_less_eq @ A @ X2 @ Bound )
=> ( Ord @ ( F2 @ X2 ) @ ( F2 @ Y2 ) ) ) )
=> ( ! [X2: A] :
( ~ ( ord_less_eq @ A @ X2 @ Bound )
=> ( Ord @ Bot @ ( F2 @ X2 ) ) )
=> ( ( Ord @ Bot @ Bot )
=> ( comple1396247847notone @ A @ B @ ( ord_less_eq @ A ) @ Ord
@ ^ [X3: A] : ( if @ B @ ( ord_less_eq @ A @ X3 @ Bound ) @ Bot @ ( F2 @ X3 ) ) ) ) ) ) ) ).
% monotone_if_bot
thf(fact_224_monotone__const,axiom,
! [A: $tType,B: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [Ord: B > B > $o,C3: A] :
( comple1396247847notone @ B @ A @ Ord @ ( ord_less_eq @ A )
@ ^ [Uu: B] : C3 ) ) ).
% monotone_const
thf(fact_225_gfp_Omonotone__if__bot,axiom,
! [B: $tType,A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Bound: A,G: A > B,Bot: B,F2: A > B,Ord: B > B > $o] :
( ! [X2: A] :
( ( ( ord_less_eq @ A @ Bound @ X2 )
=> ( ( G @ X2 )
= Bot ) )
& ( ~ ( ord_less_eq @ A @ Bound @ X2 )
=> ( ( G @ X2 )
= ( F2 @ X2 ) ) ) )
=> ( ! [X2: A,Y2: A] :
( ( ord_less_eq @ A @ Y2 @ X2 )
=> ( ~ ( ord_less_eq @ A @ Bound @ X2 )
=> ( Ord @ ( F2 @ X2 ) @ ( F2 @ Y2 ) ) ) )
=> ( ! [X2: A] :
( ~ ( ord_less_eq @ A @ Bound @ X2 )
=> ( Ord @ Bot @ ( F2 @ X2 ) ) )
=> ( ( Ord @ Bot @ Bot )
=> ( comple1396247847notone @ A @ B
@ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
@ Ord
@ G ) ) ) ) ) ) ).
% gfp.monotone_if_bot
thf(fact_226_lfp_Oconst__mono,axiom,
! [A: $tType,B: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Ord: B > B > $o,C3: A] :
( comple1396247847notone @ B @ A @ Ord @ ( ord_less_eq @ A )
@ ^ [F: B] : C3 ) ) ).
% lfp.const_mono
thf(fact_227_gfp_Oconst__mono,axiom,
! [A: $tType,B: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Ord: B > B > $o,C3: A] :
( comple1396247847notone @ B @ A @ Ord
@ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
@ ^ [F: B] : C3 ) ) ).
% gfp.const_mono
thf(fact_228_lfp_Omono2mono,axiom,
! [B: $tType,A: $tType,C: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Ordb: B > B > $o,F2: B > A,Orda: C > C > $o,T3: C > B] :
( ( comple1396247847notone @ B @ A @ Ordb @ ( ord_less_eq @ A ) @ F2 )
=> ( ( comple1396247847notone @ C @ B @ Orda @ Ordb @ T3 )
=> ( comple1396247847notone @ C @ A @ Orda @ ( ord_less_eq @ A )
@ ^ [X3: C] : ( F2 @ ( T3 @ X3 ) ) ) ) ) ) ).
% lfp.mono2mono
thf(fact_229_gfp_Omono2mono,axiom,
! [B: $tType,A: $tType,C: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Ordb: B > B > $o,F2: B > A,Orda: C > C > $o,T3: C > B] :
( ( comple1396247847notone @ B @ A @ Ordb
@ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
@ F2 )
=> ( ( comple1396247847notone @ C @ B @ Orda @ Ordb @ T3 )
=> ( comple1396247847notone @ C @ A @ Orda
@ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
@ ^ [X3: C] : ( F2 @ ( T3 @ X3 ) ) ) ) ) ) ).
% gfp.mono2mono
thf(fact_230_Ex__transfer,axiom,
! [A: $tType,B: $tType,A3: A > B > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( bNF_rel_fun @ ( A > $o ) @ ( B > $o ) @ $o @ $o
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ^ [P3: A > $o] :
? [X5: A] : ( P3 @ X5 )
@ ^ [P3: B > $o] :
? [X5: B] : ( P3 @ X5 ) ) ) ).
% Ex_transfer
thf(fact_231_pos__fun__distr,axiom,
! [E: $tType,C: $tType,A: $tType,B: $tType,D: $tType,F3: $tType,R3: A > E > $o,S2: B > F3 > $o,R8: E > C > $o,S7: F3 > D > $o] : ( ord_less_eq @ ( ( A > B ) > ( C > D ) > $o ) @ ( relcompp @ ( A > B ) @ ( E > F3 ) @ ( C > D ) @ ( bNF_rel_fun @ A @ E @ B @ F3 @ R3 @ S2 ) @ ( bNF_rel_fun @ E @ C @ F3 @ D @ R8 @ S7 ) ) @ ( bNF_rel_fun @ A @ C @ B @ D @ ( relcompp @ A @ E @ C @ R3 @ R8 ) @ ( relcompp @ B @ F3 @ D @ S2 @ S7 ) ) ) ).
% pos_fun_distr
thf(fact_232_gfp_Omono2mono2,axiom,
! [C: $tType,A: $tType,B: $tType,D: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Ordb: B > B > $o,Ordc: C > C > $o,F2: B > C > A,Orda: D > D > $o,T3: D > B,T4: D > C] :
( ( comple1396247847notone @ ( product_prod @ B @ C ) @ A @ ( basic_rel_prod @ B @ B @ C @ C @ Ordb @ Ordc )
@ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
@ ( product_case_prod @ B @ C @ A @ F2 ) )
=> ( ( comple1396247847notone @ D @ B @ Orda @ Ordb @ T3 )
=> ( ( comple1396247847notone @ D @ C @ Orda @ Ordc @ T4 )
=> ( comple1396247847notone @ D @ A @ Orda
@ ^ [X3: A,Y3: A] : ( ord_less_eq @ A @ Y3 @ X3 )
@ ^ [X3: D] : ( F2 @ ( T3 @ X3 ) @ ( T4 @ X3 ) ) ) ) ) ) ) ).
% gfp.mono2mono2
thf(fact_233_Bex__def__raw,axiom,
! [A: $tType] :
( ( bex @ A )
= ( ^ [A6: set @ A,P4: A > $o] :
? [X3: A] :
( ( member @ A @ X3 @ A6 )
& ( P4 @ X3 ) ) ) ) ).
% Bex_def_raw
thf(fact_234_rel__pred__comp__def,axiom,
! [B: $tType,A: $tType] :
( ( rel_pred_comp @ A @ B )
= ( ^ [R5: A > B > $o,P4: B > $o,X3: A] :
? [Y3: B] :
( ( R5 @ X3 @ Y3 )
& ( P4 @ Y3 ) ) ) ) ).
% rel_pred_comp_def
thf(fact_235_pred__subset__eq,axiom,
! [A: $tType,R3: set @ A,S2: set @ A] :
( ( ord_less_eq @ ( A > $o )
@ ^ [X3: A] : ( member @ A @ X3 @ R3 )
@ ^ [X3: A] : ( member @ A @ X3 @ S2 ) )
= ( ord_less_eq @ ( set @ A ) @ R3 @ S2 ) ) ).
% pred_subset_eq
thf(fact_236_eq__subset,axiom,
! [A: $tType,P: A > A > $o] :
( ord_less_eq @ ( A > A > $o )
@ ^ [Y: A,Z: A] : ( Y = Z )
@ ^ [A2: A,B2: A] :
( ( P @ A2 @ B2 )
| ( A2 = B2 ) ) ) ).
% eq_subset
thf(fact_237_predicate2D__conj,axiom,
! [A: $tType,B: $tType,P: A > B > $o,Q: A > B > $o,R3: $o,X: A,Y5: B] :
( ( ( ord_less_eq @ ( A > B > $o ) @ P @ Q )
& R3 )
=> ( R3
& ( ( P @ X @ Y5 )
=> ( Q @ X @ Y5 ) ) ) ) ).
% predicate2D_conj
thf(fact_238_refl__ge__eq,axiom,
! [A: $tType,R3: A > A > $o] :
( ! [X2: A] : ( R3 @ X2 @ X2 )
=> ( ord_less_eq @ ( A > A > $o )
@ ^ [Y: A,Z: A] : ( Y = Z )
@ R3 ) ) ).
% refl_ge_eq
thf(fact_239_ge__eq__refl,axiom,
! [A: $tType,R3: A > A > $o,X: A] :
( ( ord_less_eq @ ( A > A > $o )
@ ^ [Y: A,Z: A] : ( Y = Z )
@ R3 )
=> ( R3 @ X @ X ) ) ).
% ge_eq_refl
thf(fact_240_mono__transfer,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType] :
( ( ( order @ B @ ( type2 @ B ) )
& ( order @ D @ ( type2 @ D ) )
& ( order @ C @ ( type2 @ C ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A3: A > B > $o,B3: C > D > $o] :
( ( bi_total @ A @ B @ A3 )
=> ( ( bNF_rel_fun @ A @ B @ ( A > $o ) @ ( B > $o ) @ A3
@ ( bNF_rel_fun @ A @ B @ $o @ $o @ A3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( ord_less_eq @ A )
@ ( ord_less_eq @ B ) )
=> ( ( bNF_rel_fun @ C @ D @ ( C > $o ) @ ( D > $o ) @ B3
@ ( bNF_rel_fun @ C @ D @ $o @ $o @ B3
@ ^ [Y: $o,Z: $o] : ( Y = Z ) )
@ ( ord_less_eq @ C )
@ ( ord_less_eq @ D ) )
=> ( bNF_rel_fun @ ( A > C ) @ ( B > D ) @ $o @ $o @ ( bNF_rel_fun @ A @ B @ C @ D @ A3 @ B3 )
@ ^ [Y: $o,Z: $o] : ( Y = Z )
@ ( order_mono @ A @ C )
@ ( order_mono @ B @ D ) ) ) ) ) ) ).
% mono_transfer
thf(fact_241_less__eq__set__def,axiom,
! [A: $tType] :
( ( ord_less_eq @ ( set @ A ) )
= ( ^ [A6: set @ A,B7: set @ A] :
( ord_less_eq @ ( A > $o )
@ ^ [X3: A] : ( member @ A @ X3 @ A6 )
@ ^ [X3: A] : ( member @ A @ X3 @ B7 ) ) ) ) ).
% less_eq_set_def
thf(fact_242_rtranclp_Omono,axiom,
! [A: $tType,R6: A > A > $o] :
( order_mono @ ( A > A > $o ) @ ( A > A > $o )
@ ^ [P5: A > A > $o,X1: A,X22: A] :
( ? [A2: A] :
( ( X1 = A2 )
& ( X22 = A2 ) )
| ? [A2: A,B2: A,C4: A] :
( ( X1 = A2 )
& ( X22 = C4 )
& ( P5 @ A2 @ B2 )
& ( R6 @ B2 @ C4 ) ) ) ) ).
% rtranclp.mono
thf(fact_243_tranclp_Omono,axiom,
! [A: $tType,R6: A > A > $o] :
( order_mono @ ( A > A > $o ) @ ( A > A > $o )
@ ^ [P5: A > A > $o,X1: A,X22: A] :
( ? [A2: A,B2: A] :
( ( X1 = A2 )
& ( X22 = B2 )
& ( R6 @ A2 @ B2 ) )
| ? [A2: A,B2: A,C4: A] :
( ( X1 = A2 )
& ( X22 = C4 )
& ( P5 @ A2 @ B2 )
& ( R6 @ B2 @ C4 ) ) ) ) ).
% tranclp.mono
thf(fact_244_mono__compose,axiom,
! [D: $tType,C: $tType,B: $tType,A: $tType] :
( ( ( order @ A @ ( type2 @ A ) )
& ( order @ C @ ( type2 @ C ) ) )
=> ! [Q: A > B > C,F2: D > B] :
( ( order_mono @ A @ ( B > C ) @ Q )
=> ( order_mono @ A @ ( D > C )
@ ^ [I2: A,X3: D] : ( Q @ I2 @ ( F2 @ X3 ) ) ) ) ) ).
% mono_compose
thf(fact_245_conj__subset__def,axiom,
! [A: $tType,A3: set @ A,P: A > $o,Q: A > $o] :
( ( ord_less_eq @ ( set @ A ) @ A3
@ ( collect @ A
@ ^ [X3: A] :
( ( P @ X3 )
& ( Q @ X3 ) ) ) )
= ( ( ord_less_eq @ ( set @ A ) @ A3 @ ( collect @ A @ P ) )
& ( ord_less_eq @ ( set @ A ) @ A3 @ ( collect @ A @ Q ) ) ) ) ).
% conj_subset_def
thf(fact_246_DEADID_Orel__reflp,axiom,
! [A: $tType] :
( reflp @ A
@ ^ [Y: A,Z: A] : ( Y = Z ) ) ).
% DEADID.rel_reflp
thf(fact_247_subset__Collect__iff,axiom,
! [A: $tType,B3: set @ A,A3: set @ A,P: A > $o] :
( ( ord_less_eq @ ( set @ A ) @ B3 @ A3 )
=> ( ( ord_less_eq @ ( set @ A ) @ B3
@ ( collect @ A
@ ^ [X3: A] :
( ( member @ A @ X3 @ A3 )
& ( P @ X3 ) ) ) )
= ( ! [X3: A] :
( ( member @ A @ X3 @ B3 )
=> ( P @ X3 ) ) ) ) ) ).
% subset_Collect_iff
thf(fact_248_subset__CollectI,axiom,
! [A: $tType,B3: set @ A,A3: set @ A,Q: A > $o,P: A > $o] :
( ( ord_less_eq @ ( set @ A ) @ B3 @ A3 )
=> ( ! [X2: A] :
( ( member @ A @ X2 @ B3 )
=> ( ( Q @ X2 )
=> ( P @ X2 ) ) )
=> ( ord_less_eq @ ( set @ A )
@ ( collect @ A
@ ^ [X3: A] :
( ( member @ A @ X3 @ B3 )
& ( Q @ X3 ) ) )
@ ( collect @ A
@ ^ [X3: A] :
( ( member @ A @ X3 @ A3 )
& ( P @ X3 ) ) ) ) ) ) ).
% subset_CollectI
thf(fact_249_rel__fun__iff__geq__image2p,axiom,
! [C: $tType,D: $tType,B: $tType,A: $tType] :
( ( bNF_rel_fun @ A @ B @ C @ D )
= ( ^ [R5: A > B > $o,S5: C > D > $o,F: A > C,G3: B > D] : ( ord_less_eq @ ( C > D > $o ) @ ( bNF_Greatest_image2p @ A @ C @ B @ D @ F @ G3 @ R5 ) @ S5 ) ) ) ).
% rel_fun_iff_geq_image2p
thf(fact_250_prop__restrict,axiom,
! [A: $tType,X: A,Z3: set @ A,X4: set @ A,P: A > $o] :
( ( member @ A @ X @ Z3 )
=> ( ( ord_less_eq @ ( set @ A ) @ Z3
@ ( collect @ A
@ ^ [X3: A] :
( ( member @ A @ X3 @ X4 )
& ( P @ X3 ) ) ) )
=> ( P @ X ) ) ) ).
% prop_restrict
thf(fact_251_rel__fun__image2p,axiom,
! [A: $tType,C: $tType,D: $tType,B: $tType,R3: A > B > $o,F2: A > C,G: B > D] : ( bNF_rel_fun @ A @ B @ C @ D @ R3 @ ( bNF_Greatest_image2p @ A @ C @ B @ D @ F2 @ G @ R3 ) @ F2 @ G ) ).
% rel_fun_image2p
thf(fact_252_image2p__def,axiom,
! [D: $tType,B: $tType,A: $tType,C: $tType] :
( ( bNF_Greatest_image2p @ C @ A @ D @ B )
= ( ^ [F: C > A,G3: D > B,R5: C > D > $o,X3: A,Y3: B] :
? [X7: C,Y6: D] :
( ( R5 @ X7 @ Y6 )
& ( ( F @ X7 )
= X3 )
& ( ( G3 @ Y6 )
= Y3 ) ) ) ) ).
% image2p_def
thf(fact_253_nchotomy__relcomppE,axiom,
! [C: $tType,B: $tType,A: $tType,D: $tType,F2: B > A,R6: C > A > $o,S4: A > D > $o,A4: C,C3: D] :
( ! [Y2: A] :
? [X6: B] :
( Y2
= ( F2 @ X6 ) )
=> ( ( relcompp @ C @ A @ D @ R6 @ S4 @ A4 @ C3 )
=> ~ ! [B5: B] :
( ( R6 @ A4 @ ( F2 @ B5 ) )
=> ~ ( S4 @ ( F2 @ B5 ) @ C3 ) ) ) ) ).
% nchotomy_relcomppE
thf(fact_254_Collect__restrict,axiom,
! [A: $tType,X4: set @ A,P: A > $o] :
( ord_less_eq @ ( set @ A )
@ ( collect @ A
@ ^ [X3: A] :
( ( member @ A @ X3 @ X4 )
& ( P @ X3 ) ) )
@ X4 ) ).
% Collect_restrict
thf(fact_255_Domainp__prod__fun__eq,axiom,
! [C: $tType,B: $tType,A: $tType,T: B > C > $o] :
( ( domainp @ ( A > B ) @ ( A > C )
@ ( bNF_rel_fun @ A @ A @ B @ C
@ ^ [Y: A,Z: A] : ( Y = Z )
@ T ) )
= ( ^ [F: A > B] :
! [X3: A] : ( domainp @ B @ C @ T @ ( F @ X3 ) ) ) ) ).
% Domainp_prod_fun_eq
%----Type constructors (10)
thf(tcon_fun___Complete__Lattices_Ocomplete__lattice,axiom,
! [A7: $tType,A8: $tType] :
( ( comple187826305attice @ A8 @ ( type2 @ A8 ) )
=> ( comple187826305attice @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_fun___Orderings_Opreorder,axiom,
! [A7: $tType,A8: $tType] :
( ( preorder @ A8 @ ( type2 @ A8 ) )
=> ( preorder @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_fun___Orderings_Oorder,axiom,
! [A7: $tType,A8: $tType] :
( ( order @ A8 @ ( type2 @ A8 ) )
=> ( order @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_Set_Oset___Complete__Lattices_Ocomplete__lattice_1,axiom,
! [A7: $tType] : ( comple187826305attice @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Opreorder_2,axiom,
! [A7: $tType] : ( preorder @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Oorder_3,axiom,
! [A7: $tType] : ( order @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_HOL_Obool___Complete__Lattices_Ocomplete__lattice_4,axiom,
comple187826305attice @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Opreorder_5,axiom,
preorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Olinorder,axiom,
linorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Oorder_6,axiom,
order @ $o @ ( type2 @ $o ) ).
%----Helper facts (3)
thf(help_If_3_1_T,axiom,
! [P: $o] :
( ( P = $true )
| ( P = $false ) ) ).
thf(help_If_2_1_T,axiom,
! [A: $tType,X: A,Y5: A] :
( ( if @ A @ $false @ X @ Y5 )
= Y5 ) ).
thf(help_If_1_1_T,axiom,
! [A: $tType,X: A,Y5: A] :
( ( if @ A @ $true @ X @ Y5 )
= X ) ).
%----Conjectures (1)
thf(conj_0,conjecture,
( bNF_rel_fun @ ( a > b > $o ) @ ( a > b > $o ) @ ( ( c > d > $o ) > ( product_prod @ ( coinductive_llist @ a ) @ c ) > ( product_prod @ ( coinductive_llist @ b ) @ d ) > $o ) @ ( ( c > d > $o ) > ( tLList446370796tllist @ a @ c ) > ( tLList446370796tllist @ b @ d ) > $o )
@ ^ [Y: a > b > $o,Z: a > b > $o] : ( Y = Z )
@ ( bNF_rel_fun @ ( c > d > $o ) @ ( c > d > $o ) @ ( ( product_prod @ ( coinductive_llist @ a ) @ c ) > ( product_prod @ ( coinductive_llist @ b ) @ d ) > $o ) @ ( ( tLList446370796tllist @ a @ c ) > ( tLList446370796tllist @ b @ d ) > $o )
@ ^ [Y: c > d > $o,Z: c > d > $o] : ( Y = Z )
@ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ a ) @ c ) @ ( tLList446370796tllist @ a @ c ) @ ( ( product_prod @ ( coinductive_llist @ b ) @ d ) > $o ) @ ( ( tLList446370796tllist @ b @ d ) > $o ) @ ( tLList47617868tllist @ a @ c )
@ ( bNF_rel_fun @ ( product_prod @ ( coinductive_llist @ b ) @ d ) @ ( tLList446370796tllist @ b @ d ) @ $o @ $o @ ( tLList47617868tllist @ b @ d )
@ ^ [Y: $o,Z: $o] : ( Y = Z ) ) ) )
@ ^ [P4: a > b > $o,Q2: c > d > $o] :
( product_case_prod @ ( coinductive_llist @ a ) @ c @ ( ( product_prod @ ( coinductive_llist @ b ) @ d ) > $o )
@ ^ [Xs: coinductive_llist @ a,B2: c] :
( product_case_prod @ ( coinductive_llist @ b ) @ d @ $o
@ ^ [Ys: coinductive_llist @ b,B8: d] :
( ( coindu1486289336t_all2 @ a @ b @ P4 @ Xs @ Ys )
& ( ( coinductive_lfinite @ a @ Xs )
=> ( Q2 @ B2 @ B8 ) ) ) ) )
@ ( tLList1380991092t_all2 @ a @ b @ c @ d ) ) ).
%------------------------------------------------------------------------------