| i < 0 ∧ i0 < 0, ¬(0 < i ∧ i0 < 0), ¬(i ≠ 0 ∧ 0 < i0) ⊦ rational(abs(i) / gcd(i, i0), rational(i, i0).denom).num = abs(i) / gcd(i, i0) ∧ rational(abs(i) / gcd(i, i0), rational(i, i0).denom).denom = rational(i, i0).denom |
i < 0, i0 < 0 ⊦ rational(~ i / gcd(i, i0), rational(i, i0).denom).num = ~ i / gcd(i, i0) ∧ rational(~ i / gcd(i, i0), rational(i, i0).denom).denom = rational(i, i0).denom
Used simplifier rules: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ i < j → ¬ j < i;% ⊦ i < 0 → abs(i) = ~ i;