(Co)Limits of Schemes #
We construct various limits and colimits in the category of schemes.
- The existence of fibred products was shown in
Mathlib/AlgebraicGeometry/Pullbacks.lean
. Spec ℤ
is the terminal object.- The preceding two results imply that
Scheme
has all finite limits. - The empty scheme is the (strict) initial object.
Todo #
- Coproducts exists (and the forgetful functors preserve them).
noncomputable def
AlgebraicGeometry.specZIsTerminal :
CategoryTheory.Limits.IsTerminal (AlgebraicGeometry.Scheme.Spec.toPrefunctor.obj (Opposite.op (CommRingCat.of ℤ)))
Spec ℤ
is the terminal object in the category of schemes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The map from the empty scheme.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
AlgebraicGeometry.Scheme.emptyTo_val_base_apply
(X : AlgebraicGeometry.Scheme)
(x : ↑↑∅.toPresheafedSpace)
:
(AlgebraicGeometry.Scheme.emptyTo X).val.base x = PEmpty.elim x
@[simp]
theorem
AlgebraicGeometry.Scheme.emptyTo_val_c_app
(X : AlgebraicGeometry.Scheme)
(U : (TopologicalSpace.Opens ↑↑X.toPresheafedSpace)ᵒᵖ)
:
(AlgebraicGeometry.Scheme.emptyTo X).val.c.app U = CategoryTheory.Limits.IsTerminal.from CommRingCat.punitIsTerminal (X.presheaf.toPrefunctor.obj U)
theorem
AlgebraicGeometry.Scheme.empty_ext
{X : AlgebraicGeometry.Scheme}
(f : ∅ ⟶ X)
(g : ∅ ⟶ X)
:
f = g
noncomputable instance
AlgebraicGeometry.Scheme.hom_unique_of_empty_source
(X : AlgebraicGeometry.Scheme)
:
Equations
- AlgebraicGeometry.Scheme.hom_unique_of_empty_source X = { toInhabited := { default := AlgebraicGeometry.Scheme.emptyTo X }, uniq := (_ : ∀ (x : ∅ ⟶ X), x = default) }
The empty scheme is the initial object in the category of schemes.
Instances For
noncomputable instance
AlgebraicGeometry.spec_punit_isEmpty :
IsEmpty
↑↑(AlgebraicGeometry.Scheme.Spec.toPrefunctor.obj (Opposite.op (CommRingCat.of PUnit.{u_1 + 1} ))).toPresheafedSpace
Equations
noncomputable instance
AlgebraicGeometry.isOpenImmersion_of_isEmpty
{X : AlgebraicGeometry.Scheme}
{Y : AlgebraicGeometry.Scheme}
(f : X ⟶ Y)
[IsEmpty ↑↑X.toPresheafedSpace]
:
Equations
- (_ : AlgebraicGeometry.IsOpenImmersion f) = (_ : AlgebraicGeometry.IsOpenImmersion f)
noncomputable instance
AlgebraicGeometry.isIso_of_isEmpty
{X : AlgebraicGeometry.Scheme}
{Y : AlgebraicGeometry.Scheme}
(f : X ⟶ Y)
[IsEmpty ↑↑Y.toPresheafedSpace]
:
Equations
- (_ : CategoryTheory.IsIso f) = (_ : CategoryTheory.IsIso f)
noncomputable def
AlgebraicGeometry.isInitialOfIsEmpty
{X : AlgebraicGeometry.Scheme}
[IsEmpty ↑↑X.toPresheafedSpace]
:
A scheme is initial if its underlying space is empty .
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
AlgebraicGeometry.specPunitIsInitial :
CategoryTheory.Limits.IsInitial
(AlgebraicGeometry.Scheme.Spec.toPrefunctor.obj (Opposite.op (CommRingCat.of PUnit.{u_1 + 1} )))
Spec 0
is the initial object in the category of schemes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable instance
AlgebraicGeometry.isAffine_of_isEmpty
{X : AlgebraicGeometry.Scheme}
[IsEmpty ↑↑X.toPresheafedSpace]
:
Equations
- (_ : AlgebraicGeometry.IsAffine X) = (_ : AlgebraicGeometry.IsAffine X)
noncomputable instance
AlgebraicGeometry.initial_isEmpty :
IsEmpty ↑↑(⊥_ AlgebraicGeometry.Scheme).toLocallyRingedSpace.toSheafedSpace.toPresheafedSpace
Equations
- AlgebraicGeometry.initial_isEmpty = (_ : IsEmpty ↑↑(⊥_ AlgebraicGeometry.Scheme).toLocallyRingedSpace.toSheafedSpace.toPresheafedSpace)