The Yoneda embedding #
The Yoneda embedding as a functor yoneda : C ⥤ (Cᵒᵖ ⥤ Type v₁)
,
along with an instance that it is FullyFaithful
.
Also the Yoneda lemma, yonedaLemma : (yoneda_pairing C) ≅ (yoneda_evaluation C)
.
References #
The Yoneda embedding, as a functor from C
into presheaves on C
.
See https://stacks.math.columbia.edu/tag/001O.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The co-Yoneda embedding, as a functor from Cᵒᵖ
into co-presheaves on C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Yoneda embedding is fully faithful.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Yoneda embedding is full.
The Yoneda embedding is faithful.
Extensionality via Yoneda. The typical usage would be
-- Goal is `X ≅ Y`
apply yoneda.ext,
-- Goals are now functions `(Z ⟶ X) → (Z ⟶ Y)`, `(Z ⟶ Y) → (Z ⟶ X)`, and the fact that these
-- functions are inverses and natural in `Z`.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If yoneda.map f
is an isomorphism, so was f
.
The co-Yoneda embedding is fully faithful.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The morphism X ⟶ Y
corresponding to a natural transformation
coyoneda.obj X ⟶ coyoneda.obj Y
.
Equations
Instances For
If coyoneda.map f
is an isomorphism, so was f
.
The identity functor on Type
is isomorphic to the coyoneda functor coming from PUnit
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Taking the unop
of morphisms is a natural isomorphism.
Equations
- CategoryTheory.Coyoneda.objOpOp X = CategoryTheory.NatIso.ofComponents (fun (x : Cᵒᵖ) => (CategoryTheory.opEquiv (Opposite.unop (Opposite.op (Opposite.op X))) x).toIso) ⋯
Instances For
The data which expresses that a functor F : Cᵒᵖ ⥤ Type v
is representable by Y : C
.
- homEquiv {X : C} : (X ⟶ Y) ≃ F.obj (Opposite.op X)
the natural bijection
(X ⟶ Y) ≃ F.obj (op X)
. - homEquiv_comp {X X' : C} (f : X ⟶ X') (g : X' ⟶ Y) : self.homEquiv (CategoryTheory.CategoryStruct.comp f g) = F.map f.op (self.homEquiv g)
Instances For
If F ≅ F'
, and F
is representable, then F'
is representable.
Equations
- e.ofIso e' = { homEquiv := fun {X : C} => e.homEquiv.trans (e'.app (Opposite.op X)).toEquiv, homEquiv_comp := ⋯ }
Instances For
The data which expresses that a functor F : C ⥤ Type v
is corepresentable by X : C
.
the natural bijection
(X ⟶ Y) ≃ F.obj Y
.- homEquiv_comp {Y Y' : C} (g : Y ⟶ Y') (f : X ⟶ Y) : self.homEquiv (CategoryTheory.CategoryStruct.comp f g) = F.map g (self.homEquiv f)
Instances For
If F ≅ F'
, and F
is corepresentable, then F'
is corepresentable.
Equations
- e.ofIso e' = { homEquiv := fun {X_1 : C} => e.homEquiv.trans (e'.app X_1).toEquiv, homEquiv_comp := ⋯ }
Instances For
The obvious bijection F.RepresentableBy Y ≃ (yoneda.obj Y ≅ F)
when F : Cᵒᵖ ⥤ Type v₁
and [Category.{v₁} C]
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism yoneda.obj Y ≅ F
induced by e : F.RepresentableBy Y
.
Equations
- e.toIso = CategoryTheory.Functor.representableByEquiv e
Instances For
The obvious bijection F.CorepresentableBy X ≃ (yoneda.obj Y ≅ F)
when F : C ⥤ Type v₁
and [Category.{v₁} C]
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism coyoneda.obj (op X) ≅ F
induced by e : F.CorepresentableBy X
.
Equations
- e.toIso = CategoryTheory.Functor.corepresentableByEquiv e
Instances For
A functor F : Cᵒᵖ ⥤ Type v
is representable if there is oan bject Y
with a structure
F.RepresentableBy Y
, i.e. there is a natural bijection (X ⟶ Y) ≃ F.obj (op X)
,
which may also be rephrased as a natural isomorphism yoneda.obj X ≅ F
when Category.{v} C
.
See https://stacks.math.columbia.edu/tag/001Q.
- has_representation : ∃ (Y : C), Nonempty (F.RepresentableBy Y)
Instances
Alias of CategoryTheory.Functor.IsRepresentable
.
A functor F : Cᵒᵖ ⥤ Type v
is representable if there is oan bject Y
with a structure
F.RepresentableBy Y
, i.e. there is a natural bijection (X ⟶ Y) ≃ F.obj (op X)
,
which may also be rephrased as a natural isomorphism yoneda.obj X ≅ F
when Category.{v} C
.
See https://stacks.math.columbia.edu/tag/001Q.
Instances For
Alternative constructure for F.IsRepresentable
, which takes as an input an
isomorphism yoneda.obj X ≅ F
.
A functor F : C ⥤ Type v₁
is corepresentable if there is object X
so F ≅ coyoneda.obj X
.
See https://stacks.math.columbia.edu/tag/001Q.
- has_corepresentation : ∃ (X : C), Nonempty (F.CorepresentableBy X)
Instances
Alias of CategoryTheory.Functor.IsCorepresentable
.
A functor F : C ⥤ Type v₁
is corepresentable if there is object X
so F ≅ coyoneda.obj X
.
See https://stacks.math.columbia.edu/tag/001Q.
Instances For
Alternative constructure for F.IsCorepresentable
, which takes as an input an
isomorphism coyoneda.obj (op X) ≅ F
.
The representing object for the representable functor F
.
Equations
- F.reprX = ⋯.choose
Instances For
A chosen term in F.RepresentableBy (reprX F)
when F.IsRepresentable
holds.
Equations
- F.representableBy = ⋯.some
Instances For
The representing element for the representable functor F
, sometimes called the universal
element of the functor.
Equations
- F.reprx = F.representableBy.homEquiv (CategoryTheory.CategoryStruct.id F.reprX)
Instances For
An isomorphism between a representable F
and a functor of the
form C(-, F.reprX)
. Note the components F.reprW.app X
definitionally have type (X.unop ⟶ F.reprX) ≅ F.obj X
.
Equations
- F.reprW = F.representableBy.toIso
Instances For
The representing object for the corepresentable functor F
.
Equations
- F.coreprX = ⋯.choose
Instances For
A chosen term in F.CorepresentableBy (coreprX F)
when F.IsCorepresentable
holds.
Equations
- F.corepresentableBy = ⋯.some
Instances For
The representing element for the corepresentable functor F
, sometimes called the universal
element of the functor.
Equations
- F.coreprx = F.corepresentableBy.homEquiv (CategoryTheory.CategoryStruct.id F.coreprX)
Instances For
An isomorphism between a corepresentable F
and a functor of the form
C(F.corepr X, -)
. Note the components F.coreprW.app X
definitionally have type F.corepr_X ⟶ X ≅ F.obj X
.
Equations
- F.coreprW = F.corepresentableBy.toIso
Instances For
Equations
Equations
We have a type-level equivalence between natural transformations from the yoneda embedding
and elements of F.obj X
, without any universe switching.
Equations
- One or more equations did not get rendered due to their size.
Instances For
See also yonedaEquiv_naturality'
for a more general version.
Variant of yonedaEquiv_naturality
with general g
. This is technically strictly more general
than yonedaEquiv_naturality
, but yonedaEquiv_naturality
is sometimes preferable because it
can avoid the "motive is not type correct" error.
See also map_yonedaEquiv'
for a more general version.
Variant of map_yonedaEquiv
with general g
. This is technically strictly more general
than map_yonedaEquiv
, but map_yonedaEquiv
is sometimes preferable because it
can avoid the "motive is not type correct" error.
Two morphisms of presheaves of types P ⟶ Q
coincide if the precompositions
with morphisms yoneda.obj X ⟶ P
agree.
The "Yoneda evaluation" functor, which sends X : Cᵒᵖ
and F : Cᵒᵖ ⥤ Type
to F.obj X
, functorially in both X
and F
.
Equations
Instances For
The "Yoneda pairing" functor, which sends X : Cᵒᵖ
and F : Cᵒᵖ ⥤ Type
to yoneda.op.obj X ⟶ F
, functorially in both X
and F
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A bijection (yoneda.obj X ⋙ uliftFunctor ⟶ F) ≃ F.obj (op X)
which is a variant
of yonedaEquiv
with heterogeneous universes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Yoneda lemma asserts that the Yoneda pairing
(X : Cᵒᵖ, F : Cᵒᵖ ⥤ Type) ↦ (yoneda.obj (unop X) ⟶ F)
is naturally isomorphic to the evaluation (X, F) ↦ F.obj X
.
See https://stacks.math.columbia.edu/tag/001P.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The curried version of yoneda lemma when C
is small.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The curried version of the Yoneda lemma.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Version of the Yoneda lemma where the presheaf is fixed but the argument varies.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The curried version of yoneda lemma when C
is small.
Equations
- One or more equations did not get rendered due to their size.
Instances For
We have a type-level equivalence between natural transformations from the coyoneda embedding
and elements of F.obj X.unop
, without any universe switching.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The "Coyoneda evaluation" functor, which sends X : C
and F : C ⥤ Type
to F.obj X
, functorially in both X
and F
.
Equations
Instances For
The "Coyoneda pairing" functor, which sends X : C
and F : C ⥤ Type
to coyoneda.rightOp.obj X ⟶ F
, functorially in both X
and F
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A bijection (coyoneda.obj X ⋙ uliftFunctor ⟶ F) ≃ F.obj (unop X)
which is a variant
of coyonedaEquiv
with heterogeneous universes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Coyoneda lemma asserts that the Coyoneda pairing
(X : C, F : C ⥤ Type) ↦ (coyoneda.obj X ⟶ F)
is naturally isomorphic to the evaluation (X, F) ↦ F.obj X
.
See https://stacks.math.columbia.edu/tag/001P.
Equations
- CategoryTheory.coyonedaLemma C = CategoryTheory.NatIso.ofComponents (fun (x : C × CategoryTheory.Functor C (Type ?u.25)) => (CategoryTheory.coyonedaEquiv.trans Equiv.ulift.symm).toIso) ⋯
Instances For
The curried version of coyoneda lemma when C
is small.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The curried version of the Coyoneda lemma.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Version of the Coyoneda lemma where the presheaf is fixed but the argument varies.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The curried version of coyoneda lemma when C
is small.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The natural transformation yoneda.obj X ⟶ F.op ⋙ yoneda.obj (F.obj X)
when F : C ⥤ D
and X : C
.
Equations
- CategoryTheory.yonedaMap F X = { app := fun (x : Cᵒᵖ) (f : (CategoryTheory.yoneda.obj X).obj x) => F.map f, naturality := ⋯ }
Instances For
FullyFaithful.homEquiv
as a natural isomorphism.
Equations
- hF.homNatIso X = CategoryTheory.NatIso.ofComponents (fun (Y : Cᵒᵖ) => (Equiv.ulift.trans (hF.homEquiv.symm.trans Equiv.ulift.symm)).toIso) ⋯
Instances For
FullyFaithful.homEquiv
as a natural isomorphism.
Equations
- hF.homNatIsoMaxRight X = CategoryTheory.NatIso.ofComponents (fun (Y : Cᵒᵖ) => (hF.homEquiv.symm.trans Equiv.ulift.symm).toIso) ⋯
Instances For
FullyFaithful.homEquiv
as a natural isomorphism.
Equations
- hF.compYonedaCompWhiskeringLeft = CategoryTheory.NatIso.ofComponents (fun (X : C) => hF.homNatIso X) ⋯
Instances For
FullyFaithful.homEquiv
as a natural isomorphism.
Equations
- hF.compYonedaCompWhiskeringLeftMaxRight = CategoryTheory.NatIso.ofComponents (fun (X : C) => hF.homNatIsoMaxRight X) ⋯