Documentation

Mathlib.FieldTheory.Galois.IsGaloisGroup

Predicate for Galois Groups #

Given an action of a group G on an extension of fields L/K, we introduce a predicate IsGaloisGroup G K L saying that G acts faithfully on L with fixed field K. In particular, we do not assume that L is an algebraic extension of K.

Implementation notes #

We actually define IsGaloisGroup G A B for extensions of rings B/A, with the same definition (faithful action on B with fixed ring A). This definition turns out to axiomatize a common setup in algebraic number theory where a Galois group Gal(L/K) acts on an extension of subrings B/A (e.g., rings of integers). In particular, there are theorems in algebraic number theory that naturally assume [IsGaloisGroup G A B] and whose statements would otherwise require assuming (K L : Type*) [Field K] [Field L] [Algebra K L] [IsGalois K L] (along with predicates relating K and L to the rings A and B) despite K and L not appearing in the conclusion.

Unfortunately, this definition of IsGaloisGroup G A B for extensions of rings B/A is nonstandard and clashes with other notions such as the étale fundamental group. In particular, if G is finite and A is integrally closed, then IsGaloisGroup G A B is equivalent to B/A being integral and the fields of fractions Frac(B)/Frac(A) being Galois with Galois group G (see IsGaloisGroup.iff_isFractionRing), rather than B/A being étale for instance.

But in the absence of a more suitable name, the utility of the predicate IsGaloisGroup G A B for extensions of rings B/A seems to outweigh these terminological issues.

class IsGaloisGroup (G : Type u_1) (A : Type u_2) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] :

G is a Galois group for L/K if the action of G on L is faithful with fixed field K. In particular, we do not assume that L is an algebraic extension of K.

See the implementation notes in this file for the meaning of this definition in the case of rings.

