let k be Nat; for n being Nat st n >= 1 holds
for x, y being Tuple of n,k -SD st k >= 2 holds
(SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,n) + (DigA y,n))) * ((Radix k) |^ n)) = (SDDec x) + (SDDec y)
defpred S1[ Nat] means for x, y being Tuple of $1,k -SD st k >= 2 holds
(SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,$1) + (DigA y,$1))) * ((Radix k) |^ $1)) = (SDDec x) + (SDDec y);
A1:
for n being Nat st n >= 1 & S1[n] holds
S1[n + 1]
proof
let n be
Nat;
( n >= 1 & S1[n] implies S1[n + 1] )
assume that A2:
n >= 1
and A3:
S1[
n]
;
S1[n + 1]
A4:
n in Seg n
by A2, FINSEQ_1:5;
let x,
y be
Tuple of
n + 1,
k -SD ;
( k >= 2 implies (SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,(n + 1)) + (DigA y,(n + 1)))) * ((Radix k) |^ (n + 1))) = (SDDec x) + (SDDec y) )
assume A5:
k >= 2
;
(SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,(n + 1)) + (DigA y,(n + 1)))) * ((Radix k) |^ (n + 1))) = (SDDec x) + (SDDec y)
deffunc H1(
Nat)
-> Element of
K556() =
DigB x,$1;
consider xn being
FinSequence of
INT such that A6:
len xn = n
and A7:
for
i being
Nat st
i in dom xn holds
xn . i = H1(
i)
from FINSEQ_2:sch 1();
A8:
dom xn = Seg n
by A6, FINSEQ_1:def 3;
rng xn c= k -SD
then reconsider xn =
xn as
FinSequence of
k -SD by FINSEQ_1:def 4;
A12:
for
i being
Nat st
i in Seg n holds
xn . i = x . i
reconsider xn =
xn as
Tuple of
n,
k -SD by A6, FINSEQ_1:def 18;
deffunc H2(
Nat)
-> Element of
K556() =
DigB y,$1;
consider yn being
FinSequence of
INT such that A15:
len yn = n
and A16:
for
i being
Nat st
i in dom yn holds
yn . i = H2(
i)
from FINSEQ_2:sch 1();
A17:
dom yn = Seg n
by A15, FINSEQ_1:def 3;
rng yn c= k -SD
then reconsider yn =
yn as
FinSequence of
k -SD by FINSEQ_1:def 4;
A21:
for
i being
Nat st
i in Seg n holds
yn . i = y . i
reconsider yn =
yn as
Tuple of
n,
k -SD by A15, FINSEQ_1:def 18;
A24:
for
i being
Nat st
i in Seg n holds
DigA y,
i = DigA yn,
i
A26:
n + 1
in Seg (n + 1)
by FINSEQ_1:5;
A27:
for
i being
Element of
NAT st
i in Seg n holds
DigA x,
i = DigA xn,
i
for
i being
Nat st
i in Seg n holds
(x '+' y) . i = (xn '+' yn) . i
proof
let i be
Nat;
( i in Seg n implies (x '+' y) . i = (xn '+' yn) . i )
assume A29:
i in Seg n
;
(x '+' y) . i = (xn '+' yn) . i
then A30:
i in Seg (n + 1)
by FINSEQ_2:9;
(x '+' y) . i = (xn '+' yn) . i
proof
A31:
i <= n + 1
by A30, FINSEQ_1:3;
A32:
i >= 1
by A29, FINSEQ_1:3;
now per cases
( i > 1 or i = 1 )
by A32, XXREAL_0:1;
suppose A33:
i > 1
;
(x '+' y) . i = (xn '+' yn) . ithen
i - 1
> 1
- 1
by XREAL_1:11;
then A34:
i -' 1
= i - 1
by XREAL_0:def 2;
i -' 1
> 1
-' 1
by A33, NAT_D:57;
then A35:
i -' 1
>= 1
by NAT_1:14;
i - 1
<= (n + 1) - 1
by A31, XREAL_1:11;
then A36:
i -' 1
in Seg n
by A35, A34, FINSEQ_1:3;
(x '+' y) . i =
DigA (x '+' y),
i
by A30, RADIX_1:def 3
.=
Add x,
y,
i,
k
by A30, RADIX_1:def 14
.=
(SD_Add_Data ((DigA x,i) + (DigA y,i)),k) + (SD_Add_Carry ((DigA x,(i -' 1)) + (DigA y,(i -' 1))))
by A5, A30, RADIX_1:def 13
.=
(SD_Add_Data ((DigA xn,i) + (DigA y,i)),k) + (SD_Add_Carry ((DigA x,(i -' 1)) + (DigA y,(i -' 1))))
by A27, A29
.=
(SD_Add_Data ((DigA xn,i) + (DigA y,i)),k) + (SD_Add_Carry ((DigA xn,(i -' 1)) + (DigA y,(i -' 1))))
by A27, A36
.=
(SD_Add_Data ((DigA xn,i) + (DigA yn,i)),k) + (SD_Add_Carry ((DigA xn,(i -' 1)) + (DigA y,(i -' 1))))
by A24, A29
.=
(SD_Add_Data ((DigA xn,i) + (DigA yn,i)),k) + (SD_Add_Carry ((DigA xn,(i -' 1)) + (DigA yn,(i -' 1))))
by A24, A36
.=
Add xn,
yn,
i,
k
by A5, A29, RADIX_1:def 13
.=
DigA (xn '+' yn),
i
by A29, RADIX_1:def 14
;
hence
(x '+' y) . i = (xn '+' yn) . i
by A29, RADIX_1:def 3;
verum end; suppose A37:
i = 1
;
(x '+' y) . i = (xn '+' yn) . i(x '+' y) . i =
DigA (x '+' y),
i
by A30, RADIX_1:def 3
.=
Add x,
y,
i,
k
by A30, RADIX_1:def 14
.=
(SD_Add_Data ((DigA x,i) + (DigA y,i)),k) + (SD_Add_Carry ((DigA x,(1 -' 1)) + (DigA y,(1 -' 1))))
by A5, A30, A37, RADIX_1:def 13
.=
(SD_Add_Data ((DigA x,i) + (DigA y,i)),k) + (SD_Add_Carry ((DigA x,0 ) + (DigA y,(1 -' 1))))
by XREAL_1:234
.=
(SD_Add_Data ((DigA x,i) + (DigA y,i)),k) + (SD_Add_Carry ((DigA x,0 ) + (DigA y,0 )))
by XREAL_1:234
.=
(SD_Add_Data ((DigA x,i) + (DigA y,i)),k) + (SD_Add_Carry (0 + (DigA y,0 )))
by RADIX_1:def 3
.=
(SD_Add_Data ((DigA x,i) + (DigA y,i)),k) + (SD_Add_Carry (0 + 0 ))
by RADIX_1:def 3
.=
(SD_Add_Data ((DigA x,i) + (DigA y,i)),k) + (SD_Add_Carry ((DigA xn,0 ) + 0 ))
by RADIX_1:def 3
.=
(SD_Add_Data ((DigA x,i) + (DigA y,i)),k) + (SD_Add_Carry ((DigA xn,0 ) + (DigA yn,0 )))
by RADIX_1:def 3
.=
(SD_Add_Data ((DigA xn,i) + (DigA y,i)),k) + (SD_Add_Carry ((DigA xn,0 ) + (DigA yn,0 )))
by A27, A29
.=
(SD_Add_Data ((DigA xn,i) + (DigA yn,i)),k) + (SD_Add_Carry ((DigA xn,0 ) + (DigA yn,0 )))
by A24, A29
.=
(SD_Add_Data ((DigA xn,i) + (DigA yn,i)),k) + (SD_Add_Carry ((DigA xn,(1 -' 1)) + (DigA yn,0 )))
by XREAL_1:234
.=
(SD_Add_Data ((DigA xn,i) + (DigA yn,i)),k) + (SD_Add_Carry ((DigA xn,(i -' 1)) + (DigA yn,(i -' 1))))
by A37, XREAL_1:234
.=
Add xn,
yn,
i,
k
by A5, A29, RADIX_1:def 13
.=
DigA (xn '+' yn),
i
by A29, RADIX_1:def 14
;
hence
(x '+' y) . i = (xn '+' yn) . i
by A29, RADIX_1:def 3;
verum end; end; end;
hence
(x '+' y) . i = (xn '+' yn) . i
;
verum
end;
hence
(x '+' y) . i = (xn '+' yn) . i
;
verum
end;
then
Sum (DigitSD (x '+' y)) = Sum ((DigitSD (xn '+' yn)) ^ <*(SubDigit (x '+' y),(n + 1),k)*>)
by Th9;
then SDDec (x '+' y) =
Sum ((DigitSD (xn '+' yn)) ^ <*(SubDigit (x '+' y),(n + 1),k)*>)
by RADIX_1:def 7
.=
(Sum (DigitSD (xn '+' yn))) + (SubDigit (x '+' y),(n + 1),k)
by RVSUM_1:104
.=
(Sum (DigitSD (xn '+' yn))) + (((Radix k) |^ ((n + 1) -' 1)) * (DigB (x '+' y),(n + 1)))
by RADIX_1:def 5
.=
(Sum (DigitSD (xn '+' yn))) + (((Radix k) |^ n) * (DigB (x '+' y),(n + 1)))
by NAT_D:34
.=
(Sum (DigitSD (xn '+' yn))) + (((Radix k) |^ n) * (DigA (x '+' y),(n + 1)))
by RADIX_1:def 4
.=
(Sum (DigitSD (xn '+' yn))) + (((Radix k) |^ n) * (Add x,y,(n + 1),k))
by A26, RADIX_1:def 14
.=
(Sum (DigitSD (xn '+' yn))) + (((Radix k) |^ n) * ((SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k) + (SD_Add_Carry ((DigA x,((n + 1) -' 1)) + (DigA y,((n + 1) -' 1))))))
by A5, A26, RADIX_1:def 13
.=
(Sum (DigitSD (xn '+' yn))) + (((Radix k) |^ n) * ((SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k) + (SD_Add_Carry ((DigA x,n) + (DigA y,((n + 1) -' 1))))))
by NAT_D:34
.=
(Sum (DigitSD (xn '+' yn))) + (((Radix k) |^ n) * ((SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k) + (SD_Add_Carry ((DigA x,n) + (DigA y,n)))))
by NAT_D:34
.=
((Sum (DigitSD (xn '+' yn))) + (((Radix k) |^ n) * (SD_Add_Carry ((DigA x,n) + (DigA y,n))))) + (((Radix k) |^ n) * (SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k))
.=
((SDDec (xn '+' yn)) + (((Radix k) |^ n) * (SD_Add_Carry ((DigA x,n) + (DigA y,n))))) + (((Radix k) |^ n) * (SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k))
by RADIX_1:def 7
.=
((SDDec (xn '+' yn)) + (((Radix k) |^ n) * (SD_Add_Carry ((DigA xn,n) + (DigA y,n))))) + (((Radix k) |^ n) * (SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k))
by A27, A4
.=
((SDDec (xn '+' yn)) + (((Radix k) |^ n) * (SD_Add_Carry ((DigA xn,n) + (DigA yn,n))))) + (((Radix k) |^ n) * (SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k))
by A2, A24, FINSEQ_1:5
.=
((SDDec xn) + (SDDec yn)) + (((Radix k) |^ n) * (SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k))
by A3, A5
;
then (SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,(n + 1)) + (DigA y,(n + 1)))) * ((Radix k) |^ (n + 1))) =
((SDDec xn) + (SDDec yn)) + ((((Radix k) |^ n) * (SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k)) + ((SD_Add_Carry ((DigA x,(n + 1)) + (DigA y,(n + 1)))) * ((Radix k) |^ (n + 1))))
.=
((SDDec xn) + (SDDec yn)) + ((((Radix k) |^ n) * (SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k)) + ((SD_Add_Carry ((DigA x,(n + 1)) + (DigA y,(n + 1)))) * (((Radix k) |^ n) * (Radix k))))
by NEWTON:11
.=
((SDDec xn) + (SDDec yn)) + (((Radix k) |^ n) * ((SD_Add_Data ((DigA x,(n + 1)) + (DigA y,(n + 1))),k) + ((SD_Add_Carry ((DigA x,(n + 1)) + (DigA y,(n + 1)))) * (Radix k))))
.=
((SDDec xn) + (SDDec yn)) + (((Radix k) |^ n) * ((DigA x,(n + 1)) + (DigA y,(n + 1))))
by Th8
.=
((SDDec xn) + (((Radix k) |^ n) * (DigA x,(n + 1)))) + ((SDDec yn) + (((Radix k) |^ n) * (DigA y,(n + 1))))
.=
(SDDec x) + ((SDDec yn) + (((Radix k) |^ n) * (DigA y,(n + 1))))
by A12, Th10
;
hence
(SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,(n + 1)) + (DigA y,(n + 1)))) * ((Radix k) |^ (n + 1))) = (SDDec x) + (SDDec y)
by A21, Th10;
verum
end;
A38:
S1[1]
proof
1
- 1
= 0
;
then A39:
1
-' 1
= 0
by XREAL_0:def 2;
let x,
y be
Tuple of 1,
k -SD ;
( k >= 2 implies (SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,1) + (DigA y,1))) * ((Radix k) |^ 1)) = (SDDec x) + (SDDec y) )
assume A40:
k >= 2
;
(SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,1) + (DigA y,1))) * ((Radix k) |^ 1)) = (SDDec x) + (SDDec y)
A41:
(
SDDec y = DigA y,1 &
SD_Add_Data ((DigA x,1) + (DigA y,1)),
k = ((DigA x,1) + (DigA y,1)) - ((SD_Add_Carry ((DigA x,1) + (DigA y,1))) * (Radix k)) )
by Th7, RADIX_1:def 11;
A42:
1
in Seg 1
by FINSEQ_1:4, TARSKI:def 1;
then DigA (x '+' y),1 =
Add x,
y,1,
k
by RADIX_1:def 14
.=
(SD_Add_Data ((DigA x,1) + (DigA y,1)),k) + (SD_Add_Carry ((DigA x,0 ) + (DigA y,0 )))
by A40, A42, A39, RADIX_1:def 13
.=
(SD_Add_Data ((DigA x,1) + (DigA y,1)),k) + (SD_Add_Carry (0 + (DigA y,0 )))
by RADIX_1:def 3
.=
(SD_Add_Data ((DigA x,1) + (DigA y,1)),k) + 0
by RADIX_1:21, RADIX_1:def 3
;
then
SDDec (x '+' y) = SD_Add_Data ((DigA x,1) + (DigA y,1)),
k
by Th7;
hence (SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,1) + (DigA y,1))) * ((Radix k) |^ 1)) =
(SD_Add_Data ((DigA x,1) + (DigA y,1)),k) + ((SD_Add_Carry ((DigA x,1) + (DigA y,1))) * (Radix k))
by NEWTON:10
.=
(SDDec x) + (SDDec y)
by A41, Th7
;
verum
end;
for n being Nat st n >= 1 holds
S1[n]
from NAT_1:sch 8(A38, A1);
hence
for n being Nat st n >= 1 holds
for x, y being Tuple of n,k -SD st k >= 2 holds
(SDDec (x '+' y)) + ((SD_Add_Carry ((DigA x,n) + (DigA y,n))) * ((Radix k) |^ n)) = (SDDec x) + (SDDec y)
; verum