The constant presheaf maps to the skyscraper by the identity on opens containing the point, and the terminal map on the remaining opens.
Source context 6 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
universe u
open CategoryTheory Limits TopCat TopologicalSpace Opposite
namespace SchemeTheory
attribute [local instance] Classical.propDecidable
variable {X : TopCat.{u}}def constantToSkyscraper (x : X) (A : Type u) :
(Functor.const (Opens X)ᵒᵖ).obj A ⟶ skyscraperPresheaf x A where
app U := if h : x ∈ U.unop then eqToHom (ite_eq_left h).symm
else terminal.from A ≫ eqToHom (ite_eq_right h).symm
naturality U V f := by
dsimp only [Functor.const_obj_obj, skyscraperPresheaf_obj]
by_cases hV : x ∈ V.unop
· have hU : x ∈ U.unop := f.unop.le hV
simp only [Functor.const_obj_map, Category.id_comp, dite_eq_left hU, dite_eq_left hV,
skyscraperPresheaf_map]
let eU : A = (skyscraperPresheaf x A).obj U := (ite_eq_left hU).symm
let eUV : (skyscraperPresheaf x A).obj U =
(skyscraperPresheaf x A).obj V := (ite_eq_left hU).trans (ite_eq_left hV).symm
exact (eqToHom_trans eU eUV).symm
· simp only [Functor.const_obj_map, Category.id_comp, dite_eq_right hV,
skyscraperPresheaf_map]
apply ((ite_eq_right hV).symm.ndrec terminalIsTerminal).hom_ext