Documentation

Mathlib.Data.Nat.Squarefree

Lemmas about squarefreeness of natural numbers #

A number is squarefree when it is not divisible by any squares except the squares of units.

Main Results #

Tags #

squarefree, multiplicity

theorem Nat.squarefree_of_factorization_le_one {n : } (hn : n 0) (hn' : ∀ (p : ), ↑(Nat.factorization n) p 1) :
theorem Nat.Squarefree.ext_iff {n : } {m : } (hn : Squarefree n) (hm : Squarefree m) :
n = m ∀ (p : ), Nat.Prime p → (p n p m)
theorem Nat.squarefree_pow_iff {n : } {k : } (hn : n 1) (hk : k 0) :

Assuming that n has no factors less than k, returns the smallest prime p such that p^2 ∣ n.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    Returns the smallest prime factor p of n such that p^2 ∣ n, or none if there is no such p (that is, n is squarefree). See also Nat.squarefree_iff_minSqFac.

    Equations
    Instances For

      The correctness property of the return value of minSqFac.

      • If none, then n is squarefree;
      • If some d, then d is a minimal square factor of n
      Equations
      Instances For
        theorem Nat.minSqFacProp_div (n : ) {k : } (pk : Nat.Prime k) (dk : k n) (dkk : ¬k * k n) {o : Option } (H : Nat.MinSqFacProp (n / k) o) :
        theorem Nat.minSqFacAux_has_prop {n : } (k : ) (n0 : 0 < n) (i : ) (e : k = 2 * i + 3) (ih : ∀ (m : ), Nat.Prime mm nk m) :
        theorem Nat.minSqFac_prime {n : } {d : } (h : Nat.minSqFac n = some d) :
        theorem Nat.minSqFac_dvd {n : } {d : } (h : Nat.minSqFac n = some d) :
        d * d n
        theorem Nat.minSqFac_le_of_dvd {n : } {d : } (h : Nat.minSqFac n = some d) {m : } (m2 : 2 m) (md : m * m n) :
        d m
        theorem Nat.sq_mul_squarefree_of_pos {n : } (hn : 0 < n) :
        a b, 0 < a 0 < b b ^ 2 * a = n Squarefree a
        theorem Nat.sq_mul_squarefree_of_pos' {n : } (h : 0 < n) :
        a b, (b + 1) ^ 2 * (a + 1) = n Squarefree (a + 1)
        theorem Nat.sq_mul_squarefree (n : ) :
        a b, b ^ 2 * a = n Squarefree a
        theorem Nat.squarefree_mul {m : } {n : } (hmn : Nat.Coprime m n) :

        squarefree is multiplicative. Note that the → direction does not require hmn and generalizes to arbitrary commutative monoids. See squarefree.of_mul_left and squarefree.of_mul_right above for auxiliary lemmas.

        theorem Nat.coprime_of_squarefree_mul {m : } {n : } (h : Squarefree (m * n)) :