let x, y be FinSequence; :: thesis: 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 ) );
( [<*> ,((0 -tuples_on BOOLEAN ) --> TRUE )] `2 = (0 -tuples_on BOOLEAN ) --> TRUE & dom ((0 -tuples_on BOOLEAN ) --> TRUE ) = 0 -tuples_on BOOLEAN & 0 -BitBorrowOutput x,y = [<*> ,((0 -tuples_on BOOLEAN ) --> TRUE )] ) by Th2, FUNCOP_1:19, MCART_1:7;
then A1: S1[ 0 ] by MCART_1:7;
A2: now
let n be Element of NAT ; :: thesis: ( S1[n] implies S1[n + 1] )
assume S1[n] ; :: thesis: S1[n + 1]
set c = n -BitBorrowOutput x,y;
(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 ] ;
then ( dom or3 = 3 -tuples_on BOOLEAN & ((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 ]*> & ((n + 1) -BitBorrowOutput x,y) `2 = or3 ) by FUNCT_2:def 1, MCART_1:7;
hence S1[n + 1] by FINSEQ_1:62; :: thesis: verum
end;
thus for i being Element of NAT holds S1[i] from NAT_1:sch 1(A1, A2); :: thesis: verum