Further lemmas for the Rational Numbers #
theorem
Rat.num_den_mk
{q : ℚ}
{n d : ℤ}
(hd : d ≠ 0)
(qdf : q = divInt n d)
:
∃ (c : ℤ), n = c * q.num ∧ d = c * ↑q.den
@[deprecated Rat.num_divInt (since := "2025-12-27")]
@[deprecated Rat.den_divInt (since := "2025-12-27")]
theorem
Rat.mul_num
(q₁ q₂ : ℚ)
:
(q₁ * q₂).num = q₁.num * q₂.num / ↑((q₁.num * q₂.num).natAbs.gcd (q₁.den * q₂.den))
theorem
Rat.mul_den
(q₁ q₂ : ℚ)
:
(q₁ * q₂).den = q₁.den * q₂.den / (q₁.num * q₂.num).natAbs.gcd (q₁.den * q₂.den)
theorem
Rat.den_mul_den_eq_den_mul_gcd
(q₁ q₂ : ℚ)
:
q₁.den * q₂.den = (q₁ * q₂).den * (q₁.num * q₂.num).natAbs.gcd (q₁.den * q₂.den)
A version of Rat.mul_den without division.
theorem
Rat.num_mul_num_eq_num_mul_gcd
(q₁ q₂ : ℚ)
:
q₁.num * q₂.num = (q₁ * q₂).num * ↑((q₁.num * q₂.num).natAbs.gcd (q₁.den * q₂.den))
A version of Rat.mul_num without division.
theorem
Rat.add_num_den
(q r : ℚ)
:
q + r = divInt (q.num * ↑r.den + ↑q.den * r.num) (↑q.den * ↑r.den)
@[simp]
theorem
Rat.mkRat_add_mkRat_of_den
(n₁ n₂ : ℤ)
{d : ℕ}
(h : d ≠ 0)
:
mkRat n₁ d + mkRat n₂ d = mkRat (n₁ + n₂) d
theorem
Rat.exists_eq_mul_div_num_and_eq_mul_div_den
(n : ℤ)
{d : ℤ}
(d_ne_zero : d ≠ 0)
:
∃ (c : ℤ), n = c * (↑n / ↑d).num ∧ d = c * ↑(↑n / ↑d).den
theorem
Rat.add_num_den'
(q r : ℚ)
:
(q + r).num * ↑q.den * ↑r.den = (q.num * ↑r.den + r.num * ↑q.den) * ↑(q + r).den
theorem
Rat.substr_num_den'
(q r : ℚ)
:
(q - r).num * ↑q.den * ↑r.den = (q.num * ↑r.den - r.num * ↑q.den) * ↑(q - r).den
theorem
Rat.num_div_eq_of_coprime
{a b : ℤ}
(hb0 : 0 < b)
(h : a.natAbs.Coprime b.natAbs)
:
(↑a / ↑b).num = a
theorem
Rat.den_div_eq_of_coprime
{a b : ℤ}
(hb0 : 0 < b)
(h : a.natAbs.Coprime b.natAbs)
:
↑(↑a / ↑b).den = b
theorem
Rat.div_int_inj
{a b c d : ℤ}
(hb0 : 0 < b)
(hd0 : 0 < d)
(h1 : a.natAbs.Coprime b.natAbs)
(h2 : c.natAbs.Coprime d.natAbs)
(h : ↑a / ↑b = ↑c / ↑d)
:
a = c ∧ b = d