Documentation

Mathlib.AlgebraicGeometry.PullbackCarrier

Underlying topological space of fibre product of schemes #

Let f : X ⟶ S and g : Y ⟶ S be morphisms of schemes. In this file we describe the underlying topological space of pullback f g, i.e. the fiber product X ×[S] Y.

Main results #

We also give the ranges of pullback.fst, pullback.snd and pullback.map.

structure AlgebraicGeometry.Scheme.Pullback.Triplet {X Y S : Scheme} (f : X S) (g : Y S) :

A Triplet over f : X ⟶ S and g : Y ⟶ S is a triple of points x : X, y : Y, s : S such that f x = s = f y.

  • x : X.toPresheafedSpace

    The point of X.

  • y : Y.toPresheafedSpace

    The point of Y.

  • s : S.toPresheafedSpace

    The point of S below x and y.

  • hx : f.base self.x = self.s
  • hy : g.base self.y = self.s
Instances For
    theorem AlgebraicGeometry.Scheme.Pullback.Triplet.ext {X Y S : Scheme} {f : X S} {g : Y S} {t₁ t₂ : Triplet f g} (ex : t₁.x = t₂.x) (ey : t₁.y = t₂.y) :
    t₁ = t₂
    def AlgebraicGeometry.Scheme.Pullback.Triplet.mk' {X Y S : Scheme} {f : X S} {g : Y S} (x : X.toPresheafedSpace) (y : Y.toPresheafedSpace) (h : f.base x = g.base y) :

    Make a triplet from x : X and y : Y such that f x = g y.

    Equations
    Instances For
      @[simp]
      theorem AlgebraicGeometry.Scheme.Pullback.Triplet.mk'_s {X Y S : Scheme} {f : X S} {g : Y S} (x : X.toPresheafedSpace) (y : Y.toPresheafedSpace) (h : f.base x = g.base y) :
      (mk' x y h).s = g.base y
      @[simp]
      theorem AlgebraicGeometry.Scheme.Pullback.Triplet.mk'_y {X Y S : Scheme} {f : X S} {g : Y S} (x : X.toPresheafedSpace) (y : Y.toPresheafedSpace) (h : f.base x = g.base y) :
      (mk' x y h).y = y
      @[simp]
      theorem AlgebraicGeometry.Scheme.Pullback.Triplet.mk'_x {X Y S : Scheme} {f : X S} {g : Y S} (x : X.toPresheafedSpace) (y : Y.toPresheafedSpace) (h : f.base x = g.base y) :
      (mk' x y h).x = x

      Given x : X and y : Y such that f x = s = g y, this is κ(x) ⊗[κ(s)] κ(y).

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def AlgebraicGeometry.Scheme.Pullback.Triplet.tensorInl {X Y S : Scheme} {f : X S} {g : Y S} (T : Triplet f g) :
        X.residueField T.x T.tensor

        Given x : X and y : Y such that f x = s = g y, this is the canonical map κ(x) ⟶ κ(x) ⊗[κ(s)] κ(y).

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def AlgebraicGeometry.Scheme.Pullback.Triplet.tensorInr {X Y S : Scheme} {f : X S} {g : Y S} (T : Triplet f g) :
          Y.residueField T.y T.tensor

          Given x : X and y : Y such that f x = s = g y, this is the canonical map κ(y) ⟶ κ(x) ⊗[κ(s)] κ(y).

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def AlgebraicGeometry.Scheme.Pullback.Triplet.tensorCongr {X Y S : Scheme} {f : X S} {g : Y S} {T₁ T₂ : Triplet f g} (e : T₁ = T₂) :
            T₁.tensor T₂.tensor

            Given propositionally equal triplets T₁ and T₂ over f and g, the corresponding T₁.tensor and T₂.tensor are isomorphic.

            Equations
            Instances For
              @[simp]
              theorem AlgebraicGeometry.Scheme.Pullback.Triplet.tensorCongr_symm {X Y S : Scheme} {f : X S} {g : Y S} {x y : Triplet f g} (e : x = y) :
              @[simp]
              theorem AlgebraicGeometry.Scheme.Pullback.Triplet.tensorCongr_inv {X Y S : Scheme} {f : X S} {g : Y S} {x y : Triplet f g} (e : x = y) :
              (tensorCongr e).inv = (tensorCongr ).hom
              @[simp]
              theorem AlgebraicGeometry.Scheme.Pullback.Triplet.tensorCongr_trans {X Y S : Scheme} {f : X S} {g : Y S} {x y z : Triplet f g} (e : x = y) (e' : y = z) :
              @[simp]
              theorem AlgebraicGeometry.Scheme.Pullback.Triplet.tensorCongr_trans_hom {X Y S : Scheme} {f : X S} {g : Y S} {x y z : Triplet f g} (e : x = y) (e' : y = z) :

              Given x : X, y : Y and s : S such that f x = s = g y, this is Spec (κ(x) ⊗[κ(s)] κ(y)) ⟶ X ×ₛ Y.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem AlgebraicGeometry.Scheme.Pullback.Triplet.specTensorTo_base_fst {X Y S : Scheme} {f : X S} {g : Y S} (T : Triplet f g) (p : (Spec T.tensor).toPresheafedSpace) :
                (CategoryTheory.Limits.pullback.fst f g).base (T.SpecTensorTo.base p) = T.x
                @[simp]
                theorem AlgebraicGeometry.Scheme.Pullback.Triplet.specTensorTo_base_snd {X Y S : Scheme} {f : X S} {g : Y S} (T : Triplet f g) (p : (Spec T.tensor).toPresheafedSpace) :
                (CategoryTheory.Limits.pullback.snd f g).base (T.SpecTensorTo.base p) = T.y
                @[simp]
                @[simp]
                def AlgebraicGeometry.Scheme.Pullback.Triplet.ofPoint {X Y S : Scheme} {f : X S} {g : Y S} (t : (CategoryTheory.Limits.pullback f g).toPresheafedSpace) :

                Given t : X ×[S] Y, it maps to X and Y with same image in S, yielding a Triplet f g.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem AlgebraicGeometry.Scheme.Pullback.Triplet.ofPoint_y {X Y S : Scheme} {f : X S} {g : Y S} (t : (CategoryTheory.Limits.pullback f g).toPresheafedSpace) :
                  @[simp]
                  theorem AlgebraicGeometry.Scheme.Pullback.Triplet.ofPoint_x {X Y S : Scheme} {f : X S} {g : Y S} (t : (CategoryTheory.Limits.pullback f g).toPresheafedSpace) :
                  @[simp]
                  theorem AlgebraicGeometry.Scheme.Pullback.Triplet.ofPoint_s {X Y S : Scheme} {f : X S} {g : Y S} (t : (CategoryTheory.Limits.pullback f g).toPresheafedSpace) :
                  (ofPoint t).s = f.base ((CategoryTheory.Limits.pullback.fst f g).base t)
                  @[simp]
                  theorem AlgebraicGeometry.Scheme.Pullback.Triplet.ofPoint_SpecTensorTo {X Y S : Scheme} {f : X S} {g : Y S} (T : Triplet f g) (p : (Spec T.tensor).toPresheafedSpace) :
                  ofPoint (T.SpecTensorTo.base p) = T
                  def AlgebraicGeometry.Scheme.Pullback.ofPointTensor {X Y S : Scheme} {f : X S} {g : Y S} (t : (CategoryTheory.Limits.pullback f g).toPresheafedSpace) :
                  (Triplet.ofPoint t).tensor (CategoryTheory.Limits.pullback f g).residueField t

                  Given t : X ×[S] Y with projections to X, Y and S denoted by x, y and s respectively, this is the canonical map κ(x) ⊗[κ(s)] κ(y) ⟶ κ(t).

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def AlgebraicGeometry.Scheme.Pullback.SpecOfPoint {X Y S : Scheme} {f : X S} {g : Y S} (t : (CategoryTheory.Limits.pullback f g).toPresheafedSpace) :
                    (Spec (Triplet.ofPoint t).tensor).toPresheafedSpace

                    If t is a point in X ×[S] Y above (x, y, s), then this is the image of the unique point of Spec κ(s) in Spec κ(x) ⊗[κ(s)] κ(y).

                    Equations
                    Instances For
                      @[simp]
                      theorem AlgebraicGeometry.Scheme.Pullback.SpecTensorTo_SpecOfPoint {X Y S : Scheme} {f : X S} {g : Y S} (t : (CategoryTheory.Limits.pullback f g).toPresheafedSpace) :
                      (Triplet.ofPoint t).SpecTensorTo.base (SpecOfPoint t) = t
                      @[simp]
                      theorem AlgebraicGeometry.Scheme.Pullback.tensorCongr_SpecTensorTo {X Y S : Scheme} {f : X S} {g : Y S} {T T' : Triplet f g} (h : T = T') :
                      CategoryTheory.CategoryStruct.comp (Spec.map (Triplet.tensorCongr h).hom) T.SpecTensorTo = T'.SpecTensorTo
                      theorem AlgebraicGeometry.Scheme.Pullback.Triplet.Spec_ofPointTensor_SpecTensorTo {X Y S : Scheme} {f : X S} {g : Y S} (T : Triplet f g) (p : (Spec T.tensor).toPresheafedSpace) :
                      CategoryTheory.CategoryStruct.comp (Spec.map (Hom.residueFieldMap T.SpecTensorTo p)) (CategoryTheory.CategoryStruct.comp (Spec.map (ofPointTensor (T.SpecTensorTo.base p))) (Spec.map (tensorCongr ).hom)) = (Spec T.tensor).fromSpecResidueField p
                      theorem AlgebraicGeometry.Scheme.Pullback.carrierEquiv_eq_iff {X Y S : Scheme} {f : X S} {g : Y S} {T₁ T₂ : (T : Triplet f g) × (Spec T.tensor).toPresheafedSpace} :
                      T₁ = T₂ ∃ (e : T₁.fst = T₂.fst), (Spec.map (Triplet.tensorCongr e).inv).base T₁.snd = T₂.snd

                      A helper lemma to work with AlgebraicGeometry.Scheme.Pullback.carrierEquiv.

                      def AlgebraicGeometry.Scheme.Pullback.carrierEquiv {X Y S : Scheme} {f : X S} {g : Y S} :
                      (CategoryTheory.Limits.pullback f g).toPresheafedSpace (T : Triplet f g) × (Spec T.tensor).toPresheafedSpace

                      The points of the underlying topological space of X ×[S] Y bijectively correspond to pairs of triples x : X, y : Y, s : S with f x = s = f y and prime ideals of κ(x) ⊗[κ(s)] κ(y).

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem AlgebraicGeometry.Scheme.Pullback.carrierEquiv_symm_fst {X Y S : Scheme} {f : X S} {g : Y S} (T : Triplet f g) (p : (Spec T.tensor).toPresheafedSpace) :
                        (CategoryTheory.Limits.pullback.fst f g).base (carrierEquiv.symm T, p) = T.x
                        @[simp]
                        theorem AlgebraicGeometry.Scheme.Pullback.carrierEquiv_symm_snd {X Y S : Scheme} {f : X S} {g : Y S} (T : Triplet f g) (p : (Spec T.tensor).toPresheafedSpace) :
                        (CategoryTheory.Limits.pullback.snd f g).base (carrierEquiv.symm T, p) = T.y
                        theorem AlgebraicGeometry.Scheme.Pullback.Triplet.exists_preimage {X Y S : Scheme} {f : X S} {g : Y S} (T : Triplet f g) :
                        ∃ (t : (CategoryTheory.Limits.pullback f g).toPresheafedSpace), (CategoryTheory.Limits.pullback.fst f g).base t = T.x (CategoryTheory.Limits.pullback.snd f g).base t = T.y

                        Given a triple (x, y, s) with f x = s = f y there exists t : X ×[S] Y above x and . For the unpacked version without Triplet, see AlgebraicGeometry.Scheme.Pullback.exists_preimage.

                        theorem AlgebraicGeometry.Scheme.Pullback.exists_preimage_pullback {X Y S : Scheme} {f : X S} {g : Y S} (x : X.toPresheafedSpace) (y : Y.toPresheafedSpace) (h : f.base x = g.base y) :
                        ∃ (z : (CategoryTheory.Limits.pullback f g).toPresheafedSpace), (CategoryTheory.Limits.pullback.fst f g).base z = x (CategoryTheory.Limits.pullback.snd f g).base z = y

                        If f : X ⟶ S and g : Y ⟶ S are morphisms of schemes and x : X and y : Y are points such that f x = g y, then there exists z : X ×[S] Y lying above x and y.

                        In other words, the map from the underlying topological space of X ×[S] Y to the fiber product of the underlying topological spaces of X and Y over S is surjective.

                        theorem AlgebraicGeometry.Scheme.Pullback.range_fst {X Y S : Scheme} (f : X S) (g : Y S) :
                        theorem AlgebraicGeometry.Scheme.Pullback.range_snd {X Y S : Scheme} (f : X S) (g : Y S) :
                        theorem AlgebraicGeometry.Scheme.Pullback.range_map {X Y S : Scheme} (f : X S) (g : Y S) {X' Y' S' : Scheme} (f' : X' S') (g' : Y' S') (i₁ : X X') (i₂ : Y Y') (i₃ : S S') (e₁ : CategoryTheory.CategoryStruct.comp f i₃ = CategoryTheory.CategoryStruct.comp i₁ f') (e₂ : CategoryTheory.CategoryStruct.comp g i₃ = CategoryTheory.CategoryStruct.comp i₂ g') [CategoryTheory.Mono i₃] :
                        Set.range (CategoryTheory.Limits.pullback.map f g f' g' i₁ i₂ i₃ e₁ e₂).base = (CategoryTheory.Limits.pullback.fst f' g').base ⁻¹' Set.range i₁.base (CategoryTheory.Limits.pullback.snd f' g').base ⁻¹' Set.range i₂.base