Documentation

Mathlib.RingTheory.IntegralDomain

Integral domains #

Assorted theorems about integral domains.

Main theorems #

TODO #

Prove Wedderburn's little theorem, which shows that all finite division rings are actually fields.

Tags #

integral domain, finite integral domain, finite field

theorem mul_right_bijective_of_finite₀ {M : Type u_1} [CancelMonoidWithZero M] [Finite M] {a : M} (ha : a 0) :
Function.Bijective fun b => a * b
theorem mul_left_bijective_of_finite₀ {M : Type u_1} [CancelMonoidWithZero M] [Finite M] {a : M} (ha : a 0) :
Function.Bijective fun b => b * a

Every finite nontrivial cancel_monoid_with_zero is a group_with_zero.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem exists_eq_pow_of_mul_eq_pow_of_coprime {R : Type u_2} [CommSemiring R] [IsDomain R] [GCDMonoid R] [Unique Rˣ] {a : R} {b : R} {c : R} {n : } (cp : IsCoprime a b) (h : a * b = c ^ n) :
    d, a = d ^ n
    theorem Finset.exists_eq_pow_of_mul_eq_pow_of_coprime {ι : Type u_2} {R : Type u_3} [CommSemiring R] [IsDomain R] [GCDMonoid R] [Unique Rˣ] {n : } {c : R} {s : Finset ι} {f : ιR} (h : ∀ (i : ι), i s∀ (j : ι), j si jIsCoprime (f i) (f j)) (hprod : (Finset.prod s fun i => f i) = c ^ n) (i : ι) :
    i sd, f i = d ^ n

    Every finite domain is a division ring.

    TODO: Prove Wedderburn's little theorem, which shows a finite domain is in fact commutative, hence a field.

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

      Every finite commutative domain is a field.

      TODO: Prove Wedderburn's little theorem, which shows a finite domain is automatically commutative, dropping one assumption from this theorem.

      Equations
      Instances For
        theorem card_nthRoots_subgroup_units {R : Type u_1} {G : Type u_2} [CommRing R] [IsDomain R] [Group G] [Fintype G] [DecidableEq G] (f : G →* R) (hf : Function.Injective f) {n : } (hn : 0 < n) (g₀ : G) :
        Finset.card (Finset.filter (fun g => g ^ n = g₀) Finset.univ) Multiset.card (Polynomial.nthRoots n (f g₀))
        theorem isCyclic_of_subgroup_isDomain {R : Type u_1} {G : Type u_2} [CommRing R] [IsDomain R] [Group G] [Finite G] (f : G →* R) (hf : Function.Injective f) :

        A finite subgroup of the unit group of an integral domain is cyclic.

        The unit group of a finite integral domain is cyclic.

        To support ℤˣ and other infinite monoids with finite groups of units, this requires only Finite rather than deducing it from Finite R.

        Equations
        instance subgroup_units_cyclic {R : Type u_1} [CommRing R] [IsDomain R] (S : Subgroup Rˣ) [Finite { x // x S }] :
        IsCyclic { x // x S }

        A finite subgroup of the units of an integral domain is cyclic.

        Equations
        theorem card_fiber_eq_of_mem_range {G : Type u_2} [Group G] [Fintype G] {H : Type u_3} [Group H] [DecidableEq H] (f : G →* H) {x : H} {y : H} (hx : x Set.range f) (hy : y Set.range f) :
        Finset.card (Finset.filter (fun g => f g = x) Finset.univ) = Finset.card (Finset.filter (fun g => f g = y) Finset.univ)
        theorem sum_hom_units_eq_zero {R : Type u_1} {G : Type u_2} [CommRing R] [IsDomain R] [Group G] [Fintype G] (f : G →* R) (hf : f 1) :
        (Finset.sum Finset.univ fun g => f g) = 0

        In an integral domain, a sum indexed by a nontrivial homomorphism from a finite group is zero.

        theorem sum_hom_units {R : Type u_1} {G : Type u_2} [CommRing R] [IsDomain R] [Group G] [Fintype G] (f : G →* R) [Decidable (f = 1)] :
        (Finset.sum Finset.univ fun g => f g) = ↑(if f = 1 then Fintype.card G else 0)

        In an integral domain, a sum indexed by a homomorphism from a finite group is zero, unless the homomorphism is trivial, in which case the sum is equal to the cardinality of the group.