deffunc H_{1}( Nat) -> Element of BOOLEAN = ((x /. $1) 'xor' (y /. $1)) 'xor' ((carry (x,y)) /. $1);

consider z being FinSequence of BOOLEAN such that

A1: len z = n and

A2: for j being Nat st j in dom z holds

z . j = H_{1}(j)
from FINSEQ_2:sch 1();

A3: dom z = Seg n by A1, FINSEQ_1:def 3;

reconsider z = z as Tuple of n, BOOLEAN by A1, CARD_1:def 7;

take z ; :: thesis: for i being Nat st i in Seg n holds

z /. i = ((x /. i) 'xor' (y /. i)) 'xor' ((carry (x,y)) /. i)

let i be Nat; :: thesis: ( i in Seg n implies z /. i = ((x /. i) 'xor' (y /. i)) 'xor' ((carry (x,y)) /. i) )

assume A4: i in Seg n ; :: thesis: z /. i = ((x /. i) 'xor' (y /. i)) 'xor' ((carry (x,y)) /. i)

then i in dom z by A1, FINSEQ_1:def 3;

hence z /. i = z . i by PARTFUN1:def 6

.= ((x /. i) 'xor' (y /. i)) 'xor' ((carry (x,y)) /. i) by A2, A3, A4 ;

:: thesis: verum

consider z being FinSequence of BOOLEAN such that

A1: len z = n and

A2: for j being Nat st j in dom z holds

z . j = H

A3: dom z = Seg n by A1, FINSEQ_1:def 3;

reconsider z = z as Tuple of n, BOOLEAN by A1, CARD_1:def 7;

take z ; :: thesis: for i being Nat st i in Seg n holds

z /. i = ((x /. i) 'xor' (y /. i)) 'xor' ((carry (x,y)) /. i)

let i be Nat; :: thesis: ( i in Seg n implies z /. i = ((x /. i) 'xor' (y /. i)) 'xor' ((carry (x,y)) /. i) )

assume A4: i in Seg n ; :: thesis: z /. i = ((x /. i) 'xor' (y /. i)) 'xor' ((carry (x,y)) /. i)

then i in dom z by A1, FINSEQ_1:def 3;

hence z /. i = z . i by PARTFUN1:def 6

.= ((x /. i) 'xor' (y /. i)) 'xor' ((carry (x,y)) /. i) by A2, A3, A4 ;

:: thesis: verum