Instances
    theorem IsGaloisGroup.of_mulEquiv {G : Type u_1} {A : Type u_2} {B : Type u_4} [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [hG : IsGaloisGroup G A B] {H : Type u_5} [Group H] [MulSemiringAction H B] (e : H ≃* G) (he : ∀ (h : H) (x : B), e h x = h x) :
    theorem IsGaloisGroup.iff_of_mulEquiv {G : Type u_1} {A : Type u_2} {B : Type u_4} [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] {H : Type u_5} [Group H] [MulSemiringAction H B] (e : H ≃* G) (he : ∀ (h : H) (x : B), e h x = h x) :
    @[simp]
    theorem IsGaloisGroup.top_iff {G : Type u_1} {A : Type u_2} {B : Type u_4} [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] :
    instance instIsGaloisGroupSubtypeMemSubgroupTop (G : Type u_1) (A : Type u_2) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [IsGaloisGroup G A B] :
    theorem IsGaloisGroup.of_algEquiv (G : Type u_1) (A : Type u_2) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [hG : IsGaloisGroup G A B] (B' : Type u_5) [Semiring B'] [Algebra A B'] [MulSemiringAction G B'] (e : B ≃ₐ[A] B') (he : ∀ (g : G) (x : B), e (g x) = g e x) :
    theorem IsGaloisGroup.of_ringEquiv (G : Type u_1) (A : Type u_2) (A' : Type u_3) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [hG : IsGaloisGroup G A B] [CommSemiring A'] [Algebra A' B] (e : A ≃+* A') (he : ∀ (a : A), (algebraMap A' B) (e a) = (algebraMap A B) a) :
    theorem Subgroup.smul_algebraMap {G : Type u_1} (B : Type u_4) [Group G] [Semiring B] [MulSemiringAction G B] {C : Type u_5} [CommSemiring C] [Algebra C B] {H : Subgroup G} [SMulCommClass (↥H) C B] {g : G} (hg : g H) (x : C) :
    g (algebraMap C B) x = (algebraMap C B) x
    theorem IsGaloisGroup.smul_mem_of_normal (G : Type u_1) (B : Type u_4) [Group G] [Semiring B] [MulSemiringAction G B] {C : Type u_5} [CommSemiring C] [Algebra C B] (N : Subgroup G) [hN : N.Normal] [hC : IsGaloisGroup (↥N) C B] (g : G) (x : C) :
    @[deprecated Subgroup.smul_algebraMap (since := "2026-05-28")]
    theorem smul_eq_self {G : Type u_1} (B : Type u_4) [Group G] [Semiring B] [MulSemiringAction G B] {C : Type u_5} [CommSemiring C] [Algebra C B] {H : Subgroup G} [SMulCommClass (↥H) C B] {g : G} (hg : g H) (x : C) :
    g (algebraMap C B) x = (algebraMap C B) x

    Alias of Subgroup.smul_algebraMap.

    @[deprecated IsGaloisGroup.smul_mem_of_normal (since := "2026-05-28")]
    theorem smul_mem_of_normal (G : Type u_1) (B : Type u_4) [Group G] [Semiring B] [MulSemiringAction G B] {C : Type u_5} [CommSemiring C] [Algebra C B] (N : Subgroup G) [hN : N.Normal] [hC : IsGaloisGroup (↥N) C B] (g : G) (x : C) :

    Alias of IsGaloisGroup.smul_mem_of_normal.

    noncomputable def IsGaloisGroup.ringEquivFixedPoints (G : Type u_1) (A : Type u_2) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [hA : IsGaloisGroup G A B] [FaithfulSMul A B] :

    If B/A is Galois with Galois group G, then A is isomorphic to the subring of elements of B fixed by G.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem IsGaloisGroup.ringEquivFixedPoints_apply_coe (G : Type u_1) (A : Type u_2) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [hA : IsGaloisGroup G A B] [FaithfulSMul A B] (x : A) :
      ((ringEquivFixedPoints G A B) x) = (algebraMap A B) x
      @[simp]
      theorem IsGaloisGroup.algebraMap_ringEquivFixedPoints_symm_apply (G : Type u_1) (A : Type u_2) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [hA : IsGaloisGroup G A B] [FaithfulSMul A B] (x : (FixedPoints.subsemiring B G)) :
      (algebraMap A B) ((ringEquivFixedPoints G A B).symm x) = x
      noncomputable def IsGaloisGroup.ringEquiv (G : Type u_1) (A : Type u_2) (A' : Type u_3) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [hA : IsGaloisGroup G A B] [FaithfulSMul A B] [CommSemiring A'] [Algebra A' B] [FaithfulSMul A' B] [hA' : IsGaloisGroup G A' B] :
      A ≃+* A'

      If B/A and B/A' are Galois with the same Galois group, then A ≃+* A'.

      Equations
      Instances For
        @[simp]
        theorem IsGaloisGroup.algebraMap_ringEquiv_apply (G : Type u_1) (A : Type u_2) (A' : Type u_3) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [hA : IsGaloisGroup G A B] [FaithfulSMul A B] [CommSemiring A'] [Algebra A' B] [FaithfulSMul A' B] [hA' : IsGaloisGroup G A' B] (x : A) :
        (algebraMap A' B) ((ringEquiv G A A' B) x) = (algebraMap A B) x
        @[simp]
        theorem IsGaloisGroup.algebraMap_ringEquiv_symm_apply (G : Type u_1) (A : Type u_2) (A' : Type u_3) (B : Type u_4) [Group G] [CommSemiring A] [Semiring B] [Algebra A B] [MulSemiringAction G B] [hA : IsGaloisGroup G A B] [FaithfulSMul A B] [CommSemiring A'] [Algebra A' B] [FaithfulSMul A' B] [hA' : IsGaloisGroup G A' B] (x : A') :
        (algebraMap A B) ((ringEquiv G A A' B).symm x) = (algebraMap A' B) x
        theorem IsGaloisGroup.to_isFractionRing_of_isIntegral (G : Type u_1) (A : Type u_2) (B : Type u_3) (K : Type u_4) (L : Type u_5) [Group G] [CommRing A] [CommRing B] [MulSemiringAction G B] [Algebra A B] [Field K] [Field L] [Algebra K L] [Algebra A K] [Algebra B L] [Algebra A L] [IsFractionRing A K] [IsFractionRing B L] [IsScalarTower A K L] [IsScalarTower A B L] [MulSemiringAction G L] [SMulDistribClass G B L] [Algebra.IsIntegral A B] [hGAB : IsGaloisGroup G A B] :

        IsGaloisGroup for rings implies IsGaloisGroup for their fraction fields.

        theorem IsGaloisGroup.to_isFractionRing (G : Type u_1) (A : Type u_2) (B : Type u_3) (K : Type u_4) (L : Type u_5) [Group G] [CommRing A] [CommRing B] [MulSemiringAction G B] [Algebra A B] [Field K] [Field L] [Algebra K L] [Algebra A K] [Algebra B L] [Algebra A L] [IsFractionRing A K] [IsFractionRing B L] [IsScalarTower A K L] [IsScalarTower A B L] [MulSemiringAction G L] [SMulDistribClass G B L] [Finite G] [hGAB : IsGaloisGroup G A B] :

        IsGaloisGroup for rings implies IsGaloisGroup for their fraction fields.

        theorem IsGaloisGroup.of_isFractionRing (G : Type u_1) (A : Type u_2) (B : Type u_3) (K : Type u_4) (L : Type u_5) [Group G] [CommRing A] [CommRing B] [MulSemiringAction G B] [Algebra A B] [Field K] [Field L] [Algebra K L] [Algebra A K] [Algebra B L] [Algebra A L] [IsFractionRing A K] [IsFractionRing B L] [IsScalarTower A K L] [IsScalarTower A B L] [MulSemiringAction G L] [SMulDistribClass G B L] [hGKL : IsGaloisGroup G K L] [IsIntegrallyClosed A] [Algebra.IsIntegral A B] :

        If B is an integral extension of an integrally closed domain A, then IsGaloisGroup for their fraction fields implies IsGaloisGroup for these rings.

        theorem IsGaloisGroup.iff_isFractionRing (G : Type u_1) (A : Type u_2) (B : Type u_3) (K : Type u_4) (L : Type u_5) [Group G] [CommRing A] [CommRing B] [MulSemiringAction G B] [Algebra A B] [Field K] [Field L] [Algebra K L] [Algebra A K] [Algebra B L] [Algebra A L] [IsFractionRing A K] [IsFractionRing B L] [IsScalarTower A K L] [IsScalarTower A B L] [MulSemiringAction G L] [SMulDistribClass G B L] [Finite G] [IsIntegrallyClosed A] :

        If G is finite and A is integrally closed then IsGaloisGroup G A B is equivalent to B/A being integral and the fields of fractions Frac(B)/Frac(A) being Galois with Galois group G.

        @[deprecated IsFractionRing.mulSemiringAction (since := "2026-04-20")]
        def FractionRing.mulSemiringAction_of_isGaloisGroup (G : Type u_10) (A : Type u_11) (B : Type u_12) (K : Type u_13) (L : Type u_14) [Group G] [CommRing A] [CommRing B] [MulSemiringAction G B] [Algebra A B] [Field K] [Field L] [Algebra K L] [Algebra A K] [Algebra B L] [Algebra A L] [IsFractionRing A K] [IsFractionRing B L] [IsScalarTower A K L] [IsScalarTower A B L] [SMulCommClass G A B] :

        Alias of IsFractionRing.mulSemiringAction.

        Equations
        Instances For

          If G is finite and IsGaloisGroup G A B with A and B domains, then G is also a Galois group for FractionRing B / FractionRing A for the action defined by IsFractionRing.mulSemiringAction.

          theorem IsGaloisGroup.isGalois (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [Finite G] [IsGaloisGroup G K L] :

          If G is a finite Galois group for L/K, then L/K is a Galois extension.

          instance IsGaloisGroup.of_isGalois (K : Type u_3) (L : Type u_4) [Field K] [Field L] [Algebra K L] [IsGalois K L] :
          IsGaloisGroup Gal(L/K) K L

          If L/K is a Galois extension, then Gal(L/K) is a Galois group for L/K.

          theorem IsGaloisGroup.card_eq_finrank (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [IsGaloisGroup G K L] :
          theorem IsGaloisGroup.finiteDimensional (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [Finite G] [IsGaloisGroup G K L] :
          theorem IsGaloisGroup.finite (G : Type u_1) [Group G] (A : Type u_5) (B : Type u_6) [CommRing A] [CommRing B] [Algebra A B] [Module.Finite A B] [IsDomain A] [IsDomain B] [FaithfulSMul A B] [MulSemiringAction G B] [IsGaloisGroup G A B] :
          noncomputable def IsGaloisGroup.mulEquivAlgEquiv (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [IsGaloisGroup G K L] [Finite G] :
          G ≃* Gal(L/K)

          If G is a finite Galois group for L/K, then G is isomorphic to Gal(L/K).

          Equations
          Instances For
            @[simp]
            theorem IsGaloisGroup.mulEquivAlgEquiv_symm_apply (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [IsGaloisGroup G K L] [Finite G] (b : Gal(L/K)) :
            @[simp]
            theorem IsGaloisGroup.mulEquivAlgEquiv_apply_symm_apply (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [IsGaloisGroup G K L] [Finite G] (a : G) (a✝ : L) :
            ((mulEquivAlgEquiv G K L) a).symm a✝ = a⁻¹ a✝
            @[simp]
            theorem IsGaloisGroup.mulEquivAlgEquiv_apply_apply (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [IsGaloisGroup G K L] [Finite G] (a : G) (a✝ : L) :
            ((mulEquivAlgEquiv G K L) a) a✝ = a a✝
            @[simp]
            noncomputable def IsGaloisGroup.mulEquivCongr' (G : Type u_1) (G' : Type u_2) (K : Type u_3) (L : Type u_4) [Group G] [Group G'] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [MulSemiringAction G' L] [IsGaloisGroup G K L] [Finite G] [IsGaloisGroup G' K L] [Finite G'] :
            G ≃* G'

            If G and G' are finite Galois groups for L/K, then G is isomorphic to G'. See mulEquivCongr for a more general version.

            Equations
            Instances For
              @[simp]
              theorem IsGaloisGroup.mulEquivCongr'_apply_smul (G : Type u_1) (G' : Type u_2) (K : Type u_3) (L : Type u_4) [Group G] [Group G'] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [MulSemiringAction G' L] [IsGaloisGroup G K L] [Finite G] [IsGaloisGroup G' K L] [Finite G'] (g : G) (x : L) :
              (mulEquivCongr' G G' K L) g x = g x
              noncomputable def IsGaloisGroup.mulEquivCongr (G : Type u_1) (G' : Type u_2) [Group G] [Group G'] [Finite G] [Finite G'] (A : Type u_5) (B : Type u_6) [CommRing A] [CommRing B] [IsDomain B] [Algebra A B] [FaithfulSMul A B] [MulSemiringAction G B] [MulSemiringAction G' B] [IsGaloisGroup G A B] [IsGaloisGroup G' A B] :
              G ≃* G'

              If G and G' are finite Galois groups for B/A with B a domain, then G is isomorphic to G'.

              Equations
              Instances For
                @[simp]
                theorem IsGaloisGroup.mulEquivCongr_apply_smul (G : Type u_1) (G' : Type u_2) [Group G] [Group G'] [Finite G] [Finite G'] (A : Type u_5) (B : Type u_6) [CommRing A] [CommRing B] [IsDomain B] [Algebra A B] [FaithfulSMul A B] [MulSemiringAction G B] [MulSemiringAction G' B] [IsGaloisGroup G A B] [IsGaloisGroup G' A B] (g : G) (x : B) :
                (mulEquivCongr G G' A B) g x = g x
                @[simp]
                theorem IsGaloisGroup.mulEquivCongr_symm_apply_smul (G : Type u_1) (G' : Type u_2) [Group G] [Group G'] [Finite G] [Finite G'] (A : Type u_5) (B : Type u_6) [CommRing A] [CommRing B] [IsDomain B] [Algebra A B] [FaithfulSMul A B] [MulSemiringAction G B] [MulSemiringAction G' B] [IsGaloisGroup G A B] [IsGaloisGroup G' A B] (g : G') (x : B) :
                (mulEquivCongr G G' A B).symm g x = g x
                instance IsGaloisGroup.instSubtypeMemSubgroupSubalgebraSubalgebra (G : Type u_1) [Group G] (H : Subgroup G) (R : Type u_5) (S : Type u_6) [CommRing R] [CommRing S] [Algebra R S] [MulSemiringAction G S] [hGKL : IsGaloisGroup G R S] :
                IsGaloisGroup (↥H) (↥(FixedPoints.subalgebra R S H)) S
                instance IsGaloisGroup.subgroup (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (H : Subgroup G) [hGKL : IsGaloisGroup G K L] :
                theorem IsGaloisGroup.fixedPoints_of_isGaloisGroup (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (H : Subgroup G) (F : IntermediateField K L) [hGKL : IsGaloisGroup G K L] [hHFL : IsGaloisGroup (↥H) (↥F) L] :
                theorem IsGaloisGroup.of_fixedPoints_eq (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (H : Subgroup G) (F : IntermediateField K L) [hGKL : IsGaloisGroup G K L] (hF : FixedPoints.intermediateField H = F) :
                IsGaloisGroup (↥H) (↥F) L
                theorem IsGaloisGroup.subgroup_iff {G : Type u_1} {K : Type u_3} {L : Type u_4} [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] {H : Subgroup G} {F : IntermediateField K L} [hGKL : IsGaloisGroup G K L] :
                @[simp]
                theorem IsGaloisGroup.of_mulEquiv_algEquiv {G : Type u_1} {K : Type u_3} {L : Type u_4} [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [IsGalois K L] (e : G ≃* Gal(L/K)) (he : ∀ (g : G) (x : L), (e g) x = g x) :
                instance IsGaloisGroup.fixedPoints (G : Type u_1) (L : Type u_4) [Group G] [Field L] [MulSemiringAction G L] [Finite G] [FaithfulSMul G L] :
                instance IsGaloisGroup.intermediateField (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (F : IntermediateField K L) [Finite G] [hGKL : IsGaloisGroup G K L] :
                IsGaloisGroup (↥(fixingSubgroup G F)) (↥F) L
                @[simp]
                theorem IsGaloisGroup.card_fixingSubgroup_eq_finrank (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (F : IntermediateField K L) [Finite G] [IsGaloisGroup G K L] :
                theorem IsGaloisGroup.fixingSubgroup_le_of_le (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (F F' : IntermediateField K L) (h : F F') :
                @[simp]
                theorem IsGaloisGroup.fixingSubgroup_bot (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [SMulCommClass G K L] :
                @[simp]
                theorem IsGaloisGroup.fixedPoints_bot (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [SMulCommClass G K L] :
                theorem IsGaloisGroup.fixedPoints_le_of_le (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (H H' : Subgroup G) [SMulCommClass G K L] (h : H H') :
                theorem IsGaloisGroup.fixingSubgroup_top (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [hGKL : IsGaloisGroup G K L] :
                @[simp]
                theorem IsGaloisGroup.fixedPoints_top (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [hGKL : IsGaloisGroup G K L] :
                noncomputable def IsGaloisGroup.intermediateFieldEquivSubgroup (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] [hGKL : IsGaloisGroup G K L] [Finite G] :

                The Galois correspondence from intermediate fields to subgroups.

                Equations
                Instances For
                  @[simp]
                  theorem IsGaloisGroup.fixingSubgroup_fixedPoints (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (H : Subgroup G) [hGKL : IsGaloisGroup G K L] [Finite G] :
                  @[simp]
                  theorem IsGaloisGroup.fixedPoints_fixingSubgroup (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (F : IntermediateField K L) [hGKL : IsGaloisGroup G K L] [Finite G] :
                  theorem IsGaloisGroup.fixedPoints_eq_range_algebraMap (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (H : Subgroup G) [hGKL : IsGaloisGroup G K L] [Finite G] (B : Type u_5) [CommSemiring B] [Algebra B L] [IsGaloisGroup (↥H) B L] :

                  If G acts as a Galois group on L/K and the subgroup H acts as a Galois group on L/B, then the fixed points of H equals the range of algebraMap B L.

                  theorem IsGaloisGroup.fixingSubgroup_range_algebraMap' (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (H : Subgroup G) [hGKL : IsGaloisGroup G K L] [Finite G] (B : Type u_5) [CommSemiring B] [Algebra B L] [IsGaloisGroup (↥H) B L] :

                  If G acts as a Galois group on L/K and the subgroup H acts as a Galois group on L/B, then the fixing subgroup of algebraMap B L inside G equals H. See fixingSubgroup_range_algebraMap for a more general version.

                  theorem IsGaloisGroup.fixingSubgroup_range_algebraMap (G : Type u_1) [Group G] [Finite G] (A : Type u_5) (B : Type u_6) (C : Type u_7) (H : Subgroup G) [CommRing A] [CommRing B] [CommRing C] [IsDomain C] [Algebra A C] [FaithfulSMul A C] [MulSemiringAction G C] [hGAC : IsGaloisGroup G A C] [Algebra B C] [FaithfulSMul B C] [hH : IsGaloisGroup (↥H) B C] :

                  If G acts on a domain C with IsGaloisGroup G A C, and a subgroup H acts on C with IsGaloisGroup H B C, then the fixing subgroup of algebraMap B C equals H.

                  @[implicit_reducible]
                  noncomputable def IsGaloisGroup.smulOfNormal (G : Type u_1) [Group G] (B : Type u_6) (C : Type u_7) [Semiring C] [MulSemiringAction G C] (N : Subgroup G) [CommSemiring B] [Algebra B C] [N.Normal] [IsGaloisGroup (↥N) B C] :
                  SMul G B

                  If N is a normal subgroup of G and IsGaloisGroup N B C, then G acts on B. For g : G and x : B, g • x is the unique element of B whose image in C is g • algebraMap B C x, see algebraMap_smulOfNormal.

                  Equations
                  Instances For
                    @[simp]
                    theorem IsGaloisGroup.algebraMap_smulOfNormal (G : Type u_1) [Group G] (B : Type u_6) (C : Type u_7) [Semiring C] [MulSemiringAction G C] (N : Subgroup G) [CommSemiring B] [Algebra B C] [N.Normal] [IsGaloisGroup (↥N) B C] (g : G) (x : B) :
                    (algebraMap B C) (g x) = g (algebraMap B C) x
                    instance IsGaloisGroup.smulDistribClass_smulOfNormal (G : Type u_1) [Group G] (B : Type u_6) (C : Type u_7) [Semiring C] [MulSemiringAction G C] (N : Subgroup G) [CommSemiring B] [Algebra B C] [N.Normal] [IsGaloisGroup (↥N) B C] :

                    If N is normal and IsGaloisGroup N B C, the action smulOfNormal G B C satisfies SMulDistribClass G B C.

                    @[implicit_reducible]
                    noncomputable def IsGaloisGroup.mulSemiringActionOfNormal (G : Type u_1) [Group G] (B : Type u_6) (C : Type u_7) [Semiring C] [MulSemiringAction G C] (N : Subgroup G) [CommSemiring B] [Algebra B C] [FaithfulSMul B C] [IsGaloisGroup (↥N) B C] [N.Normal] :

                    If N is a normal subgroup of G and IsGaloisGroup N B C, then G acts on B as a MulSemiringAction, via the action defined in smulOfNormal.

                    Equations
                    Instances For
                      @[implicit_reducible]
                      noncomputable def IsGaloisGroup.mulSemiringActionQuotient (G : Type u_1) [Group G] (B : Type u_6) (C : Type u_7) [Semiring C] [MulSemiringAction G C] (N : Subgroup G) [CommSemiring B] [Algebra B C] [FaithfulSMul B C] [IsGaloisGroup (↥N) B C] [N.Normal] :

                      If N is a normal subgroup of G and IsGaloisGroup N B C, then the quotient group G ⧸ N acts on B by (g : G ⧸ N) • x = g • x.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem IsGaloisGroup.mulSemiringActionQuotient_smul_def (G : Type u_1) [Group G] (B : Type u_6) (C : Type u_7) [Semiring C] [MulSemiringAction G C] (N : Subgroup G) [CommSemiring B] [Algebra B C] [FaithfulSMul B C] [MulSemiringAction G B] [SMulDistribClass G B C] [IsGaloisGroup (↥N) B C] [N.Normal] (g : G) (b : B) :
                        g b = g b
                        @[implicit_reducible]
                        def IsGaloisGroup.smulCommClassQuotient (G : Type u_1) [Group G] (A : Type u_5) (B : Type u_6) (C : Type u_7) [CommSemiring A] [Semiring C] [Algebra A C] [MulSemiringAction G C] (N : Subgroup G) [CommSemiring B] [Algebra B C] [FaithfulSMul B C] [N.Normal] [Algebra A B] [IsScalarTower A B C] [SMulCommClass G A C] [MulSemiringAction G B] [MulAction (G N) B] [SMulDistribClass G B C] [IsScalarTower G (G N) B] :
                        SMulCommClass (G N) A B

                        If G acts on C commuting with A, then the action of G ⧸ N on B commutes with A.

                        Equations
                        • =
                        Instances For
                          theorem IsGaloisGroup.quotient (G : Type u_1) [Group G] (A : Type u_5) (B : Type u_6) (C : Type u_7) [CommRing A] [CommRing B] [CommRing C] [IsDomain C] [Algebra A B] [Algebra A C] [Algebra B C] [FaithfulSMul A C] [FaithfulSMul B C] [IsScalarTower A B C] [Finite G] (N : Subgroup G) [N.Normal] [MulSemiringAction G C] [hG : IsGaloisGroup G A C] [MulSemiringAction G B] [MulSemiringAction (G N) B] [SMulCommClass (G N) A B] [SMulDistribClass G B C] [IsScalarTower G (G N) B] [IsGaloisGroup (↥N) B C] :
                          IsGaloisGroup (G N) A B

                          If G is a Galois group for C/A, and the normal subgroup N ≤ G is a Galois group for C/B, then the quotient G ⧸ N is a Galois group for B/A.

                          instance IsGaloisGroup.instQuotientSubgroupSubtypeMemIntermediateFieldOfFinite (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (F : IntermediateField K L) (N : Subgroup G) [N.Normal] [IsGaloisGroup (↥N) (↥F) L] [Finite G] [IsGaloisGroup G K L] :
                          IsGaloisGroup (G N) K F

                          If G is a finite Galois group for L/K and N is a normal subgroup of G that is a Galois group for L/F, then the quotient group G ⧸ N is a Galois group for F/K.

                          theorem IsGaloisGroup.map_quotientMk' (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (H : Subgroup G) (F : IntermediateField K L) (N : Subgroup G) [N.Normal] [IsGaloisGroup (↥N) (↥F) L] (E : IntermediateField K L) [hE : IsGaloisGroup (↥H) (↥E) L] [Finite G] [IsGaloisGroup G K L] (h : E F) :

                          If G is a finite Galois group for L/K, N is a normal subgroup that is a Galois group for L/F, and H is a subgroup that is a Galois group for L/E with E ≤ F, then the image of H under the canonical quotient map G → G ⧸ N is a Galois group for F/E.

                          @[deprecated IsGaloisGroup.map_quotientMk' (since := "2026-04-21")]
                          theorem IsGaloisGroup.quotientMap (G : Type u_1) (K : Type u_3) (L : Type u_4) [Group G] [Field K] [Field L] [Algebra K L] [MulSemiringAction G L] (H : Subgroup G) (F : IntermediateField K L) (N : Subgroup G) [N.Normal] [IsGaloisGroup (↥N) (↥F) L] (E : IntermediateField K L) [hE : IsGaloisGroup (↥H) (↥E) L] [Finite G] [IsGaloisGroup G K L] (h : E F) :

                          Alias of IsGaloisGroup.map_quotientMk'.


                          If G is a finite Galois group for L/K, N is a normal subgroup that is a Galois group for L/F, and H is a subgroup that is a Galois group for L/E with E ≤ F, then the image of H under the canonical quotient map G → G ⧸ N is a Galois group for F/E.