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