let n be Nat; :: thesis: ( n >= 1 implies for k, x, y being Nat st k >= 3 & x is_represented_by n,k & y is_represented_by n,k holds
x + y = SDSub2IntOut ((SD2SDSub (DecSD x,n,k)) '+' (SD2SDSub (DecSD y,n,k))) )

assume A1: n >= 1 ; :: thesis: for k, x, y being Nat st k >= 3 & x is_represented_by n,k & y is_represented_by n,k holds
x + y = SDSub2IntOut ((SD2SDSub (DecSD x,n,k)) '+' (SD2SDSub (DecSD y,n,k)))

defpred S1[ Nat] means for k, x, y being Nat st k >= 3 & x is_represented_by $1,k & y is_represented_by $1,k holds
x + y = SDSub2IntOut ((SD2SDSub (DecSD x,$1,k)) '+' (SD2SDSub (DecSD y,$1,k)));
A2: S1[1]
proof
let k, x, y be Nat; :: thesis: ( k >= 3 & x is_represented_by 1,k & y is_represented_by 1,k implies x + y = SDSub2IntOut ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))) )
assume A3: ( k >= 3 & x is_represented_by 1,k & y is_represented_by 1,k ) ; :: thesis: x + y = SDSub2IntOut ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k)))
reconsider k = k, x = x, y = y as Element of NAT by ORDINAL1:def 13;
set X = SD2SDSub (DecSD x,1,k);
set Y = SD2SDSub (DecSD y,1,k);
reconsider CRY1 = SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),1) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)),k as Integer ;
A4: 1 in Seg (1 + 1) by FINSEQ_1:3;
then A5: DigA_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),1 = SDSubAddDigit (SD2SDSub (DecSD x,1,k)),(SD2SDSub (DecSD y,1,k)),1,k by Def2
.= (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),1) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),(1 -' 1)) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),(1 -' 1))),k) by A3, A4, Def1, XXREAL_0:2
.= (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),1) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),0 ) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),(1 -' 1))),k) by XREAL_1:234
.= (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),1) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),0 ) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),0 )),k) by XREAL_1:234
.= (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),1) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)),k) + (SDSub_Add_Carry (0 + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),0 )),k) by RADIX_3:def 5
.= (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),1) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)),k) + (SDSub_Add_Carry (0 + 0 ),k) by RADIX_3:def 5
.= (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),1) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)),k) + 0 by A3, RADIX_3:17, XXREAL_0:2
.= ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),1) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)) - ((Radix k) * CRY1) by RADIX_3:def 4 ;
2 - 1 = 1 ;
then A6: 2 -' 1 = 1 by XREAL_0:def 2;
A7: 2 in Seg (1 + 1) by FINSEQ_1:3;
then A8: DigA_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),2 = SDSubAddDigit (SD2SDSub (DecSD x,1,k)),(SD2SDSub (DecSD y,1,k)),2,k by Def2
.= (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),2) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),2)),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),(2 -' 1)) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),(2 -' 1))),k) by A3, A7, Def1, XXREAL_0:2
.= (SDSub_Add_Data ((SDSub_Add_Carry x,k) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),2)),k) + CRY1 by A3, A6, Th4, XXREAL_0:2
.= (SDSub_Add_Data ((SDSub_Add_Carry x,k) + (SDSub_Add_Carry y,k)),k) + CRY1 by A3, Th4, XXREAL_0:2
.= (((SDSub_Add_Carry x,k) + (SDSub_Add_Carry y,k)) - ((Radix k) * (SDSub_Add_Carry ((SDSub_Add_Carry x,k) + (SDSub_Add_Carry y,k)),k))) + CRY1 by RADIX_3:def 4
.= (((SDSub_Add_Carry x,k) + (SDSub_Add_Carry y,k)) - ((Radix k) * 0 )) + CRY1 by A3, Th2
.= (((SDSub_Add_Carry x,k) + (SDSub_Add_Carry y,k)) - 0 ) + CRY1 ;
A9: (SDSub2INT ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k)))) /. 1 = SDSub2INTDigit ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),1,k by A4, RADIX_3:def 11
.= ((Radix k) |^ (1 -' 1)) * (DigB_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),1) by RADIX_3:def 10
.= ((Radix k) |^ 0 ) * (DigB_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),1) by XREAL_1:234
.= 1 * (DigB_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),1) by NEWTON:9
.= DigA_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),1 by RADIX_3:def 9 ;
reconsider DIG1 = DigA_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),1 as Element of INT by INT_1:def 2;
A10: (SDSub2INT ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k)))) /. 2 = SDSub2INTDigit ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),2,k by A7, RADIX_3:def 11
.= ((Radix k) |^ (2 -' 1)) * (DigB_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),2) by RADIX_3:def 10
.= (Radix k) * (DigB_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),2) by A6, NEWTON:10
.= (Radix k) * (DigA_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),2) by RADIX_3:def 9 ;
reconsider DIG2 = (Radix k) * (DigA_SDSub ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))),2) as Element of INT by INT_1:def 2;
A11: len (SDSub2INT ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k)))) = 1 + 1 by FINSEQ_1:def 18;
then 1 in dom (SDSub2INT ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k)))) by A4, FINSEQ_1:def 3;
then A12: (SDSub2INT ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k)))) . 1 = DIG1 by A9, PARTFUN1:def 8;
2 in dom (SDSub2INT ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k)))) by A7, A11, FINSEQ_1:def 3;
then (SDSub2INT ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k)))) . 2 = DIG2 by A10, PARTFUN1:def 8;
then SDSub2INT ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))) = <*DIG1,DIG2*> by A11, A12, FINSEQ_1:61;
then A13: Sum (SDSub2INT ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k)))) = DIG1 + DIG2 by RVSUM_1:107;
reconsider RSDCX = (Radix k) * (SDSub_Add_Carry x,k), RSDCY = (Radix k) * (SDSub_Add_Carry y,k) as Integer ;
reconsider RCRY1 = (Radix k) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,1,k)),1) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)),k) as Integer ;
DIG1 = ((x - RSDCX) + (DigA_SDSub (SD2SDSub (DecSD y,1,k)),1)) - RCRY1 by A3, A5, Th6, XXREAL_0:2
.= ((x - RSDCX) + (y - RSDCY)) - RCRY1 by A3, Th6, XXREAL_0:2
.= (((x + y) - RSDCX) - RSDCY) - RCRY1 ;
hence x + y = SDSub2IntOut ((SD2SDSub (DecSD x,1,k)) '+' (SD2SDSub (DecSD y,1,k))) by A8, A13, RADIX_3:def 12; :: thesis: verum
end;
A14: for n being Nat st n >= 1 & S1[n] holds
S1[n + 1]
proof
let n be Nat; :: thesis: ( n >= 1 & S1[n] implies S1[n + 1] )
assume A15: ( n >= 1 & S1[n] ) ; :: thesis: S1[n + 1]
then n <> 0 ;
then A16: n in Seg n by FINSEQ_1:5;
A17: n + 1 in Seg (n + 1) by FINSEQ_1:5;
let k, x, y be Nat; :: thesis: ( k >= 3 & x is_represented_by n + 1,k & y is_represented_by n + 1,k implies x + y = SDSub2IntOut ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))) )
assume A18: ( k >= 3 & x is_represented_by n + 1,k & y is_represented_by n + 1,k ) ; :: thesis: x + y = SDSub2IntOut ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))
then A19: k >= 2 by XXREAL_0:2;
reconsider k = k, x = x, y = y as Element of NAT by ORDINAL1:def 13;
set xn = x mod ((Radix k) |^ n);
set yn = y mod ((Radix k) |^ n);
set z = (SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k));
set zn = (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k));
A20: Radix k > 0 by POWER:39;
then A21: x = ((x div ((Radix k) |^ n)) * ((Radix k) |^ n)) + (x mod ((Radix k) |^ n)) by NAT_D:2, PREPOWER:13;
( x mod ((Radix k) |^ n) < (Radix k) |^ n & y mod ((Radix k) |^ n) < (Radix k) |^ n ) by A20, NAT_D:1, PREPOWER:13;
then ( x mod ((Radix k) |^ n) is_represented_by n,k & y mod ((Radix k) |^ n) is_represented_by n,k ) by RADIX_1:def 12;
then A22: (x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n)) = SDSub2IntOut ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))) by A15, A18
.= Sum (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) by RADIX_3:def 12 ;
A23: n + 1 in Seg ((n + 1) + 1) by A17, FINSEQ_2:9;
A24: (n + 1) + 1 in Seg ((n + 1) + 1) by FINSEQ_1:5;
deffunc H1( Nat) -> Element of INT = SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),$1,k;
consider zp being FinSequence of INT such that
A25: len zp = n + 1 and
A26: for i being Nat st i in dom zp holds
zp . i = H1(i) from FINSEQ_2:sch 1();
A27: dom zp = Seg (n + 1) by A25, FINSEQ_1:def 3;
consider zpp being FinSequence of INT such that
A28: len zpp = n and
A29: for i being Nat st i in dom zpp holds
zpp . i = H1(i) from FINSEQ_2:sch 1();
A30: dom zpp = Seg n by A28, FINSEQ_1:def 3;
deffunc H2( Nat) -> Element of INT = SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),$1,k;
consider znpp being FinSequence of INT such that
A31: len znpp = n and
A32: for i being Nat st i in dom znpp holds
znpp . i = H2(i) from FINSEQ_2:sch 1();
A33: dom znpp = Seg n by A31, FINSEQ_1:def 3;
A34: SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))) = zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>
proof
A35: len (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) = (n + 1) + 1 by A25, FINSEQ_2:19;
A36: len (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) = (n + 1) + 1 by FINSEQ_1:def 18;
for j being Nat st 1 <= j & j <= len (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) holds
(SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j = (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j
proof
let j be Nat; :: thesis: ( 1 <= j & j <= len (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) implies (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j = (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j )
assume ( 1 <= j & j <= len (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) ) ; :: thesis: (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j = (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j
then A37: j in Seg ((n + 1) + 1) by A36, FINSEQ_1:3;
then A38: j in dom (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) by A36, FINSEQ_1:def 3;
now
per cases ( j in Seg (n + 1) or j = (n + 1) + 1 ) by A37, FINSEQ_2:8;
suppose A39: j in Seg (n + 1) ; :: thesis: (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j = (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j
then j in dom zp by A25, FINSEQ_1:def 3;
then (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j = zp . j by FINSEQ_1:def 7
.= SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),j,k by A26, A39, A27
.= (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) /. j by A37, RADIX_3:def 11
.= (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j by A38, PARTFUN1:def 8 ;
hence (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j = (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j ; :: thesis: verum
end;
suppose A40: j = (n + 1) + 1 ; :: thesis: (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j = (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j
A41: j in dom (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) by A36, A37, FINSEQ_1:def 3;
(zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j = SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k by A25, A40, FINSEQ_1:59
.= (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) /. ((n + 1) + 1) by A37, A40, RADIX_3:def 11
.= (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j by A40, A41, PARTFUN1:def 8 ;
hence (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j = (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j ; :: thesis: verum
end;
end;
end;
hence (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) . j = (zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*>) . j ; :: thesis: verum
end;
hence SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))) = zp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k)*> by A35, A36, FINSEQ_1:18; :: thesis: verum
end;
A42: zp = zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>
proof
A43: len (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) = n + 1 by A28, FINSEQ_2:19;
for j being Nat st 1 <= j & j <= len zp holds
zp . j = (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j
proof
let j be Nat; :: thesis: ( 1 <= j & j <= len zp implies zp . j = (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j )
assume ( 1 <= j & j <= len zp ) ; :: thesis: zp . j = (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j
then A44: j in Seg (n + 1) by A25, FINSEQ_1:3;
now
per cases ( j in Seg n or j = n + 1 ) by A44, FINSEQ_2:8;
suppose A45: j in Seg n ; :: thesis: zp . j = (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j
then j in dom zpp by A28, FINSEQ_1:def 3;
then (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j = zpp . j by FINSEQ_1:def 7
.= SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),j,k by A29, A45, A30
.= zp . j by A26, A44, A27 ;
hence zp . j = (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j ; :: thesis: verum
end;
suppose A46: j = n + 1 ; :: thesis: zp . j = (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j
then (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j = SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k by A28, FINSEQ_1:59
.= zp . j by A26, A44, A46, A27 ;
hence zp . j = (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j ; :: thesis: verum
end;
end;
end;
hence zp . j = (zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*>) . j ; :: thesis: verum
end;
hence zp = zpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)*> by A25, A43, FINSEQ_1:18; :: thesis: verum
end;
A47: SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))) = znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>
proof
A48: len (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) = n + 1 by A31, FINSEQ_2:19;
A49: len (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) = n + 1 by FINSEQ_1:def 18;
for j being Nat st 1 <= j & j <= len (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) holds
(SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j = (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j
proof
let j be Nat; :: thesis: ( 1 <= j & j <= len (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) implies (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j = (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j )
assume ( 1 <= j & j <= len (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) ) ; :: thesis: (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j = (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j
then A50: j in Seg (n + 1) by A49, FINSEQ_1:3;
then A51: j in dom (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) by A49, FINSEQ_1:def 3;
now
per cases ( j in Seg n or j = n + 1 ) by A50, FINSEQ_2:8;
suppose A52: j in Seg n ; :: thesis: (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j = (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j
then j in dom znpp by A31, FINSEQ_1:def 3;
then (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j = znpp . j by FINSEQ_1:def 7
.= SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),j,k by A32, A52, A33
.= (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) /. j by A50, RADIX_3:def 11
.= (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j by A51, PARTFUN1:def 8 ;
hence (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j = (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j ; :: thesis: verum
end;
suppose A53: j = n + 1 ; :: thesis: (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j = (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j
A54: j in dom (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) by A49, A50, FINSEQ_1:def 3;
(znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j = SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k by A31, A53, FINSEQ_1:59
.= (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) /. (n + 1) by A50, A53, RADIX_3:def 11
.= (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j by A53, A54, PARTFUN1:def 8 ;
hence (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j = (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j ; :: thesis: verum
end;
end;
end;
hence (SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)))) . j = (znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*>) . j ; :: thesis: verum
end;
hence SDSub2INT ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))) = znpp ^ <*(SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)*> by A48, A49, FINSEQ_1:18; :: thesis: verum
end;
A55: zpp = znpp
proof
for j being Nat st 1 <= j & j <= len znpp holds
znpp . j = zpp . j
proof
let j be Nat; :: thesis: ( 1 <= j & j <= len znpp implies znpp . j = zpp . j )
assume A56: ( 1 <= j & j <= len znpp ) ; :: thesis: znpp . j = zpp . j
then A57: j in Seg n by A31, FINSEQ_1:3;
A58: j <= n + 1 by A31, A56, NAT_1:12;
then A59: j in Seg (n + 1) by A56, FINSEQ_1:3;
j <= (n + 1) + 1 by A58, NAT_1:12;
then A60: j in Seg ((n + 1) + 1) by A56, FINSEQ_1:3;
zpp . j = SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),j,k by A29, A57, A30
.= ((Radix k) |^ (j -' 1)) * (DigB_SDSub ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),j) by RADIX_3:def 10
.= ((Radix k) |^ (j -' 1)) * (DigA_SDSub ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),j) by RADIX_3:def 9
.= ((Radix k) |^ (j -' 1)) * (SDSubAddDigit (SD2SDSub (DecSD x,(n + 1),k)),(SD2SDSub (DecSD y,(n + 1),k)),j,k) by A60, Def2
.= ((Radix k) |^ (j -' 1)) * (SDSubAddDigit (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),(SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),j,k) by A18, A57, Th8, XXREAL_0:2
.= ((Radix k) |^ (j -' 1)) * (DigA_SDSub ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),j) by A59, Def2
.= ((Radix k) |^ (j -' 1)) * (DigB_SDSub ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),j) by RADIX_3:def 9
.= SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),j,k by RADIX_3:def 10
.= znpp . j by A32, A57, A33 ;
hence znpp . j = zpp . j ; :: thesis: verum
end;
hence zpp = znpp by A28, A31, FINSEQ_1:18; :: thesis: verum
end;
A61: Sum (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) = (Sum zp) + (SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k) by A34, RVSUM_1:104
.= ((Sum znpp) + (SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k)) + (SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k) by A42, A55, RVSUM_1:104 ;
A62: ((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + 0 = (Sum znpp) + (SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k) by A22, A47, RVSUM_1:104;
set SDN11 = (DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1));
set SDN1 = (DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1));
set SDN = (DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n);
set RN1 = (Radix k) |^ (n + 1);
set RN = (Radix k) |^ n;
A63: SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1),k = ((Radix k) |^ (((n + 1) + 1) -' 1)) * (DigB_SDSub ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1)) by RADIX_3:def 10
.= ((Radix k) |^ (((n + 1) + 1) -' 1)) * (DigA_SDSub ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1)) by RADIX_3:def 9
.= ((Radix k) |^ (n + 1)) * (DigA_SDSub ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),((n + 1) + 1)) by NAT_D:34
.= ((Radix k) |^ (n + 1)) * (SDSubAddDigit (SD2SDSub (DecSD x,(n + 1),k)),(SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1),k) by A24, Def2
.= ((Radix k) |^ (n + 1)) * ((SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(((n + 1) + 1) -' 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(((n + 1) + 1) -' 1))),k)) by A18, A24, Def1, XXREAL_0:2
.= ((Radix k) |^ (n + 1)) * ((SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(((n + 1) + 1) -' 1))),k)) by NAT_D:34
.= ((Radix k) |^ (n + 1)) * (((SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k)) + 0 ) by NAT_D:34
.= (((Radix k) |^ (n + 1)) * (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))),k)) + (((Radix k) |^ (n + 1)) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k)) ;
A64: SDSub2INTDigit ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1),k = ((Radix k) |^ ((n + 1) -' 1)) * (DigB_SDSub ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1)) by RADIX_3:def 10
.= ((Radix k) |^ ((n + 1) -' 1)) * (DigA_SDSub ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1)) by RADIX_3:def 9
.= ((Radix k) |^ n) * (DigA_SDSub ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))),(n + 1)) by NAT_D:34
.= ((Radix k) |^ n) * (SDSubAddDigit (SD2SDSub (DecSD x,(n + 1),k)),(SD2SDSub (DecSD y,(n + 1),k)),(n + 1),k) by A23, Def2
.= ((Radix k) |^ n) * ((SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) -' 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) -' 1))),k)) by A18, A23, Def1, XXREAL_0:2
.= ((Radix k) |^ n) * ((SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) -' 1))),k)) by NAT_D:34
.= ((Radix k) |^ n) * (((SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k)) + 0 ) by NAT_D:34
.= (((Radix k) |^ n) * (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k)) + (((Radix k) |^ n) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k))
.= (((Radix k) |^ n) * (((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))) - ((Radix k) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k)))) + (((Radix k) |^ n) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k)) by RADIX_3:def 4
.= ((((Radix k) |^ n) * ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1)))) - ((((Radix k) |^ n) * (Radix k)) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k))) + (((Radix k) |^ n) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k))
.= ((((Radix k) |^ n) * ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1)))) - (((Radix k) |^ (n + 1)) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k))) + (((Radix k) |^ n) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k)) by NEWTON:11
.= ((((Radix k) |^ n) * ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1)))) + (- (((Radix k) |^ (n + 1)) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))),k)))) + (((Radix k) |^ n) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k)) ;
A65: SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k = ((Radix k) |^ ((n + 1) -' 1)) * (DigB_SDSub ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1)) by RADIX_3:def 10
.= ((Radix k) |^ ((n + 1) -' 1)) * (DigA_SDSub ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1)) by RADIX_3:def 9
.= ((Radix k) |^ n) * (DigA_SDSub ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1)) by NAT_D:34
.= ((Radix k) |^ n) * (SDSubAddDigit (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),(SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),(n + 1),k) by A17, Def2
.= ((Radix k) |^ n) * ((SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),(n + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),((n + 1) -' 1)) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),((n + 1) -' 1))),k)) by A17, A18, Def1, XXREAL_0:2
.= ((Radix k) |^ n) * ((SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),(n + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),n) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),((n + 1) -' 1))),k)) by NAT_D:34
.= ((Radix k) |^ n) * ((SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),(n + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),n) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),n)),k)) by NAT_D:34
.= ((Radix k) |^ n) * ((SDSub_Add_Data ((SDSub_Add_Carry (DigA (DecSD x,n,k),n),k) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),(n + 1))),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),n) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),n)),k)) by A15, A18, Th5
.= ((Radix k) |^ n) * ((SDSub_Add_Data ((SDSub_Add_Carry (DigA (DecSD x,n,k),n),k) + (SDSub_Add_Carry (DigA (DecSD y,n,k),n),k)),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)),n) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),n)),k)) by A15, A18, Th5
.= ((Radix k) |^ n) * ((SDSub_Add_Data ((SDSub_Add_Carry (DigA (DecSD x,n,k),n),k) + (SDSub_Add_Carry (DigA (DecSD y,n,k),n),k)),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k)),n)),k)) by A16, A18, RADIX_3:21, XXREAL_0:2
.= ((Radix k) |^ n) * ((SDSub_Add_Data ((SDSub_Add_Carry (DigA (DecSD x,n,k),n),k) + (SDSub_Add_Carry (DigA (DecSD y,n,k),n),k)),k) + (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k)) by A16, A18, RADIX_3:21, XXREAL_0:2
.= (((Radix k) |^ n) * (SDSub_Add_Data ((SDSub_Add_Carry (DigA (DecSD x,n,k),n),k) + (SDSub_Add_Carry (DigA (DecSD y,n,k),n),k)),k)) + (((Radix k) |^ n) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k)) ;
set SDACx = SDSub_Add_Carry (DigA (DecSD x,n,k),n),k;
set SDACy = SDSub_Add_Carry (DigA (DecSD y,n,k),n),k;
A66: SDSub_Add_Data ((SDSub_Add_Carry (DigA (DecSD x,n,k),n),k) + (SDSub_Add_Carry (DigA (DecSD y,n,k),n),k)),k = ((SDSub_Add_Carry (DigA (DecSD x,n,k),n),k) + (SDSub_Add_Carry (DigA (DecSD y,n,k),n),k)) - ((Radix k) * (SDSub_Add_Carry ((SDSub_Add_Carry (DigA (DecSD x,n,k),n),k) + (SDSub_Add_Carry (DigA (DecSD y,n,k),n),k)),k)) by RADIX_3:def 4
.= ((SDSub_Add_Carry (DigA (DecSD x,n,k),n),k) + (SDSub_Add_Carry (DigA (DecSD y,n,k),n),k)) - ((Radix k) * 0 ) by A18, Th2 ;
set RN1SD11 = ((Radix k) |^ (n + 1)) * (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))),k);
set RNSC = ((Radix k) |^ n) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k);
A67: Sum (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) = ((((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + (((Radix k) |^ n) * ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1))))) + ((- (SDSub2INTDigit ((SD2SDSub (DecSD (x mod ((Radix k) |^ n)),n,k)) '+' (SD2SDSub (DecSD (y mod ((Radix k) |^ n)),n,k))),(n + 1),k)) + (((Radix k) |^ n) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),n) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),n)),k)))) + (((Radix k) |^ (n + 1)) * (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))),k)) by A61, A62, A63, A64;
A68: ((Radix k) |^ (n + 1)) * (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))),k) = ((Radix k) |^ (n + 1)) * (((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))) - ((Radix k) * (SDSub_Add_Carry ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))),k))) by RADIX_3:def 4;
A69: DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1) = SD2SDSubDigitS (DecSD x,(n + 1),k),((n + 1) + 1),k by A24, RADIX_3:def 8
.= SD2SDSubDigit (DecSD x,(n + 1),k),((n + 1) + 1),k by A18, A24, RADIX_3:def 7, XXREAL_0:2
.= SDSub_Add_Carry (DigA (DecSD x,(n + 1),k),(((n + 1) + 1) -' 1)),k by RADIX_3:def 6
.= SDSub_Add_Carry (DigA (DecSD x,(n + 1),k),(n + 1)),k by NAT_D:34 ;
A70: DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1) = SD2SDSubDigitS (DecSD y,(n + 1),k),((n + 1) + 1),k by A24, RADIX_3:def 8
.= SD2SDSubDigit (DecSD y,(n + 1),k),((n + 1) + 1),k by A18, A24, RADIX_3:def 7, XXREAL_0:2
.= SDSub_Add_Carry (DigA (DecSD y,(n + 1),k),(((n + 1) + 1) -' 1)),k by RADIX_3:def 6
.= SDSub_Add_Carry (DigA (DecSD y,(n + 1),k),(n + 1)),k by NAT_D:34 ;
then A71: ((Radix k) |^ (n + 1)) * (SDSub_Add_Data ((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))),k) = ((Radix k) |^ (n + 1)) * (((DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),((n + 1) + 1)) + (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),((n + 1) + 1))) - ((Radix k) * 0 )) by A18, A68, A69, Th2
.= ((Radix k) |^ (n + 1)) * ((SDSub_Add_Carry (DigA (DecSD x,(n + 1),k),(n + 1)),k) + (SDSub_Add_Carry (DigA (DecSD y,(n + 1),k),(n + 1)),k)) by A69, A70 ;
reconsider RNDx11 = ((Radix k) |^ n) * (DigA_SDSub (SD2SDSub (DecSD x,(n + 1),k)),(n + 1)), RNDy11 = ((Radix k) |^ n) * (DigA_SDSub (SD2SDSub (DecSD y,(n + 1),k)),(n + 1)), RN1Cx11 = ((Radix k) |^ (n + 1)) * (SDSub_Add_Carry (DigA (DecSD x,(n + 1),k),(n + 1)),k), RN1Cy11 = ((Radix k) |^ (n + 1)) * (SDSub_Add_Carry (DigA (DecSD y,(n + 1),k),(n + 1)),k), RNCx1 = ((Radix k) |^ n) * (SDSub_Add_Carry (DigA (DecSD x,(n + 1),k),n),k), RNCy1 = ((Radix k) |^ n) * (SDSub_Add_Carry (DigA (DecSD y,(n + 1),k),n),k), RNCx = ((Radix k) |^ n) * (SDSub_Add_Carry (DigA (DecSD x,n,k),n),k), RNCy = ((Radix k) |^ n) * (SDSub_Add_Carry (DigA (DecSD y,n,k),n),k) as Integer ;
A72: Sum (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) = (((((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + RNDx11) + RNDy11) + (- (RNCx + RNCy))) + (RN1Cx11 + RN1Cy11) by A65, A66, A67, A71
.= (((((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + (((((Radix k) |^ n) * (DigA (DecSD x,(n + 1),k),(n + 1))) - RN1Cx11) + RNCx1)) + RNDy11) + (- (RNCx + RNCy))) + (RN1Cx11 + RN1Cy11) by A15, A18, A19, Th7
.= ((((((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + (((Radix k) |^ n) * (DigA (DecSD x,(n + 1),k),(n + 1)))) + RNCx1) + RNDy11) + RN1Cy11) - (RNCx + RNCy)
.= ((((((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + (((Radix k) |^ n) * (DigA (DecSD x,(n + 1),k),(n + 1)))) + RNCx1) + (((((Radix k) |^ n) * (DigA (DecSD y,(n + 1),k),(n + 1))) - RN1Cy11) + RNCy1)) + RN1Cy11) - (RNCx + RNCy) by A15, A18, A19, Th7
.= ((((((((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + (((Radix k) |^ n) * (DigA (DecSD x,(n + 1),k),(n + 1)))) + RNCx1) + (((Radix k) |^ n) * (DigA (DecSD y,(n + 1),k),(n + 1)))) + (- RN1Cy11)) + RNCy1) + RN1Cy11) + (- (RNCx + RNCy))
.= ((((((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + (((Radix k) |^ n) * (DigA (DecSD x,(n + 1),k),(n + 1)))) + RNCx1) + (((Radix k) |^ n) * (DigA (DecSD y,(n + 1),k),(n + 1)))) + RNCy1) + (- (RNCx1 + RNCy)) by A16, Lm2
.= ((((((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + (((Radix k) |^ n) * (DigA (DecSD x,(n + 1),k),(n + 1)))) + RNCx1) + (((Radix k) |^ n) * (DigA (DecSD y,(n + 1),k),(n + 1)))) + RNCy1) + (- (RNCx1 + RNCy1)) by A16, Lm2
.= ((((x mod ((Radix k) |^ n)) + (y mod ((Radix k) |^ n))) + (((Radix k) |^ n) * (DigA (DecSD x,(n + 1),k),(n + 1)))) + 0 ) + (((Radix k) |^ n) * (DigA (DecSD y,(n + 1),k),(n + 1))) ;
((Radix k) |^ n) * (DigA (DecSD x,(n + 1),k),(n + 1)) = ((Radix k) |^ n) * (x div ((Radix k) |^ n)) by A18, RADIX_1:27;
then A73: Sum (SDSub2INT ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k)))) = ((y mod ((Radix k) |^ n)) + x) + (((Radix k) |^ n) * (y div ((Radix k) |^ n))) by A18, A21, A72, RADIX_1:27;
y = ((y div ((Radix k) |^ n)) * ((Radix k) |^ n)) + (y mod ((Radix k) |^ n)) by A20, NAT_D:2, PREPOWER:13;
hence x + y = SDSub2IntOut ((SD2SDSub (DecSD x,(n + 1),k)) '+' (SD2SDSub (DecSD y,(n + 1),k))) by A73, RADIX_3:def 12; :: thesis: verum
end;
for n being Nat st n >= 1 holds
S1[n] from NAT_1:sch 8(A2, A14);
hence for k, x, y being Nat st k >= 3 & x is_represented_by n,k & y is_represented_by n,k holds
x + y = SDSub2IntOut ((SD2SDSub (DecSD x,n,k)) '+' (SD2SDSub (DecSD y,n,k))) by A1; :: thesis: verum