Documentation

Mathlib.AlgebraicGeometry.Cover.MorphismProperty

Covers of schemes #

This file provides the basic API for covers of schemes. A cover of a scheme X with respect to a morphism property P is a jointly surjective indexed family of scheme morphisms with target X all satisfying P.

Implementation details #

The definition on the pullback of a cover along a morphism depends on results that are developed later in the import tree. Hence in this file, they have additional assumptions that will be automatically satisfied in later files. The motivation here is that we already know that these assumptions are satisfied for open immersions and hence the cover API for open immersions can be used to deduce these assumptions in the general case.

A coverage K on Scheme is called jointly surjective if every covering family in K is jointly surjective.

Instances
    @[reducible, inline]

    A cover of X in the coverage K is a 0-hypercover for K.

    Equations
    Instances For
      theorem AlgebraicGeometry.Scheme.Cover.exists_eq {K : CategoryTheory.Precoverage Scheme} {X : Scheme} [JointlySurjective K] (𝒰 : Cover K X) (x : X) :
      ∃ (i : 𝒰.I₀) (y : (𝒰.X i)), (CategoryTheory.ConcreteCategory.hom (𝒰.f i).base) y = x

      A choice of an index i such that x is in the range of 𝒰.f i.

      Equations
      Instances For
        def AlgebraicGeometry.Scheme.Cover.mkOfCovers {X : Scheme} {P : CategoryTheory.MorphismProperty Scheme} (J : Type u_1) (obj : JScheme) (map : (j : J) → obj j X) (covers : ∀ (x : X), ∃ (j : J) (y : (obj j)), (CategoryTheory.ConcreteCategory.hom (map j).base) y = x) (map_prop : ∀ (j : J), P (map j) := by infer_instance) :

        Given a family of schemes with morphisms to X satisfying P that jointly cover X, Cover.mkOfCovers is an associated P-cover of X.

        Equations
        Instances For
          @[simp]
          theorem AlgebraicGeometry.Scheme.Cover.mkOfCovers_X {X : Scheme} {P : CategoryTheory.MorphismProperty Scheme} (J : Type u_1) (obj : JScheme) (map : (j : J) → obj j X) (covers : ∀ (x : X), ∃ (j : J) (y : (obj j)), (CategoryTheory.ConcreteCategory.hom (map j).base) y = x) (map_prop : ∀ (j : J), P (map j) := by infer_instance) (a✝ : J) :
          (mkOfCovers J obj map covers map_prop).X a✝ = obj a✝
          @[simp]
          theorem AlgebraicGeometry.Scheme.Cover.mkOfCovers_f {X : Scheme} {P : CategoryTheory.MorphismProperty Scheme} (J : Type u_1) (obj : JScheme) (map : (j : J) → obj j X) (covers : ∀ (x : X), ∃ (j : J) (y : (obj j)), (CategoryTheory.ConcreteCategory.hom (map j).base) y = x) (map_prop : ∀ (j : J), P (map j) := by infer_instance) (j : J) :
          (mkOfCovers J obj map covers map_prop).f j = map j
          @[simp]
          theorem AlgebraicGeometry.Scheme.Cover.mkOfCovers_I₀ {X : Scheme} {P : CategoryTheory.MorphismProperty Scheme} (J : Type u_1) (obj : JScheme) (map : (j : J) → obj j X) (covers : ∀ (x : X), ∃ (j : J) (y : (obj j)), (CategoryTheory.ConcreteCategory.hom (map j).base) y = x) (map_prop : ∀ (j : J), P (map j) := by infer_instance) :
          (mkOfCovers J obj map covers map_prop).I₀ = J

          Turn a K-cover into a Q-cover by showing that the components satisfy Q.

          Equations
          Instances For
            def AlgebraicGeometry.Scheme.Cover.copy {P : CategoryTheory.MorphismProperty Scheme} [P.RespectsIso] {X : Scheme} (𝒰 : Cover (precoverage P) X) (J : Type u_1) (obj : JScheme) (map : (i : J) → obj i X) (e₁ : J 𝒰.I₀) (e₂ : (i : J) → obj i 𝒰.X (e₁ i)) (h : ∀ (i : J), map i = CategoryTheory.CategoryStruct.comp (e₂ i).hom (𝒰.f (e₁ i))) :

            We construct a cover from another, by providing the needed fields and showing that the provided fields are isomorphic with the original cover.

            Equations
            • 𝒰.copy J obj map e₁ e₂ h = { I₀ := J, X := obj, f := map, mem₀ := }
            Instances For
              @[simp]
              theorem AlgebraicGeometry.Scheme.Cover.copy_I₀ {P : CategoryTheory.MorphismProperty Scheme} [P.RespectsIso] {X : Scheme} (𝒰 : Cover (precoverage P) X) (J : Type u_1) (obj : JScheme) (map : (i : J) → obj i X) (e₁ : J 𝒰.I₀) (e₂ : (i : J) → obj i 𝒰.X (e₁ i)) (h : ∀ (i : J), map i = CategoryTheory.CategoryStruct.comp (e₂ i).hom (𝒰.f (e₁ i))) :
              (𝒰.copy J obj map e₁ e₂ h).I₀ = J
              @[simp]
              theorem AlgebraicGeometry.Scheme.Cover.copy_f {P : CategoryTheory.MorphismProperty Scheme} [P.RespectsIso] {X : Scheme} (𝒰 : Cover (precoverage P) X) (J : Type u_1) (obj : JScheme) (map : (i : J) → obj i X) (e₁ : J 𝒰.I₀) (e₂ : (i : J) → obj i 𝒰.X (e₁ i)) (h : ∀ (i : J), map i = CategoryTheory.CategoryStruct.comp (e₂ i).hom (𝒰.f (e₁ i))) (i : J) :
              (𝒰.copy J obj map e₁ e₂ h).f i = map i
              @[simp]
              theorem AlgebraicGeometry.Scheme.Cover.copy_X {P : CategoryTheory.MorphismProperty Scheme} [P.RespectsIso] {X : Scheme} (𝒰 : Cover (precoverage P) X) (J : Type u_1) (obj : JScheme) (map : (i : J) → obj i X) (e₁ : J 𝒰.I₀) (e₂ : (i : J) → obj i 𝒰.X (e₁ i)) (h : ∀ (i : J), map i = CategoryTheory.CategoryStruct.comp (e₂ i).hom (𝒰.f (e₁ i))) (a✝ : J) :
              (𝒰.copy J obj map e₁ e₂ h).X a✝ = obj a✝

              The pushforward of a cover along an isomorphism.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def AlgebraicGeometry.Scheme.Cover.add {P : CategoryTheory.MorphismProperty Scheme} {X Y : Scheme} (𝒰 : Cover (precoverage P) X) (f : Y X) (hf : P f := by infer_instance) :

                Adding map satisfying P into a cover gives another cover.

                Equations
                • 𝒰.add f hf = { toPreZeroHypercover := 𝒰.add f, mem₀ := }
                Instances For
                  @[simp]
                  theorem AlgebraicGeometry.Scheme.Cover.add_toPreZeroHypercover {P : CategoryTheory.MorphismProperty Scheme} {X Y : Scheme} (𝒰 : Cover (precoverage P) X) (f : Y X) (hf : P f := by infer_instance) :
                  (𝒰.add f hf).toPreZeroHypercover = 𝒰.add f
                  @[deprecated CategoryTheory.Precoverage.ZeroHypercover.pullback₁ (since := "2025-10-02")]

                  Alias of CategoryTheory.Precoverage.ZeroHypercover.pullback₁.


                  Pullback of a 0-hypercover along a morphism. The components are pullback f (E.f i).

                  Equations
                  Instances For

                    The family of morphisms from the pullback cover to the original cover.

                    Equations
                    Instances For
                      @[deprecated CategoryTheory.Precoverage.ZeroHypercover.pullback₂ (since := "2025-10-02")]

                      Alias of CategoryTheory.Precoverage.ZeroHypercover.pullback₂.


                      Pullback of a 0-hypercover along a morphism. The components are pullback (E.f i) f.

                      Equations
                      Instances For

                        An affine cover of X consists of a jointly surjective family of maps into X from spectra of rings.

                        Note: The map_prop field is equipped with a default argument by infer_instance. In general this causes worse error messages, but in practice P is mostly defined via class.

                        • I₀ : Type v

                          index set of an affine cover of a scheme S

                        • X (j : self.I₀) : CommRingCat

                          the ring associated to a component of an affine cover

                        • f (j : self.I₀) : Spec (self.X j) S

                          the components map to S

                        • idx (x : S) : self.I₀

                          given a point of x : S, idx x is the index of the component which contains x

                        • covers (x : S) : x Set.range (CategoryTheory.ConcreteCategory.hom (self.f (self.idx x)).base)

                          the components cover S

                        • map_prop (j : self.I₀) : P (self.f j)

                          the component maps satisfy P

                        Instances For
                          @[deprecated AlgebraicGeometry.Scheme.AffineCover.I₀ (since := "2025-09-19")]

                          Alias of AlgebraicGeometry.Scheme.AffineCover.I₀.


                          index set of an affine cover of a scheme S

                          Equations
                          Instances For
                            @[deprecated AlgebraicGeometry.Scheme.AffineCover.X (since := "2025-09-19")]

                            Alias of AlgebraicGeometry.Scheme.AffineCover.X.


                            the ring associated to a component of an affine cover

                            Equations
                            Instances For
                              @[deprecated AlgebraicGeometry.Scheme.AffineCover.f (since := "2025-09-19")]

                              Alias of AlgebraicGeometry.Scheme.AffineCover.f.


                              the components map to S

                              Equations
                              Instances For

                                The cover associated to an affine cover.

                                Equations
                                Instances For

                                  Any v-cover 𝒰 induces a u-cover indexed by the points of X.

                                  Equations
                                  • 𝒰.ulift = { I₀ := X, X := fun (x : X) => 𝒰.X .choose, f := fun (x : X) => 𝒰.f .choose, mem₀ := }
                                  Instances For
                                    @[simp]
                                    @[simp]

                                    A morphism between covers 𝒰 ⟶ 𝒱 indicates that 𝒰 is a refinement of 𝒱. Since covers of schemes are indexed, the definition also involves a map on the indexing types.

                                    Instances For
                                      theorem AlgebraicGeometry.Scheme.Cover.Hom.ext {P : CategoryTheory.MorphismProperty Scheme} {X : Scheme} {𝒰 𝒱 : Cover (precoverage P) X} {x y : 𝒰.Hom 𝒱} (idx : x.idx = y.idx) (app : x.app y.app) :
                                      x = y

                                      The identity morphism in the category of covers of a scheme.

                                      Equations
                                      Instances For
                                        def AlgebraicGeometry.Scheme.Cover.Hom.comp {P : CategoryTheory.MorphismProperty Scheme} [P.IsStableUnderComposition] {X : Scheme} {𝒰 𝒱 𝒲 : Cover (precoverage P) X} (f : 𝒰.Hom 𝒱) (g : 𝒱.Hom 𝒲) :
                                        𝒰.Hom 𝒲

                                        The composition of two morphisms in the category of covers of a scheme.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem AlgebraicGeometry.Scheme.Cover.comp_idx_apply {P : CategoryTheory.MorphismProperty Scheme} [P.IsMultiplicative] {X : Scheme} {𝒰 𝒱 𝒲 : Cover (precoverage P) X} (f : 𝒰 𝒱) (g : 𝒱 𝒲) (j : 𝒰.I₀) :
                                          @[simp]