File: Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean

full_name: AlgebraicGeometry.IsClosedImmersion
code: /-- A morphism of schemes `X ⟶ Y` is a closed immersion if the underlying
topological map is a closed embedding and the induced stalk maps are surjective. -/
@[mk_iff]
class IsClosedImmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_closed : ClosedEmbedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
goal: Prop

full_name: AlgebraicGeometry.IsClosedImmersion.surj_on_stalks
code: /-- A morphism of schemes `X ⟶ Y` is a closed immersion if the underlying
topological map is a closed embedding and the induced stalk maps are surjective. -/
@[mk_iff]
class IsClosedImmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_closed : ClosedEmbedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
goal: Function.Surjective ⇑(AlgebraicGeometry.Scheme.Hom.stalkMap f x)

full_name: AlgebraicGeometry.IsClosedImmersion.base_closed
code: /-- A morphism of schemes `X ⟶ Y` is a closed immersion if the underlying
topological map is a closed embedding and the induced stalk maps are surjective. -/
@[mk_iff]
class IsClosedImmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_closed : ClosedEmbedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
goal: ClosedEmbedding ⇑f.val.base

full_name: AlgebraicGeometry.isClosedImmersion_iff
code: /-- A morphism of schemes `X ⟶ Y` is a closed immersion if the underlying
topological map is a closed embedding and the induced stalk maps are surjective. -/
@[mk_iff]
class IsClosedImmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_closed : ClosedEmbedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
goal: AlgebraicGeometry.IsClosedImmersion f ↔
  ClosedEmbedding ⇑f.val.base ∧
    ∀ (x : ↑↑X.toPresheafedSpace), Function.Surjective ⇑(AlgebraicGeometry.Scheme.Hom.stalkMap f x)

full_name: AlgebraicGeometry.IsClosedImmersion.closedEmbedding
code: lemma closedEmbedding {X Y : Scheme} (f : X ⟶ Y)
    [IsClosedImmersion f] : ClosedEmbedding f.1.base 
goal: ClosedEmbedding ⇑f.val.base

full_name: AlgebraicGeometry.IsClosedImmersion.eq_inf
code: lemma eq_inf : @IsClosedImmersion = (topologically ClosedEmbedding) ⊓
    stalkwise (fun f ↦ Function.Surjective f) 
goal: @AlgebraicGeometry.IsClosedImmersion =
  (AlgebraicGeometry.topologically fun {α β} [TopologicalSpace α] [TopologicalSpace β] => ClosedEmbedding) ⊓
    AlgebraicGeometry.stalkwise fun {R S} [CommRing R] [CommRing S] f => Function.Surjective ⇑f

full_name: AlgebraicGeometry.IsClosedImmersion.iff_isPreimmersion
code: lemma iff_isPreimmersion {X Y : Scheme} {f : X ⟶ Y} :
    IsClosedImmersion f ↔ IsPreimmersion f ∧ IsClosed (Set.range f.1.base) 
goal: AlgebraicGeometry.IsClosedImmersion f ↔ AlgebraicGeometry.IsPreimmersion f ∧ IsClosed (Set.range ⇑f.val.base)

full_name: AlgebraicGeometry.IsClosedImmersion.of_isPreimmersion
code: lemma of_isPreimmersion {X Y : Scheme} (f : X ⟶ Y) [IsPreimmersion f]
    (hf : IsClosed (Set.range f.1.base)) : IsClosedImmersion f 
goal: AlgebraicGeometry.IsClosedImmersion f

full_name: AlgebraicGeometry.IsClosedImmersion.instIsPreimmersion
code: instance (priority := 900) {X Y : Scheme} (f : X ⟶ Y) [IsClosedImmersion f] : IsPreimmersion f 
goal: AlgebraicGeometry.IsPreimmersion f

