theorem
Factorization.polynomial_irreducible_dvd_mul
(F : Type u_1)
[Field F]
{p q s : Polynomial F}
(hp : Irreducible p)
(h : p ∣ q * s)
:
theorem
Factorization.gauss_lemma
{R : Type u_1}
[CommRing R]
[IsDomain R]
[NormalizedGCDMonoid R]
{p q : Polynomial R}
(hp : p.IsPrimitive)
(hq : q.IsPrimitive)
:
(p * q).IsPrimitive
theorem
Factorization.polynomial_ufd
(R : Type u_1)
[CommRing R]
[IsDomain R]
[UniqueFactorizationMonoid R]
:
theorem
Factorization.primitive_dvd_iff_fraction_map_dvd
{R : Type u_1}
[CommRing R]
[IsDomain R]
[Nonempty (NormalizedGCDMonoid R)]
{p q : Polynomial R}
(hp : p.IsPrimitive)
:
p ∣ q ↔ Polynomial.map (algebraMap R (FractionRing R)) p ∣ Polynomial.map (algebraMap R (FractionRing R)) q
theorem
Factorization.gaussian_prime_of_norm_natAbs_prime
(z : GaussianInt)
(p : ℕ)
(hpp : Nat.Prime p)
(hn : (Zsqrtd.norm z).natAbs = p)
:
Prime z
theorem
Factorization.gaussian_primes_classification :
(∀ (p : ℕ) [Fact (Nat.Prime p)], Prime ↑p ↔ p % 4 = 3) ∧ (∀ (p : ℕ) [Fact (Nat.Prime p)],
p % 4 = 1 → ∃ (a : ℕ) (b : ℕ), a ^ 2 + b ^ 2 = p ∧ Prime { re := ↑a, im := ↑b } ∧ Prime { re := ↑a, im := -↑b }) ∧ Prime { re := 1, im := 1 } ∧ ∀ (z : GaussianInt),
Prime z →
(∃ (p : ℕ), Nat.Prime p ∧ p % 4 = 3 ∧ Associated z ↑p) ∨ (∃ (a : ℕ) (b : ℕ) (p : ℕ),
Nat.Prime p ∧ p % 4 = 1 ∧ a ^ 2 + b ^ 2 = p ∧ (Associated z { re := ↑a, im := ↑b } ∨ Associated z { re := ↑a, im := -↑b })) ∨ Associated z { re := 1, im := 1 }