Skip to content

Commit 67dc788

Browse files
committed
temp
1 parent 67d0072 commit 67dc788

2 files changed

Lines changed: 24 additions & 23 deletions

File tree

Mathlib/RepresentationTheory/Rep/Basic.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ lemma hom_surjective :
206206
Function.Surjective (Hom.hom : (A ⟶ B) → (A.ρ.IntertwiningMap B.ρ)) :=
207207
hom_bijective.surjective
208208

209-
/-- The morphisms between two objects in `Rep k G` has an equivalence to the intertwining maps
209+
/- - Themorphisms between two objects in `Rep k G` has an equivalence to the intertwining maps
210210
between their underlying representations. -/
211211
@[simps]
212212
def homEquiv : (A ⟶ B) ≃ (A.ρ.IntertwiningMap B.ρ) where

Mathlib/RingTheory/Polynomial/Morse.lean

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -117,33 +117,22 @@ open IsGaloisGroup
117117

118118
open NumberField
119119

120-
open Ideal IsGaloisGroup Pointwise in
121-
/-- A Galois group over `ℤ` is generated by its inertia subgroups. -/
122-
theorem NumberField.supr_inertia_eq_top (S G : Type*) [CommRing S] [Module.Finite ℤ S]
120+
-- #40955
121+
theorem NumberField.supr_inertia_primeSpectrum_eq_top (S G : Type*) [CommRing S] [Module.Finite ℤ S]
123122
[IsDomain S] [FaithfulSMul ℤ S] [Group G] [MulSemiringAction G S] [IsGaloisGroup G ℤ S] :
124123
⨆ m : PrimeSpectrum S, m.asIdeal.toAddSubgroup.inertia G = ⊤ := by
125124
sorry
126125

127-
theorem NumberField.supr_inertia_eq_top' (S G : Type*) [CommRing S] [Module.Finite ℤ S]
126+
theorem NumberField.supr_inertia_maximalSpectrum_eq_top (S G : Type*) [CommRing S] [Module.Finite ℤ S]
128127
[IsDomain S] [FaithfulSMul ℤ S] [Group G] [MulSemiringAction G S] [IsGaloisGroup G ℤ S] :
129128
⨆ m : MaximalSpectrum S, m.asIdeal.toAddSubgroup.inertia G = ⊤ := by
130-
rw [eq_top_iff, ← NumberField.supr_inertia_eq_top S G, iSup_le_iff]
129+
rw [eq_top_iff, ← NumberField.supr_inertia_primeSpectrum_eq_top S G, iSup_le_iff]
131130
intro p
132131
obtain ⟨m, hm, hpm⟩ := p.1.exists_le_maximal p.2.ne_top
133132
intro x hx
134133
apply Subgroup.mem_iSup_of_mem ⟨m, hm⟩
135134
exact fun x ↦ hpm (hx x)
136135

137-
theorem NumberField.supr_inertia_eq_top'' (K : Type*) [Field K] [NumberField K]
138-
(G : Type*) [Group G] [MulSemiringAction G K] [IsGaloisGroup G ℚ K] :
139-
⨆ m : PrimeSpectrum (𝓞 K), m.asIdeal.toAddSubgroup.inertia G = ⊤ := by
140-
exact NumberField.supr_inertia_eq_top (𝓞 K) G
141-
142-
theorem NumberField.supr_inertia_eq_top''' (K : Type*) [Field K] [NumberField K]
143-
(G : Type*) [Group G] [MulSemiringAction G K] [IsGaloisGroup G ℚ K] :
144-
⨆ m : MaximalSpectrum (𝓞 K), m.asIdeal.toAddSubgroup.inertia G = ⊤ := by
145-
exact NumberField.supr_inertia_eq_top' (𝓞 K) G
146-
147136
end ram
148137

149138
end Inertia
@@ -168,8 +157,6 @@ theorem tada' (f₀ : ℤ[X]) (hf₀ : Irreducible f₀) (hf₉' : f₀.Monic)
168157
(h : ∀ (F : Type) [Field F], (f₀.map (algebraMap ℤ F)).Splits →
169158
f₀.natDegree ≤ (f₀.rootSet F).ncard + 1) :
170159
Function.Bijective (Gal.galActionHom (f₀.map (algebraMap ℤ ℚ)) ℂ) := by
171-
-- by_cases nd : f₀.natDegree = 0
172-
-- · sorry
173160
classical
174161
let f : ℚ[X] := f₀.map (algebraMap ℤ ℚ)
175162
have hf' : Irreducible f := hf₉'.irreducible_iff_irreducible_map_fraction_map.mp hf₀
@@ -183,20 +170,34 @@ theorem tada' (f₀ : ℤ[X]) (hf₀ : Irreducible f₀) (hf₉' : f₀.Monic)
183170
let G := f.Gal
184171
have h_transitive := Gal.galAction_isPretransitive f ℂ hf'
185172
let e : f₀.rootSet R ≃ f.rootSet ℂ := by
173+
let e₀ : f₀.rootSet R ≃ f.rootSet K := by
174+
sorry
175+
let e1 := Polynomial.Gal.rootsEquivRoots f ℂ
176+
186177
sorry
187-
have he (g : G) (x : f₀.rootSet R) : g • e x = e (g • x) := by
178+
have he (g : G) (x : f₀.rootSet R) : e (g • x) = g • e x := by
188179
sorry
189-
have : MulAction.IsPretransitive G (f₀.rootSet R) := sorry
190-
let e := Polynomial.Gal.rootsEquivRoots f ℂ
180+
have : MulAction.IsPretransitive G (f₀.rootSet R) := by
181+
refine ⟨fun x y ↦ ?_⟩
182+
obtain ⟨g, hg⟩ := MulAction.exists_smul_eq f.Gal (e x) (e y)
183+
exact ⟨g, e.injective ((he g x).trans hg)⟩
191184
suffices Function.Surjective (MulAction.toPermHom G (f₀.rootSet R)) by
192185
use Polynomial.Gal.galActionHom_injective (f₀.map (algebraMap ℤ ℚ)) ℂ
193-
sorry
186+
change Function.Surjective (MulAction.toPermHom G (f.rootSet ℂ))
187+
intro φ
188+
obtain ⟨g, hg⟩ := this (e.permCongr.symm φ)
189+
use g
190+
ext x
191+
replace hg := Equiv.Perm.ext_iff.mp hg (e.symm x)
192+
apply_fun e at hg
193+
simp [he] at hg
194+
simpa
194195
have h1 : (f₀.map (algebraMap ℤ R)).Splits := by
195196
-- might require monic
196197
sorry
197198
have : IsGaloisGroup G ℚ K := IsGaloisGroup.of_isGalois ℚ K
198199
refine h1.surjective_toPermHom_of_iSup_inertia_eq_top (fun m ↦ ?_)
199-
(NumberField.supr_inertia_eq_top' (𝓞 K) G)
200+
(NumberField.supr_inertia_maximalSpectrum_eq_top (𝓞 K) G)
200201
let := Ideal.Quotient.field m.asIdeal
201202
refine le_trans (f₀.ncard_rootSet_le R) (h (R ⧸ m.asIdeal) ?_)
202203
rw [IsScalarTower.algebraMap_eq ℤ R, ← Polynomial.map_map]

0 commit comments

Comments
 (0)