full_name: AlgebraicGeometry.IsClosedImmersion.instOfIsIsoScheme
code: /-- Isomorphisms are closed immersions. -/
instance {X Y : Scheme} (f : X ⟶ Y) [IsIso f] : IsClosedImmersion f 
goal: AlgebraicGeometry.IsClosedImmersion f

full_name: AlgebraicGeometry.IsClosedImmersion.instIsMultiplicativeScheme
code: instance : MorphismProperty.IsMultiplicative @IsClosedImmersion 
goal: CategoryTheory.MorphismProperty.IsMultiplicative @AlgebraicGeometry.IsClosedImmersion

full_name: AlgebraicGeometry.IsClosedImmersion.comp
code: /-- Composition of closed immersions is a closed immersion. -/
instance comp {X Y Z : Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [IsClosedImmersion f]
    [IsClosedImmersion g] : IsClosedImmersion (f ≫ g) 
goal: AlgebraicGeometry.IsClosedImmersion (f ≫ g)

full_name: AlgebraicGeometry.IsClosedImmersion.respectsIso
code: /-- Composition with an isomorphism preserves closed immersions. -/
instance respectsIso : MorphismProperty.RespectsIso @IsClosedImmersion 
goal: CategoryTheory.MorphismProperty.RespectsIso @AlgebraicGeometry.IsClosedImmersion

full_name: AlgebraicGeometry.IsClosedImmersion.spec_of_surjective
code: /-- Given two commutative rings `R S : CommRingCat` and a surjective morphism
`f : R ⟶ S`, the induced scheme morphism `specObj S ⟶ specObj R` is a
closed immersion. -/
theorem spec_of_surjective {R S : CommRingCat} (f : R ⟶ S) (h : Function.Surjective f) :
    IsClosedImmersion (Spec.map f) 
goal: AlgebraicGeometry.IsClosedImmersion (AlgebraicGeometry.Spec.map f)

full_name: AlgebraicGeometry.IsClosedImmersion.spec_of_quotient_mk
code: /-- For any ideal `I` in a commutative ring `R`, the quotient map `specObj R ⟶ specObj (R ⧸ I)`
is a closed immersion. -/
instance spec_of_quotient_mk {R : CommRingCat.{u}} (I : Ideal R) :
    IsClosedImmersion (Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I))) 
goal: AlgebraicGeometry.IsClosedImmersion (AlgebraicGeometry.Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I)))

full_name: AlgebraicGeometry.IsClosedImmersion.of_surjective_of_isAffine
code: /-- Any morphism between affine schemes that is surjective on global sections is a
closed immersion. -/
lemma of_surjective_of_isAffine {X Y : Scheme} [IsAffine X] [IsAffine Y] (f : X ⟶ Y)
    (h : Function.Surjective (Scheme.Γ.map f.op)) : IsClosedImmersion f 
goal: AlgebraicGeometry.IsClosedImmersion f

full_name: AlgebraicGeometry.IsClosedImmersion.of_comp
code: /-- If `f ≫ g` is a closed immersion, then `f` is a closed immersion. -/
theorem of_comp {X Y Z : Scheme} (f : X ⟶ Y) (g : Y ⟶ Z) [IsClosedImmersion g]
    [IsClosedImmersion (f ≫ g)] : IsClosedImmersion f 
goal: AlgebraicGeometry.IsClosedImmersion f

full_name: AlgebraicGeometry.IsClosedImmersion.instQuasiCompact
code: instance {X Y : Scheme} (f : X ⟶ Y) [IsClosedImmersion f] : QuasiCompact f 
goal: AlgebraicGeometry.QuasiCompact f

full_name: AlgebraicGeometry.IsClosedImmersion.isLocalAtTarget
code: /-- Being a closed immersion is local at the target. -/
instance IsClosedImmersion.isLocalAtTarget : IsLocalAtTarget @IsClosedImmersion 
goal: AlgebraicGeometry.IsLocalAtTarget @AlgebraicGeometry.IsClosedImmersion