Skip to content
This repository has been archived by the owner on Jul 24, 2024. It is now read-only.

Commit

Permalink
Updated normal correspondence code to Lean 4
Browse files Browse the repository at this point in the history
  • Loading branch information
ChimiSeanGa committed Nov 27, 2023
1 parent 5f19236 commit 6e16239
Showing 1 changed file with 36 additions and 9 deletions.
45 changes: 36 additions & 9 deletions src/field_theory/normal_correspondence.lean
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import field_theory.galois

Check failure on line 1 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint style

ERR_COP: Malformed or missing copyright header

Check failure on line 1 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint style

ERR_COP: Malformed or missing copyright header
import field_theory.normal_closure

Check failure on line 2 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint style

ERR_COP: Malformed or missing copyright header

lemma normal_iff_stabilizing {F L : Type*}
lemma normal_sbgp_iff_stabilizing {F L : Type*}

Check failure on line 4 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint style

ERR_COP: Malformed or missing copyright header

Check failure on line 4 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint style

ERR_MOD: Module docstring missing, or too late
[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 :=
Expand All @@ -12,7 +13,6 @@ begin
rw ← hk_fixing,
rw intermediate_field.fixed_field,
rw fixed_points.intermediate_field,
dsimp,
rintro ⟨ϕ, hϕ⟩,
change ϕ (g x) = g x,
suffices: g⁻¹ (ϕ (g x)) = x,
Expand Down Expand Up @@ -51,29 +51,56 @@ begin
},

Check warning on line 51 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint style

WRN_BRC: Probable misformatting of curly braces
{

Check warning on line 52 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint style

WRN_BRC: Probable misformatting of curly braces
intros hK g x hxk,
have gres := g ∘ K.val,
let gres := g.comp K.val,
exact hK gres ⟨x, hxk⟩,
},

Check warning on line 56 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint style

WRN_BRC: Probable misformatting of curly braces
end

lemma stabilizing_iff_normal_ext {F L : Type*}
lemma res_stabilizing_iff_normal_closure_contained {F L : Type*}

Check failure on line 59 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint mathlib

Warning from unused_arguments linter

res_stabilizing_iff_normal_closure_contained - argument 6: [_inst_4 : is_galois F L], argument 7: [_inst_5 : finite_dimensional F L]
[field F] [field L] [algebra F L] [is_galois F L]
[finite_dimensional F L] (K : intermediate_field F L) :
(∀ (g : L ≃ₐ[F] L) (x : L), x ∈ K → g • x ∈ K) ↔ normal F K :=
(∀ (g : K →ₐ[F] L) (x : K), g x ∈ K) ↔ K.normal_closure ≤ K :=
begin
rw intermediate_field.normal_closure_le_iff,
apply forall_congr,
intro a,
have := @set.range_subset_iff L K a K,
exact this.symm,
end

lemma normal_closure_contained_iff_normal {F L : Type*}

Check failure on line 71 in src/field_theory/normal_correspondence.lean

View workflow job for this annotation

GitHub Actions / Lint mathlib

Warning from unused_arguments linter

normal_closure_contained_iff_normal - argument 7: [_inst_5 : finite_dimensional F L]
[field F] [field L] [algebra F L] [is_galois F L]
[finite_dimensional F L] (K : intermediate_field F L) :
K.normal_closure ≤ K ↔ normal F K :=
begin
split,
{
sorry,
intro hncont,
rw ← le_antisymm hncont (intermediate_field.le_normal_closure K),
apply_instance,
},
{
-- intros hsplit g,
sorry,
introI hknormal,
rw intermediate_field.normal_closure_of_normal K,
exact le_rfl,
},
end

lemma stabilizing_iff_normal_ext {F L : Type*}
[field F] [field L] [algebra F L] [is_galois F L]
[finite_dimensional F L] (K : intermediate_field F L) :
(∀ (g : L ≃ₐ[F] L) (x : L), x ∈ K → g • x ∈ K) ↔ normal F K :=
begin
rw equiv.forall_congr_left' (alg_equiv_equiv_alg_hom F L).to_equiv,
change (∀ (g : L →ₐ[F] L) x, x ∈ K → g x ∈ K) ↔ _,
rw [stabilizing_iff_res_stabilizing, res_stabilizing_iff_normal_closure_contained,
normal_closure_contained_iff_normal],
end

theorem normal_correspondence (F L : Type*)
[field F] [field L] [algebra F L] [is_galois F L]
[finite_dimensional F L] (K : intermediate_field F L) :
normal F K ↔ K.fixing_subgroup.normal :=
begin
rw [normal_iff_stabilizing, stabilizing_iff_normal_ext],
rw [normal_sbgp_iff_stabilizing, stabilizing_iff_normal_ext],
end

0 comments on commit 6e16239

Please sign in to comment.