let x, y be FinSequence; :: thesis: for n being Nat holds
( ( (n -BitMajorityOutput (x,y)) `1 = <*> & (n -BitMajorityOutput (x,y)) `2 = (0 -tuples_on BOOLEAN) --> FALSE & proj1 ((n -BitMajorityOutput (x,y)) `2) = 0 -tuples_on BOOLEAN ) or ( card ((n -BitMajorityOutput (x,y)) `1) = 3 & (n -BitMajorityOutput (x,y)) `2 = or3 & proj1 ((n -BitMajorityOutput (x,y)) `2) = 3 -tuples_on BOOLEAN ) )

defpred S1[ Nat] means ( ( ($1 -BitMajorityOutput (x,y)) `1 = <*> & ($1 -BitMajorityOutput (x,y)) `2 = (0 -tuples_on BOOLEAN) --> FALSE & proj1 (($1 -BitMajorityOutput (x,y)) `2) = 0 -tuples_on BOOLEAN ) or ( card (($1 -BitMajorityOutput (x,y)) `1) = 3 & ($1 -BitMajorityOutput (x,y)) `2 = or3 & proj1 (($1 -BitMajorityOutput (x,y)) `2) = 3 -tuples_on BOOLEAN ) );
A1: dom ((0 -tuples_on BOOLEAN) --> FALSE) = 0 -tuples_on BOOLEAN by FUNCOP_1:13;
0 -BitMajorityOutput (x,y) = [<*>,((0 -tuples_on BOOLEAN) --> FALSE)] by Th7;
then A2: S1[ 0 ] by A1;
A3: now :: thesis: for n being Nat st S1[n] holds
S1[n + 1]
let n be Nat; :: thesis: ( S1[n] implies S1[n + 1] )
assume S1[n] ; :: thesis: S1[n + 1]
set c = n -BitMajorityOutput (x,y);
A4: (n + 1) -BitMajorityOutput (x,y) = MajorityOutput ((x . (n + 1)),(y . (n + 1)),(n -BitMajorityOutput (x,y))) by Th12
.= [<*[<*(x . (n + 1)),(y . (n + 1))*>,'&'],[<*(y . (n + 1)),(n -BitMajorityOutput (x,y))*>,'&'],[<*(n -BitMajorityOutput (x,y)),(x . (n + 1))*>,'&']*>,or3] ;
A5: dom or3 = 3 -tuples_on BOOLEAN by FUNCT_2:def 1;
thus S1[n + 1] by A4, A5, FINSEQ_1:45; :: thesis: verum
end;
thus for n being Nat holds S1[n] from NAT_1:sch 2(A2, A3); :: thesis: verum