| i / gcd(i, j) = rational(i0, j0).num, j / gcd(i, j) = rational(i0, j0).denom, 0 < j, 0 < j0 ⊦ i * j0 = i0 * j, j = 0, i = 0 |
⊦ i ≠ 0 ∧ j ≠ 0 → rational(i, j).denom = abs(j) / gcd(i, j)
i0 ≠ 0 ∧ j0 ≠ 0, i / gcd(i, j) = rational(i0, j0).num, j / gcd(i, j) = abs(j0) / gcd(i0, j0), 0 < j, 0 < j0 ⊦ i * j0 = i0 * j, j = 0, i = 0
Used simplifier rules: denominator-zero: ⊦ rational(0, j).denom = 1;%numerator-zero: ⊦ rational(0, j).num = 0;%denominator-zero-den: ⊦ i ≠ 0 → rational(i, 0).denom = 1;%numerator-zero-den: ⊦ i ≠ 0 → rational(i, 0).num = i;% ⊦ i ≠ 0 → i / gcd(i, i0) ≠ 0;% ⊦ i * 0 = 0;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i;% ⊦ 0 < i → (i * j = 0 ↔ j = 0); Used terms: j0, i0