deffunc H1( 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 = H1(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
; 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; ( i in Seg n implies z /. i = ((x /. i) 'xor' (y /. i)) 'xor' ((carry (x,y)) /. i) )
assume A4:
i in Seg n
; 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
;
verum