TPTP Problem File: DAT163^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : DAT163^1 : TPTP v9.0.0. Released v7.0.0.
% Domain : Data Structures
% Problem : Hamming stream 337
% Version : [Bla16] axioms : Especial.
% English :
% Refs : [Loc10] Lochbihler (2010), Coinductive
% : [RB15] Reynolds & Blanchette (2015), A Decision Procedure for
% : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source : [Bla16]
% Names : hamming_stream__337.p [Bla16]
% Status : Theorem
% Rating : 1.00 v8.1.0, 0.75 v7.5.0, 1.00 v7.1.0
% Syntax : Number of formulae : 344 ( 115 unt; 55 typ; 0 def)
% Number of atoms : 848 ( 243 equ; 0 cnn)
% Maximal formula atoms : 13 ( 2 avg)
% Number of connectives : 3758 ( 85 ~; 29 |; 68 &;3132 @)
% ( 0 <=>; 444 =>; 0 <=; 0 <~>)
% Maximal formula depth : 21 ( 8 avg)
% Number of types : 2 ( 1 usr)
% Number of type conns : 180 ( 180 >; 0 *; 0 +; 0 <<)
% Number of symbols : 57 ( 54 usr; 3 con; 0-4 aty)
% Number of variables : 939 ( 47 ^; 811 !; 31 ?; 939 :)
% ( 50 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_THM_EQU_NAR
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2016-07-13 14:43:47.824
%------------------------------------------------------------------------------
%----Could-be-implicit typings (4)
thf(ty_t_Coinductive__List_Ollist,type,
coinductive_llist: $tType > $tType ).
thf(ty_t_Set_Oset,type,
set: $tType > $tType ).
thf(ty_t_Nat_Onat,type,
nat: $tType ).
thf(ty_t_itself,type,
itself: $tType > $tType ).
%----Explicit typings (51)
thf(sy_cl_HOL_Otype,type,
type:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Ozero,type,
zero:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Oord,type,
ord:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Oorder,type,
order:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Omult__zero,type,
mult_zero:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Omonoid__add,type,
monoid_add:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Olinorder,type,
linorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Opreorder,type,
preorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Oordered__ring,type,
ordered_ring:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Ocomm__semiring__1,type,
comm_semiring_1:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__ring,type,
linordered_ring:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Oordered__semiring,type,
ordered_semiring:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Oab__semigroup__mult,type,
ab_semigroup_mult:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__semidom,type,
linordered_semidom:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Oordered__semiring__0,type,
ordered_semiring_0:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Oordered__comm__semiring,type,
ordere1490568538miring:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__ring__strict,type,
linord581940658strict:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Osemiring__no__zero__divisors,type,
semiri1193490041visors:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__semiring__strict,type,
linord20386208strict:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Complete__Lattices_Ocomplete__lattice,type,
comple187826305attice:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
canoni770627133id_add:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__comm__semiring__strict,type,
linord893533164strict:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Osemiring__no__zero__divisors__cancel,type,
semiri1923998003cancel:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Ofinite__lprefix,type,
coindu328551480prefix:
!>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Oldistinct,type,
coindu351974385stinct:
!>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Ollast,type,
coinductive_llast:
!>[A: $tType] : ( ( coinductive_llist @ A ) > A ) ).
thf(sy_c_Coinductive__List_Ollist_OLCons,type,
coinductive_LCons:
!>[A: $tType] : ( A > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).
thf(sy_c_Coinductive__List_Ollist_OLNil,type,
coinductive_LNil:
!>[A: $tType] : ( coinductive_llist @ A ) ).
thf(sy_c_Coinductive__List_Ollist_Olset,type,
coinductive_lset:
!>[A: $tType] : ( ( coinductive_llist @ A ) > ( set @ A ) ) ).
thf(sy_c_Coinductive__List_Olmember,type,
coinductive_lmember:
!>[A: $tType] : ( A > ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Olstrict__prefix,type,
coindu1478340336prefix:
!>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Coinductive__List_Olsublist,type,
coinductive_lsublist:
!>[A: $tType] : ( ( coinductive_llist @ A ) > ( set @ nat ) > ( coinductive_llist @ A ) ) ).
thf(sy_c_Coinductive__List_Omonoid__add__class_Ollistsum,type,
coindu780009021istsum:
!>[A: $tType] : ( ( coinductive_llist @ A ) > A ) ).
thf(sy_c_Coinductive__List_Oord__class_Olsorted,type,
coindu63249387sorted:
!>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).
thf(sy_c_Complete__Partial__Order2_Othe__Sup,type,
comple474717373he_Sup:
!>[A: $tType] : ( ( set @ A ) > A ) ).
thf(sy_c_Groups_Otimes__class_Otimes,type,
times_times:
!>[A: $tType] : ( A > A > A ) ).
thf(sy_c_Groups_Ozero__class_Ozero,type,
zero_zero:
!>[A: $tType] : A ).
thf(sy_c_HOL_OThe,type,
the:
!>[A: $tType] : ( ( A > $o ) > A ) ).
thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Ohamming,type,
hammin2015774020amming: coinductive_llist @ nat ).
thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Osmooth,type,
hammin1195055315smooth: nat > $o ).
thf(sy_c_Hilbert__Choice_OGreatest,type,
hilbert_Greatest:
!>[A: $tType] : ( ( A > $o ) > A ) ).
thf(sy_c_Hilbert__Choice_OGreatestM,type,
hilbert_GreatestM:
!>[A: $tType,B: $tType] : ( ( A > B ) > ( A > $o ) > A ) ).
thf(sy_c_Hilbert__Choice_OLeastM,type,
hilbert_LeastM:
!>[A: $tType,B: $tType] : ( ( A > B ) > ( A > $o ) > A ) ).
thf(sy_c_If,type,
if:
!>[A: $tType] : ( $o > A > A > A ) ).
thf(sy_c_Nat_OSuc,type,
suc: nat > nat ).
thf(sy_c_Orderings_Oord__class_Oless,type,
ord_less:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Orderings_Oord__class_Oless__eq,type,
ord_less_eq:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Pure_Otype,type,
type2:
!>[A: $tType] : ( itself @ A ) ).
thf(sy_c_Relation_OPowp,type,
powp:
!>[A: $tType] : ( ( A > $o ) > ( set @ A ) > $o ) ).
thf(sy_c_Set_OCollect,type,
collect:
!>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
thf(sy_c_member,type,
member:
!>[A: $tType] : ( A > ( set @ A ) > $o ) ).
%----Relevant facts (254)
thf(fact_0_hamming__smooth,axiom,
( ( coinductive_lset @ nat @ hammin2015774020amming )
= ( collect @ nat @ hammin1195055315smooth ) ) ).
% hamming_smooth
thf(fact_1_smooth__hamming,axiom,
! [N: nat] :
( ( hammin1195055315smooth @ N )
=> ( member @ nat @ N @ ( coinductive_lset @ nat @ hammin2015774020amming ) ) ) ).
% smooth_hamming
thf(fact_2_lsorted__hamming,axiom,
coindu63249387sorted @ nat @ hammin2015774020amming ).
% lsorted_hamming
thf(fact_3_ldistinct__hamming,axiom,
coindu351974385stinct @ nat @ hammin2015774020amming ).
% ldistinct_hamming
thf(fact_4_the__equality,axiom,
! [A: $tType,P: A > $o,A2: A] :
( ( P @ A2 )
=> ( ! [X: A] :
( ( P @ X )
=> ( X = A2 ) )
=> ( ( the @ A @ P )
= A2 ) ) ) ).
% the_equality
thf(fact_5_the__eq__trivial,axiom,
! [A: $tType,A2: A] :
( ( the @ A
@ ^ [X2: A] : ( X2 = A2 ) )
= A2 ) ).
% the_eq_trivial
thf(fact_6_the__sym__eq__trivial,axiom,
! [A: $tType,X3: A] :
( ( the @ A
@ ( ^ [Y: A,Z: A] : ( Y = Z )
@ X3 ) )
= X3 ) ).
% the_sym_eq_trivial
thf(fact_7_lsorted__ldistinct__lset__unique,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
( ( coindu63249387sorted @ A @ Xs )
=> ( ( coindu351974385stinct @ A @ Xs )
=> ( ( coindu63249387sorted @ A @ Ys )
=> ( ( coindu351974385stinct @ A @ Ys )
=> ( ( ( coinductive_lset @ A @ Xs )
= ( coinductive_lset @ A @ Ys ) )
=> ( Xs = Ys ) ) ) ) ) ) ) ).
% lsorted_ldistinct_lset_unique
thf(fact_8_theI,axiom,
! [A: $tType,P: A > $o,A2: A] :
( ( P @ A2 )
=> ( ! [X: A] :
( ( P @ X )
=> ( X = A2 ) )
=> ( P @ ( the @ A @ P ) ) ) ) ).
% theI
thf(fact_9_theI_H,axiom,
! [A: $tType,P: A > $o] :
( ? [X4: A] :
( ( P @ X4 )
& ! [Y2: A] :
( ( P @ Y2 )
=> ( Y2 = X4 ) ) )
=> ( P @ ( the @ A @ P ) ) ) ).
% theI'
thf(fact_10_theI2,axiom,
! [A: $tType,P: A > $o,A2: A,Q: A > $o] :
( ( P @ A2 )
=> ( ! [X: A] :
( ( P @ X )
=> ( X = A2 ) )
=> ( ! [X: A] :
( ( P @ X )
=> ( Q @ X ) )
=> ( Q @ ( the @ A @ P ) ) ) ) ) ).
% theI2
thf(fact_11_If__def,axiom,
! [A: $tType] :
( ( if @ A )
= ( ^ [P2: $o,X2: A,Y3: A] :
( the @ A
@ ^ [Z2: A] :
( ( P2
=> ( Z2 = X2 ) )
& ( ~ P2
=> ( Z2 = Y3 ) ) ) ) ) ) ).
% If_def
thf(fact_12_the1I2,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ? [X4: A] :
( ( P @ X4 )
& ! [Y2: A] :
( ( P @ Y2 )
=> ( Y2 = X4 ) ) )
=> ( ! [X: A] :
( ( P @ X )
=> ( Q @ X ) )
=> ( Q @ ( the @ A @ P ) ) ) ) ).
% the1I2
thf(fact_13_the1__equality,axiom,
! [A: $tType,P: A > $o,A2: A] :
( ? [X4: A] :
( ( P @ X4 )
& ! [Y2: A] :
( ( P @ Y2 )
=> ( Y2 = X4 ) ) )
=> ( ( P @ A2 )
=> ( ( the @ A @ P )
= A2 ) ) ) ).
% the1_equality
thf(fact_14_hamming__in__smooth,axiom,
ord_less_eq @ ( set @ nat ) @ ( coinductive_lset @ nat @ hammin2015774020amming ) @ ( collect @ nat @ hammin1195055315smooth ) ).
% hamming_in_smooth
thf(fact_15_Nitpick_OThe__psimp,axiom,
! [A: $tType,P: A > $o,X3: A] :
( ( P
= ( ^ [Y: A,Z: A] : ( Y = Z )
@ X3 ) )
=> ( ( the @ A @ P )
= X3 ) ) ).
% Nitpick.The_psimp
thf(fact_16_wlog__linorder__le,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > A > $o,B2: A,A2: A] :
( ! [A3: A,B3: A] :
( ( ord_less_eq @ A @ A3 @ B3 )
=> ( P @ A3 @ B3 ) )
=> ( ( ( P @ B2 @ A2 )
=> ( P @ A2 @ B2 ) )
=> ( P @ A2 @ B2 ) ) ) ) ).
% wlog_linorder_le
thf(fact_17_subsetI,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ! [X: A] :
( ( member @ A @ X @ A4 )
=> ( member @ A @ X @ B4 ) )
=> ( ord_less_eq @ ( set @ A ) @ A4 @ B4 ) ) ).
% subsetI
thf(fact_18_subset__antisym,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( ord_less_eq @ ( set @ A ) @ B4 @ A4 )
=> ( A4 = B4 ) ) ) ).
% subset_antisym
thf(fact_19_order__refl,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X3: A] : ( ord_less_eq @ A @ X3 @ X3 ) ) ).
% order_refl
thf(fact_20_conj__subset__def,axiom,
! [A: $tType,A4: set @ A,P: A > $o,Q: A > $o] :
( ( ord_less_eq @ ( set @ A ) @ A4
@ ( collect @ A
@ ^ [X2: A] :
( ( P @ X2 )
& ( Q @ X2 ) ) ) )
= ( ( ord_less_eq @ ( set @ A ) @ A4 @ ( collect @ A @ P ) )
& ( ord_less_eq @ ( set @ A ) @ A4 @ ( collect @ A @ Q ) ) ) ) ).
% conj_subset_def
thf(fact_21_prop__restrict,axiom,
! [A: $tType,X3: A,Z3: set @ A,X5: set @ A,P: A > $o] :
( ( member @ A @ X3 @ Z3 )
=> ( ( ord_less_eq @ ( set @ A ) @ Z3
@ ( collect @ A
@ ^ [X2: A] :
( ( member @ A @ X2 @ X5 )
& ( P @ X2 ) ) ) )
=> ( P @ X3 ) ) ) ).
% prop_restrict
thf(fact_22_Collect__restrict,axiom,
! [A: $tType,X5: set @ A,P: A > $o] :
( ord_less_eq @ ( set @ A )
@ ( collect @ A
@ ^ [X2: A] :
( ( member @ A @ X2 @ X5 )
& ( P @ X2 ) ) )
@ X5 ) ).
% Collect_restrict
thf(fact_23_subset__CollectI,axiom,
! [A: $tType,B4: set @ A,A4: set @ A,Q: A > $o,P: A > $o] :
( ( ord_less_eq @ ( set @ A ) @ B4 @ A4 )
=> ( ! [X: A] :
( ( member @ A @ X @ B4 )
=> ( ( Q @ X )
=> ( P @ X ) ) )
=> ( ord_less_eq @ ( set @ A )
@ ( collect @ A
@ ^ [X2: A] :
( ( member @ A @ X2 @ B4 )
& ( Q @ X2 ) ) )
@ ( collect @ A
@ ^ [X2: A] :
( ( member @ A @ X2 @ A4 )
& ( P @ X2 ) ) ) ) ) ) ).
% subset_CollectI
thf(fact_24_subset__Collect__iff,axiom,
! [A: $tType,B4: set @ A,A4: set @ A,P: A > $o] :
( ( ord_less_eq @ ( set @ A ) @ B4 @ A4 )
=> ( ( ord_less_eq @ ( set @ A ) @ B4
@ ( collect @ A
@ ^ [X2: A] :
( ( member @ A @ X2 @ A4 )
& ( P @ X2 ) ) ) )
= ( ! [X2: A] :
( ( member @ A @ X2 @ B4 )
=> ( P @ X2 ) ) ) ) ) ).
% subset_Collect_iff
thf(fact_25_theI__unique,axiom,
! [A: $tType,P: A > $o,X3: A] :
( ? [X4: A] :
( ( P @ X4 )
& ! [Y2: A] :
( ( P @ Y2 )
=> ( Y2 = X4 ) ) )
=> ( ( P @ X3 )
= ( X3
= ( the @ A @ P ) ) ) ) ).
% theI_unique
thf(fact_26_lset__lmember,axiom,
! [A: $tType,X3: A,Xs: coinductive_llist @ A] :
( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
= ( coinductive_lmember @ A @ X3 @ Xs ) ) ).
% lset_lmember
thf(fact_27_less__eq__set__def,axiom,
! [A: $tType] :
( ( ord_less_eq @ ( set @ A ) )
= ( ^ [A5: set @ A,B5: set @ A] :
( ord_less_eq @ ( A > $o )
@ ^ [X2: A] : ( member @ A @ X2 @ A5 )
@ ^ [X2: A] : ( member @ A @ X2 @ B5 ) ) ) ) ).
% less_eq_set_def
thf(fact_28_dual__order_Oantisym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( ord_less_eq @ A @ B2 @ A2 )
=> ( ( ord_less_eq @ A @ A2 @ B2 )
=> ( A2 = B2 ) ) ) ) ).
% dual_order.antisym
thf(fact_29_dual__order_Otrans,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( ord_less_eq @ A @ B2 @ A2 )
=> ( ( ord_less_eq @ A @ C @ B2 )
=> ( ord_less_eq @ A @ C @ A2 ) ) ) ) ).
% dual_order.trans
thf(fact_30_linorder__wlog,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > A > $o,A2: A,B2: A] :
( ! [A3: A,B3: A] :
( ( ord_less_eq @ A @ A3 @ B3 )
=> ( P @ A3 @ B3 ) )
=> ( ! [A3: A,B3: A] :
( ( P @ B3 @ A3 )
=> ( P @ A3 @ B3 ) )
=> ( P @ A2 @ B2 ) ) ) ) ).
% linorder_wlog
thf(fact_31_dual__order_Orefl,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A] : ( ord_less_eq @ A @ A2 @ A2 ) ) ).
% dual_order.refl
thf(fact_32_order__trans,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A,Z4: A] :
( ( ord_less_eq @ A @ X3 @ Y4 )
=> ( ( ord_less_eq @ A @ Y4 @ Z4 )
=> ( ord_less_eq @ A @ X3 @ Z4 ) ) ) ) ).
% order_trans
thf(fact_33_order__class_Oorder_Oantisym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ B2 @ A2 )
=> ( A2 = B2 ) ) ) ) ).
% order_class.order.antisym
thf(fact_34_ord__le__eq__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( B2 = C )
=> ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).
% ord_le_eq_trans
thf(fact_35_ord__eq__le__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( A2 = B2 )
=> ( ( ord_less_eq @ A @ B2 @ C )
=> ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).
% ord_eq_le_trans
thf(fact_36_antisym__conv,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [Y4: A,X3: A] :
( ( ord_less_eq @ A @ Y4 @ X3 )
=> ( ( ord_less_eq @ A @ X3 @ Y4 )
= ( X3 = Y4 ) ) ) ) ).
% antisym_conv
thf(fact_37_le__cases3,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A,Z4: A] :
( ( ( ord_less_eq @ A @ X3 @ Y4 )
=> ~ ( ord_less_eq @ A @ Y4 @ Z4 ) )
=> ( ( ( ord_less_eq @ A @ Y4 @ X3 )
=> ~ ( ord_less_eq @ A @ X3 @ Z4 ) )
=> ( ( ( ord_less_eq @ A @ X3 @ Z4 )
=> ~ ( ord_less_eq @ A @ Z4 @ Y4 ) )
=> ( ( ( ord_less_eq @ A @ Z4 @ Y4 )
=> ~ ( ord_less_eq @ A @ Y4 @ X3 ) )
=> ( ( ( ord_less_eq @ A @ Y4 @ Z4 )
=> ~ ( ord_less_eq @ A @ Z4 @ X3 ) )
=> ~ ( ( ord_less_eq @ A @ Z4 @ X3 )
=> ~ ( ord_less_eq @ A @ X3 @ Y4 ) ) ) ) ) ) ) ) ).
% le_cases3
thf(fact_38_order_Otrans,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ B2 @ C )
=> ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).
% order.trans
thf(fact_39_le__cases,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A] :
( ~ ( ord_less_eq @ A @ X3 @ Y4 )
=> ( ord_less_eq @ A @ Y4 @ X3 ) ) ) ).
% le_cases
thf(fact_40_eq__refl,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A] :
( ( X3 = Y4 )
=> ( ord_less_eq @ A @ X3 @ Y4 ) ) ) ).
% eq_refl
thf(fact_41_linear,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A] :
( ( ord_less_eq @ A @ X3 @ Y4 )
| ( ord_less_eq @ A @ Y4 @ X3 ) ) ) ).
% linear
thf(fact_42_antisym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A] :
( ( ord_less_eq @ A @ X3 @ Y4 )
=> ( ( ord_less_eq @ A @ Y4 @ X3 )
=> ( X3 = Y4 ) ) ) ) ).
% antisym
thf(fact_43_eq__iff,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ( ( ^ [Y: A,Z: A] : ( Y = Z ) )
= ( ^ [X2: A,Y3: A] :
( ( ord_less_eq @ A @ X2 @ Y3 )
& ( ord_less_eq @ A @ Y3 @ X2 ) ) ) ) ) ).
% eq_iff
thf(fact_44_ord__le__eq__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > B,C: B] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ( F @ B2 )
= C )
=> ( ! [X: A,Y2: A] :
( ( ord_less_eq @ A @ X @ Y2 )
=> ( ord_less_eq @ B @ ( F @ X ) @ ( F @ Y2 ) ) )
=> ( ord_less_eq @ B @ ( F @ A2 ) @ C ) ) ) ) ) ).
% ord_le_eq_subst
thf(fact_45_mem__Collect__eq,axiom,
! [A: $tType,A2: A,P: A > $o] :
( ( member @ A @ A2 @ ( collect @ A @ P ) )
= ( P @ A2 ) ) ).
% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
! [A: $tType,A4: set @ A] :
( ( collect @ A
@ ^ [X2: A] : ( member @ A @ X2 @ A4 ) )
= A4 ) ).
% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ! [X: A] :
( ( P @ X )
= ( Q @ X ) )
=> ( ( collect @ A @ P )
= ( collect @ A @ Q ) ) ) ).
% Collect_cong
thf(fact_48_ext,axiom,
! [B: $tType,A: $tType,F: A > B,G: A > B] :
( ! [X: A] :
( ( F @ X )
= ( G @ X ) )
=> ( F = G ) ) ).
% ext
thf(fact_49_ord__eq__le__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C: B] :
( ( A2
= ( F @ B2 ) )
=> ( ( ord_less_eq @ B @ B2 @ C )
=> ( ! [X: B,Y2: B] :
( ( ord_less_eq @ B @ X @ Y2 )
=> ( ord_less_eq @ A @ ( F @ X ) @ ( F @ Y2 ) ) )
=> ( ord_less_eq @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).
% ord_eq_le_subst
thf(fact_50_order__subst2,axiom,
! [A: $tType,C2: $tType] :
( ( ( order @ C2 @ ( type2 @ C2 ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > C2,C: C2] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ C2 @ ( F @ B2 ) @ C )
=> ( ! [X: A,Y2: A] :
( ( ord_less_eq @ A @ X @ Y2 )
=> ( ord_less_eq @ C2 @ ( F @ X ) @ ( F @ Y2 ) ) )
=> ( ord_less_eq @ C2 @ ( F @ A2 ) @ C ) ) ) ) ) ).
% order_subst2
thf(fact_51_order__subst1,axiom,
! [A: $tType,B: $tType] :
( ( ( order @ B @ ( type2 @ B ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C: B] :
( ( ord_less_eq @ A @ A2 @ ( F @ B2 ) )
=> ( ( ord_less_eq @ B @ B2 @ C )
=> ( ! [X: B,Y2: B] :
( ( ord_less_eq @ B @ X @ Y2 )
=> ( ord_less_eq @ A @ ( F @ X ) @ ( F @ Y2 ) ) )
=> ( ord_less_eq @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).
% order_subst1
thf(fact_52_le__fun__def,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ( ( ord_less_eq @ ( A > B ) )
= ( ^ [F2: A > B,G2: A > B] :
! [X2: A] : ( ord_less_eq @ B @ ( F2 @ X2 ) @ ( G2 @ X2 ) ) ) ) ) ).
% le_fun_def
thf(fact_53_le__funI,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [F: A > B,G: A > B] :
( ! [X: A] : ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) )
=> ( ord_less_eq @ ( A > B ) @ F @ G ) ) ) ).
% le_funI
thf(fact_54_le__funE,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [F: A > B,G: A > B,X3: A] :
( ( ord_less_eq @ ( A > B ) @ F @ G )
=> ( ord_less_eq @ B @ ( F @ X3 ) @ ( G @ X3 ) ) ) ) ).
% le_funE
thf(fact_55_le__funD,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [F: A > B,G: A > B,X3: A] :
( ( ord_less_eq @ ( A > B ) @ F @ G )
=> ( ord_less_eq @ B @ ( F @ X3 ) @ ( G @ X3 ) ) ) ) ).
% le_funD
thf(fact_56_Collect__mono__iff,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ( ord_less_eq @ ( set @ A ) @ ( collect @ A @ P ) @ ( collect @ A @ Q ) )
= ( ! [X2: A] :
( ( P @ X2 )
=> ( Q @ X2 ) ) ) ) ).
% Collect_mono_iff
thf(fact_57_contra__subsetD,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,C: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ~ ( member @ A @ C @ B4 )
=> ~ ( member @ A @ C @ A4 ) ) ) ).
% contra_subsetD
thf(fact_58_set__eq__subset,axiom,
! [A: $tType] :
( ( ^ [Y: set @ A,Z: set @ A] : ( Y = Z ) )
= ( ^ [A5: set @ A,B5: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A5 @ B5 )
& ( ord_less_eq @ ( set @ A ) @ B5 @ A5 ) ) ) ) ).
% set_eq_subset
thf(fact_59_subset__trans,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,C3: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( ord_less_eq @ ( set @ A ) @ B4 @ C3 )
=> ( ord_less_eq @ ( set @ A ) @ A4 @ C3 ) ) ) ).
% subset_trans
thf(fact_60_Collect__mono,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ! [X: A] :
( ( P @ X )
=> ( Q @ X ) )
=> ( ord_less_eq @ ( set @ A ) @ ( collect @ A @ P ) @ ( collect @ A @ Q ) ) ) ).
% Collect_mono
thf(fact_61_subset__refl,axiom,
! [A: $tType,A4: set @ A] : ( ord_less_eq @ ( set @ A ) @ A4 @ A4 ) ).
% subset_refl
thf(fact_62_rev__subsetD,axiom,
! [A: $tType,C: A,A4: set @ A,B4: set @ A] :
( ( member @ A @ C @ A4 )
=> ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( member @ A @ C @ B4 ) ) ) ).
% rev_subsetD
thf(fact_63_subset__iff,axiom,
! [A: $tType] :
( ( ord_less_eq @ ( set @ A ) )
= ( ^ [A5: set @ A,B5: set @ A] :
! [T: A] :
( ( member @ A @ T @ A5 )
=> ( member @ A @ T @ B5 ) ) ) ) ).
% subset_iff
thf(fact_64_set__rev__mp,axiom,
! [A: $tType,X3: A,A4: set @ A,B4: set @ A] :
( ( member @ A @ X3 @ A4 )
=> ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( member @ A @ X3 @ B4 ) ) ) ).
% set_rev_mp
thf(fact_65_equalityD2,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( A4 = B4 )
=> ( ord_less_eq @ ( set @ A ) @ B4 @ A4 ) ) ).
% equalityD2
thf(fact_66_equalityD1,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( A4 = B4 )
=> ( ord_less_eq @ ( set @ A ) @ A4 @ B4 ) ) ).
% equalityD1
thf(fact_67_subset__eq,axiom,
! [A: $tType] :
( ( ord_less_eq @ ( set @ A ) )
= ( ^ [A5: set @ A,B5: set @ A] :
! [X2: A] :
( ( member @ A @ X2 @ A5 )
=> ( member @ A @ X2 @ B5 ) ) ) ) ).
% subset_eq
thf(fact_68_equalityE,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( A4 = B4 )
=> ~ ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ~ ( ord_less_eq @ ( set @ A ) @ B4 @ A4 ) ) ) ).
% equalityE
thf(fact_69_subsetCE,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,C: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( member @ A @ C @ A4 )
=> ( member @ A @ C @ B4 ) ) ) ).
% subsetCE
thf(fact_70_subsetD,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,C: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( member @ A @ C @ A4 )
=> ( member @ A @ C @ B4 ) ) ) ).
% subsetD
thf(fact_71_in__mono,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,X3: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( member @ A @ X3 @ A4 )
=> ( member @ A @ X3 @ B4 ) ) ) ).
% in_mono
thf(fact_72_set__mp,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,X3: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( member @ A @ X3 @ A4 )
=> ( member @ A @ X3 @ B4 ) ) ) ).
% set_mp
thf(fact_73_pred__subset__eq,axiom,
! [A: $tType,R: set @ A,S: set @ A] :
( ( ord_less_eq @ ( A > $o )
@ ^ [X2: A] : ( member @ A @ X2 @ R )
@ ^ [X2: A] : ( member @ A @ X2 @ S ) )
= ( ord_less_eq @ ( set @ A ) @ R @ S ) ) ).
% pred_subset_eq
thf(fact_74_lfp_Oleq__antisym,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A] :
( ( ord_less_eq @ A @ X3 @ Y4 )
=> ( ( ord_less_eq @ A @ Y4 @ X3 )
=> ( X3 = Y4 ) ) ) ) ).
% lfp.leq_antisym
thf(fact_75_gfp_Oleq__antisym,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Y4: A,X3: A] :
( ( ord_less_eq @ A @ Y4 @ X3 )
=> ( ( ord_less_eq @ A @ X3 @ Y4 )
=> ( X3 = Y4 ) ) ) ) ).
% gfp.leq_antisym
thf(fact_76_lfp_Oleq__trans,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A,Z4: A] :
( ( ord_less_eq @ A @ X3 @ Y4 )
=> ( ( ord_less_eq @ A @ Y4 @ Z4 )
=> ( ord_less_eq @ A @ X3 @ Z4 ) ) ) ) ).
% lfp.leq_trans
thf(fact_77_gfp_Oleq__trans,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Y4: A,X3: A,Z4: A] :
( ( ord_less_eq @ A @ Y4 @ X3 )
=> ( ( ord_less_eq @ A @ Z4 @ Y4 )
=> ( ord_less_eq @ A @ Z4 @ X3 ) ) ) ) ).
% gfp.leq_trans
thf(fact_78_lfp_Oleq__refl,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [X3: A] : ( ord_less_eq @ A @ X3 @ X3 ) ) ).
% lfp.leq_refl
thf(fact_79_lsorted__LCons,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X3: A,Xs: coinductive_llist @ A] :
( ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) )
= ( ( coindu63249387sorted @ A @ Xs )
& ! [X2: A] :
( ( member @ A @ X2 @ ( coinductive_lset @ A @ Xs ) )
=> ( ord_less_eq @ A @ X3 @ X2 ) ) ) ) ) ).
% lsorted_LCons
thf(fact_80_lset__lsublist__subset,axiom,
! [A: $tType,Xs: coinductive_llist @ A,I: set @ nat] : ( ord_less_eq @ ( set @ A ) @ ( coinductive_lset @ A @ ( coinductive_lsublist @ A @ Xs @ I ) ) @ ( coinductive_lset @ A @ Xs ) ) ).
% lset_lsublist_subset
thf(fact_81_ldistinct__LCons,axiom,
! [A: $tType,X3: A,Xs: coinductive_llist @ A] :
( ( coindu351974385stinct @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) )
= ( ~ ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
& ( coindu351974385stinct @ A @ Xs ) ) ) ).
% ldistinct_LCons
thf(fact_82_llist_Oinject,axiom,
! [A: $tType,X21: A,X22: coinductive_llist @ A,Y21: A,Y22: coinductive_llist @ A] :
( ( ( coinductive_LCons @ A @ X21 @ X22 )
= ( coinductive_LCons @ A @ Y21 @ Y22 ) )
= ( ( X21 = Y21 )
& ( X22 = Y22 ) ) ) ).
% llist.inject
thf(fact_83_predicate1I,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ! [X: A] :
( ( P @ X )
=> ( Q @ X ) )
=> ( ord_less_eq @ ( A > $o ) @ P @ Q ) ) ).
% predicate1I
thf(fact_84_lsorted__LCons__LCons,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A,Xs: coinductive_llist @ A] :
( ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) )
= ( ( ord_less_eq @ A @ X3 @ Y4 )
& ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) ) ) ) ).
% lsorted_LCons_LCons
thf(fact_85_predicate1D,axiom,
! [A: $tType,P: A > $o,Q: A > $o,X3: A] :
( ( ord_less_eq @ ( A > $o ) @ P @ Q )
=> ( ( P @ X3 )
=> ( Q @ X3 ) ) ) ).
% predicate1D
thf(fact_86_rev__predicate1D,axiom,
! [A: $tType,P: A > $o,X3: A,Q: A > $o] :
( ( P @ X3 )
=> ( ( ord_less_eq @ ( A > $o ) @ P @ Q )
=> ( Q @ X3 ) ) ) ).
% rev_predicate1D
thf(fact_87_llist_Oset__induct,axiom,
! [A: $tType,X3: A,A2: coinductive_llist @ A,P: A > ( coinductive_llist @ A ) > $o] :
( ( member @ A @ X3 @ ( coinductive_lset @ A @ A2 ) )
=> ( ! [Z1: A,Z22: coinductive_llist @ A] : ( P @ Z1 @ ( coinductive_LCons @ A @ Z1 @ Z22 ) )
=> ( ! [Z1: A,Z22: coinductive_llist @ A,Xa: A] :
( ( member @ A @ Xa @ ( coinductive_lset @ A @ Z22 ) )
=> ( ( P @ Xa @ Z22 )
=> ( P @ Xa @ ( coinductive_LCons @ A @ Z1 @ Z22 ) ) ) )
=> ( P @ X3 @ A2 ) ) ) ) ).
% llist.set_induct
thf(fact_88_llist_Oset__cases,axiom,
! [A: $tType,E: A,A2: coinductive_llist @ A] :
( ( member @ A @ E @ ( coinductive_lset @ A @ A2 ) )
=> ( ! [Z22: coinductive_llist @ A] :
( A2
!= ( coinductive_LCons @ A @ E @ Z22 ) )
=> ~ ! [Z1: A,Z22: coinductive_llist @ A] :
( ( A2
= ( coinductive_LCons @ A @ Z1 @ Z22 ) )
=> ~ ( member @ A @ E @ ( coinductive_lset @ A @ Z22 ) ) ) ) ) ).
% llist.set_cases
thf(fact_89_lset__induct_H,axiom,
! [A: $tType,X3: A,Xs: coinductive_llist @ A,P: ( coinductive_llist @ A ) > $o] :
( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
=> ( ! [Xs2: coinductive_llist @ A] : ( P @ ( coinductive_LCons @ A @ X3 @ Xs2 ) )
=> ( ! [X6: A,Xs2: coinductive_llist @ A] :
( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs2 ) )
=> ( ( P @ Xs2 )
=> ( P @ ( coinductive_LCons @ A @ X6 @ Xs2 ) ) ) )
=> ( P @ Xs ) ) ) ) ).
% lset_induct'
thf(fact_90_lset__induct,axiom,
! [A: $tType,X3: A,Xs: coinductive_llist @ A,P: ( coinductive_llist @ A ) > $o] :
( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
=> ( ! [Xs2: coinductive_llist @ A] : ( P @ ( coinductive_LCons @ A @ X3 @ Xs2 ) )
=> ( ! [X6: A,Xs2: coinductive_llist @ A] :
( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs2 ) )
=> ( ( X3 != X6 )
=> ( ( P @ Xs2 )
=> ( P @ ( coinductive_LCons @ A @ X6 @ Xs2 ) ) ) ) )
=> ( P @ Xs ) ) ) ) ).
% lset_induct
thf(fact_91_lset__cases,axiom,
! [A: $tType,X3: A,Xs: coinductive_llist @ A] :
( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
=> ( ! [Xs3: coinductive_llist @ A] :
( Xs
!= ( coinductive_LCons @ A @ X3 @ Xs3 ) )
=> ~ ! [X6: A,Xs3: coinductive_llist @ A] :
( ( Xs
= ( coinductive_LCons @ A @ X6 @ Xs3 ) )
=> ~ ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs3 ) ) ) ) ) ).
% lset_cases
thf(fact_92_llist_Oset__intros_I1_J,axiom,
! [A: $tType,A1: A,A22: coinductive_llist @ A] : ( member @ A @ A1 @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ A1 @ A22 ) ) ) ).
% llist.set_intros(1)
thf(fact_93_llist_Oset__intros_I2_J,axiom,
! [A: $tType,X3: A,A22: coinductive_llist @ A,A1: A] :
( ( member @ A @ X3 @ ( coinductive_lset @ A @ A22 ) )
=> ( member @ A @ X3 @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ A1 @ A22 ) ) ) ) ).
% llist.set_intros(2)
thf(fact_94_lset__intros_I1_J,axiom,
! [A: $tType,X3: A,Xs: coinductive_llist @ A] : ( member @ A @ X3 @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) ) ) ).
% lset_intros(1)
thf(fact_95_lset__intros_I2_J,axiom,
! [A: $tType,X3: A,Xs: coinductive_llist @ A,X7: A] :
( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
=> ( member @ A @ X3 @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ X7 @ Xs ) ) ) ) ).
% lset_intros(2)
thf(fact_96_lmember__code_I2_J,axiom,
! [A: $tType,X3: A,Y4: A,Ys: coinductive_llist @ A] :
( ( coinductive_lmember @ A @ X3 @ ( coinductive_LCons @ A @ Y4 @ Ys ) )
= ( ( X3 = Y4 )
| ( coinductive_lmember @ A @ X3 @ Ys ) ) ) ).
% lmember_code(2)
thf(fact_97_LCons__LCons,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [X3: A,Y4: A,Xs: coinductive_llist @ A] :
( ( ord_less_eq @ A @ X3 @ Y4 )
=> ( ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y4 @ Xs ) )
=> ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) ) ) ) ) ).
% LCons_LCons
thf(fact_98_ldistinct_OLCons,axiom,
! [A: $tType,X3: A,Xs: coinductive_llist @ A] :
( ~ ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
=> ( ( coindu351974385stinct @ A @ Xs )
=> ( coindu351974385stinct @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) ) ) ) ).
% ldistinct.LCons
thf(fact_99_the__Sup__def,axiom,
! [A: $tType] :
( ( comple474717373he_Sup @ A )
= ( ^ [A5: set @ A] :
( the @ A
@ ^ [A6: A] : ( member @ A @ A6 @ A5 ) ) ) ) ).
% the_Sup_def
thf(fact_100_Powp__mono,axiom,
! [A: $tType,A4: A > $o,B4: A > $o] :
( ( ord_less_eq @ ( A > $o ) @ A4 @ B4 )
=> ( ord_less_eq @ ( ( set @ A ) > $o ) @ ( powp @ A @ A4 ) @ ( powp @ A @ B4 ) ) ) ).
% Powp_mono
thf(fact_101_ldistinct_Ocoinduct,axiom,
! [A: $tType,X5: ( coinductive_llist @ A ) > $o,X3: coinductive_llist @ A] :
( ( X5 @ X3 )
=> ( ! [X: coinductive_llist @ A] :
( ( X5 @ X )
=> ( ( X
= ( coinductive_LNil @ A ) )
| ? [Xa2: A,Xs4: coinductive_llist @ A] :
( ( X
= ( coinductive_LCons @ A @ Xa2 @ Xs4 ) )
& ~ ( member @ A @ Xa2 @ ( coinductive_lset @ A @ Xs4 ) )
& ( ( X5 @ Xs4 )
| ( coindu351974385stinct @ A @ Xs4 ) ) ) ) )
=> ( coindu351974385stinct @ A @ X3 ) ) ) ).
% ldistinct.coinduct
thf(fact_102_ldistinct_Osimps,axiom,
! [A: $tType] :
( ( coindu351974385stinct @ A )
= ( ^ [A6: coinductive_llist @ A] :
( ( A6
= ( coinductive_LNil @ A ) )
| ? [X2: A,Xs5: coinductive_llist @ A] :
( ( A6
= ( coinductive_LCons @ A @ X2 @ Xs5 ) )
& ~ ( member @ A @ X2 @ ( coinductive_lset @ A @ Xs5 ) )
& ( coindu351974385stinct @ A @ Xs5 ) ) ) ) ) ).
% ldistinct.simps
thf(fact_103_ldistinct_Ocases,axiom,
! [A: $tType,A2: coinductive_llist @ A] :
( ( coindu351974385stinct @ A @ A2 )
=> ( ( A2
!= ( coinductive_LNil @ A ) )
=> ~ ! [X: A,Xs2: coinductive_llist @ A] :
( ( A2
= ( coinductive_LCons @ A @ X @ Xs2 ) )
=> ( ~ ( member @ A @ X @ ( coinductive_lset @ A @ Xs2 ) )
=> ~ ( coindu351974385stinct @ A @ Xs2 ) ) ) ) ) ).
% ldistinct.cases
thf(fact_104_lsorted_Ocases,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: coinductive_llist @ A] :
( ( coindu63249387sorted @ A @ A2 )
=> ( ( A2
!= ( coinductive_LNil @ A ) )
=> ( ! [X: A] :
( A2
!= ( coinductive_LCons @ A @ X @ ( coinductive_LNil @ A ) ) )
=> ~ ! [X: A,Y2: A,Xs2: coinductive_llist @ A] :
( ( A2
= ( coinductive_LCons @ A @ X @ ( coinductive_LCons @ A @ Y2 @ Xs2 ) ) )
=> ( ( ord_less_eq @ A @ X @ Y2 )
=> ~ ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y2 @ Xs2 ) ) ) ) ) ) ) ) ).
% lsorted.cases
thf(fact_105_hamming__eq__LNil__iff,axiom,
( hammin2015774020amming
!= ( coinductive_LNil @ nat ) ) ).
% hamming_eq_LNil_iff
thf(fact_106_lsorted__code_I1_J,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ( coindu63249387sorted @ A @ ( coinductive_LNil @ A ) ) ) ).
% lsorted_code(1)
thf(fact_107_ldistinct__LNil__code,axiom,
! [A: $tType] : ( coindu351974385stinct @ A @ ( coinductive_LNil @ A ) ) ).
% ldistinct_LNil_code
thf(fact_108_lsublist__LNil,axiom,
! [A: $tType,A4: set @ nat] :
( ( coinductive_lsublist @ A @ ( coinductive_LNil @ A ) @ A4 )
= ( coinductive_LNil @ A ) ) ).
% lsublist_LNil
thf(fact_109_lsorted__code_I2_J,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [X3: A] : ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) ) ) ).
% lsorted_code(2)
thf(fact_110_llist_Odistinct_I1_J,axiom,
! [A: $tType,X21: A,X22: coinductive_llist @ A] :
( ( coinductive_LNil @ A )
!= ( coinductive_LCons @ A @ X21 @ X22 ) ) ).
% llist.distinct(1)
thf(fact_111_llist_Oexhaust,axiom,
! [A: $tType,Y4: coinductive_llist @ A] :
( ( Y4
!= ( coinductive_LNil @ A ) )
=> ~ ! [X212: A,X222: coinductive_llist @ A] :
( Y4
!= ( coinductive_LCons @ A @ X212 @ X222 ) ) ) ).
% llist.exhaust
thf(fact_112_neq__LNil__conv,axiom,
! [A: $tType,Xs: coinductive_llist @ A] :
( ( Xs
!= ( coinductive_LNil @ A ) )
= ( ? [X2: A,Xs6: coinductive_llist @ A] :
( Xs
= ( coinductive_LCons @ A @ X2 @ Xs6 ) ) ) ) ).
% neq_LNil_conv
thf(fact_113_LNil,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ( coindu63249387sorted @ A @ ( coinductive_LNil @ A ) ) ) ).
% LNil
thf(fact_114_ldistinct_OLNil,axiom,
! [A: $tType] : ( coindu351974385stinct @ A @ ( coinductive_LNil @ A ) ) ).
% ldistinct.LNil
thf(fact_115_lmember__code_I1_J,axiom,
! [A: $tType,X3: A] :
~ ( coinductive_lmember @ A @ X3 @ ( coinductive_LNil @ A ) ) ).
% lmember_code(1)
thf(fact_116_Singleton,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [X3: A] : ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) ) ) ).
% Singleton
thf(fact_117_lsorted_Ocoinduct,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [X5: ( coinductive_llist @ A ) > $o,X3: coinductive_llist @ A] :
( ( X5 @ X3 )
=> ( ! [X: coinductive_llist @ A] :
( ( X5 @ X )
=> ( ( X
= ( coinductive_LNil @ A ) )
| ? [Xa2: A] :
( X
= ( coinductive_LCons @ A @ Xa2 @ ( coinductive_LNil @ A ) ) )
| ? [Xa2: A,Y5: A,Xs4: coinductive_llist @ A] :
( ( X
= ( coinductive_LCons @ A @ Xa2 @ ( coinductive_LCons @ A @ Y5 @ Xs4 ) ) )
& ( ord_less_eq @ A @ Xa2 @ Y5 )
& ( ( X5 @ ( coinductive_LCons @ A @ Y5 @ Xs4 ) )
| ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y5 @ Xs4 ) ) ) ) ) )
=> ( coindu63249387sorted @ A @ X3 ) ) ) ) ).
% lsorted.coinduct
thf(fact_118_lsorted_Osimps,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ( ( coindu63249387sorted @ A )
= ( ^ [A6: coinductive_llist @ A] :
( ( A6
= ( coinductive_LNil @ A ) )
| ? [X2: A] :
( A6
= ( coinductive_LCons @ A @ X2 @ ( coinductive_LNil @ A ) ) )
| ? [X2: A,Y3: A,Xs5: coinductive_llist @ A] :
( ( A6
= ( coinductive_LCons @ A @ X2 @ ( coinductive_LCons @ A @ Y3 @ Xs5 ) ) )
& ( ord_less_eq @ A @ X2 @ Y3 )
& ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y3 @ Xs5 ) ) ) ) ) ) ) ).
% lsorted.simps
thf(fact_119_Coinductive__List_Ofinite__lprefix__nitpick__simps_I3_J,axiom,
! [A: $tType,Xs: coinductive_llist @ A,Y4: A,Ys: coinductive_llist @ A] :
( ( coindu328551480prefix @ A @ Xs @ ( coinductive_LCons @ A @ Y4 @ Ys ) )
= ( ( Xs
= ( coinductive_LNil @ A ) )
| ? [Xs6: coinductive_llist @ A] :
( ( Xs
= ( coinductive_LCons @ A @ Y4 @ Xs6 ) )
& ( coindu328551480prefix @ A @ Xs6 @ Ys ) ) ) ) ).
% Coinductive_List.finite_lprefix_nitpick_simps(3)
thf(fact_120_lstrict__prefix__code_I2_J,axiom,
! [B: $tType,Y4: B,Ys: coinductive_llist @ B] : ( coindu1478340336prefix @ B @ ( coinductive_LNil @ B ) @ ( coinductive_LCons @ B @ Y4 @ Ys ) ) ).
% lstrict_prefix_code(2)
thf(fact_121_lstrict__prefix__code_I3_J,axiom,
! [B: $tType,X3: B,Xs: coinductive_llist @ B] :
~ ( coindu1478340336prefix @ B @ ( coinductive_LCons @ B @ X3 @ Xs ) @ ( coinductive_LNil @ B ) ) ).
% lstrict_prefix_code(3)
thf(fact_122_lsublist__singleton,axiom,
! [A: $tType,A4: set @ nat,X3: A] :
( ( ( member @ nat @ ( zero_zero @ nat ) @ A4 )
=> ( ( coinductive_lsublist @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) @ A4 )
= ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) ) )
& ( ~ ( member @ nat @ ( zero_zero @ nat ) @ A4 )
=> ( ( coinductive_lsublist @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) @ A4 )
= ( coinductive_LNil @ A ) ) ) ) ).
% lsublist_singleton
thf(fact_123_llast__singleton,axiom,
! [A: $tType,X3: A] :
( ( coinductive_llast @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) )
= X3 ) ).
% llast_singleton
thf(fact_124_llast__LCons2,axiom,
! [A: $tType,X3: A,Y4: A,Xs: coinductive_llist @ A] :
( ( coinductive_llast @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) )
= ( coinductive_llast @ A @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) ) ).
% llast_LCons2
thf(fact_125_lstrict__prefix__code_I4_J,axiom,
! [B: $tType,X3: B,Xs: coinductive_llist @ B,Y4: B,Ys: coinductive_llist @ B] :
( ( coindu1478340336prefix @ B @ ( coinductive_LCons @ B @ X3 @ Xs ) @ ( coinductive_LCons @ B @ Y4 @ Ys ) )
= ( ( X3 = Y4 )
& ( coindu1478340336prefix @ B @ Xs @ Ys ) ) ) ).
% lstrict_prefix_code(4)
thf(fact_126_lstrict__prefix__code_I1_J,axiom,
! [A: $tType] :
~ ( coindu1478340336prefix @ A @ ( coinductive_LNil @ A ) @ ( coinductive_LNil @ A ) ) ).
% lstrict_prefix_code(1)
thf(fact_127_llist__less__induct,axiom,
! [A: $tType,P: ( coinductive_llist @ A ) > $o,Xs: coinductive_llist @ A] :
( ! [Xs2: coinductive_llist @ A] :
( ! [Ys2: coinductive_llist @ A] :
( ( coindu1478340336prefix @ A @ Ys2 @ Xs2 )
=> ( P @ Ys2 ) )
=> ( P @ Xs2 ) )
=> ( P @ Xs ) ) ).
% llist_less_induct
thf(fact_128_smooth__0,axiom,
~ ( hammin1195055315smooth @ ( zero_zero @ nat ) ) ).
% smooth_0
thf(fact_129_Coinductive__List_Ofinite__lprefix__nitpick__simps_I1_J,axiom,
! [A: $tType,Xs: coinductive_llist @ A] :
( ( coindu328551480prefix @ A @ Xs @ ( coinductive_LNil @ A ) )
= ( Xs
= ( coinductive_LNil @ A ) ) ) ).
% Coinductive_List.finite_lprefix_nitpick_simps(1)
thf(fact_130_Coinductive__List_Ofinite__lprefix__nitpick__simps_I2_J,axiom,
! [A: $tType,Xs: coinductive_llist @ A] : ( coindu328551480prefix @ A @ ( coinductive_LNil @ A ) @ Xs ) ).
% Coinductive_List.finite_lprefix_nitpick_simps(2)
thf(fact_131_le__zero__eq,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type2 @ A ) )
=> ! [N: A] :
( ( ord_less_eq @ A @ N @ ( zero_zero @ A ) )
= ( N
= ( zero_zero @ A ) ) ) ) ).
% le_zero_eq
thf(fact_132_le0,axiom,
! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).
% le0
thf(fact_133_le__numeral__extra_I3_J,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).
% le_numeral_extra(3)
thf(fact_134_zero__reorient,axiom,
! [A: $tType] :
( ( zero @ A @ ( type2 @ A ) )
=> ! [X3: A] :
( ( ( zero_zero @ A )
= X3 )
= ( X3
= ( zero_zero @ A ) ) ) ) ).
% zero_reorient
thf(fact_135_le__0__eq,axiom,
! [N: nat] :
( ( ord_less_eq @ nat @ N @ ( zero_zero @ nat ) )
= ( N
= ( zero_zero @ nat ) ) ) ).
% le_0_eq
thf(fact_136_less__eq__nat_Osimps_I1_J,axiom,
! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).
% less_eq_nat.simps(1)
thf(fact_137_zero__le,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type2 @ A ) )
=> ! [X3: A] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ X3 ) ) ).
% zero_le
thf(fact_138_llistsum__LNil,axiom,
! [A: $tType] :
( ( monoid_add @ A @ ( type2 @ A ) )
=> ( ( coindu780009021istsum @ A @ ( coinductive_LNil @ A ) )
= ( zero_zero @ A ) ) ) ).
% llistsum_LNil
thf(fact_139_fun__cong__unused__0,axiom,
! [A: $tType,B: $tType,C2: $tType] :
( ( zero @ B @ ( type2 @ B ) )
=> ! [F: ( A > B ) > C2,G: C2] :
( ( F
= ( ^ [X2: A > B] : G ) )
=> ( ( F
@ ^ [X2: A] : ( zero_zero @ B ) )
= G ) ) ) ).
% fun_cong_unused_0
thf(fact_140_lsublist__LCons,axiom,
! [A: $tType,A4: set @ nat,X3: A,Xs: coinductive_llist @ A] :
( ( ( member @ nat @ ( zero_zero @ nat ) @ A4 )
=> ( ( coinductive_lsublist @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) @ A4 )
= ( coinductive_LCons @ A @ X3
@ ( coinductive_lsublist @ A @ Xs
@ ( collect @ nat
@ ^ [N2: nat] : ( member @ nat @ ( suc @ N2 ) @ A4 ) ) ) ) ) )
& ( ~ ( member @ nat @ ( zero_zero @ nat ) @ A4 )
=> ( ( coinductive_lsublist @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) @ A4 )
= ( coinductive_lsublist @ A @ Xs
@ ( collect @ nat
@ ^ [N2: nat] : ( member @ nat @ ( suc @ N2 ) @ A4 ) ) ) ) ) ) ).
% lsublist_LCons
thf(fact_141_smooth__ge__Suc0,axiom,
! [N: nat] :
( ( hammin1195055315smooth @ N )
=> ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ N ) ) ).
% smooth_ge_Suc0
thf(fact_142_nat_Odistinct_I1_J,axiom,
! [X23: nat] :
( ( zero_zero @ nat )
!= ( suc @ X23 ) ) ).
% nat.distinct(1)
thf(fact_143_old_Onat_Odistinct_I2_J,axiom,
! [Nat: nat] :
( ( suc @ Nat )
!= ( zero_zero @ nat ) ) ).
% old.nat.distinct(2)
thf(fact_144_old_Onat_Odistinct_I1_J,axiom,
! [Nat2: nat] :
( ( zero_zero @ nat )
!= ( suc @ Nat2 ) ) ).
% old.nat.distinct(1)
thf(fact_145_nat_OdiscI,axiom,
! [Nat3: nat,X23: nat] :
( ( Nat3
= ( suc @ X23 ) )
=> ( Nat3
!= ( zero_zero @ nat ) ) ) ).
% nat.discI
thf(fact_146_nat__induct,axiom,
! [P: nat > $o,N: nat] :
( ( P @ ( zero_zero @ nat ) )
=> ( ! [N3: nat] :
( ( P @ N3 )
=> ( P @ ( suc @ N3 ) ) )
=> ( P @ N ) ) ) ).
% nat_induct
thf(fact_147_diff__induct,axiom,
! [P: nat > nat > $o,M: nat,N: nat] :
( ! [X: nat] : ( P @ X @ ( zero_zero @ nat ) )
=> ( ! [Y2: nat] : ( P @ ( zero_zero @ nat ) @ ( suc @ Y2 ) )
=> ( ! [X: nat,Y2: nat] :
( ( P @ X @ Y2 )
=> ( P @ ( suc @ X ) @ ( suc @ Y2 ) ) )
=> ( P @ M @ N ) ) ) ) ).
% diff_induct
thf(fact_148_zero__induct,axiom,
! [P: nat > $o,K: nat] :
( ( P @ K )
=> ( ! [N3: nat] :
( ( P @ ( suc @ N3 ) )
=> ( P @ N3 ) )
=> ( P @ ( zero_zero @ nat ) ) ) ) ).
% zero_induct
thf(fact_149_Suc__neq__Zero,axiom,
! [M: nat] :
( ( suc @ M )
!= ( zero_zero @ nat ) ) ).
% Suc_neq_Zero
thf(fact_150_Zero__neq__Suc,axiom,
! [M: nat] :
( ( zero_zero @ nat )
!= ( suc @ M ) ) ).
% Zero_neq_Suc
thf(fact_151_Zero__not__Suc,axiom,
! [M: nat] :
( ( zero_zero @ nat )
!= ( suc @ M ) ) ).
% Zero_not_Suc
thf(fact_152_old_Onat_Oexhaust,axiom,
! [Y4: nat] :
( ( Y4
!= ( zero_zero @ nat ) )
=> ~ ! [Nat4: nat] :
( Y4
!= ( suc @ Nat4 ) ) ) ).
% old.nat.exhaust
thf(fact_153_old_Onat_Oinducts,axiom,
! [P: nat > $o,Nat3: nat] :
( ( P @ ( zero_zero @ nat ) )
=> ( ! [Nat4: nat] :
( ( P @ Nat4 )
=> ( P @ ( suc @ Nat4 ) ) )
=> ( P @ Nat3 ) ) ) ).
% old.nat.inducts
thf(fact_154_not0__implies__Suc,axiom,
! [N: nat] :
( ( N
!= ( zero_zero @ nat ) )
=> ? [M2: nat] :
( N
= ( suc @ M2 ) ) ) ).
% not0_implies_Suc
thf(fact_155_lift__Suc__antimono__le,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [F: nat > A,N: nat,N4: nat] :
( ! [N3: nat] : ( ord_less_eq @ A @ ( F @ ( suc @ N3 ) ) @ ( F @ N3 ) )
=> ( ( ord_less_eq @ nat @ N @ N4 )
=> ( ord_less_eq @ A @ ( F @ N4 ) @ ( F @ N ) ) ) ) ) ).
% lift_Suc_antimono_le
thf(fact_156_lift__Suc__mono__le,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [F: nat > A,N: nat,N4: nat] :
( ! [N3: nat] : ( ord_less_eq @ A @ ( F @ N3 ) @ ( F @ ( suc @ N3 ) ) )
=> ( ( ord_less_eq @ nat @ N @ N4 )
=> ( ord_less_eq @ A @ ( F @ N ) @ ( F @ N4 ) ) ) ) ) ).
% lift_Suc_mono_le
thf(fact_157_smooth__Suc0,axiom,
hammin1195055315smooth @ ( suc @ ( zero_zero @ nat ) ) ).
% smooth_Suc0
thf(fact_158_list__decode_Ocases,axiom,
! [X3: nat] :
( ( X3
!= ( zero_zero @ nat ) )
=> ~ ! [N3: nat] :
( X3
!= ( suc @ N3 ) ) ) ).
% list_decode.cases
thf(fact_159_dependent__nat__choice,axiom,
! [A: $tType,P: nat > A > $o,Q: nat > A > A > $o] :
( ? [X1: A] : ( P @ ( zero_zero @ nat ) @ X1 )
=> ( ! [X: A,N3: nat] :
( ( P @ N3 @ X )
=> ? [Y5: A] :
( ( P @ ( suc @ N3 ) @ Y5 )
& ( Q @ N3 @ X @ Y5 ) ) )
=> ? [F3: nat > A] :
! [N5: nat] :
( ( P @ N5 @ ( F3 @ N5 ) )
& ( Q @ N5 @ ( F3 @ N5 ) @ ( F3 @ ( suc @ N5 ) ) ) ) ) ) ).
% dependent_nat_choice
thf(fact_160_exists__least__lemma,axiom,
! [P: nat > $o] :
( ~ ( P @ ( zero_zero @ nat ) )
=> ( ? [X1: nat] : ( P @ X1 )
=> ? [N3: nat] :
( ~ ( P @ N3 )
& ( P @ ( suc @ N3 ) ) ) ) ) ).
% exists_least_lemma
thf(fact_161_one__le__mult__iff,axiom,
! [M: nat,N: nat] :
( ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ ( times_times @ nat @ M @ N ) )
= ( ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ M )
& ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ N ) ) ) ).
% one_le_mult_iff
thf(fact_162_mult__cancel2,axiom,
! [M: nat,K: nat,N: nat] :
( ( ( times_times @ nat @ M @ K )
= ( times_times @ nat @ N @ K ) )
= ( ( M = N )
| ( K
= ( zero_zero @ nat ) ) ) ) ).
% mult_cancel2
thf(fact_163_mult__cancel1,axiom,
! [K: nat,M: nat,N: nat] :
( ( ( times_times @ nat @ K @ M )
= ( times_times @ nat @ K @ N ) )
= ( ( M = N )
| ( K
= ( zero_zero @ nat ) ) ) ) ).
% mult_cancel1
thf(fact_164_mult__0__right,axiom,
! [M: nat] :
( ( times_times @ nat @ M @ ( zero_zero @ nat ) )
= ( zero_zero @ nat ) ) ).
% mult_0_right
thf(fact_165_mult__is__0,axiom,
! [M: nat,N: nat] :
( ( ( times_times @ nat @ M @ N )
= ( zero_zero @ nat ) )
= ( ( M
= ( zero_zero @ nat ) )
| ( N
= ( zero_zero @ nat ) ) ) ) ).
% mult_is_0
thf(fact_166_smooth__times,axiom,
! [X3: nat,Y4: nat] :
( ( hammin1195055315smooth @ ( times_times @ nat @ X3 @ Y4 ) )
= ( ( hammin1195055315smooth @ X3 )
& ( hammin1195055315smooth @ Y4 ) ) ) ).
% smooth_times
thf(fact_167_one__eq__mult__iff,axiom,
! [M: nat,N: nat] :
( ( ( suc @ ( zero_zero @ nat ) )
= ( times_times @ nat @ M @ N ) )
= ( ( M
= ( suc @ ( zero_zero @ nat ) ) )
& ( N
= ( suc @ ( zero_zero @ nat ) ) ) ) ) ).
% one_eq_mult_iff
thf(fact_168_mult__eq__1__iff,axiom,
! [M: nat,N: nat] :
( ( ( times_times @ nat @ M @ N )
= ( suc @ ( zero_zero @ nat ) ) )
= ( ( M
= ( suc @ ( zero_zero @ nat ) ) )
& ( N
= ( suc @ ( zero_zero @ nat ) ) ) ) ) ).
% mult_eq_1_iff
thf(fact_169_mult__0,axiom,
! [N: nat] :
( ( times_times @ nat @ ( zero_zero @ nat ) @ N )
= ( zero_zero @ nat ) ) ).
% mult_0
thf(fact_170_mult__cancel__right,axiom,
! [A: $tType] :
( ( semiri1923998003cancel @ A @ ( type2 @ A ) )
=> ! [A2: A,C: A,B2: A] :
( ( ( times_times @ A @ A2 @ C )
= ( times_times @ A @ B2 @ C ) )
= ( ( C
= ( zero_zero @ A ) )
| ( A2 = B2 ) ) ) ) ).
% mult_cancel_right
thf(fact_171_mult__cancel__left,axiom,
! [A: $tType] :
( ( semiri1923998003cancel @ A @ ( type2 @ A ) )
=> ! [C: A,A2: A,B2: A] :
( ( ( times_times @ A @ C @ A2 )
= ( times_times @ A @ C @ B2 ) )
= ( ( C
= ( zero_zero @ A ) )
| ( A2 = B2 ) ) ) ) ).
% mult_cancel_left
thf(fact_172_mult__eq__0__iff,axiom,
! [A: $tType] :
( ( semiri1193490041visors @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ( times_times @ A @ A2 @ B2 )
= ( zero_zero @ A ) )
= ( ( A2
= ( zero_zero @ A ) )
| ( B2
= ( zero_zero @ A ) ) ) ) ) ).
% mult_eq_0_iff
thf(fact_173_mult__zero__left,axiom,
! [A: $tType] :
( ( mult_zero @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ ( zero_zero @ A ) @ A2 )
= ( zero_zero @ A ) ) ) ).
% mult_zero_left
thf(fact_174_mult__zero__right,axiom,
! [A: $tType] :
( ( mult_zero @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ A2 @ ( zero_zero @ A ) )
= ( zero_zero @ A ) ) ) ).
% mult_zero_right
thf(fact_175_mult__not__zero,axiom,
! [A: $tType] :
( ( mult_zero @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ( times_times @ A @ A2 @ B2 )
!= ( zero_zero @ A ) )
=> ( ( A2
!= ( zero_zero @ A ) )
& ( B2
!= ( zero_zero @ A ) ) ) ) ) ).
% mult_not_zero
thf(fact_176_divisors__zero,axiom,
! [A: $tType] :
( ( semiri1193490041visors @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ( times_times @ A @ A2 @ B2 )
= ( zero_zero @ A ) )
=> ( ( A2
= ( zero_zero @ A ) )
| ( B2
= ( zero_zero @ A ) ) ) ) ) ).
% divisors_zero
thf(fact_177_no__zero__divisors,axiom,
! [A: $tType] :
( ( semiri1193490041visors @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( A2
!= ( zero_zero @ A ) )
=> ( ( B2
!= ( zero_zero @ A ) )
=> ( ( times_times @ A @ A2 @ B2 )
!= ( zero_zero @ A ) ) ) ) ) ).
% no_zero_divisors
thf(fact_178_mult__left__cancel,axiom,
! [A: $tType] :
( ( semiri1923998003cancel @ A @ ( type2 @ A ) )
=> ! [C: A,A2: A,B2: A] :
( ( C
!= ( zero_zero @ A ) )
=> ( ( ( times_times @ A @ C @ A2 )
= ( times_times @ A @ C @ B2 ) )
= ( A2 = B2 ) ) ) ) ).
% mult_left_cancel
thf(fact_179_mult__right__cancel,axiom,
! [A: $tType] :
( ( semiri1923998003cancel @ A @ ( type2 @ A ) )
=> ! [C: A,A2: A,B2: A] :
( ( C
!= ( zero_zero @ A ) )
=> ( ( ( times_times @ A @ A2 @ C )
= ( times_times @ A @ B2 @ C ) )
= ( A2 = B2 ) ) ) ) ).
% mult_right_cancel
thf(fact_180_mult__mono,axiom,
! [A: $tType] :
( ( ordered_semiring @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A,D: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ C @ D )
=> ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 )
=> ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
=> ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ D ) ) ) ) ) ) ) ).
% mult_mono
thf(fact_181_mult__mono_H,axiom,
! [A: $tType] :
( ( ordered_semiring @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A,D: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ C @ D )
=> ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
=> ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
=> ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ D ) ) ) ) ) ) ) ).
% mult_mono'
thf(fact_182_zero__le__square,axiom,
! [A: $tType] :
( ( linordered_ring @ A @ ( type2 @ A ) )
=> ! [A2: A] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ A2 ) ) ) ).
% zero_le_square
thf(fact_183_split__mult__pos__le,axiom,
! [A: $tType] :
( ( ordered_ring @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
& ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) )
| ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
& ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) ) )
=> ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ).
% split_mult_pos_le
thf(fact_184_mult__left__mono__neg,axiom,
! [A: $tType] :
( ( ordered_ring @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( ord_less_eq @ A @ B2 @ A2 )
=> ( ( ord_less_eq @ A @ C @ ( zero_zero @ A ) )
=> ( ord_less_eq @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).
% mult_left_mono_neg
thf(fact_185_mult__nonpos__nonpos,axiom,
! [A: $tType] :
( ( ordered_ring @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
=> ( ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) )
=> ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).
% mult_nonpos_nonpos
thf(fact_186_mult__left__mono,axiom,
! [A: $tType] :
( ( ordered_semiring @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
=> ( ord_less_eq @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).
% mult_left_mono
thf(fact_187_mult__right__mono__neg,axiom,
! [A: $tType] :
( ( ordered_ring @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( ord_less_eq @ A @ B2 @ A2 )
=> ( ( ord_less_eq @ A @ C @ ( zero_zero @ A ) )
=> ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).
% mult_right_mono_neg
thf(fact_188_mult__right__mono,axiom,
! [A: $tType] :
( ( ordered_semiring @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
=> ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).
% mult_right_mono
thf(fact_189_mult__le__0__iff,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
= ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
& ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) )
| ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
& ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).
% mult_le_0_iff
thf(fact_190_split__mult__neg__le,axiom,
! [A: $tType] :
( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
& ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) )
| ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
& ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) )
=> ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ).
% split_mult_neg_le
thf(fact_191_mult__nonneg__nonneg,axiom,
! [A: $tType] :
( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
=> ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 )
=> ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).
% mult_nonneg_nonneg
thf(fact_192_mult__nonneg__nonpos,axiom,
! [A: $tType] :
( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
=> ( ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) )
=> ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).
% mult_nonneg_nonpos
thf(fact_193_mult__nonpos__nonneg,axiom,
! [A: $tType] :
( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
=> ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 )
=> ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).
% mult_nonpos_nonneg
thf(fact_194_mult__nonneg__nonpos2,axiom,
! [A: $tType] :
( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
=> ( ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) )
=> ( ord_less_eq @ A @ ( times_times @ A @ B2 @ A2 ) @ ( zero_zero @ A ) ) ) ) ) ).
% mult_nonneg_nonpos2
thf(fact_195_zero__le__mult__iff,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
= ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
& ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) )
| ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
& ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).
% zero_le_mult_iff
thf(fact_196_ordered__comm__semiring__class_Ocomm__mult__left__mono,axiom,
! [A: $tType] :
( ( ordere1490568538miring @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
=> ( ord_less_eq @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).
% ordered_comm_semiring_class.comm_mult_left_mono
thf(fact_197_nat__mult__eq__cancel__disj,axiom,
! [K: nat,M: nat,N: nat] :
( ( ( times_times @ nat @ K @ M )
= ( times_times @ nat @ K @ N ) )
= ( ( K
= ( zero_zero @ nat ) )
| ( M = N ) ) ) ).
% nat_mult_eq_cancel_disj
thf(fact_198_semiring__normalization__rules_I10_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ A2 @ ( zero_zero @ A ) )
= ( zero_zero @ A ) ) ) ).
% semiring_normalization_rules(10)
thf(fact_199_semiring__normalization__rules_I9_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ ( zero_zero @ A ) @ A2 )
= ( zero_zero @ A ) ) ) ).
% semiring_normalization_rules(9)
thf(fact_200_Greatest__equality,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [P: A > $o,K: A] :
( ( P @ K )
=> ( ! [X: A] :
( ( P @ X )
=> ( ord_less_eq @ A @ X @ K ) )
=> ( ( hilbert_Greatest @ A @ P )
= K ) ) ) ) ).
% Greatest_equality
thf(fact_201_LeastM__equality,axiom,
! [A: $tType,B: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [P: B > $o,K: B,M: B > A] :
( ( P @ K )
=> ( ! [X: B] :
( ( P @ X )
=> ( ord_less_eq @ A @ ( M @ K ) @ ( M @ X ) ) )
=> ( ( M @ ( hilbert_LeastM @ B @ A @ M @ P ) )
= ( M @ K ) ) ) ) ) ).
% LeastM_equality
thf(fact_202_LeastMI2,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [P: A > $o,X3: A,M: A > B,Q: A > $o] :
( ( P @ X3 )
=> ( ! [Y2: A] :
( ( P @ Y2 )
=> ( ord_less_eq @ B @ ( M @ X3 ) @ ( M @ Y2 ) ) )
=> ( ! [X: A] :
( ( P @ X )
=> ( ! [Y5: A] :
( ( P @ Y5 )
=> ( ord_less_eq @ B @ ( M @ X ) @ ( M @ Y5 ) ) )
=> ( Q @ X ) ) )
=> ( Q @ ( hilbert_LeastM @ A @ B @ M @ P ) ) ) ) ) ) ).
% LeastMI2
thf(fact_203_Greatest__def,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ( ( hilbert_Greatest @ A )
= ( hilbert_GreatestM @ A @ A
@ ^ [X2: A] : X2 ) ) ) ).
% Greatest_def
thf(fact_204_mult__commute__abs,axiom,
! [A: $tType] :
( ( ab_semigroup_mult @ A @ ( type2 @ A ) )
=> ! [C: A] :
( ( ^ [X2: A] : ( times_times @ A @ X2 @ C ) )
= ( times_times @ A @ C ) ) ) ).
% mult_commute_abs
thf(fact_205_GreatestMI2,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [P: A > $o,X3: A,M: A > B,Q: A > $o] :
( ( P @ X3 )
=> ( ! [Y2: A] :
( ( P @ Y2 )
=> ( ord_less_eq @ B @ ( M @ Y2 ) @ ( M @ X3 ) ) )
=> ( ! [X: A] :
( ( P @ X )
=> ( ! [Y5: A] :
( ( P @ Y5 )
=> ( ord_less_eq @ B @ ( M @ Y5 ) @ ( M @ X ) ) )
=> ( Q @ X ) ) )
=> ( Q @ ( hilbert_GreatestM @ A @ B @ M @ P ) ) ) ) ) ) ).
% GreatestMI2
thf(fact_206_GreatestM__equality,axiom,
! [A: $tType,B: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [P: B > $o,K: B,M: B > A] :
( ( P @ K )
=> ( ! [X: B] :
( ( P @ X )
=> ( ord_less_eq @ A @ ( M @ X ) @ ( M @ K ) ) )
=> ( ( M @ ( hilbert_GreatestM @ B @ A @ M @ P ) )
= ( M @ K ) ) ) ) ) ).
% GreatestM_equality
thf(fact_207_nat__mult__le__cancel__disj,axiom,
! [K: nat,M: nat,N: nat] :
( ( ord_less_eq @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
= ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
=> ( ord_less_eq @ nat @ M @ N ) ) ) ).
% nat_mult_le_cancel_disj
thf(fact_208_mult__le__cancel2,axiom,
! [M: nat,K: nat,N: nat] :
( ( ord_less_eq @ nat @ ( times_times @ nat @ M @ K ) @ ( times_times @ nat @ N @ K ) )
= ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
=> ( ord_less_eq @ nat @ M @ N ) ) ) ).
% mult_le_cancel2
thf(fact_209_not__gr__zero,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type2 @ A ) )
=> ! [N: A] :
( ( ~ ( ord_less @ A @ ( zero_zero @ A ) @ N ) )
= ( N
= ( zero_zero @ A ) ) ) ) ).
% not_gr_zero
thf(fact_210_neq0__conv,axiom,
! [N: nat] :
( ( N
!= ( zero_zero @ nat ) )
= ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).
% neq0_conv
thf(fact_211_less__Suc0,axiom,
! [N: nat] :
( ( ord_less @ nat @ N @ ( suc @ ( zero_zero @ nat ) ) )
= ( N
= ( zero_zero @ nat ) ) ) ).
% less_Suc0
thf(fact_212_zero__less__Suc,axiom,
! [N: nat] : ( ord_less @ nat @ ( zero_zero @ nat ) @ ( suc @ N ) ) ).
% zero_less_Suc
thf(fact_213_mult__less__cancel2,axiom,
! [M: nat,K: nat,N: nat] :
( ( ord_less @ nat @ ( times_times @ nat @ M @ K ) @ ( times_times @ nat @ N @ K ) )
= ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
& ( ord_less @ nat @ M @ N ) ) ) ).
% mult_less_cancel2
thf(fact_214_nat__0__less__mult__iff,axiom,
! [M: nat,N: nat] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( times_times @ nat @ M @ N ) )
= ( ( ord_less @ nat @ ( zero_zero @ nat ) @ M )
& ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ) ).
% nat_0_less_mult_iff
thf(fact_215_nat__mult__less__cancel__disj,axiom,
! [K: nat,M: nat,N: nat] :
( ( ord_less @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
= ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
& ( ord_less @ nat @ M @ N ) ) ) ).
% nat_mult_less_cancel_disj
thf(fact_216_smooth__gt0,axiom,
! [N: nat] :
( ( hammin1195055315smooth @ N )
=> ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).
% smooth_gt0
thf(fact_217_nat__mult__less__cancel1,axiom,
! [K: nat,M: nat,N: nat] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
=> ( ( ord_less @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
= ( ord_less @ nat @ M @ N ) ) ) ).
% nat_mult_less_cancel1
thf(fact_218_nat__mult__eq__cancel1,axiom,
! [K: nat,M: nat,N: nat] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
=> ( ( ( times_times @ nat @ K @ M )
= ( times_times @ nat @ K @ N ) )
= ( M = N ) ) ) ).
% nat_mult_eq_cancel1
thf(fact_219_mult__neg__neg,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
=> ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
=> ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).
% mult_neg_neg
thf(fact_220_not__square__less__zero,axiom,
! [A: $tType] :
( ( linordered_ring @ A @ ( type2 @ A ) )
=> ! [A2: A] :
~ ( ord_less @ A @ ( times_times @ A @ A2 @ A2 ) @ ( zero_zero @ A ) ) ) ).
% not_square_less_zero
thf(fact_221_mult__less__0__iff,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
= ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
& ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) )
| ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
& ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).
% mult_less_0_iff
thf(fact_222_mult__neg__pos,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
=> ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).
% mult_neg_pos
thf(fact_223_mult__pos__neg,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
=> ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
=> ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).
% mult_pos_neg
thf(fact_224_mult__pos__pos,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
=> ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).
% mult_pos_pos
thf(fact_225_mult__pos__neg2,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
=> ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
=> ( ord_less @ A @ ( times_times @ A @ B2 @ A2 ) @ ( zero_zero @ A ) ) ) ) ) ).
% mult_pos_neg2
thf(fact_226_zero__less__mult__iff,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
= ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
& ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) )
| ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
& ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).
% zero_less_mult_iff
thf(fact_227_zero__less__mult__pos,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
=> ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ).
% zero_less_mult_pos
thf(fact_228_zero__less__mult__pos2,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ B2 @ A2 ) )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
=> ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ).
% zero_less_mult_pos2
thf(fact_229_mult__less__cancel__left__neg,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [C: A,A2: A,B2: A] :
( ( ord_less @ A @ C @ ( zero_zero @ A ) )
=> ( ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
= ( ord_less @ A @ B2 @ A2 ) ) ) ) ).
% mult_less_cancel_left_neg
thf(fact_230_mult__less__cancel__left__pos,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [C: A,A2: A,B2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ C )
=> ( ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
= ( ord_less @ A @ A2 @ B2 ) ) ) ) ).
% mult_less_cancel_left_pos
thf(fact_231_mult__strict__left__mono__neg,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
=> ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).
% mult_strict_left_mono_neg
thf(fact_232_mult__strict__left__mono,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
=> ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).
% mult_strict_left_mono
thf(fact_233_mult__less__cancel__left__disj,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [C: A,A2: A,B2: A] :
( ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
= ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
& ( ord_less @ A @ A2 @ B2 ) )
| ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
& ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).
% mult_less_cancel_left_disj
thf(fact_234_mult__strict__right__mono__neg,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C: A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
=> ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).
% mult_strict_right_mono_neg
thf(fact_235_mult__strict__right__mono,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
=> ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).
% mult_strict_right_mono
thf(fact_236_mult__less__cancel__right__disj,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type2 @ A ) )
=> ! [A2: A,C: A,B2: A] :
( ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) )
= ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
& ( ord_less @ A @ A2 @ B2 ) )
| ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
& ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).
% mult_less_cancel_right_disj
thf(fact_237_linordered__comm__semiring__strict__class_Ocomm__mult__strict__left__mono,axiom,
! [A: $tType] :
( ( linord893533164strict @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
=> ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).
% linordered_comm_semiring_strict_class.comm_mult_strict_left_mono
thf(fact_238_less__Suc__eq__0__disj,axiom,
! [M: nat,N: nat] :
( ( ord_less @ nat @ M @ ( suc @ N ) )
= ( ( M
= ( zero_zero @ nat ) )
| ? [J: nat] :
( ( M
= ( suc @ J ) )
& ( ord_less @ nat @ J @ N ) ) ) ) ).
% less_Suc_eq_0_disj
thf(fact_239_gr0__implies__Suc,axiom,
! [N: nat] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
=> ? [M2: nat] :
( N
= ( suc @ M2 ) ) ) ).
% gr0_implies_Suc
thf(fact_240_gr0__conv__Suc,axiom,
! [N: nat] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
= ( ? [M3: nat] :
( N
= ( suc @ M3 ) ) ) ) ).
% gr0_conv_Suc
thf(fact_241_ex__least__nat__le,axiom,
! [P: nat > $o,N: nat] :
( ~ ( P @ ( zero_zero @ nat ) )
=> ( ( P @ N )
=> ? [K2: nat] :
( ( ord_less_eq @ nat @ K2 @ N )
& ! [I2: nat] :
( ( ord_less @ nat @ I2 @ K2 )
=> ~ ( P @ I2 ) )
& ( P @ K2 ) ) ) ) ).
% ex_least_nat_le
thf(fact_242_mult__less__mono2,axiom,
! [I3: nat,J2: nat,K: nat] :
( ( ord_less @ nat @ I3 @ J2 )
=> ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
=> ( ord_less @ nat @ ( times_times @ nat @ K @ I3 ) @ ( times_times @ nat @ K @ J2 ) ) ) ) ).
% mult_less_mono2
thf(fact_243_mult__less__mono1,axiom,
! [I3: nat,J2: nat,K: nat] :
( ( ord_less @ nat @ I3 @ J2 )
=> ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
=> ( ord_less @ nat @ ( times_times @ nat @ I3 @ K ) @ ( times_times @ nat @ J2 @ K ) ) ) ) ).
% mult_less_mono1
thf(fact_244_less__numeral__extra_I3_J,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ~ ( ord_less @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).
% less_numeral_extra(3)
thf(fact_245_gr0I,axiom,
! [N: nat] :
( ( N
!= ( zero_zero @ nat ) )
=> ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).
% gr0I
thf(fact_246_not__gr0,axiom,
! [N: nat] :
( ( ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) )
= ( N
= ( zero_zero @ nat ) ) ) ).
% not_gr0
thf(fact_247_not__less0,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).
% not_less0
thf(fact_248_less__zeroE,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).
% less_zeroE
thf(fact_249_gr__implies__not0,axiom,
! [M: nat,N: nat] :
( ( ord_less @ nat @ M @ N )
=> ( N
!= ( zero_zero @ nat ) ) ) ).
% gr_implies_not0
thf(fact_250_infinite__descent0,axiom,
! [P: nat > $o,N: nat] :
( ( P @ ( zero_zero @ nat ) )
=> ( ! [N3: nat] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ N3 )
=> ( ~ ( P @ N3 )
=> ? [M4: nat] :
( ( ord_less @ nat @ M4 @ N3 )
& ~ ( P @ M4 ) ) ) )
=> ( P @ N ) ) ) ).
% infinite_descent0
thf(fact_251_less__nat__zero__code,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).
% less_nat_zero_code
thf(fact_252_infinite__descent0__measure,axiom,
! [A: $tType,V: A > nat,P: A > $o,X3: A] :
( ! [X: A] :
( ( ( V @ X )
= ( zero_zero @ nat ) )
=> ( P @ X ) )
=> ( ! [X: A] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( V @ X ) )
=> ( ~ ( P @ X )
=> ? [Y5: A] :
( ( ord_less @ nat @ ( V @ Y5 ) @ ( V @ X ) )
& ~ ( P @ Y5 ) ) ) )
=> ( P @ X3 ) ) ) ).
% infinite_descent0_measure
thf(fact_253_gr__zeroI,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type2 @ A ) )
=> ! [N: A] :
( ( N
!= ( zero_zero @ A ) )
=> ( ord_less @ A @ ( zero_zero @ A ) @ N ) ) ) ).
% gr_zeroI
%----Type constructors (31)
thf(tcon_fun___Complete__Lattices_Ocomplete__lattice,axiom,
! [A7: $tType,A8: $tType] :
( ( comple187826305attice @ A8 @ ( type2 @ A8 ) )
=> ( comple187826305attice @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_fun___Orderings_Opreorder,axiom,
! [A7: $tType,A8: $tType] :
( ( preorder @ A8 @ ( type2 @ A8 ) )
=> ( preorder @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_fun___Orderings_Oorder,axiom,
! [A7: $tType,A8: $tType] :
( ( order @ A8 @ ( type2 @ A8 ) )
=> ( order @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_fun___Orderings_Oord,axiom,
! [A7: $tType,A8: $tType] :
( ( ord @ A8 @ ( type2 @ A8 ) )
=> ( ord @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).
thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors__cancel,axiom,
semiri1923998003cancel @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Olinordered__comm__semiring__strict,axiom,
linord893533164strict @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
canoni770627133id_add @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Olinordered__semiring__strict,axiom,
linord20386208strict @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors,axiom,
semiri1193490041visors @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Oordered__comm__semiring,axiom,
ordere1490568538miring @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Oordered__semiring__0,axiom,
ordered_semiring_0 @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Olinordered__semidom,axiom,
linordered_semidom @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Oab__semigroup__mult,axiom,
ab_semigroup_mult @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Oordered__semiring,axiom,
ordered_semiring @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Ocomm__semiring__1,axiom,
comm_semiring_1 @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Opreorder_1,axiom,
preorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Olinorder,axiom,
linorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Omonoid__add,axiom,
monoid_add @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Omult__zero,axiom,
mult_zero @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Oorder_2,axiom,
order @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Oord_3,axiom,
ord @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Ozero,axiom,
zero @ nat @ ( type2 @ nat ) ).
thf(tcon_Set_Oset___Complete__Lattices_Ocomplete__lattice_4,axiom,
! [A7: $tType] : ( comple187826305attice @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Opreorder_5,axiom,
! [A7: $tType] : ( preorder @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Oorder_6,axiom,
! [A7: $tType] : ( order @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Oord_7,axiom,
! [A7: $tType] : ( ord @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).
thf(tcon_HOL_Obool___Complete__Lattices_Ocomplete__lattice_8,axiom,
comple187826305attice @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Opreorder_9,axiom,
preorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Olinorder_10,axiom,
linorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Oorder_11,axiom,
order @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Oord_12,axiom,
ord @ $o @ ( type2 @ $o ) ).
%----Helper facts (3)
thf(help_If_3_1_T,axiom,
! [P: $o] :
( ( P = $true )
| ( P = $false ) ) ).
thf(help_If_2_1_T,axiom,
! [A: $tType,X3: A,Y4: A] :
( ( if @ A @ $false @ X3 @ Y4 )
= Y4 ) ).
thf(help_If_1_1_T,axiom,
! [A: $tType,X3: A,Y4: A] :
( ( if @ A @ $true @ X3 @ Y4 )
= X3 ) ).
%----Conjectures (1)
thf(conj_0,conjecture,
( ( the @ ( coinductive_llist @ nat )
@ ^ [Xs5: coinductive_llist @ nat] :
( ( coindu63249387sorted @ nat @ Xs5 )
& ( coindu351974385stinct @ nat @ Xs5 )
& ( ( coinductive_lset @ nat @ Xs5 )
= ( collect @ nat @ hammin1195055315smooth ) ) ) )
= hammin2015774020amming ) ).
%------------------------------------------------------------------------------