TPTP Problem File: DAT257^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : DAT257^1 : TPTP v9.0.0. Released v7.0.0.
% Domain : Data Structures
% Problem : Data structure for translators from streams to streams 113
% Version : [Bla16] axioms : Especial.
% English :
% Refs : [BH+14] Blanchette et al. (2014), Truly Modular (Co)datatypes
% : [RB15] Reynolds & Blanchette (2015), A Decision Procedure for
% : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source : [Bla16]
% Names : stream_processor__113.p [Bla16]
% Status : Theorem
% Rating : 1.00 v7.1.0
% Syntax : Number of formulae : 320 ( 149 unt; 74 typ; 0 def)
% Number of atoms : 552 ( 310 equ; 4 cnn)
% Maximal formula atoms : 17 ( 2 avg)
% Number of connectives : 5958 ( 83 ~; 7 |; 40 &;5588 @)
% ( 0 <=>; 240 =>; 0 <=; 0 <~>)
% Maximal formula depth : 28 ( 9 avg)
% Number of types : 5 ( 4 usr)
% Number of type conns : 483 ( 483 >; 0 *; 0 +; 0 <<)
% Number of symbols : 74 ( 70 usr; 8 con; 0-8 aty)
% Number of variables : 1571 ( 119 ^;1303 !; 23 ?;1571 :)
% ( 126 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_THM_EQU_NAR
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2016-07-13 14:39:29.901
%------------------------------------------------------------------------------
%----Could-be-implicit typings (10)
thf(ty_t_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062,type,
stream1273403375_sp_nu: $tType > $tType > $tType ).
thf(ty_t_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062,type,
stream901396144_sp_mu: $tType > $tType > $tType > $tType ).
thf(ty_t_Product__Type_Oprod,type,
product_prod: $tType > $tType > $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_itself,type,
itself: $tType > $tType ).
thf(ty_tf_c,type,
c: $tType ).
thf(ty_tf_b,type,
b: $tType ).
thf(ty_tf_a,type,
a: $tType ).
%----Explicit typings (64)
thf(sy_c_BNF__Def_Oconvol,type,
bNF_convol:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > B ) > ( A > C ) > A > ( product_prod @ B @ C ) ) ).
thf(sy_c_Basic__BNFs_Opred__fun,type,
basic_pred_fun:
!>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( A > B ) > $o ) ).
thf(sy_c_Fun_Ocomp,type,
comp:
!>[B: $tType,C: $tType,A: $tType] : ( ( B > C ) > ( A > B ) > A > C ) ).
thf(sy_c_HOL_Oundefined,type,
undefined:
!>[A: $tType] : A ).
thf(sy_c_If,type,
if:
!>[A: $tType] : ( $o > A > A > A ) ).
thf(sy_c_Product__Type_OPair,type,
product_Pair:
!>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).
thf(sy_c_Product__Type_Ocurry,type,
product_curry:
!>[A: $tType,B: $tType,C: $tType] : ( ( ( product_prod @ A @ B ) > C ) > A > B > C ) ).
thf(sy_c_Product__Type_Ointernal__case__prod,type,
produc2004651681e_prod:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).
thf(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,
product_rec_prod:
!>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).
thf(sy_c_Pure_Otype,type,
type:
!>[A: $tType] : ( itself @ A ) ).
thf(sy_c_Relation_ODomain,type,
domain:
!>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ B ) ) > ( set @ A ) ) ).
thf(sy_c_Relation_ORange,type,
range:
!>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ B ) ) > ( set @ B ) ) ).
thf(sy_c_Relation_ORangep,type,
rangep:
!>[A: $tType,B: $tType] : ( ( A > B > $o ) > B > $o ) ).
thf(sy_c_Relation_Oinv__image,type,
inv_image:
!>[B: $tType,A: $tType] : ( ( set @ ( product_prod @ B @ B ) ) > ( A > B ) > ( set @ ( product_prod @ A @ A ) ) ) ).
thf(sy_c_Set_OBall,type,
ball:
!>[A: $tType] : ( ( set @ A ) > ( A > $o ) > $o ) ).
thf(sy_c_Set_OCollect,type,
collect:
!>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
thf(sy_c_Set_Oinsert,type,
insert:
!>[A: $tType] : ( A > ( set @ A ) > ( set @ A ) ) ).
thf(sy_c_Stream_Osdrop__while,type,
sdrop_while:
!>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > ( stream @ A ) ) ).
thf(sy_c_Stream_Osfilter,type,
sfilter:
!>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > ( stream @ A ) ) ).
thf(sy_c_Stream_Osinterleave,type,
sinterleave:
!>[A: $tType] : ( ( stream @ A ) > ( stream @ A ) > ( stream @ A ) ) ).
thf(sy_c_Stream_Osmap2,type,
smap2:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( stream @ A ) > ( stream @ B ) > ( stream @ C ) ) ).
thf(sy_c_Stream_Osmember,type,
smember:
!>[A: $tType] : ( A > ( stream @ A ) > $o ) ).
thf(sy_c_Stream_Ostream_OSCons,type,
sCons:
!>[A: $tType] : ( A > ( stream @ A ) > ( stream @ A ) ) ).
thf(sy_c_Stream_Ostream_Ocase__stream,type,
case_stream:
!>[A: $tType,B: $tType] : ( ( A > ( stream @ A ) > B ) > ( stream @ A ) > B ) ).
thf(sy_c_Stream_Ostream_Ocorec__stream,type,
corec_stream:
!>[C: $tType,A: $tType] : ( ( C > A ) > ( C > $o ) > ( C > ( stream @ A ) ) > ( C > C ) > C > ( stream @ A ) ) ).
thf(sy_c_Stream_Ostream_Opred__stream,type,
pred_stream:
!>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > $o ) ).
thf(sy_c_Stream_Ostream_Oshd,type,
shd:
!>[A: $tType] : ( ( stream @ A ) > A ) ).
thf(sy_c_Stream_Ostream_Osmap,type,
smap:
!>[A: $tType,Aa: $tType] : ( ( A > Aa ) > ( stream @ A ) > ( stream @ Aa ) ) ).
thf(sy_c_Stream_Ostream_Osset,type,
sset:
!>[A: $tType] : ( ( stream @ A ) > ( set @ A ) ) ).
thf(sy_c_Stream_Ostream_Ostl,type,
stl:
!>[A: $tType] : ( ( stream @ A ) > ( stream @ A ) ) ).
thf(sy_c_Stream_Ostream__all,type,
stream_all:
!>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > $o ) ).
thf(sy_c_Stream_Ostreams,type,
streams:
!>[A: $tType] : ( ( set @ A ) > ( set @ ( stream @ A ) ) ) ).
thf(sy_c_Stream_Ostreamsp,type,
streamsp:
!>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > $o ) ).
thf(sy_c_Stream_Oszip,type,
szip:
!>[A: $tType,B: $tType] : ( ( stream @ A ) > ( stream @ B ) > ( stream @ ( product_prod @ A @ B ) ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Ocopy,type,
stream2017582925e_copy:
!>[A: $tType] : ( stream1273403375_sp_nu @ A @ A ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Orun_092_060_094sub_062_092_060mu_062,type,
stream5064451run_mu:
!>[A: $tType,B: $tType,C: $tType] : ( ( stream901396144_sp_mu @ A @ B @ C ) > ( stream @ A ) > ( product_prod @ ( product_prod @ B @ C ) @ ( stream @ A ) ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Orun_092_060_094sub_062_092_060nu_062,type,
stream377071682run_nu:
!>[A: $tType,B: $tType] : ( ( stream1273403375_sp_nu @ A @ B ) > ( stream @ A ) > ( stream @ B ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_OGet,type,
stream1294929701mu_Get:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > ( stream901396144_sp_mu @ A @ B @ C ) ) > ( stream901396144_sp_mu @ A @ B @ C ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_OPut,type,
stream1370332830mu_Put:
!>[B: $tType,C: $tType,A: $tType] : ( B > C > ( stream901396144_sp_mu @ A @ B @ C ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_Omap__sp_092_060_094sub_062_092_060mu_062,type,
stream1058219438_sp_mu:
!>[B: $tType,Ba: $tType,C: $tType,Ca: $tType,A: $tType] : ( ( B > Ba ) > ( C > Ca ) > ( stream901396144_sp_mu @ A @ B @ C ) > ( stream901396144_sp_mu @ A @ Ba @ Ca ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_Opred__sp_092_060_094sub_062_092_060mu_062,type,
stream123009735_sp_mu:
!>[A: $tType,B: $tType,E: $tType] : ( ( A > $o ) > ( B > $o ) > ( stream901396144_sp_mu @ E @ A @ B ) > $o ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_Orec__sp_092_060_094sub_062_092_060mu_062,type,
stream674629690_sp_mu:
!>[A: $tType,B: $tType,C: $tType,G: $tType] : ( ( ( A > ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ G ) ) > G ) > ( B > C > G ) > ( stream901396144_sp_mu @ A @ B @ C ) > G ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_Osize__sp_092_060_094sub_062_092_060mu_062,type,
stream1362355943_sp_mu:
!>[A: $tType,B: $tType,C: $tType] : ( ( A > nat ) > ( B > nat ) > ( C > nat ) > ( stream901396144_sp_mu @ A @ B @ C ) > nat ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062__comp,type,
stream1747196112u_comp:
!>[A: $tType,B: $tType,C: $tType,D: $tType] : ( ( stream901396144_sp_mu @ A @ B @ C ) > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) > ( stream901396144_sp_mu @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062__comp2,type,
stream967973730_comp2:
!>[D: $tType,A: $tType,B: $tType,C: $tType] : ( ( stream901396144_sp_mu @ D @ A @ B ) > ( stream901396144_sp_mu @ C @ D @ ( stream1273403375_sp_nu @ C @ D ) ) > ( stream901396144_sp_mu @ C @ A @ ( product_prod @ B @ ( stream1273403375_sp_nu @ C @ D ) ) ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062__comp2R,type,
stream1312210288comp2R:
!>[A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType] : ( ( A > ( stream901396144_sp_mu @ B @ C @ ( stream1273403375_sp_nu @ B @ C ) ) > ( stream901396144_sp_mu @ D @ E @ F ) ) > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ B @ C ) ) > ( stream901396144_sp_mu @ D @ E @ F ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062__comp__rel,type,
stream592421929mp_rel:
!>[A: $tType,B: $tType,C: $tType,D: $tType] : ( ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) > ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) > $o ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062_OIn,type,
stream1686501333_nu_In:
!>[A: $tType,B: $tType] : ( ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > ( stream1273403375_sp_nu @ A @ B ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062_Ocase__sp_092_060_094sub_062_092_060nu_062,type,
stream1502363800_sp_nu:
!>[A: $tType,B: $tType,C: $tType] : ( ( ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C ) > ( stream1273403375_sp_nu @ A @ B ) > C ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062_Oout,type,
stream1200245950nu_out:
!>[A: $tType,B: $tType] : ( ( stream1273403375_sp_nu @ A @ B ) > ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062__comp,type,
stream1967106959u_comp:
!>[A: $tType,B: $tType,C: $tType] : ( ( stream1273403375_sp_nu @ A @ B ) > ( stream1273403375_sp_nu @ C @ A ) > ( stream1273403375_sp_nu @ C @ B ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062__comp2,type,
stream104478819_comp2:
!>[A: $tType,B: $tType,C: $tType] : ( ( stream1273403375_sp_nu @ A @ B ) > ( stream1273403375_sp_nu @ C @ A ) > ( stream1273403375_sp_nu @ C @ B ) ) ).
thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osub,type,
stream152839592le_sub:
!>[A: $tType,B: $tType,C: $tType] : ( set @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ A @ B @ C ) ) ) ).
thf(sy_c_Wellfounded_Oacc,type,
acc:
!>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ A ) ) ).
thf(sy_c_Wellfounded_Oaccp,type,
accp:
!>[A: $tType] : ( ( A > A > $o ) > A > $o ) ).
thf(sy_c_Wellfounded_Olex__prod,type,
lex_prod:
!>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ B @ B ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).
thf(sy_c_Wfrec_Ocut,type,
cut:
!>[A: $tType,B: $tType] : ( ( A > B ) > ( set @ ( product_prod @ A @ A ) ) > A > A > B ) ).
thf(sy_c_Wfrec_Osame__fst,type,
same_fst:
!>[A: $tType,B: $tType] : ( ( A > $o ) > ( A > ( set @ ( product_prod @ B @ B ) ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).
thf(sy_c_member,type,
member:
!>[A: $tType] : ( A > ( set @ A ) > $o ) ).
thf(sy_v_b____,type,
b2: b ).
thf(sy_v_sb____,type,
sb: stream @ a ).
thf(sy_v_sp_H_H____,type,
sp: stream1273403375_sp_nu @ c @ b ).
thf(sy_v_sp_Hb____,type,
sp_b: stream1273403375_sp_nu @ a @ c ).
thf(sy_v_spb____,type,
spb: stream1273403375_sp_nu @ c @ b ).
%----Relevant facts (242)
thf(fact_0_stream_Oexpand,axiom,
! [A: $tType,Stream: stream @ A,Stream2: stream @ A] :
( ( ( ( shd @ A @ Stream )
= ( shd @ A @ Stream2 ) )
& ( ( stl @ A @ Stream )
= ( stl @ A @ Stream2 ) ) )
=> ( Stream = Stream2 ) ) ).
% stream.expand
thf(fact_1_stream_Ocoinduct,axiom,
! [A: $tType,R: ( stream @ A ) > ( stream @ A ) > $o,Stream: stream @ A,Stream2: stream @ A] :
( ( R @ Stream @ Stream2 )
=> ( ! [Stream3: stream @ A,Stream4: stream @ A] :
( ( R @ Stream3 @ Stream4 )
=> ( ( ( shd @ A @ Stream3 )
= ( shd @ A @ Stream4 ) )
& ( R @ ( stl @ A @ Stream3 ) @ ( stl @ A @ Stream4 ) ) ) )
=> ( Stream = Stream2 ) ) ) ).
% stream.coinduct
thf(fact_2_stream_Ocoinduct__strong,axiom,
! [A: $tType,R: ( stream @ A ) > ( stream @ A ) > $o,Stream: stream @ A,Stream2: stream @ A] :
( ( R @ Stream @ Stream2 )
=> ( ! [Stream3: stream @ A,Stream4: stream @ A] :
( ( R @ Stream3 @ Stream4 )
=> ( ( ( shd @ A @ Stream3 )
= ( shd @ A @ Stream4 ) )
& ( ( R @ ( stl @ A @ Stream3 ) @ ( stl @ A @ Stream4 ) )
| ( ( stl @ A @ Stream3 )
= ( stl @ A @ Stream4 ) ) ) ) )
=> ( Stream = Stream2 ) ) ) ).
% stream.coinduct_strong
thf(fact_3_run_092_060_094sub_062_092_060nu_062__copy,axiom,
! [A: $tType,S: stream @ A] :
( ( stream377071682run_nu @ A @ A @ ( stream2017582925e_copy @ A ) @ S )
= S ) ).
% run\<^sub>\<nu>_copy
thf(fact_4_Put_Ohyps,axiom,
( ( stream1370332830mu_Put @ b @ ( stream1273403375_sp_nu @ c @ b ) @ c @ b2 @ sp )
= ( stream1200245950nu_out @ c @ b @ spb ) ) ).
% Put.hyps
thf(fact_5_stream_Ocase__eq__if,axiom,
! [B: $tType,A: $tType] :
( ( case_stream @ A @ B )
= ( ^ [F2: A > ( stream @ A ) > B,Stream5: stream @ A] : ( F2 @ ( shd @ A @ Stream5 ) @ ( stl @ A @ Stream5 ) ) ) ) ).
% stream.case_eq_if
thf(fact_6_sdrop__while_Osimps,axiom,
! [A: $tType] :
( ( sdrop_while @ A )
= ( ^ [P: A > $o,S2: stream @ A] : ( if @ ( stream @ A ) @ ( P @ ( shd @ A @ S2 ) ) @ ( sdrop_while @ A @ P @ ( stl @ A @ S2 ) ) @ S2 ) ) ) ).
% sdrop_while.simps
thf(fact_7_stream_Ocollapse,axiom,
! [A: $tType,Stream: stream @ A] :
( ( sCons @ A @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) )
= Stream ) ).
% stream.collapse
thf(fact_8_streamsE,axiom,
! [A: $tType,S: stream @ A,A2: set @ A] :
( ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) )
=> ~ ( ( member @ A @ ( shd @ A @ S ) @ A2 )
=> ~ ( member @ ( stream @ A ) @ ( stl @ A @ S ) @ ( streams @ A @ A2 ) ) ) ) ).
% streamsE
thf(fact_9_in__streams,axiom,
! [A: $tType,S: stream @ A,S3: set @ A] :
( ( member @ ( stream @ A ) @ ( stl @ A @ S ) @ ( streams @ A @ S3 ) )
=> ( ( member @ A @ ( shd @ A @ S ) @ S3 )
=> ( member @ ( stream @ A ) @ S @ ( streams @ A @ S3 ) ) ) ) ).
% in_streams
thf(fact_10_run_092_060_094sub_062_092_060mu_062_Osimps_I1_J,axiom,
! [C: $tType,B: $tType,A: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),S: stream @ A] :
( ( stream5064451run_mu @ A @ B @ C @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ S )
= ( stream5064451run_mu @ A @ B @ C @ ( F3 @ ( shd @ A @ S ) ) @ ( stl @ A @ S ) ) ) ).
% run\<^sub>\<mu>.simps(1)
thf(fact_11_sset__induct,axiom,
! [A: $tType,Y: A,S: stream @ A,P2: A > ( stream @ A ) > $o] :
( ( member @ A @ Y @ ( sset @ A @ S ) )
=> ( ! [S4: stream @ A] : ( P2 @ ( shd @ A @ S4 ) @ S4 )
=> ( ! [S4: stream @ A,Y2: A] :
( ( member @ A @ Y2 @ ( sset @ A @ ( stl @ A @ S4 ) ) )
=> ( ( P2 @ Y2 @ ( stl @ A @ S4 ) )
=> ( P2 @ Y2 @ S4 ) ) )
=> ( P2 @ Y @ S ) ) ) ) ).
% sset_induct
thf(fact_12_sp_092_060_094sub_062_092_060mu_062_Oinject_I1_J,axiom,
! [C: $tType,B: $tType,A: $tType,X1: A > ( stream901396144_sp_mu @ A @ B @ C ),Y1: A > ( stream901396144_sp_mu @ A @ B @ C )] :
( ( ( stream1294929701mu_Get @ A @ B @ C @ X1 )
= ( stream1294929701mu_Get @ A @ B @ C @ Y1 ) )
= ( X1 = Y1 ) ) ).
% sp\<^sub>\<mu>.inject(1)
thf(fact_13_stream_Oinject,axiom,
! [A: $tType,X1: A,X2: stream @ A,Y1: A,Y22: stream @ A] :
( ( ( sCons @ A @ X1 @ X2 )
= ( sCons @ A @ Y1 @ Y22 ) )
= ( ( X1 = Y1 )
& ( X2 = Y22 ) ) ) ).
% stream.inject
thf(fact_14_sp_092_060_094sub_062_092_060mu_062_Oinject_I2_J,axiom,
! [A: $tType,B: $tType,C: $tType,X21: B,X22: C,Y21: B,Y222: C] :
( ( ( stream1370332830mu_Put @ B @ C @ A @ X21 @ X22 )
= ( stream1370332830mu_Put @ B @ C @ A @ Y21 @ Y222 ) )
= ( ( X21 = Y21 )
& ( X22 = Y222 ) ) ) ).
% sp\<^sub>\<mu>.inject(2)
thf(fact_15_stream_Oset__intros_I2_J,axiom,
! [A: $tType,X: A,A22: stream @ A,A1: A] :
( ( member @ A @ X @ ( sset @ A @ A22 ) )
=> ( member @ A @ X @ ( sset @ A @ ( sCons @ A @ A1 @ A22 ) ) ) ) ).
% stream.set_intros(2)
thf(fact_16_stream_Oset__intros_I1_J,axiom,
! [A: $tType,A1: A,A22: stream @ A] : ( member @ A @ A1 @ ( sset @ A @ ( sCons @ A @ A1 @ A22 ) ) ) ).
% stream.set_intros(1)
thf(fact_17_sp_092_060_094sub_062_092_060mu_062_Odistinct_I1_J,axiom,
! [B: $tType,A: $tType,C: $tType,X1: A > ( stream901396144_sp_mu @ A @ B @ C ),X21: B,X22: C] :
( ( stream1294929701mu_Get @ A @ B @ C @ X1 )
!= ( stream1370332830mu_Put @ B @ C @ A @ X21 @ X22 ) ) ).
% sp\<^sub>\<mu>.distinct(1)
thf(fact_18_stream_Ocase,axiom,
! [B: $tType,A: $tType,F3: A > ( stream @ A ) > B,X1: A,X2: stream @ A] :
( ( case_stream @ A @ B @ F3 @ ( sCons @ A @ X1 @ X2 ) )
= ( F3 @ X1 @ X2 ) ) ).
% stream.case
thf(fact_19_streams_Ocases,axiom,
! [A: $tType,A3: stream @ A,A2: set @ A] :
( ( member @ ( stream @ A ) @ A3 @ ( streams @ A @ A2 ) )
=> ~ ! [A4: A,S4: stream @ A] :
( ( A3
= ( sCons @ A @ A4 @ S4 ) )
=> ( ( member @ A @ A4 @ A2 )
=> ~ ( member @ ( stream @ A ) @ S4 @ ( streams @ A @ A2 ) ) ) ) ) ).
% streams.cases
thf(fact_20_streams_Osimps,axiom,
! [A: $tType,A3: stream @ A,A2: set @ A] :
( ( member @ ( stream @ A ) @ A3 @ ( streams @ A @ A2 ) )
= ( ? [A5: A,S2: stream @ A] :
( ( A3
= ( sCons @ A @ A5 @ S2 ) )
& ( member @ A @ A5 @ A2 )
& ( member @ ( stream @ A ) @ S2 @ ( streams @ A @ A2 ) ) ) ) ) ).
% streams.simps
thf(fact_21_stream_Oexhaust,axiom,
! [A: $tType,Y: stream @ A] :
~ ! [X12: A,X23: stream @ A] :
( Y
!= ( sCons @ A @ X12 @ X23 ) ) ).
% stream.exhaust
thf(fact_22_streams__Stream,axiom,
! [A: $tType,X: A,S: stream @ A,A2: set @ A] :
( ( member @ ( stream @ A ) @ ( sCons @ A @ X @ S ) @ ( streams @ A @ A2 ) )
= ( ( member @ A @ X @ A2 )
& ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) ) ) ) ).
% streams_Stream
thf(fact_23_stream_Oset__cases,axiom,
! [A: $tType,E2: A,A3: stream @ A] :
( ( member @ A @ E2 @ ( sset @ A @ A3 ) )
=> ( ! [Z2: stream @ A] :
( A3
!= ( sCons @ A @ E2 @ Z2 ) )
=> ~ ! [Z1: A,Z2: stream @ A] :
( ( A3
= ( sCons @ A @ Z1 @ Z2 ) )
=> ~ ( member @ A @ E2 @ ( sset @ A @ Z2 ) ) ) ) ) ).
% stream.set_cases
thf(fact_24_streams_Ocoinduct,axiom,
! [A: $tType,X3: ( stream @ A ) > $o,X: stream @ A,A2: set @ A] :
( ( X3 @ X )
=> ( ! [X4: stream @ A] :
( ( X3 @ X4 )
=> ? [A6: A,S5: stream @ A] :
( ( X4
= ( sCons @ A @ A6 @ S5 ) )
& ( member @ A @ A6 @ A2 )
& ( ( X3 @ S5 )
| ( member @ ( stream @ A ) @ S5 @ ( streams @ A @ A2 ) ) ) ) )
=> ( member @ ( stream @ A ) @ X @ ( streams @ A @ A2 ) ) ) ) ).
% streams.coinduct
thf(fact_25_sdrop__while__SCons,axiom,
! [A: $tType,P2: A > $o,A3: A,S: stream @ A] :
( ( ( P2 @ A3 )
=> ( ( sdrop_while @ A @ P2 @ ( sCons @ A @ A3 @ S ) )
= ( sdrop_while @ A @ P2 @ S ) ) )
& ( ~ ( P2 @ A3 )
=> ( ( sdrop_while @ A @ P2 @ ( sCons @ A @ A3 @ S ) )
= ( sCons @ A @ A3 @ S ) ) ) ) ).
% sdrop_while_SCons
thf(fact_26_stream_Oset__induct,axiom,
! [A: $tType,X: A,A3: stream @ A,P2: A > ( stream @ A ) > $o] :
( ( member @ A @ X @ ( sset @ A @ A3 ) )
=> ( ! [Z1: A,Z2: stream @ A] : ( P2 @ Z1 @ ( sCons @ A @ Z1 @ Z2 ) )
=> ( ! [Z1: A,Z2: stream @ A,Xa: A] :
( ( member @ A @ Xa @ ( sset @ A @ Z2 ) )
=> ( ( P2 @ Xa @ Z2 )
=> ( P2 @ Xa @ ( sCons @ A @ Z1 @ Z2 ) ) ) )
=> ( P2 @ X @ A3 ) ) ) ) ).
% stream.set_induct
thf(fact_27_sp_092_060_094sub_062_092_060nu_062_Oexpand,axiom,
! [B: $tType,A: $tType,Sp_nu: stream1273403375_sp_nu @ A @ B,Sp_nu2: stream1273403375_sp_nu @ A @ B] :
( ( ( stream1200245950nu_out @ A @ B @ Sp_nu )
= ( stream1200245950nu_out @ A @ B @ Sp_nu2 ) )
=> ( Sp_nu = Sp_nu2 ) ) ).
% sp\<^sub>\<nu>.expand
thf(fact_28_sp_092_060_094sub_062_092_060mu_062_Oexhaust,axiom,
! [B: $tType,A: $tType,C: $tType,Y: stream901396144_sp_mu @ A @ B @ C] :
( ! [X12: A > ( stream901396144_sp_mu @ A @ B @ C )] :
( Y
!= ( stream1294929701mu_Get @ A @ B @ C @ X12 ) )
=> ~ ! [X212: B,X222: C] :
( Y
!= ( stream1370332830mu_Put @ B @ C @ A @ X212 @ X222 ) ) ) ).
% sp\<^sub>\<mu>.exhaust
thf(fact_29_sp_092_060_094sub_062_092_060mu_062__comp_Oinduct,axiom,
! [B: $tType,C: $tType,A: $tType,D: $tType,P2: ( stream901396144_sp_mu @ A @ B @ C ) > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) > $o,A0: stream901396144_sp_mu @ A @ B @ C,A1: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
( ! [B2: B,Sp: C,X12: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] : ( P2 @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ X12 )
=> ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
( ( P2 @ ( F4 @ B2 ) @ ( stream1200245950nu_out @ D @ A @ Sp ) )
=> ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) )
=> ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
( ! [X5: D] : ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( G2 @ X5 ) )
=> ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) )
=> ( P2 @ A0 @ A1 ) ) ) ) ).
% sp\<^sub>\<mu>_comp.induct
thf(fact_30_stream_Osel_I2_J,axiom,
! [A: $tType,X1: A,X2: stream @ A] :
( ( stl @ A @ ( sCons @ A @ X1 @ X2 ) )
= X2 ) ).
% stream.sel(2)
thf(fact_31_stream_Osel_I1_J,axiom,
! [A: $tType,X1: A,X2: stream @ A] :
( ( shd @ A @ ( sCons @ A @ X1 @ X2 ) )
= X1 ) ).
% stream.sel(1)
thf(fact_32_stl__sset,axiom,
! [A: $tType,X: A,A3: stream @ A] :
( ( member @ A @ X @ ( sset @ A @ ( stl @ A @ A3 ) ) )
=> ( member @ A @ X @ ( sset @ A @ A3 ) ) ) ).
% stl_sset
thf(fact_33_shd__sset,axiom,
! [A: $tType,A3: stream @ A] : ( member @ A @ ( shd @ A @ A3 ) @ ( sset @ A @ A3 ) ) ).
% shd_sset
thf(fact_34_streams__stl,axiom,
! [A: $tType,S: stream @ A,A2: set @ A] :
( ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) )
=> ( member @ ( stream @ A ) @ ( stl @ A @ S ) @ ( streams @ A @ A2 ) ) ) ).
% streams_stl
thf(fact_35_streams__shd,axiom,
! [A: $tType,S: stream @ A,A2: set @ A] :
( ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) )
=> ( member @ A @ ( shd @ A @ S ) @ A2 ) ) ).
% streams_shd
thf(fact_36_stream_Osplit__sel__asm,axiom,
! [B: $tType,A: $tType,P2: B > $o,F3: A > ( stream @ A ) > B,Stream: stream @ A] :
( ( P2 @ ( case_stream @ A @ B @ F3 @ Stream ) )
= ( ~ ( ( Stream
= ( sCons @ A @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) )
& ~ ( P2 @ ( F3 @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) ) ) ) ) ).
% stream.split_sel_asm
thf(fact_37_stream_Osplit__sel,axiom,
! [B: $tType,A: $tType,P2: B > $o,F3: A > ( stream @ A ) > B,Stream: stream @ A] :
( ( P2 @ ( case_stream @ A @ B @ F3 @ Stream ) )
= ( ( Stream
= ( sCons @ A @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) )
=> ( P2 @ ( F3 @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) ) ) ) ).
% stream.split_sel
thf(fact_38_stream_Oexhaust__sel,axiom,
! [A: $tType,Stream: stream @ A] :
( Stream
= ( sCons @ A @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) ) ).
% stream.exhaust_sel
thf(fact_39_smember__code,axiom,
! [A: $tType,X: A,Y: A,S: stream @ A] :
( ( smember @ A @ X @ ( sCons @ A @ Y @ S ) )
= ( ( X != Y )
=> ( smember @ A @ X @ S ) ) ) ).
% smember_code
thf(fact_40_sp_092_060_094sub_062_092_060mu_062__comp2R_Osimps_I1_J,axiom,
! [A: $tType,F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,F3: A > ( stream901396144_sp_mu @ B @ C @ ( stream1273403375_sp_nu @ B @ C ) ) > ( stream901396144_sp_mu @ D @ E @ F ),B3: A,Sp2: stream1273403375_sp_nu @ B @ C] :
( ( stream1312210288comp2R @ A @ B @ C @ D @ E @ F @ F3 @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ B @ C ) @ D @ B3 @ Sp2 ) )
= ( F3 @ B3 @ ( stream1200245950nu_out @ B @ C @ Sp2 ) ) ) ).
% sp\<^sub>\<mu>_comp2R.simps(1)
thf(fact_41_sinterleave_Ocode,axiom,
! [A: $tType] :
( ( sinterleave @ A )
= ( ^ [S1: stream @ A,S22: stream @ A] : ( sCons @ A @ ( shd @ A @ S1 ) @ ( sinterleave @ A @ S22 @ ( stl @ A @ S1 ) ) ) ) ) ).
% sinterleave.code
thf(fact_42_sp_092_060_094sub_062_092_060mu_062__comp_Osimps_I2_J,axiom,
! [C: $tType,B: $tType,A: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),B3: A,Sp2: stream1273403375_sp_nu @ D @ A] :
( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B3 @ Sp2 ) )
= ( stream1747196112u_comp @ A @ B @ C @ D @ ( F3 @ B3 ) @ ( stream1200245950nu_out @ D @ A @ Sp2 ) ) ) ).
% sp\<^sub>\<mu>_comp.simps(2)
thf(fact_43_smap2_Ocode,axiom,
! [C: $tType,B: $tType,A: $tType] :
( ( smap2 @ A @ B @ C )
= ( ^ [F2: A > B > C,S1: stream @ A,S22: stream @ B] : ( sCons @ C @ ( F2 @ ( shd @ A @ S1 ) @ ( shd @ B @ S22 ) ) @ ( smap2 @ A @ B @ C @ F2 @ ( stl @ A @ S1 ) @ ( stl @ B @ S22 ) ) ) ) ) ).
% smap2.code
thf(fact_44_Stream_Osmember__def,axiom,
! [A: $tType] :
( ( smember @ A )
= ( ^ [X6: A,S2: stream @ A] : ( member @ A @ X6 @ ( sset @ A @ S2 ) ) ) ) ).
% Stream.smember_def
thf(fact_45_mem__Collect__eq,axiom,
! [A: $tType,A3: A,P2: A > $o] :
( ( member @ A @ A3 @ ( collect @ A @ P2 ) )
= ( P2 @ A3 ) ) ).
% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
! [A: $tType,A2: set @ A] :
( ( collect @ A
@ ^ [X6: A] : ( member @ A @ X6 @ A2 ) )
= A2 ) ).
% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
! [A: $tType,P2: A > $o,Q: A > $o] :
( ! [X4: A] :
( ( P2 @ X4 )
= ( Q @ X4 ) )
=> ( ( collect @ A @ P2 )
= ( collect @ A @ Q ) ) ) ).
% Collect_cong
thf(fact_48_ext,axiom,
! [B: $tType,A: $tType,F3: A > B,G3: A > B] :
( ! [X4: A] :
( ( F3 @ X4 )
= ( G3 @ X4 ) )
=> ( F3 = G3 ) ) ).
% ext
thf(fact_49_sp_092_060_094sub_062_092_060mu_062__comp_Ocases,axiom,
! [B: $tType,C: $tType,A: $tType,D: $tType,X: product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
( ! [B2: B,Sp: C,Fsp: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
( X
!= ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ Fsp ) )
=> ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
( X
!= ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) )
=> ~ ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
( X
!= ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) ) ) ) ).
% sp\<^sub>\<mu>_comp.cases
thf(fact_50_smap__ctr,axiom,
! [B: $tType,A: $tType,F3: B > A,S: stream @ B,X: A,S6: stream @ A] :
( ( ( smap @ B @ A @ F3 @ S )
= ( sCons @ A @ X @ S6 ) )
= ( ( ( F3 @ ( shd @ B @ S ) )
= X )
& ( ( smap @ B @ A @ F3 @ ( stl @ B @ S ) )
= S6 ) ) ) ).
% smap_ctr
thf(fact_51_sfilter_Ocode,axiom,
! [A: $tType] :
( ( sfilter @ A )
= ( ^ [P: A > $o,S2: stream @ A] : ( sCons @ A @ ( shd @ A @ ( sdrop_while @ A @ ( comp @ $o @ $o @ A @ (~) @ P ) @ S2 ) ) @ ( sfilter @ A @ P @ ( stl @ A @ ( sdrop_while @ A @ ( comp @ $o @ $o @ A @ (~) @ P ) @ S2 ) ) ) ) ) ) ).
% sfilter.code
thf(fact_52_stream_Oset,axiom,
! [A: $tType,X1: A,X2: stream @ A] :
( ( sset @ A @ ( sCons @ A @ X1 @ X2 ) )
= ( insert @ A @ X1 @ ( sset @ A @ X2 ) ) ) ).
% stream.set
thf(fact_53_stream__all__Stream,axiom,
! [A: $tType,P2: A > $o,X: A,X3: stream @ A] :
( ( stream_all @ A @ P2 @ ( sCons @ A @ X @ X3 ) )
= ( ( P2 @ X )
& ( stream_all @ A @ P2 @ X3 ) ) ) ).
% stream_all_Stream
thf(fact_54_stream_Omap__sel_I2_J,axiom,
! [B: $tType,A: $tType,F3: A > B,A3: stream @ A] :
( ( stl @ B @ ( smap @ A @ B @ F3 @ A3 ) )
= ( smap @ A @ B @ F3 @ ( stl @ A @ A3 ) ) ) ).
% stream.map_sel(2)
thf(fact_55_stream_Omap__sel_I1_J,axiom,
! [B: $tType,A: $tType,F3: A > B,A3: stream @ A] :
( ( shd @ B @ ( smap @ A @ B @ F3 @ A3 ) )
= ( F3 @ ( shd @ A @ A3 ) ) ) ).
% stream.map_sel(1)
thf(fact_56_stream_Omap__comp,axiom,
! [B: $tType,C: $tType,A: $tType,G3: B > C,F3: A > B,V: stream @ A] :
( ( smap @ B @ C @ G3 @ ( smap @ A @ B @ F3 @ V ) )
= ( smap @ A @ C @ ( comp @ B @ C @ A @ G3 @ F3 ) @ V ) ) ).
% stream.map_comp
thf(fact_57_run_092_060_094sub_062_092_060mu_062_Osimps_I2_J,axiom,
! [C: $tType,B: $tType,A: $tType,B3: B,Sp2: C,S: stream @ A] :
( ( stream5064451run_mu @ A @ B @ C @ ( stream1370332830mu_Put @ B @ C @ A @ B3 @ Sp2 ) @ S )
= ( product_Pair @ ( product_prod @ B @ C ) @ ( stream @ A ) @ ( product_Pair @ B @ C @ B3 @ Sp2 ) @ S ) ) ).
% run\<^sub>\<mu>.simps(2)
thf(fact_58_stream_Omap,axiom,
! [B: $tType,A: $tType,F3: A > B,X1: A,X2: stream @ A] :
( ( smap @ A @ B @ F3 @ ( sCons @ A @ X1 @ X2 ) )
= ( sCons @ B @ ( F3 @ X1 ) @ ( smap @ A @ B @ F3 @ X2 ) ) ) ).
% stream.map
thf(fact_59_stream_Oinj__map__strong,axiom,
! [B: $tType,A: $tType,X: stream @ A,Xa2: stream @ A,F3: A > B,Fa: A > B] :
( ! [Z: A,Za: A] :
( ( member @ A @ Z @ ( sset @ A @ X ) )
=> ( ( member @ A @ Za @ ( sset @ A @ Xa2 ) )
=> ( ( ( F3 @ Z )
= ( Fa @ Za ) )
=> ( Z = Za ) ) ) )
=> ( ( ( smap @ A @ B @ F3 @ X )
= ( smap @ A @ B @ Fa @ Xa2 ) )
=> ( X = Xa2 ) ) ) ).
% stream.inj_map_strong
thf(fact_60_stream_Omap__cong0,axiom,
! [B: $tType,A: $tType,X: stream @ A,F3: A > B,G3: A > B] :
( ! [Z: A] :
( ( member @ A @ Z @ ( sset @ A @ X ) )
=> ( ( F3 @ Z )
= ( G3 @ Z ) ) )
=> ( ( smap @ A @ B @ F3 @ X )
= ( smap @ A @ B @ G3 @ X ) ) ) ).
% stream.map_cong0
thf(fact_61_stream_Omap__cong,axiom,
! [B: $tType,A: $tType,X: stream @ A,Ya: stream @ A,F3: A > B,G3: A > B] :
( ( X = Ya )
=> ( ! [Z: A] :
( ( member @ A @ Z @ ( sset @ A @ Ya ) )
=> ( ( F3 @ Z )
= ( G3 @ Z ) ) )
=> ( ( smap @ A @ B @ F3 @ X )
= ( smap @ A @ B @ G3 @ Ya ) ) ) ) ).
% stream.map_cong
thf(fact_62_smap__streams,axiom,
! [A: $tType,B: $tType,S: stream @ A,A2: set @ A,F3: A > B,B4: set @ B] :
( ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) )
=> ( ! [X4: A] :
( ( member @ A @ X4 @ A2 )
=> ( member @ B @ ( F3 @ X4 ) @ B4 ) )
=> ( member @ ( stream @ B ) @ ( smap @ A @ B @ F3 @ S ) @ ( streams @ B @ B4 ) ) ) ) ).
% smap_streams
thf(fact_63_sfilter_Osimps_I2_J,axiom,
! [A: $tType,P2: A > $o,S: stream @ A] :
( ( stl @ A @ ( sfilter @ A @ P2 @ S ) )
= ( sfilter @ A @ P2 @ ( stl @ A @ ( sdrop_while @ A @ ( comp @ $o @ $o @ A @ (~) @ P2 ) @ S ) ) ) ) ).
% sfilter.simps(2)
thf(fact_64_sfilter_Osimps_I1_J,axiom,
! [A: $tType,P2: A > $o,S: stream @ A] :
( ( shd @ A @ ( sfilter @ A @ P2 @ S ) )
= ( shd @ A @ ( sdrop_while @ A @ ( comp @ $o @ $o @ A @ (~) @ P2 ) @ S ) ) ) ).
% sfilter.simps(1)
thf(fact_65_smap2__unfold,axiom,
! [B: $tType,A: $tType,C: $tType,F3: B > C > A,A3: B,S12: stream @ B,B3: C,S23: stream @ C] :
( ( smap2 @ B @ C @ A @ F3 @ ( sCons @ B @ A3 @ S12 ) @ ( sCons @ C @ B3 @ S23 ) )
= ( sCons @ A @ ( F3 @ A3 @ B3 ) @ ( smap2 @ B @ C @ A @ F3 @ S12 @ S23 ) ) ) ).
% smap2_unfold
thf(fact_66_smap2_Osimps_I2_J,axiom,
! [A: $tType,C: $tType,B: $tType,F3: A > B > C,S12: stream @ A,S23: stream @ B] :
( ( stl @ C @ ( smap2 @ A @ B @ C @ F3 @ S12 @ S23 ) )
= ( smap2 @ A @ B @ C @ F3 @ ( stl @ A @ S12 ) @ ( stl @ B @ S23 ) ) ) ).
% smap2.simps(2)
thf(fact_67_smap2_Osimps_I1_J,axiom,
! [A: $tType,C: $tType,B: $tType,F3: A > B > C,S12: stream @ A,S23: stream @ B] :
( ( shd @ C @ ( smap2 @ A @ B @ C @ F3 @ S12 @ S23 ) )
= ( F3 @ ( shd @ A @ S12 ) @ ( shd @ B @ S23 ) ) ) ).
% smap2.simps(1)
thf(fact_68_sinterleave__code,axiom,
! [A: $tType,X: A,S12: stream @ A,S23: stream @ A] :
( ( sinterleave @ A @ ( sCons @ A @ X @ S12 ) @ S23 )
= ( sCons @ A @ X @ ( sinterleave @ A @ S23 @ S12 ) ) ) ).
% sinterleave_code
thf(fact_69_sinterleave_Osimps_I2_J,axiom,
! [A: $tType,S12: stream @ A,S23: stream @ A] :
( ( stl @ A @ ( sinterleave @ A @ S12 @ S23 ) )
= ( sinterleave @ A @ S23 @ ( stl @ A @ S12 ) ) ) ).
% sinterleave.simps(2)
thf(fact_70_sinterleave_Osimps_I1_J,axiom,
! [A: $tType,S12: stream @ A,S23: stream @ A] :
( ( shd @ A @ ( sinterleave @ A @ S12 @ S23 ) )
= ( shd @ A @ S12 ) ) ).
% sinterleave.simps(1)
thf(fact_71_sfilter__Stream,axiom,
! [A: $tType,P2: A > $o,X: A,S: stream @ A] :
( ( ( P2 @ X )
=> ( ( sfilter @ A @ P2 @ ( sCons @ A @ X @ S ) )
= ( sCons @ A @ X @ ( sfilter @ A @ P2 @ S ) ) ) )
& ( ~ ( P2 @ X )
=> ( ( sfilter @ A @ P2 @ ( sCons @ A @ X @ S ) )
= ( sfilter @ A @ P2 @ S ) ) ) ) ).
% sfilter_Stream
thf(fact_72_subI,axiom,
! [C: $tType,B: $tType,A: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),A3: A] : ( member @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ A @ B @ C ) ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( F3 @ A3 ) @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) ) @ ( stream152839592le_sub @ A @ B @ C ) ) ).
% subI
thf(fact_73_insert__absorb2,axiom,
! [A: $tType,X: A,A2: set @ A] :
( ( insert @ A @ X @ ( insert @ A @ X @ A2 ) )
= ( insert @ A @ X @ A2 ) ) ).
% insert_absorb2
thf(fact_74_insert__iff,axiom,
! [A: $tType,A3: A,B3: A,A2: set @ A] :
( ( member @ A @ A3 @ ( insert @ A @ B3 @ A2 ) )
= ( ( A3 = B3 )
| ( member @ A @ A3 @ A2 ) ) ) ).
% insert_iff
thf(fact_75_insertCI,axiom,
! [A: $tType,A3: A,B4: set @ A,B3: A] :
( ( ~ ( member @ A @ A3 @ B4 )
=> ( A3 = B3 ) )
=> ( member @ A @ A3 @ ( insert @ A @ B3 @ B4 ) ) ) ).
% insertCI
thf(fact_76_comp__apply,axiom,
! [C: $tType,A: $tType,B: $tType] :
( ( comp @ B @ A @ C )
= ( ^ [F2: B > A,G4: C > B,X6: C] : ( F2 @ ( G4 @ X6 ) ) ) ) ).
% comp_apply
thf(fact_77_old_Oprod_Oinject,axiom,
! [A: $tType,B: $tType,A3: A,B3: B,A7: A,B5: B] :
( ( ( product_Pair @ A @ B @ A3 @ B3 )
= ( product_Pair @ A @ B @ A7 @ B5 ) )
= ( ( A3 = A7 )
& ( B3 = B5 ) ) ) ).
% old.prod.inject
thf(fact_78_prod_Oinject,axiom,
! [A: $tType,B: $tType,X1: A,X2: B,Y1: A,Y22: B] :
( ( ( product_Pair @ A @ B @ X1 @ X2 )
= ( product_Pair @ A @ B @ Y1 @ Y22 ) )
= ( ( X1 = Y1 )
& ( X2 = Y22 ) ) ) ).
% prod.inject
thf(fact_79_szip_Ocode,axiom,
! [B: $tType,A: $tType] :
( ( szip @ A @ B )
= ( ^ [S1: stream @ A,S22: stream @ B] : ( sCons @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ ( shd @ A @ S1 ) @ ( shd @ B @ S22 ) ) @ ( szip @ A @ B @ ( stl @ A @ S1 ) @ ( stl @ B @ S22 ) ) ) ) ) ).
% szip.code
thf(fact_80_szip_Osimps_I2_J,axiom,
! [A: $tType,B: $tType,S12: stream @ A,S23: stream @ B] :
( ( stl @ ( product_prod @ A @ B ) @ ( szip @ A @ B @ S12 @ S23 ) )
= ( szip @ A @ B @ ( stl @ A @ S12 ) @ ( stl @ B @ S23 ) ) ) ).
% szip.simps(2)
thf(fact_81_surj__pair,axiom,
! [A: $tType,B: $tType,P3: product_prod @ A @ B] :
? [X4: A,Y2: B] :
( P3
= ( product_Pair @ A @ B @ X4 @ Y2 ) ) ).
% surj_pair
thf(fact_82_prod__cases,axiom,
! [B: $tType,A: $tType,P2: ( product_prod @ A @ B ) > $o,P3: product_prod @ A @ B] :
( ! [A4: A,B2: B] : ( P2 @ ( product_Pair @ A @ B @ A4 @ B2 ) )
=> ( P2 @ P3 ) ) ).
% prod_cases
thf(fact_83_Pair__inject,axiom,
! [A: $tType,B: $tType,A3: A,B3: B,A7: A,B5: B] :
( ( ( product_Pair @ A @ B @ A3 @ B3 )
= ( product_Pair @ A @ B @ A7 @ B5 ) )
=> ~ ( ( A3 = A7 )
=> ( B3 != B5 ) ) ) ).
% Pair_inject
thf(fact_84_prod__cases3,axiom,
! [A: $tType,B: $tType,C: $tType,Y: product_prod @ A @ ( product_prod @ B @ C )] :
~ ! [A4: A,B2: B,C2: C] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B2 @ C2 ) ) ) ).
% prod_cases3
thf(fact_85_prod__cases4,axiom,
! [A: $tType,B: $tType,C: $tType,D: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
~ ! [A4: A,B2: B,C2: C,D2: D] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B2 @ ( product_Pair @ C @ D @ C2 @ D2 ) ) ) ) ).
% prod_cases4
thf(fact_86_prod__cases5,axiom,
! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
~ ! [A4: A,B2: B,C2: C,D2: D,E3: E] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C2 @ ( product_Pair @ D @ E @ D2 @ E3 ) ) ) ) ) ).
% prod_cases5
thf(fact_87_prod__cases6,axiom,
! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) )] :
~ ! [A4: A,B2: B,C2: C,D2: D,E3: E,F4: F] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E @ F ) @ D2 @ ( product_Pair @ E @ F @ E3 @ F4 ) ) ) ) ) ) ).
% prod_cases6
thf(fact_88_prod__cases7,axiom,
! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,G: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) )] :
~ ! [A4: A,B2: B,C2: C,D2: D,E3: E,F4: F,G2: G] :
( Y
!= ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F @ G ) @ E3 @ ( product_Pair @ F @ G @ F4 @ G2 ) ) ) ) ) ) ) ).
% prod_cases7
thf(fact_89_prod__induct3,axiom,
! [C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ C )] :
( ! [A4: A,B2: B,C2: C] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B2 @ C2 ) ) )
=> ( P2 @ X ) ) ).
% prod_induct3
thf(fact_90_prod__induct4,axiom,
! [D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
( ! [A4: A,B2: B,C2: C,D2: D] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B2 @ ( product_Pair @ C @ D @ C2 @ D2 ) ) ) )
=> ( P2 @ X ) ) ).
% prod_induct4
thf(fact_91_prod__induct5,axiom,
! [E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
( ! [A4: A,B2: B,C2: C,D2: D,E3: E] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C2 @ ( product_Pair @ D @ E @ D2 @ E3 ) ) ) ) )
=> ( P2 @ X ) ) ).
% prod_induct5
thf(fact_92_prod__induct6,axiom,
! [F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) )] :
( ! [A4: A,B2: B,C2: C,D2: D,E3: E,F4: F] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E @ F ) @ D2 @ ( product_Pair @ E @ F @ E3 @ F4 ) ) ) ) ) )
=> ( P2 @ X ) ) ).
% prod_induct6
thf(fact_93_prod__induct7,axiom,
! [G: $tType,F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) )] :
( ! [A4: A,B2: B,C2: C,D2: D,E3: E,F4: F,G2: G] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F @ G ) @ E3 @ ( product_Pair @ F @ G @ F4 @ G2 ) ) ) ) ) ) )
=> ( P2 @ X ) ) ).
% prod_induct7
thf(fact_94_old_Oprod_Oexhaust,axiom,
! [A: $tType,B: $tType,Y: product_prod @ A @ B] :
~ ! [A4: A,B2: B] :
( Y
!= ( product_Pair @ A @ B @ A4 @ B2 ) ) ).
% old.prod.exhaust
thf(fact_95_old_Oprod_Oinducts,axiom,
! [B: $tType,A: $tType,P2: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
( ! [A4: A,B2: B] : ( P2 @ ( product_Pair @ A @ B @ A4 @ B2 ) )
=> ( P2 @ Prod ) ) ).
% old.prod.inducts
thf(fact_96_comp__def,axiom,
! [A: $tType,C: $tType,B: $tType] :
( ( comp @ B @ C @ A )
= ( ^ [F2: B > C,G4: A > B,X6: A] : ( F2 @ ( G4 @ X6 ) ) ) ) ).
% comp_def
thf(fact_97_comp__assoc,axiom,
! [B: $tType,D: $tType,C: $tType,A: $tType,F3: D > B,G3: C > D,H: A > C] :
( ( comp @ C @ B @ A @ ( comp @ D @ B @ C @ F3 @ G3 ) @ H )
= ( comp @ D @ B @ A @ F3 @ ( comp @ C @ D @ A @ G3 @ H ) ) ) ).
% comp_assoc
thf(fact_98_comp__eq__dest,axiom,
! [C: $tType,B: $tType,D: $tType,A: $tType,A3: C > B,B3: A > C,C3: D > B,D3: A > D,V: A] :
( ( ( comp @ C @ B @ A @ A3 @ B3 )
= ( comp @ D @ B @ A @ C3 @ D3 ) )
=> ( ( A3 @ ( B3 @ V ) )
= ( C3 @ ( D3 @ V ) ) ) ) ).
% comp_eq_dest
thf(fact_99_comp__eq__elim,axiom,
! [C: $tType,B: $tType,D: $tType,A: $tType,A3: C > B,B3: A > C,C3: D > B,D3: A > D] :
( ( ( comp @ C @ B @ A @ A3 @ B3 )
= ( comp @ D @ B @ A @ C3 @ D3 ) )
=> ! [V2: A] :
( ( A3 @ ( B3 @ V2 ) )
= ( C3 @ ( D3 @ V2 ) ) ) ) ).
% comp_eq_elim
thf(fact_100_comp__eq__dest__lhs,axiom,
! [C: $tType,B: $tType,A: $tType,A3: C > B,B3: A > C,C3: A > B,V: A] :
( ( ( comp @ C @ B @ A @ A3 @ B3 )
= C3 )
=> ( ( A3 @ ( B3 @ V ) )
= ( C3 @ V ) ) ) ).
% comp_eq_dest_lhs
thf(fact_101_insertE,axiom,
! [A: $tType,A3: A,B3: A,A2: set @ A] :
( ( member @ A @ A3 @ ( insert @ A @ B3 @ A2 ) )
=> ( ( A3 != B3 )
=> ( member @ A @ A3 @ A2 ) ) ) ).
% insertE
thf(fact_102_insertI1,axiom,
! [A: $tType,A3: A,B4: set @ A] : ( member @ A @ A3 @ ( insert @ A @ A3 @ B4 ) ) ).
% insertI1
thf(fact_103_insertI2,axiom,
! [A: $tType,A3: A,B4: set @ A,B3: A] :
( ( member @ A @ A3 @ B4 )
=> ( member @ A @ A3 @ ( insert @ A @ B3 @ B4 ) ) ) ).
% insertI2
thf(fact_104_Set_Oset__insert,axiom,
! [A: $tType,X: A,A2: set @ A] :
( ( member @ A @ X @ A2 )
=> ~ ! [B6: set @ A] :
( ( A2
= ( insert @ A @ X @ B6 ) )
=> ( member @ A @ X @ B6 ) ) ) ).
% Set.set_insert
thf(fact_105_insert__ident,axiom,
! [A: $tType,X: A,A2: set @ A,B4: set @ A] :
( ~ ( member @ A @ X @ A2 )
=> ( ~ ( member @ A @ X @ B4 )
=> ( ( ( insert @ A @ X @ A2 )
= ( insert @ A @ X @ B4 ) )
= ( A2 = B4 ) ) ) ) ).
% insert_ident
thf(fact_106_insert__absorb,axiom,
! [A: $tType,A3: A,A2: set @ A] :
( ( member @ A @ A3 @ A2 )
=> ( ( insert @ A @ A3 @ A2 )
= A2 ) ) ).
% insert_absorb
thf(fact_107_insert__eq__iff,axiom,
! [A: $tType,A3: A,A2: set @ A,B3: A,B4: set @ A] :
( ~ ( member @ A @ A3 @ A2 )
=> ( ~ ( member @ A @ B3 @ B4 )
=> ( ( ( insert @ A @ A3 @ A2 )
= ( insert @ A @ B3 @ B4 ) )
= ( ( ( A3 = B3 )
=> ( A2 = B4 ) )
& ( ( A3 != B3 )
=> ? [C4: set @ A] :
( ( A2
= ( insert @ A @ B3 @ C4 ) )
& ~ ( member @ A @ B3 @ C4 )
& ( B4
= ( insert @ A @ A3 @ C4 ) )
& ~ ( member @ A @ A3 @ C4 ) ) ) ) ) ) ) ).
% insert_eq_iff
thf(fact_108_insert__commute,axiom,
! [A: $tType,X: A,Y: A,A2: set @ A] :
( ( insert @ A @ X @ ( insert @ A @ Y @ A2 ) )
= ( insert @ A @ Y @ ( insert @ A @ X @ A2 ) ) ) ).
% insert_commute
thf(fact_109_mk__disjoint__insert,axiom,
! [A: $tType,A3: A,A2: set @ A] :
( ( member @ A @ A3 @ A2 )
=> ? [B6: set @ A] :
( ( A2
= ( insert @ A @ A3 @ B6 ) )
& ~ ( member @ A @ A3 @ B6 ) ) ) ).
% mk_disjoint_insert
thf(fact_110_szip__unfold,axiom,
! [A: $tType,B: $tType,A3: A,S12: stream @ A,B3: B,S23: stream @ B] :
( ( szip @ A @ B @ ( sCons @ A @ A3 @ S12 ) @ ( sCons @ B @ B3 @ S23 ) )
= ( sCons @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ ( szip @ A @ B @ S12 @ S23 ) ) ) ).
% szip_unfold
thf(fact_111_szip_Osimps_I1_J,axiom,
! [A: $tType,B: $tType,S12: stream @ A,S23: stream @ B] :
( ( shd @ ( product_prod @ A @ B ) @ ( szip @ A @ B @ S12 @ S23 ) )
= ( product_Pair @ A @ B @ ( shd @ A @ S12 ) @ ( shd @ B @ S23 ) ) ) ).
% szip.simps(1)
thf(fact_112_sp_092_060_094sub_062_092_060mu_062__comp2R_Osimps_I2_J,axiom,
! [E: $tType,F: $tType,C: $tType,B: $tType,A: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ B @ C @ ( stream1273403375_sp_nu @ B @ C ) ) > ( stream901396144_sp_mu @ D @ E @ F ),H: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ B @ C ) )] :
( ( stream1312210288comp2R @ A @ B @ C @ D @ E @ F @ F3 @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ B @ C ) @ H ) )
= ( stream1294929701mu_Get @ D @ E @ F @ ( comp @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ B @ C ) ) @ ( stream901396144_sp_mu @ D @ E @ F ) @ D @ ( stream1312210288comp2R @ A @ B @ C @ D @ E @ F @ F3 ) @ H ) ) ) ).
% sp\<^sub>\<mu>_comp2R.simps(2)
thf(fact_113_old_Oprod_Orec,axiom,
! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A3: A,B3: B] :
( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A3 @ B3 ) )
= ( F1 @ A3 @ B3 ) ) ).
% old.prod.rec
thf(fact_114_sp_092_060_094sub_062_092_060mu_062__comp_Opinduct,axiom,
! [B: $tType,C: $tType,A: $tType,D: $tType,A0: stream901396144_sp_mu @ A @ B @ C,A1: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ),P2: ( stream901396144_sp_mu @ A @ B @ C ) > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) > $o] :
( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ A0 @ A1 ) )
=> ( ! [B2: B,Sp: C,Fsp: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ Fsp ) )
=> ( P2 @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ Fsp ) )
=> ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) )
=> ( ( P2 @ ( F4 @ B2 ) @ ( stream1200245950nu_out @ D @ A @ Sp ) )
=> ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) ) )
=> ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) )
=> ( ! [X5: D] : ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( G2 @ X5 ) )
=> ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) ) )
=> ( P2 @ A0 @ A1 ) ) ) ) ) ).
% sp\<^sub>\<mu>_comp.pinduct
thf(fact_115_internal__case__prod__conv,axiom,
! [B: $tType,A: $tType,C: $tType,C3: B > C > A,A3: B,B3: C] :
( ( produc2004651681e_prod @ B @ C @ A @ C3 @ ( product_Pair @ B @ C @ A3 @ B3 ) )
= ( C3 @ A3 @ B3 ) ) ).
% internal_case_prod_conv
thf(fact_116_sp_092_060_094sub_062_092_060mu_062__comp2_Osimps_I2_J,axiom,
! [A: $tType,B: $tType,D: $tType,C: $tType,F3: D > ( stream901396144_sp_mu @ D @ A @ B ),Fsp2: stream901396144_sp_mu @ C @ D @ ( stream1273403375_sp_nu @ C @ D )] :
( ( stream967973730_comp2 @ D @ A @ B @ C @ ( stream1294929701mu_Get @ D @ A @ B @ F3 ) @ Fsp2 )
= ( stream1312210288comp2R @ D @ C @ D @ C @ A @ ( product_prod @ B @ ( stream1273403375_sp_nu @ C @ D ) ) @ ( comp @ ( stream901396144_sp_mu @ D @ A @ B ) @ ( ( stream901396144_sp_mu @ C @ D @ ( stream1273403375_sp_nu @ C @ D ) ) > ( stream901396144_sp_mu @ C @ A @ ( product_prod @ B @ ( stream1273403375_sp_nu @ C @ D ) ) ) ) @ D @ ( stream967973730_comp2 @ D @ A @ B @ C ) @ F3 ) @ Fsp2 ) ) ).
% sp\<^sub>\<mu>_comp2.simps(2)
thf(fact_117_sdrop__while_Oraw__induct,axiom,
! [A: $tType,Pa: ( product_prod @ ( A > $o ) @ ( stream @ A ) ) > ( stream @ A ) > $o,P2: A > $o,S: stream @ A,Y: stream @ A] :
( ! [Sdrop_while: ( A > $o ) > ( stream @ A ) > ( stream @ A )] :
( ! [S5: A > $o,B7: stream @ A] :
( ( ( Sdrop_while @ S5 @ B7 )
!= ( undefined @ ( stream @ A ) ) )
=> ( Pa @ ( product_Pair @ ( A > $o ) @ ( stream @ A ) @ S5 @ B7 ) @ ( Sdrop_while @ S5 @ B7 ) ) )
=> ! [P4: A > $o,S4: stream @ A,Pa2: stream @ A] :
( ( ( ( P4 @ ( shd @ A @ S4 ) )
=> ( ( Sdrop_while @ P4 @ ( stl @ A @ S4 ) )
= Pa2 ) )
& ( ~ ( P4 @ ( shd @ A @ S4 ) )
=> ( S4 = Pa2 ) ) )
=> ( ( Pa2
!= ( undefined @ ( stream @ A ) ) )
=> ( Pa @ ( product_Pair @ ( A > $o ) @ ( stream @ A ) @ P4 @ S4 ) @ Pa2 ) ) ) )
=> ( ( ( sdrop_while @ A @ P2 @ S )
= Y )
=> ( ( Y
!= ( undefined @ ( stream @ A ) ) )
=> ( Pa @ ( product_Pair @ ( A > $o ) @ ( stream @ A ) @ P2 @ S ) @ Y ) ) ) ) ).
% sdrop_while.raw_induct
thf(fact_118_sp_092_060_094sub_062_092_060mu_062__comp_Opsimps_I2_J,axiom,
! [C: $tType,B: $tType,A: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),B3: A,Sp2: stream1273403375_sp_nu @ D @ A] :
( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B3 @ Sp2 ) ) )
=> ( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B3 @ Sp2 ) )
= ( stream1747196112u_comp @ A @ B @ C @ D @ ( F3 @ B3 ) @ ( stream1200245950nu_out @ D @ A @ Sp2 ) ) ) ) ).
% sp\<^sub>\<mu>_comp.psimps(2)
thf(fact_119_sp_092_060_094sub_062_092_060mu_062__comp_Opsimps_I1_J,axiom,
! [B: $tType,C: $tType,A: $tType,D: $tType,B3: B,Sp2: C,Fsp2: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1370332830mu_Put @ B @ C @ A @ B3 @ Sp2 ) @ Fsp2 ) )
=> ( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1370332830mu_Put @ B @ C @ A @ B3 @ Sp2 ) @ Fsp2 )
= ( stream1370332830mu_Put @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) @ D @ B3 @ ( product_Pair @ C @ ( stream1273403375_sp_nu @ D @ A ) @ Sp2 @ ( stream1686501333_nu_In @ D @ A @ Fsp2 ) ) ) ) ) ).
% sp\<^sub>\<mu>_comp.psimps(1)
thf(fact_120_run_092_060_094sub_062_092_060nu_062__sp_092_060_094sub_062_092_060nu_062__comp,axiom,
! [B: $tType,C: $tType,A: $tType,Sp2: stream1273403375_sp_nu @ C @ B,Sp3: stream1273403375_sp_nu @ A @ C] :
( ( stream377071682run_nu @ A @ B @ ( stream1967106959u_comp @ C @ B @ A @ Sp2 @ Sp3 ) )
= ( comp @ ( stream @ C ) @ ( stream @ B ) @ ( stream @ A ) @ ( stream377071682run_nu @ C @ B @ Sp2 ) @ ( stream377071682run_nu @ A @ C @ Sp3 ) ) ) ).
% run\<^sub>\<nu>_sp\<^sub>\<nu>_comp
thf(fact_121_stream_Omap__o__corec,axiom,
! [A: $tType,B: $tType,C: $tType,F3: A > B,G3: C > A,Ga: C > $o,Gb: C > ( stream @ A ),Gc: C > C] :
( ( comp @ ( stream @ A ) @ ( stream @ B ) @ C @ ( smap @ A @ B @ F3 ) @ ( corec_stream @ C @ A @ G3 @ Ga @ Gb @ Gc ) )
= ( corec_stream @ C @ B @ ( comp @ A @ B @ C @ F3 @ G3 ) @ Ga @ ( comp @ ( stream @ A ) @ ( stream @ B ) @ C @ ( smap @ A @ B @ F3 ) @ Gb ) @ Gc ) ) ).
% stream.map_o_corec
thf(fact_122_accp__induct__rule,axiom,
! [A: $tType,R2: A > A > $o,A3: A,P2: A > $o] :
( ( accp @ A @ R2 @ A3 )
=> ( ! [X4: A] :
( ( accp @ A @ R2 @ X4 )
=> ( ! [Y3: A] :
( ( R2 @ Y3 @ X4 )
=> ( P2 @ Y3 ) )
=> ( P2 @ X4 ) ) )
=> ( P2 @ A3 ) ) ) ).
% accp_induct_rule
thf(fact_123_sp_092_060_094sub_062_092_060nu_062_Oinject,axiom,
! [B: $tType,A: $tType,X: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ),Ya: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] :
( ( ( stream1686501333_nu_In @ A @ B @ X )
= ( stream1686501333_nu_In @ A @ B @ Ya ) )
= ( X = Ya ) ) ).
% sp\<^sub>\<nu>.inject
thf(fact_124_sp_092_060_094sub_062_092_060nu_062_Ocollapse,axiom,
! [B: $tType,A: $tType,Sp_nu: stream1273403375_sp_nu @ A @ B] :
( ( stream1686501333_nu_In @ A @ B @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) )
= Sp_nu ) ).
% sp\<^sub>\<nu>.collapse
thf(fact_125_sp_092_060_094sub_062_092_060nu_062_Oexhaust,axiom,
! [B: $tType,A: $tType,Y: stream1273403375_sp_nu @ A @ B] :
~ ! [X4: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] :
( Y
!= ( stream1686501333_nu_In @ A @ B @ X4 ) ) ).
% sp\<^sub>\<nu>.exhaust
thf(fact_126_stream_Ocorec__disc,axiom,
! [A: $tType,C: $tType] :
( ( corec_stream @ C @ A )
= ( corec_stream @ C @ A ) ) ).
% stream.corec_disc
thf(fact_127_sp_092_060_094sub_062_092_060nu_062_Osel,axiom,
! [B: $tType,A: $tType,X: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] :
( ( stream1200245950nu_out @ A @ B @ ( stream1686501333_nu_In @ A @ B @ X ) )
= X ) ).
% sp\<^sub>\<nu>.sel
thf(fact_128_sp_092_060_094sub_062_092_060nu_062_Oexhaust__sel,axiom,
! [B: $tType,A: $tType,Sp_nu: stream1273403375_sp_nu @ A @ B] :
( Sp_nu
= ( stream1686501333_nu_In @ A @ B @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) ) ).
% sp\<^sub>\<nu>.exhaust_sel
thf(fact_129_stream_Ocorec__code,axiom,
! [A: $tType,C: $tType] :
( ( corec_stream @ C @ A )
= ( ^ [G1: C > A,Q2: C > $o,G21: C > ( stream @ A ),G22: C > C,A5: C] : ( sCons @ A @ ( G1 @ A5 ) @ ( if @ ( stream @ A ) @ ( Q2 @ A5 ) @ ( G21 @ A5 ) @ ( corec_stream @ C @ A @ G1 @ Q2 @ G21 @ G22 @ ( G22 @ A5 ) ) ) ) ) ) ).
% stream.corec_code
thf(fact_130_stream_Ocorec__sel_I2_J,axiom,
! [A: $tType,C: $tType,Q22: C > $o,A3: C,G12: C > A,G212: C > ( stream @ A ),G222: C > C] :
( ( ( Q22 @ A3 )
=> ( ( stl @ A @ ( corec_stream @ C @ A @ G12 @ Q22 @ G212 @ G222 @ A3 ) )
= ( G212 @ A3 ) ) )
& ( ~ ( Q22 @ A3 )
=> ( ( stl @ A @ ( corec_stream @ C @ A @ G12 @ Q22 @ G212 @ G222 @ A3 ) )
= ( corec_stream @ C @ A @ G12 @ Q22 @ G212 @ G222 @ ( G222 @ A3 ) ) ) ) ) ).
% stream.corec_sel(2)
thf(fact_131_stream_Ocorec__sel_I1_J,axiom,
! [A: $tType,C: $tType,G12: C > A,Q22: C > $o,G212: C > ( stream @ A ),G222: C > C,A3: C] :
( ( shd @ A @ ( corec_stream @ C @ A @ G12 @ Q22 @ G212 @ G222 @ A3 ) )
= ( G12 @ A3 ) ) ).
% stream.corec_sel(1)
thf(fact_132_sp_092_060_094sub_062_092_060mu_062__comp_Osimps_I1_J,axiom,
! [B: $tType,C: $tType,A: $tType,D: $tType,B3: B,Sp2: C,Fsp2: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1370332830mu_Put @ B @ C @ A @ B3 @ Sp2 ) @ Fsp2 )
= ( stream1370332830mu_Put @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) @ D @ B3 @ ( product_Pair @ C @ ( stream1273403375_sp_nu @ D @ A ) @ Sp2 @ ( stream1686501333_nu_In @ D @ A @ Fsp2 ) ) ) ) ).
% sp\<^sub>\<mu>_comp.simps(1)
thf(fact_133_sp_092_060_094sub_062_092_060mu_062__comp2_Osimps_I1_J,axiom,
! [A: $tType,B: $tType,D: $tType,C: $tType,B3: A,Sp2: B,Fsp2: stream901396144_sp_mu @ C @ D @ ( stream1273403375_sp_nu @ C @ D )] :
( ( stream967973730_comp2 @ D @ A @ B @ C @ ( stream1370332830mu_Put @ A @ B @ D @ B3 @ Sp2 ) @ Fsp2 )
= ( stream1370332830mu_Put @ A @ ( product_prod @ B @ ( stream1273403375_sp_nu @ C @ D ) ) @ C @ B3 @ ( product_Pair @ B @ ( stream1273403375_sp_nu @ C @ D ) @ Sp2 @ ( stream1686501333_nu_In @ C @ D @ Fsp2 ) ) ) ) ).
% sp\<^sub>\<mu>_comp2.simps(1)
thf(fact_134_accp_Ocases,axiom,
! [A: $tType,R2: A > A > $o,A3: A] :
( ( accp @ A @ R2 @ A3 )
=> ! [Y3: A] :
( ( R2 @ Y3 @ A3 )
=> ( accp @ A @ R2 @ Y3 ) ) ) ).
% accp.cases
thf(fact_135_accp_Osimps,axiom,
! [A: $tType] :
( ( accp @ A )
= ( ^ [R3: A > A > $o,A5: A] :
? [X6: A] :
( ( A5 = X6 )
& ! [Y4: A] :
( ( R3 @ Y4 @ X6 )
=> ( accp @ A @ R3 @ Y4 ) ) ) ) ) ).
% accp.simps
thf(fact_136_accp_Ointros,axiom,
! [A: $tType,R2: A > A > $o,X: A] :
( ! [Y2: A] :
( ( R2 @ Y2 @ X )
=> ( accp @ A @ R2 @ Y2 ) )
=> ( accp @ A @ R2 @ X ) ) ).
% accp.intros
thf(fact_137_accp__induct,axiom,
! [A: $tType,R2: A > A > $o,A3: A,P2: A > $o] :
( ( accp @ A @ R2 @ A3 )
=> ( ! [X4: A] :
( ( accp @ A @ R2 @ X4 )
=> ( ! [Y3: A] :
( ( R2 @ Y3 @ X4 )
=> ( P2 @ Y3 ) )
=> ( P2 @ X4 ) ) )
=> ( P2 @ A3 ) ) ) ).
% accp_induct
thf(fact_138_accp_Oinducts,axiom,
! [A: $tType,R2: A > A > $o,X: A,P2: A > $o] :
( ( accp @ A @ R2 @ X )
=> ( ! [X4: A] :
( ! [Y3: A] :
( ( R2 @ Y3 @ X4 )
=> ( accp @ A @ R2 @ Y3 ) )
=> ( ! [Y3: A] :
( ( R2 @ Y3 @ X4 )
=> ( P2 @ Y3 ) )
=> ( P2 @ X4 ) ) )
=> ( P2 @ X ) ) ) ).
% accp.inducts
thf(fact_139_accp__downward,axiom,
! [A: $tType,R2: A > A > $o,B3: A,A3: A] :
( ( accp @ A @ R2 @ B3 )
=> ( ( R2 @ A3 @ B3 )
=> ( accp @ A @ R2 @ A3 ) ) ) ).
% accp_downward
thf(fact_140_not__accp__down,axiom,
! [A: $tType,R: A > A > $o,X: A] :
( ~ ( accp @ A @ R @ X )
=> ~ ! [Z: A] :
( ( R @ Z @ X )
=> ( accp @ A @ R @ Z ) ) ) ).
% not_accp_down
thf(fact_141_sp_092_060_094sub_062_092_060mu_062__comp_Opelims,axiom,
! [B: $tType,C: $tType,A: $tType,D: $tType,X: stream901396144_sp_mu @ A @ B @ C,Xa2: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ),Y: stream901396144_sp_mu @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )] :
( ( ( stream1747196112u_comp @ A @ B @ C @ D @ X @ Xa2 )
= Y )
=> ( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ X @ Xa2 ) )
=> ( ! [B2: B,Sp: C] :
( ( X
= ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) )
=> ( ( Y
= ( stream1370332830mu_Put @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) @ D @ B2 @ ( product_Pair @ C @ ( stream1273403375_sp_nu @ D @ A ) @ Sp @ ( stream1686501333_nu_In @ D @ A @ Xa2 ) ) ) )
=> ~ ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ Xa2 ) ) ) )
=> ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C )] :
( ( X
= ( stream1294929701mu_Get @ A @ B @ C @ F4 ) )
=> ! [B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
( ( Xa2
= ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) )
=> ( ( Y
= ( stream1747196112u_comp @ A @ B @ C @ D @ ( F4 @ B2 ) @ ( stream1200245950nu_out @ D @ A @ Sp ) ) )
=> ~ ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) ) ) ) )
=> ~ ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C )] :
( ( X
= ( stream1294929701mu_Get @ A @ B @ C @ F4 ) )
=> ! [G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
( ( Xa2
= ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) )
=> ( ( Y
= ( stream1294929701mu_Get @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )
@ ^ [A5: D] : ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( G2 @ A5 ) ) ) )
=> ~ ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) ) ) ) ) ) ) ) ) ).
% sp\<^sub>\<mu>_comp.pelims
thf(fact_142_in__lex__prod,axiom,
! [A: $tType,B: $tType,A3: A,B3: B,A7: A,B5: B,R2: set @ ( product_prod @ A @ A ),S: set @ ( product_prod @ B @ B )] :
( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ ( product_Pair @ A @ B @ A7 @ B5 ) ) @ ( lex_prod @ A @ B @ R2 @ S ) )
= ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A3 @ A7 ) @ R2 )
| ( ( A3 = A7 )
& ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ B3 @ B5 ) @ S ) ) ) ) ).
% in_lex_prod
thf(fact_143_sp_092_060_094sub_062_092_060mu_062__comp_Oelims,axiom,
! [A: $tType,C: $tType,B: $tType,D: $tType,X: stream901396144_sp_mu @ A @ B @ C,Xa2: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ),Y: stream901396144_sp_mu @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )] :
( ( ( stream1747196112u_comp @ A @ B @ C @ D @ X @ Xa2 )
= Y )
=> ( ! [B2: B,Sp: C] :
( ( X
= ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) )
=> ( Y
!= ( stream1370332830mu_Put @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) @ D @ B2 @ ( product_Pair @ C @ ( stream1273403375_sp_nu @ D @ A ) @ Sp @ ( stream1686501333_nu_In @ D @ A @ Xa2 ) ) ) ) )
=> ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C )] :
( ( X
= ( stream1294929701mu_Get @ A @ B @ C @ F4 ) )
=> ! [B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
( ( Xa2
= ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) )
=> ( Y
!= ( stream1747196112u_comp @ A @ B @ C @ D @ ( F4 @ B2 ) @ ( stream1200245950nu_out @ D @ A @ Sp ) ) ) ) )
=> ~ ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C )] :
( ( X
= ( stream1294929701mu_Get @ A @ B @ C @ F4 ) )
=> ! [G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
( ( Xa2
= ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) )
=> ( Y
!= ( stream1294929701mu_Get @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )
@ ^ [A5: D] : ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( G2 @ A5 ) ) ) ) ) ) ) ) ) ).
% sp\<^sub>\<mu>_comp.elims
thf(fact_144_sp_092_060_094sub_062_092_060nu_062_Osplit__sel__asm,axiom,
! [C: $tType,B: $tType,A: $tType,P2: C > $o,F3: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,Sp_nu: stream1273403375_sp_nu @ A @ B] :
( ( P2 @ ( stream1502363800_sp_nu @ A @ B @ C @ F3 @ Sp_nu ) )
= ( ~ ( ( Sp_nu
= ( stream1686501333_nu_In @ A @ B @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) )
& ~ ( P2 @ ( F3 @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) ) ) ) ) ).
% sp\<^sub>\<nu>.split_sel_asm
thf(fact_145_smap__smap2,axiom,
! [C: $tType,A: $tType,B: $tType,D: $tType,F3: B > A,G3: C > D > B,S12: stream @ C,S23: stream @ D] :
( ( smap @ B @ A @ F3 @ ( smap2 @ C @ D @ B @ G3 @ S12 @ S23 ) )
= ( smap2 @ C @ D @ A
@ ^ [X6: C,Y4: D] : ( F3 @ ( G3 @ X6 @ Y4 ) )
@ S12
@ S23 ) ) ).
% smap_smap2
thf(fact_146_insert__Collect,axiom,
! [A: $tType,A3: A,P2: A > $o] :
( ( insert @ A @ A3 @ ( collect @ A @ P2 ) )
= ( collect @ A
@ ^ [U: A] :
( ( U != A3 )
=> ( P2 @ U ) ) ) ) ).
% insert_Collect
thf(fact_147_insert__compr,axiom,
! [A: $tType] :
( ( insert @ A )
= ( ^ [A5: A,B8: set @ A] :
( collect @ A
@ ^ [X6: A] :
( ( X6 = A5 )
| ( member @ A @ X6 @ B8 ) ) ) ) ) ).
% insert_compr
thf(fact_148_sp_092_060_094sub_062_092_060nu_062_Ocase__distrib,axiom,
! [D: $tType,C: $tType,B: $tType,A: $tType,H: C > D,F3: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,Sp_nu: stream1273403375_sp_nu @ A @ B] :
( ( H @ ( stream1502363800_sp_nu @ A @ B @ C @ F3 @ Sp_nu ) )
= ( stream1502363800_sp_nu @ A @ B @ D
@ ^ [X6: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] : ( H @ ( F3 @ X6 ) )
@ Sp_nu ) ) ).
% sp\<^sub>\<nu>.case_distrib
thf(fact_149_stream_Ocase__distrib,axiom,
! [B: $tType,C: $tType,A: $tType,H: B > C,F3: A > ( stream @ A ) > B,Stream: stream @ A] :
( ( H @ ( case_stream @ A @ B @ F3 @ Stream ) )
= ( case_stream @ A @ C
@ ^ [X13: A,X24: stream @ A] : ( H @ ( F3 @ X13 @ X24 ) )
@ Stream ) ) ).
% stream.case_distrib
thf(fact_150_out__def,axiom,
! [B: $tType,A: $tType] :
( ( stream1200245950nu_out @ A @ B )
= ( stream1502363800_sp_nu @ A @ B @ ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) )
@ ^ [X6: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] : X6 ) ) ).
% out_def
thf(fact_151_stream_Omap__ident,axiom,
! [A: $tType,T2: stream @ A] :
( ( smap @ A @ A
@ ^ [X6: A] : X6
@ T2 )
= T2 ) ).
% stream.map_ident
thf(fact_152_shd__def,axiom,
! [A: $tType] :
( ( shd @ A )
= ( case_stream @ A @ A
@ ^ [X13: A,X24: stream @ A] : X13 ) ) ).
% shd_def
thf(fact_153_stl__def,axiom,
! [A: $tType] :
( ( stl @ A )
= ( case_stream @ A @ ( stream @ A )
@ ^ [X13: A,X24: stream @ A] : X24 ) ) ).
% stl_def
thf(fact_154_sp_092_060_094sub_062_092_060mu_062__comp_Osimps_I3_J,axiom,
! [A: $tType,C: $tType,B: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),G3: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G3 ) )
= ( stream1294929701mu_Get @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )
@ ^ [A5: D] : ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( G3 @ A5 ) ) ) ) ).
% sp\<^sub>\<mu>_comp.simps(3)
thf(fact_155_copy_Osimps,axiom,
! [A: $tType] :
( ( stream1200245950nu_out @ A @ A @ ( stream2017582925e_copy @ A ) )
= ( stream1294929701mu_Get @ A @ A @ ( stream1273403375_sp_nu @ A @ A )
@ ^ [A5: A] : ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ A @ A ) @ A @ A5 @ ( stream2017582925e_copy @ A ) ) ) ) ).
% copy.simps
thf(fact_156_copy_Ocode,axiom,
! [A: $tType] :
( ( stream2017582925e_copy @ A )
= ( stream1686501333_nu_In @ A @ A
@ ( stream1294929701mu_Get @ A @ A @ ( stream1273403375_sp_nu @ A @ A )
@ ^ [A5: A] : ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ A @ A ) @ A @ A5 @ ( stream2017582925e_copy @ A ) ) ) ) ) ).
% copy.code
thf(fact_157_sp_092_060_094sub_062_092_060nu_062_Ocase__eq__if,axiom,
! [C: $tType,B: $tType,A: $tType] :
( ( stream1502363800_sp_nu @ A @ B @ C )
= ( ^ [F2: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,Sp_nu3: stream1273403375_sp_nu @ A @ B] : ( F2 @ ( stream1200245950nu_out @ A @ B @ Sp_nu3 ) ) ) ) ).
% sp\<^sub>\<nu>.case_eq_if
thf(fact_158_sp_092_060_094sub_062_092_060nu_062_Ocase,axiom,
! [C: $tType,B: $tType,A: $tType,F3: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,X: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] :
( ( stream1502363800_sp_nu @ A @ B @ C @ F3 @ ( stream1686501333_nu_In @ A @ B @ X ) )
= ( F3 @ X ) ) ).
% sp\<^sub>\<nu>.case
thf(fact_159_sp_092_060_094sub_062_092_060mu_062__comp_Opsimps_I3_J,axiom,
! [A: $tType,C: $tType,B: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),G3: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G3 ) ) )
=> ( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G3 ) )
= ( stream1294929701mu_Get @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )
@ ^ [A5: D] : ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( G3 @ A5 ) ) ) ) ) ).
% sp\<^sub>\<mu>_comp.psimps(3)
thf(fact_160_sp_092_060_094sub_062_092_060nu_062_Osplit__sel,axiom,
! [C: $tType,B: $tType,A: $tType,P2: C > $o,F3: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,Sp_nu: stream1273403375_sp_nu @ A @ B] :
( ( P2 @ ( stream1502363800_sp_nu @ A @ B @ C @ F3 @ Sp_nu ) )
= ( ( Sp_nu
= ( stream1686501333_nu_In @ A @ B @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) )
=> ( P2 @ ( F3 @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) ) ) ) ).
% sp\<^sub>\<nu>.split_sel
thf(fact_161_sp_092_060_094sub_062_092_060mu_062_Osimps_I7_J,axiom,
! [G: $tType,C: $tType,B: $tType,A: $tType,F1: ( A > ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ G ) ) > G,F22: B > C > G,X1: A > ( stream901396144_sp_mu @ A @ B @ C )] :
( ( stream674629690_sp_mu @ A @ B @ C @ G @ F1 @ F22 @ ( stream1294929701mu_Get @ A @ B @ C @ X1 ) )
= ( F1
@ ( comp @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ G ) @ A
@ ^ [Sp_mu: stream901396144_sp_mu @ A @ B @ C] : ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ G @ Sp_mu @ ( stream674629690_sp_mu @ A @ B @ C @ G @ F1 @ F22 @ Sp_mu ) )
@ X1 ) ) ) ).
% sp\<^sub>\<mu>.simps(7)
thf(fact_162_conj__comp__iff,axiom,
! [B: $tType,A: $tType,P2: B > $o,Q: B > $o,G3: A > B] :
( ( comp @ B @ $o @ A
@ ^ [X6: B] :
( ( P2 @ X6 )
& ( Q @ X6 ) )
@ G3 )
= ( ^ [X6: A] :
( ( comp @ B @ $o @ A @ P2 @ G3 @ X6 )
& ( comp @ B @ $o @ A @ Q @ G3 @ X6 ) ) ) ) ).
% conj_comp_iff
thf(fact_163_fun_Omap__ident,axiom,
! [A: $tType,D: $tType,T2: D > A] :
( ( comp @ A @ A @ D
@ ^ [X6: A] : X6
@ T2 )
= T2 ) ).
% fun.map_ident
thf(fact_164_sp_092_060_094sub_062_092_060mu_062_Osimps_I8_J,axiom,
! [A: $tType,B: $tType,G: $tType,C: $tType,F1: ( A > ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ G ) ) > G,F22: B > C > G,X21: B,X22: C] :
( ( stream674629690_sp_mu @ A @ B @ C @ G @ F1 @ F22 @ ( stream1370332830mu_Put @ B @ C @ A @ X21 @ X22 ) )
= ( F22 @ X21 @ X22 ) ) ).
% sp\<^sub>\<mu>.simps(8)
thf(fact_165_fun_Omap__comp,axiom,
! [B: $tType,C: $tType,A: $tType,D: $tType,G3: B > C,F3: A > B,V: D > A] :
( ( comp @ B @ C @ D @ G3 @ ( comp @ A @ B @ D @ F3 @ V ) )
= ( comp @ A @ C @ D @ ( comp @ B @ C @ A @ G3 @ F3 ) @ V ) ) ).
% fun.map_comp
thf(fact_166_type__copy__map__cong0,axiom,
! [B: $tType,D: $tType,E: $tType,A: $tType,C: $tType,M: B > A,G3: C > B,X: C,N: D > A,H: C > D,F3: A > E] :
( ( ( M @ ( G3 @ X ) )
= ( N @ ( H @ X ) ) )
=> ( ( comp @ B @ E @ C @ ( comp @ A @ E @ B @ F3 @ M ) @ G3 @ X )
= ( comp @ D @ E @ C @ ( comp @ A @ E @ D @ F3 @ N ) @ H @ X ) ) ) ).
% type_copy_map_cong0
thf(fact_167_K__record__comp,axiom,
! [C: $tType,B: $tType,A: $tType,C3: B,F3: A > C] :
( ( comp @ C @ B @ A
@ ^ [X6: C] : C3
@ F3 )
= ( ^ [X6: A] : C3 ) ) ).
% K_record_comp
thf(fact_168_pred__equals__eq2,axiom,
! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B ),S3: set @ ( product_prod @ A @ B )] :
( ( ( ^ [X6: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X6 @ Y4 ) @ R ) )
= ( ^ [X6: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X6 @ Y4 ) @ S3 ) ) )
= ( R = S3 ) ) ).
% pred_equals_eq2
thf(fact_169_same__fstI,axiom,
! [B: $tType,A: $tType,P2: A > $o,X: A,Y5: B,Y: B,R: A > ( set @ ( product_prod @ B @ B ) )] :
( ( P2 @ X )
=> ( ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ Y5 @ Y ) @ ( R @ X ) )
=> ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X @ Y5 ) @ ( product_Pair @ A @ B @ X @ Y ) ) @ ( same_fst @ A @ B @ P2 @ R ) ) ) ) ).
% same_fstI
thf(fact_170_cut__def,axiom,
! [B: $tType,A: $tType] :
( ( cut @ A @ B )
= ( ^ [F2: A > B,R4: set @ ( product_prod @ A @ A ),X6: A,Y4: A] : ( if @ B @ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y4 @ X6 ) @ R4 ) @ ( F2 @ Y4 ) @ ( undefined @ B ) ) ) ) ).
% cut_def
thf(fact_171_fun_Opred__map,axiom,
! [B: $tType,A: $tType,D: $tType,Q: B > $o,F3: A > B,X: D > A] :
( ( basic_pred_fun @ D @ B
@ ^ [Uu: D] : $true
@ Q
@ ( comp @ A @ B @ D @ F3 @ X ) )
= ( basic_pred_fun @ D @ A
@ ^ [Uu: D] : $true
@ ( comp @ B @ $o @ A @ Q @ F3 )
@ X ) ) ).
% fun.pred_map
thf(fact_172_sp_092_060_094sub_062_092_060mu_062_Osimps_I9_J,axiom,
! [F: $tType,E: $tType,C: $tType,B: $tType,A: $tType,F1: B > E,F22: C > F,X1: A > ( stream901396144_sp_mu @ A @ B @ C )] :
( ( stream1058219438_sp_mu @ B @ E @ C @ F @ A @ F1 @ F22 @ ( stream1294929701mu_Get @ A @ B @ C @ X1 ) )
= ( stream1294929701mu_Get @ A @ E @ F @ ( comp @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ A @ E @ F ) @ A @ ( stream1058219438_sp_mu @ B @ E @ C @ F @ A @ F1 @ F22 ) @ X1 ) ) ) ).
% sp\<^sub>\<mu>.simps(9)
thf(fact_173_sp_092_060_094sub_062_092_060mu_062_Omap__ident,axiom,
! [B: $tType,A: $tType,G: $tType,T2: stream901396144_sp_mu @ G @ A @ B] :
( ( stream1058219438_sp_mu @ A @ A @ B @ B @ G
@ ^ [X6: A] : X6
@ ^ [X6: B] : X6
@ T2 )
= T2 ) ).
% sp\<^sub>\<mu>.map_ident
thf(fact_174_sp_092_060_094sub_062_092_060mu_062_Osimps_I10_J,axiom,
! [B: $tType,E: $tType,A: $tType,F: $tType,C: $tType,F1: B > E,F22: C > F,X21: B,X22: C] :
( ( stream1058219438_sp_mu @ B @ E @ C @ F @ A @ F1 @ F22 @ ( stream1370332830mu_Put @ B @ C @ A @ X21 @ X22 ) )
= ( stream1370332830mu_Put @ E @ F @ A @ ( F1 @ X21 ) @ ( F22 @ X22 ) ) ) ).
% sp\<^sub>\<mu>.simps(10)
thf(fact_175_sp_092_060_094sub_062_092_060mu_062_Omap__comp,axiom,
! [D: $tType,F: $tType,E: $tType,C: $tType,B: $tType,A: $tType,G: $tType,G12: C > E,G23: D > F,F1: A > C,F22: B > D,V: stream901396144_sp_mu @ G @ A @ B] :
( ( stream1058219438_sp_mu @ C @ E @ D @ F @ G @ G12 @ G23 @ ( stream1058219438_sp_mu @ A @ C @ B @ D @ G @ F1 @ F22 @ V ) )
= ( stream1058219438_sp_mu @ A @ E @ B @ F @ G @ ( comp @ C @ E @ A @ G12 @ F1 ) @ ( comp @ D @ F @ B @ G23 @ F22 ) @ V ) ) ).
% sp\<^sub>\<mu>.map_comp
thf(fact_176_cuts__eq,axiom,
! [B: $tType,A: $tType,F3: A > B,R: set @ ( product_prod @ A @ A ),X: A,G3: A > B] :
( ( ( cut @ A @ B @ F3 @ R @ X )
= ( cut @ A @ B @ G3 @ R @ X ) )
= ( ! [Y4: A] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y4 @ X ) @ R )
=> ( ( F3 @ Y4 )
= ( G3 @ Y4 ) ) ) ) ) ).
% cuts_eq
thf(fact_177_cut__apply,axiom,
! [B: $tType,A: $tType,X: A,A3: A,R: set @ ( product_prod @ A @ A ),F3: A > B] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ A3 ) @ R )
=> ( ( cut @ A @ B @ F3 @ R @ A3 @ X )
= ( F3 @ X ) ) ) ).
% cut_apply
thf(fact_178_fun_Omap__cong__pred,axiom,
! [B: $tType,A: $tType,D: $tType,X: D > A,Ya: D > A,F3: A > B,G3: A > B] :
( ( X = Ya )
=> ( ( basic_pred_fun @ D @ A
@ ^ [Uu: D] : $true
@ ^ [Z3: A] :
( ( F3 @ Z3 )
= ( G3 @ Z3 ) )
@ Ya )
=> ( ( comp @ A @ B @ D @ F3 @ X )
= ( comp @ A @ B @ D @ G3 @ Ya ) ) ) ) ).
% fun.map_cong_pred
thf(fact_179_sp_092_060_094sub_062_092_060mu_062_Osize__gen__o__map,axiom,
! [B: $tType,E: $tType,A: $tType,F: $tType,C: $tType,F3: A > nat,Fa: E > nat,Fb: F > nat,Ga: B > E,Gb: C > F] :
( ( comp @ ( stream901396144_sp_mu @ A @ E @ F ) @ nat @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream1362355943_sp_mu @ A @ E @ F @ F3 @ Fa @ Fb ) @ ( stream1058219438_sp_mu @ B @ E @ C @ F @ A @ Ga @ Gb ) )
= ( stream1362355943_sp_mu @ A @ B @ C @ F3 @ ( comp @ E @ nat @ B @ Fa @ Ga ) @ ( comp @ F @ nat @ C @ Fb @ Gb ) ) ) ).
% sp\<^sub>\<mu>.size_gen_o_map
thf(fact_180_stream_Opred__map,axiom,
! [B: $tType,A: $tType,Q: B > $o,F3: A > B,X: stream @ A] :
( ( pred_stream @ B @ Q @ ( smap @ A @ B @ F3 @ X ) )
= ( pred_stream @ A @ ( comp @ B @ $o @ A @ Q @ F3 ) @ X ) ) ).
% stream.pred_map
thf(fact_181_sp_092_060_094sub_062_092_060mu_062_Opred__map,axiom,
! [D: $tType,C: $tType,B: $tType,A: $tType,G: $tType,Q1: C > $o,Q23: D > $o,F1: A > C,F22: B > D,X: stream901396144_sp_mu @ G @ A @ B] :
( ( stream123009735_sp_mu @ C @ D @ G @ Q1 @ Q23 @ ( stream1058219438_sp_mu @ A @ C @ B @ D @ G @ F1 @ F22 @ X ) )
= ( stream123009735_sp_mu @ A @ B @ G @ ( comp @ C @ $o @ A @ Q1 @ F1 ) @ ( comp @ D @ $o @ B @ Q23 @ F22 ) @ X ) ) ).
% sp\<^sub>\<mu>.pred_map
thf(fact_182_sp_092_060_094sub_062_092_060mu_062_Opred__inject_I2_J,axiom,
! [A: $tType,B: $tType,C: $tType,P1: B > $o,P22: C > $o,A3: B,Aa2: C] :
( ( stream123009735_sp_mu @ B @ C @ A @ P1 @ P22 @ ( stream1370332830mu_Put @ B @ C @ A @ A3 @ Aa2 ) )
= ( ( P1 @ A3 )
& ( P22 @ Aa2 ) ) ) ).
% sp\<^sub>\<mu>.pred_inject(2)
thf(fact_183_stream_Opred__inject,axiom,
! [A: $tType,P2: A > $o,A3: A,Aa2: stream @ A] :
( ( pred_stream @ A @ P2 @ ( sCons @ A @ A3 @ Aa2 ) )
= ( ( P2 @ A3 )
& ( pred_stream @ A @ P2 @ Aa2 ) ) ) ).
% stream.pred_inject
thf(fact_184_sp_092_060_094sub_062_092_060mu_062_Opred__inject_I1_J,axiom,
! [C: $tType,B: $tType,A: $tType,P1: B > $o,P22: C > $o,A3: A > ( stream901396144_sp_mu @ A @ B @ C )] :
( ( stream123009735_sp_mu @ B @ C @ A @ P1 @ P22 @ ( stream1294929701mu_Get @ A @ B @ C @ A3 ) )
= ( basic_pred_fun @ A @ ( stream901396144_sp_mu @ A @ B @ C )
@ ^ [Uu: A] : $true
@ ( stream123009735_sp_mu @ B @ C @ A @ P1 @ P22 )
@ A3 ) ) ).
% sp\<^sub>\<mu>.pred_inject(1)
thf(fact_185_stream_Opred__cong,axiom,
! [A: $tType,X: stream @ A,Ya: stream @ A,P2: A > $o,Pa: A > $o] :
( ( X = Ya )
=> ( ! [Z: A] :
( ( member @ A @ Z @ ( sset @ A @ Ya ) )
=> ( ( P2 @ Z )
= ( Pa @ Z ) ) )
=> ( ( pred_stream @ A @ P2 @ X )
= ( pred_stream @ A @ Pa @ Ya ) ) ) ) ).
% stream.pred_cong
thf(fact_186_stream_Opred__mono__strong,axiom,
! [A: $tType,P2: A > $o,X: stream @ A,Pa: A > $o] :
( ( pred_stream @ A @ P2 @ X )
=> ( ! [Z: A] :
( ( member @ A @ Z @ ( sset @ A @ X ) )
=> ( ( P2 @ Z )
=> ( Pa @ Z ) ) )
=> ( pred_stream @ A @ Pa @ X ) ) ) ).
% stream.pred_mono_strong
thf(fact_187_sp_092_060_094sub_062_092_060mu_062_Opred__True,axiom,
! [B: $tType,A: $tType,G: $tType] :
( ( stream123009735_sp_mu @ A @ B @ G
@ ^ [Uu: A] : $true
@ ^ [Uu: B] : $true )
= ( ^ [Uu: stream901396144_sp_mu @ G @ A @ B] : $true ) ) ).
% sp\<^sub>\<mu>.pred_True
thf(fact_188_stream_Opred__True,axiom,
! [A: $tType] :
( ( pred_stream @ A
@ ^ [Uu: A] : $true )
= ( ^ [Uu: stream @ A] : $true ) ) ).
% stream.pred_True
thf(fact_189_sp_092_060_094sub_062_092_060mu_062_Omap__cong__pred,axiom,
! [D: $tType,C: $tType,B: $tType,A: $tType,G: $tType,X: stream901396144_sp_mu @ G @ A @ B,Ya: stream901396144_sp_mu @ G @ A @ B,F1: A > C,G12: A > C,F22: B > D,G23: B > D] :
( ( X = Ya )
=> ( ( stream123009735_sp_mu @ A @ B @ G
@ ^ [Z12: A] :
( ( F1 @ Z12 )
= ( G12 @ Z12 ) )
@ ^ [Z22: B] :
( ( F22 @ Z22 )
= ( G23 @ Z22 ) )
@ Ya )
=> ( ( stream1058219438_sp_mu @ A @ C @ B @ D @ G @ F1 @ F22 @ X )
= ( stream1058219438_sp_mu @ A @ C @ B @ D @ G @ G12 @ G23 @ Ya ) ) ) ) ).
% sp\<^sub>\<mu>.map_cong_pred
thf(fact_190_stream_Omap__cong__pred,axiom,
! [B: $tType,A: $tType,X: stream @ A,Ya: stream @ A,F3: A > B,G3: A > B] :
( ( X = Ya )
=> ( ( pred_stream @ A
@ ^ [Z3: A] :
( ( F3 @ Z3 )
= ( G3 @ Z3 ) )
@ Ya )
=> ( ( smap @ A @ B @ F3 @ X )
= ( smap @ A @ B @ G3 @ Ya ) ) ) ) ).
% stream.map_cong_pred
thf(fact_191_rewriteR__comp__comp2,axiom,
! [C: $tType,B: $tType,E: $tType,D: $tType,A: $tType,G3: C > B,H: A > C,R1: D > B,R22: A > D,F3: B > E,L: D > E] :
( ( ( comp @ C @ B @ A @ G3 @ H )
= ( comp @ D @ B @ A @ R1 @ R22 ) )
=> ( ( ( comp @ B @ E @ D @ F3 @ R1 )
= L )
=> ( ( comp @ C @ E @ A @ ( comp @ B @ E @ C @ F3 @ G3 ) @ H )
= ( comp @ D @ E @ A @ L @ R22 ) ) ) ) ).
% rewriteR_comp_comp2
thf(fact_192_rewriteL__comp__comp2,axiom,
! [A: $tType,C: $tType,B: $tType,D: $tType,E: $tType,F3: C > B,G3: A > C,L1: D > B,L2: A > D,H: E > A,R2: E > D] :
( ( ( comp @ C @ B @ A @ F3 @ G3 )
= ( comp @ D @ B @ A @ L1 @ L2 ) )
=> ( ( ( comp @ A @ D @ E @ L2 @ H )
= R2 )
=> ( ( comp @ C @ B @ E @ F3 @ ( comp @ A @ C @ E @ G3 @ H ) )
= ( comp @ D @ B @ E @ L1 @ R2 ) ) ) ) ).
% rewriteL_comp_comp2
thf(fact_193_rewriteR__comp__comp,axiom,
! [C: $tType,D: $tType,B: $tType,A: $tType,G3: C > B,H: A > C,R2: A > B,F3: B > D] :
( ( ( comp @ C @ B @ A @ G3 @ H )
= R2 )
=> ( ( comp @ C @ D @ A @ ( comp @ B @ D @ C @ F3 @ G3 ) @ H )
= ( comp @ B @ D @ A @ F3 @ R2 ) ) ) ).
% rewriteR_comp_comp
thf(fact_194_rewriteL__comp__comp,axiom,
! [C: $tType,B: $tType,A: $tType,D: $tType,F3: C > B,G3: A > C,L: A > B,H: D > A] :
( ( ( comp @ C @ B @ A @ F3 @ G3 )
= L )
=> ( ( comp @ C @ B @ D @ F3 @ ( comp @ A @ C @ D @ G3 @ H ) )
= ( comp @ A @ B @ D @ L @ H ) ) ) ).
% rewriteL_comp_comp
thf(fact_195_convol__o,axiom,
! [B: $tType,C: $tType,D: $tType,A: $tType,F3: D > B,G3: D > C,H: A > D] :
( ( comp @ D @ ( product_prod @ B @ C ) @ A @ ( bNF_convol @ D @ B @ C @ F3 @ G3 ) @ H )
= ( bNF_convol @ A @ B @ C @ ( comp @ D @ B @ A @ F3 @ H ) @ ( comp @ D @ C @ A @ G3 @ H ) ) ) ).
% convol_o
thf(fact_196_comp__cong,axiom,
! [C: $tType,B: $tType,D: $tType,A: $tType,E: $tType,F3: B > A,G3: C > B,X: C,F5: D > A,G5: E > D,X7: E] :
( ( ( F3 @ ( G3 @ X ) )
= ( F5 @ ( G5 @ X7 ) ) )
=> ( ( comp @ B @ A @ C @ F3 @ G3 @ X )
= ( comp @ D @ A @ E @ F5 @ G5 @ X7 ) ) ) ).
% comp_cong
thf(fact_197_convol__def,axiom,
! [C: $tType,B: $tType,A: $tType] :
( ( bNF_convol @ A @ B @ C )
= ( ^ [F2: A > B,G4: A > C,A5: A] : ( product_Pair @ B @ C @ ( F2 @ A5 ) @ ( G4 @ A5 ) ) ) ) ).
% convol_def
thf(fact_198_comp__apply__eq,axiom,
! [B: $tType,D: $tType,A: $tType,C: $tType,F3: B > A,G3: C > B,X: C,H: D > A,K: C > D] :
( ( ( F3 @ ( G3 @ X ) )
= ( H @ ( K @ X ) ) )
=> ( ( comp @ B @ A @ C @ F3 @ G3 @ X )
= ( comp @ D @ A @ C @ H @ K @ X ) ) ) ).
% comp_apply_eq
thf(fact_199_ssubst__Pair__rhs,axiom,
! [B: $tType,A: $tType,R2: A,S: B,R: set @ ( product_prod @ A @ B ),S6: B] :
( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S ) @ R )
=> ( ( S6 = S )
=> ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S6 ) @ R ) ) ) ).
% ssubst_Pair_rhs
thf(fact_200_curry__conv,axiom,
! [A: $tType,C: $tType,B: $tType] :
( ( product_curry @ B @ C @ A )
= ( ^ [F2: ( product_prod @ B @ C ) > A,A5: B,B9: C] : ( F2 @ ( product_Pair @ B @ C @ A5 @ B9 ) ) ) ) ).
% curry_conv
thf(fact_201_curryI,axiom,
! [A: $tType,B: $tType,F3: ( product_prod @ A @ B ) > $o,A3: A,B3: B] :
( ( F3 @ ( product_Pair @ A @ B @ A3 @ B3 ) )
=> ( product_curry @ A @ B @ $o @ F3 @ A3 @ B3 ) ) ).
% curryI
thf(fact_202_curry__K,axiom,
! [B: $tType,C: $tType,A: $tType,C3: C] :
( ( product_curry @ A @ B @ C
@ ^ [X6: product_prod @ A @ B] : C3 )
= ( ^ [X6: A,Y4: B] : C3 ) ) ).
% curry_K
thf(fact_203_curryD,axiom,
! [A: $tType,B: $tType,F3: ( product_prod @ A @ B ) > $o,A3: A,B3: B] :
( ( product_curry @ A @ B @ $o @ F3 @ A3 @ B3 )
=> ( F3 @ ( product_Pair @ A @ B @ A3 @ B3 ) ) ) ).
% curryD
thf(fact_204_curryE,axiom,
! [A: $tType,B: $tType,F3: ( product_prod @ A @ B ) > $o,A3: A,B3: B] :
( ( product_curry @ A @ B @ $o @ F3 @ A3 @ B3 )
=> ( F3 @ ( product_Pair @ A @ B @ A3 @ B3 ) ) ) ).
% curryE
thf(fact_205_curry__def,axiom,
! [C: $tType,B: $tType,A: $tType] :
( ( product_curry @ A @ B @ C )
= ( ^ [C5: ( product_prod @ A @ B ) > C,X6: A,Y4: B] : ( C5 @ ( product_Pair @ A @ B @ X6 @ Y4 ) ) ) ) ).
% curry_def
thf(fact_206_streams__def,axiom,
! [A: $tType] :
( ( streams @ A )
= ( ^ [A8: set @ A] :
( collect @ ( stream @ A )
@ ( streamsp @ A
@ ^ [X6: A] : ( member @ A @ X6 @ A8 ) ) ) ) ) ).
% streams_def
thf(fact_207_streamsp__streams__eq,axiom,
! [A: $tType,A2: set @ A] :
( ( streamsp @ A
@ ^ [X6: A] : ( member @ A @ X6 @ A2 ) )
= ( ^ [X6: stream @ A] : ( member @ ( stream @ A ) @ X6 @ ( streams @ A @ A2 ) ) ) ) ).
% streamsp_streams_eq
thf(fact_208_streamsp_Ocoinduct,axiom,
! [A: $tType,X3: ( stream @ A ) > $o,X: stream @ A,A2: A > $o] :
( ( X3 @ X )
=> ( ! [X4: stream @ A] :
( ( X3 @ X4 )
=> ? [A6: A,S5: stream @ A] :
( ( X4
= ( sCons @ A @ A6 @ S5 ) )
& ( A2 @ A6 )
& ( ( X3 @ S5 )
| ( streamsp @ A @ A2 @ S5 ) ) ) )
=> ( streamsp @ A @ A2 @ X ) ) ) ).
% streamsp.coinduct
thf(fact_209_streamsp_Osimps,axiom,
! [A: $tType] :
( ( streamsp @ A )
= ( ^ [A8: A > $o,A5: stream @ A] :
? [B9: A,S2: stream @ A] :
( ( A5
= ( sCons @ A @ B9 @ S2 ) )
& ( A8 @ B9 )
& ( streamsp @ A @ A8 @ S2 ) ) ) ) ).
% streamsp.simps
thf(fact_210_streamsp_Ocases,axiom,
! [A: $tType,A2: A > $o,A3: stream @ A] :
( ( streamsp @ A @ A2 @ A3 )
=> ~ ! [A4: A,S4: stream @ A] :
( ( A3
= ( sCons @ A @ A4 @ S4 ) )
=> ( ( A2 @ A4 )
=> ~ ( streamsp @ A @ A2 @ S4 ) ) ) ) ).
% streamsp.cases
thf(fact_211_acc__def,axiom,
! [A: $tType] :
( ( acc @ A )
= ( ^ [R3: set @ ( product_prod @ A @ A )] :
( collect @ A
@ ( accp @ A
@ ^ [X6: A,Y4: A] : ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X6 @ Y4 ) @ R3 ) ) ) ) ) ).
% acc_def
thf(fact_212_accp__acc__eq,axiom,
! [A: $tType,R2: set @ ( product_prod @ A @ A )] :
( ( accp @ A
@ ^ [X6: A,Y4: A] : ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X6 @ Y4 ) @ R2 ) )
= ( ^ [X6: A] : ( member @ A @ X6 @ ( acc @ A @ R2 ) ) ) ) ).
% accp_acc_eq
thf(fact_213_acc_Ocases,axiom,
! [A: $tType,A3: A,R2: set @ ( product_prod @ A @ A )] :
( ( member @ A @ A3 @ ( acc @ A @ R2 ) )
=> ! [Y3: A] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ A3 ) @ R2 )
=> ( member @ A @ Y3 @ ( acc @ A @ R2 ) ) ) ) ).
% acc.cases
thf(fact_214_acc_Osimps,axiom,
! [A: $tType,A3: A,R2: set @ ( product_prod @ A @ A )] :
( ( member @ A @ A3 @ ( acc @ A @ R2 ) )
= ( ? [X6: A] :
( ( A3 = X6 )
& ! [Y4: A] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y4 @ X6 ) @ R2 )
=> ( member @ A @ Y4 @ ( acc @ A @ R2 ) ) ) ) ) ) ).
% acc.simps
thf(fact_215_acc_Ointros,axiom,
! [A: $tType,X: A,R2: set @ ( product_prod @ A @ A )] :
( ! [Y2: A] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y2 @ X ) @ R2 )
=> ( member @ A @ Y2 @ ( acc @ A @ R2 ) ) )
=> ( member @ A @ X @ ( acc @ A @ R2 ) ) ) ).
% acc.intros
thf(fact_216_acc__induct,axiom,
! [A: $tType,A3: A,R2: set @ ( product_prod @ A @ A ),P2: A > $o] :
( ( member @ A @ A3 @ ( acc @ A @ R2 ) )
=> ( ! [X4: A] :
( ( member @ A @ X4 @ ( acc @ A @ R2 ) )
=> ( ! [Y3: A] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ X4 ) @ R2 )
=> ( P2 @ Y3 ) )
=> ( P2 @ X4 ) ) )
=> ( P2 @ A3 ) ) ) ).
% acc_induct
thf(fact_217_acc_Oinducts,axiom,
! [A: $tType,X: A,R2: set @ ( product_prod @ A @ A ),P2: A > $o] :
( ( member @ A @ X @ ( acc @ A @ R2 ) )
=> ( ! [X4: A] :
( ! [Y3: A] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ X4 ) @ R2 )
=> ( member @ A @ Y3 @ ( acc @ A @ R2 ) ) )
=> ( ! [Y3: A] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ X4 ) @ R2 )
=> ( P2 @ Y3 ) )
=> ( P2 @ X4 ) ) )
=> ( P2 @ X ) ) ) ).
% acc.inducts
thf(fact_218_acc__downward,axiom,
! [A: $tType,B3: A,R2: set @ ( product_prod @ A @ A ),A3: A] :
( ( member @ A @ B3 @ ( acc @ A @ R2 ) )
=> ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A3 @ B3 ) @ R2 )
=> ( member @ A @ A3 @ ( acc @ A @ R2 ) ) ) ) ).
% acc_downward
thf(fact_219_not__acc__down,axiom,
! [A: $tType,X: A,R: set @ ( product_prod @ A @ A )] :
( ~ ( member @ A @ X @ ( acc @ A @ R ) )
=> ~ ! [Z: A] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Z @ X ) @ R )
=> ( member @ A @ Z @ ( acc @ A @ R ) ) ) ) ).
% not_acc_down
thf(fact_220_acc__induct__rule,axiom,
! [A: $tType,A3: A,R2: set @ ( product_prod @ A @ A ),P2: A > $o] :
( ( member @ A @ A3 @ ( acc @ A @ R2 ) )
=> ( ! [X4: A] :
( ( member @ A @ X4 @ ( acc @ A @ R2 ) )
=> ( ! [Y3: A] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ X4 ) @ R2 )
=> ( P2 @ Y3 ) )
=> ( P2 @ X4 ) ) )
=> ( P2 @ A3 ) ) ) ).
% acc_induct_rule
thf(fact_221_stream__all__iff,axiom,
! [A: $tType] :
( ( stream_all @ A )
= ( ^ [P: A > $o,S2: stream @ A] :
! [X6: A] :
( ( member @ A @ X6 @ ( sset @ A @ S2 ) )
=> ( P @ X6 ) ) ) ) ).
% stream_all_iff
thf(fact_222_in__inv__image,axiom,
! [A: $tType,B: $tType,X: A,Y: A,R2: set @ ( product_prod @ B @ B ),F3: A > B] :
( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ ( inv_image @ B @ A @ R2 @ F3 ) )
= ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ ( F3 @ X ) @ ( F3 @ Y ) ) @ R2 ) ) ).
% in_inv_image
thf(fact_223_Ball__comp__iff,axiom,
! [C: $tType,B: $tType,A: $tType,A2: B > ( set @ C ),F3: C > $o,G3: A > B] :
( ( comp @ B @ $o @ A
@ ^ [X6: B] :
! [Y4: C] :
( ( member @ C @ Y4 @ ( A2 @ X6 ) )
=> ( F3 @ Y4 ) )
@ G3 )
= ( ^ [X6: A] :
! [Y4: C] :
( ( member @ C @ Y4 @ ( comp @ B @ ( set @ C ) @ A @ A2 @ G3 @ X6 ) )
=> ( F3 @ Y4 ) ) ) ) ).
% Ball_comp_iff
thf(fact_224_Ball__def,axiom,
! [A: $tType] :
( ( ball @ A )
= ( ^ [A8: set @ A,P: A > $o] :
! [X6: A] :
( ( member @ A @ X6 @ A8 )
=> ( P @ X6 ) ) ) ) ).
% Ball_def
thf(fact_225_stream_Opred__set,axiom,
! [A: $tType] :
( ( pred_stream @ A )
= ( ^ [P: A > $o,X6: stream @ A] :
! [Y4: A] :
( ( member @ A @ Y4 @ ( sset @ A @ X6 ) )
=> ( P @ Y4 ) ) ) ) ).
% stream.pred_set
thf(fact_226_Range__insert,axiom,
! [A: $tType,B: $tType,A3: B,B3: A,R2: set @ ( product_prod @ B @ A )] :
( ( range @ B @ A @ ( insert @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ A3 @ B3 ) @ R2 ) )
= ( insert @ A @ B3 @ ( range @ B @ A @ R2 ) ) ) ).
% Range_insert
thf(fact_227_Domain__insert,axiom,
! [B: $tType,A: $tType,A3: A,B3: B,R2: set @ ( product_prod @ A @ B )] :
( ( domain @ A @ B @ ( insert @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ R2 ) )
= ( insert @ A @ A3 @ ( domain @ A @ B @ R2 ) ) ) ).
% Domain_insert
thf(fact_228_RangeE,axiom,
! [A: $tType,B: $tType,B3: A,R2: set @ ( product_prod @ B @ A )] :
( ( member @ A @ B3 @ ( range @ B @ A @ R2 ) )
=> ~ ! [A4: B] :
~ ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ A4 @ B3 ) @ R2 ) ) ).
% RangeE
thf(fact_229_DomainE,axiom,
! [B: $tType,A: $tType,A3: A,R2: set @ ( product_prod @ A @ B )] :
( ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) )
=> ~ ! [B2: B] :
~ ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B2 ) @ R2 ) ) ).
% DomainE
thf(fact_230_Range__iff,axiom,
! [A: $tType,B: $tType,A3: A,R2: set @ ( product_prod @ B @ A )] :
( ( member @ A @ A3 @ ( range @ B @ A @ R2 ) )
= ( ? [Y4: B] : ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ Y4 @ A3 ) @ R2 ) ) ) ).
% Range_iff
thf(fact_231_Domain__iff,axiom,
! [A: $tType,B: $tType,A3: A,R2: set @ ( product_prod @ A @ B )] :
( ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) )
= ( ? [Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ Y4 ) @ R2 ) ) ) ).
% Domain_iff
thf(fact_232_Range_Ocases,axiom,
! [B: $tType,A: $tType,A3: B,R2: set @ ( product_prod @ A @ B )] :
( ( member @ B @ A3 @ ( range @ A @ B @ R2 ) )
=> ~ ! [A4: A] :
~ ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A4 @ A3 ) @ R2 ) ) ).
% Range.cases
thf(fact_233_Range_Osimps,axiom,
! [B: $tType,A: $tType,A3: B,R2: set @ ( product_prod @ A @ B )] :
( ( member @ B @ A3 @ ( range @ A @ B @ R2 ) )
= ( ? [A5: A,B9: B] :
( ( A3 = B9 )
& ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B9 ) @ R2 ) ) ) ) ).
% Range.simps
thf(fact_234_Domain_Ocases,axiom,
! [B: $tType,A: $tType,A3: A,R2: set @ ( product_prod @ A @ B )] :
( ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) )
=> ~ ! [B2: B] :
~ ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B2 ) @ R2 ) ) ).
% Domain.cases
thf(fact_235_Domain_Osimps,axiom,
! [B: $tType,A: $tType,A3: A,R2: set @ ( product_prod @ A @ B )] :
( ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) )
= ( ? [A5: A,B9: B] :
( ( A3 = A5 )
& ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B9 ) @ R2 ) ) ) ) ).
% Domain.simps
thf(fact_236_Range_Ointros,axiom,
! [B: $tType,A: $tType,A3: A,B3: B,R2: set @ ( product_prod @ A @ B )] :
( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ R2 )
=> ( member @ B @ B3 @ ( range @ A @ B @ R2 ) ) ) ).
% Range.intros
thf(fact_237_Range_Oinducts,axiom,
! [A: $tType,B: $tType,X: B,R2: set @ ( product_prod @ A @ B ),P2: B > $o] :
( ( member @ B @ X @ ( range @ A @ B @ R2 ) )
=> ( ! [A4: A,B2: B] :
( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A4 @ B2 ) @ R2 )
=> ( P2 @ B2 ) )
=> ( P2 @ X ) ) ) ).
% Range.inducts
thf(fact_238_Domain_ODomainI,axiom,
! [B: $tType,A: $tType,A3: A,B3: B,R2: set @ ( product_prod @ A @ B )] :
( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ R2 )
=> ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) ) ) ).
% Domain.DomainI
thf(fact_239_Domain_Oinducts,axiom,
! [B: $tType,A: $tType,X: A,R2: set @ ( product_prod @ A @ B ),P2: A > $o] :
( ( member @ A @ X @ ( domain @ A @ B @ R2 ) )
=> ( ! [A4: A,B2: B] :
( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A4 @ B2 ) @ R2 )
=> ( P2 @ A4 ) )
=> ( P2 @ X ) ) ) ).
% Domain.inducts
thf(fact_240_Range__def,axiom,
! [B: $tType,A: $tType] :
( ( range @ A @ B )
= ( ^ [R3: set @ ( product_prod @ A @ B )] :
( collect @ B
@ ( rangep @ A @ B
@ ^ [X6: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X6 @ Y4 ) @ R3 ) ) ) ) ) ).
% Range_def
thf(fact_241_Rangep__Range__eq,axiom,
! [A: $tType,B: $tType,R2: set @ ( product_prod @ A @ B )] :
( ( rangep @ A @ B
@ ^ [X6: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X6 @ Y4 ) @ R2 ) )
= ( ^ [X6: B] : ( member @ B @ X6 @ ( range @ A @ B @ R2 ) ) ) ) ).
% Rangep_Range_eq
%----Helper facts (3)
thf(help_If_3_1_T,axiom,
! [P2: $o] :
( ( P2 = $true )
| ( P2 = $false ) ) ).
thf(help_If_2_1_T,axiom,
! [A: $tType,X: A,Y: A] :
( ( if @ A @ $false @ X @ Y )
= Y ) ).
thf(help_If_1_1_T,axiom,
! [A: $tType,X: A,Y: A] :
( ( if @ A @ $true @ X @ Y )
= X ) ).
%----Conjectures (1)
thf(conj_0,conjecture,
( ( ( shd @ b @ ( stream377071682run_nu @ a @ b @ ( stream104478819_comp2 @ c @ b @ a @ spb @ sp_b ) @ sb ) )
= ( shd @ b @ ( stream377071682run_nu @ c @ b @ spb @ ( stream377071682run_nu @ a @ c @ sp_b @ sb ) ) ) )
& ? [Sp4: stream1273403375_sp_nu @ c @ b,Sp5: stream1273403375_sp_nu @ a @ c,S5: stream @ a] :
( ( ( stl @ b @ ( stream377071682run_nu @ a @ b @ ( stream104478819_comp2 @ c @ b @ a @ spb @ sp_b ) @ sb ) )
= ( stream377071682run_nu @ a @ b @ ( stream104478819_comp2 @ c @ b @ a @ Sp4 @ Sp5 ) @ S5 ) )
& ( ( stl @ b @ ( stream377071682run_nu @ c @ b @ spb @ ( stream377071682run_nu @ a @ c @ sp_b @ sb ) ) )
= ( stream377071682run_nu @ c @ b @ Sp4 @ ( stream377071682run_nu @ a @ c @ Sp5 @ S5 ) ) ) ) ) ).
%------------------------------------------------------------------------------