Skip to content

Commit 5efecf1

Browse files
committed
progress
1 parent cced85e commit 5efecf1

1 file changed

Lines changed: 14 additions & 18 deletions

File tree

Mathlib/RingTheory/Polynomial/Morse.lean

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ open NumberField
168168

169169
open scoped Pointwise
170170

171-
#check IsPrimitive.irreducible_iff_irreducible_map_fraction_map
171+
variable (f : ℚ[X])
172172

173173
theorem tada' (f₀ : ℤ[X]) (hf₀ : Irreducible f₀) (hf₀' : f₀.Monic)
174174
(h : ∀ (F : Type) [Field F], (f₀.map (algebraMap ℤ F)).Splits →
@@ -187,16 +187,16 @@ theorem tada' (f₀ : ℤ[X]) (hf₀ : Irreducible f₀) (hf₀' : f₀.Monic)
187187
let R := 𝓞 K
188188
let := Ring.toIntAlgebra R
189189
have foo := @aeval_algebraMap_apply (R := ℤ) (A := R) K _ _ _ _ _ _ (IsScalarTower.of_algebraMap_eq' rfl)
190+
have hoof : (f₀.map (algebraMap ℤ R)).Splits := by
191+
-- requires monic
192+
sorry
190193
let G := f.Gal
191194
have := Gal.galAction_isPretransitive f ℂ hf
192-
have : Set.BijOn v (f₀.rootSet R) (f.rootSet K) := by
195+
have : Set.BijOn (algebraMap R K) (f₀.rootSet R) (f.rootSet K) := by
193196
rw [rootSet, rootSet, aroots_map, ← rootSet, ← rootSet] -- rootSet_map lemma
194-
have := Polynomial.Splits.image_rootSet_algebraMap (f := f₀) (A := R) (B := K) ?_ v
195-
196-
rw [← Polynomial.Splits.image_rootSet (f := f₀) ?_ v] -- switch to algebraMap version
197-
suffices Set.InjOn (algebraMap R K) ∧
198-
refine ⟨?_, ?_⟩
199-
sorry
197+
rw [← @hoof.image_rootSet_algebraMap ℤ R K _ _ _ _ _ _ _ f₀ _ _ ?_]
198+
· exact (FaithfulSMul.algebraMap_injective R K).bijOn_image
199+
· exact IsScalarTower.of_algebraMap_eq' rfl
200200
have hφ : Set.MapsTo (algebraMap R K) (f₀.rootSet R) (f.rootSet K) := by
201201
intro x hx
202202
rw [hf'.mem_rootSet, aeval_map_algebraMap, foo, aeval_eq_zero_of_mem_rootSet hx, map_zero]
@@ -211,12 +211,11 @@ theorem tada' (f₀ : ℤ[X]) (hf₀ : Irreducible f₀) (hf₀' : f₀.Monic)
211211
refine ⟨y, ?_, rfl⟩
212212
rw [mem_rootSet, and_iff_right hf₀.ne_zero]
213213
simpa using (foo y f₀).symm.trans h0
214-
let e₀ := Equiv.ofBijective hφ.restrict hφ2
215-
let e₁ : f₀.rootSet R ≃ f.rootSet K := by
216-
217-
sorry
214+
let e₀ : f₀.rootSet R ≃ f.rootSet K := Equiv.ofBijective hφ.restrict hφ2
215+
let e₁ : f₀.rootSet R ≃ f.rootSet K := e₀.trans (Gal.rootsEquivRoots f K)
218216
have he₁ (g : G) (x : f₀.rootSet R) : e₁ (g • x) = g • e₁ x := by
219-
sorry
217+
erw [Gal.smul_def f K g ((Gal.rootsEquivRoots f K) (e₀ x)), symm_apply_apply]
218+
rfl
220219
let e₂ : f.rootSet K ≃ f.rootSet ℂ := Gal.rootsEquivRoots' f K ℂ
221220
have he₂ (g : G) (x : f.rootSet K) : e₂ (g • x) = g • e₂ x :=
222221
(Gal.smul_rootsEquivRoots' f K ℂ g x).symm
@@ -237,16 +236,13 @@ theorem tada' (f₀ : ℤ[X]) (hf₀ : Irreducible f₀) (hf₀' : f₀.Monic)
237236
apply_fun e at hg
238237
simp [he] at hg
239238
simpa
240-
have h1 : (f₀.map (algebraMap ℤ R)).Splits := by
241-
-- might require monic
242-
sorry
243239
have : IsGaloisGroup G ℚ K := IsGaloisGroup.of_isGalois ℚ K
244-
refine h1.surjective_toPermHom_of_iSup_inertia_eq_top (fun m ↦ ?_)
240+
refine hoof.surjective_toPermHom_of_iSup_inertia_eq_top (fun m ↦ ?_)
245241
(NumberField.supr_inertia_maximalSpectrum_eq_top (𝓞 K) G)
246242
let := Ideal.Quotient.field m.asIdeal
247243
refine le_trans (f₀.ncard_rootSet_le R) (h (R ⧸ m.asIdeal) ?_)
248244
rw [IsScalarTower.algebraMap_eq ℤ R, ← Polynomial.map_map]
249-
exact h1.map _
245+
exact hoof.map _
250246

251247
-- theorem tada'''' (f₀ : ℤ[X]) (hf₀ : Monic f₀) (hf₀' : Irreducible f₀)
252248
-- (h : ∀ (F : Type) [Field F], (f₀.map (algebraMap ℤ F)).Splits →

0 commit comments

Comments
 (0)