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)), (𝒰.f i) 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)), (map j) 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_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)), (map j) 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)), (map j) y = x) (map_prop : ∀ (j : J), P (map j) := by infer_instance) :
                (mkOfCovers J obj map covers map_prop).I₀ = J
                @[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)), (map j) 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✝

                An isomorphism X ⟶ Y is a P-cover of Y.

                Equations
                  Instances For

                    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
                          Instances For
                            @[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_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_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
                              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
                                  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₁.

                                    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₂.

                                            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 (self.f (self.idx x))

                                                  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
                                                                    Instances For
                                                                      @[simp]
                                                                      theorem AlgebraicGeometry.Scheme.Cover.ulift_f {X : Scheme} {P : CategoryTheory.MorphismProperty Scheme} (𝒰 : Cover (precoverage P) X) (x : X) :
                                                                      𝒰.ulift.f x = 𝒰.f (𝒰.idx x)
                                                                      @[simp]
                                                                      theorem AlgebraicGeometry.Scheme.Cover.ulift_X {X : Scheme} {P : CategoryTheory.MorphismProperty Scheme} (𝒰 : Cover (precoverage P) X) (x : X) :
                                                                      𝒰.ulift.X x = 𝒰.X (𝒰.idx x)
                                                                      @[reducible, inline]

                                                                      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. This is implemented as an abbrev for CategoryTheory.Precoverage.ZeroHypercover.Hom.

                                                                      Equations
                                                                        Instances For
                                                                          @[deprecated CategoryTheory.PreZeroHypercover.Hom.s₀ (since := "2026-01-13")]

                                                                          Alias of CategoryTheory.PreZeroHypercover.Hom.s₀.

                                                                          Equations
                                                                            Instances For
                                                                              @[deprecated CategoryTheory.PreZeroHypercover.Hom.h₀ (since := "2026-01-13")]

                                                                              Alias of CategoryTheory.PreZeroHypercover.Hom.h₀.

                                                                              Equations
                                                                                Instances For
                                                                                  @[deprecated CategoryTheory.PreZeroHypercover.Hom.w₀ (since := "2026-01-13")]

                                                                                  Alias of CategoryTheory.PreZeroHypercover.Hom.w₀.

                                                                                  @[deprecated CategoryTheory.PreZeroHypercover.Hom.id (since := "2026-01-13")]

                                                                                  Alias of CategoryTheory.PreZeroHypercover.Hom.id.

                                                                                  Equations
                                                                                    Instances For
                                                                                      @[deprecated CategoryTheory.PreZeroHypercover.Hom.comp (since := "2026-01-13")]

                                                                                      Alias of CategoryTheory.PreZeroHypercover.Hom.comp.

                                                                                      Equations
                                                                                        Instances For
                                                                                          @[deprecated CategoryTheory.PreZeroHypercover.id_s₀ (since := "2026-01-13")]

                                                                                          Alias of CategoryTheory.PreZeroHypercover.id_s₀.

                                                                                          @[deprecated CategoryTheory.PreZeroHypercover.id_h₀ (since := "2026-01-13")]

                                                                                          Alias of CategoryTheory.PreZeroHypercover.id_h₀.

                                                                                          @[deprecated CategoryTheory.PreZeroHypercover.comp_s₀ (since := "2026-01-13")]
                                                                                          theorem AlgebraicGeometry.Scheme.Cover.comp_idx_apply {C : Type u} [CategoryTheory.Category.{v, u} C] {S : C} {X✝ Y✝ Z✝ : CategoryTheory.PreZeroHypercover S} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) (a✝ : X✝.I₀) :

                                                                                          Alias of CategoryTheory.PreZeroHypercover.comp_s₀.

                                                                                          @[deprecated CategoryTheory.PreZeroHypercover.comp_h₀ (since := "2026-01-13")]

                                                                                          Alias of CategoryTheory.PreZeroHypercover.comp_h₀.