let n be Element of NAT ; :: thesis: for x being Tuple of n,BOOLEAN holds (ZERO n) 'xor' x = x
let x be Tuple of n,BOOLEAN ; :: thesis: (ZERO n) 'xor' x = x
A1:
( len ((ZERO n) 'xor' x) = n & len x = n )
by FINSEQ_1:def 18;
X:
dom ((ZERO n) 'xor' x) = Seg n
by A1, FINSEQ_1:def 3;
now let j be
Nat;
:: thesis: ( j in dom ((ZERO n) 'xor' x) implies ((ZERO n) 'xor' x) . j = x . j )assume A2:
j in dom ((ZERO n) 'xor' x)
;
:: thesis: ((ZERO n) 'xor' x) . j = x . jthen A3:
(
j in dom ((ZERO n) 'xor' x) &
j in dom x )
by A1, X, FINSEQ_1:def 3;
j in dom (ZERO n)
by A2, X, FUNCOP_1:19;
then A4:
(ZERO n) /. j =
(n |-> FALSE ) . j
by PARTFUN1:def 8
.=
FALSE
by A2, X, FUNCOP_1:13
;
thus ((ZERO n) 'xor' x) . j =
((ZERO n) 'xor' x) /. j
by A3, PARTFUN1:def 8
.=
FALSE 'xor' (x /. j)
by A2, A4, Def2, X
.=
x /. j
by BINARITH:14
.=
x . j
by A3, PARTFUN1:def 8
;
:: thesis: verum end;
hence
(ZERO n) 'xor' x = x
by A1, FINSEQ_2:10; :: thesis: verum