Skip to content

Commit c912f4d

Browse files
committed
feat(AlgebraicGeometry): expand api on topological scheme morphism properties (#13701)
Deduce properties of `MorphismProperty.topologically P` from the respective properties stated in terms of topological spaces.
1 parent 5618bfd commit c912f4d

File tree

2 files changed

+72
-5
lines changed

2 files changed

+72
-5
lines changed

Mathlib/AlgebraicGeometry/Morphisms/Basic.lean

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,19 @@ structure PropertyIsLocalAtTarget (P : MorphismProperty Scheme) : Prop where
321321
(∀ i : 𝒰.J, P (pullback.snd : (𝒰.pullbackCover f).obj i ⟶ 𝒰.obj i)) → P f
322322
#align algebraic_geometry.property_is_local_at_target AlgebraicGeometry.PropertyIsLocalAtTarget
323323

324+
lemma propertyIsLocalAtTarget_of_morphismRestrict (P : MorphismProperty Scheme)
325+
(hP₁ : P.RespectsIso)
326+
(hP₂ : ∀ {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Opens Y.carrier), P f → P (f ∣_ U))
327+
(hP₃ : ∀ {X Y : Scheme.{u}} (f : X ⟶ Y) {ι : Type u} (U : ι → Opens Y.carrier)
328+
(_ : iSup U = ⊤), (∀ i, P (f ∣_ U i)) → P f) :
329+
PropertyIsLocalAtTarget P where
330+
RespectsIso := hP₁
331+
restrict := hP₂
332+
of_openCover {X Y} f 𝒰 h𝒰 := by
333+
apply hP₃ f (fun i : 𝒰.J => Scheme.Hom.opensRange (𝒰.map i)) 𝒰.iSup_opensRange
334+
simp_rw [hP₁.arrow_mk_iso_iff (morphismRestrictOpensRange f _)]
335+
exact h𝒰
336+
324337
theorem AffineTargetMorphismProperty.IsLocal.targetAffineLocallyIsLocal
325338
{P : AffineTargetMorphismProperty} (hP : P.IsLocal) :
326339
PropertyIsLocalAtTarget (targetAffineLocally P) := by
@@ -602,10 +615,69 @@ theorem universallyIsLocalAtTargetOfMorphismRestrict (P : MorphismProperty Schem
602615
exact h𝒰)
603616
#align algebraic_geometry.universally_is_local_at_target_of_morphism_restrict AlgebraicGeometry.universallyIsLocalAtTargetOfMorphismRestrict
604617

618+
theorem morphismRestrict_base {X Y : Scheme} (f : X ⟶ Y) (U : Opens Y.carrier) :
619+
⇑(f ∣_ U).1.base = U.1.restrictPreimage f.1.1 :=
620+
funext fun x => Subtype.ext <| morphismRestrict_base_coe f U x
621+
#align algebraic_geometry.morphism_restrict_base AlgebraicGeometry.morphismRestrict_base
622+
605623
/-- `topologically P` holds for a morphism if the underlying topological map satisfies `P`. -/
606624
def MorphismProperty.topologically
607625
(P : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (_ : α → β), Prop) :
608626
MorphismProperty Scheme.{u} := fun _ _ f => P f.1.base
609627
#align algebraic_geometry.morphism_property.topologically AlgebraicGeometry.MorphismProperty.topologically
610628

629+
variable (P : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (_ : α → β), Prop)
630+
631+
/-- If a property of maps of topological spaces is stable under composition, the induced
632+
morphism property of schemes is stable under composition. -/
633+
lemma MorphismProperty.topologically_isStableUnderComposition
634+
(hP : ∀ {α β γ : Type u} [TopologicalSpace α] [TopologicalSpace β] [TopologicalSpace γ]
635+
(f : α → β) (g : β → γ) (_ : P f) (_ : P g), P (g ∘ f)) :
636+
(MorphismProperty.topologically P).IsStableUnderComposition where
637+
comp_mem {X Y Z} f g hf hg := by
638+
simp only [MorphismProperty.topologically, Scheme.comp_coeBase, TopCat.coe_comp]
639+
exact hP _ _ hf hg
640+
641+
/-- If a property of maps of topological spaces is satisfied by all homeomorphisms,
642+
every isomorphism of schemes satisfies the induced property. -/
643+
lemma MorphismProperty.topologically_iso_le
644+
(hP : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (f : α ≃ₜ β), P f) :
645+
MorphismProperty.isomorphisms Scheme ≤ (MorphismProperty.topologically P) := by
646+
intro X Y e (he : IsIso e)
647+
have : IsIso e := he
648+
exact hP (TopCat.homeoOfIso (asIso e.val.base))
649+
650+
/-- If a property of maps of topological spaces is satisfied by homeomorphisms and is stable
651+
under composition, the induced property on schemes respects isomorphisms. -/
652+
lemma MorphismProperty.topologically_respectsIso
653+
(hP₁ : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (f : α ≃ₜ β), P f)
654+
(hP₂ : ∀ {α β γ : Type u} [TopologicalSpace α] [TopologicalSpace β] [TopologicalSpace γ]
655+
(f : α → β) (g : β → γ) (_ : P f) (_ : P g), P (g ∘ f)) :
656+
(MorphismProperty.topologically P).RespectsIso :=
657+
have : (MorphismProperty.topologically P).IsStableUnderComposition :=
658+
topologically_isStableUnderComposition P hP₂
659+
MorphismProperty.respectsIso_of_isStableUnderComposition (topologically_iso_le P hP₁)
660+
661+
/-- To check that a topologically defined morphism property is local at the target,
662+
we may check the corresponding properties on topological spaces. -/
663+
lemma MorphismProperty.topologically_propertyIsLocalAtTarget
664+
(hP₁ : (MorphismProperty.topologically P).RespectsIso)
665+
(hP₂ : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (f : α → β) (s : Set β),
666+
P f → P (s.restrictPreimage f))
667+
(hP₃ : ∀ {α β : Type u} [TopologicalSpace α] [TopologicalSpace β] (f : α → β) {ι : Type u}
668+
(U : ι → TopologicalSpace.Opens β) (_ : iSup U = ⊤) (_ : Continuous f),
669+
(∀ i, P ((U i).carrier.restrictPreimage f)) → P f) :
670+
PropertyIsLocalAtTarget (MorphismProperty.topologically P) := by
671+
apply propertyIsLocalAtTarget_of_morphismRestrict
672+
· exact hP₁
673+
· intro X Y f U hf
674+
simp_rw [MorphismProperty.topologically, morphismRestrict_base]
675+
exact hP₂ f.val.base U.carrier hf
676+
· intro X Y f ι U hU hf
677+
apply hP₃ f.val.base U hU
678+
· exact f.val.base.continuous
679+
· intro i
680+
rw [← morphismRestrict_base]
681+
exact hf i
682+
611683
end AlgebraicGeometry

Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,6 @@ instance universallyClosedSnd {X Y Z : Scheme} (f : X ⟶ Z) (g : Y ⟶ Z) [hf :
8585
universallyClosed_stableUnderBaseChange.snd f g hf
8686
#align algebraic_geometry.universally_closed_snd AlgebraicGeometry.universallyClosedSnd
8787

88-
theorem morphismRestrict_base {X Y : Scheme} (f : X ⟶ Y) (U : Opens Y.carrier) :
89-
⇑(f ∣_ U).1.base = U.1.restrictPreimage f.1.1 :=
90-
funext fun x => Subtype.ext <| morphismRestrict_base_coe f U x
91-
#align algebraic_geometry.morphism_restrict_base AlgebraicGeometry.morphismRestrict_base
92-
9388
theorem universallyClosed_is_local_at_target : PropertyIsLocalAtTarget @UniversallyClosed := by
9489
rw [universallyClosed_eq]
9590
apply universallyIsLocalAtTargetOfMorphismRestrict

0 commit comments

Comments
 (0)