set f1 = and2c ;
set f2 = and2a ;
set f3 = and2 ;
set f4 = or3 ;
let x, y be FinSequence; :: thesis: for n being Nat holds
( ( (n -BitGFA1CarryOutput x,y) `1 = <*> & (n -BitGFA1CarryOutput x,y) `2 = (0 -tuples_on BOOLEAN ) --> TRUE & proj1 ((n -BitGFA1CarryOutput x,y) `2 ) = 0 -tuples_on BOOLEAN ) or ( card ((n -BitGFA1CarryOutput x,y) `1 ) = 3 & (n -BitGFA1CarryOutput x,y) `2 = or3 & proj1 ((n -BitGFA1CarryOutput x,y) `2 ) = 3 -tuples_on BOOLEAN ) )
defpred S1[ Nat] means ( ( ($1 -BitGFA1CarryOutput x,y) `1 = <*> & ($1 -BitGFA1CarryOutput x,y) `2 = (0 -tuples_on BOOLEAN ) --> TRUE & proj1 (($1 -BitGFA1CarryOutput x,y) `2 ) = 0 -tuples_on BOOLEAN ) or ( card (($1 -BitGFA1CarryOutput x,y) `1 ) = 3 & ($1 -BitGFA1CarryOutput x,y) `2 = or3 & proj1 (($1 -BitGFA1CarryOutput 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 -BitGFA1CarryOutput x,y = [<*> ,((0 -tuples_on BOOLEAN ) --> TRUE )] )
by Th16, FUNCOP_1:19, MCART_1:7;
then A1:
S1[ 0 ]
by MCART_1:7;
A2:
now let n be
Nat;
:: thesis: ( S1[n] implies S1[n + 1] )assume
S1[
n]
;
:: thesis: S1[n + 1]set c =
n -BitGFA1CarryOutput x,
y;
(n + 1) -BitGFA1CarryOutput x,
y =
GFA1CarryOutput (x . (n + 1)),
(y . (n + 1)),
(n -BitGFA1CarryOutput x,y)
by Th21
.=
[<*[<*(x . (n + 1)),(y . (n + 1))*>,and2c ],[<*(y . (n + 1)),(n -BitGFA1CarryOutput x,y)*>,and2a ],[<*(n -BitGFA1CarryOutput x,y),(x . (n + 1))*>,and2 ]*>,or3 ]
;
then
(
dom or3 = 3
-tuples_on BOOLEAN &
((n + 1) -BitGFA1CarryOutput x,y) `1 = <*[<*(x . (n + 1)),(y . (n + 1))*>,and2c ],[<*(y . (n + 1)),(n -BitGFA1CarryOutput x,y)*>,and2a ],[<*(n -BitGFA1CarryOutput x,y),(x . (n + 1))*>,and2 ]*> &
((n + 1) -BitGFA1CarryOutput 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 Nat holds S1[i]
from NAT_1:sch 2(A1, A2); :: thesis: verum