TPTP Problem File: ITP100^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : ITP100^1 : TPTP v9.0.0. Released v7.5.0.
% Domain : Interactive Theorem Proving
% Problem : Sledgehammer ListInf problem prob_52__5408414_1
% Version : Especial.
% English :
% Refs : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
% : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% Source : [Des21]
% Names : ListInf/prob_52__5408414_1 [Des21]
% Status : Theorem
% Rating : 0.25 v9.0.0, 0.30 v8.2.0, 0.38 v8.1.0, 0.27 v7.5.0
% Syntax : Number of formulae : 450 ( 197 unt; 94 typ; 0 def)
% Number of atoms : 947 ( 705 equ; 0 cnn)
% Maximal formula atoms : 13 ( 2 avg)
% Number of connectives : 3688 ( 230 ~; 53 |; 136 &;2783 @)
% ( 0 <=>; 486 =>; 0 <=; 0 <~>)
% Maximal formula depth : 29 ( 7 avg)
% Number of types : 10 ( 9 usr)
% Number of type conns : 477 ( 477 >; 0 *; 0 +; 0 <<)
% Number of symbols : 88 ( 85 usr; 8 con; 0-3 aty)
% Number of variables : 1277 ( 28 ^;1135 !; 114 ?;1277 :)
% SPC : TH0_THM_EQU_NAR
% Comments : This file was generated by Sledgehammer 2021-02-23 15:30:11.750
%------------------------------------------------------------------------------
% Could-be-implicit typings (9)
thf(ty_n_t__List__Olist_It__List__Olist_It__List__Olist_Itf__a_J_J_J,type,
list_list_list_a: $tType ).
thf(ty_n_t__Set__Oset_It__List__Olist_It__List__Olist_Itf__a_J_J_J,type,
set_list_list_a: $tType ).
thf(ty_n_t__List__Olist_It__List__Olist_Itf__a_J_J,type,
list_list_a: $tType ).
thf(ty_n_t__Set__Oset_It__List__Olist_Itf__a_J_J,type,
set_list_a: $tType ).
thf(ty_n_t__List__Olist_It__Nat__Onat_J,type,
list_nat: $tType ).
thf(ty_n_t__List__Olist_Itf__a_J,type,
list_a: $tType ).
thf(ty_n_t__Set__Oset_Itf__a_J,type,
set_a: $tType ).
thf(ty_n_t__Nat__Onat,type,
nat: $tType ).
thf(ty_n_tf__a,type,
a: $tType ).
% Explicit typings (85)
thf(sy_c_BNF__Greatest__Fixpoint_OShift_001t__List__Olist_Itf__a_J,type,
bNF_Gr1972240547list_a: set_list_list_a > list_a > set_list_list_a ).
thf(sy_c_BNF__Greatest__Fixpoint_OShift_001tf__a,type,
bNF_Greatest_Shift_a: set_list_a > a > set_list_a ).
thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001t__List__Olist_Itf__a_J,type,
bNF_Gr1046450207list_a: set_list_list_a > list_list_a > set_list_a ).
thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001tf__a,type,
bNF_Greatest_Succ_a: set_list_a > list_a > set_a ).
thf(sy_c_If_001t__List__Olist_Itf__a_J,type,
if_list_a: $o > list_a > list_a > list_a ).
thf(sy_c_List2_Olist__ord_001t__Nat__Onat,type,
list_ord_nat: ( nat > nat > $o ) > list_nat > $o ).
thf(sy_c_List2_Olist__strict__asc_001t__Nat__Onat,type,
list_strict_asc_nat: list_nat > $o ).
thf(sy_c_List2_Omap2_001tf__a_001tf__a_001tf__a,type,
map2_a_a_a: ( a > a > a ) > list_a > list_a > list_a ).
thf(sy_c_ListInf__Mirabelle__akbajwqfbr_Oi__append_001t__List__Olist_Itf__a_J,type,
listIn1753026346list_a: list_list_a > ( nat > list_a ) > nat > list_a ).
thf(sy_c_ListInf__Mirabelle__akbajwqfbr_Oi__append_001tf__a,type,
listIn1312259492pend_a: list_a > ( nat > a ) > nat > a ).
thf(sy_c_List_Oappend_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
append_list_list_a: list_list_list_a > list_list_list_a > list_list_list_a ).
thf(sy_c_List_Oappend_001t__List__Olist_Itf__a_J,type,
append_list_a: list_list_a > list_list_a > list_list_a ).
thf(sy_c_List_Oappend_001t__Nat__Onat,type,
append_nat: list_nat > list_nat > list_nat ).
thf(sy_c_List_Oappend_001tf__a,type,
append_a: list_a > list_a > list_a ).
thf(sy_c_List_Obind_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
bind_list_a_list_a: list_list_a > ( list_a > list_list_a ) > list_list_a ).
thf(sy_c_List_Obind_001t__List__Olist_Itf__a_J_001tf__a,type,
bind_list_a_a: list_list_a > ( list_a > list_a ) > list_a ).
thf(sy_c_List_Obind_001tf__a_001t__List__Olist_Itf__a_J,type,
bind_a_list_a: list_a > ( a > list_list_a ) > list_list_a ).
thf(sy_c_List_Obind_001tf__a_001tf__a,type,
bind_a_a: list_a > ( a > list_a ) > list_a ).
thf(sy_c_List_Obutlast_001t__List__Olist_Itf__a_J,type,
butlast_list_a: list_list_a > list_list_a ).
thf(sy_c_List_Obutlast_001tf__a,type,
butlast_a: list_a > list_a ).
thf(sy_c_List_Oconcat_001t__List__Olist_Itf__a_J,type,
concat_list_a: list_list_list_a > list_list_a ).
thf(sy_c_List_Oconcat_001tf__a,type,
concat_a: list_list_a > list_a ).
thf(sy_c_List_Odistinct__adj_001t__List__Olist_Itf__a_J,type,
distinct_adj_list_a: list_list_a > $o ).
thf(sy_c_List_Odistinct__adj_001tf__a,type,
distinct_adj_a: list_a > $o ).
thf(sy_c_List_Ofoldr_001t__List__Olist_It__List__Olist_Itf__a_J_J_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
foldr_769741863list_a: ( list_list_a > list_list_a > list_list_a ) > list_list_list_a > list_list_a > list_list_a ).
thf(sy_c_List_Ofoldr_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
foldr_list_a_list_a: ( list_a > list_a > list_a ) > list_list_a > list_a > list_a ).
thf(sy_c_List_Oinsert_001t__List__Olist_Itf__a_J,type,
insert_list_a: list_a > list_list_a > list_list_a ).
thf(sy_c_List_Oinsert_001tf__a,type,
insert_a: a > list_a > list_a ).
thf(sy_c_List_Olast_001t__List__Olist_Itf__a_J,type,
last_list_a: list_list_a > list_a ).
thf(sy_c_List_Olast_001tf__a,type,
last_a: list_a > a ).
thf(sy_c_List_Olist_OCons_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
cons_list_list_a: list_list_a > list_list_list_a > list_list_list_a ).
thf(sy_c_List_Olist_OCons_001t__List__Olist_Itf__a_J,type,
cons_list_a: list_a > list_list_a > list_list_a ).
thf(sy_c_List_Olist_OCons_001t__Nat__Onat,type,
cons_nat: nat > list_nat > list_nat ).
thf(sy_c_List_Olist_OCons_001tf__a,type,
cons_a: a > list_a > list_a ).
thf(sy_c_List_Olist_ONil_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
nil_list_list_a: list_list_list_a ).
thf(sy_c_List_Olist_ONil_001t__List__Olist_Itf__a_J,type,
nil_list_a: list_list_a ).
thf(sy_c_List_Olist_ONil_001t__Nat__Onat,type,
nil_nat: list_nat ).
thf(sy_c_List_Olist_ONil_001tf__a,type,
nil_a: list_a ).
thf(sy_c_List_Olist_Ohd_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
hd_list_list_a: list_list_list_a > list_list_a ).
thf(sy_c_List_Olist_Ohd_001t__List__Olist_Itf__a_J,type,
hd_list_a: list_list_a > list_a ).
thf(sy_c_List_Olist_Ohd_001tf__a,type,
hd_a: list_a > a ).
thf(sy_c_List_Olist_Otl_001t__List__Olist_Itf__a_J,type,
tl_list_a: list_list_a > list_list_a ).
thf(sy_c_List_Olist_Otl_001tf__a,type,
tl_a: list_a > list_a ).
thf(sy_c_List_Olist__ex1_001t__List__Olist_Itf__a_J,type,
list_ex1_list_a: ( list_a > $o ) > list_list_a > $o ).
thf(sy_c_List_Olist__ex1_001tf__a,type,
list_ex1_a: ( a > $o ) > list_a > $o ).
thf(sy_c_List_Olistrelp_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
listre1221556159list_a: ( list_a > list_a > $o ) > list_list_a > list_list_a > $o ).
thf(sy_c_List_Olistrelp_001t__List__Olist_Itf__a_J_001tf__a,type,
listrelp_list_a_a: ( list_a > a > $o ) > list_list_a > list_a > $o ).
thf(sy_c_List_Olistrelp_001tf__a_001t__List__Olist_Itf__a_J,type,
listrelp_a_list_a: ( a > list_a > $o ) > list_a > list_list_a > $o ).
thf(sy_c_List_Olistrelp_001tf__a_001tf__a,type,
listrelp_a_a: ( a > a > $o ) > list_a > list_a > $o ).
thf(sy_c_List_Omap__tailrec__rev_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
map_ta982122357list_a: ( list_a > list_a ) > list_list_a > list_list_a > list_list_a ).
thf(sy_c_List_Omap__tailrec__rev_001t__List__Olist_Itf__a_J_001tf__a,type,
map_ta2002079599st_a_a: ( list_a > a ) > list_list_a > list_a > list_a ).
thf(sy_c_List_Omap__tailrec__rev_001tf__a_001t__List__Olist_Itf__a_J,type,
map_ta41997947list_a: ( a > list_a ) > list_a > list_list_a > list_list_a ).
thf(sy_c_List_Omap__tailrec__rev_001tf__a_001tf__a,type,
map_tailrec_rev_a_a: ( a > a ) > list_a > list_a > list_a ).
thf(sy_c_List_Omaps_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
maps_list_a_list_a: ( list_a > list_list_a ) > list_list_a > list_list_a ).
thf(sy_c_List_Omaps_001t__List__Olist_Itf__a_J_001tf__a,type,
maps_list_a_a: ( list_a > list_a ) > list_list_a > list_a ).
thf(sy_c_List_Omaps_001tf__a_001t__List__Olist_Itf__a_J,type,
maps_a_list_a: ( a > list_list_a ) > list_a > list_list_a ).
thf(sy_c_List_Omaps_001tf__a_001tf__a,type,
maps_a_a: ( a > list_a ) > list_a > list_a ).
thf(sy_c_List_Omember_001t__List__Olist_Itf__a_J,type,
member_list_a: list_list_a > list_a > $o ).
thf(sy_c_List_Omember_001tf__a,type,
member_a: list_a > a > $o ).
thf(sy_c_List_Oord_Olexordp__eq_001t__List__Olist_Itf__a_J,type,
lexordp_eq_list_a: ( list_a > list_a > $o ) > list_list_a > list_list_a > $o ).
thf(sy_c_List_Oord_Olexordp__eq_001tf__a,type,
lexordp_eq_a: ( a > a > $o ) > list_a > list_a > $o ).
thf(sy_c_List_Oord__class_Olexordp_001t__Nat__Onat,type,
ord_lexordp_nat: list_nat > list_nat > $o ).
thf(sy_c_List_Oord__class_Olexordp__eq_001t__Nat__Onat,type,
ord_lexordp_eq_nat: list_nat > list_nat > $o ).
thf(sy_c_List_Oproduct__lists_001t__List__Olist_Itf__a_J,type,
product_lists_list_a: list_list_list_a > list_list_list_a ).
thf(sy_c_List_Oproduct__lists_001tf__a,type,
product_lists_a: list_list_a > list_list_a ).
thf(sy_c_List_Oremdups__adj_001tf__a,type,
remdups_adj_a: list_a > list_a ).
thf(sy_c_List_Orotate1_001t__List__Olist_Itf__a_J,type,
rotate1_list_a: list_list_a > list_list_a ).
thf(sy_c_List_Orotate1_001tf__a,type,
rotate1_a: list_a > list_a ).
thf(sy_c_List_Oshuffles_001tf__a,type,
shuffles_a: list_a > list_a > set_list_a ).
thf(sy_c_List_Osplice_001t__List__Olist_Itf__a_J,type,
splice_list_a: list_list_a > list_list_a > list_list_a ).
thf(sy_c_List_Osplice_001tf__a,type,
splice_a: list_a > list_a > list_a ).
thf(sy_c_List_Osubseqs_001t__List__Olist_Itf__a_J,type,
subseqs_list_a: list_list_a > list_list_list_a ).
thf(sy_c_List_Osubseqs_001tf__a,type,
subseqs_a: list_a > list_list_a ).
thf(sy_c_List_Osuccessively_001t__List__Olist_Itf__a_J,type,
successively_list_a: ( list_a > list_a > $o ) > list_list_a > $o ).
thf(sy_c_List_Osuccessively_001tf__a,type,
successively_a: ( a > a > $o ) > list_a > $o ).
thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_Itf__a_J,type,
size_size_list_a: list_a > nat ).
thf(sy_c_Orderings_Oord__class_Oless_001t__Nat__Onat,type,
ord_less_nat: nat > nat > $o ).
thf(sy_c_Set_OCollect_001t__List__Olist_Itf__a_J,type,
collect_list_a: ( list_a > $o ) > set_list_a ).
thf(sy_c_Set_OCollect_001tf__a,type,
collect_a: ( a > $o ) > set_a ).
thf(sy_c_member_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
member_list_list_a: list_list_a > set_list_list_a > $o ).
thf(sy_c_member_001t__List__Olist_Itf__a_J,type,
member_list_a2: list_a > set_list_a > $o ).
thf(sy_c_member_001tf__a,type,
member_a2: a > set_a > $o ).
thf(sy_v_f,type,
f: nat > a ).
thf(sy_v_x,type,
x: a ).
thf(sy_v_xs,type,
xs: list_a ).
% Relevant facts (352)
thf(fact_0_i__append__Nil,axiom,
! [F: nat > list_a] :
( ( listIn1753026346list_a @ nil_list_a @ F )
= F ) ).
% i_append_Nil
thf(fact_1_i__append__Nil,axiom,
! [F: nat > a] :
( ( listIn1312259492pend_a @ nil_a @ F )
= F ) ).
% i_append_Nil
thf(fact_2_list_Oinject,axiom,
! [X21: list_a,X22: list_list_a,Y21: list_a,Y22: list_list_a] :
( ( ( cons_list_a @ X21 @ X22 )
= ( cons_list_a @ Y21 @ Y22 ) )
= ( ( X21 = Y21 )
& ( X22 = Y22 ) ) ) ).
% list.inject
thf(fact_3_list_Oinject,axiom,
! [X21: a,X22: list_a,Y21: a,Y22: list_a] :
( ( ( cons_a @ X21 @ X22 )
= ( cons_a @ Y21 @ Y22 ) )
= ( ( X21 = Y21 )
& ( X22 = Y22 ) ) ) ).
% list.inject
thf(fact_4_list_Odistinct_I1_J,axiom,
! [X21: list_a,X22: list_list_a] :
( nil_list_a
!= ( cons_list_a @ X21 @ X22 ) ) ).
% list.distinct(1)
thf(fact_5_list_Odistinct_I1_J,axiom,
! [X21: a,X22: list_a] :
( nil_a
!= ( cons_a @ X21 @ X22 ) ) ).
% list.distinct(1)
thf(fact_6_list_OdiscI,axiom,
! [List: list_list_a,X21: list_a,X22: list_list_a] :
( ( List
= ( cons_list_a @ X21 @ X22 ) )
=> ( List != nil_list_a ) ) ).
% list.discI
thf(fact_7_list_OdiscI,axiom,
! [List: list_a,X21: a,X22: list_a] :
( ( List
= ( cons_a @ X21 @ X22 ) )
=> ( List != nil_a ) ) ).
% list.discI
thf(fact_8_list_Oexhaust,axiom,
! [Y: list_list_a] :
( ( Y != nil_list_a )
=> ~ ! [X212: list_a,X222: list_list_a] :
( Y
!= ( cons_list_a @ X212 @ X222 ) ) ) ).
% list.exhaust
thf(fact_9_list_Oexhaust,axiom,
! [Y: list_a] :
( ( Y != nil_a )
=> ~ ! [X212: a,X222: list_a] :
( Y
!= ( cons_a @ X212 @ X222 ) ) ) ).
% list.exhaust
thf(fact_10_list_Oinducts,axiom,
! [P: list_list_a > $o,List: list_list_a] :
( ( P @ nil_list_a )
=> ( ! [X1: list_a,X2: list_list_a] :
( ( P @ X2 )
=> ( P @ ( cons_list_a @ X1 @ X2 ) ) )
=> ( P @ List ) ) ) ).
% list.inducts
thf(fact_11_list_Oinducts,axiom,
! [P: list_a > $o,List: list_a] :
( ( P @ nil_a )
=> ( ! [X1: a,X2: list_a] :
( ( P @ X2 )
=> ( P @ ( cons_a @ X1 @ X2 ) ) )
=> ( P @ List ) ) ) ).
% list.inducts
thf(fact_12_neq__Nil__conv,axiom,
! [Xs: list_list_a] :
( ( Xs != nil_list_a )
= ( ? [Y2: list_a,Ys: list_list_a] :
( Xs
= ( cons_list_a @ Y2 @ Ys ) ) ) ) ).
% neq_Nil_conv
thf(fact_13_neq__Nil__conv,axiom,
! [Xs: list_a] :
( ( Xs != nil_a )
= ( ? [Y2: a,Ys: list_a] :
( Xs
= ( cons_a @ Y2 @ Ys ) ) ) ) ).
% neq_Nil_conv
thf(fact_14_list__induct2_H,axiom,
! [P: list_a > list_list_a > $o,Xs: list_a,Ys2: list_list_a] :
( ( P @ nil_a @ nil_list_a )
=> ( ! [X: a,Xs2: list_a] : ( P @ ( cons_a @ X @ Xs2 ) @ nil_list_a )
=> ( ! [Y3: list_a,Ys3: list_list_a] : ( P @ nil_a @ ( cons_list_a @ Y3 @ Ys3 ) )
=> ( ! [X: a,Xs2: list_a,Y3: list_a,Ys3: list_list_a] :
( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) )
=> ( P @ Xs @ Ys2 ) ) ) ) ) ).
% list_induct2'
thf(fact_15_list__induct2_H,axiom,
! [P: list_list_a > list_a > $o,Xs: list_list_a,Ys2: list_a] :
( ( P @ nil_list_a @ nil_a )
=> ( ! [X: list_a,Xs2: list_list_a] : ( P @ ( cons_list_a @ X @ Xs2 ) @ nil_a )
=> ( ! [Y3: a,Ys3: list_a] : ( P @ nil_list_a @ ( cons_a @ Y3 @ Ys3 ) )
=> ( ! [X: list_a,Xs2: list_list_a,Y3: a,Ys3: list_a] :
( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) )
=> ( P @ Xs @ Ys2 ) ) ) ) ) ).
% list_induct2'
thf(fact_16_list__induct2_H,axiom,
! [P: list_list_a > list_list_a > $o,Xs: list_list_a,Ys2: list_list_a] :
( ( P @ nil_list_a @ nil_list_a )
=> ( ! [X: list_a,Xs2: list_list_a] : ( P @ ( cons_list_a @ X @ Xs2 ) @ nil_list_a )
=> ( ! [Y3: list_a,Ys3: list_list_a] : ( P @ nil_list_a @ ( cons_list_a @ Y3 @ Ys3 ) )
=> ( ! [X: list_a,Xs2: list_list_a,Y3: list_a,Ys3: list_list_a] :
( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) )
=> ( P @ Xs @ Ys2 ) ) ) ) ) ).
% list_induct2'
thf(fact_17_list__induct2_H,axiom,
! [P: list_a > list_a > $o,Xs: list_a,Ys2: list_a] :
( ( P @ nil_a @ nil_a )
=> ( ! [X: a,Xs2: list_a] : ( P @ ( cons_a @ X @ Xs2 ) @ nil_a )
=> ( ! [Y3: a,Ys3: list_a] : ( P @ nil_a @ ( cons_a @ Y3 @ Ys3 ) )
=> ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a] :
( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) )
=> ( P @ Xs @ Ys2 ) ) ) ) ) ).
% list_induct2'
thf(fact_18_splice_Oinduct,axiom,
! [P: list_list_a > list_list_a > $o,A0: list_list_a,A1: list_list_a] :
( ! [X_1: list_list_a] : ( P @ nil_list_a @ X_1 )
=> ( ! [X: list_a,Xs2: list_list_a,Ys3: list_list_a] :
( ( P @ Ys3 @ Xs2 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) @ Ys3 ) )
=> ( P @ A0 @ A1 ) ) ) ).
% splice.induct
thf(fact_19_splice_Oinduct,axiom,
! [P: list_a > list_a > $o,A0: list_a,A1: list_a] :
( ! [X_1: list_a] : ( P @ nil_a @ X_1 )
=> ( ! [X: a,Xs2: list_a,Ys3: list_a] :
( ( P @ Ys3 @ Xs2 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ Ys3 ) )
=> ( P @ A0 @ A1 ) ) ) ).
% splice.induct
thf(fact_20_induct__list012,axiom,
! [P: list_list_a > $o,Xs: list_list_a] :
( ( P @ nil_list_a )
=> ( ! [X: list_a] : ( P @ ( cons_list_a @ X @ nil_list_a ) )
=> ( ! [X: list_a,Y3: list_a,Zs: list_list_a] :
( ( P @ Zs )
=> ( ( P @ ( cons_list_a @ Y3 @ Zs ) )
=> ( P @ ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Zs ) ) ) ) )
=> ( P @ Xs ) ) ) ) ).
% induct_list012
thf(fact_21_induct__list012,axiom,
! [P: list_a > $o,Xs: list_a] :
( ( P @ nil_a )
=> ( ! [X: a] : ( P @ ( cons_a @ X @ nil_a ) )
=> ( ! [X: a,Y3: a,Zs: list_a] :
( ( P @ Zs )
=> ( ( P @ ( cons_a @ Y3 @ Zs ) )
=> ( P @ ( cons_a @ X @ ( cons_a @ Y3 @ Zs ) ) ) ) )
=> ( P @ Xs ) ) ) ) ).
% induct_list012
thf(fact_22_shuffles_Oinduct,axiom,
! [P: list_list_a > list_list_a > $o,A0: list_list_a,A1: list_list_a] :
( ! [X_1: list_list_a] : ( P @ nil_list_a @ X_1 )
=> ( ! [Xs2: list_list_a] : ( P @ Xs2 @ nil_list_a )
=> ( ! [X: list_a,Xs2: list_list_a,Y3: list_a,Ys3: list_list_a] :
( ( P @ Xs2 @ ( cons_list_a @ Y3 @ Ys3 ) )
=> ( ( P @ ( cons_list_a @ X @ Xs2 ) @ Ys3 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) ) )
=> ( P @ A0 @ A1 ) ) ) ) ).
% shuffles.induct
thf(fact_23_shuffles_Oinduct,axiom,
! [P: list_a > list_a > $o,A0: list_a,A1: list_a] :
( ! [X_1: list_a] : ( P @ nil_a @ X_1 )
=> ( ! [Xs2: list_a] : ( P @ Xs2 @ nil_a )
=> ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a] :
( ( P @ Xs2 @ ( cons_a @ Y3 @ Ys3 ) )
=> ( ( P @ ( cons_a @ X @ Xs2 ) @ Ys3 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) )
=> ( P @ A0 @ A1 ) ) ) ) ).
% shuffles.induct
thf(fact_24_not__Cons__self2,axiom,
! [X3: list_a,Xs: list_list_a] :
( ( cons_list_a @ X3 @ Xs )
!= Xs ) ).
% not_Cons_self2
thf(fact_25_not__Cons__self2,axiom,
! [X3: a,Xs: list_a] :
( ( cons_a @ X3 @ Xs )
!= Xs ) ).
% not_Cons_self2
thf(fact_26_map__tailrec__rev_Oinduct,axiom,
! [P: ( list_a > a ) > list_list_a > list_a > $o,A0: list_a > a,A1: list_list_a,A2: list_a] :
( ! [F2: list_a > a,X_1: list_a] : ( P @ F2 @ nil_list_a @ X_1 )
=> ( ! [F2: list_a > a,A: list_a,As: list_list_a,Bs: list_a] :
( ( P @ F2 @ As @ ( cons_a @ ( F2 @ A ) @ Bs ) )
=> ( P @ F2 @ ( cons_list_a @ A @ As ) @ Bs ) )
=> ( P @ A0 @ A1 @ A2 ) ) ) ).
% map_tailrec_rev.induct
thf(fact_27_map__tailrec__rev_Oinduct,axiom,
! [P: ( a > list_a ) > list_a > list_list_a > $o,A0: a > list_a,A1: list_a,A2: list_list_a] :
( ! [F2: a > list_a,X_1: list_list_a] : ( P @ F2 @ nil_a @ X_1 )
=> ( ! [F2: a > list_a,A: a,As: list_a,Bs: list_list_a] :
( ( P @ F2 @ As @ ( cons_list_a @ ( F2 @ A ) @ Bs ) )
=> ( P @ F2 @ ( cons_a @ A @ As ) @ Bs ) )
=> ( P @ A0 @ A1 @ A2 ) ) ) ).
% map_tailrec_rev.induct
thf(fact_28_map__tailrec__rev_Oinduct,axiom,
! [P: ( list_a > list_a ) > list_list_a > list_list_a > $o,A0: list_a > list_a,A1: list_list_a,A2: list_list_a] :
( ! [F2: list_a > list_a,X_1: list_list_a] : ( P @ F2 @ nil_list_a @ X_1 )
=> ( ! [F2: list_a > list_a,A: list_a,As: list_list_a,Bs: list_list_a] :
( ( P @ F2 @ As @ ( cons_list_a @ ( F2 @ A ) @ Bs ) )
=> ( P @ F2 @ ( cons_list_a @ A @ As ) @ Bs ) )
=> ( P @ A0 @ A1 @ A2 ) ) ) ).
% map_tailrec_rev.induct
thf(fact_29_map__tailrec__rev_Oinduct,axiom,
! [P: ( a > a ) > list_a > list_a > $o,A0: a > a,A1: list_a,A2: list_a] :
( ! [F2: a > a,X_1: list_a] : ( P @ F2 @ nil_a @ X_1 )
=> ( ! [F2: a > a,A: a,As: list_a,Bs: list_a] :
( ( P @ F2 @ As @ ( cons_a @ ( F2 @ A ) @ Bs ) )
=> ( P @ F2 @ ( cons_a @ A @ As ) @ Bs ) )
=> ( P @ A0 @ A1 @ A2 ) ) ) ).
% map_tailrec_rev.induct
thf(fact_30_list__nonempty__induct,axiom,
! [Xs: list_list_a,P: list_list_a > $o] :
( ( Xs != nil_list_a )
=> ( ! [X: list_a] : ( P @ ( cons_list_a @ X @ nil_list_a ) )
=> ( ! [X: list_a,Xs2: list_list_a] :
( ( Xs2 != nil_list_a )
=> ( ( P @ Xs2 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) ) ) )
=> ( P @ Xs ) ) ) ) ).
% list_nonempty_induct
thf(fact_31_list__nonempty__induct,axiom,
! [Xs: list_a,P: list_a > $o] :
( ( Xs != nil_a )
=> ( ! [X: a] : ( P @ ( cons_a @ X @ nil_a ) )
=> ( ! [X: a,Xs2: list_a] :
( ( Xs2 != nil_a )
=> ( ( P @ Xs2 )
=> ( P @ ( cons_a @ X @ Xs2 ) ) ) )
=> ( P @ Xs ) ) ) ) ).
% list_nonempty_induct
thf(fact_32_successively_Oinduct,axiom,
! [P: ( list_a > list_a > $o ) > list_list_a > $o,A0: list_a > list_a > $o,A1: list_list_a] :
( ! [P2: list_a > list_a > $o] : ( P @ P2 @ nil_list_a )
=> ( ! [P2: list_a > list_a > $o,X: list_a] : ( P @ P2 @ ( cons_list_a @ X @ nil_list_a ) )
=> ( ! [P2: list_a > list_a > $o,X: list_a,Y3: list_a,Xs2: list_list_a] :
( ( P @ P2 @ ( cons_list_a @ Y3 @ Xs2 ) )
=> ( P @ P2 @ ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) ) )
=> ( P @ A0 @ A1 ) ) ) ) ).
% successively.induct
thf(fact_33_successively_Oinduct,axiom,
! [P: ( a > a > $o ) > list_a > $o,A0: a > a > $o,A1: list_a] :
( ! [P2: a > a > $o] : ( P @ P2 @ nil_a )
=> ( ! [P2: a > a > $o,X: a] : ( P @ P2 @ ( cons_a @ X @ nil_a ) )
=> ( ! [P2: a > a > $o,X: a,Y3: a,Xs2: list_a] :
( ( P @ P2 @ ( cons_a @ Y3 @ Xs2 ) )
=> ( P @ P2 @ ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) ) )
=> ( P @ A0 @ A1 ) ) ) ) ).
% successively.induct
thf(fact_34_remdups__adj_Oinduct,axiom,
! [P: list_list_a > $o,A0: list_list_a] :
( ( P @ nil_list_a )
=> ( ! [X: list_a] : ( P @ ( cons_list_a @ X @ nil_list_a ) )
=> ( ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
( ( ( X = Y3 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) ) )
=> ( ( ( X != Y3 )
=> ( P @ ( cons_list_a @ Y3 @ Xs2 ) ) )
=> ( P @ ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) )
=> ( P @ A0 ) ) ) ) ).
% remdups_adj.induct
thf(fact_35_remdups__adj_Oinduct,axiom,
! [P: list_a > $o,A0: list_a] :
( ( P @ nil_a )
=> ( ! [X: a] : ( P @ ( cons_a @ X @ nil_a ) )
=> ( ! [X: a,Y3: a,Xs2: list_a] :
( ( ( X = Y3 )
=> ( P @ ( cons_a @ X @ Xs2 ) ) )
=> ( ( ( X != Y3 )
=> ( P @ ( cons_a @ Y3 @ Xs2 ) ) )
=> ( P @ ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) ) ) )
=> ( P @ A0 ) ) ) ) ).
% remdups_adj.induct
thf(fact_36_sorted__wrt_Oinduct,axiom,
! [P: ( list_a > list_a > $o ) > list_list_a > $o,A0: list_a > list_a > $o,A1: list_list_a] :
( ! [P2: list_a > list_a > $o] : ( P @ P2 @ nil_list_a )
=> ( ! [P2: list_a > list_a > $o,X: list_a,Ys3: list_list_a] :
( ( P @ P2 @ Ys3 )
=> ( P @ P2 @ ( cons_list_a @ X @ Ys3 ) ) )
=> ( P @ A0 @ A1 ) ) ) ).
% sorted_wrt.induct
thf(fact_37_sorted__wrt_Oinduct,axiom,
! [P: ( a > a > $o ) > list_a > $o,A0: a > a > $o,A1: list_a] :
( ! [P2: a > a > $o] : ( P @ P2 @ nil_a )
=> ( ! [P2: a > a > $o,X: a,Ys3: list_a] :
( ( P @ P2 @ Ys3 )
=> ( P @ P2 @ ( cons_a @ X @ Ys3 ) ) )
=> ( P @ A0 @ A1 ) ) ) ).
% sorted_wrt.induct
thf(fact_38_remdups__adj_Ocases,axiom,
! [X3: list_list_a] :
( ( X3 != nil_list_a )
=> ( ! [X: list_a] :
( X3
!= ( cons_list_a @ X @ nil_list_a ) )
=> ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
( X3
!= ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) ) ).
% remdups_adj.cases
thf(fact_39_remdups__adj_Ocases,axiom,
! [X3: list_a] :
( ( X3 != nil_a )
=> ( ! [X: a] :
( X3
!= ( cons_a @ X @ nil_a ) )
=> ~ ! [X: a,Y3: a,Xs2: list_a] :
( X3
!= ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ).
% remdups_adj.cases
thf(fact_40_transpose_Ocases,axiom,
! [X3: list_list_list_a] :
( ( X3 != nil_list_list_a )
=> ( ! [Xss: list_list_list_a] :
( X3
!= ( cons_list_list_a @ nil_list_a @ Xss ) )
=> ~ ! [X: list_a,Xs2: list_list_a,Xss: list_list_list_a] :
( X3
!= ( cons_list_list_a @ ( cons_list_a @ X @ Xs2 ) @ Xss ) ) ) ) ).
% transpose.cases
thf(fact_41_transpose_Ocases,axiom,
! [X3: list_list_a] :
( ( X3 != nil_list_a )
=> ( ! [Xss: list_list_a] :
( X3
!= ( cons_list_a @ nil_a @ Xss ) )
=> ~ ! [X: a,Xs2: list_a,Xss: list_list_a] :
( X3
!= ( cons_list_a @ ( cons_a @ X @ Xs2 ) @ Xss ) ) ) ) ).
% transpose.cases
thf(fact_42_insert__Nil,axiom,
! [X3: list_a] :
( ( insert_list_a @ X3 @ nil_list_a )
= ( cons_list_a @ X3 @ nil_list_a ) ) ).
% insert_Nil
thf(fact_43_insert__Nil,axiom,
! [X3: a] :
( ( insert_a @ X3 @ nil_a )
= ( cons_a @ X3 @ nil_a ) ) ).
% insert_Nil
thf(fact_44_list__ex1__simps_I1_J,axiom,
! [P: list_a > $o] :
~ ( list_ex1_list_a @ P @ nil_list_a ) ).
% list_ex1_simps(1)
thf(fact_45_list__ex1__simps_I1_J,axiom,
! [P: a > $o] :
~ ( list_ex1_a @ P @ nil_a ) ).
% list_ex1_simps(1)
thf(fact_46_map__tailrec__rev_Oelims,axiom,
! [X3: a > list_a,Xa: list_a,Xb: list_list_a,Y: list_list_a] :
( ( ( map_ta41997947list_a @ X3 @ Xa @ Xb )
= Y )
=> ( ( ( Xa = nil_a )
=> ( Y != Xb ) )
=> ~ ! [A: a,As: list_a] :
( ( Xa
= ( cons_a @ A @ As ) )
=> ( Y
!= ( map_ta41997947list_a @ X3 @ As @ ( cons_list_a @ ( X3 @ A ) @ Xb ) ) ) ) ) ) ).
% map_tailrec_rev.elims
thf(fact_47_map__tailrec__rev_Oelims,axiom,
! [X3: list_a > a,Xa: list_list_a,Xb: list_a,Y: list_a] :
( ( ( map_ta2002079599st_a_a @ X3 @ Xa @ Xb )
= Y )
=> ( ( ( Xa = nil_list_a )
=> ( Y != Xb ) )
=> ~ ! [A: list_a,As: list_list_a] :
( ( Xa
= ( cons_list_a @ A @ As ) )
=> ( Y
!= ( map_ta2002079599st_a_a @ X3 @ As @ ( cons_a @ ( X3 @ A ) @ Xb ) ) ) ) ) ) ).
% map_tailrec_rev.elims
thf(fact_48_map__tailrec__rev_Oelims,axiom,
! [X3: list_a > list_a,Xa: list_list_a,Xb: list_list_a,Y: list_list_a] :
( ( ( map_ta982122357list_a @ X3 @ Xa @ Xb )
= Y )
=> ( ( ( Xa = nil_list_a )
=> ( Y != Xb ) )
=> ~ ! [A: list_a,As: list_list_a] :
( ( Xa
= ( cons_list_a @ A @ As ) )
=> ( Y
!= ( map_ta982122357list_a @ X3 @ As @ ( cons_list_a @ ( X3 @ A ) @ Xb ) ) ) ) ) ) ).
% map_tailrec_rev.elims
thf(fact_49_map__tailrec__rev_Oelims,axiom,
! [X3: a > a,Xa: list_a,Xb: list_a,Y: list_a] :
( ( ( map_tailrec_rev_a_a @ X3 @ Xa @ Xb )
= Y )
=> ( ( ( Xa = nil_a )
=> ( Y != Xb ) )
=> ~ ! [A: a,As: list_a] :
( ( Xa
= ( cons_a @ A @ As ) )
=> ( Y
!= ( map_tailrec_rev_a_a @ X3 @ As @ ( cons_a @ ( X3 @ A ) @ Xb ) ) ) ) ) ) ).
% map_tailrec_rev.elims
thf(fact_50_ord_Olexordp__eq__simps_I3_J,axiom,
! [Less: list_a > list_a > $o,X3: list_a,Xs: list_list_a] :
~ ( lexordp_eq_list_a @ Less @ ( cons_list_a @ X3 @ Xs ) @ nil_list_a ) ).
% ord.lexordp_eq_simps(3)
thf(fact_51_ord_Olexordp__eq__simps_I3_J,axiom,
! [Less: a > a > $o,X3: a,Xs: list_a] :
~ ( lexordp_eq_a @ Less @ ( cons_a @ X3 @ Xs ) @ nil_a ) ).
% ord.lexordp_eq_simps(3)
thf(fact_52_bind__simps_I1_J,axiom,
! [F: a > list_list_a] :
( ( bind_a_list_a @ nil_a @ F )
= nil_list_a ) ).
% bind_simps(1)
thf(fact_53_bind__simps_I1_J,axiom,
! [F: list_a > list_a] :
( ( bind_list_a_a @ nil_list_a @ F )
= nil_a ) ).
% bind_simps(1)
thf(fact_54_bind__simps_I1_J,axiom,
! [F: list_a > list_list_a] :
( ( bind_list_a_list_a @ nil_list_a @ F )
= nil_list_a ) ).
% bind_simps(1)
thf(fact_55_bind__simps_I1_J,axiom,
! [F: a > list_a] :
( ( bind_a_a @ nil_a @ F )
= nil_a ) ).
% bind_simps(1)
thf(fact_56_listrelp_Oinducts,axiom,
! [R: a > list_a > $o,X12: list_a,X23: list_list_a,P: list_a > list_list_a > $o] :
( ( listrelp_a_list_a @ R @ X12 @ X23 )
=> ( ( P @ nil_a @ nil_list_a )
=> ( ! [X: a,Y3: list_a,Xs2: list_a,Ys3: list_list_a] :
( ( R @ X @ Y3 )
=> ( ( listrelp_a_list_a @ R @ Xs2 @ Ys3 )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) ) ) )
=> ( P @ X12 @ X23 ) ) ) ) ).
% listrelp.inducts
thf(fact_57_listrelp_Oinducts,axiom,
! [R: list_a > a > $o,X12: list_list_a,X23: list_a,P: list_list_a > list_a > $o] :
( ( listrelp_list_a_a @ R @ X12 @ X23 )
=> ( ( P @ nil_list_a @ nil_a )
=> ( ! [X: list_a,Y3: a,Xs2: list_list_a,Ys3: list_a] :
( ( R @ X @ Y3 )
=> ( ( listrelp_list_a_a @ R @ Xs2 @ Ys3 )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) ) )
=> ( P @ X12 @ X23 ) ) ) ) ).
% listrelp.inducts
thf(fact_58_listrelp_Oinducts,axiom,
! [R: list_a > list_a > $o,X12: list_list_a,X23: list_list_a,P: list_list_a > list_list_a > $o] :
( ( listre1221556159list_a @ R @ X12 @ X23 )
=> ( ( P @ nil_list_a @ nil_list_a )
=> ( ! [X: list_a,Y3: list_a,Xs2: list_list_a,Ys3: list_list_a] :
( ( R @ X @ Y3 )
=> ( ( listre1221556159list_a @ R @ Xs2 @ Ys3 )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) ) ) )
=> ( P @ X12 @ X23 ) ) ) ) ).
% listrelp.inducts
thf(fact_59_listrelp_Oinducts,axiom,
! [R: a > a > $o,X12: list_a,X23: list_a,P: list_a > list_a > $o] :
( ( listrelp_a_a @ R @ X12 @ X23 )
=> ( ( P @ nil_a @ nil_a )
=> ( ! [X: a,Y3: a,Xs2: list_a,Ys3: list_a] :
( ( R @ X @ Y3 )
=> ( ( listrelp_a_a @ R @ Xs2 @ Ys3 )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) ) )
=> ( P @ X12 @ X23 ) ) ) ) ).
% listrelp.inducts
thf(fact_60_listrelp_Osimps,axiom,
( listrelp_a_list_a
= ( ^ [R2: a > list_a > $o,A12: list_a,A22: list_list_a] :
( ( ( A12 = nil_a )
& ( A22 = nil_list_a ) )
| ? [X4: a,Y2: list_a,Xs3: list_a,Ys: list_list_a] :
( ( A12
= ( cons_a @ X4 @ Xs3 ) )
& ( A22
= ( cons_list_a @ Y2 @ Ys ) )
& ( R2 @ X4 @ Y2 )
& ( listrelp_a_list_a @ R2 @ Xs3 @ Ys ) ) ) ) ) ).
% listrelp.simps
thf(fact_61_listrelp_Osimps,axiom,
( listrelp_list_a_a
= ( ^ [R2: list_a > a > $o,A12: list_list_a,A22: list_a] :
( ( ( A12 = nil_list_a )
& ( A22 = nil_a ) )
| ? [X4: list_a,Y2: a,Xs3: list_list_a,Ys: list_a] :
( ( A12
= ( cons_list_a @ X4 @ Xs3 ) )
& ( A22
= ( cons_a @ Y2 @ Ys ) )
& ( R2 @ X4 @ Y2 )
& ( listrelp_list_a_a @ R2 @ Xs3 @ Ys ) ) ) ) ) ).
% listrelp.simps
thf(fact_62_listrelp_Osimps,axiom,
( listre1221556159list_a
= ( ^ [R2: list_a > list_a > $o,A12: list_list_a,A22: list_list_a] :
( ( ( A12 = nil_list_a )
& ( A22 = nil_list_a ) )
| ? [X4: list_a,Y2: list_a,Xs3: list_list_a,Ys: list_list_a] :
( ( A12
= ( cons_list_a @ X4 @ Xs3 ) )
& ( A22
= ( cons_list_a @ Y2 @ Ys ) )
& ( R2 @ X4 @ Y2 )
& ( listre1221556159list_a @ R2 @ Xs3 @ Ys ) ) ) ) ) ).
% listrelp.simps
thf(fact_63_listrelp_Osimps,axiom,
( listrelp_a_a
= ( ^ [R2: a > a > $o,A12: list_a,A22: list_a] :
( ( ( A12 = nil_a )
& ( A22 = nil_a ) )
| ? [X4: a,Y2: a,Xs3: list_a,Ys: list_a] :
( ( A12
= ( cons_a @ X4 @ Xs3 ) )
& ( A22
= ( cons_a @ Y2 @ Ys ) )
& ( R2 @ X4 @ Y2 )
& ( listrelp_a_a @ R2 @ Xs3 @ Ys ) ) ) ) ) ).
% listrelp.simps
thf(fact_64_listrelp_Ocases,axiom,
! [R: a > list_a > $o,A1: list_a,A2: list_list_a] :
( ( listrelp_a_list_a @ R @ A1 @ A2 )
=> ( ( ( A1 = nil_a )
=> ( A2 != nil_list_a ) )
=> ~ ! [X: a,Y3: list_a,Xs2: list_a] :
( ( A1
= ( cons_a @ X @ Xs2 ) )
=> ! [Ys3: list_list_a] :
( ( A2
= ( cons_list_a @ Y3 @ Ys3 ) )
=> ( ( R @ X @ Y3 )
=> ~ ( listrelp_a_list_a @ R @ Xs2 @ Ys3 ) ) ) ) ) ) ).
% listrelp.cases
thf(fact_65_listrelp_Ocases,axiom,
! [R: list_a > a > $o,A1: list_list_a,A2: list_a] :
( ( listrelp_list_a_a @ R @ A1 @ A2 )
=> ( ( ( A1 = nil_list_a )
=> ( A2 != nil_a ) )
=> ~ ! [X: list_a,Y3: a,Xs2: list_list_a] :
( ( A1
= ( cons_list_a @ X @ Xs2 ) )
=> ! [Ys3: list_a] :
( ( A2
= ( cons_a @ Y3 @ Ys3 ) )
=> ( ( R @ X @ Y3 )
=> ~ ( listrelp_list_a_a @ R @ Xs2 @ Ys3 ) ) ) ) ) ) ).
% listrelp.cases
thf(fact_66_listrelp_Ocases,axiom,
! [R: list_a > list_a > $o,A1: list_list_a,A2: list_list_a] :
( ( listre1221556159list_a @ R @ A1 @ A2 )
=> ( ( ( A1 = nil_list_a )
=> ( A2 != nil_list_a ) )
=> ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
( ( A1
= ( cons_list_a @ X @ Xs2 ) )
=> ! [Ys3: list_list_a] :
( ( A2
= ( cons_list_a @ Y3 @ Ys3 ) )
=> ( ( R @ X @ Y3 )
=> ~ ( listre1221556159list_a @ R @ Xs2 @ Ys3 ) ) ) ) ) ) ).
% listrelp.cases
thf(fact_67_listrelp_Ocases,axiom,
! [R: a > a > $o,A1: list_a,A2: list_a] :
( ( listrelp_a_a @ R @ A1 @ A2 )
=> ( ( ( A1 = nil_a )
=> ( A2 != nil_a ) )
=> ~ ! [X: a,Y3: a,Xs2: list_a] :
( ( A1
= ( cons_a @ X @ Xs2 ) )
=> ! [Ys3: list_a] :
( ( A2
= ( cons_a @ Y3 @ Ys3 ) )
=> ( ( R @ X @ Y3 )
=> ~ ( listrelp_a_a @ R @ Xs2 @ Ys3 ) ) ) ) ) ) ).
% listrelp.cases
thf(fact_68_ord_Olexordp__eq__simps_I4_J,axiom,
! [Less: list_a > list_a > $o,X3: list_a,Xs: list_list_a,Y: list_a,Ys2: list_list_a] :
( ( lexordp_eq_list_a @ Less @ ( cons_list_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) )
= ( ( Less @ X3 @ Y )
| ( ~ ( Less @ Y @ X3 )
& ( lexordp_eq_list_a @ Less @ Xs @ Ys2 ) ) ) ) ).
% ord.lexordp_eq_simps(4)
thf(fact_69_ord_Olexordp__eq__simps_I4_J,axiom,
! [Less: a > a > $o,X3: a,Xs: list_a,Y: a,Ys2: list_a] :
( ( lexordp_eq_a @ Less @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) )
= ( ( Less @ X3 @ Y )
| ( ~ ( Less @ Y @ X3 )
& ( lexordp_eq_a @ Less @ Xs @ Ys2 ) ) ) ) ).
% ord.lexordp_eq_simps(4)
thf(fact_70_ord_Olexordp__eq__simps_I2_J,axiom,
! [Less: list_a > list_a > $o,Xs: list_list_a] :
( ( lexordp_eq_list_a @ Less @ Xs @ nil_list_a )
= ( Xs = nil_list_a ) ) ).
% ord.lexordp_eq_simps(2)
thf(fact_71_ord_Olexordp__eq__simps_I2_J,axiom,
! [Less: a > a > $o,Xs: list_a] :
( ( lexordp_eq_a @ Less @ Xs @ nil_a )
= ( Xs = nil_a ) ) ).
% ord.lexordp_eq_simps(2)
thf(fact_72_ord_Olexordp__eq__simps_I1_J,axiom,
! [Less: list_a > list_a > $o,Ys2: list_list_a] : ( lexordp_eq_list_a @ Less @ nil_list_a @ Ys2 ) ).
% ord.lexordp_eq_simps(1)
thf(fact_73_ord_Olexordp__eq__simps_I1_J,axiom,
! [Less: a > a > $o,Ys2: list_a] : ( lexordp_eq_a @ Less @ nil_a @ Ys2 ) ).
% ord.lexordp_eq_simps(1)
thf(fact_74_ord_Olexordp__eq_Ocong,axiom,
lexordp_eq_a = lexordp_eq_a ).
% ord.lexordp_eq.cong
thf(fact_75_ord_Olexordp__eq__refl,axiom,
! [Less: a > a > $o,Xs: list_a] : ( lexordp_eq_a @ Less @ Xs @ Xs ) ).
% ord.lexordp_eq_refl
thf(fact_76_mem__Collect__eq,axiom,
! [A3: list_a,P: list_a > $o] :
( ( member_list_a2 @ A3 @ ( collect_list_a @ P ) )
= ( P @ A3 ) ) ).
% mem_Collect_eq
thf(fact_77_mem__Collect__eq,axiom,
! [A3: a,P: a > $o] :
( ( member_a2 @ A3 @ ( collect_a @ P ) )
= ( P @ A3 ) ) ).
% mem_Collect_eq
thf(fact_78_Collect__mem__eq,axiom,
! [A4: set_list_a] :
( ( collect_list_a
@ ^ [X4: list_a] : ( member_list_a2 @ X4 @ A4 ) )
= A4 ) ).
% Collect_mem_eq
thf(fact_79_Collect__mem__eq,axiom,
! [A4: set_a] :
( ( collect_a
@ ^ [X4: a] : ( member_a2 @ X4 @ A4 ) )
= A4 ) ).
% Collect_mem_eq
thf(fact_80_ord_Olexordp__eq_OCons,axiom,
! [Less: list_a > list_a > $o,X3: list_a,Y: list_a,Xs: list_list_a,Ys2: list_list_a] :
( ( Less @ X3 @ Y )
=> ( lexordp_eq_list_a @ Less @ ( cons_list_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) ) ) ).
% ord.lexordp_eq.Cons
thf(fact_81_ord_Olexordp__eq_OCons,axiom,
! [Less: a > a > $o,X3: a,Y: a,Xs: list_a,Ys2: list_a] :
( ( Less @ X3 @ Y )
=> ( lexordp_eq_a @ Less @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) ) ) ).
% ord.lexordp_eq.Cons
thf(fact_82_ord_Olexordp__eq_OCons__eq,axiom,
! [Less: list_a > list_a > $o,X3: list_a,Y: list_a,Xs: list_list_a,Ys2: list_list_a] :
( ~ ( Less @ X3 @ Y )
=> ( ~ ( Less @ Y @ X3 )
=> ( ( lexordp_eq_list_a @ Less @ Xs @ Ys2 )
=> ( lexordp_eq_list_a @ Less @ ( cons_list_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) ) ) ) ) ).
% ord.lexordp_eq.Cons_eq
thf(fact_83_ord_Olexordp__eq_OCons__eq,axiom,
! [Less: a > a > $o,X3: a,Y: a,Xs: list_a,Ys2: list_a] :
( ~ ( Less @ X3 @ Y )
=> ( ~ ( Less @ Y @ X3 )
=> ( ( lexordp_eq_a @ Less @ Xs @ Ys2 )
=> ( lexordp_eq_a @ Less @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) ) ) ) ) ).
% ord.lexordp_eq.Cons_eq
thf(fact_84_ord_Olexordp__eq_ONil,axiom,
! [Less: list_a > list_a > $o,Ys2: list_list_a] : ( lexordp_eq_list_a @ Less @ nil_list_a @ Ys2 ) ).
% ord.lexordp_eq.Nil
thf(fact_85_ord_Olexordp__eq_ONil,axiom,
! [Less: a > a > $o,Ys2: list_a] : ( lexordp_eq_a @ Less @ nil_a @ Ys2 ) ).
% ord.lexordp_eq.Nil
thf(fact_86_listrelp_OCons,axiom,
! [R: a > list_a > $o,X3: a,Y: list_a,Xs: list_a,Ys2: list_list_a] :
( ( R @ X3 @ Y )
=> ( ( listrelp_a_list_a @ R @ Xs @ Ys2 )
=> ( listrelp_a_list_a @ R @ ( cons_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) ) ) ) ).
% listrelp.Cons
thf(fact_87_listrelp_OCons,axiom,
! [R: list_a > a > $o,X3: list_a,Y: a,Xs: list_list_a,Ys2: list_a] :
( ( R @ X3 @ Y )
=> ( ( listrelp_list_a_a @ R @ Xs @ Ys2 )
=> ( listrelp_list_a_a @ R @ ( cons_list_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) ) ) ) ).
% listrelp.Cons
thf(fact_88_listrelp_OCons,axiom,
! [R: list_a > list_a > $o,X3: list_a,Y: list_a,Xs: list_list_a,Ys2: list_list_a] :
( ( R @ X3 @ Y )
=> ( ( listre1221556159list_a @ R @ Xs @ Ys2 )
=> ( listre1221556159list_a @ R @ ( cons_list_a @ X3 @ Xs ) @ ( cons_list_a @ Y @ Ys2 ) ) ) ) ).
% listrelp.Cons
thf(fact_89_listrelp_OCons,axiom,
! [R: a > a > $o,X3: a,Y: a,Xs: list_a,Ys2: list_a] :
( ( R @ X3 @ Y )
=> ( ( listrelp_a_a @ R @ Xs @ Ys2 )
=> ( listrelp_a_a @ R @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) ) ) ) ).
% listrelp.Cons
thf(fact_90_listrelp_ONil,axiom,
! [R: a > list_a > $o] : ( listrelp_a_list_a @ R @ nil_a @ nil_list_a ) ).
% listrelp.Nil
thf(fact_91_listrelp_ONil,axiom,
! [R: list_a > a > $o] : ( listrelp_list_a_a @ R @ nil_list_a @ nil_a ) ).
% listrelp.Nil
thf(fact_92_listrelp_ONil,axiom,
! [R: list_a > list_a > $o] : ( listre1221556159list_a @ R @ nil_list_a @ nil_list_a ) ).
% listrelp.Nil
thf(fact_93_listrelp_ONil,axiom,
! [R: a > a > $o] : ( listrelp_a_a @ R @ nil_a @ nil_a ) ).
% listrelp.Nil
thf(fact_94_map__tailrec__rev_Osimps_I2_J,axiom,
! [F: a > list_a,A3: a,As2: list_a,Bs2: list_list_a] :
( ( map_ta41997947list_a @ F @ ( cons_a @ A3 @ As2 ) @ Bs2 )
= ( map_ta41997947list_a @ F @ As2 @ ( cons_list_a @ ( F @ A3 ) @ Bs2 ) ) ) ).
% map_tailrec_rev.simps(2)
thf(fact_95_map__tailrec__rev_Osimps_I2_J,axiom,
! [F: list_a > a,A3: list_a,As2: list_list_a,Bs2: list_a] :
( ( map_ta2002079599st_a_a @ F @ ( cons_list_a @ A3 @ As2 ) @ Bs2 )
= ( map_ta2002079599st_a_a @ F @ As2 @ ( cons_a @ ( F @ A3 ) @ Bs2 ) ) ) ).
% map_tailrec_rev.simps(2)
thf(fact_96_map__tailrec__rev_Osimps_I2_J,axiom,
! [F: list_a > list_a,A3: list_a,As2: list_list_a,Bs2: list_list_a] :
( ( map_ta982122357list_a @ F @ ( cons_list_a @ A3 @ As2 ) @ Bs2 )
= ( map_ta982122357list_a @ F @ As2 @ ( cons_list_a @ ( F @ A3 ) @ Bs2 ) ) ) ).
% map_tailrec_rev.simps(2)
thf(fact_97_map__tailrec__rev_Osimps_I2_J,axiom,
! [F: a > a,A3: a,As2: list_a,Bs2: list_a] :
( ( map_tailrec_rev_a_a @ F @ ( cons_a @ A3 @ As2 ) @ Bs2 )
= ( map_tailrec_rev_a_a @ F @ As2 @ ( cons_a @ ( F @ A3 ) @ Bs2 ) ) ) ).
% map_tailrec_rev.simps(2)
thf(fact_98_map__tailrec__rev_Osimps_I1_J,axiom,
! [F: a > a,Bs2: list_a] :
( ( map_tailrec_rev_a_a @ F @ nil_a @ Bs2 )
= Bs2 ) ).
% map_tailrec_rev.simps(1)
thf(fact_99_ord_Olexordp__eq_Ocases,axiom,
! [Less: list_a > list_a > $o,A1: list_list_a,A2: list_list_a] :
( ( lexordp_eq_list_a @ Less @ A1 @ A2 )
=> ( ( A1 != nil_list_a )
=> ( ! [X: list_a] :
( ? [Xs2: list_list_a] :
( A1
= ( cons_list_a @ X @ Xs2 ) )
=> ! [Y3: list_a] :
( ? [Ys3: list_list_a] :
( A2
= ( cons_list_a @ Y3 @ Ys3 ) )
=> ~ ( Less @ X @ Y3 ) ) )
=> ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
( ( A1
= ( cons_list_a @ X @ Xs2 ) )
=> ! [Ys3: list_list_a] :
( ( A2
= ( cons_list_a @ Y3 @ Ys3 ) )
=> ( ~ ( Less @ X @ Y3 )
=> ( ~ ( Less @ Y3 @ X )
=> ~ ( lexordp_eq_list_a @ Less @ Xs2 @ Ys3 ) ) ) ) ) ) ) ) ).
% ord.lexordp_eq.cases
thf(fact_100_ord_Olexordp__eq_Ocases,axiom,
! [Less: a > a > $o,A1: list_a,A2: list_a] :
( ( lexordp_eq_a @ Less @ A1 @ A2 )
=> ( ( A1 != nil_a )
=> ( ! [X: a] :
( ? [Xs2: list_a] :
( A1
= ( cons_a @ X @ Xs2 ) )
=> ! [Y3: a] :
( ? [Ys3: list_a] :
( A2
= ( cons_a @ Y3 @ Ys3 ) )
=> ~ ( Less @ X @ Y3 ) ) )
=> ~ ! [X: a,Y3: a,Xs2: list_a] :
( ( A1
= ( cons_a @ X @ Xs2 ) )
=> ! [Ys3: list_a] :
( ( A2
= ( cons_a @ Y3 @ Ys3 ) )
=> ( ~ ( Less @ X @ Y3 )
=> ( ~ ( Less @ Y3 @ X )
=> ~ ( lexordp_eq_a @ Less @ Xs2 @ Ys3 ) ) ) ) ) ) ) ) ).
% ord.lexordp_eq.cases
thf(fact_101_ord_Olexordp__eq_Osimps,axiom,
( lexordp_eq_list_a
= ( ^ [Less2: list_a > list_a > $o,A12: list_list_a,A22: list_list_a] :
( ? [Ys: list_list_a] :
( ( A12 = nil_list_a )
& ( A22 = Ys ) )
| ? [X4: list_a,Y2: list_a,Xs3: list_list_a,Ys: list_list_a] :
( ( A12
= ( cons_list_a @ X4 @ Xs3 ) )
& ( A22
= ( cons_list_a @ Y2 @ Ys ) )
& ( Less2 @ X4 @ Y2 ) )
| ? [X4: list_a,Y2: list_a,Xs3: list_list_a,Ys: list_list_a] :
( ( A12
= ( cons_list_a @ X4 @ Xs3 ) )
& ( A22
= ( cons_list_a @ Y2 @ Ys ) )
& ~ ( Less2 @ X4 @ Y2 )
& ~ ( Less2 @ Y2 @ X4 )
& ( lexordp_eq_list_a @ Less2 @ Xs3 @ Ys ) ) ) ) ) ).
% ord.lexordp_eq.simps
thf(fact_102_ord_Olexordp__eq_Osimps,axiom,
( lexordp_eq_a
= ( ^ [Less2: a > a > $o,A12: list_a,A22: list_a] :
( ? [Ys: list_a] :
( ( A12 = nil_a )
& ( A22 = Ys ) )
| ? [X4: a,Y2: a,Xs3: list_a,Ys: list_a] :
( ( A12
= ( cons_a @ X4 @ Xs3 ) )
& ( A22
= ( cons_a @ Y2 @ Ys ) )
& ( Less2 @ X4 @ Y2 ) )
| ? [X4: a,Y2: a,Xs3: list_a,Ys: list_a] :
( ( A12
= ( cons_a @ X4 @ Xs3 ) )
& ( A22
= ( cons_a @ Y2 @ Ys ) )
& ~ ( Less2 @ X4 @ Y2 )
& ~ ( Less2 @ Y2 @ X4 )
& ( lexordp_eq_a @ Less2 @ Xs3 @ Ys ) ) ) ) ) ).
% ord.lexordp_eq.simps
thf(fact_103_ord_Olexordp__eq_Oinducts,axiom,
! [Less: list_a > list_a > $o,X12: list_list_a,X23: list_list_a,P: list_list_a > list_list_a > $o] :
( ( lexordp_eq_list_a @ Less @ X12 @ X23 )
=> ( ! [X_1: list_list_a] : ( P @ nil_list_a @ X_1 )
=> ( ! [X: list_a,Y3: list_a,Xs2: list_list_a,Ys3: list_list_a] :
( ( Less @ X @ Y3 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) )
=> ( ! [X: list_a,Y3: list_a,Xs2: list_list_a,Ys3: list_list_a] :
( ~ ( Less @ X @ Y3 )
=> ( ~ ( Less @ Y3 @ X )
=> ( ( lexordp_eq_list_a @ Less @ Xs2 @ Ys3 )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_list_a @ X @ Xs2 ) @ ( cons_list_a @ Y3 @ Ys3 ) ) ) ) ) )
=> ( P @ X12 @ X23 ) ) ) ) ) ).
% ord.lexordp_eq.inducts
thf(fact_104_ord_Olexordp__eq_Oinducts,axiom,
! [Less: a > a > $o,X12: list_a,X23: list_a,P: list_a > list_a > $o] :
( ( lexordp_eq_a @ Less @ X12 @ X23 )
=> ( ! [X_1: list_a] : ( P @ nil_a @ X_1 )
=> ( ! [X: a,Y3: a,Xs2: list_a,Ys3: list_a] :
( ( Less @ X @ Y3 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) )
=> ( ! [X: a,Y3: a,Xs2: list_a,Ys3: list_a] :
( ~ ( Less @ X @ Y3 )
=> ( ~ ( Less @ Y3 @ X )
=> ( ( lexordp_eq_a @ Less @ Xs2 @ Ys3 )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) ) ) )
=> ( P @ X12 @ X23 ) ) ) ) ) ).
% ord.lexordp_eq.inducts
thf(fact_105_product__lists_Osimps_I1_J,axiom,
( ( product_lists_list_a @ nil_list_list_a )
= ( cons_list_list_a @ nil_list_a @ nil_list_list_a ) ) ).
% product_lists.simps(1)
thf(fact_106_product__lists_Osimps_I1_J,axiom,
( ( product_lists_a @ nil_list_a )
= ( cons_list_a @ nil_a @ nil_list_a ) ) ).
% product_lists.simps(1)
thf(fact_107_subseqs_Osimps_I1_J,axiom,
( ( subseqs_list_a @ nil_list_a )
= ( cons_list_list_a @ nil_list_a @ nil_list_list_a ) ) ).
% subseqs.simps(1)
thf(fact_108_subseqs_Osimps_I1_J,axiom,
( ( subseqs_a @ nil_a )
= ( cons_list_a @ nil_a @ nil_list_a ) ) ).
% subseqs.simps(1)
thf(fact_109_lexordp__eq_Ocases,axiom,
! [A1: list_nat,A2: list_nat] :
( ( ord_lexordp_eq_nat @ A1 @ A2 )
=> ( ( A1 != nil_nat )
=> ( ! [X: nat] :
( ? [Xs2: list_nat] :
( A1
= ( cons_nat @ X @ Xs2 ) )
=> ! [Y3: nat] :
( ? [Ys3: list_nat] :
( A2
= ( cons_nat @ Y3 @ Ys3 ) )
=> ~ ( ord_less_nat @ X @ Y3 ) ) )
=> ~ ! [X: nat,Y3: nat,Xs2: list_nat] :
( ( A1
= ( cons_nat @ X @ Xs2 ) )
=> ! [Ys3: list_nat] :
( ( A2
= ( cons_nat @ Y3 @ Ys3 ) )
=> ( ~ ( ord_less_nat @ X @ Y3 )
=> ( ~ ( ord_less_nat @ Y3 @ X )
=> ~ ( ord_lexordp_eq_nat @ Xs2 @ Ys3 ) ) ) ) ) ) ) ) ).
% lexordp_eq.cases
thf(fact_110_lexordp__eq_Osimps,axiom,
( ord_lexordp_eq_nat
= ( ^ [A12: list_nat,A22: list_nat] :
( ? [Ys: list_nat] :
( ( A12 = nil_nat )
& ( A22 = Ys ) )
| ? [X4: nat,Y2: nat,Xs3: list_nat,Ys: list_nat] :
( ( A12
= ( cons_nat @ X4 @ Xs3 ) )
& ( A22
= ( cons_nat @ Y2 @ Ys ) )
& ( ord_less_nat @ X4 @ Y2 ) )
| ? [X4: nat,Y2: nat,Xs3: list_nat,Ys: list_nat] :
( ( A12
= ( cons_nat @ X4 @ Xs3 ) )
& ( A22
= ( cons_nat @ Y2 @ Ys ) )
& ~ ( ord_less_nat @ X4 @ Y2 )
& ~ ( ord_less_nat @ Y2 @ X4 )
& ( ord_lexordp_eq_nat @ Xs3 @ Ys ) ) ) ) ) ).
% lexordp_eq.simps
thf(fact_111_lexordp__eq_Oinducts,axiom,
! [X12: list_nat,X23: list_nat,P: list_nat > list_nat > $o] :
( ( ord_lexordp_eq_nat @ X12 @ X23 )
=> ( ! [X_1: list_nat] : ( P @ nil_nat @ X_1 )
=> ( ! [X: nat,Y3: nat,Xs2: list_nat,Ys3: list_nat] :
( ( ord_less_nat @ X @ Y3 )
=> ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) )
=> ( ! [X: nat,Y3: nat,Xs2: list_nat,Ys3: list_nat] :
( ~ ( ord_less_nat @ X @ Y3 )
=> ( ~ ( ord_less_nat @ Y3 @ X )
=> ( ( ord_lexordp_eq_nat @ Xs2 @ Ys3 )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) ) ) ) )
=> ( P @ X12 @ X23 ) ) ) ) ) ).
% lexordp_eq.inducts
thf(fact_112_member__rec_I2_J,axiom,
! [Y: list_a] :
~ ( member_list_a @ nil_list_a @ Y ) ).
% member_rec(2)
thf(fact_113_member__rec_I2_J,axiom,
! [Y: a] :
~ ( member_a @ nil_a @ Y ) ).
% member_rec(2)
thf(fact_114_member__rec_I1_J,axiom,
! [X3: list_a,Xs: list_list_a,Y: list_a] :
( ( member_list_a @ ( cons_list_a @ X3 @ Xs ) @ Y )
= ( ( X3 = Y )
| ( member_list_a @ Xs @ Y ) ) ) ).
% member_rec(1)
thf(fact_115_member__rec_I1_J,axiom,
! [X3: a,Xs: list_a,Y: a] :
( ( member_a @ ( cons_a @ X3 @ Xs ) @ Y )
= ( ( X3 = Y )
| ( member_a @ Xs @ Y ) ) ) ).
% member_rec(1)
thf(fact_116_splice_Oelims,axiom,
! [X3: list_list_a,Xa: list_list_a,Y: list_list_a] :
( ( ( splice_list_a @ X3 @ Xa )
= Y )
=> ( ( ( X3 = nil_list_a )
=> ( Y != Xa ) )
=> ~ ! [X: list_a,Xs2: list_list_a] :
( ( X3
= ( cons_list_a @ X @ Xs2 ) )
=> ( Y
!= ( cons_list_a @ X @ ( splice_list_a @ Xa @ Xs2 ) ) ) ) ) ) ).
% splice.elims
thf(fact_117_splice_Oelims,axiom,
! [X3: list_a,Xa: list_a,Y: list_a] :
( ( ( splice_a @ X3 @ Xa )
= Y )
=> ( ( ( X3 = nil_a )
=> ( Y != Xa ) )
=> ~ ! [X: a,Xs2: list_a] :
( ( X3
= ( cons_a @ X @ Xs2 ) )
=> ( Y
!= ( cons_a @ X @ ( splice_a @ Xa @ Xs2 ) ) ) ) ) ) ).
% splice.elims
thf(fact_118_bind__simps_I2_J,axiom,
! [X3: a,Xs: list_a,F: a > list_a] :
( ( bind_a_a @ ( cons_a @ X3 @ Xs ) @ F )
= ( append_a @ ( F @ X3 ) @ ( bind_a_a @ Xs @ F ) ) ) ).
% bind_simps(2)
thf(fact_119_bind__simps_I2_J,axiom,
! [X3: a,Xs: list_a,F: a > list_list_a] :
( ( bind_a_list_a @ ( cons_a @ X3 @ Xs ) @ F )
= ( append_list_a @ ( F @ X3 ) @ ( bind_a_list_a @ Xs @ F ) ) ) ).
% bind_simps(2)
thf(fact_120_bind__simps_I2_J,axiom,
! [X3: list_a,Xs: list_list_a,F: list_a > list_a] :
( ( bind_list_a_a @ ( cons_list_a @ X3 @ Xs ) @ F )
= ( append_a @ ( F @ X3 ) @ ( bind_list_a_a @ Xs @ F ) ) ) ).
% bind_simps(2)
thf(fact_121_bind__simps_I2_J,axiom,
! [X3: list_a,Xs: list_list_a,F: list_a > list_list_a] :
( ( bind_list_a_list_a @ ( cons_list_a @ X3 @ Xs ) @ F )
= ( append_list_a @ ( F @ X3 ) @ ( bind_list_a_list_a @ Xs @ F ) ) ) ).
% bind_simps(2)
thf(fact_122_same__append__eq,axiom,
! [Xs: list_a,Ys2: list_a,Zs2: list_a] :
( ( ( append_a @ Xs @ Ys2 )
= ( append_a @ Xs @ Zs2 ) )
= ( Ys2 = Zs2 ) ) ).
% same_append_eq
thf(fact_123_same__append__eq,axiom,
! [Xs: list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
( ( ( append_list_a @ Xs @ Ys2 )
= ( append_list_a @ Xs @ Zs2 ) )
= ( Ys2 = Zs2 ) ) ).
% same_append_eq
thf(fact_124_append__same__eq,axiom,
! [Ys2: list_a,Xs: list_a,Zs2: list_a] :
( ( ( append_a @ Ys2 @ Xs )
= ( append_a @ Zs2 @ Xs ) )
= ( Ys2 = Zs2 ) ) ).
% append_same_eq
thf(fact_125_append__same__eq,axiom,
! [Ys2: list_list_a,Xs: list_list_a,Zs2: list_list_a] :
( ( ( append_list_a @ Ys2 @ Xs )
= ( append_list_a @ Zs2 @ Xs ) )
= ( Ys2 = Zs2 ) ) ).
% append_same_eq
thf(fact_126_append__assoc,axiom,
! [Xs: list_a,Ys2: list_a,Zs2: list_a] :
( ( append_a @ ( append_a @ Xs @ Ys2 ) @ Zs2 )
= ( append_a @ Xs @ ( append_a @ Ys2 @ Zs2 ) ) ) ).
% append_assoc
thf(fact_127_append__assoc,axiom,
! [Xs: list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
( ( append_list_a @ ( append_list_a @ Xs @ Ys2 ) @ Zs2 )
= ( append_list_a @ Xs @ ( append_list_a @ Ys2 @ Zs2 ) ) ) ).
% append_assoc
thf(fact_128_append_Oassoc,axiom,
! [A3: list_a,B: list_a,C: list_a] :
( ( append_a @ ( append_a @ A3 @ B ) @ C )
= ( append_a @ A3 @ ( append_a @ B @ C ) ) ) ).
% append.assoc
thf(fact_129_append_Oassoc,axiom,
! [A3: list_list_a,B: list_list_a,C: list_list_a] :
( ( append_list_a @ ( append_list_a @ A3 @ B ) @ C )
= ( append_list_a @ A3 @ ( append_list_a @ B @ C ) ) ) ).
% append.assoc
thf(fact_130_append_Oright__neutral,axiom,
! [A3: list_list_a] :
( ( append_list_a @ A3 @ nil_list_a )
= A3 ) ).
% append.right_neutral
thf(fact_131_append_Oright__neutral,axiom,
! [A3: list_a] :
( ( append_a @ A3 @ nil_a )
= A3 ) ).
% append.right_neutral
thf(fact_132_append__is__Nil__conv,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( ( append_list_a @ Xs @ Ys2 )
= nil_list_a )
= ( ( Xs = nil_list_a )
& ( Ys2 = nil_list_a ) ) ) ).
% append_is_Nil_conv
thf(fact_133_append__is__Nil__conv,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( ( append_a @ Xs @ Ys2 )
= nil_a )
= ( ( Xs = nil_a )
& ( Ys2 = nil_a ) ) ) ).
% append_is_Nil_conv
thf(fact_134_Nil__is__append__conv,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( nil_list_a
= ( append_list_a @ Xs @ Ys2 ) )
= ( ( Xs = nil_list_a )
& ( Ys2 = nil_list_a ) ) ) ).
% Nil_is_append_conv
thf(fact_135_Nil__is__append__conv,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( nil_a
= ( append_a @ Xs @ Ys2 ) )
= ( ( Xs = nil_a )
& ( Ys2 = nil_a ) ) ) ).
% Nil_is_append_conv
thf(fact_136_self__append__conv2,axiom,
! [Ys2: list_list_a,Xs: list_list_a] :
( ( Ys2
= ( append_list_a @ Xs @ Ys2 ) )
= ( Xs = nil_list_a ) ) ).
% self_append_conv2
thf(fact_137_self__append__conv2,axiom,
! [Ys2: list_a,Xs: list_a] :
( ( Ys2
= ( append_a @ Xs @ Ys2 ) )
= ( Xs = nil_a ) ) ).
% self_append_conv2
thf(fact_138_append__self__conv2,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( ( append_list_a @ Xs @ Ys2 )
= Ys2 )
= ( Xs = nil_list_a ) ) ).
% append_self_conv2
thf(fact_139_append__self__conv2,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( ( append_a @ Xs @ Ys2 )
= Ys2 )
= ( Xs = nil_a ) ) ).
% append_self_conv2
thf(fact_140_self__append__conv,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( Xs
= ( append_list_a @ Xs @ Ys2 ) )
= ( Ys2 = nil_list_a ) ) ).
% self_append_conv
thf(fact_141_self__append__conv,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( Xs
= ( append_a @ Xs @ Ys2 ) )
= ( Ys2 = nil_a ) ) ).
% self_append_conv
thf(fact_142_append__self__conv,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( ( append_list_a @ Xs @ Ys2 )
= Xs )
= ( Ys2 = nil_list_a ) ) ).
% append_self_conv
thf(fact_143_append__self__conv,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( ( append_a @ Xs @ Ys2 )
= Xs )
= ( Ys2 = nil_a ) ) ).
% append_self_conv
thf(fact_144_append__Nil2,axiom,
! [Xs: list_list_a] :
( ( append_list_a @ Xs @ nil_list_a )
= Xs ) ).
% append_Nil2
thf(fact_145_append__Nil2,axiom,
! [Xs: list_a] :
( ( append_a @ Xs @ nil_a )
= Xs ) ).
% append_Nil2
thf(fact_146_split__Nil__iff,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( ( splice_list_a @ Xs @ Ys2 )
= nil_list_a )
= ( ( Xs = nil_list_a )
& ( Ys2 = nil_list_a ) ) ) ).
% split_Nil_iff
thf(fact_147_split__Nil__iff,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( ( splice_a @ Xs @ Ys2 )
= nil_a )
= ( ( Xs = nil_a )
& ( Ys2 = nil_a ) ) ) ).
% split_Nil_iff
thf(fact_148_splice__Nil2,axiom,
! [Xs: list_list_a] :
( ( splice_list_a @ Xs @ nil_list_a )
= Xs ) ).
% splice_Nil2
thf(fact_149_splice__Nil2,axiom,
! [Xs: list_a] :
( ( splice_a @ Xs @ nil_a )
= Xs ) ).
% splice_Nil2
thf(fact_150_i__append__assoc,axiom,
! [Xs: list_list_a,Ys2: list_list_a,F: nat > list_a] :
( ( listIn1753026346list_a @ Xs @ ( listIn1753026346list_a @ Ys2 @ F ) )
= ( listIn1753026346list_a @ ( append_list_a @ Xs @ Ys2 ) @ F ) ) ).
% i_append_assoc
thf(fact_151_i__append__assoc,axiom,
! [Xs: list_a,Ys2: list_a,F: nat > a] :
( ( listIn1312259492pend_a @ Xs @ ( listIn1312259492pend_a @ Ys2 @ F ) )
= ( listIn1312259492pend_a @ ( append_a @ Xs @ Ys2 ) @ F ) ) ).
% i_append_assoc
thf(fact_152_append1__eq__conv,axiom,
! [Xs: list_list_a,X3: list_a,Ys2: list_list_a,Y: list_a] :
( ( ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) )
= ( append_list_a @ Ys2 @ ( cons_list_a @ Y @ nil_list_a ) ) )
= ( ( Xs = Ys2 )
& ( X3 = Y ) ) ) ).
% append1_eq_conv
thf(fact_153_append1__eq__conv,axiom,
! [Xs: list_a,X3: a,Ys2: list_a,Y: a] :
( ( ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) )
= ( append_a @ Ys2 @ ( cons_a @ Y @ nil_a ) ) )
= ( ( Xs = Ys2 )
& ( X3 = Y ) ) ) ).
% append1_eq_conv
thf(fact_154_lexordp__eq__simps_I4_J,axiom,
! [X3: nat,Xs: list_nat,Y: nat,Ys2: list_nat] :
( ( ord_lexordp_eq_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) )
= ( ( ord_less_nat @ X3 @ Y )
| ( ~ ( ord_less_nat @ Y @ X3 )
& ( ord_lexordp_eq_nat @ Xs @ Ys2 ) ) ) ) ).
% lexordp_eq_simps(4)
thf(fact_155_append__eq__append__conv2,axiom,
! [Xs: list_a,Ys2: list_a,Zs2: list_a,Ts: list_a] :
( ( ( append_a @ Xs @ Ys2 )
= ( append_a @ Zs2 @ Ts ) )
= ( ? [Us: list_a] :
( ( ( Xs
= ( append_a @ Zs2 @ Us ) )
& ( ( append_a @ Us @ Ys2 )
= Ts ) )
| ( ( ( append_a @ Xs @ Us )
= Zs2 )
& ( Ys2
= ( append_a @ Us @ Ts ) ) ) ) ) ) ).
% append_eq_append_conv2
thf(fact_156_append__eq__append__conv2,axiom,
! [Xs: list_list_a,Ys2: list_list_a,Zs2: list_list_a,Ts: list_list_a] :
( ( ( append_list_a @ Xs @ Ys2 )
= ( append_list_a @ Zs2 @ Ts ) )
= ( ? [Us: list_list_a] :
( ( ( Xs
= ( append_list_a @ Zs2 @ Us ) )
& ( ( append_list_a @ Us @ Ys2 )
= Ts ) )
| ( ( ( append_list_a @ Xs @ Us )
= Zs2 )
& ( Ys2
= ( append_list_a @ Us @ Ts ) ) ) ) ) ) ).
% append_eq_append_conv2
thf(fact_157_append__eq__appendI,axiom,
! [Xs: list_a,Xs1: list_a,Zs2: list_a,Ys2: list_a,Us2: list_a] :
( ( ( append_a @ Xs @ Xs1 )
= Zs2 )
=> ( ( Ys2
= ( append_a @ Xs1 @ Us2 ) )
=> ( ( append_a @ Xs @ Ys2 )
= ( append_a @ Zs2 @ Us2 ) ) ) ) ).
% append_eq_appendI
thf(fact_158_append__eq__appendI,axiom,
! [Xs: list_list_a,Xs1: list_list_a,Zs2: list_list_a,Ys2: list_list_a,Us2: list_list_a] :
( ( ( append_list_a @ Xs @ Xs1 )
= Zs2 )
=> ( ( Ys2
= ( append_list_a @ Xs1 @ Us2 ) )
=> ( ( append_list_a @ Xs @ Ys2 )
= ( append_list_a @ Zs2 @ Us2 ) ) ) ) ).
% append_eq_appendI
thf(fact_159_append__Cons,axiom,
! [X3: list_a,Xs: list_list_a,Ys2: list_list_a] :
( ( append_list_a @ ( cons_list_a @ X3 @ Xs ) @ Ys2 )
= ( cons_list_a @ X3 @ ( append_list_a @ Xs @ Ys2 ) ) ) ).
% append_Cons
thf(fact_160_append__Cons,axiom,
! [X3: a,Xs: list_a,Ys2: list_a] :
( ( append_a @ ( cons_a @ X3 @ Xs ) @ Ys2 )
= ( cons_a @ X3 @ ( append_a @ Xs @ Ys2 ) ) ) ).
% append_Cons
thf(fact_161_Cons__eq__appendI,axiom,
! [X3: list_a,Xs1: list_list_a,Ys2: list_list_a,Xs: list_list_a,Zs2: list_list_a] :
( ( ( cons_list_a @ X3 @ Xs1 )
= Ys2 )
=> ( ( Xs
= ( append_list_a @ Xs1 @ Zs2 ) )
=> ( ( cons_list_a @ X3 @ Xs )
= ( append_list_a @ Ys2 @ Zs2 ) ) ) ) ).
% Cons_eq_appendI
thf(fact_162_Cons__eq__appendI,axiom,
! [X3: a,Xs1: list_a,Ys2: list_a,Xs: list_a,Zs2: list_a] :
( ( ( cons_a @ X3 @ Xs1 )
= Ys2 )
=> ( ( Xs
= ( append_a @ Xs1 @ Zs2 ) )
=> ( ( cons_a @ X3 @ Xs )
= ( append_a @ Ys2 @ Zs2 ) ) ) ) ).
% Cons_eq_appendI
thf(fact_163_append_Oleft__neutral,axiom,
! [A3: list_list_a] :
( ( append_list_a @ nil_list_a @ A3 )
= A3 ) ).
% append.left_neutral
thf(fact_164_append_Oleft__neutral,axiom,
! [A3: list_a] :
( ( append_a @ nil_a @ A3 )
= A3 ) ).
% append.left_neutral
thf(fact_165_append__Nil,axiom,
! [Ys2: list_list_a] :
( ( append_list_a @ nil_list_a @ Ys2 )
= Ys2 ) ).
% append_Nil
thf(fact_166_append__Nil,axiom,
! [Ys2: list_a] :
( ( append_a @ nil_a @ Ys2 )
= Ys2 ) ).
% append_Nil
thf(fact_167_eq__Nil__appendI,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( Xs = Ys2 )
=> ( Xs
= ( append_list_a @ nil_list_a @ Ys2 ) ) ) ).
% eq_Nil_appendI
thf(fact_168_eq__Nil__appendI,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( Xs = Ys2 )
=> ( Xs
= ( append_a @ nil_a @ Ys2 ) ) ) ).
% eq_Nil_appendI
thf(fact_169_ord_Olexordp__eq__pref,axiom,
! [Less: list_a > list_a > $o,U: list_list_a,V: list_list_a] : ( lexordp_eq_list_a @ Less @ U @ ( append_list_a @ U @ V ) ) ).
% ord.lexordp_eq_pref
thf(fact_170_ord_Olexordp__eq__pref,axiom,
! [Less: a > a > $o,U: list_a,V: list_a] : ( lexordp_eq_a @ Less @ U @ ( append_a @ U @ V ) ) ).
% ord.lexordp_eq_pref
thf(fact_171_splice_Osimps_I2_J,axiom,
! [X3: list_a,Xs: list_list_a,Ys2: list_list_a] :
( ( splice_list_a @ ( cons_list_a @ X3 @ Xs ) @ Ys2 )
= ( cons_list_a @ X3 @ ( splice_list_a @ Ys2 @ Xs ) ) ) ).
% splice.simps(2)
thf(fact_172_splice_Osimps_I2_J,axiom,
! [X3: a,Xs: list_a,Ys2: list_a] :
( ( splice_a @ ( cons_a @ X3 @ Xs ) @ Ys2 )
= ( cons_a @ X3 @ ( splice_a @ Ys2 @ Xs ) ) ) ).
% splice.simps(2)
thf(fact_173_splice_Osimps_I1_J,axiom,
! [Ys2: list_list_a] :
( ( splice_list_a @ nil_list_a @ Ys2 )
= Ys2 ) ).
% splice.simps(1)
thf(fact_174_splice_Osimps_I1_J,axiom,
! [Ys2: list_a] :
( ( splice_a @ nil_a @ Ys2 )
= Ys2 ) ).
% splice.simps(1)
thf(fact_175_rev__nonempty__induct,axiom,
! [Xs: list_list_a,P: list_list_a > $o] :
( ( Xs != nil_list_a )
=> ( ! [X: list_a] : ( P @ ( cons_list_a @ X @ nil_list_a ) )
=> ( ! [X: list_a,Xs2: list_list_a] :
( ( Xs2 != nil_list_a )
=> ( ( P @ Xs2 )
=> ( P @ ( append_list_a @ Xs2 @ ( cons_list_a @ X @ nil_list_a ) ) ) ) )
=> ( P @ Xs ) ) ) ) ).
% rev_nonempty_induct
thf(fact_176_rev__nonempty__induct,axiom,
! [Xs: list_a,P: list_a > $o] :
( ( Xs != nil_a )
=> ( ! [X: a] : ( P @ ( cons_a @ X @ nil_a ) )
=> ( ! [X: a,Xs2: list_a] :
( ( Xs2 != nil_a )
=> ( ( P @ Xs2 )
=> ( P @ ( append_a @ Xs2 @ ( cons_a @ X @ nil_a ) ) ) ) )
=> ( P @ Xs ) ) ) ) ).
% rev_nonempty_induct
thf(fact_177_append__eq__Cons__conv,axiom,
! [Ys2: list_list_a,Zs2: list_list_a,X3: list_a,Xs: list_list_a] :
( ( ( append_list_a @ Ys2 @ Zs2 )
= ( cons_list_a @ X3 @ Xs ) )
= ( ( ( Ys2 = nil_list_a )
& ( Zs2
= ( cons_list_a @ X3 @ Xs ) ) )
| ? [Ys4: list_list_a] :
( ( Ys2
= ( cons_list_a @ X3 @ Ys4 ) )
& ( ( append_list_a @ Ys4 @ Zs2 )
= Xs ) ) ) ) ).
% append_eq_Cons_conv
thf(fact_178_append__eq__Cons__conv,axiom,
! [Ys2: list_a,Zs2: list_a,X3: a,Xs: list_a] :
( ( ( append_a @ Ys2 @ Zs2 )
= ( cons_a @ X3 @ Xs ) )
= ( ( ( Ys2 = nil_a )
& ( Zs2
= ( cons_a @ X3 @ Xs ) ) )
| ? [Ys4: list_a] :
( ( Ys2
= ( cons_a @ X3 @ Ys4 ) )
& ( ( append_a @ Ys4 @ Zs2 )
= Xs ) ) ) ) ).
% append_eq_Cons_conv
thf(fact_179_Cons__eq__append__conv,axiom,
! [X3: list_a,Xs: list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
( ( ( cons_list_a @ X3 @ Xs )
= ( append_list_a @ Ys2 @ Zs2 ) )
= ( ( ( Ys2 = nil_list_a )
& ( ( cons_list_a @ X3 @ Xs )
= Zs2 ) )
| ? [Ys4: list_list_a] :
( ( ( cons_list_a @ X3 @ Ys4 )
= Ys2 )
& ( Xs
= ( append_list_a @ Ys4 @ Zs2 ) ) ) ) ) ).
% Cons_eq_append_conv
thf(fact_180_Cons__eq__append__conv,axiom,
! [X3: a,Xs: list_a,Ys2: list_a,Zs2: list_a] :
( ( ( cons_a @ X3 @ Xs )
= ( append_a @ Ys2 @ Zs2 ) )
= ( ( ( Ys2 = nil_a )
& ( ( cons_a @ X3 @ Xs )
= Zs2 ) )
| ? [Ys4: list_a] :
( ( ( cons_a @ X3 @ Ys4 )
= Ys2 )
& ( Xs
= ( append_a @ Ys4 @ Zs2 ) ) ) ) ) ).
% Cons_eq_append_conv
thf(fact_181_rev__exhaust,axiom,
! [Xs: list_list_a] :
( ( Xs != nil_list_a )
=> ~ ! [Ys3: list_list_a,Y3: list_a] :
( Xs
!= ( append_list_a @ Ys3 @ ( cons_list_a @ Y3 @ nil_list_a ) ) ) ) ).
% rev_exhaust
thf(fact_182_rev__exhaust,axiom,
! [Xs: list_a] :
( ( Xs != nil_a )
=> ~ ! [Ys3: list_a,Y3: a] :
( Xs
!= ( append_a @ Ys3 @ ( cons_a @ Y3 @ nil_a ) ) ) ) ).
% rev_exhaust
thf(fact_183_rev__induct,axiom,
! [P: list_list_a > $o,Xs: list_list_a] :
( ( P @ nil_list_a )
=> ( ! [X: list_a,Xs2: list_list_a] :
( ( P @ Xs2 )
=> ( P @ ( append_list_a @ Xs2 @ ( cons_list_a @ X @ nil_list_a ) ) ) )
=> ( P @ Xs ) ) ) ).
% rev_induct
thf(fact_184_rev__induct,axiom,
! [P: list_a > $o,Xs: list_a] :
( ( P @ nil_a )
=> ( ! [X: a,Xs2: list_a] :
( ( P @ Xs2 )
=> ( P @ ( append_a @ Xs2 @ ( cons_a @ X @ nil_a ) ) ) )
=> ( P @ Xs ) ) ) ).
% rev_induct
thf(fact_185_append__eq__Cons,axiom,
! [X3: list_a,Xs: list_list_a] :
( ( append_list_a @ ( cons_list_a @ X3 @ nil_list_a ) @ Xs )
= ( cons_list_a @ X3 @ Xs ) ) ).
% append_eq_Cons
thf(fact_186_append__eq__Cons,axiom,
! [X3: a,Xs: list_a] :
( ( append_a @ ( cons_a @ X3 @ nil_a ) @ Xs )
= ( cons_a @ X3 @ Xs ) ) ).
% append_eq_Cons
thf(fact_187_lexordp__eq_OCons,axiom,
! [X3: nat,Y: nat,Xs: list_nat,Ys2: list_nat] :
( ( ord_less_nat @ X3 @ Y )
=> ( ord_lexordp_eq_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) ) ) ).
% lexordp_eq.Cons
thf(fact_188_lexordp__eq_OCons__eq,axiom,
! [X3: nat,Y: nat,Xs: list_nat,Ys2: list_nat] :
( ~ ( ord_less_nat @ X3 @ Y )
=> ( ~ ( ord_less_nat @ Y @ X3 )
=> ( ( ord_lexordp_eq_nat @ Xs @ Ys2 )
=> ( ord_lexordp_eq_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) ) ) ) ) ).
% lexordp_eq.Cons_eq
thf(fact_189_maps__simps_I1_J,axiom,
! [F: a > list_a,X3: a,Xs: list_a] :
( ( maps_a_a @ F @ ( cons_a @ X3 @ Xs ) )
= ( append_a @ ( F @ X3 ) @ ( maps_a_a @ F @ Xs ) ) ) ).
% maps_simps(1)
thf(fact_190_maps__simps_I1_J,axiom,
! [F: a > list_list_a,X3: a,Xs: list_a] :
( ( maps_a_list_a @ F @ ( cons_a @ X3 @ Xs ) )
= ( append_list_a @ ( F @ X3 ) @ ( maps_a_list_a @ F @ Xs ) ) ) ).
% maps_simps(1)
thf(fact_191_maps__simps_I1_J,axiom,
! [F: list_a > list_a,X3: list_a,Xs: list_list_a] :
( ( maps_list_a_a @ F @ ( cons_list_a @ X3 @ Xs ) )
= ( append_a @ ( F @ X3 ) @ ( maps_list_a_a @ F @ Xs ) ) ) ).
% maps_simps(1)
thf(fact_192_maps__simps_I1_J,axiom,
! [F: list_a > list_list_a,X3: list_a,Xs: list_list_a] :
( ( maps_list_a_list_a @ F @ ( cons_list_a @ X3 @ Xs ) )
= ( append_list_a @ ( F @ X3 ) @ ( maps_list_a_list_a @ F @ Xs ) ) ) ).
% maps_simps(1)
thf(fact_193_concat__eq__append__conv,axiom,
! [Xss2: list_list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
( ( ( concat_list_a @ Xss2 )
= ( append_list_a @ Ys2 @ Zs2 ) )
= ( ( ( Xss2 = nil_list_list_a )
=> ( ( Ys2 = nil_list_a )
& ( Zs2 = nil_list_a ) ) )
& ( ( Xss2 != nil_list_list_a )
=> ? [Xss1: list_list_list_a,Xs3: list_list_a,Xs4: list_list_a,Xss22: list_list_list_a] :
( ( Xss2
= ( append_list_list_a @ Xss1 @ ( cons_list_list_a @ ( append_list_a @ Xs3 @ Xs4 ) @ Xss22 ) ) )
& ( Ys2
= ( append_list_a @ ( concat_list_a @ Xss1 ) @ Xs3 ) )
& ( Zs2
= ( append_list_a @ Xs4 @ ( concat_list_a @ Xss22 ) ) ) ) ) ) ) ).
% concat_eq_append_conv
thf(fact_194_concat__eq__append__conv,axiom,
! [Xss2: list_list_a,Ys2: list_a,Zs2: list_a] :
( ( ( concat_a @ Xss2 )
= ( append_a @ Ys2 @ Zs2 ) )
= ( ( ( Xss2 = nil_list_a )
=> ( ( Ys2 = nil_a )
& ( Zs2 = nil_a ) ) )
& ( ( Xss2 != nil_list_a )
=> ? [Xss1: list_list_a,Xs3: list_a,Xs4: list_a,Xss22: list_list_a] :
( ( Xss2
= ( append_list_a @ Xss1 @ ( cons_list_a @ ( append_a @ Xs3 @ Xs4 ) @ Xss22 ) ) )
& ( Ys2
= ( append_a @ ( concat_a @ Xss1 ) @ Xs3 ) )
& ( Zs2
= ( append_a @ Xs4 @ ( concat_a @ Xss22 ) ) ) ) ) ) ) ).
% concat_eq_append_conv
thf(fact_195_rotate1_Osimps_I2_J,axiom,
! [X3: list_a,Xs: list_list_a] :
( ( rotate1_list_a @ ( cons_list_a @ X3 @ Xs ) )
= ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) ) ) ).
% rotate1.simps(2)
thf(fact_196_rotate1_Osimps_I2_J,axiom,
! [X3: a,Xs: list_a] :
( ( rotate1_a @ ( cons_a @ X3 @ Xs ) )
= ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) ) ).
% rotate1.simps(2)
thf(fact_197_butlast__snoc,axiom,
! [Xs: list_list_a,X3: list_a] :
( ( butlast_list_a @ ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) ) )
= Xs ) ).
% butlast_snoc
thf(fact_198_butlast__snoc,axiom,
! [Xs: list_a,X3: a] :
( ( butlast_a @ ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) )
= Xs ) ).
% butlast_snoc
thf(fact_199_last__snoc,axiom,
! [Xs: list_list_a,X3: list_a] :
( ( last_list_a @ ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) ) )
= X3 ) ).
% last_snoc
thf(fact_200_last__snoc,axiom,
! [Xs: list_a,X3: a] :
( ( last_a @ ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) )
= X3 ) ).
% last_snoc
thf(fact_201_SuccI,axiom,
! [Kl: list_list_a,K: list_a,Kl2: set_list_list_a] :
( ( member_list_list_a @ ( append_list_a @ Kl @ ( cons_list_a @ K @ nil_list_a ) ) @ Kl2 )
=> ( member_list_a2 @ K @ ( bNF_Gr1046450207list_a @ Kl2 @ Kl ) ) ) ).
% SuccI
thf(fact_202_SuccI,axiom,
! [Kl: list_a,K: a,Kl2: set_list_a] :
( ( member_list_a2 @ ( append_a @ Kl @ ( cons_a @ K @ nil_a ) ) @ Kl2 )
=> ( member_a2 @ K @ ( bNF_Greatest_Succ_a @ Kl2 @ Kl ) ) ) ).
% SuccI
thf(fact_203_SuccD,axiom,
! [K: list_a,Kl2: set_list_list_a,Kl: list_list_a] :
( ( member_list_a2 @ K @ ( bNF_Gr1046450207list_a @ Kl2 @ Kl ) )
=> ( member_list_list_a @ ( append_list_a @ Kl @ ( cons_list_a @ K @ nil_list_a ) ) @ Kl2 ) ) ).
% SuccD
thf(fact_204_SuccD,axiom,
! [K: a,Kl2: set_list_a,Kl: list_a] :
( ( member_a2 @ K @ ( bNF_Greatest_Succ_a @ Kl2 @ Kl ) )
=> ( member_list_a2 @ ( append_a @ Kl @ ( cons_a @ K @ nil_a ) ) @ Kl2 ) ) ).
% SuccD
thf(fact_205_rotate1__is__Nil__conv,axiom,
! [Xs: list_list_a] :
( ( ( rotate1_list_a @ Xs )
= nil_list_a )
= ( Xs = nil_list_a ) ) ).
% rotate1_is_Nil_conv
thf(fact_206_rotate1__is__Nil__conv,axiom,
! [Xs: list_a] :
( ( ( rotate1_a @ Xs )
= nil_a )
= ( Xs = nil_a ) ) ).
% rotate1_is_Nil_conv
thf(fact_207_last__appendL,axiom,
! [Ys2: list_list_a,Xs: list_list_a] :
( ( Ys2 = nil_list_a )
=> ( ( last_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( last_list_a @ Xs ) ) ) ).
% last_appendL
thf(fact_208_last__appendL,axiom,
! [Ys2: list_a,Xs: list_a] :
( ( Ys2 = nil_a )
=> ( ( last_a @ ( append_a @ Xs @ Ys2 ) )
= ( last_a @ Xs ) ) ) ).
% last_appendL
thf(fact_209_last__appendR,axiom,
! [Ys2: list_list_a,Xs: list_list_a] :
( ( Ys2 != nil_list_a )
=> ( ( last_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( last_list_a @ Ys2 ) ) ) ).
% last_appendR
thf(fact_210_last__appendR,axiom,
! [Ys2: list_a,Xs: list_a] :
( ( Ys2 != nil_a )
=> ( ( last_a @ ( append_a @ Xs @ Ys2 ) )
= ( last_a @ Ys2 ) ) ) ).
% last_appendR
thf(fact_211_concat__append,axiom,
! [Xs: list_list_list_a,Ys2: list_list_list_a] :
( ( concat_list_a @ ( append_list_list_a @ Xs @ Ys2 ) )
= ( append_list_a @ ( concat_list_a @ Xs ) @ ( concat_list_a @ Ys2 ) ) ) ).
% concat_append
thf(fact_212_concat__append,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( concat_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( append_a @ ( concat_a @ Xs ) @ ( concat_a @ Ys2 ) ) ) ).
% concat_append
thf(fact_213_append__butlast__last__id,axiom,
! [Xs: list_list_a] :
( ( Xs != nil_list_a )
=> ( ( append_list_a @ ( butlast_list_a @ Xs ) @ ( cons_list_a @ ( last_list_a @ Xs ) @ nil_list_a ) )
= Xs ) ) ).
% append_butlast_last_id
thf(fact_214_append__butlast__last__id,axiom,
! [Xs: list_a] :
( ( Xs != nil_a )
=> ( ( append_a @ ( butlast_a @ Xs ) @ ( cons_a @ ( last_a @ Xs ) @ nil_a ) )
= Xs ) ) ).
% append_butlast_last_id
thf(fact_215_butlast_Osimps_I1_J,axiom,
( ( butlast_list_a @ nil_list_a )
= nil_list_a ) ).
% butlast.simps(1)
thf(fact_216_butlast_Osimps_I1_J,axiom,
( ( butlast_a @ nil_a )
= nil_a ) ).
% butlast.simps(1)
thf(fact_217_snoc__eq__iff__butlast,axiom,
! [Xs: list_list_a,X3: list_a,Ys2: list_list_a] :
( ( ( append_list_a @ Xs @ ( cons_list_a @ X3 @ nil_list_a ) )
= Ys2 )
= ( ( Ys2 != nil_list_a )
& ( ( butlast_list_a @ Ys2 )
= Xs )
& ( ( last_list_a @ Ys2 )
= X3 ) ) ) ).
% snoc_eq_iff_butlast
thf(fact_218_snoc__eq__iff__butlast,axiom,
! [Xs: list_a,X3: a,Ys2: list_a] :
( ( ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) )
= Ys2 )
= ( ( Ys2 != nil_a )
& ( ( butlast_a @ Ys2 )
= Xs )
& ( ( last_a @ Ys2 )
= X3 ) ) ) ).
% snoc_eq_iff_butlast
thf(fact_219_rotate1_Osimps_I1_J,axiom,
( ( rotate1_list_a @ nil_list_a )
= nil_list_a ) ).
% rotate1.simps(1)
thf(fact_220_rotate1_Osimps_I1_J,axiom,
( ( rotate1_a @ nil_a )
= nil_a ) ).
% rotate1.simps(1)
thf(fact_221_last_Osimps,axiom,
! [Xs: list_list_a,X3: list_a] :
( ( ( Xs = nil_list_a )
=> ( ( last_list_a @ ( cons_list_a @ X3 @ Xs ) )
= X3 ) )
& ( ( Xs != nil_list_a )
=> ( ( last_list_a @ ( cons_list_a @ X3 @ Xs ) )
= ( last_list_a @ Xs ) ) ) ) ).
% last.simps
thf(fact_222_last_Osimps,axiom,
! [Xs: list_a,X3: a] :
( ( ( Xs = nil_a )
=> ( ( last_a @ ( cons_a @ X3 @ Xs ) )
= X3 ) )
& ( ( Xs != nil_a )
=> ( ( last_a @ ( cons_a @ X3 @ Xs ) )
= ( last_a @ Xs ) ) ) ) ).
% last.simps
thf(fact_223_last__ConsL,axiom,
! [Xs: list_list_a,X3: list_a] :
( ( Xs = nil_list_a )
=> ( ( last_list_a @ ( cons_list_a @ X3 @ Xs ) )
= X3 ) ) ).
% last_ConsL
thf(fact_224_last__ConsL,axiom,
! [Xs: list_a,X3: a] :
( ( Xs = nil_a )
=> ( ( last_a @ ( cons_a @ X3 @ Xs ) )
= X3 ) ) ).
% last_ConsL
thf(fact_225_last__ConsR,axiom,
! [Xs: list_list_a,X3: list_a] :
( ( Xs != nil_list_a )
=> ( ( last_list_a @ ( cons_list_a @ X3 @ Xs ) )
= ( last_list_a @ Xs ) ) ) ).
% last_ConsR
thf(fact_226_last__ConsR,axiom,
! [Xs: list_a,X3: a] :
( ( Xs != nil_a )
=> ( ( last_a @ ( cons_a @ X3 @ Xs ) )
= ( last_a @ Xs ) ) ) ).
% last_ConsR
thf(fact_227_last__append,axiom,
! [Ys2: list_list_a,Xs: list_list_a] :
( ( ( Ys2 = nil_list_a )
=> ( ( last_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( last_list_a @ Xs ) ) )
& ( ( Ys2 != nil_list_a )
=> ( ( last_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( last_list_a @ Ys2 ) ) ) ) ).
% last_append
thf(fact_228_last__append,axiom,
! [Ys2: list_a,Xs: list_a] :
( ( ( Ys2 = nil_a )
=> ( ( last_a @ ( append_a @ Xs @ Ys2 ) )
= ( last_a @ Xs ) ) )
& ( ( Ys2 != nil_a )
=> ( ( last_a @ ( append_a @ Xs @ Ys2 ) )
= ( last_a @ Ys2 ) ) ) ) ).
% last_append
thf(fact_229_longest__common__suffix,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
? [Ss: list_list_a,Xs5: list_list_a,Ys5: list_list_a] :
( ( Xs
= ( append_list_a @ Xs5 @ Ss ) )
& ( Ys2
= ( append_list_a @ Ys5 @ Ss ) )
& ( ( Xs5 = nil_list_a )
| ( Ys5 = nil_list_a )
| ( ( last_list_a @ Xs5 )
!= ( last_list_a @ Ys5 ) ) ) ) ).
% longest_common_suffix
thf(fact_230_longest__common__suffix,axiom,
! [Xs: list_a,Ys2: list_a] :
? [Ss: list_a,Xs5: list_a,Ys5: list_a] :
( ( Xs
= ( append_a @ Xs5 @ Ss ) )
& ( Ys2
= ( append_a @ Ys5 @ Ss ) )
& ( ( Xs5 = nil_a )
| ( Ys5 = nil_a )
| ( ( last_a @ Xs5 )
!= ( last_a @ Ys5 ) ) ) ) ).
% longest_common_suffix
thf(fact_231_butlast_Osimps_I2_J,axiom,
! [Xs: list_list_a,X3: list_a] :
( ( ( Xs = nil_list_a )
=> ( ( butlast_list_a @ ( cons_list_a @ X3 @ Xs ) )
= nil_list_a ) )
& ( ( Xs != nil_list_a )
=> ( ( butlast_list_a @ ( cons_list_a @ X3 @ Xs ) )
= ( cons_list_a @ X3 @ ( butlast_list_a @ Xs ) ) ) ) ) ).
% butlast.simps(2)
thf(fact_232_butlast_Osimps_I2_J,axiom,
! [Xs: list_a,X3: a] :
( ( ( Xs = nil_a )
=> ( ( butlast_a @ ( cons_a @ X3 @ Xs ) )
= nil_a ) )
& ( ( Xs != nil_a )
=> ( ( butlast_a @ ( cons_a @ X3 @ Xs ) )
= ( cons_a @ X3 @ ( butlast_a @ Xs ) ) ) ) ) ).
% butlast.simps(2)
thf(fact_233_concat_Osimps_I1_J,axiom,
( ( concat_list_a @ nil_list_list_a )
= nil_list_a ) ).
% concat.simps(1)
thf(fact_234_concat_Osimps_I1_J,axiom,
( ( concat_a @ nil_list_a )
= nil_a ) ).
% concat.simps(1)
thf(fact_235_concat_Osimps_I2_J,axiom,
! [X3: list_list_a,Xs: list_list_list_a] :
( ( concat_list_a @ ( cons_list_list_a @ X3 @ Xs ) )
= ( append_list_a @ X3 @ ( concat_list_a @ Xs ) ) ) ).
% concat.simps(2)
thf(fact_236_concat_Osimps_I2_J,axiom,
! [X3: list_a,Xs: list_list_a] :
( ( concat_a @ ( cons_list_a @ X3 @ Xs ) )
= ( append_a @ X3 @ ( concat_a @ Xs ) ) ) ).
% concat.simps(2)
thf(fact_237_butlast__append,axiom,
! [Ys2: list_list_a,Xs: list_list_a] :
( ( ( Ys2 = nil_list_a )
=> ( ( butlast_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( butlast_list_a @ Xs ) ) )
& ( ( Ys2 != nil_list_a )
=> ( ( butlast_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( append_list_a @ Xs @ ( butlast_list_a @ Ys2 ) ) ) ) ) ).
% butlast_append
thf(fact_238_butlast__append,axiom,
! [Ys2: list_a,Xs: list_a] :
( ( ( Ys2 = nil_a )
=> ( ( butlast_a @ ( append_a @ Xs @ Ys2 ) )
= ( butlast_a @ Xs ) ) )
& ( ( Ys2 != nil_a )
=> ( ( butlast_a @ ( append_a @ Xs @ Ys2 ) )
= ( append_a @ Xs @ ( butlast_a @ Ys2 ) ) ) ) ) ).
% butlast_append
thf(fact_239_maps__simps_I2_J,axiom,
! [F: a > list_list_a] :
( ( maps_a_list_a @ F @ nil_a )
= nil_list_a ) ).
% maps_simps(2)
thf(fact_240_maps__simps_I2_J,axiom,
! [F: list_a > list_a] :
( ( maps_list_a_a @ F @ nil_list_a )
= nil_a ) ).
% maps_simps(2)
thf(fact_241_maps__simps_I2_J,axiom,
! [F: list_a > list_list_a] :
( ( maps_list_a_list_a @ F @ nil_list_a )
= nil_list_a ) ).
% maps_simps(2)
thf(fact_242_maps__simps_I2_J,axiom,
! [F: a > list_a] :
( ( maps_a_a @ F @ nil_a )
= nil_a ) ).
% maps_simps(2)
thf(fact_243_concat__eq__appendD,axiom,
! [Xss2: list_list_list_a,Ys2: list_list_a,Zs2: list_list_a] :
( ( ( concat_list_a @ Xss2 )
= ( append_list_a @ Ys2 @ Zs2 ) )
=> ( ( Xss2 != nil_list_list_a )
=> ? [Xss12: list_list_list_a,Xs2: list_list_a,Xs5: list_list_a,Xss23: list_list_list_a] :
( ( Xss2
= ( append_list_list_a @ Xss12 @ ( cons_list_list_a @ ( append_list_a @ Xs2 @ Xs5 ) @ Xss23 ) ) )
& ( Ys2
= ( append_list_a @ ( concat_list_a @ Xss12 ) @ Xs2 ) )
& ( Zs2
= ( append_list_a @ Xs5 @ ( concat_list_a @ Xss23 ) ) ) ) ) ) ).
% concat_eq_appendD
thf(fact_244_concat__eq__appendD,axiom,
! [Xss2: list_list_a,Ys2: list_a,Zs2: list_a] :
( ( ( concat_a @ Xss2 )
= ( append_a @ Ys2 @ Zs2 ) )
=> ( ( Xss2 != nil_list_a )
=> ? [Xss12: list_list_a,Xs2: list_a,Xs5: list_a,Xss23: list_list_a] :
( ( Xss2
= ( append_list_a @ Xss12 @ ( cons_list_a @ ( append_a @ Xs2 @ Xs5 ) @ Xss23 ) ) )
& ( Ys2
= ( append_a @ ( concat_a @ Xss12 ) @ Xs2 ) )
& ( Zs2
= ( append_a @ Xs5 @ ( concat_a @ Xss23 ) ) ) ) ) ) ).
% concat_eq_appendD
thf(fact_245_empty__Shift,axiom,
! [Kl2: set_list_list_a,K: list_a] :
( ( member_list_list_a @ nil_list_a @ Kl2 )
=> ( ( member_list_a2 @ K @ ( bNF_Gr1046450207list_a @ Kl2 @ nil_list_a ) )
=> ( member_list_list_a @ nil_list_a @ ( bNF_Gr1972240547list_a @ Kl2 @ K ) ) ) ) ).
% empty_Shift
thf(fact_246_empty__Shift,axiom,
! [Kl2: set_list_a,K: a] :
( ( member_list_a2 @ nil_a @ Kl2 )
=> ( ( member_a2 @ K @ ( bNF_Greatest_Succ_a @ Kl2 @ nil_a ) )
=> ( member_list_a2 @ nil_a @ ( bNF_Greatest_Shift_a @ Kl2 @ K ) ) ) ) ).
% empty_Shift
thf(fact_247_Succ__Shift,axiom,
! [Kl2: set_list_list_a,K: list_a,Kl: list_list_a] :
( ( bNF_Gr1046450207list_a @ ( bNF_Gr1972240547list_a @ Kl2 @ K ) @ Kl )
= ( bNF_Gr1046450207list_a @ Kl2 @ ( cons_list_a @ K @ Kl ) ) ) ).
% Succ_Shift
thf(fact_248_Succ__Shift,axiom,
! [Kl2: set_list_a,K: a,Kl: list_a] :
( ( bNF_Greatest_Succ_a @ ( bNF_Greatest_Shift_a @ Kl2 @ K ) @ Kl )
= ( bNF_Greatest_Succ_a @ Kl2 @ ( cons_a @ K @ Kl ) ) ) ).
% Succ_Shift
thf(fact_249_concat__conv__foldr,axiom,
( concat_list_a
= ( ^ [Xss3: list_list_list_a] : ( foldr_769741863list_a @ append_list_a @ Xss3 @ nil_list_a ) ) ) ).
% concat_conv_foldr
thf(fact_250_concat__conv__foldr,axiom,
( concat_a
= ( ^ [Xss3: list_list_a] : ( foldr_list_a_list_a @ append_a @ Xss3 @ nil_a ) ) ) ).
% concat_conv_foldr
thf(fact_251_foldr__append,axiom,
! [F: list_a > list_a > list_a,Xs: list_list_a,Ys2: list_list_a,A3: list_a] :
( ( foldr_list_a_list_a @ F @ ( append_list_a @ Xs @ Ys2 ) @ A3 )
= ( foldr_list_a_list_a @ F @ Xs @ ( foldr_list_a_list_a @ F @ Ys2 @ A3 ) ) ) ).
% foldr_append
thf(fact_252_ShiftD,axiom,
! [Kl: list_list_a,Kl2: set_list_list_a,K: list_a] :
( ( member_list_list_a @ Kl @ ( bNF_Gr1972240547list_a @ Kl2 @ K ) )
=> ( member_list_list_a @ ( cons_list_a @ K @ Kl ) @ Kl2 ) ) ).
% ShiftD
thf(fact_253_ShiftD,axiom,
! [Kl: list_a,Kl2: set_list_a,K: a] :
( ( member_list_a2 @ Kl @ ( bNF_Greatest_Shift_a @ Kl2 @ K ) )
=> ( member_list_a2 @ ( cons_a @ K @ Kl ) @ Kl2 ) ) ).
% ShiftD
thf(fact_254_list__strict__asc__def,axiom,
( list_strict_asc_nat
= ( list_ord_nat @ ord_less_nat ) ) ).
% list_strict_asc_def
thf(fact_255_lexordp__iff,axiom,
( ord_lexordp_nat
= ( ^ [Xs3: list_nat,Ys: list_nat] :
( ? [X4: nat,Vs: list_nat] :
( Ys
= ( append_nat @ Xs3 @ ( cons_nat @ X4 @ Vs ) ) )
| ? [Us: list_nat,A5: nat,B2: nat,Vs: list_nat,Ws: list_nat] :
( ( ord_less_nat @ A5 @ B2 )
& ( Xs3
= ( append_nat @ Us @ ( cons_nat @ A5 @ Vs ) ) )
& ( Ys
= ( append_nat @ Us @ ( cons_nat @ B2 @ Ws ) ) ) ) ) ) ) ).
% lexordp_iff
thf(fact_256_lexordp__append__left__rightI,axiom,
! [X3: nat,Y: nat,Us2: list_nat,Xs: list_nat,Ys2: list_nat] :
( ( ord_less_nat @ X3 @ Y )
=> ( ord_lexordp_nat @ ( append_nat @ Us2 @ ( cons_nat @ X3 @ Xs ) ) @ ( append_nat @ Us2 @ ( cons_nat @ Y @ Ys2 ) ) ) ) ).
% lexordp_append_left_rightI
thf(fact_257_lexordp__simps_I3_J,axiom,
! [X3: nat,Xs: list_nat,Y: nat,Ys2: list_nat] :
( ( ord_lexordp_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) )
= ( ( ord_less_nat @ X3 @ Y )
| ( ~ ( ord_less_nat @ Y @ X3 )
& ( ord_lexordp_nat @ Xs @ Ys2 ) ) ) ) ).
% lexordp_simps(3)
thf(fact_258_hd__append2,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( Xs != nil_list_a )
=> ( ( hd_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( hd_list_a @ Xs ) ) ) ).
% hd_append2
thf(fact_259_hd__append2,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( Xs != nil_a )
=> ( ( hd_a @ ( append_a @ Xs @ Ys2 ) )
= ( hd_a @ Xs ) ) ) ).
% hd_append2
thf(fact_260_lexordp__irreflexive,axiom,
! [Xs: list_nat] :
( ! [X: nat] :
~ ( ord_less_nat @ X @ X )
=> ~ ( ord_lexordp_nat @ Xs @ Xs ) ) ).
% lexordp_irreflexive
thf(fact_261_list_Osel_I1_J,axiom,
! [X21: list_a,X22: list_list_a] :
( ( hd_list_a @ ( cons_list_a @ X21 @ X22 ) )
= X21 ) ).
% list.sel(1)
thf(fact_262_list_Osel_I1_J,axiom,
! [X21: a,X22: list_a] :
( ( hd_a @ ( cons_a @ X21 @ X22 ) )
= X21 ) ).
% list.sel(1)
thf(fact_263_hd__concat,axiom,
! [Xs: list_list_list_a] :
( ( Xs != nil_list_list_a )
=> ( ( ( hd_list_list_a @ Xs )
!= nil_list_a )
=> ( ( hd_list_a @ ( concat_list_a @ Xs ) )
= ( hd_list_a @ ( hd_list_list_a @ Xs ) ) ) ) ) ).
% hd_concat
thf(fact_264_hd__concat,axiom,
! [Xs: list_list_a] :
( ( Xs != nil_list_a )
=> ( ( ( hd_list_a @ Xs )
!= nil_a )
=> ( ( hd_a @ ( concat_a @ Xs ) )
= ( hd_a @ ( hd_list_a @ Xs ) ) ) ) ) ).
% hd_concat
thf(fact_265_hd__append,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( ( Xs = nil_list_a )
=> ( ( hd_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( hd_list_a @ Ys2 ) ) )
& ( ( Xs != nil_list_a )
=> ( ( hd_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( hd_list_a @ Xs ) ) ) ) ).
% hd_append
thf(fact_266_hd__append,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( ( Xs = nil_a )
=> ( ( hd_a @ ( append_a @ Xs @ Ys2 ) )
= ( hd_a @ Ys2 ) ) )
& ( ( Xs != nil_a )
=> ( ( hd_a @ ( append_a @ Xs @ Ys2 ) )
= ( hd_a @ Xs ) ) ) ) ).
% hd_append
thf(fact_267_longest__common__prefix,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
? [Ps: list_list_a,Xs5: list_list_a,Ys5: list_list_a] :
( ( Xs
= ( append_list_a @ Ps @ Xs5 ) )
& ( Ys2
= ( append_list_a @ Ps @ Ys5 ) )
& ( ( Xs5 = nil_list_a )
| ( Ys5 = nil_list_a )
| ( ( hd_list_a @ Xs5 )
!= ( hd_list_a @ Ys5 ) ) ) ) ).
% longest_common_prefix
thf(fact_268_longest__common__prefix,axiom,
! [Xs: list_a,Ys2: list_a] :
? [Ps: list_a,Xs5: list_a,Ys5: list_a] :
( ( Xs
= ( append_a @ Ps @ Xs5 ) )
& ( Ys2
= ( append_a @ Ps @ Ys5 ) )
& ( ( Xs5 = nil_a )
| ( Ys5 = nil_a )
| ( ( hd_a @ Xs5 )
!= ( hd_a @ Ys5 ) ) ) ) ).
% longest_common_prefix
thf(fact_269_lexordp_OCons,axiom,
! [X3: nat,Y: nat,Xs: list_nat,Ys2: list_nat] :
( ( ord_less_nat @ X3 @ Y )
=> ( ord_lexordp_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) ) ) ).
% lexordp.Cons
thf(fact_270_lexordp_OCons__eq,axiom,
! [X3: nat,Y: nat,Xs: list_nat,Ys2: list_nat] :
( ~ ( ord_less_nat @ X3 @ Y )
=> ( ~ ( ord_less_nat @ Y @ X3 )
=> ( ( ord_lexordp_nat @ Xs @ Ys2 )
=> ( ord_lexordp_nat @ ( cons_nat @ X3 @ Xs ) @ ( cons_nat @ Y @ Ys2 ) ) ) ) ) ).
% lexordp.Cons_eq
thf(fact_271_lexordp__append__leftD,axiom,
! [Xs: list_nat,Us2: list_nat,Vs2: list_nat] :
( ( ord_lexordp_nat @ ( append_nat @ Xs @ Us2 ) @ ( append_nat @ Xs @ Vs2 ) )
=> ( ! [A: nat] :
~ ( ord_less_nat @ A @ A )
=> ( ord_lexordp_nat @ Us2 @ Vs2 ) ) ) ).
% lexordp_append_leftD
thf(fact_272_lexordp_Ocases,axiom,
! [A1: list_nat,A2: list_nat] :
( ( ord_lexordp_nat @ A1 @ A2 )
=> ( ( ( A1 = nil_nat )
=> ! [Y3: nat,Ys3: list_nat] :
( A2
!= ( cons_nat @ Y3 @ Ys3 ) ) )
=> ( ! [X: nat] :
( ? [Xs2: list_nat] :
( A1
= ( cons_nat @ X @ Xs2 ) )
=> ! [Y3: nat] :
( ? [Ys3: list_nat] :
( A2
= ( cons_nat @ Y3 @ Ys3 ) )
=> ~ ( ord_less_nat @ X @ Y3 ) ) )
=> ~ ! [X: nat,Y3: nat,Xs2: list_nat] :
( ( A1
= ( cons_nat @ X @ Xs2 ) )
=> ! [Ys3: list_nat] :
( ( A2
= ( cons_nat @ Y3 @ Ys3 ) )
=> ( ~ ( ord_less_nat @ X @ Y3 )
=> ( ~ ( ord_less_nat @ Y3 @ X )
=> ~ ( ord_lexordp_nat @ Xs2 @ Ys3 ) ) ) ) ) ) ) ) ).
% lexordp.cases
thf(fact_273_lexordp_Osimps,axiom,
( ord_lexordp_nat
= ( ^ [A12: list_nat,A22: list_nat] :
( ? [Y2: nat,Ys: list_nat] :
( ( A12 = nil_nat )
& ( A22
= ( cons_nat @ Y2 @ Ys ) ) )
| ? [X4: nat,Y2: nat,Xs3: list_nat,Ys: list_nat] :
( ( A12
= ( cons_nat @ X4 @ Xs3 ) )
& ( A22
= ( cons_nat @ Y2 @ Ys ) )
& ( ord_less_nat @ X4 @ Y2 ) )
| ? [X4: nat,Y2: nat,Xs3: list_nat,Ys: list_nat] :
( ( A12
= ( cons_nat @ X4 @ Xs3 ) )
& ( A22
= ( cons_nat @ Y2 @ Ys ) )
& ~ ( ord_less_nat @ X4 @ Y2 )
& ~ ( ord_less_nat @ Y2 @ X4 )
& ( ord_lexordp_nat @ Xs3 @ Ys ) ) ) ) ) ).
% lexordp.simps
thf(fact_274_lexordp_Oinducts,axiom,
! [X12: list_nat,X23: list_nat,P: list_nat > list_nat > $o] :
( ( ord_lexordp_nat @ X12 @ X23 )
=> ( ! [Y3: nat,Ys3: list_nat] : ( P @ nil_nat @ ( cons_nat @ Y3 @ Ys3 ) )
=> ( ! [X: nat,Y3: nat,Xs2: list_nat,Ys3: list_nat] :
( ( ord_less_nat @ X @ Y3 )
=> ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) )
=> ( ! [X: nat,Y3: nat,Xs2: list_nat,Ys3: list_nat] :
( ~ ( ord_less_nat @ X @ Y3 )
=> ( ~ ( ord_less_nat @ Y3 @ X )
=> ( ( ord_lexordp_nat @ Xs2 @ Ys3 )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) ) ) ) )
=> ( P @ X12 @ X23 ) ) ) ) ) ).
% lexordp.inducts
thf(fact_275_lexordp__cases,axiom,
! [Xs: list_nat,Ys2: list_nat] :
( ( ord_lexordp_nat @ Xs @ Ys2 )
=> ( ( ( Xs = nil_nat )
=> ! [Y3: nat,Ys5: list_nat] :
( Ys2
!= ( cons_nat @ Y3 @ Ys5 ) ) )
=> ( ! [X: nat] :
( ? [Xs5: list_nat] :
( Xs
= ( cons_nat @ X @ Xs5 ) )
=> ! [Y3: nat] :
( ? [Ys5: list_nat] :
( Ys2
= ( cons_nat @ Y3 @ Ys5 ) )
=> ~ ( ord_less_nat @ X @ Y3 ) ) )
=> ~ ! [X: nat,Xs5: list_nat] :
( ( Xs
= ( cons_nat @ X @ Xs5 ) )
=> ! [Ys5: list_nat] :
( ( Ys2
= ( cons_nat @ X @ Ys5 ) )
=> ~ ( ord_lexordp_nat @ Xs5 @ Ys5 ) ) ) ) ) ) ).
% lexordp_cases
thf(fact_276_lexordp__induct,axiom,
! [Xs: list_nat,Ys2: list_nat,P: list_nat > list_nat > $o] :
( ( ord_lexordp_nat @ Xs @ Ys2 )
=> ( ! [Y3: nat,Ys3: list_nat] : ( P @ nil_nat @ ( cons_nat @ Y3 @ Ys3 ) )
=> ( ! [X: nat,Xs2: list_nat,Y3: nat,Ys3: list_nat] :
( ( ord_less_nat @ X @ Y3 )
=> ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ Y3 @ Ys3 ) ) )
=> ( ! [X: nat,Xs2: list_nat,Ys3: list_nat] :
( ( ord_lexordp_nat @ Xs2 @ Ys3 )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_nat @ X @ Xs2 ) @ ( cons_nat @ X @ Ys3 ) ) ) )
=> ( P @ Xs @ Ys2 ) ) ) ) ) ).
% lexordp_induct
thf(fact_277_distinct__adj__append__iff,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( distinct_adj_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( ( distinct_adj_list_a @ Xs )
& ( distinct_adj_list_a @ Ys2 )
& ( ( Xs = nil_list_a )
| ( Ys2 = nil_list_a )
| ( ( last_list_a @ Xs )
!= ( hd_list_a @ Ys2 ) ) ) ) ) ).
% distinct_adj_append_iff
thf(fact_278_distinct__adj__append__iff,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( distinct_adj_a @ ( append_a @ Xs @ Ys2 ) )
= ( ( distinct_adj_a @ Xs )
& ( distinct_adj_a @ Ys2 )
& ( ( Xs = nil_a )
| ( Ys2 = nil_a )
| ( ( last_a @ Xs )
!= ( hd_a @ Ys2 ) ) ) ) ) ).
% distinct_adj_append_iff
thf(fact_279_rotate1__hd__tl,axiom,
! [Xs: list_list_a] :
( ( Xs != nil_list_a )
=> ( ( rotate1_list_a @ Xs )
= ( append_list_a @ ( tl_list_a @ Xs ) @ ( cons_list_a @ ( hd_list_a @ Xs ) @ nil_list_a ) ) ) ) ).
% rotate1_hd_tl
thf(fact_280_rotate1__hd__tl,axiom,
! [Xs: list_a] :
( ( Xs != nil_a )
=> ( ( rotate1_a @ Xs )
= ( append_a @ ( tl_a @ Xs ) @ ( cons_a @ ( hd_a @ Xs ) @ nil_a ) ) ) ) ).
% rotate1_hd_tl
thf(fact_281_successively__append__iff,axiom,
! [P: list_a > list_a > $o,Xs: list_list_a,Ys2: list_list_a] :
( ( successively_list_a @ P @ ( append_list_a @ Xs @ Ys2 ) )
= ( ( successively_list_a @ P @ Xs )
& ( successively_list_a @ P @ Ys2 )
& ( ( Xs = nil_list_a )
| ( Ys2 = nil_list_a )
| ( P @ ( last_list_a @ Xs ) @ ( hd_list_a @ Ys2 ) ) ) ) ) ).
% successively_append_iff
thf(fact_282_successively__append__iff,axiom,
! [P: a > a > $o,Xs: list_a,Ys2: list_a] :
( ( successively_a @ P @ ( append_a @ Xs @ Ys2 ) )
= ( ( successively_a @ P @ Xs )
& ( successively_a @ P @ Ys2 )
& ( ( Xs = nil_a )
| ( Ys2 = nil_a )
| ( P @ ( last_a @ Xs ) @ ( hd_a @ Ys2 ) ) ) ) ) ).
% successively_append_iff
thf(fact_283_distinct__adj__Cons__Cons,axiom,
! [X3: list_a,Y: list_a,Xs: list_list_a] :
( ( distinct_adj_list_a @ ( cons_list_a @ X3 @ ( cons_list_a @ Y @ Xs ) ) )
= ( ( X3 != Y )
& ( distinct_adj_list_a @ ( cons_list_a @ Y @ Xs ) ) ) ) ).
% distinct_adj_Cons_Cons
thf(fact_284_distinct__adj__Cons__Cons,axiom,
! [X3: a,Y: a,Xs: list_a] :
( ( distinct_adj_a @ ( cons_a @ X3 @ ( cons_a @ Y @ Xs ) ) )
= ( ( X3 != Y )
& ( distinct_adj_a @ ( cons_a @ Y @ Xs ) ) ) ) ).
% distinct_adj_Cons_Cons
thf(fact_285_tl__append2,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( Xs != nil_list_a )
=> ( ( tl_list_a @ ( append_list_a @ Xs @ Ys2 ) )
= ( append_list_a @ ( tl_list_a @ Xs ) @ Ys2 ) ) ) ).
% tl_append2
thf(fact_286_tl__append2,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( Xs != nil_a )
=> ( ( tl_a @ ( append_a @ Xs @ Ys2 ) )
= ( append_a @ ( tl_a @ Xs ) @ Ys2 ) ) ) ).
% tl_append2
thf(fact_287_hd__Cons__tl,axiom,
! [Xs: list_list_a] :
( ( Xs != nil_list_a )
=> ( ( cons_list_a @ ( hd_list_a @ Xs ) @ ( tl_list_a @ Xs ) )
= Xs ) ) ).
% hd_Cons_tl
thf(fact_288_hd__Cons__tl,axiom,
! [Xs: list_a] :
( ( Xs != nil_a )
=> ( ( cons_a @ ( hd_a @ Xs ) @ ( tl_a @ Xs ) )
= Xs ) ) ).
% hd_Cons_tl
thf(fact_289_list_Ocollapse,axiom,
! [List: list_list_a] :
( ( List != nil_list_a )
=> ( ( cons_list_a @ ( hd_list_a @ List ) @ ( tl_list_a @ List ) )
= List ) ) ).
% list.collapse
thf(fact_290_list_Ocollapse,axiom,
! [List: list_a] :
( ( List != nil_a )
=> ( ( cons_a @ ( hd_a @ List ) @ ( tl_a @ List ) )
= List ) ) ).
% list.collapse
thf(fact_291_list_Osel_I3_J,axiom,
! [X21: list_a,X22: list_list_a] :
( ( tl_list_a @ ( cons_list_a @ X21 @ X22 ) )
= X22 ) ).
% list.sel(3)
thf(fact_292_list_Osel_I3_J,axiom,
! [X21: a,X22: list_a] :
( ( tl_a @ ( cons_a @ X21 @ X22 ) )
= X22 ) ).
% list.sel(3)
thf(fact_293_list_Osel_I2_J,axiom,
( ( tl_list_a @ nil_list_a )
= nil_list_a ) ).
% list.sel(2)
thf(fact_294_list_Osel_I2_J,axiom,
( ( tl_a @ nil_a )
= nil_a ) ).
% list.sel(2)
thf(fact_295_successively_Oelims_I3_J,axiom,
! [X3: list_a > list_a > $o,Xa: list_list_a] :
( ~ ( successively_list_a @ X3 @ Xa )
=> ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
( ( Xa
= ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) )
=> ( ( X3 @ X @ Y3 )
& ( successively_list_a @ X3 @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) ) ).
% successively.elims(3)
thf(fact_296_successively_Oelims_I3_J,axiom,
! [X3: a > a > $o,Xa: list_a] :
( ~ ( successively_a @ X3 @ Xa )
=> ~ ! [X: a,Y3: a,Xs2: list_a] :
( ( Xa
= ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) )
=> ( ( X3 @ X @ Y3 )
& ( successively_a @ X3 @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ).
% successively.elims(3)
thf(fact_297_successively_Osimps_I3_J,axiom,
! [P: list_a > list_a > $o,X3: list_a,Y: list_a,Xs: list_list_a] :
( ( successively_list_a @ P @ ( cons_list_a @ X3 @ ( cons_list_a @ Y @ Xs ) ) )
= ( ( P @ X3 @ Y )
& ( successively_list_a @ P @ ( cons_list_a @ Y @ Xs ) ) ) ) ).
% successively.simps(3)
thf(fact_298_successively_Osimps_I3_J,axiom,
! [P: a > a > $o,X3: a,Y: a,Xs: list_a] :
( ( successively_a @ P @ ( cons_a @ X3 @ ( cons_a @ Y @ Xs ) ) )
= ( ( P @ X3 @ Y )
& ( successively_a @ P @ ( cons_a @ Y @ Xs ) ) ) ) ).
% successively.simps(3)
thf(fact_299_successively_Osimps_I1_J,axiom,
! [P: list_a > list_a > $o] : ( successively_list_a @ P @ nil_list_a ) ).
% successively.simps(1)
thf(fact_300_successively_Osimps_I1_J,axiom,
! [P: a > a > $o] : ( successively_a @ P @ nil_a ) ).
% successively.simps(1)
thf(fact_301_distinct__adj__appendD1,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( distinct_adj_list_a @ ( append_list_a @ Xs @ Ys2 ) )
=> ( distinct_adj_list_a @ Xs ) ) ).
% distinct_adj_appendD1
thf(fact_302_distinct__adj__appendD1,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( distinct_adj_a @ ( append_a @ Xs @ Ys2 ) )
=> ( distinct_adj_a @ Xs ) ) ).
% distinct_adj_appendD1
thf(fact_303_distinct__adj__appendD2,axiom,
! [Xs: list_list_a,Ys2: list_list_a] :
( ( distinct_adj_list_a @ ( append_list_a @ Xs @ Ys2 ) )
=> ( distinct_adj_list_a @ Ys2 ) ) ).
% distinct_adj_appendD2
thf(fact_304_distinct__adj__appendD2,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( distinct_adj_a @ ( append_a @ Xs @ Ys2 ) )
=> ( distinct_adj_a @ Ys2 ) ) ).
% distinct_adj_appendD2
thf(fact_305_distinct__adj__Nil,axiom,
distinct_adj_list_a @ nil_list_a ).
% distinct_adj_Nil
thf(fact_306_distinct__adj__Nil,axiom,
distinct_adj_a @ nil_a ).
% distinct_adj_Nil
thf(fact_307_distinct__adj__ConsD,axiom,
! [X3: list_a,Xs: list_list_a] :
( ( distinct_adj_list_a @ ( cons_list_a @ X3 @ Xs ) )
=> ( distinct_adj_list_a @ Xs ) ) ).
% distinct_adj_ConsD
thf(fact_308_distinct__adj__ConsD,axiom,
! [X3: a,Xs: list_a] :
( ( distinct_adj_a @ ( cons_a @ X3 @ Xs ) )
=> ( distinct_adj_a @ Xs ) ) ).
% distinct_adj_ConsD
thf(fact_309_butlast__tl,axiom,
! [Xs: list_a] :
( ( butlast_a @ ( tl_a @ Xs ) )
= ( tl_a @ ( butlast_a @ Xs ) ) ) ).
% butlast_tl
thf(fact_310_tl__Nil,axiom,
! [Xs: list_list_a] :
( ( ( tl_list_a @ Xs )
= nil_list_a )
= ( ( Xs = nil_list_a )
| ? [X4: list_a] :
( Xs
= ( cons_list_a @ X4 @ nil_list_a ) ) ) ) ).
% tl_Nil
thf(fact_311_tl__Nil,axiom,
! [Xs: list_a] :
( ( ( tl_a @ Xs )
= nil_a )
= ( ( Xs = nil_a )
| ? [X4: a] :
( Xs
= ( cons_a @ X4 @ nil_a ) ) ) ) ).
% tl_Nil
thf(fact_312_Nil__tl,axiom,
! [Xs: list_list_a] :
( ( nil_list_a
= ( tl_list_a @ Xs ) )
= ( ( Xs = nil_list_a )
| ? [X4: list_a] :
( Xs
= ( cons_list_a @ X4 @ nil_list_a ) ) ) ) ).
% Nil_tl
thf(fact_313_Nil__tl,axiom,
! [Xs: list_a] :
( ( nil_a
= ( tl_a @ Xs ) )
= ( ( Xs = nil_a )
| ? [X4: a] :
( Xs
= ( cons_a @ X4 @ nil_a ) ) ) ) ).
% Nil_tl
thf(fact_314_list_Oexpand,axiom,
! [List: list_list_a,List2: list_list_a] :
( ( ( List = nil_list_a )
= ( List2 = nil_list_a ) )
=> ( ( ( List != nil_list_a )
=> ( ( List2 != nil_list_a )
=> ( ( ( hd_list_a @ List )
= ( hd_list_a @ List2 ) )
& ( ( tl_list_a @ List )
= ( tl_list_a @ List2 ) ) ) ) )
=> ( List = List2 ) ) ) ).
% list.expand
thf(fact_315_list_Oexpand,axiom,
! [List: list_a,List2: list_a] :
( ( ( List = nil_a )
= ( List2 = nil_a ) )
=> ( ( ( List != nil_a )
=> ( ( List2 != nil_a )
=> ( ( ( hd_a @ List )
= ( hd_a @ List2 ) )
& ( ( tl_a @ List )
= ( tl_a @ List2 ) ) ) ) )
=> ( List = List2 ) ) ) ).
% list.expand
thf(fact_316_last__tl,axiom,
! [Xs: list_list_a] :
( ( ( Xs = nil_list_a )
| ( ( tl_list_a @ Xs )
!= nil_list_a ) )
=> ( ( last_list_a @ ( tl_list_a @ Xs ) )
= ( last_list_a @ Xs ) ) ) ).
% last_tl
thf(fact_317_last__tl,axiom,
! [Xs: list_a] :
( ( ( Xs = nil_a )
| ( ( tl_a @ Xs )
!= nil_a ) )
=> ( ( last_a @ ( tl_a @ Xs ) )
= ( last_a @ Xs ) ) ) ).
% last_tl
thf(fact_318_successively_Osimps_I2_J,axiom,
! [P: list_a > list_a > $o,X3: list_a] : ( successively_list_a @ P @ ( cons_list_a @ X3 @ nil_list_a ) ) ).
% successively.simps(2)
thf(fact_319_successively_Osimps_I2_J,axiom,
! [P: a > a > $o,X3: a] : ( successively_a @ P @ ( cons_a @ X3 @ nil_a ) ) ).
% successively.simps(2)
thf(fact_320_successively_Oelims_I1_J,axiom,
! [X3: list_a > list_a > $o,Xa: list_list_a,Y: $o] :
( ( ( successively_list_a @ X3 @ Xa )
= Y )
=> ( ( ( Xa = nil_list_a )
=> ~ Y )
=> ( ( ? [X: list_a] :
( Xa
= ( cons_list_a @ X @ nil_list_a ) )
=> ~ Y )
=> ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
( ( Xa
= ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) )
=> ( Y
= ( ~ ( ( X3 @ X @ Y3 )
& ( successively_list_a @ X3 @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ) ) ).
% successively.elims(1)
thf(fact_321_successively_Oelims_I1_J,axiom,
! [X3: a > a > $o,Xa: list_a,Y: $o] :
( ( ( successively_a @ X3 @ Xa )
= Y )
=> ( ( ( Xa = nil_a )
=> ~ Y )
=> ( ( ? [X: a] :
( Xa
= ( cons_a @ X @ nil_a ) )
=> ~ Y )
=> ~ ! [X: a,Y3: a,Xs2: list_a] :
( ( Xa
= ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) )
=> ( Y
= ( ~ ( ( X3 @ X @ Y3 )
& ( successively_a @ X3 @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ) ) ).
% successively.elims(1)
thf(fact_322_successively_Oelims_I2_J,axiom,
! [X3: list_a > list_a > $o,Xa: list_list_a] :
( ( successively_list_a @ X3 @ Xa )
=> ( ( Xa != nil_list_a )
=> ( ! [X: list_a] :
( Xa
!= ( cons_list_a @ X @ nil_list_a ) )
=> ~ ! [X: list_a,Y3: list_a,Xs2: list_list_a] :
( ( Xa
= ( cons_list_a @ X @ ( cons_list_a @ Y3 @ Xs2 ) ) )
=> ~ ( ( X3 @ X @ Y3 )
& ( successively_list_a @ X3 @ ( cons_list_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ).
% successively.elims(2)
thf(fact_323_successively_Oelims_I2_J,axiom,
! [X3: a > a > $o,Xa: list_a] :
( ( successively_a @ X3 @ Xa )
=> ( ( Xa != nil_a )
=> ( ! [X: a] :
( Xa
!= ( cons_a @ X @ nil_a ) )
=> ~ ! [X: a,Y3: a,Xs2: list_a] :
( ( Xa
= ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) )
=> ~ ( ( X3 @ X @ Y3 )
& ( successively_a @ X3 @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ).
% successively.elims(2)
thf(fact_324_distinct__adj__singleton,axiom,
! [X3: list_a] : ( distinct_adj_list_a @ ( cons_list_a @ X3 @ nil_list_a ) ) ).
% distinct_adj_singleton
thf(fact_325_distinct__adj__singleton,axiom,
! [X3: a] : ( distinct_adj_a @ ( cons_a @ X3 @ nil_a ) ) ).
% distinct_adj_singleton
thf(fact_326_list_Oexhaust__sel,axiom,
! [List: list_a] :
( ( List != nil_a )
=> ( List
= ( cons_a @ ( hd_a @ List ) @ ( tl_a @ List ) ) ) ) ).
% list.exhaust_sel
thf(fact_327_successively__Cons,axiom,
! [P: a > a > $o,X3: a,Xs: list_a] :
( ( successively_a @ P @ ( cons_a @ X3 @ Xs ) )
= ( ( Xs = nil_a )
| ( ( P @ X3 @ ( hd_a @ Xs ) )
& ( successively_a @ P @ Xs ) ) ) ) ).
% successively_Cons
thf(fact_328_distinct__adj__Cons,axiom,
! [X3: a,Xs: list_a] :
( ( distinct_adj_a @ ( cons_a @ X3 @ Xs ) )
= ( ( Xs = nil_a )
| ( ( X3
!= ( hd_a @ Xs ) )
& ( distinct_adj_a @ Xs ) ) ) ) ).
% distinct_adj_Cons
thf(fact_329_Cons__in__shuffles__iff,axiom,
! [Z: a,Zs2: list_a,Xs: list_a,Ys2: list_a] :
( ( member_list_a2 @ ( cons_a @ Z @ Zs2 ) @ ( shuffles_a @ Xs @ Ys2 ) )
= ( ( ( Xs != nil_a )
& ( ( hd_a @ Xs )
= Z )
& ( member_list_a2 @ Zs2 @ ( shuffles_a @ ( tl_a @ Xs ) @ Ys2 ) ) )
| ( ( Ys2 != nil_a )
& ( ( hd_a @ Ys2 )
= Z )
& ( member_list_a2 @ Zs2 @ ( shuffles_a @ Xs @ ( tl_a @ Ys2 ) ) ) ) ) ) ).
% Cons_in_shuffles_iff
thf(fact_330_map2__Cons__not__empty,axiom,
! [Xs: list_a,F: a > a > a,Y: a,Ys2: list_a] :
( ( Xs != nil_a )
=> ( ( map2_a_a_a @ F @ Xs @ ( cons_a @ Y @ Ys2 ) )
= ( cons_a @ ( F @ ( hd_a @ Xs ) @ Y ) @ ( map2_a_a_a @ F @ ( tl_a @ Xs ) @ Ys2 ) ) ) ) ).
% map2_Cons_not_empty
thf(fact_331_Nil__in__shuffles,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( member_list_a2 @ nil_a @ ( shuffles_a @ Xs @ Ys2 ) )
= ( ( Xs = nil_a )
& ( Ys2 = nil_a ) ) ) ).
% Nil_in_shuffles
thf(fact_332_shufflesE,axiom,
! [Zs2: list_a,Xs: list_a,Ys2: list_a] :
( ( member_list_a2 @ Zs2 @ ( shuffles_a @ Xs @ Ys2 ) )
=> ( ( ( Zs2 = Xs )
=> ( Ys2 != nil_a ) )
=> ( ( ( Zs2 = Ys2 )
=> ( Xs != nil_a ) )
=> ( ! [X: a,Xs5: list_a] :
( ( Xs
= ( cons_a @ X @ Xs5 ) )
=> ! [Z2: a,Zs3: list_a] :
( ( Zs2
= ( cons_a @ Z2 @ Zs3 ) )
=> ( ( X = Z2 )
=> ~ ( member_list_a2 @ Zs3 @ ( shuffles_a @ Xs5 @ Ys2 ) ) ) ) )
=> ~ ! [Y3: a,Ys5: list_a] :
( ( Ys2
= ( cons_a @ Y3 @ Ys5 ) )
=> ! [Z2: a,Zs3: list_a] :
( ( Zs2
= ( cons_a @ Z2 @ Zs3 ) )
=> ( ( Y3 = Z2 )
=> ~ ( member_list_a2 @ Zs3 @ ( shuffles_a @ Xs @ Ys5 ) ) ) ) ) ) ) ) ) ).
% shufflesE
thf(fact_333_map2__Cons__Cons,axiom,
! [F: a > a > a,X3: a,Xs: list_a,Y: a,Ys2: list_a] :
( ( map2_a_a_a @ F @ ( cons_a @ X3 @ Xs ) @ ( cons_a @ Y @ Ys2 ) )
= ( cons_a @ ( F @ X3 @ Y ) @ ( map2_a_a_a @ F @ Xs @ Ys2 ) ) ) ).
% map2_Cons_Cons
thf(fact_334_Cons__in__shuffles__leftI,axiom,
! [Zs2: list_a,Xs: list_a,Ys2: list_a,Z: a] :
( ( member_list_a2 @ Zs2 @ ( shuffles_a @ Xs @ Ys2 ) )
=> ( member_list_a2 @ ( cons_a @ Z @ Zs2 ) @ ( shuffles_a @ ( cons_a @ Z @ Xs ) @ Ys2 ) ) ) ).
% Cons_in_shuffles_leftI
thf(fact_335_Cons__in__shuffles__rightI,axiom,
! [Zs2: list_a,Xs: list_a,Ys2: list_a,Z: a] :
( ( member_list_a2 @ Zs2 @ ( shuffles_a @ Xs @ Ys2 ) )
=> ( member_list_a2 @ ( cons_a @ Z @ Zs2 ) @ ( shuffles_a @ Xs @ ( cons_a @ Z @ Ys2 ) ) ) ) ).
% Cons_in_shuffles_rightI
thf(fact_336_Nil__in__shufflesI,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( Xs = nil_a )
=> ( ( Ys2 = nil_a )
=> ( member_list_a2 @ nil_a @ ( shuffles_a @ Xs @ Ys2 ) ) ) ) ).
% Nil_in_shufflesI
thf(fact_337_map2__Cons__if,axiom,
! [Xs: list_a,F: a > a > a,Y: a,Ys2: list_a] :
( ( ( Xs = nil_a )
=> ( ( map2_a_a_a @ F @ Xs @ ( cons_a @ Y @ Ys2 ) )
= nil_a ) )
& ( ( Xs != nil_a )
=> ( ( map2_a_a_a @ F @ Xs @ ( cons_a @ Y @ Ys2 ) )
= ( cons_a @ ( F @ ( hd_a @ Xs ) @ Y ) @ ( map2_a_a_a @ F @ ( tl_a @ Xs ) @ Ys2 ) ) ) ) ) ).
% map2_Cons_if
thf(fact_338_remdups__adj__append_H,axiom,
! [Xs: list_a,Ys2: list_a] :
( ( ( Xs = nil_a )
| ( Ys2 = nil_a )
| ( ( last_a @ Xs )
!= ( hd_a @ Ys2 ) ) )
=> ( ( remdups_adj_a @ ( append_a @ Xs @ Ys2 ) )
= ( append_a @ ( remdups_adj_a @ Xs ) @ ( remdups_adj_a @ Ys2 ) ) ) ) ).
% remdups_adj_append'
thf(fact_339_remdups__adj__append,axiom,
! [Xs_1: list_a,X3: a,Xs_2: list_a] :
( ( remdups_adj_a @ ( append_a @ Xs_1 @ ( cons_a @ X3 @ Xs_2 ) ) )
= ( append_a @ ( remdups_adj_a @ ( append_a @ Xs_1 @ ( cons_a @ X3 @ nil_a ) ) ) @ ( tl_a @ ( remdups_adj_a @ ( cons_a @ X3 @ Xs_2 ) ) ) ) ) ).
% remdups_adj_append
thf(fact_340_remdups__adj__Nil__iff,axiom,
! [Xs: list_a] :
( ( ( remdups_adj_a @ Xs )
= nil_a )
= ( Xs = nil_a ) ) ).
% remdups_adj_Nil_iff
thf(fact_341_remdups__adj__Cons__alt,axiom,
! [X3: a,Xs: list_a] :
( ( cons_a @ X3 @ ( tl_a @ ( remdups_adj_a @ ( cons_a @ X3 @ Xs ) ) ) )
= ( remdups_adj_a @ ( cons_a @ X3 @ Xs ) ) ) ).
% remdups_adj_Cons_alt
thf(fact_342_remdups__adj_Oelims,axiom,
! [X3: list_a,Y: list_a] :
( ( ( remdups_adj_a @ X3 )
= Y )
=> ( ( ( X3 = nil_a )
=> ( Y != nil_a ) )
=> ( ! [X: a] :
( ( X3
= ( cons_a @ X @ nil_a ) )
=> ( Y
!= ( cons_a @ X @ nil_a ) ) )
=> ~ ! [X: a,Y3: a,Xs2: list_a] :
( ( X3
= ( cons_a @ X @ ( cons_a @ Y3 @ Xs2 ) ) )
=> ~ ( ( ( X = Y3 )
=> ( Y
= ( remdups_adj_a @ ( cons_a @ X @ Xs2 ) ) ) )
& ( ( X != Y3 )
=> ( Y
= ( cons_a @ X @ ( remdups_adj_a @ ( cons_a @ Y3 @ Xs2 ) ) ) ) ) ) ) ) ) ) ).
% remdups_adj.elims
thf(fact_343_remdups__adj_Osimps_I2_J,axiom,
! [X3: a] :
( ( remdups_adj_a @ ( cons_a @ X3 @ nil_a ) )
= ( cons_a @ X3 @ nil_a ) ) ).
% remdups_adj.simps(2)
thf(fact_344_remdups__adj_Osimps_I1_J,axiom,
( ( remdups_adj_a @ nil_a )
= nil_a ) ).
% remdups_adj.simps(1)
thf(fact_345_remdups__adj_Osimps_I3_J,axiom,
! [X3: a,Y: a,Xs: list_a] :
( ( ( X3 = Y )
=> ( ( remdups_adj_a @ ( cons_a @ X3 @ ( cons_a @ Y @ Xs ) ) )
= ( remdups_adj_a @ ( cons_a @ X3 @ Xs ) ) ) )
& ( ( X3 != Y )
=> ( ( remdups_adj_a @ ( cons_a @ X3 @ ( cons_a @ Y @ Xs ) ) )
= ( cons_a @ X3 @ ( remdups_adj_a @ ( cons_a @ Y @ Xs ) ) ) ) ) ) ).
% remdups_adj.simps(3)
thf(fact_346_remdups__adj__append__two,axiom,
! [Xs: list_a,X3: a,Y: a] :
( ( remdups_adj_a @ ( append_a @ Xs @ ( cons_a @ X3 @ ( cons_a @ Y @ nil_a ) ) ) )
= ( append_a @ ( remdups_adj_a @ ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) ) @ ( if_list_a @ ( X3 = Y ) @ nil_a @ ( cons_a @ Y @ nil_a ) ) ) ) ).
% remdups_adj_append_two
thf(fact_347_map2__snoc__snoc,axiom,
! [Xs: list_a,Ys2: list_a,F: a > a > a,X3: a,Y: a] :
( ( ( size_size_list_a @ Xs )
= ( size_size_list_a @ Ys2 ) )
=> ( ( map2_a_a_a @ F @ ( append_a @ Xs @ ( cons_a @ X3 @ nil_a ) ) @ ( append_a @ Ys2 @ ( cons_a @ Y @ nil_a ) ) )
= ( append_a @ ( map2_a_a_a @ F @ Xs @ Ys2 ) @ ( cons_a @ ( F @ X3 @ Y ) @ nil_a ) ) ) ) ).
% map2_snoc_snoc
thf(fact_348_length__greater__imp__not__empty,axiom,
! [N: nat,Xs: list_a] :
( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
=> ( Xs != nil_a ) ) ).
% length_greater_imp_not_empty
thf(fact_349_list__induct2,axiom,
! [Xs: list_a,Ys2: list_a,P: list_a > list_a > $o] :
( ( ( size_size_list_a @ Xs )
= ( size_size_list_a @ Ys2 ) )
=> ( ( P @ nil_a @ nil_a )
=> ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a] :
( ( ( size_size_list_a @ Xs2 )
= ( size_size_list_a @ Ys3 ) )
=> ( ( P @ Xs2 @ Ys3 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) ) ) )
=> ( P @ Xs @ Ys2 ) ) ) ) ).
% list_induct2
thf(fact_350_list__induct3,axiom,
! [Xs: list_a,Ys2: list_a,Zs2: list_a,P: list_a > list_a > list_a > $o] :
( ( ( size_size_list_a @ Xs )
= ( size_size_list_a @ Ys2 ) )
=> ( ( ( size_size_list_a @ Ys2 )
= ( size_size_list_a @ Zs2 ) )
=> ( ( P @ nil_a @ nil_a @ nil_a )
=> ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a,Z2: a,Zs: list_a] :
( ( ( size_size_list_a @ Xs2 )
= ( size_size_list_a @ Ys3 ) )
=> ( ( ( size_size_list_a @ Ys3 )
= ( size_size_list_a @ Zs ) )
=> ( ( P @ Xs2 @ Ys3 @ Zs )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) @ ( cons_a @ Z2 @ Zs ) ) ) ) )
=> ( P @ Xs @ Ys2 @ Zs2 ) ) ) ) ) ).
% list_induct3
thf(fact_351_list__induct4,axiom,
! [Xs: list_a,Ys2: list_a,Zs2: list_a,Ws2: list_a,P: list_a > list_a > list_a > list_a > $o] :
( ( ( size_size_list_a @ Xs )
= ( size_size_list_a @ Ys2 ) )
=> ( ( ( size_size_list_a @ Ys2 )
= ( size_size_list_a @ Zs2 ) )
=> ( ( ( size_size_list_a @ Zs2 )
= ( size_size_list_a @ Ws2 ) )
=> ( ( P @ nil_a @ nil_a @ nil_a @ nil_a )
=> ( ! [X: a,Xs2: list_a,Y3: a,Ys3: list_a,Z2: a,Zs: list_a,W: a,Ws3: list_a] :
( ( ( size_size_list_a @ Xs2 )
= ( size_size_list_a @ Ys3 ) )
=> ( ( ( size_size_list_a @ Ys3 )
= ( size_size_list_a @ Zs ) )
=> ( ( ( size_size_list_a @ Zs )
= ( size_size_list_a @ Ws3 ) )
=> ( ( P @ Xs2 @ Ys3 @ Zs @ Ws3 )
=> ( P @ ( cons_a @ X @ Xs2 ) @ ( cons_a @ Y3 @ Ys3 ) @ ( cons_a @ Z2 @ Zs ) @ ( cons_a @ W @ Ws3 ) ) ) ) ) )
=> ( P @ Xs @ Ys2 @ Zs2 @ Ws2 ) ) ) ) ) ) ).
% list_induct4
% Helper facts (3)
thf(help_If_3_1_If_001t__List__Olist_Itf__a_J_T,axiom,
! [P: $o] :
( ( P = $true )
| ( P = $false ) ) ).
thf(help_If_2_1_If_001t__List__Olist_Itf__a_J_T,axiom,
! [X3: list_a,Y: list_a] :
( ( if_list_a @ $false @ X3 @ Y )
= Y ) ).
thf(help_If_1_1_If_001t__List__Olist_Itf__a_J_T,axiom,
! [X3: list_a,Y: list_a] :
( ( if_list_a @ $true @ X3 @ Y )
= X3 ) ).
% Conjectures (1)
thf(conj_0,conjecture,
( ( listIn1312259492pend_a @ ( cons_a @ x @ xs ) @ f )
= ( listIn1312259492pend_a @ ( cons_a @ x @ nil_a ) @ ( listIn1312259492pend_a @ xs @ f ) ) ) ).
%------------------------------------------------------------------------------