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.17) (f : x ⟶ α) => ∃ (x_1 : α), ∀ (y : x), 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 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 x = P.map (CategoryTheory.asHom fun (x_1 : PUnit.{?u.13 + 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
- CategoryTheory.evalEquiv S hs α = { toFun := CategoryTheory.eval S α, invFun := CategoryTheory.typesGlue S hs α, left_inv := ⋯, right_inv := ⋯ }
Instances For
Given a sheaf S
, construct an isomorphism S ≅ [-, S(*)]
.
Equations
- CategoryTheory.equivYoneda S hs = CategoryTheory.NatIso.ofComponents (fun (α : Type ?u.32ᵒᵖ) => (CategoryTheory.evalEquiv S hs (Opposite.unop α)).toIso) ⋯
Instances For
Given a sheaf S
, construct an isomorphism S ≅ [-, S(*)]
.
Equations
- CategoryTheory.equivYoneda' S = { hom := { val := (CategoryTheory.equivYoneda S.val ⋯).hom }, inv := { val := (CategoryTheory.equivYoneda S.val ⋯).inv }, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
yoneda'
induces an equivalence of category between Type u
and
SheafOfTypes typesGrothendieckTopology
.
Equations
- One or more equations did not get rendered due to their size.