| maxScale(dec_i.int * 10 ^ dec_j.scale + dec_j.int * 10 ^ dec_i.scale) ≤ abs(dec_i.scale + dec_j.scale) ⊦ mkDecimal(dec_i.int * 10 ^ dec_j.scale + dec_j.int * 10 ^ dec_i.scale, dec_i.scale + dec_j.scale).scale = max(dec_i.scale, dec_j.scale), dec_i.scale = dec_j.scale |
⊦ maxScale(i) ≤ abs(j) → mkDecimal(i, j).scale = abs(j) - maxScale(i)
maxScale(dec_i.int * 10 ^ dec_j.scale + dec_j.int * 10 ^ dec_i.scale) ≤ abs(dec_i.scale + dec_j.scale), maxScale(dec_i.int * 10 ^ dec_j.scale + dec_j.int * 10 ^ dec_i.scale) ≤ abs(dec_i.scale + dec_j.scale) ⊦ abs(dec_i.scale + dec_j.scale) - maxScale(dec_i.int * 10 ^ dec_j.scale + dec_j.int * 10 ^ dec_i.scale) = max(dec_i.scale, dec_j.scale), dec_i.scale = dec_j.scale
Used terms: dec_i.scale + dec_j.scale, dec_i.int * 10 ^ dec_j.scale + dec_j.int * 10 ^ dec_i.scale