| ¬(i0 % 10 = 0 ∧ j ≠ 0 ∧ i0 ≠ 0), abs(j) = mkDecimal(i0, j).scale, ∀ i1, i2, j0. i→n(i1) + i→n(i2) < i→n(mkDecimal(i0, j).int) + i→n(i0) → mkDecimal(i1, j0).scale = mkDecimal(i2, j0).scale ∧ mkDecimal(i1, j0).int = mkDecimal(i2, j0).int → i1 = i2 ⊦ mkDecimal(i0, j).int = i0, mkDecimal(i0, j).int % 10 = 0 ∧ j ≠ 0, mkDecimal(i0, j).int % 10 = 0 ∧ j ≠ 0 ∧ mkDecimal(i0, j).int ≠ 0 |
abs(j) = mkDecimal(i0, j).scale, ∀ i1, i2, j0. i→n(i1) + i→n(i2) < i→n(mkDecimal(i0, j).int) + i→n(i0) → mkDecimal(i1, j0).scale = mkDecimal(i2, j0).scale ∧ mkDecimal(i1, j0).int = mkDecimal(i2, j0).int → i1 = i2 ⊦ mkDecimal(i0, j).int = i0, i0 = 0, mkDecimal(i0, j).int % 10 = 0 ∧ j ≠ 0, mkDecimal(i0, j).int % 10 = 0 ∧ j ≠ 0 ∧ mkDecimal(i0, j).int ≠ 0, j ≠ 0 ∧ i0 % 10 = 0
Used simplifier rules: scale-zero: ⊦ mkDecimal(0, j).scale = 0;%intvalue-zero: ⊦ mkDecimal(0, j).int = 0;%abs-07: ⊦ abs(i) = 0 ↔ i = 0; from specification int-abs