| i % j = 0, i0 + j = i1 + 1, i + i0 < 0, i < 0, 0 < j, 0 ≤ i0 ⊦ (i + i0) / j = i / j + i1 / j, 1 < j ∧ i0 % j = 0, 1 < j ∧ 0 < i0 ∧ i0 % j ≠ 0 |
Used simplifier rules: one-01: ⊦ i = 1 → j % i = 0;%one: ⊦ i / 1 = i;%mod-zero-04: j ≠ 0 ⊦ 0 % j = 0;%mod-one: ⊦ i % 1 = 0;%div-add1-negpos-neg: ⊦ i % j = 0 ∧ i + i0 < 0 ∧ i0 % j = 0 ∧ i < 0 ∧ 0 ≤ i0 ∧ 0 < j → (i + i0) / j = i / j + i0 / j;%one-01: ⊦ i = 1 → j % i = 0;%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2% ⊦ i + j = i + i0 ↔ j = i0; (s)% ⊦ i < j ↔ ¬ j ≤ i; (ss)% ⊦ 0 < i → (i ≤ 1 ↔ i = 1); (s)% ⊦ i ≤ j → (j ≤ i ↔ i = j); (s)% ⊦ i + 0 = i; (s)% ⊦ i = i + j ↔ j = 0; (s)% ⊦ i < 0 ∧ 0 ≤ j → i < j; (s)% ⊦ (* j) < i0 + (* j0) ↔ j - j0 < i0; (s)% ⊦ ~1 < i ↔ 0 ≤ i; (s)% ⊦ (* j) = i0 + (* j0) ↔ j - j0 = i0; (s)%forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs%forward-lsle: ⊦ i < j ∧ j ≤ j0 → i < j0; (forward) from specification int-abs