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