Zulip Chat Archive

Stream: Berkeley Lean Seminar

Topic: Normal Galois Correspondence


Sean Gonzales (Apr 17 2023 at 19:17):

In trying to prove that normal extensions correspond to normal subgroups, I need to show that if L/FL/F is a Galois extension and KK is an intermediate field, then the fixing subgroup of KK is normal iff Gal(L/F)\text{Gal}(L/F) stabilizes KK. Assuming the fixing subgroup of KK is normal, how I would think to do this is to take an element xKx \in K and gGal(L/F)g \in \text{Gal}(L/F), and show that for any hGal(L/K)h \in \text{Gal}(L/K) we have h(gx)=gxh \cdot (g \cdot x) = g \cdot x, hence gxKg \cdot x \in K. However, I'm having trouble using this characterization of fixed fields. My scratchwork attempt so far is this:

import field_theory.galois

lemma normal_iff_fixing (F L : Type*)
  [field F] [field L] [algebra F L] [is_galois F L]
  [finite_dimensional F L] (K : intermediate_field F L) :
  K.fixing_subgroup.normal   (g : L ≃ₐ[F] L) (x : L), x  K  g  x  K :=
begin
  split,
  {
    intros hk_normal g x hxk,
    have hk_fixing := is_galois.fixed_field_fixing_subgroup K,
    rw  hk_fixing,
    rw intermediate_field.fixed_field,
    rw fixed_points.intermediate_field,
  },
  {

  },
end

What I want is to use the fact that an element is in KK if and only if an arbitrary element of Gal(L/K)\text{Gal}(L/K) fixes it. I'm having trouble figuring out which rewrites will get me to this condition.

Kevin Buzzard (Apr 17 2023 at 19:46):

Can you add imports and any opens to make your code a #mwe ? (just edit your message, don't post a new one)

Sean Gonzales (Apr 17 2023 at 19:50):

There's a lemma in fixing_subgroup.lean which is essentially backwards of what I want: it says "an element is in a fixing subgroup of a set iff it fixes every element of the set". Rather, I want "an element is in a set iff every element of its fixing subgroup fixes it". Does this lemma exist? I'm having trouble locating it.

Kevin Buzzard (Apr 17 2023 at 20:17):

Here's a direct proof, if this helps:

import field_theory.galois

lemma normal_iff_fixing (F L : Type*)
  [field F] [field L] [algebra F L] [is_galois F L]
  [finite_dimensional F L] (K : intermediate_field F L) :
  K.fixing_subgroup.normal   (g : L ≃ₐ[F] L) (x : L), x  K  g  x  K :=
begin
  split,
  {
    intros hk_normal g x hxk,
    have hk_fixing := is_galois.fixed_field_fixing_subgroup K,
    rw  hk_fixing,
    rw intermediate_field.fixed_field,
    rw fixed_points.intermediate_field,
    -- goal contains a structure explicitly made with `{ }` constructor
    dsimp, -- now it doesn't
    rintro φ, ⟩,
    -- tidy up goal
    change φ (g x) = g x,
    -- move g on RHS to LHS
    suffices : g⁻¹ (φ (g x)) = x,
    { -- inelegant proof
      apply_fun g at this,
      rw  alg_equiv.mul_apply at this,
      simpa, },
    -- close approximation to the goal
    have := hk_normal.conj_mem φ  g⁻¹ x, hxk⟩,
    -- simplifier can reconcile `this` with the goal
    simpa,
  },
  { sorry,

  },
end

Sean Gonzales (Apr 17 2023 at 20:20):

Ah, dsimp is what I needed. Thanks!

Kevin Buzzard (Apr 17 2023 at 20:23):

I only put it there for psychological purposes. You can delete it and the proof still works. dsimp does definitional tidying up, but the change tactic works up to definitional equality too, so you don't need the dsimp at all.

Sean Gonzales (Apr 17 2023 at 20:25):

Right, I mean to say dsimp clarified the explicit construction to me.


Last updated: Dec 20 2023 at 11:08 UTC