| ∀ j. 0 ≤ i0 ∧ 0 ≤ j → i→n(i0) * i→n(j) = i→n(i0 * j), 0 ≤ i0 -1, 0 ≤ j ⊦ i→n(i0 -1) * i→n(j) = i→n(i0 -1 * j) |
0 ≤ j, 0 < i0, ∀ j. 0 ≤ i0 ∧ 0 ≤ j → i→n(i0) * i→n(j) = i→n(i0 * j) ⊦ (i→n(i0) - 1) * i→n(j) = i→n((i0 - 1) * j)
Used simplifier rules: sub: j ≤ i, 0 ≤ j ⊦ i→n(i - j) = i→n(i) - i→n(j);%forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs%forward-le-05: ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward) from specification int-abs%lels-03: ⊦ i < j → (¬ ¬ j ≤ i ↔ false); from specification int-abs%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%sub-le-01: ⊦ i ≤ j - i0 ↔ i + i0 ≤ j; from specification int-abs%leone: ⊦ 1 ≤ i ↔ 0 < i; from specification int-abs%sub-pred: ⊦ i -1 = i - 1; from specification int-abs