Precoverages #
A precoverage K on a category C is a set of presieves associated to every object X : C,
called "covering presieves".
There are no conditions on this set. Common extensions of a precoverage are:
CategoryTheory.Coverage: A coverage is a precoverage that satisfies a pullback compatibility condition, saying that wheneverSis a covering presieve onXandf : Y ⟶ Xis a morphism, then there exists some covering sieveTonYsuch thatTfactors throughSalongf.CategoryTheory.Pretopology: IfChas pullbacks, a pretopology onCis a precoverage that has isomorphisms and is stable under pullback and refinement.
These two are defined in later files. For precoverages, we define stability conditions:
CategoryTheory.Precoverage.HasIsos: Singleton presieves by isomorphisms are covering.CategoryTheory.Precoverage.IsStableUnderBaseChange: The pullback of a covering presieve is again covering.CategoryTheory.Precoverage.IsStableUnderComposition: Refining a covering presieve by covering presieves yields a covering presieve.
A precoverage is a collection of covering presieves on every object X : C.
See CategoryTheory.Coverage and CategoryTheory.Pretopology for common extensions of this.
The collection of covering presieves for an object
X.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.Precoverage.instMin = { min := fun (A B : CategoryTheory.Precoverage C) => { coverings := A.coverings ⊓ B.coverings } }
Equations
- CategoryTheory.Precoverage.instMax = { max := fun (A B : CategoryTheory.Precoverage C) => { coverings := A.coverings ⊔ B.coverings } }
Equations
- CategoryTheory.Precoverage.instSupSet = { sSup := fun (A : Set (CategoryTheory.Precoverage C)) => { coverings := ⨆ K ∈ A, K.coverings } }
Equations
- CategoryTheory.Precoverage.instInfSet = { sInf := fun (A : Set (CategoryTheory.Precoverage C)) => { coverings := ⨅ K ∈ A, K.coverings } }
A precoverage has isomorphisms if singleton presieves by isomorphisms are covering.
Instances
A precoverage is stable under base change if pullbacks of covering presieves
are covering presieves.
Use Precoverage.mem_coverings_of_isPullback for less universe restrictions.
Note: This is stronger than the analogous requirement for a Pretopology, because
IsPullback does not imply equality with the (arbitrarily) chosen pullbacks in C.
- mem_coverings_of_isPullback {ι : Type (max u v)} {S : C} {X : ι → C} (f : (i : ι) → X i ⟶ S) (hR : Presieve.ofArrows X f ∈ J.coverings S) {Y : C} (g : Y ⟶ S) {P : ι → C} (p₁ : (i : ι) → P i ⟶ Y) (p₂ : (i : ι) → P i ⟶ X i) (h : ∀ (i : ι), IsPullback (p₁ i) (p₂ i) g (f i)) : Presieve.ofArrows P p₁ ∈ J.coverings Y
Instances
A precoverage is stable under composition if the indexed composition
of coverings is again a covering.
Use Precoverage.comp_mem_coverings for less universe restrictions.
Note: This is stronger than the analogous requirement for a Pretopology, because
this is in general not equal to a Presieve.bind.
- comp_mem_coverings {ι : Type (max u v)} {S : C} {X : ι → C} (f : (i : ι) → X i ⟶ S) (hf : Presieve.ofArrows X f ∈ J.coverings S) {σ : ι → Type (max u v)} {Y : (i : ι) → σ i → C} (g : (i : ι) → (j : σ i) → Y i j ⟶ X i) (hg : ∀ (i : ι), Presieve.ofArrows (Y i) (g i) ∈ J.coverings (X i)) : (Presieve.ofArrows (fun (p : (i : ι) × σ i) => Y p.fst p.snd) fun (x : (i : ι) × σ i) => CategoryStruct.comp (g x.fst x.snd) (f x.fst)) ∈ J.coverings S
Instances
A precoverage is stable under ⊔ if whenever R and S are coverings,
also R ⊔ S is a covering.
Instances
A precoverage has pullbacks, if every covering presieve has pullbacks along arbitrary morphisms.
- hasPullbacks_of_mem {X Y : C} {R : Presieve Y} (f : X ⟶ Y) (hR : R ∈ J.coverings Y) : R.HasPullbacks f
Instances
Alias of CategoryTheory.Precoverage.HasIsos.mem_coverings_of_isIso.
Alias of CategoryTheory.Precoverage.IsStableUnderSup.sup_mem_coverings.
Alias of CategoryTheory.Precoverage.HasPullbacks.hasPullbacks_of_mem.
If J is a precoverage on D, we obtain a precoverage on C by declaring a presieve on D
to be covering if its image under F is.
Equations
- CategoryTheory.Precoverage.comap F J = { coverings := fun (Y : C) (R : CategoryTheory.Presieve Y) => CategoryTheory.Presieve.map F R ∈ J.coverings (F.obj Y) }