reserve k,m,n for Nat,
  i1,i2,i3 for Integer,
  e for set;
reserve i,k,m,n,p,x,y for Nat;
reserve a for Tuple of n,(k-SD);

theorem Th19:
  k >= 2 & i1 in k-SD & i2 in k-SD implies -Radix(k)+2 <=
  SD_Add_Data(i1+i2,k) & SD_Add_Data(i1+i2,k) <= Radix(k)-2
proof
  assume that
A1: k >= 2 and
A2: i1 in k-SD & i2 in k-SD;
A3: -Radix(k)+1 <= i1 & -Radix(k)+1 <= i2 by A2,Th12;
  set z = i1+i2;
  i1 <= Radix(k)-1 & i2 <= Radix(k)-1 by A2,Th12;
  then
A4: z <= Radix(k)-1 + (Radix(k)-1) by XREAL_1:7;
  per cases;
  suppose
A5: z < -2;
    -Radix(k)+1 + (1 + -Radix(k)) <= z by A3,XREAL_1:7;
    then
A6: (-Radix(k)+(1+1))-Radix(k) <= z;
    SD_Add_Carry(z) = -1 & z + Radix(k) < -2 + Radix(k) by A5,Def10,XREAL_1:6;
    hence thesis by A6,XREAL_1:20;
  end;
  suppose
A7: -2 <= z & z <= 2;
A8: Radix(k) >= 2+2 by A1,Lm1;
    then
A9: Radix(k)-2 >= 2 by XREAL_1:19;
    -Radix(k) <= -(2+2) by A8,XREAL_1:24;
    then -Radix(k) <= -2 + -2;
    then
A10: -Radix(k) - -2 <= -2 by XREAL_1:20;
    SD_Add_Carry(z) = 0 by A7,Def10;
    hence thesis by A7,A9,A10,XXREAL_0:2;
  end;
  suppose
A11: z > 2;
A12: z <= Radix(k)-1 -1 + Radix(k) by A4;
    SD_Add_Carry(z) = 1 & z - Radix(k) > 2 - Radix(k) by A11,Def10,XREAL_1:9;
    hence thesis by A12,XREAL_1:20;
  end;
end;
