let x, y be FinSequence; for n being Element of NAT holds
( ( (n -BitBorrowOutput x,y) `1 = <*> & (n -BitBorrowOutput x,y) `2 = (0 -tuples_on BOOLEAN ) --> TRUE & proj1 ((n -BitBorrowOutput x,y) `2 ) = 0 -tuples_on BOOLEAN ) or ( card ((n -BitBorrowOutput x,y) `1 ) = 3 & (n -BitBorrowOutput x,y) `2 = or3 & proj1 ((n -BitBorrowOutput x,y) `2 ) = 3 -tuples_on BOOLEAN ) )
defpred S1[ Element of NAT ] means ( ( ($1 -BitBorrowOutput x,y) `1 = <*> & ($1 -BitBorrowOutput x,y) `2 = (0 -tuples_on BOOLEAN ) --> TRUE & proj1 (($1 -BitBorrowOutput x,y) `2 ) = 0 -tuples_on BOOLEAN ) or ( card (($1 -BitBorrowOutput x,y) `1 ) = 3 & ($1 -BitBorrowOutput x,y) `2 = or3 & proj1 (($1 -BitBorrowOutput x,y) `2 ) = 3 -tuples_on BOOLEAN ) );
A1:
dom ((0 -tuples_on BOOLEAN ) --> TRUE ) = 0 -tuples_on BOOLEAN
by FUNCOP_1:19;
0 -BitBorrowOutput x,y = [<*> ,((0 -tuples_on BOOLEAN ) --> TRUE )]
by Th2;
then A2:
S1[ 0 ]
by A1, MCART_1:7;
A3:
now let n be
Element of
NAT ;
( S1[n] implies S1[n + 1] )assume
S1[
n]
;
S1[n + 1]set c =
n -BitBorrowOutput x,
y;
A4:
(n + 1) -BitBorrowOutput x,
y =
BorrowOutput (x . (n + 1)),
(y . (n + 1)),
(n -BitBorrowOutput x,y)
by Th7
.=
[<*[<*(x . (n + 1)),(y . (n + 1))*>,and2a ],[<*(y . (n + 1)),(n -BitBorrowOutput x,y)*>,and2 ],[<*(x . (n + 1)),(n -BitBorrowOutput x,y)*>,and2a ]*>,or3 ]
;
A5:
dom or3 = 3
-tuples_on BOOLEAN
by FUNCT_2:def 1;
((n + 1) -BitBorrowOutput x,y) `1 = <*[<*(x . (n + 1)),(y . (n + 1))*>,and2a ],[<*(y . (n + 1)),(n -BitBorrowOutput x,y)*>,and2 ],[<*(x . (n + 1)),(n -BitBorrowOutput x,y)*>,and2a ]*>
by A4, MCART_1:7;
hence
S1[
n + 1]
by A4, A5, FINSEQ_1:62, MCART_1:7;
verum end;
thus
for i being Element of NAT holds S1[i]
from NAT_1:sch 1(A2, A3); verum