TPTP Problem File: DAT215^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : DAT215^1 : TPTP v9.0.0. Released v7.0.0.
% Domain : Data Structures
% Problem : Splay tree analysis 270
% Version : [Bla16] axioms : Especial.
% English :
% Refs : [Nip14] Nipkow (2014), Amortized Complexity Verified
% : [RB15] Reynolds & Blanchette (2015), A Decision Procedure for
% : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source : [Bla16]
% Names : splay_tree_analysis__270.p [Bla16]
% Status : Theorem
% Rating : 1.00 v9.0.0, 0.67 v8.2.0, 1.00 v8.1.0, 0.50 v7.5.0, 1.00 v7.1.0
% Syntax : Number of formulae : 359 ( 92 unt; 72 typ; 0 def)
% Number of atoms : 941 ( 286 equ; 0 cnn)
% Maximal formula atoms : 19 ( 3 avg)
% Number of connectives : 5834 ( 163 ~; 8 |; 81 &;4996 @)
% ( 0 <=>; 586 =>; 0 <=; 0 <~>)
% Maximal formula depth : 28 ( 10 avg)
% Number of types : 3 ( 2 usr)
% Number of type conns : 334 ( 334 >; 0 *; 0 +; 0 <<)
% Number of symbols : 73 ( 70 usr; 4 con; 0-6 aty)
% Number of variables : 1397 ( 19 ^;1278 !; 26 ?;1397 :)
% ( 74 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_THM_EQU_NAR
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2016-07-13 14:50:37.787
%------------------------------------------------------------------------------
%----Could-be-implicit typings (8)
thf(ty_t_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t,type,
splay_2011811431op_s_t: $tType > $tType ).
thf(ty_t_Product__Type_Oprod,type,
product_prod: $tType > $tType > $tType ).
thf(ty_t_Tree_Otree,type,
tree: $tType > $tType ).
thf(ty_t_List_Olist,type,
list: $tType > $tType ).
thf(ty_t_Set_Oset,type,
set: $tType > $tType ).
thf(ty_t_Nat_Onat,type,
nat: $tType ).
thf(ty_t_itself,type,
itself: $tType > $tType ).
thf(ty_tf_a,type,
a: $tType ).
%----Explicit typings (64)
thf(sy_cl_HOL_Otype,type,
type:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Oord,type,
ord:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Oorder,type,
order:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Ono__bot,type,
no_bot:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Ono__top,type,
no_top:
!>[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_Orderings_Owellorder,type,
wellorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Odense__order,type,
dense_order:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__idom,type,
linordered_idom:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__semidom,type,
linordered_semidom:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Divides_Osemiring__numeral__div,type,
semiring_numeral_div:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Oordered__ab__semigroup__add__imp__le,type,
ordere236663937imp_le:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Oordered__cancel__ab__semigroup__add,type,
ordere223160158up_add:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Ostrict__ordered__ab__semigroup__add,type,
strict2144017051up_add:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Conditionally__Complete__Lattices_Oconditionally__complete__linorder,type,
condit1037483654norder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_c_Groups_Oone__class_Oone,type,
one_one:
!>[A: $tType] : A ).
thf(sy_c_Groups_Oplus__class_Oplus,type,
plus_plus:
!>[A: $tType] : ( A > A > A ) ).
thf(sy_c_If,type,
if:
!>[A: $tType] : ( $o > A > A > A ) ).
thf(sy_c_List_Odistinct,type,
distinct:
!>[A: $tType] : ( ( list @ A ) > $o ) ).
thf(sy_c_Orderings_Oord__class_Oless,type,
ord_less:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Orderings_Oord__class_Oless__eq,type,
ord_less_eq:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Product__Type_OPair,type,
product_Pair:
!>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).
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_Oold_Oprod_Orec__prod,type,
product_rec_prod:
!>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).
thf(sy_c_Pure_Otype,type,
type2:
!>[A: $tType] : ( itself @ A ) ).
thf(sy_c_Set_OCollect,type,
collect:
!>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
thf(sy_c_Set__Interval_Ofold__atLeastAtMost__nat,type,
set_fo292404081st_nat:
!>[A: $tType] : ( ( nat > A > A ) > nat > nat > A > A ) ).
thf(sy_c_Set__Interval_Ofold__atLeastAtMost__nat__rel,type,
set_fo2092542664at_rel:
!>[A: $tType] : ( ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) > ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) > $o ) ).
thf(sy_c_Splay__Tree_Odelete,type,
splay_delete:
!>[A: $tType] : ( A > ( tree @ A ) > ( tree @ A ) ) ).
thf(sy_c_Splay__Tree_Oinsert,type,
splay_insert:
!>[A: $tType] : ( A > ( tree @ A ) > ( tree @ A ) ) ).
thf(sy_c_Splay__Tree_Ois__root,type,
splay_is_root:
!>[A: $tType] : ( A > ( tree @ A ) > $o ) ).
thf(sy_c_Splay__Tree_Osplay,type,
splay_splay:
!>[A: $tType] : ( A > ( tree @ A ) > ( tree @ A ) ) ).
thf(sy_c_Splay__Tree_Osplay__max,type,
splay_splay_max:
!>[A: $tType] : ( ( tree @ A ) > ( tree @ A ) ) ).
thf(sy_c_Splay__Tree_Osplay__rel,type,
splay_splay_rel:
!>[A: $tType] : ( ( product_prod @ A @ ( tree @ A ) ) > ( product_prod @ A @ ( tree @ A ) ) > $o ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Onxt_092_060_094sub_062s_092_060_094sub_062t,type,
splay_859309299xt_s_t:
!>[A: $tType] : ( ( splay_2011811431op_s_t @ A ) > ( tree @ A ) > ( tree @ A ) ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Onxt_092_060_094sub_062s_092_060_094sub_062t__rel,type,
splay_1102316486_t_rel:
!>[A: $tType] : ( ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) > ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) > $o ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_ODelete,type,
splay_705249169Delete:
!>[A: $tType] : ( A > ( splay_2011811431op_s_t @ A ) ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_OInsert,type,
splay_1105473951Insert:
!>[A: $tType] : ( A > ( splay_2011811431op_s_t @ A ) ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_OSplay,type,
splay_2088287777_Splay:
!>[A: $tType] : ( A > ( splay_2011811431op_s_t @ A ) ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_Ocase__op_092_060_094sub_062s_092_060_094sub_062t,type,
splay_549499974op_s_t:
!>[A: $tType,B: $tType] : ( ( A > B ) > ( A > B ) > ( A > B ) > ( splay_2011811431op_s_t @ A ) > B ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_Orec__op_092_060_094sub_062s_092_060_094sub_062t,type,
splay_2144473850op_s_t:
!>[A: $tType,C: $tType] : ( ( A > C ) > ( A > C ) > ( A > C ) > ( splay_2011811431op_s_t @ A ) > C ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_Orel__op_092_060_094sub_062s_092_060_094sub_062t,type,
splay_434753539op_s_t:
!>[A: $tType,B: $tType] : ( ( A > B > $o ) > ( splay_2011811431op_s_t @ A ) > ( splay_2011811431op_s_t @ B ) > $o ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_Oset__op_092_060_094sub_062s_092_060_094sub_062t,type,
splay_1816468620op_s_t:
!>[A: $tType] : ( ( splay_2011811431op_s_t @ A ) > ( set @ A ) ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Ot__splay,type,
splay_914434265_splay:
!>[A: $tType] : ( A > ( tree @ A ) > nat ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Ot__splay__max,type,
splay_878424299ay_max:
!>[A: $tType] : ( ( tree @ A ) > nat ) ).
thf(sy_c_Splay__Tree__Analysis__Base_Ot__splay__max__rel,type,
splay_1816415694ax_rel:
!>[A: $tType] : ( ( tree @ A ) > ( tree @ A ) > $o ) ).
thf(sy_c_Tree_Oinorder,type,
inorder:
!>[A: $tType] : ( ( tree @ A ) > ( list @ A ) ) ).
thf(sy_c_Tree_Olinorder__class_Obst,type,
linorder_bst:
!>[A: $tType] : ( ( tree @ A ) > $o ) ).
thf(sy_c_Tree_Olinorder__class_Obst__eq,type,
linorder_bst_eq:
!>[A: $tType] : ( ( tree @ A ) > $o ) ).
thf(sy_c_Tree_Olinorder__class_Obst__eq__rel,type,
linorder_bst_eq_rel:
!>[A: $tType] : ( ( tree @ A ) > ( tree @ A ) > $o ) ).
thf(sy_c_Tree_Olinorder__class_Obst__rel,type,
linorder_bst_rel:
!>[A: $tType] : ( ( tree @ A ) > ( tree @ A ) > $o ) ).
thf(sy_c_Tree_Opreorder,type,
preorder2:
!>[A: $tType] : ( ( tree @ A ) > ( list @ A ) ) ).
thf(sy_c_Tree_Otree_OLeaf,type,
leaf:
!>[A: $tType] : ( tree @ A ) ).
thf(sy_c_Tree_Otree_ONode,type,
node:
!>[A: $tType] : ( ( tree @ A ) > A > ( tree @ A ) > ( tree @ A ) ) ).
thf(sy_c_Tree_Otree_Oset__tree,type,
set_tree:
!>[A: $tType] : ( ( tree @ A ) > ( set @ A ) ) ).
thf(sy_c_Wellfounded_Oaccp,type,
accp:
!>[A: $tType] : ( ( A > A > $o ) > A > $o ) ).
thf(sy_c_Wellfounded_Olex__prod,type,
lex_prod:
!>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ B @ B ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).
thf(sy_c_Wellfounded_Omeasure,type,
measure:
!>[A: $tType] : ( ( A > nat ) > ( set @ ( product_prod @ A @ A ) ) ) ).
thf(sy_c_Wfrec_Osame__fst,type,
same_fst:
!>[A: $tType,B: $tType] : ( ( A > $o ) > ( A > ( set @ ( product_prod @ B @ B ) ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).
thf(sy_c_member,type,
member:
!>[A: $tType] : ( A > ( set @ A ) > $o ) ).
thf(sy_v_a____,type,
a2: tree @ a ).
thf(sy_v_f____,type,
f: splay_2011811431op_s_t @ a ).
%----Relevant facts (256)
thf(fact_0__C2_C,axiom,
linorder_bst @ a @ a2 ).
% "2"
thf(fact_1_bst__delete,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A] :
( ( linorder_bst @ A @ T2 )
=> ( linorder_bst @ A @ ( splay_delete @ A @ A2 @ T2 ) ) ) ) ).
% bst_delete
thf(fact_2_bst__insert,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A] :
( ( linorder_bst @ A @ T2 )
=> ( linorder_bst @ A @ ( splay_insert @ A @ A2 @ T2 ) ) ) ) ).
% bst_insert
thf(fact_3_bst__splay__max,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A] :
( ( linorder_bst @ A @ T2 )
=> ( linorder_bst @ A @ ( splay_splay_max @ A @ T2 ) ) ) ) ).
% bst_splay_max
thf(fact_4_bst__eq__if__bst,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A] :
( ( linorder_bst @ A @ T2 )
=> ( linorder_bst_eq @ A @ T2 ) ) ) ).
% bst_eq_if_bst
thf(fact_5_nxt_092_060_094sub_062s_092_060_094sub_062t_Osimps_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,T2: tree @ A] :
( ( splay_859309299xt_s_t @ A @ ( splay_705249169Delete @ A @ A2 ) @ T2 )
= ( splay_delete @ A @ A2 @ T2 ) ) ) ).
% nxt\<^sub>s\<^sub>t.simps(3)
thf(fact_6_nxt_092_060_094sub_062s_092_060_094sub_062t_Osimps_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,T2: tree @ A] :
( ( splay_859309299xt_s_t @ A @ ( splay_1105473951Insert @ A @ A2 ) @ T2 )
= ( splay_insert @ A @ A2 @ T2 ) ) ) ).
% nxt\<^sub>s\<^sub>t.simps(2)
thf(fact_7_bst__splay,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A] :
( ( linorder_bst @ A @ T2 )
=> ( linorder_bst @ A @ ( splay_splay @ A @ A2 @ T2 ) ) ) ) ).
% bst_splay
thf(fact_8_bst_Osimps_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ( linorder_bst @ A @ ( leaf @ A ) ) ) ).
% bst.simps(1)
thf(fact_9_nxt_092_060_094sub_062s_092_060_094sub_062t_Osimps_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,T2: tree @ A] :
( ( splay_859309299xt_s_t @ A @ ( splay_2088287777_Splay @ A @ A2 ) @ T2 )
= ( splay_splay @ A @ A2 @ T2 ) ) ) ).
% nxt\<^sub>s\<^sub>t.simps(1)
thf(fact_10_splay__max__eq__splay__ex,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A] :
( ( linorder_bst @ A @ T2 )
=> ? [A3: A] :
( ( splay_splay_max @ A @ T2 )
= ( splay_splay @ A @ A3 @ T2 ) ) ) ) ).
% splay_max_eq_splay_ex
thf(fact_11_distinct__preorder__if__bst,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A] :
( ( linorder_bst @ A @ T2 )
=> ( distinct @ A @ ( preorder2 @ A @ T2 ) ) ) ) ).
% distinct_preorder_if_bst
thf(fact_12_op_092_060_094sub_062s_092_060_094sub_062t_Oinject_I3_J,axiom,
! [A: $tType,X3: A,Y3: A] :
( ( ( splay_705249169Delete @ A @ X3 )
= ( splay_705249169Delete @ A @ Y3 ) )
= ( X3 = Y3 ) ) ).
% op\<^sub>s\<^sub>t.inject(3)
thf(fact_13_op_092_060_094sub_062s_092_060_094sub_062t_Oinject_I2_J,axiom,
! [A: $tType,X2: A,Y2: A] :
( ( ( splay_1105473951Insert @ A @ X2 )
= ( splay_1105473951Insert @ A @ Y2 ) )
= ( X2 = Y2 ) ) ).
% op\<^sub>s\<^sub>t.inject(2)
thf(fact_14_op_092_060_094sub_062s_092_060_094sub_062t_Oinject_I1_J,axiom,
! [A: $tType,X1: A,Y1: A] :
( ( ( splay_2088287777_Splay @ A @ X1 )
= ( splay_2088287777_Splay @ A @ Y1 ) )
= ( X1 = Y1 ) ) ).
% op\<^sub>s\<^sub>t.inject(1)
thf(fact_15_splay__Leaf__iff,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,T2: tree @ A] :
( ( ( splay_splay @ A @ A2 @ T2 )
= ( leaf @ A ) )
= ( T2
= ( leaf @ A ) ) ) ) ).
% splay_Leaf_iff
thf(fact_16_splay__max__Leaf__iff,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A] :
( ( ( splay_splay_max @ A @ T2 )
= ( leaf @ A ) )
= ( T2
= ( leaf @ A ) ) ) ) ).
% splay_max_Leaf_iff
thf(fact_17_splay_Osimps_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( splay_splay @ A @ A2 @ ( leaf @ A ) )
= ( leaf @ A ) ) ) ).
% splay.simps(1)
thf(fact_18_splay__max_Osimps_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ( ( splay_splay_max @ A @ ( leaf @ A ) )
= ( leaf @ A ) ) ) ).
% splay_max.simps(1)
thf(fact_19_bst__eq_Osimps_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ( linorder_bst_eq @ A @ ( leaf @ A ) ) ) ).
% bst_eq.simps(1)
thf(fact_20_op_092_060_094sub_062s_092_060_094sub_062t_Odistinct_I5_J,axiom,
! [A: $tType,X2: A,X3: A] :
( ( splay_1105473951Insert @ A @ X2 )
!= ( splay_705249169Delete @ A @ X3 ) ) ).
% op\<^sub>s\<^sub>t.distinct(5)
thf(fact_21_op_092_060_094sub_062s_092_060_094sub_062t_Odistinct_I3_J,axiom,
! [A: $tType,X1: A,X3: A] :
( ( splay_2088287777_Splay @ A @ X1 )
!= ( splay_705249169Delete @ A @ X3 ) ) ).
% op\<^sub>s\<^sub>t.distinct(3)
thf(fact_22_op_092_060_094sub_062s_092_060_094sub_062t_Odistinct_I1_J,axiom,
! [A: $tType,X1: A,X2: A] :
( ( splay_2088287777_Splay @ A @ X1 )
!= ( splay_1105473951Insert @ A @ X2 ) ) ).
% op\<^sub>s\<^sub>t.distinct(1)
thf(fact_23_nxt_092_060_094sub_062s_092_060_094sub_062t_Oelims,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: splay_2011811431op_s_t @ A,Xa: tree @ A,Y: tree @ A] :
( ( ( splay_859309299xt_s_t @ A @ X @ Xa )
= Y )
=> ( ! [A3: A] :
( ( X
= ( splay_2088287777_Splay @ A @ A3 ) )
=> ( Y
!= ( splay_splay @ A @ A3 @ Xa ) ) )
=> ( ! [A3: A] :
( ( X
= ( splay_1105473951Insert @ A @ A3 ) )
=> ( Y
!= ( splay_insert @ A @ A3 @ Xa ) ) )
=> ~ ! [A3: A] :
( ( X
= ( splay_705249169Delete @ A @ A3 ) )
=> ( Y
!= ( splay_delete @ A @ A3 @ Xa ) ) ) ) ) ) ) ).
% nxt\<^sub>s\<^sub>t.elims
thf(fact_24_op_092_060_094sub_062s_092_060_094sub_062t_Oinduct,axiom,
! [A: $tType,P: ( splay_2011811431op_s_t @ A ) > $o,Op_s_t: splay_2011811431op_s_t @ A] :
( ! [X4: A] : ( P @ ( splay_2088287777_Splay @ A @ X4 ) )
=> ( ! [X4: A] : ( P @ ( splay_1105473951Insert @ A @ X4 ) )
=> ( ! [X4: A] : ( P @ ( splay_705249169Delete @ A @ X4 ) )
=> ( P @ Op_s_t ) ) ) ) ).
% op\<^sub>s\<^sub>t.induct
thf(fact_25_nxt_092_060_094sub_062s_092_060_094sub_062t_Oinduct,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: ( splay_2011811431op_s_t @ A ) > ( tree @ A ) > $o,A0: splay_2011811431op_s_t @ A,A1: tree @ A] :
( ! [A3: A,X12: tree @ A] : ( P @ ( splay_2088287777_Splay @ A @ A3 ) @ X12 )
=> ( ! [A3: A,X12: tree @ A] : ( P @ ( splay_1105473951Insert @ A @ A3 ) @ X12 )
=> ( ! [A3: A,X12: tree @ A] : ( P @ ( splay_705249169Delete @ A @ A3 ) @ X12 )
=> ( P @ A0 @ A1 ) ) ) ) ) ).
% nxt\<^sub>s\<^sub>t.induct
thf(fact_26_op_092_060_094sub_062s_092_060_094sub_062t_Oexhaust,axiom,
! [A: $tType,Y: splay_2011811431op_s_t @ A] :
( ! [X12: A] :
( Y
!= ( splay_2088287777_Splay @ A @ X12 ) )
=> ( ! [X22: A] :
( Y
!= ( splay_1105473951Insert @ A @ X22 ) )
=> ~ ! [X32: A] :
( Y
!= ( splay_705249169Delete @ A @ X32 ) ) ) ) ).
% op\<^sub>s\<^sub>t.exhaust
thf(fact_27_op_092_060_094sub_062s_092_060_094sub_062t_Oset__cases,axiom,
! [A: $tType,E: A,A2: splay_2011811431op_s_t @ A] :
( ( member @ A @ E @ ( splay_1816468620op_s_t @ A @ A2 ) )
=> ( ( A2
!= ( splay_2088287777_Splay @ A @ E ) )
=> ( ( A2
!= ( splay_1105473951Insert @ A @ E ) )
=> ( A2
= ( splay_705249169Delete @ A @ E ) ) ) ) ) ).
% op\<^sub>s\<^sub>t.set_cases
thf(fact_28_nxt_092_060_094sub_062s_092_060_094sub_062t_Opelims,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: splay_2011811431op_s_t @ A,Xa: tree @ A,Y: tree @ A] :
( ( ( splay_859309299xt_s_t @ A @ X @ Xa )
= Y )
=> ( ( accp @ ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) @ ( splay_1102316486_t_rel @ A ) @ ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ X @ Xa ) )
=> ( ! [A3: A] :
( ( X
= ( splay_2088287777_Splay @ A @ A3 ) )
=> ( ( Y
= ( splay_splay @ A @ A3 @ Xa ) )
=> ~ ( accp @ ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) @ ( splay_1102316486_t_rel @ A ) @ ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_2088287777_Splay @ A @ A3 ) @ Xa ) ) ) )
=> ( ! [A3: A] :
( ( X
= ( splay_1105473951Insert @ A @ A3 ) )
=> ( ( Y
= ( splay_insert @ A @ A3 @ Xa ) )
=> ~ ( accp @ ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) @ ( splay_1102316486_t_rel @ A ) @ ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_1105473951Insert @ A @ A3 ) @ Xa ) ) ) )
=> ~ ! [A3: A] :
( ( X
= ( splay_705249169Delete @ A @ A3 ) )
=> ( ( Y
= ( splay_delete @ A @ A3 @ Xa ) )
=> ~ ( accp @ ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) @ ( splay_1102316486_t_rel @ A ) @ ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_705249169Delete @ A @ A3 ) @ Xa ) ) ) ) ) ) ) ) ) ).
% nxt\<^sub>s\<^sub>t.pelims
thf(fact_29_nxt_092_060_094sub_062s_092_060_094sub_062t_Ocases,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A )] :
( ! [A3: A,T3: tree @ A] :
( X
!= ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_2088287777_Splay @ A @ A3 ) @ T3 ) )
=> ( ! [A3: A,T3: tree @ A] :
( X
!= ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_1105473951Insert @ A @ A3 ) @ T3 ) )
=> ~ ! [A3: A,T3: tree @ A] :
( X
!= ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_705249169Delete @ A @ A3 ) @ T3 ) ) ) ) ) ).
% nxt\<^sub>s\<^sub>t.cases
thf(fact_30_op_092_060_094sub_062s_092_060_094sub_062t_Orel__cases,axiom,
! [A: $tType,B: $tType,R: A > B > $o,A2: splay_2011811431op_s_t @ A,B2: splay_2011811431op_s_t @ B] :
( ( splay_434753539op_s_t @ A @ B @ R @ A2 @ B2 )
=> ( ! [X4: A] :
( ( A2
= ( splay_2088287777_Splay @ A @ X4 ) )
=> ! [Y4: B] :
( ( B2
= ( splay_2088287777_Splay @ B @ Y4 ) )
=> ~ ( R @ X4 @ Y4 ) ) )
=> ( ! [Xa2: A] :
( ( A2
= ( splay_1105473951Insert @ A @ Xa2 ) )
=> ! [Ya: B] :
( ( B2
= ( splay_1105473951Insert @ B @ Ya ) )
=> ~ ( R @ Xa2 @ Ya ) ) )
=> ~ ! [Xb: A] :
( ( A2
= ( splay_705249169Delete @ A @ Xb ) )
=> ! [Yb: B] :
( ( B2
= ( splay_705249169Delete @ B @ Yb ) )
=> ~ ( R @ Xb @ Yb ) ) ) ) ) ) ).
% op\<^sub>s\<^sub>t.rel_cases
thf(fact_31_op_092_060_094sub_062s_092_060_094sub_062t_Orel__induct,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X: splay_2011811431op_s_t @ A,Y: splay_2011811431op_s_t @ B,Q: ( splay_2011811431op_s_t @ A ) > ( splay_2011811431op_s_t @ B ) > $o] :
( ( splay_434753539op_s_t @ A @ B @ R @ X @ Y )
=> ( ! [A12: A,B1: B] :
( ( R @ A12 @ B1 )
=> ( Q @ ( splay_2088287777_Splay @ A @ A12 ) @ ( splay_2088287777_Splay @ B @ B1 ) ) )
=> ( ! [A22: A,B22: B] :
( ( R @ A22 @ B22 )
=> ( Q @ ( splay_1105473951Insert @ A @ A22 ) @ ( splay_1105473951Insert @ B @ B22 ) ) )
=> ( ! [A32: A,B3: B] :
( ( R @ A32 @ B3 )
=> ( Q @ ( splay_705249169Delete @ A @ A32 ) @ ( splay_705249169Delete @ B @ B3 ) ) )
=> ( Q @ X @ Y ) ) ) ) ) ).
% op\<^sub>s\<^sub>t.rel_induct
thf(fact_32_distinct__inorder__if__bst,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A] :
( ( linorder_bst @ A @ T2 )
=> ( distinct @ A @ ( inorder @ A @ T2 ) ) ) ) ).
% distinct_inorder_if_bst
thf(fact_33_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I15_J,axiom,
! [C: $tType,A: $tType,F1: A > C,F2: A > C,F3: A > C,X3: A] :
( ( splay_2144473850op_s_t @ A @ C @ F1 @ F2 @ F3 @ ( splay_705249169Delete @ A @ X3 ) )
= ( F3 @ X3 ) ) ).
% op\<^sub>s\<^sub>t.simps(15)
thf(fact_34_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I14_J,axiom,
! [C: $tType,A: $tType,F1: A > C,F2: A > C,F3: A > C,X2: A] :
( ( splay_2144473850op_s_t @ A @ C @ F1 @ F2 @ F3 @ ( splay_1105473951Insert @ A @ X2 ) )
= ( F2 @ X2 ) ) ).
% op\<^sub>s\<^sub>t.simps(14)
thf(fact_35_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I13_J,axiom,
! [C: $tType,A: $tType,F1: A > C,F2: A > C,F3: A > C,X1: A] :
( ( splay_2144473850op_s_t @ A @ C @ F1 @ F2 @ F3 @ ( splay_2088287777_Splay @ A @ X1 ) )
= ( F1 @ X1 ) ) ).
% op\<^sub>s\<^sub>t.simps(13)
thf(fact_36_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I12_J,axiom,
! [B: $tType,A: $tType,F1: A > B,F2: A > B,F3: A > B,X3: A] :
( ( splay_549499974op_s_t @ A @ B @ F1 @ F2 @ F3 @ ( splay_705249169Delete @ A @ X3 ) )
= ( F3 @ X3 ) ) ).
% op\<^sub>s\<^sub>t.simps(12)
thf(fact_37_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I11_J,axiom,
! [B: $tType,A: $tType,F1: A > B,F2: A > B,F3: A > B,X2: A] :
( ( splay_549499974op_s_t @ A @ B @ F1 @ F2 @ F3 @ ( splay_1105473951Insert @ A @ X2 ) )
= ( F2 @ X2 ) ) ).
% op\<^sub>s\<^sub>t.simps(11)
thf(fact_38_insert_Ocases,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: product_prod @ A @ ( tree @ A )] :
~ ! [X4: A,T3: tree @ A] :
( X
!= ( product_Pair @ A @ ( tree @ A ) @ X4 @ T3 ) ) ) ).
% insert.cases
thf(fact_39_op_092_060_094sub_062s_092_060_094sub_062t_Orel__eq,axiom,
! [A: $tType] :
( ( splay_434753539op_s_t @ A @ A
@ ^ [Y5: A,Z: A] : ( Y5 = Z ) )
= ( ^ [Y5: splay_2011811431op_s_t @ A,Z: splay_2011811431op_s_t @ A] : ( Y5 = Z ) ) ) ).
% op\<^sub>s\<^sub>t.rel_eq
thf(fact_40_op_092_060_094sub_062s_092_060_094sub_062t_Orel__cong,axiom,
! [A: $tType,B: $tType,X: splay_2011811431op_s_t @ A,Ya2: splay_2011811431op_s_t @ A,Y: splay_2011811431op_s_t @ B,Xa: splay_2011811431op_s_t @ B,R: A > B > $o,Ra: A > B > $o] :
( ( X = Ya2 )
=> ( ( Y = Xa )
=> ( ! [Z2: A,Yb: B] :
( ( member @ A @ Z2 @ ( splay_1816468620op_s_t @ A @ Ya2 ) )
=> ( ( member @ B @ Yb @ ( splay_1816468620op_s_t @ B @ Xa ) )
=> ( ( R @ Z2 @ Yb )
= ( Ra @ Z2 @ Yb ) ) ) )
=> ( ( splay_434753539op_s_t @ A @ B @ R @ X @ Y )
= ( splay_434753539op_s_t @ A @ B @ Ra @ Ya2 @ Xa ) ) ) ) ) ).
% op\<^sub>s\<^sub>t.rel_cong
thf(fact_41_op_092_060_094sub_062s_092_060_094sub_062t_Orel__refl,axiom,
! [B: $tType,Ra: B > B > $o,X: splay_2011811431op_s_t @ B] :
( ! [X4: B] : ( Ra @ X4 @ X4 )
=> ( splay_434753539op_s_t @ B @ B @ Ra @ X @ X ) ) ).
% op\<^sub>s\<^sub>t.rel_refl
thf(fact_42_op_092_060_094sub_062s_092_060_094sub_062t_Orel__mono__strong,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X: splay_2011811431op_s_t @ A,Y: splay_2011811431op_s_t @ B,Ra: A > B > $o] :
( ( splay_434753539op_s_t @ A @ B @ R @ X @ Y )
=> ( ! [Z2: A,Yb: B] :
( ( member @ A @ Z2 @ ( splay_1816468620op_s_t @ A @ X ) )
=> ( ( member @ B @ Yb @ ( splay_1816468620op_s_t @ B @ Y ) )
=> ( ( R @ Z2 @ Yb )
=> ( Ra @ Z2 @ Yb ) ) ) )
=> ( splay_434753539op_s_t @ A @ B @ Ra @ X @ Y ) ) ) ).
% op\<^sub>s\<^sub>t.rel_mono_strong
thf(fact_43_op_092_060_094sub_062s_092_060_094sub_062t_Orel__refl__strong,axiom,
! [A: $tType,X: splay_2011811431op_s_t @ A,Ra: A > A > $o] :
( ! [Z2: A] :
( ( member @ A @ Z2 @ ( splay_1816468620op_s_t @ A @ X ) )
=> ( Ra @ Z2 @ Z2 ) )
=> ( splay_434753539op_s_t @ A @ A @ Ra @ X @ X ) ) ).
% op\<^sub>s\<^sub>t.rel_refl_strong
thf(fact_44_op_092_060_094sub_062s_092_060_094sub_062t_Orel__intros_I1_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X1: A,Y1: B] :
( ( R @ X1 @ Y1 )
=> ( splay_434753539op_s_t @ A @ B @ R @ ( splay_2088287777_Splay @ A @ X1 ) @ ( splay_2088287777_Splay @ B @ Y1 ) ) ) ).
% op\<^sub>s\<^sub>t.rel_intros(1)
thf(fact_45_mem__Collect__eq,axiom,
! [A: $tType,A2: A,P: A > $o] :
( ( member @ A @ A2 @ ( collect @ A @ P ) )
= ( P @ A2 ) ) ).
% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
! [A: $tType,A4: set @ A] :
( ( collect @ A
@ ^ [X5: A] : ( member @ A @ X5 @ A4 ) )
= A4 ) ).
% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ! [X4: A] :
( ( P @ X4 )
= ( Q @ X4 ) )
=> ( ( collect @ A @ P )
= ( collect @ A @ Q ) ) ) ).
% Collect_cong
thf(fact_48_ext,axiom,
! [B: $tType,A: $tType,F: A > B,G: A > B] :
( ! [X4: A] :
( ( F @ X4 )
= ( G @ X4 ) )
=> ( F = G ) ) ).
% ext
thf(fact_49_op_092_060_094sub_062s_092_060_094sub_062t_Orel__intros_I2_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X2: A,Y2: B] :
( ( R @ X2 @ Y2 )
=> ( splay_434753539op_s_t @ A @ B @ R @ ( splay_1105473951Insert @ A @ X2 ) @ ( splay_1105473951Insert @ B @ Y2 ) ) ) ).
% op\<^sub>s\<^sub>t.rel_intros(2)
thf(fact_50_op_092_060_094sub_062s_092_060_094sub_062t_Orel__intros_I3_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X3: A,Y3: B] :
( ( R @ X3 @ Y3 )
=> ( splay_434753539op_s_t @ A @ B @ R @ ( splay_705249169Delete @ A @ X3 ) @ ( splay_705249169Delete @ B @ Y3 ) ) ) ).
% op\<^sub>s\<^sub>t.rel_intros(3)
thf(fact_51_op_092_060_094sub_062s_092_060_094sub_062t_Orel__inject_I1_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X1: A,Y1: B] :
( ( splay_434753539op_s_t @ A @ B @ R @ ( splay_2088287777_Splay @ A @ X1 ) @ ( splay_2088287777_Splay @ B @ Y1 ) )
= ( R @ X1 @ Y1 ) ) ).
% op\<^sub>s\<^sub>t.rel_inject(1)
thf(fact_52_op_092_060_094sub_062s_092_060_094sub_062t_Orel__inject_I2_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X2: A,Y2: B] :
( ( splay_434753539op_s_t @ A @ B @ R @ ( splay_1105473951Insert @ A @ X2 ) @ ( splay_1105473951Insert @ B @ Y2 ) )
= ( R @ X2 @ Y2 ) ) ).
% op\<^sub>s\<^sub>t.rel_inject(2)
thf(fact_53_op_092_060_094sub_062s_092_060_094sub_062t_Orel__inject_I3_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X3: A,Y3: B] :
( ( splay_434753539op_s_t @ A @ B @ R @ ( splay_705249169Delete @ A @ X3 ) @ ( splay_705249169Delete @ B @ Y3 ) )
= ( R @ X3 @ Y3 ) ) ).
% op\<^sub>s\<^sub>t.rel_inject(3)
thf(fact_54_op_092_060_094sub_062s_092_060_094sub_062t_Oset__intros_I1_J,axiom,
! [A: $tType,A2: A] : ( member @ A @ A2 @ ( splay_1816468620op_s_t @ A @ ( splay_2088287777_Splay @ A @ A2 ) ) ) ).
% op\<^sub>s\<^sub>t.set_intros(1)
thf(fact_55_op_092_060_094sub_062s_092_060_094sub_062t_Oset__intros_I2_J,axiom,
! [A: $tType,Aa: A] : ( member @ A @ Aa @ ( splay_1816468620op_s_t @ A @ ( splay_1105473951Insert @ A @ Aa ) ) ) ).
% op\<^sub>s\<^sub>t.set_intros(2)
thf(fact_56_op_092_060_094sub_062s_092_060_094sub_062t_Oset__intros_I3_J,axiom,
! [A: $tType,Ab: A] : ( member @ A @ Ab @ ( splay_1816468620op_s_t @ A @ ( splay_705249169Delete @ A @ Ab ) ) ) ).
% op\<^sub>s\<^sub>t.set_intros(3)
thf(fact_57_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I1_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X1: A,Y2: B] :
~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_2088287777_Splay @ A @ X1 ) @ ( splay_1105473951Insert @ B @ Y2 ) ) ).
% op\<^sub>s\<^sub>t.rel_distinct(1)
thf(fact_58_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I2_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,Y2: A,X1: B] :
~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_1105473951Insert @ A @ Y2 ) @ ( splay_2088287777_Splay @ B @ X1 ) ) ).
% op\<^sub>s\<^sub>t.rel_distinct(2)
thf(fact_59_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I3_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X1: A,Y3: B] :
~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_2088287777_Splay @ A @ X1 ) @ ( splay_705249169Delete @ B @ Y3 ) ) ).
% op\<^sub>s\<^sub>t.rel_distinct(3)
thf(fact_60_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I4_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,Y3: A,X1: B] :
~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_705249169Delete @ A @ Y3 ) @ ( splay_2088287777_Splay @ B @ X1 ) ) ).
% op\<^sub>s\<^sub>t.rel_distinct(4)
thf(fact_61_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I5_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,X2: A,Y3: B] :
~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_1105473951Insert @ A @ X2 ) @ ( splay_705249169Delete @ B @ Y3 ) ) ).
% op\<^sub>s\<^sub>t.rel_distinct(5)
thf(fact_62_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I6_J,axiom,
! [A: $tType,B: $tType,R: A > B > $o,Y3: A,X2: B] :
~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_705249169Delete @ A @ Y3 ) @ ( splay_1105473951Insert @ B @ X2 ) ) ).
% op\<^sub>s\<^sub>t.rel_distinct(6)
thf(fact_63_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I10_J,axiom,
! [B: $tType,A: $tType,F1: A > B,F2: A > B,F3: A > B,X1: A] :
( ( splay_549499974op_s_t @ A @ B @ F1 @ F2 @ F3 @ ( splay_2088287777_Splay @ A @ X1 ) )
= ( F1 @ X1 ) ) ).
% op\<^sub>s\<^sub>t.simps(10)
thf(fact_64_old_Oprod_Oinject,axiom,
! [A: $tType,B: $tType,A2: A,B2: B,A5: A,B4: B] :
( ( ( product_Pair @ A @ B @ A2 @ B2 )
= ( product_Pair @ A @ B @ A5 @ B4 ) )
= ( ( A2 = A5 )
& ( B2 = B4 ) ) ) ).
% old.prod.inject
thf(fact_65_prod_Oinject,axiom,
! [A: $tType,B: $tType,X1: A,X2: B,Y1: A,Y2: B] :
( ( ( product_Pair @ A @ B @ X1 @ X2 )
= ( product_Pair @ A @ B @ Y1 @ Y2 ) )
= ( ( X1 = Y1 )
& ( X2 = Y2 ) ) ) ).
% prod.inject
thf(fact_66_splay_Opsimps_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( leaf @ A ) ) )
=> ( ( splay_splay @ A @ A2 @ ( leaf @ A ) )
= ( leaf @ A ) ) ) ) ).
% splay.psimps(1)
thf(fact_67_accp__induct__rule,axiom,
! [A: $tType,R2: A > A > $o,A2: A,P: A > $o] :
( ( accp @ A @ R2 @ A2 )
=> ( ! [X4: A] :
( ( accp @ A @ R2 @ X4 )
=> ( ! [Y6: A] :
( ( R2 @ Y6 @ X4 )
=> ( P @ Y6 ) )
=> ( P @ X4 ) ) )
=> ( P @ A2 ) ) ) ).
% accp_induct_rule
thf(fact_68_not__accp__down,axiom,
! [A: $tType,R: A > A > $o,X: A] :
( ~ ( accp @ A @ R @ X )
=> ~ ! [Z2: A] :
( ( R @ Z2 @ X )
=> ( accp @ A @ R @ Z2 ) ) ) ).
% not_accp_down
thf(fact_69_accp__downward,axiom,
! [A: $tType,R2: A > A > $o,B2: A,A2: A] :
( ( accp @ A @ R2 @ B2 )
=> ( ( R2 @ A2 @ B2 )
=> ( accp @ A @ R2 @ A2 ) ) ) ).
% accp_downward
thf(fact_70_accp_Oinducts,axiom,
! [A: $tType,R2: A > A > $o,X: A,P: A > $o] :
( ( accp @ A @ R2 @ X )
=> ( ! [X4: A] :
( ! [Y6: A] :
( ( R2 @ Y6 @ X4 )
=> ( accp @ A @ R2 @ Y6 ) )
=> ( ! [Y6: A] :
( ( R2 @ Y6 @ X4 )
=> ( P @ Y6 ) )
=> ( P @ X4 ) ) )
=> ( P @ X ) ) ) ).
% accp.inducts
thf(fact_71_accp__induct,axiom,
! [A: $tType,R2: A > A > $o,A2: A,P: A > $o] :
( ( accp @ A @ R2 @ A2 )
=> ( ! [X4: A] :
( ( accp @ A @ R2 @ X4 )
=> ( ! [Y6: A] :
( ( R2 @ Y6 @ X4 )
=> ( P @ Y6 ) )
=> ( P @ X4 ) ) )
=> ( P @ A2 ) ) ) ).
% accp_induct
thf(fact_72_accp_Ointros,axiom,
! [A: $tType,R2: A > A > $o,X: A] :
( ! [Y4: A] :
( ( R2 @ Y4 @ X )
=> ( accp @ A @ R2 @ Y4 ) )
=> ( accp @ A @ R2 @ X ) ) ).
% accp.intros
thf(fact_73_surj__pair,axiom,
! [A: $tType,B: $tType,P2: product_prod @ A @ B] :
? [X4: A,Y4: B] :
( P2
= ( product_Pair @ A @ B @ X4 @ Y4 ) ) ).
% surj_pair
thf(fact_74_prod__cases,axiom,
! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,P2: product_prod @ A @ B] :
( ! [A3: A,B5: B] : ( P @ ( product_Pair @ A @ B @ A3 @ B5 ) )
=> ( P @ P2 ) ) ).
% prod_cases
thf(fact_75_Pair__inject,axiom,
! [A: $tType,B: $tType,A2: A,B2: B,A5: A,B4: B] :
( ( ( product_Pair @ A @ B @ A2 @ B2 )
= ( product_Pair @ A @ B @ A5 @ B4 ) )
=> ~ ( ( A2 = A5 )
=> ( B2 != B4 ) ) ) ).
% Pair_inject
thf(fact_76_prod__cases3,axiom,
! [A: $tType,B: $tType,C: $tType,Y: product_prod @ A @ ( product_prod @ B @ C )] :
~ ! [A3: A,B5: B,C2: C] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ C ) @ A3 @ ( product_Pair @ B @ C @ B5 @ C2 ) ) ) ).
% prod_cases3
thf(fact_77_prod__cases4,axiom,
! [A: $tType,B: $tType,C: $tType,D: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
~ ! [A3: A,B5: B,C2: C,D2: D] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B5 @ ( product_Pair @ C @ D @ C2 @ D2 ) ) ) ) ).
% prod_cases4
thf(fact_78_prod__cases5,axiom,
! [A: $tType,B: $tType,C: $tType,D: $tType,E2: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) )] :
~ ! [A3: A,B5: B,C2: C,D2: D,E3: E2] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ E2 ) @ C2 @ ( product_Pair @ D @ E2 @ D2 @ E3 ) ) ) ) ) ).
% prod_cases5
thf(fact_79_prod__cases6,axiom,
! [A: $tType,B: $tType,C: $tType,D: $tType,E2: $tType,F4: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) )] :
~ ! [A3: A,B5: B,C2: C,D2: D,E3: E2,F5: F4] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E2 @ F4 ) @ D2 @ ( product_Pair @ E2 @ F4 @ E3 @ F5 ) ) ) ) ) ) ).
% prod_cases6
thf(fact_80_prod__cases7,axiom,
! [A: $tType,B: $tType,C: $tType,D: $tType,E2: $tType,F4: $tType,G2: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) )] :
~ ! [A3: A,B5: B,C2: C,D2: D,E3: E2,F5: F4,G3: G2] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) @ D2 @ ( product_Pair @ E2 @ ( product_prod @ F4 @ G2 ) @ E3 @ ( product_Pair @ F4 @ G2 @ F5 @ G3 ) ) ) ) ) ) ) ).
% prod_cases7
thf(fact_81_prod__induct3,axiom,
! [C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ C )] :
( ! [A3: A,B5: B,C2: C] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A3 @ ( product_Pair @ B @ C @ B5 @ C2 ) ) )
=> ( P @ X ) ) ).
% prod_induct3
thf(fact_82_prod__induct4,axiom,
! [D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
( ! [A3: A,B5: B,C2: C,D2: D] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B5 @ ( product_Pair @ C @ D @ C2 @ D2 ) ) ) )
=> ( P @ X ) ) ).
% prod_induct4
thf(fact_83_prod__induct5,axiom,
! [E2: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) )] :
( ! [A3: A,B5: B,C2: C,D2: D,E3: E2] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ E2 ) @ C2 @ ( product_Pair @ D @ E2 @ D2 @ E3 ) ) ) ) )
=> ( P @ X ) ) ).
% prod_induct5
thf(fact_84_prod__induct6,axiom,
! [F4: $tType,E2: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) )] :
( ! [A3: A,B5: B,C2: C,D2: D,E3: E2,F5: F4] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E2 @ F4 ) @ D2 @ ( product_Pair @ E2 @ F4 @ E3 @ F5 ) ) ) ) ) )
=> ( P @ X ) ) ).
% prod_induct6
thf(fact_85_prod__induct7,axiom,
! [G2: $tType,F4: $tType,E2: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) )] :
( ! [A3: A,B5: B,C2: C,D2: D,E3: E2,F5: F4,G3: G2] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) @ D2 @ ( product_Pair @ E2 @ ( product_prod @ F4 @ G2 ) @ E3 @ ( product_Pair @ F4 @ G2 @ F5 @ G3 ) ) ) ) ) ) )
=> ( P @ X ) ) ).
% prod_induct7
thf(fact_86_old_Oprod_Oexhaust,axiom,
! [A: $tType,B: $tType,Y: product_prod @ A @ B] :
~ ! [A3: A,B5: B] :
( Y
!= ( product_Pair @ A @ B @ A3 @ B5 ) ) ).
% old.prod.exhaust
thf(fact_87_old_Oprod_Oinducts,axiom,
! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
( ! [A3: A,B5: B] : ( P @ ( product_Pair @ A @ B @ A3 @ B5 ) )
=> ( P @ Prod ) ) ).
% old.prod.inducts
thf(fact_88_accp_Ocases,axiom,
! [A: $tType,R2: A > A > $o,A2: A] :
( ( accp @ A @ R2 @ A2 )
=> ! [Y6: A] :
( ( R2 @ Y6 @ A2 )
=> ( accp @ A @ R2 @ Y6 ) ) ) ).
% accp.cases
thf(fact_89_accp_Osimps,axiom,
! [A: $tType] :
( ( accp @ A )
= ( ^ [R3: A > A > $o,A6: A] :
? [X5: A] :
( ( A6 = X5 )
& ! [Y7: A] :
( ( R3 @ Y7 @ X5 )
=> ( accp @ A @ R3 @ Y7 ) ) ) ) ) ).
% accp.simps
thf(fact_90_old_Oprod_Orec,axiom,
! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A2: A,B2: B] :
( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A2 @ B2 ) )
= ( F1 @ A2 @ B2 ) ) ).
% old.prod.rec
thf(fact_91_in__lex__prod,axiom,
! [A: $tType,B: $tType,A2: A,B2: B,A5: A,B4: B,R2: set @ ( product_prod @ A @ A ),S: set @ ( product_prod @ B @ B )] :
( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A2 @ B2 ) @ ( product_Pair @ A @ B @ A5 @ B4 ) ) @ ( lex_prod @ A @ B @ R2 @ S ) )
= ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A2 @ A5 ) @ R2 )
| ( ( A2 = A5 )
& ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ B2 @ B4 ) @ S ) ) ) ) ).
% in_lex_prod
thf(fact_92_splay_Opsimps_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,L: tree @ A,R2: tree @ A] :
( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( node @ A @ L @ A2 @ R2 ) ) )
=> ( ( splay_splay @ A @ A2 @ ( node @ A @ L @ A2 @ R2 ) )
= ( node @ A @ L @ A2 @ R2 ) ) ) ) ).
% splay.psimps(2)
thf(fact_93_internal__case__prod__conv,axiom,
! [B: $tType,A: $tType,C: $tType,C3: B > C > A,A2: B,B2: C] :
( ( produc2004651681e_prod @ B @ C @ A @ C3 @ ( product_Pair @ B @ C @ A2 @ B2 ) )
= ( C3 @ A2 @ B2 ) ) ).
% internal_case_prod_conv
thf(fact_94_ssubst__Pair__rhs,axiom,
! [B: $tType,A: $tType,R2: A,S: B,R: set @ ( product_prod @ A @ B ),S2: B] :
( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S ) @ R )
=> ( ( S2 = S )
=> ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S2 ) @ R ) ) ) ).
% ssubst_Pair_rhs
thf(fact_95_curry__conv,axiom,
! [A: $tType,C: $tType,B: $tType] :
( ( product_curry @ B @ C @ A )
= ( ^ [F6: ( product_prod @ B @ C ) > A,A6: B,B6: C] : ( F6 @ ( product_Pair @ B @ C @ A6 @ B6 ) ) ) ) ).
% curry_conv
thf(fact_96_curryI,axiom,
! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
( ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) )
=> ( product_curry @ A @ B @ $o @ F @ A2 @ B2 ) ) ).
% curryI
thf(fact_97_tree_Oinject,axiom,
! [A: $tType,X21: tree @ A,X222: A,X23: tree @ A,Y21: tree @ A,Y22: A,Y23: tree @ A] :
( ( ( node @ A @ X21 @ X222 @ X23 )
= ( node @ A @ Y21 @ Y22 @ Y23 ) )
= ( ( X21 = Y21 )
& ( X222 = Y22 )
& ( X23 = Y23 ) ) ) ).
% tree.inject
thf(fact_98_t__splay__max_Oinduct,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: ( tree @ A ) > $o,A0: tree @ A] :
( ( P @ ( leaf @ A ) )
=> ( ! [L2: tree @ A,B5: A] : ( P @ ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) )
=> ( ! [L2: tree @ A,B5: A,Rl: tree @ A,C2: A,Rr: tree @ A] :
( ( ( Rr
!= ( leaf @ A ) )
=> ( P @ Rr ) )
=> ( P @ ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) ) )
=> ( P @ A0 ) ) ) ) ) ).
% t_splay_max.induct
thf(fact_99_t__splay__max_Ocases,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ( X
!= ( leaf @ A ) )
=> ( ! [L2: tree @ A,B5: A] :
( X
!= ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) )
=> ~ ! [L2: tree @ A,B5: A,Rl: tree @ A,C2: A,Rr: tree @ A] :
( X
!= ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) ) ) ) ) ).
% t_splay_max.cases
thf(fact_100__092_060Phi_062_Oinduct,axiom,
! [A: $tType,P: ( tree @ A ) > $o,A0: tree @ A] :
( ( P @ ( leaf @ A ) )
=> ( ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( P @ L2 )
=> ( ( P @ R4 )
=> ( P @ ( node @ A @ L2 @ A3 @ R4 ) ) ) )
=> ( P @ A0 ) ) ) ).
% \<Phi>.induct
thf(fact_101__092_060Phi_062_Ocases,axiom,
! [A: $tType,X: tree @ A] :
( ( X
!= ( leaf @ A ) )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( X
!= ( node @ A @ L2 @ A3 @ R4 ) ) ) ).
% \<Phi>.cases
thf(fact_102_bst__eq_Oinduct,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: ( tree @ A ) > $o,A0: tree @ A] :
( ( P @ ( leaf @ A ) )
=> ( ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( P @ L2 )
=> ( ( P @ R4 )
=> ( P @ ( node @ A @ L2 @ A3 @ R4 ) ) ) )
=> ( P @ A0 ) ) ) ) ).
% bst_eq.induct
thf(fact_103_bst__eq_Ocases,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ( X
!= ( leaf @ A ) )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( X
!= ( node @ A @ L2 @ A3 @ R4 ) ) ) ) ).
% bst_eq.cases
thf(fact_104_mirror_Oinduct,axiom,
! [A: $tType,P: ( tree @ A ) > $o,A0: tree @ A] :
( ( P @ ( leaf @ A ) )
=> ( ! [L2: tree @ A,X4: A,R4: tree @ A] :
( ( P @ R4 )
=> ( ( P @ L2 )
=> ( P @ ( node @ A @ L2 @ X4 @ R4 ) ) ) )
=> ( P @ A0 ) ) ) ).
% mirror.induct
thf(fact_105_tree_Oexhaust,axiom,
! [A: $tType,Y: tree @ A] :
( ( Y
!= ( leaf @ A ) )
=> ~ ! [X212: tree @ A,X223: A,X232: tree @ A] :
( Y
!= ( node @ A @ X212 @ X223 @ X232 ) ) ) ).
% tree.exhaust
thf(fact_106_neq__Leaf__iff,axiom,
! [A: $tType,T2: tree @ A] :
( ( T2
!= ( leaf @ A ) )
= ( ? [L3: tree @ A,A6: A,R3: tree @ A] :
( T2
= ( node @ A @ L3 @ A6 @ R3 ) ) ) ) ).
% neq_Leaf_iff
thf(fact_107_tree_Oinduct,axiom,
! [A: $tType,P: ( tree @ A ) > $o,Tree: tree @ A] :
( ( P @ ( leaf @ A ) )
=> ( ! [X12: tree @ A,X22: A,X32: tree @ A] :
( ( P @ X12 )
=> ( ( P @ X32 )
=> ( P @ ( node @ A @ X12 @ X22 @ X32 ) ) ) )
=> ( P @ Tree ) ) ) ).
% tree.induct
thf(fact_108_tree_Odistinct_I1_J,axiom,
! [A: $tType,X21: tree @ A,X222: A,X23: tree @ A] :
( ( leaf @ A )
!= ( node @ A @ X21 @ X222 @ X23 ) ) ).
% tree.distinct(1)
thf(fact_109_splay_Osimps_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,L: tree @ A,R2: tree @ A] :
( ( splay_splay @ A @ A2 @ ( node @ A @ L @ A2 @ R2 ) )
= ( node @ A @ L @ A2 @ R2 ) ) ) ).
% splay.simps(2)
thf(fact_110_curryE,axiom,
! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
( ( product_curry @ A @ B @ $o @ F @ A2 @ B2 )
=> ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).
% curryE
thf(fact_111_curryD,axiom,
! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
( ( product_curry @ A @ B @ $o @ F @ A2 @ B2 )
=> ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).
% curryD
thf(fact_112_splay__not__Leaf,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A] :
( ( T2
!= ( leaf @ A ) )
=> ? [L2: tree @ A,X4: A,R4: tree @ A] :
( ( splay_splay @ A @ A2 @ T2 )
= ( node @ A @ L2 @ X4 @ R4 ) ) ) ) ).
% splay_not_Leaf
thf(fact_113_t__splay_Ocases,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: product_prod @ A @ ( tree @ A )] :
( ! [A3: A] :
( X
!= ( product_Pair @ A @ ( tree @ A ) @ A3 @ ( leaf @ A ) ) )
=> ~ ! [A3: A,L2: tree @ A,B5: A,R4: tree @ A] :
( X
!= ( product_Pair @ A @ ( tree @ A ) @ A3 @ ( node @ A @ L2 @ B5 @ R4 ) ) ) ) ) ).
% t_splay.cases
thf(fact_114_splay__max__Leaf,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,L: tree @ A,A2: A,R2: tree @ A] :
( ( ( splay_splay_max @ A @ T2 )
= ( node @ A @ L @ A2 @ R2 ) )
=> ( R2
= ( leaf @ A ) ) ) ) ).
% splay_max_Leaf
thf(fact_115_splay__max_Osimps_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [La: tree @ A,A2: A] :
( ( splay_splay_max @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) )
= ( node @ A @ La @ A2 @ ( leaf @ A ) ) ) ) ).
% splay_max.simps(2)
thf(fact_116_splay_Opsimps_I13_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,X: A,B2: A,La: tree @ A,Lb: tree @ A] :
( ( ord_less @ A @ A2 @ X )
=> ( ( ord_less @ A @ B2 @ X )
=> ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ La @ A2 @ ( node @ A @ Lb @ B2 @ ( leaf @ A ) ) ) ) )
=> ( ( splay_splay @ A @ X @ ( node @ A @ La @ A2 @ ( node @ A @ Lb @ B2 @ ( leaf @ A ) ) ) )
= ( node @ A @ ( node @ A @ La @ A2 @ Lb ) @ B2 @ ( leaf @ A ) ) ) ) ) ) ) ).
% splay.psimps(13)
thf(fact_117_splay_Opsimps_I12_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,X: A,B2: A,La: tree @ A,Rb: tree @ A] :
( ( ord_less @ A @ A2 @ X )
=> ( ( ord_less @ A @ X @ B2 )
=> ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) ) )
=> ( ( splay_splay @ A @ X @ ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) )
= ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) ) ) ) ) ) ).
% splay.psimps(12)
thf(fact_118_splay_Opsimps_I10_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,X: A,L: tree @ A] :
( ( ord_less @ A @ A2 @ X )
=> ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ L @ A2 @ ( leaf @ A ) ) ) )
=> ( ( splay_splay @ A @ X @ ( node @ A @ L @ A2 @ ( leaf @ A ) ) )
= ( node @ A @ L @ A2 @ ( leaf @ A ) ) ) ) ) ) ).
% splay.psimps(10)
thf(fact_119_splay_Opsimps_I7_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,B2: A,A2: A,La: tree @ A,Rb: tree @ A] :
( ( ord_less @ A @ X @ B2 )
=> ( ( ord_less @ A @ A2 @ X )
=> ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) ) )
=> ( ( splay_splay @ A @ X @ ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) )
= ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) ) ) ) ) ) ).
% splay.psimps(7)
thf(fact_120_splay_Opsimps_I5_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,A2: A,B2: A,Ra2: tree @ A,Rb: tree @ A] :
( ( ord_less @ A @ X @ A2 )
=> ( ( ord_less @ A @ X @ B2 )
=> ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ ( node @ A @ ( leaf @ A ) @ A2 @ Ra2 ) @ B2 @ Rb ) ) )
=> ( ( splay_splay @ A @ X @ ( node @ A @ ( node @ A @ ( leaf @ A ) @ A2 @ Ra2 ) @ B2 @ Rb ) )
= ( node @ A @ ( leaf @ A ) @ A2 @ ( node @ A @ Ra2 @ B2 @ Rb ) ) ) ) ) ) ) ).
% splay.psimps(5)
thf(fact_121_splay_Osimps_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,La: tree @ A,Ra2: tree @ A,Rb: tree @ A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( splay_splay @ A @ A2 @ ( node @ A @ ( node @ A @ La @ A2 @ Ra2 ) @ B2 @ Rb ) )
= ( node @ A @ La @ A2 @ ( node @ A @ Ra2 @ B2 @ Rb ) ) ) ) ) ).
% splay.simps(3)
thf(fact_122_splay_Osimps_I9_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,Lb: tree @ A,La: tree @ A,Ra2: tree @ A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( splay_splay @ A @ A2 @ ( node @ A @ Lb @ B2 @ ( node @ A @ La @ A2 @ Ra2 ) ) )
= ( node @ A @ ( node @ A @ Lb @ B2 @ La ) @ A2 @ Ra2 ) ) ) ) ).
% splay.simps(9)
thf(fact_123_splay_Osimps_I13_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,X: A,B2: A,La: tree @ A,Lb: tree @ A] :
( ( ord_less @ A @ A2 @ X )
=> ( ( ord_less @ A @ B2 @ X )
=> ( ( splay_splay @ A @ X @ ( node @ A @ La @ A2 @ ( node @ A @ Lb @ B2 @ ( leaf @ A ) ) ) )
= ( node @ A @ ( node @ A @ La @ A2 @ Lb ) @ B2 @ ( leaf @ A ) ) ) ) ) ) ).
% splay.simps(13)
thf(fact_124_splay_Osimps_I12_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,X: A,B2: A,La: tree @ A,Rb: tree @ A] :
( ( ord_less @ A @ A2 @ X )
=> ( ( ord_less @ A @ X @ B2 )
=> ( ( splay_splay @ A @ X @ ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) )
= ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) ) ) ) ) ).
% splay.simps(12)
thf(fact_125_splay_Osimps_I10_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,X: A,L: tree @ A] :
( ( ord_less @ A @ A2 @ X )
=> ( ( splay_splay @ A @ X @ ( node @ A @ L @ A2 @ ( leaf @ A ) ) )
= ( node @ A @ L @ A2 @ ( leaf @ A ) ) ) ) ) ).
% splay.simps(10)
thf(fact_126_splay_Osimps_I7_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,B2: A,A2: A,La: tree @ A,Rb: tree @ A] :
( ( ord_less @ A @ X @ B2 )
=> ( ( ord_less @ A @ A2 @ X )
=> ( ( splay_splay @ A @ X @ ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) )
= ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) ) ) ) ) ).
% splay.simps(7)
thf(fact_127_splay_Osimps_I5_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,A2: A,B2: A,Ra2: tree @ A,Rb: tree @ A] :
( ( ord_less @ A @ X @ A2 )
=> ( ( ord_less @ A @ X @ B2 )
=> ( ( splay_splay @ A @ X @ ( node @ A @ ( node @ A @ ( leaf @ A ) @ A2 @ Ra2 ) @ B2 @ Rb ) )
= ( node @ A @ ( leaf @ A ) @ A2 @ ( node @ A @ Ra2 @ B2 @ Rb ) ) ) ) ) ) ).
% splay.simps(5)
thf(fact_128_splay_Osimps_I4_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,R2: tree @ A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( splay_splay @ A @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) )
= ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) ) ) ) ).
% splay.simps(4)
thf(fact_129_splay_Opsimps_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,La: tree @ A,Ra2: tree @ A,Rb: tree @ A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( node @ A @ ( node @ A @ La @ A2 @ Ra2 ) @ B2 @ Rb ) ) )
=> ( ( splay_splay @ A @ A2 @ ( node @ A @ ( node @ A @ La @ A2 @ Ra2 ) @ B2 @ Rb ) )
= ( node @ A @ La @ A2 @ ( node @ A @ Ra2 @ B2 @ Rb ) ) ) ) ) ) ).
% splay.psimps(3)
thf(fact_130_splay_Opsimps_I9_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,Lb: tree @ A,La: tree @ A,Ra2: tree @ A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( node @ A @ Lb @ B2 @ ( node @ A @ La @ A2 @ Ra2 ) ) ) )
=> ( ( splay_splay @ A @ A2 @ ( node @ A @ Lb @ B2 @ ( node @ A @ La @ A2 @ Ra2 ) ) )
= ( node @ A @ ( node @ A @ Lb @ B2 @ La ) @ A2 @ Ra2 ) ) ) ) ) ).
% splay.psimps(9)
thf(fact_131_splay_Opsimps_I4_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,R2: tree @ A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) ) )
=> ( ( splay_splay @ A @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) )
= ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) ) ) ) ) ).
% splay.psimps(4)
thf(fact_132_in__measure,axiom,
! [A: $tType,X: A,Y: A,F: A > nat] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ ( measure @ A @ F ) )
= ( ord_less @ nat @ ( F @ X ) @ ( F @ Y ) ) ) ).
% in_measure
thf(fact_133_same__fstI,axiom,
! [B: $tType,A: $tType,P: A > $o,X: A,Y8: B,Y: B,R: A > ( set @ ( product_prod @ B @ B ) )] :
( ( P @ X )
=> ( ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ Y8 @ Y ) @ ( R @ X ) )
=> ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X @ Y8 ) @ ( product_Pair @ A @ B @ X @ Y ) ) @ ( same_fst @ A @ B @ P @ R ) ) ) ) ).
% same_fstI
thf(fact_134_splay__bstR,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A,L: tree @ A,E: A,R2: tree @ A,X: A] :
( ( linorder_bst @ A @ T2 )
=> ( ( ( splay_splay @ A @ A2 @ T2 )
= ( node @ A @ L @ E @ R2 ) )
=> ( ( member @ A @ X @ ( set_tree @ A @ R2 ) )
=> ( ord_less @ A @ A2 @ X ) ) ) ) ) ).
% splay_bstR
thf(fact_135_splay__bstL,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A,L: tree @ A,E: A,R2: tree @ A,X: A] :
( ( linorder_bst @ A @ T2 )
=> ( ( ( splay_splay @ A @ A2 @ T2 )
= ( node @ A @ L @ E @ R2 ) )
=> ( ( member @ A @ X @ ( set_tree @ A @ L ) )
=> ( ord_less @ A @ X @ A2 ) ) ) ) ) ).
% splay_bstL
thf(fact_136_set__splay,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,T2: tree @ A] :
( ( set_tree @ A @ ( splay_splay @ A @ A2 @ T2 ) )
= ( set_tree @ A @ T2 ) ) ) ).
% set_splay
thf(fact_137_set__splay__max,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A] :
( ( set_tree @ A @ ( splay_splay_max @ A @ T2 ) )
= ( set_tree @ A @ T2 ) ) ) ).
% set_splay_max
thf(fact_138_tree_Oset__cases,axiom,
! [A: $tType,E: A,A2: tree @ A] :
( ( member @ A @ E @ ( set_tree @ A @ A2 ) )
=> ( ! [Z1: tree @ A] :
( ? [Z22: A,Z3: tree @ A] :
( A2
= ( node @ A @ Z1 @ Z22 @ Z3 ) )
=> ~ ( member @ A @ E @ ( set_tree @ A @ Z1 ) ) )
=> ( ! [Z1: tree @ A,Z3: tree @ A] :
( A2
!= ( node @ A @ Z1 @ E @ Z3 ) )
=> ~ ! [Z1: tree @ A,Z22: A,Z3: tree @ A] :
( ( A2
= ( node @ A @ Z1 @ Z22 @ Z3 ) )
=> ~ ( member @ A @ E @ ( set_tree @ A @ Z3 ) ) ) ) ) ) ).
% tree.set_cases
thf(fact_139_tree_Oset__intros_I1_J,axiom,
! [A: $tType,X: A,A1: tree @ A,A23: A,A33: tree @ A] :
( ( member @ A @ X @ ( set_tree @ A @ A1 ) )
=> ( member @ A @ X @ ( set_tree @ A @ ( node @ A @ A1 @ A23 @ A33 ) ) ) ) ).
% tree.set_intros(1)
thf(fact_140_tree_Oset__intros_I2_J,axiom,
! [A: $tType,A23: A,A1: tree @ A,A33: tree @ A] : ( member @ A @ A23 @ ( set_tree @ A @ ( node @ A @ A1 @ A23 @ A33 ) ) ) ).
% tree.set_intros(2)
thf(fact_141_tree_Oset__intros_I3_J,axiom,
! [A: $tType,Xa: A,A33: tree @ A,A1: tree @ A,A23: A] :
( ( member @ A @ Xa @ ( set_tree @ A @ A33 ) )
=> ( member @ A @ Xa @ ( set_tree @ A @ ( node @ A @ A1 @ A23 @ A33 ) ) ) ) ).
% tree.set_intros(3)
thf(fact_142_splay__to__root,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A,T4: tree @ A] :
( ( linorder_bst @ A @ T2 )
=> ( ( ( splay_splay @ A @ A2 @ T2 )
= T4 )
=> ( ( member @ A @ A2 @ ( set_tree @ A @ T2 ) )
= ( ? [L3: tree @ A,R3: tree @ A] :
( T4
= ( node @ A @ L3 @ A2 @ R3 ) ) ) ) ) ) ) ).
% splay_to_root
thf(fact_143_is__root__splay,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A] :
( ( linorder_bst @ A @ T2 )
=> ( ( splay_is_root @ A @ A2 @ ( splay_splay @ A @ A2 @ T2 ) )
= ( member @ A @ A2 @ ( set_tree @ A @ T2 ) ) ) ) ) ).
% is_root_splay
thf(fact_144_ex__in__set__tree,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A] :
( ( T2
!= ( leaf @ A ) )
=> ( ( linorder_bst @ A @ T2 )
=> ? [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ T2 ) )
& ( ( splay_splay @ A @ X4 @ T2 )
= ( splay_splay @ A @ A2 @ T2 ) )
& ( ( splay_914434265_splay @ A @ X4 @ T2 )
= ( splay_914434265_splay @ A @ A2 @ T2 ) ) ) ) ) ) ).
% ex_in_set_tree
thf(fact_145_bst_Oelims_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A,Y: $o] :
( ( ( linorder_bst @ A @ X )
= Y )
=> ( ( ( X
= ( leaf @ A ) )
=> ~ Y )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( Y
= ( ~ ( ( linorder_bst @ A @ L2 )
& ( linorder_bst @ A @ R4 )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ L2 ) )
=> ( ord_less @ A @ X5 @ A3 ) )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ R4 ) )
=> ( ord_less @ A @ A3 @ X5 ) ) ) ) ) ) ) ) ) ).
% bst.elims(1)
thf(fact_146_bst_Oelims_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ( linorder_bst @ A @ X )
=> ( ( X
!= ( leaf @ A ) )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ~ ( ( linorder_bst @ A @ L2 )
& ( linorder_bst @ A @ R4 )
& ! [X6: A] :
( ( member @ A @ X6 @ ( set_tree @ A @ L2 ) )
=> ( ord_less @ A @ X6 @ A3 ) )
& ! [X6: A] :
( ( member @ A @ X6 @ ( set_tree @ A @ R4 ) )
=> ( ord_less @ A @ A3 @ X6 ) ) ) ) ) ) ) ).
% bst.elims(2)
thf(fact_147_bst_Oelims_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ~ ( linorder_bst @ A @ X )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( linorder_bst @ A @ L2 )
& ( linorder_bst @ A @ R4 )
& ! [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ L2 ) )
=> ( ord_less @ A @ X4 @ A3 ) )
& ! [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ R4 ) )
=> ( ord_less @ A @ A3 @ X4 ) ) ) ) ) ) ).
% bst.elims(3)
thf(fact_148_bst_Osimps_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [L: tree @ A,A2: A,R2: tree @ A] :
( ( linorder_bst @ A @ ( node @ A @ L @ A2 @ R2 ) )
= ( ( linorder_bst @ A @ L )
& ( linorder_bst @ A @ R2 )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ L ) )
=> ( ord_less @ A @ X5 @ A2 ) )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ R2 ) )
=> ( ord_less @ A @ A2 @ X5 ) ) ) ) ) ).
% bst.simps(2)
thf(fact_149_bst_Opelims_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ( linorder_bst @ A @ X )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ X )
=> ( ( ( X
= ( leaf @ A ) )
=> ~ ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( leaf @ A ) ) )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) )
=> ~ ( ( linorder_bst @ A @ L2 )
& ( linorder_bst @ A @ R4 )
& ! [X6: A] :
( ( member @ A @ X6 @ ( set_tree @ A @ L2 ) )
=> ( ord_less @ A @ X6 @ A3 ) )
& ! [X6: A] :
( ( member @ A @ X6 @ ( set_tree @ A @ R4 ) )
=> ( ord_less @ A @ A3 @ X6 ) ) ) ) ) ) ) ) ) ).
% bst.pelims(2)
thf(fact_150_bst_Opelims_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A,Y: $o] :
( ( ( linorder_bst @ A @ X )
= Y )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ X )
=> ( ( ( X
= ( leaf @ A ) )
=> ( Y
=> ~ ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( leaf @ A ) ) ) )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( Y
= ( ( linorder_bst @ A @ L2 )
& ( linorder_bst @ A @ R4 )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ L2 ) )
=> ( ord_less @ A @ X5 @ A3 ) )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ R4 ) )
=> ( ord_less @ A @ A3 @ X5 ) ) ) )
=> ~ ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) ) ) ) ) ) ) ) ).
% bst.pelims(1)
thf(fact_151_bst_Opelims_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ~ ( linorder_bst @ A @ X )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ X )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( linorder_bst @ A @ L2 )
& ( linorder_bst @ A @ R4 )
& ! [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ L2 ) )
=> ( ord_less @ A @ X4 @ A3 ) )
& ! [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ R4 ) )
=> ( ord_less @ A @ A3 @ X4 ) ) ) ) ) ) ) ) ).
% bst.pelims(3)
thf(fact_152_t__splay__simps_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,R2: tree @ A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) )
= ( one_one @ nat ) ) ) ) ).
% t_splay_simps(2)
thf(fact_153_t__splay__simps_I6_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,L: tree @ A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( leaf @ A ) ) )
= ( one_one @ nat ) ) ) ) ).
% t_splay_simps(6)
thf(fact_154_bst__eq_Oelims_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A,Y: $o] :
( ( ( linorder_bst_eq @ A @ X )
= Y )
=> ( ( ( X
= ( leaf @ A ) )
=> ~ Y )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( Y
= ( ~ ( ( linorder_bst_eq @ A @ L2 )
& ( linorder_bst_eq @ A @ R4 )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ L2 ) )
=> ( ord_less_eq @ A @ X5 @ A3 ) )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ R4 ) )
=> ( ord_less_eq @ A @ A3 @ X5 ) ) ) ) ) ) ) ) ) ).
% bst_eq.elims(1)
thf(fact_155_t__splay__simps_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,L: tree @ A,R2: tree @ A] :
( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ A2 @ R2 ) )
= ( one_one @ nat ) ) ) ).
% t_splay_simps(1)
thf(fact_156_t__splay__simps_I7_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,L: tree @ A,Rl2: tree @ A,Rr2: tree @ A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ A2 @ Rr2 ) ) )
= ( one_one @ nat ) ) ) ) ).
% t_splay_simps(7)
thf(fact_157_t__splay__simps_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,Ll: tree @ A,Lr: tree @ A,R2: tree @ A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ A2 @ Lr ) @ B2 @ R2 ) )
= ( one_one @ nat ) ) ) ) ).
% t_splay_simps(3)
thf(fact_158_accp__subset__induct,axiom,
! [A: $tType,D3: A > $o,R: A > A > $o,X: A,P: A > $o] :
( ( ord_less_eq @ ( A > $o ) @ D3 @ ( accp @ A @ R ) )
=> ( ! [X4: A,Z2: A] :
( ( D3 @ X4 )
=> ( ( R @ Z2 @ X4 )
=> ( D3 @ Z2 ) ) )
=> ( ( D3 @ X )
=> ( ! [X4: A] :
( ( D3 @ X4 )
=> ( ! [Z4: A] :
( ( R @ Z4 @ X4 )
=> ( P @ Z4 ) )
=> ( P @ X4 ) ) )
=> ( P @ X ) ) ) ) ) ).
% accp_subset_induct
thf(fact_159_accp__subset,axiom,
! [A: $tType,R1: A > A > $o,R22: A > A > $o] :
( ( ord_less_eq @ ( A > A > $o ) @ R1 @ R22 )
=> ( ord_less_eq @ ( A > $o ) @ ( accp @ A @ R22 ) @ ( accp @ A @ R1 ) ) ) ).
% accp_subset
thf(fact_160_op_092_060_094sub_062s_092_060_094sub_062t_Orel__mono,axiom,
! [B: $tType,A: $tType,R: A > B > $o,Ra: A > B > $o] :
( ( ord_less_eq @ ( A > B > $o ) @ R @ Ra )
=> ( ord_less_eq @ ( ( splay_2011811431op_s_t @ A ) > ( splay_2011811431op_s_t @ B ) > $o ) @ ( splay_434753539op_s_t @ A @ B @ R ) @ ( splay_434753539op_s_t @ A @ B @ Ra ) ) ) ).
% op\<^sub>s\<^sub>t.rel_mono
thf(fact_161_t__splay_Osimps_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( splay_914434265_splay @ A @ A2 @ ( leaf @ A ) )
= ( one_one @ nat ) ) ) ).
% t_splay.simps(1)
thf(fact_162_bst__eq_Oelims_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ~ ( linorder_bst_eq @ A @ X )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( linorder_bst_eq @ A @ L2 )
& ( linorder_bst_eq @ A @ R4 )
& ! [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ L2 ) )
=> ( ord_less_eq @ A @ X4 @ A3 ) )
& ! [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ R4 ) )
=> ( ord_less_eq @ A @ A3 @ X4 ) ) ) ) ) ) ).
% bst_eq.elims(3)
thf(fact_163_bst__eq_Osimps_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [L: tree @ A,A2: A,R2: tree @ A] :
( ( linorder_bst_eq @ A @ ( node @ A @ L @ A2 @ R2 ) )
= ( ( linorder_bst_eq @ A @ L )
& ( linorder_bst_eq @ A @ R2 )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ L ) )
=> ( ord_less_eq @ A @ X5 @ A2 ) )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ R2 ) )
=> ( ord_less_eq @ A @ A2 @ X5 ) ) ) ) ) ).
% bst_eq.simps(2)
thf(fact_164_splay__max__eq__splay,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [T2: tree @ A,A2: A] :
( ( linorder_bst @ A @ T2 )
=> ( ! [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ T2 ) )
=> ( ord_less_eq @ A @ X4 @ A2 ) )
=> ( ( splay_splay_max @ A @ T2 )
= ( splay_splay @ A @ A2 @ T2 ) ) ) ) ) ).
% splay_max_eq_splay
thf(fact_165_bst__eq_Oelims_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ( linorder_bst_eq @ A @ X )
=> ( ( X
!= ( leaf @ A ) )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ~ ( ( linorder_bst_eq @ A @ L2 )
& ( linorder_bst_eq @ A @ R4 )
& ! [X6: A] :
( ( member @ A @ X6 @ ( set_tree @ A @ L2 ) )
=> ( ord_less_eq @ A @ X6 @ A3 ) )
& ! [X6: A] :
( ( member @ A @ X6 @ ( set_tree @ A @ R4 ) )
=> ( ord_less_eq @ A @ A3 @ X6 ) ) ) ) ) ) ) ).
% bst_eq.elims(2)
thf(fact_166_bst__eq_Opelims_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ( linorder_bst_eq @ A @ X )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ X )
=> ( ( ( X
= ( leaf @ A ) )
=> ~ ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( leaf @ A ) ) )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) )
=> ~ ( ( linorder_bst_eq @ A @ L2 )
& ( linorder_bst_eq @ A @ R4 )
& ! [X6: A] :
( ( member @ A @ X6 @ ( set_tree @ A @ L2 ) )
=> ( ord_less_eq @ A @ X6 @ A3 ) )
& ! [X6: A] :
( ( member @ A @ X6 @ ( set_tree @ A @ R4 ) )
=> ( ord_less_eq @ A @ A3 @ X6 ) ) ) ) ) ) ) ) ) ).
% bst_eq.pelims(2)
thf(fact_167_bst__eq_Opelims_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A,Y: $o] :
( ( ( linorder_bst_eq @ A @ X )
= Y )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ X )
=> ( ( ( X
= ( leaf @ A ) )
=> ( Y
=> ~ ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( leaf @ A ) ) ) )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( Y
= ( ( linorder_bst_eq @ A @ L2 )
& ( linorder_bst_eq @ A @ R4 )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ L2 ) )
=> ( ord_less_eq @ A @ X5 @ A3 ) )
& ! [X5: A] :
( ( member @ A @ X5 @ ( set_tree @ A @ R4 ) )
=> ( ord_less_eq @ A @ A3 @ X5 ) ) ) )
=> ~ ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) ) ) ) ) ) ) ) ).
% bst_eq.pelims(1)
thf(fact_168_bst__eq_Opelims_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A] :
( ~ ( linorder_bst_eq @ A @ X )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ X )
=> ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
( ( X
= ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) )
=> ( ( linorder_bst_eq @ A @ L2 )
& ( linorder_bst_eq @ A @ R4 )
& ! [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ L2 ) )
=> ( ord_less_eq @ A @ X4 @ A3 ) )
& ! [X4: A] :
( ( member @ A @ X4 @ ( set_tree @ A @ R4 ) )
=> ( ord_less_eq @ A @ A3 @ X4 ) ) ) ) ) ) ) ) ).
% bst_eq.pelims(3)
thf(fact_169_less__numeral__extra_I4_J,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ~ ( ord_less @ A @ ( one_one @ A ) @ ( one_one @ A ) ) ) ).
% less_numeral_extra(4)
thf(fact_170_t__splay__simps_I4_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C3: A,Ll: tree @ A,Lr: tree @ A,R2: tree @ A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ A2 @ C3 )
=> ( ( ( Ll
= ( leaf @ A ) )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ C3 @ Lr ) @ B2 @ R2 ) )
= ( one_one @ nat ) ) )
& ( ( Ll
!= ( leaf @ A ) )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ C3 @ Lr ) @ B2 @ R2 ) )
= ( plus_plus @ nat @ ( splay_914434265_splay @ A @ A2 @ Ll ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ).
% t_splay_simps(4)
thf(fact_171_t__splay__simps_I5_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C3: A,Lr: tree @ A,Ll: tree @ A,R2: tree @ A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ C3 @ A2 )
=> ( ( ( Lr
= ( leaf @ A ) )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ C3 @ Lr ) @ B2 @ R2 ) )
= ( one_one @ nat ) ) )
& ( ( Lr
!= ( leaf @ A ) )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ C3 @ Lr ) @ B2 @ R2 ) )
= ( plus_plus @ nat @ ( splay_914434265_splay @ A @ A2 @ Lr ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ).
% t_splay_simps(5)
thf(fact_172_t__splay__simps_I9_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C3: A,Rr2: tree @ A,L: tree @ A,Rl2: tree @ A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( ord_less @ A @ C3 @ A2 )
=> ( ( ( Rr2
= ( leaf @ A ) )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
= ( one_one @ nat ) ) )
& ( ( Rr2
!= ( leaf @ A ) )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
= ( plus_plus @ nat @ ( splay_914434265_splay @ A @ A2 @ Rr2 ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ).
% t_splay_simps(9)
thf(fact_173_t__splay__simps_I8_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C3: A,Rl2: tree @ A,L: tree @ A,Rr2: tree @ A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( ord_less @ A @ A2 @ C3 )
=> ( ( ( Rl2
= ( leaf @ A ) )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
= ( one_one @ nat ) ) )
& ( ( Rl2
!= ( leaf @ A ) )
=> ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
= ( plus_plus @ nat @ ( splay_914434265_splay @ A @ A2 @ Rl2 ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ).
% t_splay_simps(8)
thf(fact_174_nat__add__left__cancel__less,axiom,
! [K: nat,M: nat,N: nat] :
( ( ord_less @ nat @ ( plus_plus @ nat @ K @ M ) @ ( plus_plus @ nat @ K @ N ) )
= ( ord_less @ nat @ M @ N ) ) ).
% nat_add_left_cancel_less
thf(fact_175_add__less__cancel__left,axiom,
! [A: $tType] :
( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
=> ! [C3: A,A2: A,B2: A] :
( ( ord_less @ A @ ( plus_plus @ A @ C3 @ A2 ) @ ( plus_plus @ A @ C3 @ B2 ) )
= ( ord_less @ A @ A2 @ B2 ) ) ) ).
% add_less_cancel_left
thf(fact_176_add__less__cancel__right,axiom,
! [A: $tType] :
( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
=> ! [A2: A,C3: A,B2: A] :
( ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ C3 ) )
= ( ord_less @ A @ A2 @ B2 ) ) ) ).
% add_less_cancel_right
thf(fact_177_nat__neq__iff,axiom,
! [M: nat,N: nat] :
( ( M != N )
= ( ( ord_less @ nat @ M @ N )
| ( ord_less @ nat @ N @ M ) ) ) ).
% nat_neq_iff
thf(fact_178_less__not__refl,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ N ) ).
% less_not_refl
thf(fact_179_less__not__refl2,axiom,
! [N: nat,M: nat] :
( ( ord_less @ nat @ N @ M )
=> ( M != N ) ) ).
% less_not_refl2
thf(fact_180_less__not__refl3,axiom,
! [S: nat,T2: nat] :
( ( ord_less @ nat @ S @ T2 )
=> ( S != T2 ) ) ).
% less_not_refl3
thf(fact_181_measure__induct,axiom,
! [A: $tType,F: A > nat,P: A > $o,A2: A] :
( ! [X4: A] :
( ! [Y6: A] :
( ( ord_less @ nat @ ( F @ Y6 ) @ ( F @ X4 ) )
=> ( P @ Y6 ) )
=> ( P @ X4 ) )
=> ( P @ A2 ) ) ).
% measure_induct
thf(fact_182_less__irrefl__nat,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ N ) ).
% less_irrefl_nat
thf(fact_183_nat__less__induct,axiom,
! [P: nat > $o,N: nat] :
( ! [N2: nat] :
( ! [M2: nat] :
( ( ord_less @ nat @ M2 @ N2 )
=> ( P @ M2 ) )
=> ( P @ N2 ) )
=> ( P @ N ) ) ).
% nat_less_induct
thf(fact_184_infinite__descent,axiom,
! [P: nat > $o,N: nat] :
( ! [N2: nat] :
( ~ ( P @ N2 )
=> ? [M2: nat] :
( ( ord_less @ nat @ M2 @ N2 )
& ~ ( P @ M2 ) ) )
=> ( P @ N ) ) ).
% infinite_descent
thf(fact_185_linorder__neqE__nat,axiom,
! [X: nat,Y: nat] :
( ( X != Y )
=> ( ~ ( ord_less @ nat @ X @ Y )
=> ( ord_less @ nat @ Y @ X ) ) ) ).
% linorder_neqE_nat
thf(fact_186_measure__induct__rule,axiom,
! [A: $tType,F: A > nat,P: A > $o,A2: A] :
( ! [X4: A] :
( ! [Y6: A] :
( ( ord_less @ nat @ ( F @ Y6 ) @ ( F @ X4 ) )
=> ( P @ Y6 ) )
=> ( P @ X4 ) )
=> ( P @ A2 ) ) ).
% measure_induct_rule
thf(fact_187_infinite__descent__measure,axiom,
! [A: $tType,P: A > $o,V: A > nat,X: A] :
( ! [X4: A] :
( ~ ( P @ X4 )
=> ? [Y6: A] :
( ( ord_less @ nat @ ( V @ Y6 ) @ ( V @ X4 ) )
& ~ ( P @ Y6 ) ) )
=> ( P @ X ) ) ).
% infinite_descent_measure
thf(fact_188_less__mono__imp__le__mono,axiom,
! [F: nat > nat,I: nat,J: nat] :
( ! [I2: nat,J2: nat] :
( ( ord_less @ nat @ I2 @ J2 )
=> ( ord_less @ nat @ ( F @ I2 ) @ ( F @ J2 ) ) )
=> ( ( ord_less_eq @ nat @ I @ J )
=> ( ord_less_eq @ nat @ ( F @ I ) @ ( F @ J ) ) ) ) ).
% less_mono_imp_le_mono
thf(fact_189_le__neq__implies__less,axiom,
! [M: nat,N: nat] :
( ( ord_less_eq @ nat @ M @ N )
=> ( ( M != N )
=> ( ord_less @ nat @ M @ N ) ) ) ).
% le_neq_implies_less
thf(fact_190_less__or__eq__imp__le,axiom,
! [M: nat,N: nat] :
( ( ( ord_less @ nat @ M @ N )
| ( M = N ) )
=> ( ord_less_eq @ nat @ M @ N ) ) ).
% less_or_eq_imp_le
thf(fact_191_le__eq__less__or__eq,axiom,
( ( ord_less_eq @ nat )
= ( ^ [M3: nat,N3: nat] :
( ( ord_less @ nat @ M3 @ N3 )
| ( M3 = N3 ) ) ) ) ).
% le_eq_less_or_eq
thf(fact_192_less__imp__le__nat,axiom,
! [M: nat,N: nat] :
( ( ord_less @ nat @ M @ N )
=> ( ord_less_eq @ nat @ M @ N ) ) ).
% less_imp_le_nat
thf(fact_193_nat__less__le,axiom,
( ( ord_less @ nat )
= ( ^ [M3: nat,N3: nat] :
( ( ord_less_eq @ nat @ M3 @ N3 )
& ( M3 != N3 ) ) ) ) ).
% nat_less_le
thf(fact_194_add__less__imp__less__right,axiom,
! [A: $tType] :
( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
=> ! [A2: A,C3: A,B2: A] :
( ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ C3 ) )
=> ( ord_less @ A @ A2 @ B2 ) ) ) ).
% add_less_imp_less_right
thf(fact_195_add__less__imp__less__left,axiom,
! [A: $tType] :
( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
=> ! [C3: A,A2: A,B2: A] :
( ( ord_less @ A @ ( plus_plus @ A @ C3 @ A2 ) @ ( plus_plus @ A @ C3 @ B2 ) )
=> ( ord_less @ A @ A2 @ B2 ) ) ) ).
% add_less_imp_less_left
thf(fact_196_add__strict__right__mono,axiom,
! [A: $tType] :
( ( ordere223160158up_add @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C3: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ C3 ) ) ) ) ).
% add_strict_right_mono
thf(fact_197_add__strict__left__mono,axiom,
! [A: $tType] :
( ( ordere223160158up_add @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C3: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ord_less @ A @ ( plus_plus @ A @ C3 @ A2 ) @ ( plus_plus @ A @ C3 @ B2 ) ) ) ) ).
% add_strict_left_mono
thf(fact_198_add__strict__mono,axiom,
! [A: $tType] :
( ( strict2144017051up_add @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C3: A,D4: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ C3 @ D4 )
=> ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ D4 ) ) ) ) ) ).
% add_strict_mono
thf(fact_199_add__mono__thms__linordered__field_I1_J,axiom,
! [A: $tType] :
( ( ordere223160158up_add @ A @ ( type2 @ A ) )
=> ! [I: A,J: A,K: A,L: A] :
( ( ( ord_less @ A @ I @ J )
& ( K = L ) )
=> ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).
% add_mono_thms_linordered_field(1)
thf(fact_200_add__mono__thms__linordered__field_I2_J,axiom,
! [A: $tType] :
( ( ordere223160158up_add @ A @ ( type2 @ A ) )
=> ! [I: A,J: A,K: A,L: A] :
( ( ( I = J )
& ( ord_less @ A @ K @ L ) )
=> ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).
% add_mono_thms_linordered_field(2)
thf(fact_201_add__mono__thms__linordered__field_I5_J,axiom,
! [A: $tType] :
( ( ordere223160158up_add @ A @ ( type2 @ A ) )
=> ! [I: A,J: A,K: A,L: A] :
( ( ( ord_less @ A @ I @ J )
& ( ord_less @ A @ K @ L ) )
=> ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).
% add_mono_thms_linordered_field(5)
thf(fact_202_less__add__eq__less,axiom,
! [K: nat,L: nat,M: nat,N: nat] :
( ( ord_less @ nat @ K @ L )
=> ( ( ( plus_plus @ nat @ M @ L )
= ( plus_plus @ nat @ K @ N ) )
=> ( ord_less @ nat @ M @ N ) ) ) ).
% less_add_eq_less
thf(fact_203_trans__less__add2,axiom,
! [I: nat,J: nat,M: nat] :
( ( ord_less @ nat @ I @ J )
=> ( ord_less @ nat @ I @ ( plus_plus @ nat @ M @ J ) ) ) ).
% trans_less_add2
thf(fact_204_trans__less__add1,axiom,
! [I: nat,J: nat,M: nat] :
( ( ord_less @ nat @ I @ J )
=> ( ord_less @ nat @ I @ ( plus_plus @ nat @ J @ M ) ) ) ).
% trans_less_add1
thf(fact_205_add__less__mono1,axiom,
! [I: nat,J: nat,K: nat] :
( ( ord_less @ nat @ I @ J )
=> ( ord_less @ nat @ ( plus_plus @ nat @ I @ K ) @ ( plus_plus @ nat @ J @ K ) ) ) ).
% add_less_mono1
thf(fact_206_not__add__less2,axiom,
! [J: nat,I: nat] :
~ ( ord_less @ nat @ ( plus_plus @ nat @ J @ I ) @ I ) ).
% not_add_less2
thf(fact_207_not__add__less1,axiom,
! [I: nat,J: nat] :
~ ( ord_less @ nat @ ( plus_plus @ nat @ I @ J ) @ I ) ).
% not_add_less1
thf(fact_208_add__less__mono,axiom,
! [I: nat,J: nat,K: nat,L: nat] :
( ( ord_less @ nat @ I @ J )
=> ( ( ord_less @ nat @ K @ L )
=> ( ord_less @ nat @ ( plus_plus @ nat @ I @ K ) @ ( plus_plus @ nat @ J @ L ) ) ) ) ).
% add_less_mono
thf(fact_209_add__lessD1,axiom,
! [I: nat,J: nat,K: nat] :
( ( ord_less @ nat @ ( plus_plus @ nat @ I @ J ) @ K )
=> ( ord_less @ nat @ I @ K ) ) ).
% add_lessD1
thf(fact_210_mono__nat__linear__lb,axiom,
! [F: nat > nat,M: nat,K: nat] :
( ! [M4: nat,N2: nat] :
( ( ord_less @ nat @ M4 @ N2 )
=> ( ord_less @ nat @ ( F @ M4 ) @ ( F @ N2 ) ) )
=> ( ord_less_eq @ nat @ ( plus_plus @ nat @ ( F @ M ) @ K ) @ ( F @ ( plus_plus @ nat @ M @ K ) ) ) ) ).
% mono_nat_linear_lb
thf(fact_211_add__less__le__mono,axiom,
! [A: $tType] :
( ( ordere223160158up_add @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C3: A,D4: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ C3 @ D4 )
=> ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ D4 ) ) ) ) ) ).
% add_less_le_mono
thf(fact_212_add__le__less__mono,axiom,
! [A: $tType] :
( ( ordere223160158up_add @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C3: A,D4: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ C3 @ D4 )
=> ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ D4 ) ) ) ) ) ).
% add_le_less_mono
thf(fact_213_add__mono__thms__linordered__field_I3_J,axiom,
! [A: $tType] :
( ( ordere223160158up_add @ A @ ( type2 @ A ) )
=> ! [I: A,J: A,K: A,L: A] :
( ( ( ord_less @ A @ I @ J )
& ( ord_less_eq @ A @ K @ L ) )
=> ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).
% add_mono_thms_linordered_field(3)
thf(fact_214_add__mono__thms__linordered__field_I4_J,axiom,
! [A: $tType] :
( ( ordere223160158up_add @ A @ ( type2 @ A ) )
=> ! [I: A,J: A,K: A,L: A] :
( ( ( ord_less_eq @ A @ I @ J )
& ( ord_less @ A @ K @ L ) )
=> ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).
% add_mono_thms_linordered_field(4)
thf(fact_215_discrete,axiom,
! [A: $tType] :
( ( semiring_numeral_div @ A @ ( type2 @ A ) )
=> ( ( ord_less @ A )
= ( ^ [A6: A] : ( ord_less_eq @ A @ ( plus_plus @ A @ A6 @ ( one_one @ A ) ) ) ) ) ) ).
% discrete
thf(fact_216_fold__atLeastAtMost__nat_Oinduct,axiom,
! [A: $tType,P: ( nat > A > A ) > nat > nat > A > $o,A0: nat > A > A,A1: nat,A23: nat,A33: A] :
( ! [F5: nat > A > A,A3: nat,B5: nat,Acc: A] :
( ( ~ ( ord_less @ nat @ B5 @ A3 )
=> ( P @ F5 @ ( plus_plus @ nat @ A3 @ ( one_one @ nat ) ) @ B5 @ ( F5 @ A3 @ Acc ) ) )
=> ( P @ F5 @ A3 @ B5 @ Acc ) )
=> ( P @ A0 @ A1 @ A23 @ A33 ) ) ).
% fold_atLeastAtMost_nat.induct
thf(fact_217_less__add__one,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ! [A2: A] : ( ord_less @ A @ A2 @ ( plus_plus @ A @ A2 @ ( one_one @ A ) ) ) ) ).
% less_add_one
thf(fact_218_linorder__neqE__linordered__idom,axiom,
! [A: $tType] :
( ( linordered_idom @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( X != Y )
=> ( ~ ( ord_less @ A @ X @ Y )
=> ( ord_less @ A @ Y @ X ) ) ) ) ).
% linorder_neqE_linordered_idom
thf(fact_219_ex__has__greatest__nat__lemma,axiom,
! [A: $tType,P: A > $o,K: A,M: A > nat,N: nat] :
( ( P @ K )
=> ( ! [X4: A] :
( ( P @ X4 )
=> ? [Y6: A] :
( ( P @ Y6 )
& ~ ( ord_less_eq @ nat @ ( M @ Y6 ) @ ( M @ X4 ) ) ) )
=> ? [Y4: A] :
( ( P @ Y4 )
& ~ ( ord_less @ nat @ ( M @ Y4 ) @ ( plus_plus @ nat @ ( M @ K ) @ N ) ) ) ) ) ).
% ex_has_greatest_nat_lemma
thf(fact_220_t__splay__max_Osimps_I3_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [Rr2: tree @ A,L: tree @ A,B2: A,Rl2: tree @ A,C3: A] :
( ( ( Rr2
= ( leaf @ A ) )
=> ( ( splay_878424299ay_max @ A @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
= ( one_one @ nat ) ) )
& ( ( Rr2
!= ( leaf @ A ) )
=> ( ( splay_878424299ay_max @ A @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
= ( plus_plus @ nat @ ( splay_878424299ay_max @ A @ Rr2 ) @ ( one_one @ nat ) ) ) ) ) ) ).
% t_splay_max.simps(3)
thf(fact_221_t__splay__max_Osimps_I1_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ( ( splay_878424299ay_max @ A @ ( leaf @ A ) )
= ( one_one @ nat ) ) ) ).
% t_splay_max.simps(1)
thf(fact_222_t__splay__max_Osimps_I2_J,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [L: tree @ A,B2: A] :
( ( splay_878424299ay_max @ A @ ( node @ A @ L @ B2 @ ( leaf @ A ) ) )
= ( one_one @ nat ) ) ) ).
% t_splay_max.simps(2)
thf(fact_223_ex__has__greatest__nat,axiom,
! [A: $tType,P: A > $o,K: A,M: A > nat,B2: nat] :
( ( P @ K )
=> ( ! [Y4: A] :
( ( P @ Y4 )
=> ( ord_less @ nat @ ( M @ Y4 ) @ B2 ) )
=> ? [X4: A] :
( ( P @ X4 )
& ! [Y6: A] :
( ( P @ Y6 )
=> ( ord_less_eq @ nat @ ( M @ Y6 ) @ ( M @ X4 ) ) ) ) ) ) ).
% ex_has_greatest_nat
thf(fact_224_t__splay__max_Oelims,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A,Y: nat] :
( ( ( splay_878424299ay_max @ A @ X )
= Y )
=> ( ( ( X
= ( leaf @ A ) )
=> ( Y
!= ( one_one @ nat ) ) )
=> ( ( ? [L2: tree @ A,B5: A] :
( X
= ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) )
=> ( Y
!= ( one_one @ nat ) ) )
=> ~ ! [L2: tree @ A,B5: A,Rl: tree @ A,C2: A,Rr: tree @ A] :
( ( X
= ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) )
=> ~ ( ( ( Rr
= ( leaf @ A ) )
=> ( Y
= ( one_one @ nat ) ) )
& ( ( Rr
!= ( leaf @ A ) )
=> ( Y
= ( plus_plus @ nat @ ( splay_878424299ay_max @ A @ Rr ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ) ) ).
% t_splay_max.elims
thf(fact_225_t__splay__max_Opelims,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: tree @ A,Y: nat] :
( ( ( splay_878424299ay_max @ A @ X )
= Y )
=> ( ( accp @ ( tree @ A ) @ ( splay_1816415694ax_rel @ A ) @ X )
=> ( ( ( X
= ( leaf @ A ) )
=> ( ( Y
= ( one_one @ nat ) )
=> ~ ( accp @ ( tree @ A ) @ ( splay_1816415694ax_rel @ A ) @ ( leaf @ A ) ) ) )
=> ( ! [L2: tree @ A,B5: A] :
( ( X
= ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) )
=> ( ( Y
= ( one_one @ nat ) )
=> ~ ( accp @ ( tree @ A ) @ ( splay_1816415694ax_rel @ A ) @ ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) ) ) )
=> ~ ! [L2: tree @ A,B5: A,Rl: tree @ A,C2: A,Rr: tree @ A] :
( ( X
= ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) )
=> ( ( ( ( Rr
= ( leaf @ A ) )
=> ( Y
= ( one_one @ nat ) ) )
& ( ( Rr
!= ( leaf @ A ) )
=> ( Y
= ( plus_plus @ nat @ ( splay_878424299ay_max @ A @ Rr ) @ ( one_one @ nat ) ) ) ) )
=> ~ ( accp @ ( tree @ A ) @ ( splay_1816415694ax_rel @ A ) @ ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) ) ) ) ) ) ) ) ) ).
% t_splay_max.pelims
thf(fact_226_fold__atLeastAtMost__nat_Opinduct,axiom,
! [A: $tType,A0: nat > A > A,A1: nat,A23: nat,A33: A,P: ( nat > A > A ) > nat > nat > A > $o] :
( ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ A0 @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ A1 @ ( product_Pair @ nat @ A @ A23 @ A33 ) ) ) )
=> ( ! [F5: nat > A > A,A3: nat,B5: nat,Acc: A] :
( ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ F5 @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ A3 @ ( product_Pair @ nat @ A @ B5 @ Acc ) ) ) )
=> ( ( ~ ( ord_less @ nat @ B5 @ A3 )
=> ( P @ F5 @ ( plus_plus @ nat @ A3 @ ( one_one @ nat ) ) @ B5 @ ( F5 @ A3 @ Acc ) ) )
=> ( P @ F5 @ A3 @ B5 @ Acc ) ) )
=> ( P @ A0 @ A1 @ A23 @ A33 ) ) ) ).
% fold_atLeastAtMost_nat.pinduct
thf(fact_227_fold__atLeastAtMost__nat_Opelims,axiom,
! [A: $tType,X: nat > A > A,Xa: nat,Xb2: nat,Xc: A,Y: A] :
( ( ( set_fo292404081st_nat @ A @ X @ Xa @ Xb2 @ Xc )
= Y )
=> ( ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ X @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ Xa @ ( product_Pair @ nat @ A @ Xb2 @ Xc ) ) ) )
=> ~ ( ( ( ( ord_less @ nat @ Xb2 @ Xa )
=> ( Y = Xc ) )
& ( ~ ( ord_less @ nat @ Xb2 @ Xa )
=> ( Y
= ( set_fo292404081st_nat @ A @ X @ ( plus_plus @ nat @ Xa @ ( one_one @ nat ) ) @ Xb2 @ ( X @ Xa @ Xc ) ) ) ) )
=> ~ ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ X @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ Xa @ ( product_Pair @ nat @ A @ Xb2 @ Xc ) ) ) ) ) ) ) ).
% fold_atLeastAtMost_nat.pelims
thf(fact_228_fold__atLeastAtMost__nat_Opsimps,axiom,
! [A: $tType,F: nat > A > A,A2: nat,B2: nat,Acc2: A] :
( ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ F @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ A2 @ ( product_Pair @ nat @ A @ B2 @ Acc2 ) ) ) )
=> ( ( ( ord_less @ nat @ B2 @ A2 )
=> ( ( set_fo292404081st_nat @ A @ F @ A2 @ B2 @ Acc2 )
= Acc2 ) )
& ( ~ ( ord_less @ nat @ B2 @ A2 )
=> ( ( set_fo292404081st_nat @ A @ F @ A2 @ B2 @ Acc2 )
= ( set_fo292404081st_nat @ A @ F @ ( plus_plus @ nat @ A2 @ ( one_one @ nat ) ) @ B2 @ ( F @ A2 @ Acc2 ) ) ) ) ) ) ).
% fold_atLeastAtMost_nat.psimps
thf(fact_229_fold__atLeastAtMost__nat_Oelims,axiom,
! [A: $tType,X: nat > A > A,Xa: nat,Xb2: nat,Xc: A,Y: A] :
( ( ( set_fo292404081st_nat @ A @ X @ Xa @ Xb2 @ Xc )
= Y )
=> ( ( ( ord_less @ nat @ Xb2 @ Xa )
=> ( Y = Xc ) )
& ( ~ ( ord_less @ nat @ Xb2 @ Xa )
=> ( Y
= ( set_fo292404081st_nat @ A @ X @ ( plus_plus @ nat @ Xa @ ( one_one @ nat ) ) @ Xb2 @ ( X @ Xa @ Xc ) ) ) ) ) ) ).
% fold_atLeastAtMost_nat.elims
thf(fact_230_fold__atLeastAtMost__nat_Osimps,axiom,
! [A: $tType] :
( ( set_fo292404081st_nat @ A )
= ( ^ [F6: nat > A > A,A6: nat,B6: nat,Acc3: A] : ( if @ A @ ( ord_less @ nat @ B6 @ A6 ) @ Acc3 @ ( set_fo292404081st_nat @ A @ F6 @ ( plus_plus @ nat @ A6 @ ( one_one @ nat ) ) @ B6 @ ( F6 @ A6 @ Acc3 ) ) ) ) ) ).
% fold_atLeastAtMost_nat.simps
thf(fact_231_complete__interval,axiom,
! [A: $tType] :
( ( condit1037483654norder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,P: A > $o] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( P @ A2 )
=> ( ~ ( P @ B2 )
=> ? [C2: A] :
( ( ord_less_eq @ A @ A2 @ C2 )
& ( ord_less_eq @ A @ C2 @ B2 )
& ! [X6: A] :
( ( ( ord_less_eq @ A @ A2 @ X6 )
& ( ord_less @ A @ X6 @ C2 ) )
=> ( P @ X6 ) )
& ! [D5: A] :
( ! [X4: A] :
( ( ( ord_less_eq @ A @ A2 @ X4 )
& ( ord_less @ A @ X4 @ D5 ) )
=> ( P @ X4 ) )
=> ( ord_less_eq @ A @ D5 @ C2 ) ) ) ) ) ) ) ).
% complete_interval
thf(fact_232_order_Onot__eq__order__implies__strict,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( A2 != B2 )
=> ( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ord_less @ A @ A2 @ B2 ) ) ) ) ).
% order.not_eq_order_implies_strict
thf(fact_233_ord__eq__less__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C3: B] :
( ( A2
= ( F @ B2 ) )
=> ( ( ord_less @ B @ B2 @ C3 )
=> ( ! [X4: B,Y4: B] :
( ( ord_less @ B @ X4 @ Y4 )
=> ( ord_less @ A @ ( F @ X4 ) @ ( F @ Y4 ) ) )
=> ( ord_less @ A @ A2 @ ( F @ C3 ) ) ) ) ) ) ).
% ord_eq_less_subst
thf(fact_234_ord__less__eq__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > B,C3: B] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ( F @ B2 )
= C3 )
=> ( ! [X4: A,Y4: A] :
( ( ord_less @ A @ X4 @ Y4 )
=> ( ord_less @ B @ ( F @ X4 ) @ ( F @ Y4 ) ) )
=> ( ord_less @ B @ ( F @ A2 ) @ C3 ) ) ) ) ) ).
% ord_less_eq_subst
thf(fact_235_order__less__subst1,axiom,
! [A: $tType,B: $tType] :
( ( ( order @ B @ ( type2 @ B ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C3: B] :
( ( ord_less @ A @ A2 @ ( F @ B2 ) )
=> ( ( ord_less @ B @ B2 @ C3 )
=> ( ! [X4: B,Y4: B] :
( ( ord_less @ B @ X4 @ Y4 )
=> ( ord_less @ A @ ( F @ X4 ) @ ( F @ Y4 ) ) )
=> ( ord_less @ A @ A2 @ ( F @ C3 ) ) ) ) ) ) ).
% order_less_subst1
thf(fact_236_order__less__subst2,axiom,
! [A: $tType,C: $tType] :
( ( ( order @ C @ ( type2 @ C ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > C,C3: C] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ C @ ( F @ B2 ) @ C3 )
=> ( ! [X4: A,Y4: A] :
( ( ord_less @ A @ X4 @ Y4 )
=> ( ord_less @ C @ ( F @ X4 ) @ ( F @ Y4 ) ) )
=> ( ord_less @ C @ ( F @ A2 ) @ C3 ) ) ) ) ) ).
% order_less_subst2
thf(fact_237_lt__ex,axiom,
! [A: $tType] :
( ( no_bot @ A @ ( type2 @ A ) )
=> ! [X: A] :
? [Y4: A] : ( ord_less @ A @ Y4 @ X ) ) ).
% lt_ex
thf(fact_238_gt__ex,axiom,
! [A: $tType] :
( ( no_top @ A @ ( type2 @ A ) )
=> ! [X: A] :
? [X12: A] : ( ord_less @ A @ X @ X12 ) ) ).
% gt_ex
thf(fact_239_neqE,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( X != Y )
=> ( ~ ( ord_less @ A @ X @ Y )
=> ( ord_less @ A @ Y @ X ) ) ) ) ).
% neqE
thf(fact_240_neq__iff,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( X != Y )
= ( ( ord_less @ A @ X @ Y )
| ( ord_less @ A @ Y @ X ) ) ) ) ).
% neq_iff
thf(fact_241_order_Oasym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ~ ( ord_less @ A @ B2 @ A2 ) ) ) ).
% order.asym
thf(fact_242_dense,axiom,
! [A: $tType] :
( ( dense_order @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ? [Z2: A] :
( ( ord_less @ A @ X @ Z2 )
& ( ord_less @ A @ Z2 @ Y ) ) ) ) ).
% dense
thf(fact_243_less__imp__neq,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ( X != Y ) ) ) ).
% less_imp_neq
thf(fact_244_less__asym,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ~ ( ord_less @ A @ Y @ X ) ) ) ).
% less_asym
thf(fact_245_less__asym_H,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ~ ( ord_less @ A @ B2 @ A2 ) ) ) ).
% less_asym'
thf(fact_246_less__trans,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A,Z5: A] :
( ( ord_less @ A @ X @ Y )
=> ( ( ord_less @ A @ Y @ Z5 )
=> ( ord_less @ A @ X @ Z5 ) ) ) ) ).
% less_trans
thf(fact_247_less__linear,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
| ( X = Y )
| ( ord_less @ A @ Y @ X ) ) ) ).
% less_linear
thf(fact_248_less__irrefl,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A] :
~ ( ord_less @ A @ X @ X ) ) ).
% less_irrefl
thf(fact_249_ord__eq__less__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C3: A] :
( ( A2 = B2 )
=> ( ( ord_less @ A @ B2 @ C3 )
=> ( ord_less @ A @ A2 @ C3 ) ) ) ) ).
% ord_eq_less_trans
thf(fact_250_ord__less__eq__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C3: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( B2 = C3 )
=> ( ord_less @ A @ A2 @ C3 ) ) ) ) ).
% ord_less_eq_trans
thf(fact_251_dual__order_Oasym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( ord_less @ A @ B2 @ A2 )
=> ~ ( ord_less @ A @ A2 @ B2 ) ) ) ).
% dual_order.asym
thf(fact_252_less__imp__not__eq,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ( X != Y ) ) ) ).
% less_imp_not_eq
thf(fact_253_less__not__sym,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less @ A @ X @ Y )
=> ~ ( ord_less @ A @ Y @ X ) ) ) ).
% less_not_sym
thf(fact_254_less__induct,axiom,
! [A: $tType] :
( ( wellorder @ A @ ( type2 @ A ) )
=> ! [P: A > $o,A2: A] :
( ! [X4: A] :
( ! [Y6: A] :
( ( ord_less @ A @ Y6 @ X4 )
=> ( P @ Y6 ) )
=> ( P @ X4 ) )
=> ( P @ A2 ) ) ) ).
% less_induct
thf(fact_255_antisym__conv3,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [Y: A,X: A] :
( ~ ( ord_less @ A @ Y @ X )
=> ( ( ~ ( ord_less @ A @ X @ Y ) )
= ( X = Y ) ) ) ) ).
% antisym_conv3
%----Subclasses (4)
thf(subcl_Orderings_Olinorder___HOL_Otype,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ( type @ A @ ( type2 @ A ) ) ) ).
thf(subcl_Orderings_Olinorder___Orderings_Oord,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ( ord @ A @ ( type2 @ A ) ) ) ).
thf(subcl_Orderings_Olinorder___Orderings_Oorder,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ( order @ A @ ( type2 @ A ) ) ) ).
thf(subcl_Orderings_Olinorder___Orderings_Opreorder,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ( preorder @ A @ ( type2 @ A ) ) ) ).
%----Type constructors (22)
thf(tcon_fun___Orderings_Opreorder,axiom,
! [A7: $tType,A8: $tType] :
( ( preorder @ A8 @ ( type2 @ A8 ) )
=> ( preorder @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_fun___Orderings_Oorder,axiom,
! [A7: $tType,A8: $tType] :
( ( order @ A8 @ ( type2 @ A8 ) )
=> ( order @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_fun___Orderings_Oord,axiom,
! [A7: $tType,A8: $tType] :
( ( ord @ A8 @ ( type2 @ A8 ) )
=> ( ord @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_Nat_Onat___Conditionally__Complete__Lattices_Oconditionally__complete__linorder,axiom,
condit1037483654norder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Ostrict__ordered__ab__semigroup__add,axiom,
strict2144017051up_add @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Oordered__cancel__ab__semigroup__add,axiom,
ordere223160158up_add @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add__imp__le,axiom,
ordere236663937imp_le @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Divides_Osemiring__numeral__div,axiom,
semiring_numeral_div @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Olinordered__semidom,axiom,
linordered_semidom @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Owellorder,axiom,
wellorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Opreorder_1,axiom,
preorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Olinorder,axiom,
linorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Ono__top,axiom,
no_top @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Oorder_2,axiom,
order @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Oord_3,axiom,
ord @ nat @ ( type2 @ nat ) ).
thf(tcon_Set_Oset___Orderings_Opreorder_4,axiom,
! [A7: $tType] : ( preorder @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Oorder_5,axiom,
! [A7: $tType] : ( order @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Oord_6,axiom,
! [A7: $tType] : ( ord @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_HOL_Obool___Orderings_Opreorder_7,axiom,
preorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Olinorder_8,axiom,
linorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Oorder_9,axiom,
order @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Oord_10,axiom,
ord @ $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,Y: A] :
( ( if @ A @ $false @ X @ Y )
= Y ) ).
thf(help_If_1_1_T,axiom,
! [A: $tType,X: A,Y: A] :
( ( if @ A @ $true @ X @ Y )
= X ) ).
%----Free types (1)
thf(tfree_0,hypothesis,
linorder @ a @ ( type2 @ a ) ).
%----Conjectures (1)
thf(conj_0,conjecture,
linorder_bst @ a @ ( splay_859309299xt_s_t @ a @ f @ a2 ) ).
%------------------------------------------------------------------------------