TPTP Problem File: DAT153^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : DAT153^1 : TPTP v9.0.0. Released v7.0.0.
% Domain : Data Structures
% Problem : Coinductive stream 491
% 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 : coinductive_stream__491.p [Bla16]
% Status : Theorem
% Rating : 0.33 v8.1.0, 0.25 v7.5.0, 0.00 v7.1.0
% Syntax : Number of formulae : 351 ( 145 unt; 57 typ; 0 def)
% Number of atoms : 785 ( 302 equ; 0 cnn)
% Maximal formula atoms : 24 ( 2 avg)
% Number of connectives : 3264 ( 100 ~; 21 |; 33 &;2811 @)
% ( 0 <=>; 299 =>; 0 <=; 0 <~>)
% Maximal formula depth : 15 ( 6 avg)
% Number of types : 5 ( 4 usr)
% Number of type conns : 180 ( 180 >; 0 *; 0 +; 0 <<)
% Number of symbols : 56 ( 53 usr; 3 con; 0-4 aty)
% Number of variables : 784 ( 63 ^; 649 !; 27 ?; 784 :)
% ( 45 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_THM_EQU_NAR
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2016-07-13 15:15:11.527
%------------------------------------------------------------------------------
%----Could-be-implicit typings (7)
thf(ty_t_Extended__Nat_Oenat,type,
extended_enat: $tType ).
thf(ty_t_Stream_Ostream,type,
stream: $tType > $tType ).
thf(ty_t_Set_Oset,type,
set: $tType > $tType ).
thf(ty_t_Nat_Onat,type,
nat: $tType ).
thf(ty_t_Int_Oint,type,
int: $tType ).
thf(ty_t_itself,type,
itself: $tType > $tType ).
thf(ty_tf_a,type,
a: $tType ).
%----Explicit typings (50)
thf(sy_cl_Groups_Ozero,type,
zero:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Fields_Ofield,type,
field:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Omult__zero,type,
mult_zero:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Osemiring__1,type,
semiring_1:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Nat_Osemiring__char__0,type,
semiring_char_0:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Fields_Odivision__ring,type,
division_ring:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Osemigroup__mult,type,
semigroup_mult:
!>[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__idom,type,
linordered_idom:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__ring,type,
linordered_ring:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Fields_Olinordered__field,type,
linordered_field:
!>[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_Olinordered__ring__strict,type,
linord581940658strict:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Archimedean__Field_Ofloor__ceiling,type,
archim1727834104eiling:
!>[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_Archimedean__Field_Oarchimedean__field,type,
archim1804426504_field:
!>[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_Archimedean__Field_Oceiling,type,
archimedean_ceiling:
!>[A: $tType] : ( A > int ) ).
thf(sy_c_Coinductive__Stream__Mirabelle__dydkjoctes_Oscount,type,
coindu1365464361scount:
!>[S: $tType] : ( ( ( stream @ S ) > $o ) > ( stream @ S ) > extended_enat ) ).
thf(sy_c_Coinductive__Stream__Mirabelle__dydkjoctes_Osfirst,type,
coindu76177514sfirst:
!>[S: $tType] : ( ( ( stream @ S ) > $o ) > ( stream @ S ) > extended_enat ) ).
thf(sy_c_Extended__Nat_Oenat,type,
extended_enat2: nat > extended_enat ).
thf(sy_c_Extended__Nat_Oenat_Ocase__enat,type,
extended_case_enat:
!>[T: $tType] : ( ( nat > T ) > T > extended_enat > T ) ).
thf(sy_c_Extended__Nat_Oenat_Orec__enat,type,
extended_rec_enat:
!>[T: $tType] : ( ( nat > T ) > T > extended_enat > T ) ).
thf(sy_c_Extended__Nat_Oenat_Osize__enat,type,
extended_size_enat: extended_enat > nat ).
thf(sy_c_Extended__Nat_Oinfinity__class_Oinfinity,type,
extend1396239628finity:
!>[A: $tType] : A ).
thf(sy_c_Extended__Nat_Othe__enat,type,
extended_the_enat: extended_enat > nat ).
thf(sy_c_Fields_Oinverse__class_Oinverse,type,
inverse_inverse:
!>[A: $tType] : ( A > A ) ).
thf(sy_c_Finite__Set_Ocard,type,
finite_card:
!>[B: $tType] : ( ( set @ B ) > nat ) ).
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_If,type,
if:
!>[A: $tType] : ( $o > A > A > A ) ).
thf(sy_c_Int_Onat,type,
nat2: int > nat ).
thf(sy_c_Linear__Temporal__Logic__on__Streams_OUNTIL,type,
linear1341015445_UNTIL:
!>[A: $tType] : ( ( ( stream @ A ) > $o ) > ( ( stream @ A ) > $o ) > ( stream @ A ) > $o ) ).
thf(sy_c_Linear__Temporal__Logic__on__Streams_Oalw,type,
linear1386806755on_alw:
!>[A: $tType] : ( ( ( stream @ A ) > $o ) > ( stream @ A ) > $o ) ).
thf(sy_c_Linear__Temporal__Logic__on__Streams_Oev,type,
linear505997466_on_ev:
!>[A: $tType] : ( ( ( stream @ A ) > $o ) > ( stream @ A ) > $o ) ).
thf(sy_c_Linear__Temporal__Logic__on__Streams_Owait,type,
linear1335279038n_wait:
!>[A: $tType] : ( ( ( stream @ A ) > $o ) > ( stream @ A ) > nat ) ).
thf(sy_c_Nat_Osemiring__1__class_Oof__nat,type,
semiring_1_of_nat:
!>[A: $tType] : ( nat > A ) ).
thf(sy_c_Nat_Osize__class_Osize,type,
size_size:
!>[A: $tType] : ( A > nat ) ).
thf(sy_c_Nat__Transfer_Otransfer__morphism,type,
nat_tr1645093318rphism:
!>[B: $tType,A: $tType] : ( ( B > A ) > ( B > $o ) > $o ) ).
thf(sy_c_Orderings_Oord__class_Oless,type,
ord_less:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Pure_Otype,type,
type:
!>[A: $tType] : ( itself @ A ) ).
thf(sy_c_Set_OCollect,type,
collect:
!>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
thf(sy_c_Stream_Osdrop,type,
sdrop:
!>[A: $tType] : ( nat > ( stream @ A ) > ( stream @ A ) ) ).
thf(sy_c_member,type,
member:
!>[A: $tType] : ( A > ( set @ A ) > $o ) ).
thf(sy_v_P,type,
p: ( stream @ a ) > $o ).
thf(sy_v__092_060omega_062_H____,type,
omega: stream @ a ).
%----Relevant facts (253)
thf(fact_0__C0_Oprems_C,axiom,
( linear1341015445_UNTIL @ a
@ ^ [Xs: stream @ a] :
~ ( p @ Xs )
@ ( linear1386806755on_alw @ a @ p )
@ omega ) ).
% "0.prems"
thf(fact_1_less__sfirstD,axiom,
! [A: $tType,N: nat,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( ord_less @ extended_enat @ ( extended_enat2 @ N ) @ ( coindu76177514sfirst @ A @ P @ Omega ) )
=> ~ ( P @ ( sdrop @ A @ N @ Omega ) ) ) ).
% less_sfirstD
thf(fact_2_not__gr__zero,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type @ A ) )
=> ! [N: A] :
( ( ~ ( ord_less @ A @ ( zero_zero @ A ) @ N ) )
= ( N
= ( zero_zero @ A ) ) ) ) ).
% not_gr_zero
thf(fact_3_enat_Oinject,axiom,
! [Nat: nat,Nat2: nat] :
( ( ( extended_enat2 @ Nat )
= ( extended_enat2 @ Nat2 ) )
= ( Nat = Nat2 ) ) ).
% enat.inject
thf(fact_4_sdrop_Osimps_I1_J,axiom,
! [A: $tType,S2: stream @ A] :
( ( sdrop @ A @ ( zero_zero @ nat ) @ S2 )
= S2 ) ).
% sdrop.simps(1)
thf(fact_5_chain__incr,axiom,
! [A: $tType,Y: A > extended_enat,K: nat] :
( ! [I: A] :
? [J: A] : ( ord_less @ extended_enat @ ( Y @ I ) @ ( Y @ J ) )
=> ? [J2: A] : ( ord_less @ extended_enat @ ( extended_enat2 @ K ) @ ( Y @ J2 ) ) ) ).
% chain_incr
thf(fact_6_enat__iless,axiom,
! [N: extended_enat,M: nat] :
( ( ord_less @ extended_enat @ N @ ( extended_enat2 @ M ) )
=> ? [K2: nat] :
( N
= ( extended_enat2 @ K2 ) ) ) ).
% enat_iless
thf(fact_7_less__numeral__extra_I3_J,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type @ A ) )
=> ~ ( ord_less @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).
% less_numeral_extra(3)
thf(fact_8_gr__zeroI,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type @ A ) )
=> ! [N: A] :
( ( N
!= ( zero_zero @ A ) )
=> ( ord_less @ A @ ( zero_zero @ A ) @ N ) ) ) ).
% gr_zeroI
thf(fact_9_not__less__zero,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type @ A ) )
=> ! [N: A] :
~ ( ord_less @ A @ N @ ( zero_zero @ A ) ) ) ).
% not_less_zero
thf(fact_10_gr__implies__not__zero,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type @ A ) )
=> ! [M: A,N: A] :
( ( ord_less @ A @ M @ N )
=> ( N
!= ( zero_zero @ A ) ) ) ) ).
% gr_implies_not_zero
thf(fact_11_zero__less__iff__neq__zero,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type @ A ) )
=> ! [N: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ N )
= ( N
!= ( zero_zero @ A ) ) ) ) ).
% zero_less_iff_neq_zero
thf(fact_12_fun__cong__unused__0,axiom,
! [A: $tType,B: $tType,C: $tType] :
( ( zero @ B @ ( type @ B ) )
=> ! [F: ( A > B ) > C,G: C] :
( ( F
= ( ^ [X: A > B] : G ) )
=> ( ( F
@ ^ [X: A] : ( zero_zero @ B ) )
= G ) ) ) ).
% fun_cong_unused_0
thf(fact_13_i0__less,axiom,
! [N: extended_enat] :
( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ N )
= ( N
!= ( zero_zero @ extended_enat ) ) ) ).
% i0_less
thf(fact_14_sfirst__0,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( P @ Omega )
=> ( ( coindu76177514sfirst @ A @ P @ Omega )
= ( zero_zero @ extended_enat ) ) ) ).
% sfirst_0
thf(fact_15_enat__ord__simps_I2_J,axiom,
! [M: nat,N: nat] :
( ( ord_less @ extended_enat @ ( extended_enat2 @ M ) @ ( extended_enat2 @ N ) )
= ( ord_less @ nat @ M @ N ) ) ).
% enat_ord_simps(2)
thf(fact_16_not__iless0,axiom,
! [N: extended_enat] :
~ ( ord_less @ extended_enat @ N @ ( zero_zero @ extended_enat ) ) ).
% not_iless0
thf(fact_17_zero__enat__def,axiom,
( ( zero_zero @ extended_enat )
= ( extended_enat2 @ ( zero_zero @ nat ) ) ) ).
% zero_enat_def
thf(fact_18_enat__0__iff_I1_J,axiom,
! [X2: nat] :
( ( ( extended_enat2 @ X2 )
= ( zero_zero @ extended_enat ) )
= ( X2
= ( zero_zero @ nat ) ) ) ).
% enat_0_iff(1)
thf(fact_19_enat__0__iff_I2_J,axiom,
! [X2: nat] :
( ( ( zero_zero @ extended_enat )
= ( extended_enat2 @ X2 ) )
= ( X2
= ( zero_zero @ nat ) ) ) ).
% enat_0_iff(2)
thf(fact_20_less__enatE,axiom,
! [N: extended_enat,M: nat] :
( ( ord_less @ extended_enat @ N @ ( extended_enat2 @ M ) )
=> ~ ! [K2: nat] :
( ( N
= ( extended_enat2 @ K2 ) )
=> ~ ( ord_less @ nat @ K2 @ M ) ) ) ).
% less_enatE
thf(fact_21_sfirst__eq__0,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( ( coindu76177514sfirst @ A @ P @ Omega )
= ( zero_zero @ extended_enat ) )
= ( P @ Omega ) ) ).
% sfirst_eq_0
thf(fact_22_zero__reorient,axiom,
! [A: $tType] :
( ( zero @ A @ ( type @ A ) )
=> ! [X2: A] :
( ( ( zero_zero @ A )
= X2 )
= ( X2
= ( zero_zero @ A ) ) ) ) ).
% zero_reorient
thf(fact_23_enat__less__induct,axiom,
! [P: extended_enat > $o,N: extended_enat] :
( ! [N2: extended_enat] :
( ! [M2: extended_enat] :
( ( ord_less @ extended_enat @ M2 @ N2 )
=> ( P @ M2 ) )
=> ( P @ N2 ) )
=> ( P @ N ) ) ).
% enat_less_induct
thf(fact_24_enat_Osize_I1_J,axiom,
! [Nat: nat] :
( ( extended_size_enat @ ( extended_enat2 @ Nat ) )
= ( zero_zero @ nat ) ) ).
% enat.size(1)
thf(fact_25_until__false,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o] :
( ( linear1341015445_UNTIL @ A @ Phi
@ ^ [Xs: stream @ A] : $false )
= ( linear1386806755on_alw @ A @ Phi ) ) ).
% until_false
thf(fact_26_alw__alw,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o] :
( ( linear1386806755on_alw @ A @ ( linear1386806755on_alw @ A @ Phi ) )
= ( linear1386806755on_alw @ A @ Phi ) ) ).
% alw_alw
thf(fact_27_neq0__conv,axiom,
! [N: nat] :
( ( N
!= ( zero_zero @ nat ) )
= ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).
% neq0_conv
thf(fact_28_alw__iff__sdrop,axiom,
! [A: $tType] :
( ( linear1386806755on_alw @ A )
= ( ^ [P2: ( stream @ A ) > $o,Omega2: stream @ A] :
! [M3: nat] : ( P2 @ ( sdrop @ A @ M3 @ Omega2 ) ) ) ) ).
% alw_iff_sdrop
thf(fact_29_alw__sdrop,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,N: nat] :
( ( linear1386806755on_alw @ A @ Phi @ Xs2 )
=> ( linear1386806755on_alw @ A @ Phi @ ( sdrop @ A @ N @ Xs2 ) ) ) ).
% alw_sdrop
thf(fact_30_enat_Osize_I3_J,axiom,
! [Nat: nat] :
( ( size_size @ extended_enat @ ( extended_enat2 @ Nat ) )
= ( zero_zero @ nat ) ) ).
% enat.size(3)
thf(fact_31_enat_Osimps_I6_J,axiom,
! [T: $tType,F1: nat > T,F2: T,Nat: nat] :
( ( extended_rec_enat @ T @ F1 @ F2 @ ( extended_enat2 @ Nat ) )
= ( F1 @ Nat ) ) ).
% enat.simps(6)
thf(fact_32_alw__False,axiom,
! [A: $tType,Omega: stream @ A] :
~ ( linear1386806755on_alw @ A
@ ^ [X: stream @ A] : $false
@ Omega ) ).
% alw_False
thf(fact_33_alw__aand,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o] :
( ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
( ( Phi @ Xs )
& ( Psi @ Xs ) ) )
= ( ^ [Xs: stream @ A] :
( ( linear1386806755on_alw @ A @ Phi @ Xs )
& ( linear1386806755on_alw @ A @ Psi @ Xs ) ) ) ) ).
% alw_aand
thf(fact_34_alw__mp,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
( ( linear1386806755on_alw @ A @ Phi @ Xs2 )
=> ( ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
( ( Phi @ Xs )
=> ( Psi @ Xs ) )
@ Xs2 )
=> ( linear1386806755on_alw @ A @ Psi @ Xs2 ) ) ) ).
% alw_mp
thf(fact_35_nat__neq__iff,axiom,
! [M: nat,N: nat] :
( ( M != N )
= ( ( ord_less @ nat @ M @ N )
| ( ord_less @ nat @ N @ M ) ) ) ).
% nat_neq_iff
thf(fact_36_less__not__refl,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ N ) ).
% less_not_refl
thf(fact_37_less__not__refl2,axiom,
! [N: nat,M: nat] :
( ( ord_less @ nat @ N @ M )
=> ( M != N ) ) ).
% less_not_refl2
thf(fact_38_less__not__refl3,axiom,
! [S2: nat,T2: nat] :
( ( ord_less @ nat @ S2 @ T2 )
=> ( S2 != T2 ) ) ).
% less_not_refl3
thf(fact_39_measure__induct,axiom,
! [A: $tType,F: A > nat,P: A > $o,A2: A] :
( ! [X3: A] :
( ! [Y2: A] :
( ( ord_less @ nat @ ( F @ Y2 ) @ ( F @ X3 ) )
=> ( P @ Y2 ) )
=> ( P @ X3 ) )
=> ( P @ A2 ) ) ).
% measure_induct
thf(fact_40_less__irrefl__nat,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ N ) ).
% less_irrefl_nat
thf(fact_41_nat__less__induct,axiom,
! [P: nat > $o,N: nat] :
( ! [N2: nat] :
( ! [M2: nat] :
( ( ord_less @ nat @ M2 @ N2 )
=> ( P @ M2 ) )
=> ( P @ N2 ) )
=> ( P @ N ) ) ).
% nat_less_induct
thf(fact_42_infinite__descent,axiom,
! [P: nat > $o,N: nat] :
( ! [N2: nat] :
( ~ ( P @ N2 )
=> ? [M2: nat] :
( ( ord_less @ nat @ M2 @ N2 )
& ~ ( P @ M2 ) ) )
=> ( P @ N ) ) ).
% infinite_descent
thf(fact_43_linorder__neqE__nat,axiom,
! [X2: nat,Y3: nat] :
( ( X2 != Y3 )
=> ( ~ ( ord_less @ nat @ X2 @ Y3 )
=> ( ord_less @ nat @ Y3 @ X2 ) ) ) ).
% linorder_neqE_nat
thf(fact_44_mem__Collect__eq,axiom,
! [A: $tType,A2: A,P: A > $o] :
( ( member @ A @ A2 @ ( collect @ A @ P ) )
= ( P @ A2 ) ) ).
% mem_Collect_eq
thf(fact_45_Collect__mem__eq,axiom,
! [A: $tType,A3: set @ A] :
( ( collect @ A
@ ^ [X: A] : ( member @ A @ X @ A3 ) )
= A3 ) ).
% Collect_mem_eq
thf(fact_46_Collect__cong,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ! [X3: A] :
( ( P @ X3 )
= ( Q @ X3 ) )
=> ( ( collect @ A @ P )
= ( collect @ A @ Q ) ) ) ).
% Collect_cong
thf(fact_47_ext,axiom,
! [B: $tType,A: $tType,F: A > B,G: A > B] :
( ! [X3: A] :
( ( F @ X3 )
= ( G @ X3 ) )
=> ( F = G ) ) ).
% ext
thf(fact_48_measure__induct__rule,axiom,
! [A: $tType,F: A > nat,P: A > $o,A2: A] :
( ! [X3: A] :
( ! [Y2: A] :
( ( ord_less @ nat @ ( F @ Y2 ) @ ( F @ X3 ) )
=> ( P @ Y2 ) )
=> ( P @ X3 ) )
=> ( P @ A2 ) ) ).
% measure_induct_rule
thf(fact_49_infinite__descent__measure,axiom,
! [A: $tType,P: A > $o,V: A > nat,X2: A] :
( ! [X3: A] :
( ~ ( P @ X3 )
=> ? [Y2: A] :
( ( ord_less @ nat @ ( V @ Y2 ) @ ( V @ X3 ) )
& ~ ( P @ Y2 ) ) )
=> ( P @ X2 ) ) ).
% infinite_descent_measure
thf(fact_50_size__enat__overloaded__def,axiom,
( ( size_size @ extended_enat )
= ( extended_rec_enat @ nat
@ ^ [X: nat] : ( zero_zero @ nat )
@ ( zero_zero @ nat ) ) ) ).
% size_enat_overloaded_def
thf(fact_51_size__enat__def,axiom,
( extended_size_enat
= ( extended_rec_enat @ nat
@ ^ [X: nat] : ( zero_zero @ nat )
@ ( zero_zero @ nat ) ) ) ).
% size_enat_def
thf(fact_52_gr0I,axiom,
! [N: nat] :
( ( N
!= ( zero_zero @ nat ) )
=> ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).
% gr0I
thf(fact_53_not__gr0,axiom,
! [N: nat] :
( ( ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) )
= ( N
= ( zero_zero @ nat ) ) ) ).
% not_gr0
thf(fact_54_not__less0,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).
% not_less0
thf(fact_55_less__zeroE,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).
% less_zeroE
thf(fact_56_gr__implies__not0,axiom,
! [M: nat,N: nat] :
( ( ord_less @ nat @ M @ N )
=> ( N
!= ( zero_zero @ nat ) ) ) ).
% gr_implies_not0
thf(fact_57_infinite__descent0,axiom,
! [P: nat > $o,N: nat] :
( ( P @ ( zero_zero @ nat ) )
=> ( ! [N2: nat] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
=> ( ~ ( P @ N2 )
=> ? [M2: nat] :
( ( ord_less @ nat @ M2 @ N2 )
& ~ ( P @ M2 ) ) ) )
=> ( P @ N ) ) ) ).
% infinite_descent0
thf(fact_58_less__nat__zero__code,axiom,
! [N: nat] :
~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).
% less_nat_zero_code
thf(fact_59_infinite__descent0__measure,axiom,
! [A: $tType,V: A > nat,P: A > $o,X2: A] :
( ! [X3: A] :
( ( ( V @ X3 )
= ( zero_zero @ nat ) )
=> ( P @ X3 ) )
=> ( ! [X3: A] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( V @ X3 ) )
=> ( ~ ( P @ X3 )
=> ? [Y2: A] :
( ( ord_less @ nat @ ( V @ Y2 ) @ ( V @ X3 ) )
& ~ ( P @ Y2 ) ) ) )
=> ( P @ X2 ) ) ) ).
% infinite_descent0_measure
thf(fact_60_all__imp__alw,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A] :
( ! [X1: stream @ A] : ( Phi @ X1 )
=> ( linear1386806755on_alw @ A @ Phi @ Xs2 ) ) ).
% all_imp_alw
thf(fact_61_alw__mono,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
( ( linear1386806755on_alw @ A @ Phi @ Xs2 )
=> ( ! [Xs3: stream @ A] :
( ( Phi @ Xs3 )
=> ( Psi @ Xs3 ) )
=> ( linear1386806755on_alw @ A @ Psi @ Xs2 ) ) ) ).
% alw_mono
thf(fact_62_alw__cong,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A,Q1: ( stream @ A ) > $o,Q2: ( stream @ A ) > $o] :
( ( linear1386806755on_alw @ A @ P @ Omega )
=> ( ! [Omega3: stream @ A] :
( ( P @ Omega3 )
=> ( ( Q1 @ Omega3 )
= ( Q2 @ Omega3 ) ) )
=> ( ( linear1386806755on_alw @ A @ Q1 @ Omega )
= ( linear1386806755on_alw @ A @ Q2 @ Omega ) ) ) ) ).
% alw_cong
thf(fact_63_alw__alwD,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( linear1386806755on_alw @ A @ P @ Omega )
=> ( linear1386806755on_alw @ A @ ( linear1386806755on_alw @ A @ P ) @ Omega ) ) ).
% alw_alwD
thf(fact_64_alwD,axiom,
! [A: $tType,P: ( stream @ A ) > $o,X2: stream @ A] :
( ( linear1386806755on_alw @ A @ P @ X2 )
=> ( P @ X2 ) ) ).
% alwD
thf(fact_65_until__monoR,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Psi_1: ( stream @ A ) > $o,Xs2: stream @ A,Psi_2: ( stream @ A ) > $o] :
( ( linear1341015445_UNTIL @ A @ Phi @ Psi_1 @ Xs2 )
=> ( ! [Xs3: stream @ A] :
( ( Psi_1 @ Xs3 )
=> ( Psi_2 @ Xs3 ) )
=> ( linear1341015445_UNTIL @ A @ Phi @ Psi_2 @ Xs2 ) ) ) ).
% until_monoR
thf(fact_66_until__monoL,axiom,
! [A: $tType,Phi_1: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o,Xs2: stream @ A,Phi_2: ( stream @ A ) > $o] :
( ( linear1341015445_UNTIL @ A @ Phi_1 @ Psi @ Xs2 )
=> ( ! [Xs3: stream @ A] :
( ( Phi_1 @ Xs3 )
=> ( Phi_2 @ Xs3 ) )
=> ( linear1341015445_UNTIL @ A @ Phi_2 @ Psi @ Xs2 ) ) ) ).
% until_monoL
thf(fact_67_until__mono,axiom,
! [A: $tType,Phi_1: ( stream @ A ) > $o,Psi_1: ( stream @ A ) > $o,Xs2: stream @ A,Phi_2: ( stream @ A ) > $o,Psi_2: ( stream @ A ) > $o] :
( ( linear1341015445_UNTIL @ A @ Phi_1 @ Psi_1 @ Xs2 )
=> ( ! [Xs3: stream @ A] :
( ( Phi_1 @ Xs3 )
=> ( Phi_2 @ Xs3 ) )
=> ( ! [Xs3: stream @ A] :
( ( Psi_1 @ Xs3 )
=> ( Psi_2 @ Xs3 ) )
=> ( linear1341015445_UNTIL @ A @ Phi_2 @ Psi_2 @ Xs2 ) ) ) ) ).
% until_mono
thf(fact_68_UNTIL_Obase,axiom,
! [A: $tType,Psi: ( stream @ A ) > $o,Xs2: stream @ A,Phi: ( stream @ A ) > $o] :
( ( Psi @ Xs2 )
=> ( linear1341015445_UNTIL @ A @ Phi @ Psi @ Xs2 ) ) ).
% UNTIL.base
thf(fact_69_of__nat__0__less__iff,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type @ A ) )
=> ! [N: nat] :
( ( ord_less @ A @ ( zero_zero @ A ) @ ( semiring_1_of_nat @ A @ N ) )
= ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ) ).
% of_nat_0_less_iff
thf(fact_70_less__enat__def,axiom,
( ( ord_less @ extended_enat )
= ( ^ [M3: extended_enat,N3: extended_enat] :
( extended_case_enat @ $o
@ ^ [M1: nat] : ( extended_case_enat @ $o @ ( ord_less @ nat @ M1 ) @ $true @ N3 )
@ $false
@ M3 ) ) ) ).
% less_enat_def
thf(fact_71_case__enat__def,axiom,
! [T: $tType] :
( ( extended_case_enat @ T )
= ( extended_rec_enat @ T ) ) ).
% case_enat_def
thf(fact_72_enat_Osimps_I4_J,axiom,
! [T: $tType,F1: nat > T,F2: T,Nat: nat] :
( ( extended_case_enat @ T @ F1 @ F2 @ ( extended_enat2 @ Nat ) )
= ( F1 @ Nat ) ) ).
% enat.simps(4)
thf(fact_73_scount__eq__0__iff,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( ( coindu1365464361scount @ A @ P @ Omega )
= ( zero_zero @ extended_enat ) )
= ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
~ ( P @ Xs )
@ Omega ) ) ).
% scount_eq_0_iff
thf(fact_74_scount__eq__0I,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
~ ( P @ Xs )
@ Omega )
=> ( ( coindu1365464361scount @ A @ P @ Omega )
= ( zero_zero @ extended_enat ) ) ) ).
% scount_eq_0I
thf(fact_75_scount__eq__0D,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( ( coindu1365464361scount @ A @ P @ Omega )
= ( zero_zero @ extended_enat ) )
=> ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
~ ( P @ Xs )
@ Omega ) ) ).
% scount_eq_0D
thf(fact_76_enat_Osize_I4_J,axiom,
( ( size_size @ extended_enat @ ( extend1396239628finity @ extended_enat ) )
= ( zero_zero @ nat ) ) ).
% enat.size(4)
thf(fact_77_of__nat__eq__iff,axiom,
! [A: $tType] :
( ( semiring_char_0 @ A @ ( type @ A ) )
=> ! [M: nat,N: nat] :
( ( ( semiring_1_of_nat @ A @ M )
= ( semiring_1_of_nat @ A @ N ) )
= ( M = N ) ) ) ).
% of_nat_eq_iff
thf(fact_78_not__infinity__eq,axiom,
! [X2: extended_enat] :
( ( X2
!= ( extend1396239628finity @ extended_enat ) )
= ( ? [I2: nat] :
( X2
= ( extended_enat2 @ I2 ) ) ) ) ).
% not_infinity_eq
thf(fact_79_not__enat__eq,axiom,
! [X2: extended_enat] :
( ( ! [Y4: nat] :
( X2
!= ( extended_enat2 @ Y4 ) ) )
= ( X2
= ( extend1396239628finity @ extended_enat ) ) ) ).
% not_enat_eq
thf(fact_80_enat__ord__simps_I4_J,axiom,
! [Q3: extended_enat] :
( ( ord_less @ extended_enat @ Q3 @ ( extend1396239628finity @ extended_enat ) )
= ( Q3
!= ( extend1396239628finity @ extended_enat ) ) ) ).
% enat_ord_simps(4)
thf(fact_81_enat__ord__simps_I6_J,axiom,
! [Q3: extended_enat] :
~ ( ord_less @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ Q3 ) ).
% enat_ord_simps(6)
thf(fact_82_enat_Osimps_I5_J,axiom,
! [T: $tType,F1: nat > T,F2: T] :
( ( extended_case_enat @ T @ F1 @ F2 @ ( extend1396239628finity @ extended_enat ) )
= F2 ) ).
% enat.simps(5)
thf(fact_83_enat_Osimps_I7_J,axiom,
! [T: $tType,F1: nat > T,F2: T] :
( ( extended_rec_enat @ T @ F1 @ F2 @ ( extend1396239628finity @ extended_enat ) )
= F2 ) ).
% enat.simps(7)
thf(fact_84_of__nat__eq__0__iff,axiom,
! [A: $tType] :
( ( semiring_char_0 @ A @ ( type @ A ) )
=> ! [M: nat] :
( ( ( semiring_1_of_nat @ A @ M )
= ( zero_zero @ A ) )
= ( M
= ( zero_zero @ nat ) ) ) ) ).
% of_nat_eq_0_iff
thf(fact_85_of__nat__0__eq__iff,axiom,
! [A: $tType] :
( ( semiring_char_0 @ A @ ( type @ A ) )
=> ! [N: nat] :
( ( ( zero_zero @ A )
= ( semiring_1_of_nat @ A @ N ) )
= ( ( zero_zero @ nat )
= N ) ) ) ).
% of_nat_0_eq_iff
thf(fact_86_of__nat__0,axiom,
! [A: $tType] :
( ( semiring_1 @ A @ ( type @ A ) )
=> ( ( semiring_1_of_nat @ A @ ( zero_zero @ nat ) )
= ( zero_zero @ A ) ) ) ).
% of_nat_0
thf(fact_87_of__nat__less__iff,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type @ A ) )
=> ! [M: nat,N: nat] :
( ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
= ( ord_less @ nat @ M @ N ) ) ) ).
% of_nat_less_iff
thf(fact_88_case__enat__0,axiom,
! [A: $tType,F: nat > A,I3: A] :
( ( extended_case_enat @ A @ F @ I3 @ ( zero_zero @ extended_enat ) )
= ( F @ ( zero_zero @ nat ) ) ) ).
% case_enat_0
thf(fact_89_enat_Osize_I2_J,axiom,
( ( extended_size_enat @ ( extend1396239628finity @ extended_enat ) )
= ( zero_zero @ nat ) ) ).
% enat.size(2)
thf(fact_90_of__nat__eq__enat,axiom,
( ( semiring_1_of_nat @ extended_enat )
= extended_enat2 ) ).
% of_nat_eq_enat
thf(fact_91_enat__ex__split,axiom,
( ( ^ [P3: extended_enat > $o] :
? [X4: extended_enat] : ( P3 @ X4 ) )
= ( ^ [P2: extended_enat > $o] :
( ( P2 @ ( extend1396239628finity @ extended_enat ) )
| ? [X: nat] : ( P2 @ ( extended_enat2 @ X ) ) ) ) ) ).
% enat_ex_split
thf(fact_92_enat_Oinducts,axiom,
! [P: extended_enat > $o,Enat: extended_enat] :
( ! [Nat3: nat] : ( P @ ( extended_enat2 @ Nat3 ) )
=> ( ( P @ ( extend1396239628finity @ extended_enat ) )
=> ( P @ Enat ) ) ) ).
% enat.inducts
thf(fact_93_enat_Oexhaust,axiom,
! [Y3: extended_enat] :
( ! [Nat3: nat] :
( Y3
!= ( extended_enat2 @ Nat3 ) )
=> ( Y3
= ( extend1396239628finity @ extended_enat ) ) ) ).
% enat.exhaust
thf(fact_94_enat3__cases,axiom,
! [Y3: extended_enat,Ya: extended_enat,Yb: extended_enat] :
( ( ? [Nat3: nat] :
( Y3
= ( extended_enat2 @ Nat3 ) )
=> ( ? [Nata: nat] :
( Ya
= ( extended_enat2 @ Nata ) )
=> ! [Natb: nat] :
( Yb
!= ( extended_enat2 @ Natb ) ) ) )
=> ( ( ? [Nat3: nat] :
( Y3
= ( extended_enat2 @ Nat3 ) )
=> ( ? [Nata: nat] :
( Ya
= ( extended_enat2 @ Nata ) )
=> ( Yb
!= ( extend1396239628finity @ extended_enat ) ) ) )
=> ( ( ? [Nat3: nat] :
( Y3
= ( extended_enat2 @ Nat3 ) )
=> ( ( Ya
= ( extend1396239628finity @ extended_enat ) )
=> ! [Nata: nat] :
( Yb
!= ( extended_enat2 @ Nata ) ) ) )
=> ( ( ? [Nat3: nat] :
( Y3
= ( extended_enat2 @ Nat3 ) )
=> ( ( Ya
= ( extend1396239628finity @ extended_enat ) )
=> ( Yb
!= ( extend1396239628finity @ extended_enat ) ) ) )
=> ( ( ( Y3
= ( extend1396239628finity @ extended_enat ) )
=> ( ? [Nat3: nat] :
( Ya
= ( extended_enat2 @ Nat3 ) )
=> ! [Nata: nat] :
( Yb
!= ( extended_enat2 @ Nata ) ) ) )
=> ( ( ( Y3
= ( extend1396239628finity @ extended_enat ) )
=> ( ? [Nat3: nat] :
( Ya
= ( extended_enat2 @ Nat3 ) )
=> ( Yb
!= ( extend1396239628finity @ extended_enat ) ) ) )
=> ( ( ( Y3
= ( extend1396239628finity @ extended_enat ) )
=> ( ( Ya
= ( extend1396239628finity @ extended_enat ) )
=> ! [Nat3: nat] :
( Yb
!= ( extended_enat2 @ Nat3 ) ) ) )
=> ~ ( ( Y3
= ( extend1396239628finity @ extended_enat ) )
=> ( ( Ya
= ( extend1396239628finity @ extended_enat ) )
=> ( Yb
!= ( extend1396239628finity @ extended_enat ) ) ) ) ) ) ) ) ) ) ) ).
% enat3_cases
thf(fact_95_enat2__cases,axiom,
! [Y3: extended_enat,Ya: extended_enat] :
( ( ? [Nat3: nat] :
( Y3
= ( extended_enat2 @ Nat3 ) )
=> ! [Nata: nat] :
( Ya
!= ( extended_enat2 @ Nata ) ) )
=> ( ( ? [Nat3: nat] :
( Y3
= ( extended_enat2 @ Nat3 ) )
=> ( Ya
!= ( extend1396239628finity @ extended_enat ) ) )
=> ( ( ( Y3
= ( extend1396239628finity @ extended_enat ) )
=> ! [Nat3: nat] :
( Ya
!= ( extended_enat2 @ Nat3 ) ) )
=> ~ ( ( Y3
= ( extend1396239628finity @ extended_enat ) )
=> ( Ya
!= ( extend1396239628finity @ extended_enat ) ) ) ) ) ) ).
% enat2_cases
thf(fact_96_enat_Odistinct_I1_J,axiom,
! [Nat: nat] :
( ( extended_enat2 @ Nat )
!= ( extend1396239628finity @ extended_enat ) ) ).
% enat.distinct(1)
thf(fact_97_enat_Odistinct_I2_J,axiom,
! [Nat4: nat] :
( ( extend1396239628finity @ extended_enat )
!= ( extended_enat2 @ Nat4 ) ) ).
% enat.distinct(2)
thf(fact_98_infinity__ne__i0,axiom,
( ( extend1396239628finity @ extended_enat )
!= ( zero_zero @ extended_enat ) ) ).
% infinity_ne_i0
thf(fact_99_of__nat__less__0__iff,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type @ A ) )
=> ! [M: nat] :
~ ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( zero_zero @ A ) ) ) ).
% of_nat_less_0_iff
thf(fact_100_of__nat__less__imp__less,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type @ A ) )
=> ! [M: nat,N: nat] :
( ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
=> ( ord_less @ nat @ M @ N ) ) ) ).
% of_nat_less_imp_less
thf(fact_101_less__imp__of__nat__less,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type @ A ) )
=> ! [M: nat,N: nat] :
( ( ord_less @ nat @ M @ N )
=> ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) ) ) ) ).
% less_imp_of_nat_less
thf(fact_102_infinity__ilessE,axiom,
! [M: nat] :
~ ( ord_less @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ ( extended_enat2 @ M ) ) ).
% infinity_ilessE
thf(fact_103_less__infinityE,axiom,
! [N: extended_enat] :
( ( ord_less @ extended_enat @ N @ ( extend1396239628finity @ extended_enat ) )
=> ~ ! [K2: nat] :
( N
!= ( extended_enat2 @ K2 ) ) ) ).
% less_infinityE
thf(fact_104_enat__ord__code_I4_J,axiom,
! [M: nat] : ( ord_less @ extended_enat @ ( extended_enat2 @ M ) @ ( extend1396239628finity @ extended_enat ) ) ).
% enat_ord_code(4)
thf(fact_105_zero__less__imp__eq__int,axiom,
! [K: int] :
( ( ord_less @ int @ ( zero_zero @ int ) @ K )
=> ? [N2: nat] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
& ( K
= ( semiring_1_of_nat @ int @ N2 ) ) ) ) ).
% zero_less_imp_eq_int
thf(fact_106_reals__Archimedean2,axiom,
! [A: $tType] :
( ( archim1804426504_field @ A @ ( type @ A ) )
=> ! [X2: A] :
? [N2: nat] : ( ord_less @ A @ X2 @ ( semiring_1_of_nat @ A @ N2 ) ) ) ).
% reals_Archimedean2
thf(fact_107_times__enat__simps_I3_J,axiom,
! [N: nat] :
( ( ( N
= ( zero_zero @ nat ) )
=> ( ( times_times @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ ( extended_enat2 @ N ) )
= ( zero_zero @ extended_enat ) ) )
& ( ( N
!= ( zero_zero @ nat ) )
=> ( ( times_times @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ ( extended_enat2 @ N ) )
= ( extend1396239628finity @ extended_enat ) ) ) ) ).
% times_enat_simps(3)
thf(fact_108_times__enat__simps_I4_J,axiom,
! [M: nat] :
( ( ( M
= ( zero_zero @ nat ) )
=> ( ( times_times @ extended_enat @ ( extended_enat2 @ M ) @ ( extend1396239628finity @ extended_enat ) )
= ( zero_zero @ extended_enat ) ) )
& ( ( M
!= ( zero_zero @ nat ) )
=> ( ( times_times @ extended_enat @ ( extended_enat2 @ M ) @ ( extend1396239628finity @ extended_enat ) )
= ( extend1396239628finity @ extended_enat ) ) ) ) ).
% times_enat_simps(4)
thf(fact_109_the__enat__0,axiom,
( ( extended_the_enat @ ( zero_zero @ extended_enat ) )
= ( zero_zero @ nat ) ) ).
% the_enat_0
thf(fact_110_scount__finite,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( linear505997466_on_ev @ A
@ ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
~ ( P @ Xs ) )
@ Omega )
=> ( ord_less @ extended_enat @ ( coindu1365464361scount @ A @ P @ Omega ) @ ( extend1396239628finity @ extended_enat ) ) ) ).
% scount_finite
thf(fact_111_ev__ev,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o] :
( ( linear505997466_on_ev @ A @ ( linear505997466_on_ev @ A @ Phi ) )
= ( linear505997466_on_ev @ A @ Phi ) ) ).
% ev_ev
thf(fact_112_of__nat__mult,axiom,
! [A: $tType] :
( ( semiring_1 @ A @ ( type @ A ) )
=> ! [M: nat,N: nat] :
( ( semiring_1_of_nat @ A @ ( times_times @ nat @ M @ N ) )
= ( times_times @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) ) ) ) ).
% of_nat_mult
thf(fact_113_times__enat__simps_I2_J,axiom,
( ( times_times @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ ( extend1396239628finity @ extended_enat ) )
= ( extend1396239628finity @ extended_enat ) ) ).
% times_enat_simps(2)
thf(fact_114_not__alw__not,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o] :
( ( ^ [Xs: stream @ A] :
~ ( linear1386806755on_alw @ A
@ ^ [Xt: stream @ A] :
~ ( Phi @ Xt )
@ Xs ) )
= ( linear505997466_on_ev @ A @ Phi ) ) ).
% not_alw_not
thf(fact_115_not__ev__not,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o] :
( ( ^ [Xs: stream @ A] :
~ ( linear505997466_on_ev @ A
@ ^ [Xt: stream @ A] :
~ ( Phi @ Xt )
@ Xs ) )
= ( linear1386806755on_alw @ A @ Phi ) ) ).
% not_ev_not
thf(fact_116_int__int__eq,axiom,
! [M: nat,N: nat] :
( ( ( semiring_1_of_nat @ int @ M )
= ( semiring_1_of_nat @ int @ N ) )
= ( M = N ) ) ).
% int_int_eq
thf(fact_117_ab__semigroup__mult__class_Omult__ac_I1_J,axiom,
! [A: $tType] :
( ( ab_semigroup_mult @ A @ ( type @ A ) )
=> ! [A2: A,B2: A,C2: A] :
( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C2 )
= ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).
% ab_semigroup_mult_class.mult_ac(1)
thf(fact_118_mult_Oassoc,axiom,
! [A: $tType] :
( ( semigroup_mult @ A @ ( type @ A ) )
=> ! [A2: A,B2: A,C2: A] :
( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C2 )
= ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).
% mult.assoc
thf(fact_119_mult_Ocommute,axiom,
! [A: $tType] :
( ( ab_semigroup_mult @ A @ ( type @ A ) )
=> ( ( times_times @ A )
= ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).
% mult.commute
thf(fact_120_mult_Oleft__commute,axiom,
! [A: $tType] :
( ( ab_semigroup_mult @ A @ ( type @ A ) )
=> ! [B2: A,A2: A,C2: A] :
( ( times_times @ A @ B2 @ ( times_times @ A @ A2 @ C2 ) )
= ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).
% mult.left_commute
thf(fact_121_ev__or,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o] :
( ( linear505997466_on_ev @ A
@ ^ [Xs: stream @ A] :
( ( Phi @ Xs )
| ( Psi @ Xs ) ) )
= ( ^ [Xs: stream @ A] :
( ( linear505997466_on_ev @ A @ Phi @ Xs )
| ( linear505997466_on_ev @ A @ Psi @ Xs ) ) ) ) ).
% ev_or
thf(fact_122_ev_Obase,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A] :
( ( Phi @ Xs2 )
=> ( linear505997466_on_ev @ A @ Phi @ Xs2 ) ) ).
% ev.base
thf(fact_123_ev__mono,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
( ( linear505997466_on_ev @ A @ Phi @ Xs2 )
=> ( ! [Xs3: stream @ A] :
( ( Phi @ Xs3 )
=> ( Psi @ Xs3 ) )
=> ( linear505997466_on_ev @ A @ Psi @ Xs2 ) ) ) ).
% ev_mono
thf(fact_124_ev__False,axiom,
! [A: $tType,Omega: stream @ A] :
~ ( linear505997466_on_ev @ A
@ ^ [X: stream @ A] : $false
@ Omega ) ).
% ev_False
thf(fact_125_less__int__code_I1_J,axiom,
~ ( ord_less @ int @ ( zero_zero @ int ) @ ( zero_zero @ int ) ) ).
% less_int_code(1)
thf(fact_126_ev__alw__imp__alw__ev,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A] :
( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Phi ) @ Xs2 )
=> ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ Phi ) @ Xs2 ) ) ).
% ev_alw_imp_alw_ev
thf(fact_127_ev__cong,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A,Q1: ( stream @ A ) > $o,Q2: ( stream @ A ) > $o] :
( ( linear1386806755on_alw @ A @ P @ Omega )
=> ( ! [Omega3: stream @ A] :
( ( P @ Omega3 )
=> ( ( Q1 @ Omega3 )
= ( Q2 @ Omega3 ) ) )
=> ( ( linear505997466_on_ev @ A @ Q1 @ Omega )
= ( linear505997466_on_ev @ A @ Q2 @ Omega ) ) ) ) ).
% ev_cong
thf(fact_128_ev__iff__sdrop,axiom,
! [A: $tType] :
( ( linear505997466_on_ev @ A )
= ( ^ [P2: ( stream @ A ) > $o,Omega2: stream @ A] :
? [M3: nat] : ( P2 @ ( sdrop @ A @ M3 @ Omega2 ) ) ) ) ).
% ev_iff_sdrop
thf(fact_129_mult__of__nat__commute,axiom,
! [A: $tType] :
( ( semiring_1 @ A @ ( type @ A ) )
=> ! [X2: nat,Y3: A] :
( ( times_times @ A @ ( semiring_1_of_nat @ A @ X2 ) @ Y3 )
= ( times_times @ A @ Y3 @ ( semiring_1_of_nat @ A @ X2 ) ) ) ) ).
% mult_of_nat_commute
thf(fact_130_imult__is__0,axiom,
! [M: extended_enat,N: extended_enat] :
( ( ( times_times @ extended_enat @ M @ N )
= ( zero_zero @ extended_enat ) )
= ( ( M
= ( zero_zero @ extended_enat ) )
| ( N
= ( zero_zero @ extended_enat ) ) ) ) ).
% imult_is_0
thf(fact_131_alw__ev__imp__ev__alw,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P ) @ Omega )
=> ( linear505997466_on_ev @ A
@ ^ [Xs: stream @ A] :
( ( P @ Xs )
& ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P ) @ Xs ) )
@ Omega ) ) ).
% alw_ev_imp_ev_alw
thf(fact_132_ev__alw__alw__impl,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Phi ) @ Xs2 )
=> ( ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
( ( linear1386806755on_alw @ A @ Phi @ Xs )
=> ( linear505997466_on_ev @ A @ Psi @ Xs ) )
@ Xs2 )
=> ( linear505997466_on_ev @ A @ Psi @ Xs2 ) ) ) ).
% ev_alw_alw_impl
thf(fact_133_alw__impl__ev__alw,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o,Xs2: stream @ A] :
( ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
( ( Phi @ Xs )
=> ( linear505997466_on_ev @ A @ Psi @ Xs ) )
@ Xs2 )
=> ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
( ( linear505997466_on_ev @ A @ Phi @ Xs )
=> ( linear505997466_on_ev @ A @ Psi @ Xs ) )
@ Xs2 ) ) ).
% alw_impl_ev_alw
thf(fact_134_alw__alw__impl__ev,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Psi: ( stream @ A ) > $o] :
( ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
( ( linear1386806755on_alw @ A @ Phi @ Xs )
=> ( linear505997466_on_ev @ A @ Psi @ Xs ) ) )
= ( ^ [Xs: stream @ A] :
( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Phi ) @ Xs )
=> ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ Psi ) @ Xs ) ) ) ) ).
% alw_alw_impl_ev
thf(fact_135_ev__alw__impl__ev,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
( ( linear505997466_on_ev @ A @ Phi @ Xs2 )
=> ( ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
( ( Phi @ Xs )
=> ( linear505997466_on_ev @ A @ Psi @ Xs ) )
@ Xs2 )
=> ( linear505997466_on_ev @ A @ Psi @ Xs2 ) ) ) ).
% ev_alw_impl_ev
thf(fact_136_not__alw__iff,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( ~ ( linear1386806755on_alw @ A @ P @ Omega ) )
= ( linear505997466_on_ev @ A
@ ^ [Xs: stream @ A] :
~ ( P @ Xs )
@ Omega ) ) ).
% not_alw_iff
thf(fact_137_ev__alw__impl,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
( ( linear505997466_on_ev @ A @ Phi @ Xs2 )
=> ( ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
( ( Phi @ Xs )
=> ( Psi @ Xs ) )
@ Xs2 )
=> ( linear505997466_on_ev @ A @ Psi @ Xs2 ) ) ) ).
% ev_alw_impl
thf(fact_138_ev__alw__aand,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A,Psi: ( stream @ A ) > $o] :
( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Phi ) @ Xs2 )
=> ( ( linear505997466_on_ev @ A @ ( linear1386806755on_alw @ A @ Psi ) @ Xs2 )
=> ( linear505997466_on_ev @ A
@ ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
( ( Phi @ Xs )
& ( Psi @ Xs ) ) )
@ Xs2 ) ) ) ).
% ev_alw_aand
thf(fact_139_not__ev__iff,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( ~ ( linear505997466_on_ev @ A @ P @ Omega ) )
= ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
~ ( P @ Xs )
@ Omega ) ) ).
% not_ev_iff
thf(fact_140_not__alw,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o] :
( ( ^ [Xs: stream @ A] :
~ ( linear1386806755on_alw @ A @ Phi @ Xs ) )
= ( linear505997466_on_ev @ A
@ ^ [Xs: stream @ A] :
~ ( Phi @ Xs ) ) ) ).
% not_alw
thf(fact_141_not__ev,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o] :
( ( ^ [Xs: stream @ A] :
~ ( linear505997466_on_ev @ A @ Phi @ Xs ) )
= ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
~ ( Phi @ Xs ) ) ) ).
% not_ev
thf(fact_142_the__enat_Osimps,axiom,
! [N: nat] :
( ( extended_the_enat @ ( extended_enat2 @ N ) )
= N ) ).
% the_enat.simps
thf(fact_143_alw__ev__sdrop,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,M: nat,Xs2: stream @ A] :
( ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ Phi ) @ ( sdrop @ A @ M @ Xs2 ) )
=> ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ Phi ) @ Xs2 ) ) ).
% alw_ev_sdrop
thf(fact_144_ex__less__of__nat__mult,axiom,
! [A: $tType] :
( ( archim1804426504_field @ A @ ( type @ A ) )
=> ! [X2: A,Y3: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ X2 )
=> ? [N2: nat] : ( ord_less @ A @ Y3 @ ( times_times @ A @ ( semiring_1_of_nat @ A @ N2 ) @ X2 ) ) ) ) ).
% ex_less_of_nat_mult
thf(fact_145_imult__is__infinity,axiom,
! [A2: extended_enat,B2: extended_enat] :
( ( ( times_times @ extended_enat @ A2 @ B2 )
= ( extend1396239628finity @ extended_enat ) )
= ( ( ( A2
= ( extend1396239628finity @ extended_enat ) )
& ( B2
!= ( zero_zero @ extended_enat ) ) )
| ( ( B2
= ( extend1396239628finity @ extended_enat ) )
& ( A2
!= ( zero_zero @ extended_enat ) ) ) ) ) ).
% imult_is_infinity
thf(fact_146_enat__0__less__mult__iff,axiom,
! [M: extended_enat,N: extended_enat] :
( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ ( times_times @ extended_enat @ M @ N ) )
= ( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ M )
& ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ N ) ) ) ).
% enat_0_less_mult_iff
thf(fact_147_scount__infinite__iff,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( ( coindu1365464361scount @ A @ P @ Omega )
= ( extend1396239628finity @ extended_enat ) )
= ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P ) @ Omega ) ) ).
% scount_infinite_iff
thf(fact_148_scount__infinite,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P ) @ Omega )
=> ( ( coindu1365464361scount @ A @ P @ Omega )
= ( extend1396239628finity @ extended_enat ) ) ) ).
% scount_infinite
thf(fact_149_sfirst__finite,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( ord_less @ extended_enat @ ( coindu76177514sfirst @ A @ P @ Omega ) @ ( extend1396239628finity @ extended_enat ) )
= ( linear505997466_on_ev @ A @ P @ Omega ) ) ).
% sfirst_finite
thf(fact_150_imult__infinity__right,axiom,
! [N: extended_enat] :
( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ N )
=> ( ( times_times @ extended_enat @ N @ ( extend1396239628finity @ extended_enat ) )
= ( extend1396239628finity @ extended_enat ) ) ) ).
% imult_infinity_right
thf(fact_151_imult__infinity,axiom,
! [N: extended_enat] :
( ( ord_less @ extended_enat @ ( zero_zero @ extended_enat ) @ N )
=> ( ( times_times @ extended_enat @ ( extend1396239628finity @ extended_enat ) @ N )
= ( extend1396239628finity @ extended_enat ) ) ) ).
% imult_infinity
thf(fact_152_enat__the__enat,axiom,
! [N: extended_enat] :
( ( N
!= ( extend1396239628finity @ extended_enat ) )
=> ( ( extended_enat2 @ ( extended_the_enat @ N ) )
= N ) ) ).
% enat_the_enat
thf(fact_153_mult__cancel__right,axiom,
! [A: $tType] :
( ( semiri1923998003cancel @ A @ ( type @ A ) )
=> ! [A2: A,C2: A,B2: A] :
( ( ( times_times @ A @ A2 @ C2 )
= ( times_times @ A @ B2 @ C2 ) )
= ( ( C2
= ( zero_zero @ A ) )
| ( A2 = B2 ) ) ) ) ).
% mult_cancel_right
thf(fact_154_mult__cancel__left,axiom,
! [A: $tType] :
( ( semiri1923998003cancel @ A @ ( type @ A ) )
=> ! [C2: A,A2: A,B2: A] :
( ( ( times_times @ A @ C2 @ A2 )
= ( times_times @ A @ C2 @ B2 ) )
= ( ( C2
= ( zero_zero @ A ) )
| ( A2 = B2 ) ) ) ) ).
% mult_cancel_left
thf(fact_155_mult__eq__0__iff,axiom,
! [A: $tType] :
( ( semiri1193490041visors @ A @ ( type @ 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_156_mult__zero__right,axiom,
! [A: $tType] :
( ( mult_zero @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ A2 @ ( zero_zero @ A ) )
= ( zero_zero @ A ) ) ) ).
% mult_zero_right
thf(fact_157_mult__zero__left,axiom,
! [A: $tType] :
( ( mult_zero @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ ( zero_zero @ A ) @ A2 )
= ( zero_zero @ A ) ) ) ).
% mult_zero_left
thf(fact_158_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_159_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_160_mult__0__right,axiom,
! [M: nat] :
( ( times_times @ nat @ M @ ( zero_zero @ nat ) )
= ( zero_zero @ nat ) ) ).
% mult_0_right
thf(fact_161_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_162_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_163_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_164_times__enat__simps_I1_J,axiom,
! [M: nat,N: nat] :
( ( times_times @ extended_enat @ ( extended_enat2 @ M ) @ ( extended_enat2 @ N ) )
= ( extended_enat2 @ ( times_times @ nat @ M @ N ) ) ) ).
% times_enat_simps(1)
thf(fact_165_times__int__code_I1_J,axiom,
! [K: int] :
( ( times_times @ int @ K @ ( zero_zero @ int ) )
= ( zero_zero @ int ) ) ).
% times_int_code(1)
thf(fact_166_times__int__code_I2_J,axiom,
! [L: int] :
( ( times_times @ int @ ( zero_zero @ int ) @ L )
= ( zero_zero @ int ) ) ).
% times_int_code(2)
thf(fact_167_mult__0,axiom,
! [N: nat] :
( ( times_times @ nat @ ( zero_zero @ nat ) @ N )
= ( zero_zero @ nat ) ) ).
% mult_0
thf(fact_168_mult__less__mono1,axiom,
! [I3: nat,J3: nat,K: nat] :
( ( ord_less @ nat @ I3 @ J3 )
=> ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
=> ( ord_less @ nat @ ( times_times @ nat @ I3 @ K ) @ ( times_times @ nat @ J3 @ K ) ) ) ) ).
% mult_less_mono1
thf(fact_169_mult__less__mono2,axiom,
! [I3: nat,J3: nat,K: nat] :
( ( ord_less @ nat @ I3 @ J3 )
=> ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
=> ( ord_less @ nat @ ( times_times @ nat @ K @ I3 ) @ ( times_times @ nat @ K @ J3 ) ) ) ) ).
% mult_less_mono2
thf(fact_170_zmult__zless__mono2,axiom,
! [I3: int,J3: int,K: int] :
( ( ord_less @ int @ I3 @ J3 )
=> ( ( ord_less @ int @ ( zero_zero @ int ) @ K )
=> ( ord_less @ int @ ( times_times @ int @ K @ I3 ) @ ( times_times @ int @ K @ J3 ) ) ) ) ).
% zmult_zless_mono2
thf(fact_171_linorder__neqE__linordered__idom,axiom,
! [A: $tType] :
( ( linordered_idom @ A @ ( type @ A ) )
=> ! [X2: A,Y3: A] :
( ( X2 != Y3 )
=> ( ~ ( ord_less @ A @ X2 @ Y3 )
=> ( ord_less @ A @ Y3 @ X2 ) ) ) ) ).
% linorder_neqE_linordered_idom
thf(fact_172_zmult__zless__mono2__lemma,axiom,
! [I3: int,J3: int,K: nat] :
( ( ord_less @ int @ I3 @ J3 )
=> ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
=> ( ord_less @ int @ ( times_times @ int @ ( semiring_1_of_nat @ int @ K ) @ I3 ) @ ( times_times @ int @ ( semiring_1_of_nat @ int @ K ) @ J3 ) ) ) ) ).
% zmult_zless_mono2_lemma
thf(fact_173_times__enat__def,axiom,
( ( times_times @ extended_enat )
= ( ^ [M3: extended_enat,N3: extended_enat] :
( extended_case_enat @ extended_enat
@ ^ [O: nat] :
( extended_case_enat @ extended_enat
@ ^ [P4: nat] : ( extended_enat2 @ ( times_times @ nat @ O @ P4 ) )
@ ( if @ extended_enat
@ ( O
= ( zero_zero @ nat ) )
@ ( zero_zero @ extended_enat )
@ ( extend1396239628finity @ extended_enat ) )
@ N3 )
@ ( if @ extended_enat
@ ( N3
= ( zero_zero @ extended_enat ) )
@ ( zero_zero @ extended_enat )
@ ( extend1396239628finity @ extended_enat ) )
@ M3 ) ) ) ).
% times_enat_def
thf(fact_174_mult__not__zero,axiom,
! [A: $tType] :
( ( mult_zero @ A @ ( type @ 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_175_divisors__zero,axiom,
! [A: $tType] :
( ( semiri1193490041visors @ A @ ( type @ 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_176_no__zero__divisors,axiom,
! [A: $tType] :
( ( semiri1193490041visors @ A @ ( type @ 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_177_mult__left__cancel,axiom,
! [A: $tType] :
( ( semiri1923998003cancel @ A @ ( type @ A ) )
=> ! [C2: A,A2: A,B2: A] :
( ( C2
!= ( zero_zero @ A ) )
=> ( ( ( times_times @ A @ C2 @ A2 )
= ( times_times @ A @ C2 @ B2 ) )
= ( A2 = B2 ) ) ) ) ).
% mult_left_cancel
thf(fact_178_mult__right__cancel,axiom,
! [A: $tType] :
( ( semiri1923998003cancel @ A @ ( type @ A ) )
=> ! [C2: A,A2: A,B2: A] :
( ( C2
!= ( zero_zero @ A ) )
=> ( ( ( times_times @ A @ A2 @ C2 )
= ( times_times @ A @ B2 @ C2 ) )
= ( A2 = B2 ) ) ) ) ).
% mult_right_cancel
thf(fact_179_linordered__comm__semiring__strict__class_Ocomm__mult__strict__left__mono,axiom,
! [A: $tType] :
( ( linord893533164strict @ A @ ( type @ A ) )
=> ! [A2: A,B2: A,C2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
=> ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) ) ) ) ) ).
% linordered_comm_semiring_strict_class.comm_mult_strict_left_mono
thf(fact_180_mult__less__cancel__right__disj,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type @ A ) )
=> ! [A2: A,C2: A,B2: A] :
( ( ord_less @ A @ ( times_times @ A @ A2 @ C2 ) @ ( times_times @ A @ B2 @ C2 ) )
= ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
& ( ord_less @ A @ A2 @ B2 ) )
| ( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
& ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).
% mult_less_cancel_right_disj
thf(fact_181_mult__strict__right__mono,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type @ A ) )
=> ! [A2: A,B2: A,C2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
=> ( ord_less @ A @ ( times_times @ A @ A2 @ C2 ) @ ( times_times @ A @ B2 @ C2 ) ) ) ) ) ).
% mult_strict_right_mono
thf(fact_182_mult__strict__right__mono__neg,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type @ A ) )
=> ! [B2: A,A2: A,C2: A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
=> ( ord_less @ A @ ( times_times @ A @ A2 @ C2 ) @ ( times_times @ A @ B2 @ C2 ) ) ) ) ) ).
% mult_strict_right_mono_neg
thf(fact_183_mult__less__cancel__left__disj,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type @ A ) )
=> ! [C2: A,A2: A,B2: A] :
( ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) )
= ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
& ( ord_less @ A @ A2 @ B2 ) )
| ( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
& ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).
% mult_less_cancel_left_disj
thf(fact_184_mult__strict__left__mono,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type @ A ) )
=> ! [A2: A,B2: A,C2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
=> ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) ) ) ) ) ).
% mult_strict_left_mono
thf(fact_185_mult__strict__left__mono__neg,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type @ A ) )
=> ! [B2: A,A2: A,C2: A] :
( ( ord_less @ A @ B2 @ A2 )
=> ( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
=> ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) ) ) ) ) ).
% mult_strict_left_mono_neg
thf(fact_186_mult__less__cancel__left__pos,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type @ A ) )
=> ! [C2: A,A2: A,B2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ C2 )
=> ( ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) )
= ( ord_less @ A @ A2 @ B2 ) ) ) ) ).
% mult_less_cancel_left_pos
thf(fact_187_mult__less__cancel__left__neg,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type @ A ) )
=> ! [C2: A,A2: A,B2: A] :
( ( ord_less @ A @ C2 @ ( zero_zero @ A ) )
=> ( ( ord_less @ A @ ( times_times @ A @ C2 @ A2 ) @ ( times_times @ A @ C2 @ B2 ) )
= ( ord_less @ A @ B2 @ A2 ) ) ) ) ).
% mult_less_cancel_left_neg
thf(fact_188_zero__less__mult__pos2,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type @ 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_189_zero__less__mult__pos,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type @ 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_190_zero__less__mult__iff,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type @ 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_191_mult__pos__neg2,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type @ 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_192_mult__pos__pos,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type @ 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_193_mult__pos__neg,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type @ 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_194_mult__neg__pos,axiom,
! [A: $tType] :
( ( linord20386208strict @ A @ ( type @ 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_195_mult__less__0__iff,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type @ 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_196_not__square__less__zero,axiom,
! [A: $tType] :
( ( linordered_ring @ A @ ( type @ A ) )
=> ! [A2: A] :
~ ( ord_less @ A @ ( times_times @ A @ A2 @ A2 ) @ ( zero_zero @ A ) ) ) ).
% not_square_less_zero
thf(fact_197_mult__neg__neg,axiom,
! [A: $tType] :
( ( linord581940658strict @ A @ ( type @ 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_198_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_199_transfer__int__nat__relations_I2_J,axiom,
! [X2: nat,Y3: nat] :
( ( ord_less @ int @ ( semiring_1_of_nat @ int @ X2 ) @ ( semiring_1_of_nat @ int @ Y3 ) )
= ( ord_less @ nat @ X2 @ Y3 ) ) ).
% transfer_int_nat_relations(2)
thf(fact_200_transfer__int__nat__numerals_I1_J,axiom,
( ( zero_zero @ int )
= ( semiring_1_of_nat @ int @ ( zero_zero @ nat ) ) ) ).
% transfer_int_nat_numerals(1)
thf(fact_201_transfer__int__nat__relations_I1_J,axiom,
! [X2: nat,Y3: nat] :
( ( ( semiring_1_of_nat @ int @ X2 )
= ( semiring_1_of_nat @ int @ Y3 ) )
= ( X2 = Y3 ) ) ).
% transfer_int_nat_relations(1)
thf(fact_202_int__if__cong,axiom,
! [P: $o,X2: nat,Y3: nat] :
( ( P
=> ( ( semiring_1_of_nat @ int @ X2 )
= ( semiring_1_of_nat @ int @ ( if @ nat @ P @ X2 @ Y3 ) ) ) )
& ( ~ P
=> ( ( semiring_1_of_nat @ int @ Y3 )
= ( semiring_1_of_nat @ int @ ( if @ nat @ P @ X2 @ Y3 ) ) ) ) ) ).
% int_if_cong
thf(fact_203_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_204_Nat__Transfer_Otransfer__int__nat__functions_I2_J,axiom,
! [X2: nat,Y3: nat] :
( ( times_times @ int @ ( semiring_1_of_nat @ int @ X2 ) @ ( semiring_1_of_nat @ int @ Y3 ) )
= ( semiring_1_of_nat @ int @ ( times_times @ nat @ X2 @ Y3 ) ) ) ).
% Nat_Transfer.transfer_int_nat_functions(2)
thf(fact_205_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_206_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_207_linordered__field__class_Osign__simps_I45_J,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ 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 ) ) ) ) ) ).
% linordered_field_class.sign_simps(45)
thf(fact_208_linordered__field__class_Osign__simps_I44_J,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ 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 ) ) ) ) ) ) ).
% linordered_field_class.sign_simps(44)
thf(fact_209_linordered__field__no__ub,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [X5: A] :
? [X1: A] : ( ord_less @ A @ X5 @ X1 ) ) ).
% linordered_field_no_ub
thf(fact_210_linordered__field__no__lb,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [X5: A] :
? [Y5: A] : ( ord_less @ A @ Y5 @ X5 ) ) ).
% linordered_field_no_lb
thf(fact_211_linordered__field__class_Osign__simps_I25_J,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [B2: A,A2: A,C2: A] :
( ( times_times @ A @ B2 @ ( times_times @ A @ A2 @ C2 ) )
= ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).
% linordered_field_class.sign_simps(25)
thf(fact_212_linordered__field__class_Osign__simps_I24_J,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ( ( times_times @ A )
= ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).
% linordered_field_class.sign_simps(24)
thf(fact_213_linordered__field__class_Osign__simps_I23_J,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A,B2: A,C2: A] :
( ( times_times @ A @ ( times_times @ A @ A2 @ B2 ) @ C2 )
= ( times_times @ A @ A2 @ ( times_times @ A @ B2 @ C2 ) ) ) ) ).
% linordered_field_class.sign_simps(23)
thf(fact_214_scount__eq,axiom,
! [A: $tType] :
( ( coindu1365464361scount @ A )
= ( ^ [P2: ( stream @ A ) > $o,Omega2: stream @ A] :
( if @ extended_enat @ ( linear1386806755on_alw @ A @ ( linear505997466_on_ev @ A @ P2 ) @ Omega2 ) @ ( extend1396239628finity @ extended_enat )
@ ( extended_enat2
@ ( finite_card @ nat
@ ( collect @ nat
@ ^ [I2: nat] : ( P2 @ ( sdrop @ A @ I2 @ Omega2 ) ) ) ) ) ) ) ) ).
% scount_eq
thf(fact_215_semiring__normalization__rules_I10_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ A2 @ ( zero_zero @ A ) )
= ( zero_zero @ A ) ) ) ).
% semiring_normalization_rules(10)
thf(fact_216_semiring__normalization__rules_I7_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ( ( times_times @ A )
= ( ^ [A4: A,B3: A] : ( times_times @ A @ B3 @ A4 ) ) ) ) ).
% semiring_normalization_rules(7)
thf(fact_217_semiring__normalization__rules_I13_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ! [Lx: A,Ly: A,Rx: A,Ry: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ ( times_times @ A @ Ly @ Ry ) ) ) ) ).
% semiring_normalization_rules(13)
thf(fact_218_semiring__normalization__rules_I14_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ! [Lx: A,Ly: A,Rx: A,Ry: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ Lx @ ( times_times @ A @ Ly @ ( times_times @ A @ Rx @ Ry ) ) ) ) ) ).
% semiring_normalization_rules(14)
thf(fact_219_semiring__normalization__rules_I15_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ! [Lx: A,Ly: A,Rx: A,Ry: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ Rx @ ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Ry ) ) ) ) ).
% semiring_normalization_rules(15)
thf(fact_220_semiring__normalization__rules_I16_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ! [Lx: A,Ly: A,Rx: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Rx )
= ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ Ly ) ) ) ).
% semiring_normalization_rules(16)
thf(fact_221_semiring__normalization__rules_I17_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ! [Lx: A,Ly: A,Rx: A] :
( ( times_times @ A @ ( times_times @ A @ Lx @ Ly ) @ Rx )
= ( times_times @ A @ Lx @ ( times_times @ A @ Ly @ Rx ) ) ) ) ).
% semiring_normalization_rules(17)
thf(fact_222_semiring__normalization__rules_I18_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ! [Lx: A,Rx: A,Ry: A] :
( ( times_times @ A @ Lx @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ ( times_times @ A @ Lx @ Rx ) @ Ry ) ) ) ).
% semiring_normalization_rules(18)
thf(fact_223_semiring__normalization__rules_I19_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ! [Lx: A,Rx: A,Ry: A] :
( ( times_times @ A @ Lx @ ( times_times @ A @ Rx @ Ry ) )
= ( times_times @ A @ Rx @ ( times_times @ A @ Lx @ Ry ) ) ) ) ).
% semiring_normalization_rules(19)
thf(fact_224_scount__eq__card,axiom,
! [A: $tType,P: ( stream @ A ) > $o,Omega: stream @ A] :
( ( linear505997466_on_ev @ A
@ ( linear1386806755on_alw @ A
@ ^ [Xs: stream @ A] :
~ ( P @ Xs ) )
@ Omega )
=> ( ( coindu1365464361scount @ A @ P @ Omega )
= ( extended_enat2
@ ( finite_card @ nat
@ ( collect @ nat
@ ^ [I2: nat] : ( P @ ( sdrop @ A @ I2 @ Omega ) ) ) ) ) ) ) ).
% scount_eq_card
thf(fact_225_semiring__normalization__rules_I9_J,axiom,
! [A: $tType] :
( ( comm_semiring_1 @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( times_times @ A @ ( zero_zero @ A ) @ A2 )
= ( zero_zero @ A ) ) ) ).
% semiring_normalization_rules(9)
thf(fact_226_card__Collect__less__nat,axiom,
! [N: nat] :
( ( finite_card @ nat
@ ( collect @ nat
@ ^ [I2: nat] : ( ord_less @ nat @ I2 @ N ) ) )
= N ) ).
% card_Collect_less_nat
thf(fact_227_sdrop__wait,axiom,
! [A: $tType,Phi: ( stream @ A ) > $o,Xs2: stream @ A] :
( ( linear505997466_on_ev @ A @ Phi @ Xs2 )
=> ( Phi @ ( sdrop @ A @ ( linear1335279038n_wait @ A @ Phi @ Xs2 ) @ Xs2 ) ) ) ).
% sdrop_wait
thf(fact_228_transfer__morphism__int__nat,axiom,
( nat_tr1645093318rphism @ nat @ int @ ( semiring_1_of_nat @ int )
@ ^ [N3: nat] : $true ) ).
% transfer_morphism_int_nat
thf(fact_229_zero__less__ceiling,axiom,
! [A: $tType] :
( ( archim1727834104eiling @ A @ ( type @ A ) )
=> ! [X2: A] :
( ( ord_less @ int @ ( zero_zero @ int ) @ ( archimedean_ceiling @ A @ X2 ) )
= ( ord_less @ A @ ( zero_zero @ A ) @ X2 ) ) ) ).
% zero_less_ceiling
thf(fact_230_ceiling__zero,axiom,
! [A: $tType] :
( ( archim1727834104eiling @ A @ ( type @ A ) )
=> ( ( archimedean_ceiling @ A @ ( zero_zero @ A ) )
= ( zero_zero @ int ) ) ) ).
% ceiling_zero
thf(fact_231_ceiling__of__nat,axiom,
! [A: $tType] :
( ( archim1727834104eiling @ A @ ( type @ A ) )
=> ! [N: nat] :
( ( archimedean_ceiling @ A @ ( semiring_1_of_nat @ A @ N ) )
= ( semiring_1_of_nat @ int @ N ) ) ) ).
% ceiling_of_nat
thf(fact_232_ceiling__less__cancel,axiom,
! [A: $tType] :
( ( archim1727834104eiling @ A @ ( type @ A ) )
=> ! [X2: A,Y3: A] :
( ( ord_less @ int @ ( archimedean_ceiling @ A @ X2 ) @ ( archimedean_ceiling @ A @ Y3 ) )
=> ( ord_less @ A @ X2 @ Y3 ) ) ) ).
% ceiling_less_cancel
thf(fact_233_zero__less__nat__eq,axiom,
! [Z: int] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( nat2 @ Z ) )
= ( ord_less @ int @ ( zero_zero @ int ) @ Z ) ) ).
% zero_less_nat_eq
thf(fact_234_ex__inverse__of__nat__less,axiom,
! [A: $tType] :
( ( archim1804426504_field @ A @ ( type @ A ) )
=> ! [X2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ X2 )
=> ? [N2: nat] :
( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
& ( ord_less @ A @ ( inverse_inverse @ A @ ( semiring_1_of_nat @ A @ N2 ) ) @ X2 ) ) ) ) ).
% ex_inverse_of_nat_less
thf(fact_235_inverse__zero,axiom,
! [A: $tType] :
( ( division_ring @ A @ ( type @ A ) )
=> ( ( inverse_inverse @ A @ ( zero_zero @ A ) )
= ( zero_zero @ A ) ) ) ).
% inverse_zero
thf(fact_236_inverse__nonzero__iff__nonzero,axiom,
! [A: $tType] :
( ( division_ring @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( ( inverse_inverse @ A @ A2 )
= ( zero_zero @ A ) )
= ( A2
= ( zero_zero @ A ) ) ) ) ).
% inverse_nonzero_iff_nonzero
thf(fact_237_inverse__mult__distrib,axiom,
! [A: $tType] :
( ( field @ A @ ( type @ A ) )
=> ! [A2: A,B2: A] :
( ( inverse_inverse @ A @ ( times_times @ A @ A2 @ B2 ) )
= ( times_times @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B2 ) ) ) ) ).
% inverse_mult_distrib
thf(fact_238_nat__int,axiom,
! [N: nat] :
( ( nat2 @ ( semiring_1_of_nat @ int @ N ) )
= N ) ).
% nat_int
thf(fact_239_inverse__positive__iff__positive,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) )
= ( ord_less @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).
% inverse_positive_iff_positive
thf(fact_240_inverse__negative__iff__negative,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) )
= ( ord_less @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).
% inverse_negative_iff_negative
thf(fact_241_inverse__less__iff__less__neg,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
=> ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
=> ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B2 ) )
= ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).
% inverse_less_iff_less_neg
thf(fact_242_inverse__less__iff__less,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
=> ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B2 ) )
= ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).
% inverse_less_iff_less
thf(fact_243_nat__0,axiom,
( ( nat2 @ ( zero_zero @ int ) )
= ( zero_zero @ nat ) ) ).
% nat_0
thf(fact_244_zless__nat__conj,axiom,
! [W: int,Z: int] :
( ( ord_less @ nat @ ( nat2 @ W ) @ ( nat2 @ Z ) )
= ( ( ord_less @ int @ ( zero_zero @ int ) @ Z )
& ( ord_less @ int @ W @ Z ) ) ) ).
% zless_nat_conj
thf(fact_245_zless__nat__eq__int__zless,axiom,
! [M: nat,Z: int] :
( ( ord_less @ nat @ M @ ( nat2 @ Z ) )
= ( ord_less @ int @ ( semiring_1_of_nat @ int @ M ) @ Z ) ) ).
% zless_nat_eq_int_zless
thf(fact_246_positive__imp__inverse__positive,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
=> ( ord_less @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) ) ) ) ).
% positive_imp_inverse_positive
thf(fact_247_negative__imp__inverse__negative,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
=> ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) ) ) ) ).
% negative_imp_inverse_negative
thf(fact_248_inverse__positive__imp__positive,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( ord_less @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) )
=> ( ( A2
!= ( zero_zero @ A ) )
=> ( ord_less @ A @ ( zero_zero @ A ) @ A2 ) ) ) ) ).
% inverse_positive_imp_positive
thf(fact_249_inverse__negative__imp__negative,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A] :
( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) )
=> ( ( A2
!= ( zero_zero @ A ) )
=> ( ord_less @ A @ A2 @ ( zero_zero @ A ) ) ) ) ) ).
% inverse_negative_imp_negative
thf(fact_250_less__imp__inverse__less__neg,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
=> ( ord_less @ A @ ( inverse_inverse @ A @ B2 ) @ ( inverse_inverse @ A @ A2 ) ) ) ) ) ).
% less_imp_inverse_less_neg
thf(fact_251_inverse__less__imp__less__neg,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B2 ) )
=> ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
=> ( ord_less @ A @ B2 @ A2 ) ) ) ) ).
% inverse_less_imp_less_neg
thf(fact_252_less__imp__inverse__less,axiom,
! [A: $tType] :
( ( linordered_field @ A @ ( type @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less @ A @ A2 @ B2 )
=> ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
=> ( ord_less @ A @ ( inverse_inverse @ A @ B2 ) @ ( inverse_inverse @ A @ A2 ) ) ) ) ) ).
% less_imp_inverse_less
%----Type constructors (37)
thf(tcon_Int_Oint___Rings_Osemiring__no__zero__divisors__cancel,axiom,
semiri1923998003cancel @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Olinordered__comm__semiring__strict,axiom,
linord893533164strict @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Olinordered__semiring__strict,axiom,
linord20386208strict @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Osemiring__no__zero__divisors,axiom,
semiri1193490041visors @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Olinordered__ring__strict,axiom,
linord581940658strict @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Olinordered__semidom,axiom,
linordered_semidom @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Groups_Oab__semigroup__mult,axiom,
ab_semigroup_mult @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Olinordered__ring,axiom,
linordered_ring @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Olinordered__idom,axiom,
linordered_idom @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Ocomm__semiring__1,axiom,
comm_semiring_1 @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Groups_Osemigroup__mult,axiom,
semigroup_mult @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Nat_Osemiring__char__0,axiom,
semiring_char_0 @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Osemiring__1,axiom,
semiring_1 @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Rings_Omult__zero,axiom,
mult_zero @ int @ ( type @ int ) ).
thf(tcon_Int_Oint___Groups_Ozero,axiom,
zero @ int @ ( type @ int ) ).
thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors__cancel_1,axiom,
semiri1923998003cancel @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Rings_Olinordered__comm__semiring__strict_2,axiom,
linord893533164strict @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
canoni770627133id_add @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Rings_Olinordered__semiring__strict_3,axiom,
linord20386208strict @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors_4,axiom,
semiri1193490041visors @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Rings_Olinordered__semidom_5,axiom,
linordered_semidom @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Groups_Oab__semigroup__mult_6,axiom,
ab_semigroup_mult @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Rings_Ocomm__semiring__1_7,axiom,
comm_semiring_1 @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Groups_Osemigroup__mult_8,axiom,
semigroup_mult @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Nat_Osemiring__char__0_9,axiom,
semiring_char_0 @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Rings_Osemiring__1_10,axiom,
semiring_1 @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Rings_Omult__zero_11,axiom,
mult_zero @ nat @ ( type @ nat ) ).
thf(tcon_Nat_Onat___Groups_Ozero_12,axiom,
zero @ nat @ ( type @ nat ) ).
thf(tcon_Extended__Nat_Oenat___Groups_Ocanonically__ordered__monoid__add_13,axiom,
canoni770627133id_add @ extended_enat @ ( type @ extended_enat ) ).
thf(tcon_Extended__Nat_Oenat___Rings_Osemiring__no__zero__divisors_14,axiom,
semiri1193490041visors @ extended_enat @ ( type @ extended_enat ) ).
thf(tcon_Extended__Nat_Oenat___Groups_Oab__semigroup__mult_15,axiom,
ab_semigroup_mult @ extended_enat @ ( type @ extended_enat ) ).
thf(tcon_Extended__Nat_Oenat___Rings_Ocomm__semiring__1_16,axiom,
comm_semiring_1 @ extended_enat @ ( type @ extended_enat ) ).
thf(tcon_Extended__Nat_Oenat___Groups_Osemigroup__mult_17,axiom,
semigroup_mult @ extended_enat @ ( type @ extended_enat ) ).
thf(tcon_Extended__Nat_Oenat___Nat_Osemiring__char__0_18,axiom,
semiring_char_0 @ extended_enat @ ( type @ extended_enat ) ).
thf(tcon_Extended__Nat_Oenat___Rings_Osemiring__1_19,axiom,
semiring_1 @ extended_enat @ ( type @ extended_enat ) ).
thf(tcon_Extended__Nat_Oenat___Rings_Omult__zero_20,axiom,
mult_zero @ extended_enat @ ( type @ extended_enat ) ).
thf(tcon_Extended__Nat_Oenat___Groups_Ozero_21,axiom,
zero @ extended_enat @ ( type @ extended_enat ) ).
%----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,X2: A,Y3: A] :
( ( if @ A @ $false @ X2 @ Y3 )
= Y3 ) ).
thf(help_If_1_1_T,axiom,
! [A: $tType,X2: A,Y3: A] :
( ( if @ A @ $true @ X2 @ Y3 )
= X2 ) ).
%----Conjectures (1)
thf(conj_0,conjecture,
( ( ord_less @ extended_enat @ ( extended_enat2 @ ( zero_zero @ nat ) ) @ ( coindu76177514sfirst @ a @ p @ omega ) )
= ( ~ ( p @ ( sdrop @ a @ ( zero_zero @ nat ) @ omega ) ) ) ) ).
%------------------------------------------------------------------------------