let x, y be Element of NAT ; Nat2BL . (x + y) = (Nat2BL . x) + (Nat2BL . y)
x + y is Element of NAT
by ORDINAL1:def 12;
then
Nat2BL . (x + y) = (LenBSeq (x + y)) -BinarySequence (x + y)
by Def2;
then reconsider adxy = Nat2BL . (x + y) as Tuple of LenBSeq (x + y), BOOLEAN ;
set Nx = Nat2BL . x;
set Ny = Nat2BL . y;
PX2:
Nat2BL . x = (LenBSeq x) -BinarySequence x
by Def2;
PA3:
Nat2BL . y = (LenBSeq y) -BinarySequence y
by Def2;
then A3:
( len (Nat2BL . x) <> 0 & len (Nat2BL . y) <> 0 )
by PX2;
B1:
Nat2BL . x = (LenBSeq x) -BinarySequence x
by Def2;
B2:
Nat2BL . y = (LenBSeq y) -BinarySequence y
by Def2;
H1:
Nat2BL . x in rng Nat2BL
by FUNCT_2:4;
PH3:
Nat2BL . y in rng Nat2BL
by FUNCT_2:4;
PD0:
LenMax ((Nat2BL . x),(Nat2BL . y)) = max ((len (Nat2BL . x)),(len (Nat2BL . y)))
by PA3, Def15, PX2;
then
( len (Nat2BL . x) <= LenMax ((Nat2BL . x),(Nat2BL . y)) & len (Nat2BL . y) <= LenMax ((Nat2BL . x),(Nat2BL . y)) )
by XXREAL_0:25;
then E0:
( (len (Nat2BL . x)) + 0 <= (LenMax ((Nat2BL . x),(Nat2BL . y))) + 1 & (len (Nat2BL . y)) + 0 <= (LenMax ((Nat2BL . x),(Nat2BL . y))) + 1 )
by XREAL_1:7;
per cases
( ExtBit ((Nat2BL . x),(LenMax ((Nat2BL . x),(Nat2BL . y)))), ExtBit ((Nat2BL . y),(LenMax ((Nat2BL . x),(Nat2BL . y)))) are_summable or not ExtBit ((Nat2BL . x),(LenMax ((Nat2BL . x),(Nat2BL . y)))), ExtBit ((Nat2BL . y),(LenMax ((Nat2BL . x),(Nat2BL . y)))) are_summable )
;
suppose C1:
ExtBit (
(Nat2BL . x),
(LenMax ((Nat2BL . x),(Nat2BL . y)))),
ExtBit (
(Nat2BL . y),
(LenMax ((Nat2BL . x),(Nat2BL . y))))
are_summable
;
Nat2BL . (x + y) = (Nat2BL . x) + (Nat2BL . y)then C2:
(Nat2BL . x) + (Nat2BL . y) = (ExtBit ((Nat2BL . x),(LenMax ((Nat2BL . x),(Nat2BL . y))))) + (ExtBit ((Nat2BL . y),(LenMax ((Nat2BL . x),(Nat2BL . y)))))
by Def3, A3;
set ENx =
ExtBit (
(Nat2BL . x),
(LenMax ((Nat2BL . x),(Nat2BL . y))));
set ENy =
ExtBit (
(Nat2BL . y),
(LenMax ((Nat2BL . x),(Nat2BL . y))));
D1:
ExtBit (
(Nat2BL . x),
(LenMax ((Nat2BL . x),(Nat2BL . y))))
= (Nat2BL . x) ^ (0* ((LenMax ((Nat2BL . x),(Nat2BL . y))) -' (len (Nat2BL . x))))
by Def20, PD0, XXREAL_0:25;
D2:
ExtBit (
(Nat2BL . y),
(LenMax ((Nat2BL . x),(Nat2BL . y))))
= (Nat2BL . y) ^ (0* ((LenMax ((Nat2BL . x),(Nat2BL . y))) -' (len (Nat2BL . y))))
by Def20, PD0, XXREAL_0:25;
A4:
x =
Absval ((LenBSeq x) -BinarySequence x)
by LM007
.=
Absval (ExtBit ((Nat2BL . x),(LenMax ((Nat2BL . x),(Nat2BL . y)))))
by LM080, B1, D1
;
y =
Absval ((LenBSeq y) -BinarySequence y)
by LM007
.=
Absval (ExtBit ((Nat2BL . y),(LenMax ((Nat2BL . x),(Nat2BL . y)))))
by LM080, B2, D2
;
then A6:
Nat2BL . (Absval ((ExtBit ((Nat2BL . x),(LenMax ((Nat2BL . x),(Nat2BL . y))))) + (ExtBit ((Nat2BL . y),(LenMax ((Nat2BL . x),(Nat2BL . y))))))) = Nat2BL . (x + y)
by A4, C1, BINARITH:22;
consider L being
Element of
NAT such that H5:
(ExtBit ((Nat2BL . x),(LenMax ((Nat2BL . x),(Nat2BL . y))))) + (ExtBit ((Nat2BL . y),(LenMax ((Nat2BL . x),(Nat2BL . y))))) = Nat2BL . L
by FUNCT_2:113, PH3, C2, LM071, H1;
thus
Nat2BL . (x + y) = (Nat2BL . x) + (Nat2BL . y)
by A6, C2, LM090, H5;
verum end; suppose
not
ExtBit (
(Nat2BL . x),
(LenMax ((Nat2BL . x),(Nat2BL . y)))),
ExtBit (
(Nat2BL . y),
(LenMax ((Nat2BL . x),(Nat2BL . y))))
are_summable
;
Nat2BL . (x + y) = (Nat2BL . x) + (Nat2BL . y)then C2:
(Nat2BL . x) + (Nat2BL . y) = (ExtBit ((Nat2BL . x),((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1))) + (ExtBit ((Nat2BL . y),((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1)))
by Def3, A3;
set ENx =
ExtBit (
(Nat2BL . x),
((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1));
set ENy =
ExtBit (
(Nat2BL . y),
((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1));
XX1:
ExtBit (
(Nat2BL . x),
((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1))
= (ExtBit ((Nat2BL . x),(LenMax ((Nat2BL . x),(Nat2BL . y))))) ^ <*0*>
by PD0, LMExtBit1, XXREAL_0:25;
XX2:
ExtBit (
(Nat2BL . y),
((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1))
= (ExtBit ((Nat2BL . y),(LenMax ((Nat2BL . x),(Nat2BL . y))))) ^ <*0*>
by PD0, LMExtBit1, XXREAL_0:25;
D1:
ExtBit (
(Nat2BL . x),
((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1))
= (Nat2BL . x) ^ (0* (((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1) -' (len (Nat2BL . x))))
by Def20, E0;
D2:
ExtBit (
(Nat2BL . y),
((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1))
= (Nat2BL . y) ^ (0* (((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1) -' (len (Nat2BL . y))))
by Def20, E0;
A4:
x =
Absval ((LenBSeq x) -BinarySequence x)
by LM007
.=
Absval (ExtBit ((Nat2BL . x),((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1)))
by LM080, B1, D1
;
y =
Absval ((LenBSeq y) -BinarySequence y)
by LM007
.=
Absval (ExtBit ((Nat2BL . y),((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1)))
by LM080, B2, D2
;
then A6:
Nat2BL . (Absval ((ExtBit ((Nat2BL . x),((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1))) + (ExtBit ((Nat2BL . y),((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1))))) = Nat2BL . (x + y)
by A4, BINARITH:22, XX1, XX2, LMExtBit2;
consider L being
Element of
NAT such that H5:
(ExtBit ((Nat2BL . x),((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1))) + (ExtBit ((Nat2BL . y),((LenMax ((Nat2BL . x),(Nat2BL . y))) + 1))) = Nat2BL . L
by FUNCT_2:113, PH3, C2, LM071, H1;
thus
Nat2BL . (x + y) = (Nat2BL . x) + (Nat2BL . y)
by A6, C2, LM090, H5;
verum end; end;