@@ -338,15 +338,6 @@ theorem IsPreirreducible.open_subset {U : Set X} (ht : IsPreirreducible t) (hU :
338338theorem IsPreirreducible.interior (ht : IsPreirreducible t) : IsPreirreducible (interior t) :=
339339 ht.open_subset isOpen_interior interior_subset
340340
341- theorem IsPreirreducible.preimage (ht : IsPreirreducible t) {f : Y → X}
342- (hf : IsOpenEmbedding f) : IsPreirreducible (f ⁻¹' t) := by
343- rintro U V hU hV ⟨x, hx, hx'⟩ ⟨y, hy, hy'⟩
344- obtain ⟨_, h₁, ⟨y, h₂, rfl⟩, ⟨y', h₃, h₄⟩⟩ :=
345- ht _ _ (hf.isOpenMap _ hU) (hf.isOpenMap _ hV) ⟨f x, hx, Set.mem_image_of_mem f hx'⟩
346- ⟨f y, hy, Set.mem_image_of_mem f hy'⟩
347- cases hf.injective h₄
348- exact ⟨y, h₁, h₂, h₃⟩
349-
350341section
351342
352343open Set.Notation
@@ -371,27 +362,45 @@ lemma IsPreirreducible.preimage_of_isPreirreducible_fiber
371362 refine hV.preimage_of_dense_isPreirreducible_fiber f hf' ?_
372363 simp [hf'', subset_closure]
373364
365+ lemma IsPreirreducible.preimage (ht : IsPreirreducible t) {f : Y → X} (hf : IsOpenEmbedding f) :
366+ IsPreirreducible (f ⁻¹' t) :=
367+ ht.preimage_of_isPreirreducible_fiber f hf.isOpenMap
368+ fun _ ↦ (subsingleton_singleton.preimage hf.injective).isPreirreducible
369+
370+ lemma IsIrreducible.preimage_of_isPreirreducible_fiber (ht : IsIrreducible t)
371+ (f : Y → X) (hf₂ : IsOpenMap f) (hf₃ : ∀ x, IsPreirreducible (f ⁻¹' {x}))
372+ (h : (t ∩ Set.range f).Nonempty) :
373+ IsIrreducible (f ⁻¹' t) := by
374+ refine ⟨?_, IsPreirreducible.preimage_of_isPreirreducible_fiber ht.2 f hf₂ hf₃⟩
375+ obtain ⟨-, hx, x, rfl⟩ := h
376+ exact ⟨x, hx⟩
377+
378+ lemma IsIrreducible.preimage (ht : IsIrreducible t) {f : Y → X}
379+ (hf : IsOpenEmbedding f) (h : (t ∩ Set.range f).Nonempty) : IsIrreducible (f ⁻¹' t) := by
380+ refine ht.preimage_of_isPreirreducible_fiber f hf.isOpenMap
381+ (fun _ ↦ (subsingleton_singleton.preimage hf.injective).isPreirreducible) h
382+
383+ lemma preimage_mem_irreducibleComponents_of_isPreirreducible_fiber
384+ (ht : t ∈ irreducibleComponents X) {f : Y → X} (hf₁ : Continuous f) (hf₂ : IsOpenMap f)
385+ (hf₃ : ∀ x, IsPreirreducible (f ⁻¹'{x})) (h : (t ∩ range f).Nonempty) :
386+ f ⁻¹' t ∈ irreducibleComponents Y := by
387+ refine ⟨ht.1 .preimage_of_isPreirreducible_fiber f hf₂ hf₃ h, fun u hu htu ↦ image_subset_iff.mp
388+ (subset_closure.trans (ht.2 (hu.image f hf₁.continuousOn).closure ?_))⟩
389+ suffices t ≤ closure (f '' (f ⁻¹' t)) from this.trans (closure_mono (image_mono htu))
390+ rw [image_preimage_eq_inter_range]
391+ exact subset_closure_inter_of_isPreirreducible_of_isOpen ht.1 .2 hf₂.isOpen_range h
392+
393+ lemma preimage_mem_irreducibleComponents (ht : t ∈ irreducibleComponents X) {f : Y → X}
394+ (hf : IsOpenEmbedding f) (h : (t ∩ Set.range f).Nonempty) :
395+ f ⁻¹' t ∈ irreducibleComponents Y := by
396+ refine preimage_mem_irreducibleComponents_of_isPreirreducible_fiber ht hf.continuous hf.isOpenMap
397+ (fun _ ↦ (subsingleton_singleton.preimage hf.injective).isPreirreducible) h
398+
374399variable (f : X → Y) (hf₁ : Continuous f) (hf₂ : IsOpenMap f)
375400variable (hf₃ : ∀ x, IsPreirreducible (f ⁻¹' {x})) (hf₄ : Function.Surjective f)
376401
377402include hf₁ hf₂ hf₃ hf₄
378403
379- lemma preimage_mem_irreducibleComponents_of_isPreirreducible_fiber
380- {V : Set Y} (hV : V ∈ irreducibleComponents Y) :
381- f ⁻¹' V ∈ irreducibleComponents X := by
382- obtain ⟨Z, hZ, hWZ, H⟩ :=
383- exists_preirreducible _ (hV.1 .2 .preimage_of_isPreirreducible_fiber f hf₂ hf₃)
384- have hZ' : IsIrreducible Z := by
385- obtain ⟨x, hx⟩ := hV.1 .1
386- obtain ⟨x, rfl⟩ := hf₄ x
387- exact ⟨⟨_, hWZ hx⟩, hZ⟩
388- have hWZ' : f ⁻¹' V = Z := by
389- refine hWZ.antisymm (Set.image_subset_iff.mp ?_)
390- exact hV.2 (IsIrreducible.image hZ' f hf₁.continuousOn)
391- ((Set.image_preimage_eq V hf₄).symm.trans_le (Set.image_mono hWZ))
392- rw [hWZ']
393- exact ⟨hZ', fun s hs hs' ↦ (H s hs.2 hs').le⟩
394-
395404lemma image_mem_irreducibleComponents_of_isPreirreducible_fiber
396405 {V : Set X} (hV : V ∈ irreducibleComponents X) :
397406 f '' V ∈ irreducibleComponents Y :=
@@ -409,7 +418,8 @@ def irreducibleComponentsEquivOfIsPreirreducibleFiber :
409418 invFun W := ⟨f '' W.1 ,
410419 image_mem_irreducibleComponents_of_isPreirreducible_fiber f hf₁ hf₂ hf₃ hf₄ W.2 ⟩
411420 toFun W := ⟨f ⁻¹' W.1 ,
412- preimage_mem_irreducibleComponents_of_isPreirreducible_fiber f hf₁ hf₂ hf₃ hf₄ W.2 ⟩
421+ preimage_mem_irreducibleComponents_of_isPreirreducible_fiber W.2 hf₁ hf₂ hf₃
422+ (by simp [hf₄.range_eq, W.2 .1 .1 ])⟩
413423 right_inv W := Subtype.ext <| by
414424 refine (Set.subset_preimage_image _ _).antisymm' (W.2 .2 ?_ (Set.subset_preimage_image _ _))
415425 refine ⟨?_, (W.2 .1 .image _ hf₁.continuousOn).2 .preimage_of_isPreirreducible_fiber _ hf₂ hf₃⟩
0 commit comments