| 0 ≠ j ∧ 0 ≤ i % j * i0 ∧ 0 ≤ j0, 0 ≤ i, 0 ≤ i0, 0 ≤ j0, 0 < j ⊦ ((i % j * i0) % j + j0) % j = (i * i0 + j0) % j |
0 < j ⊦ 0 ≤ i ∧ 0 ≤ i0 → (i % j + i0) % j = (i + i0) % j
Used simplifier rules: mod-shift: ⊦ 0 ≤ i ∧ 0 ≤ i0 ∧ 0 < j → (i * i0 % j) % j = (i * i0) % j;%mod-zero: ⊦ 0 < j ∧ 0 ≤ i → 0 ≤ i % j;%mod-shift: ⊦ 0 ≤ i ∧ 0 ≤ i0 ∧ 0 < j → (i * i0 % j) % j = (i * i0) % j;%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%zero-ge-02: ⊦ 0 ≤ i → (0 ≤ i * j ↔ ¬ ¬(i = 0 ∨ 0 ≤ j)); from specification int-mult%zero-gels-04: ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j; from specification int-abs Used terms: j, j0, i * i0