Grothendieck Topology and Sheaves on the Category of Types #
In this file we define a Grothendieck topology on the category of types, and construct the canonical functor that sends a type to a sheaf over the category of types, and make this an equivalence of categories.
Then we prove that the topology defined is the canonical topology.
A Grothendieck topology associated to the category of all types. A sieve is a covering iff it is jointly surjective.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The discrete sieve on a type, which only includes arrows whose image is a subsingleton.
Equations
- CategoryTheory.discreteSieve α = { arrows := fun (x : Type ?u.1) (f : x ⟶ α) => ∃ (x_1 : α), ∀ (y : x), (CategoryTheory.ConcreteCategory.hom f) y = x_1, downward_closed := ⋯ }
Instances For
The discrete presieve on a type, which only includes arrows whose domain is a singleton.
Equations
- CategoryTheory.discretePresieve α x✝ = ∃ (x : β), ∀ (y : β), y = x
Instances For
The sheaf condition for yoneda'.
The sheaf condition for yoneda'.
The yoneda functor that sends a type to a sheaf over the category of types.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a presheaf P on the category of types, construct
a map P(α) → (α → P(*)) for all type α.
Equations
- CategoryTheory.eval P α s = TypeCat.ofHom fun (x : α) => (CategoryTheory.ConcreteCategory.hom (P.map (TypeCat.ofHom fun (x_1 : PUnit.{?u.1 + 1}) => x).op)) s
Instances For
Given a sheaf S on the category of types, construct a map
(α → S(*)) → S(α) that is inverse to eval.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a sheaf S, construct an equivalence S(α) ≃ (α → S(*)).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a sheaf S, construct an isomorphism S ≅ [-, S(*)].
Equations
- CategoryTheory.equivYoneda S hs = CategoryTheory.NatIso.ofComponents (fun (α : Type ?u.1ᵒᵖ) => (CategoryTheory.evalEquiv S hs (Opposite.unop α)).toIso) ⋯
Instances For
Given a sheaf S, construct an isomorphism S ≅ [-, S(*)].
Equations
- CategoryTheory.equivYoneda' S = { hom := { hom := (CategoryTheory.equivYoneda S.obj ⋯).hom }, inv := { hom := (CategoryTheory.equivYoneda S.obj ⋯).inv }, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
yoneda' induces an equivalence of categories between Type u and
Sheaf typesGrothendieckTopology (Type u).
Equations
- One or more equations did not get rendered due to their size.