The Yoneda embedding #
Let C : Type u₁ be a category (with Category.{v₁} C). We define
the Yoneda embedding as a fully faithful functor yoneda : C ⥤ Cᵒᵖ ⥤ Type v₁,
In addition to yoneda, we also define uliftYoneda : C ⥤ Cᵒᵖ ⥤ Type (max w v₁)
with the additional universe parameter w. When C is locally w-small,
one may also use shrinkYoneda.{w} : C ⥤ Cᵒᵖ ⥤ Type w from the file
Mathlib/CategoryTheory/ShrinkYoneda.lean.
The naturality of the bijection yonedaEquiv involved in the
Yoneda lemma is also expressed as a natural isomorphism
yonedaLemma : yonedaPairing C ≅ yonedaEvaluation C.
References #
The Yoneda embedding, as a functor from C into presheaves on C.
Instances For
Variant of the Yoneda embedding which allows a raise in the universe level for the category of types.
Instances For
If C is a category with [Category.{max w v₁} C], this is the isomorphism
uliftYoneda.{w} (C := C) ≅ yoneda.
Instances For
The co-Yoneda embedding, as a functor from Cᵒᵖ into co-presheaves on C.
Instances For
Variant of the Coyoneda embedding which allows a raise in the universe level for the category of types.
Instances For
If C is a category with [Category.{max w v₁} C], this is the isomorphism
uliftCoyoneda.{w} (C := C) ≅ coyoneda.
Instances For
The Yoneda embedding is fully faithful.
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`.
Instances For
If yoneda.map f is an isomorphism, so was f.
When C is a category such that Category.{v₁} C, then
the functor uliftYoneda.{w} : C ⥤ Cᵒᵖ ⥤ Type max w v₁ is fully faithful.
Instances For
The co-Yoneda embedding is fully faithful.
Instances For
The morphism X ⟶ Y corresponding to a natural transformation
coyoneda.obj X ⟶ coyoneda.obj Y.
Instances For
Extensionality via Coyoneda. The typical usage would be
-- Goal is `X ≅ Y`
apply Coyoneda.ext
-- Goals are now functions `(X ⟶ Z) → (Y ⟶ Z)`, `(Y ⟶ Z) → (X ⟶ Z)`, and the fact that these
-- functions are inverses and natural in `Z`.
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.
Instances For
Taking the unop of morphisms is a natural isomorphism.
Instances For
Taking the unop of morphisms is a natural isomorphism.
Instances For
When C is a category such that Category.{v₁} C, then
the functor uliftCoyoneda.{w} : C ⥤ Cᵒᵖ ⥤ Type max w v₁ is fully faithful.
Instances For
The data which expresses that a functor F : Cᵒᵖ ⥤ Type v is representable by Y : C.
the natural bijection
(X ⟶ Y) ≃ F.obj (op X).
Instances For
If F ≅ F', and F is representable, then F' is representable.
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.
Instances For
If F ≅ F', and F is corepresentable, then F' is corepresentable.
Instances For
Representing objects are unique up to isomorphism.
Instances For
Corepresenting objects are unique up to isomorphism.
Instances For
The obvious bijection F.RepresentableBy Y ≃ (yoneda.obj Y ≅ F)
when F : Cᵒᵖ ⥤ Type v₁ and [Category.{v₁} C].
Instances For
yoneda.obj X is represented by X.
Instances For
The isomorphism yoneda.obj Y ≅ F induced by e : F.RepresentableBy Y.
Instances For
The obvious bijection F.CorepresentableBy X ≃ (yoneda.obj Y ≅ F)
when F : C ⥤ Type v₁ and [Category.{v₁} C].
Instances For
coyoneda.obj X is represented by X.
Instances For
The isomorphism coyoneda.obj (op X) ≅ F induced by e : F.CorepresentableBy X.
Instances For
Transport RepresentableBy along an isomorphism of the object.
Instances For
Transport RepresentableBy along an isomorphism of the object.
Instances For
If Y is isomorphic to X, representations of F by X are equivalent
to representations of F by Y.
Instances For
If Y is isomorphic to X, corepresentations of F by X are equivalent
to corepresentations of F by Y.
Instances For
Representing F composed with universe lifting is the same as representing F.
Instances For
Corepresenting F composed with universe lifting is the same as corepresenting F.
Instances For
Version of representableByEquiv with more general universe assumptions.
Instances For
Version of corepresentableByEquiv with more general universe assumptions.
Instances For
A functor F : Cᵒᵖ ⥤ Type v is representable if there is an object 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.
- has_representation : ∃ (Y : C), Nonempty (F.RepresentableBy Y)
Instances
Alternative constructor 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.
- has_corepresentation : ∃ (X : C), Nonempty (F.CorepresentableBy X)
Instances
Alternative constructor for F.IsCorepresentable, which takes as an input an
isomorphism coyoneda.obj (op X) ≅ F.
The representing object for the representable functor F.
Instances For
A chosen term in F.RepresentableBy (reprX F) when F.IsRepresentable holds.
Instances For
Any representing object for a representable functor F is isomorphic to reprX F.
Instances For
The representing element for the representable functor F, sometimes called the universal
element of the functor.
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.
Instances For
If F is representable, it is, modulo universe lifting, isomorphic to
Hom(-, X) for the representing object X.
Instances For
The representing object for the corepresentable functor F.
Instances For
A chosen term in F.CorepresentableBy (coreprX F) when F.IsCorepresentable holds.
Instances For
Any corepresenting object for a corepresentable functor F is isomorphic to coreprX F.
Instances For
The representing element for the corepresentable functor F, sometimes called the universal
element of the functor.
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.
Instances For
If F is corepresentable, it is, modulo universe lifting, isomorphic to
Hom(X, -) for the corepresenting object X.
Instances For
The identity functor on Type v is corepresented by PUnit.
Instances For
We have a type-level equivalence between natural transformations from the yoneda embedding
and elements of F.obj X, without any universe switching.
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.
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.
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.
Instances For
The curried version of yoneda lemma when C is small.
Instances For
The curried version of the Yoneda lemma.
Instances For
Version of the Yoneda lemma where the presheaf is fixed but the argument varies.
Instances For
The curried version of yoneda lemma when C is small.
Instances For
Yoneda's lemma as a bijection (uliftYoneda.{w}.obj X ⟶ F) ≃ F.obj (op X)
for any presheaf of type F : Cᵒᵖ ⥤ Type (max w v₁) for some
auxiliary universe w.
Instances For
Two morphisms of presheaves of types P ⟶ Q coincide if the precompositions
with morphisms uliftYoneda.obj X ⟶ P agree.
A variant of the curried version of the Yoneda lemma with a raise in the universe level.
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.
Instances For
The "Coyoneda evaluation" functor, which sends X : C and F : C ⥤ Type
to F.obj X, functorially in both X and F.
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.
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.
Instances For
The curried version of coyoneda lemma when C is small.
Instances For
The curried version of the Coyoneda lemma.
Instances For
Version of the Coyoneda lemma where the presheaf is fixed but the argument varies.
Instances For
The curried version of coyoneda lemma when C is small.
Instances For
Coyoneda's lemma as a bijection (uliftCoyoneda.{w}.obj X ⟶ F) ≃ F.obj (op X)
for any presheaf of type F : Cᵒᵖ ⥤ Type (max w v₁) for some
auxiliary universe w.
Instances For
Two morphisms of presheaves of types P ⟶ Q coincide if the precompositions
with morphisms uliftCoyoneda.obj X ⟶ P agree.
A variant of the curried version of the Coyoneda lemma with a raise in the universe level.
Instances For
The natural transformation yoneda.obj X ⟶ F.op ⋙ yoneda.obj (F.obj X)
when F : C ⥤ D and X : C.
Instances For
The natural transformation uliftYoneda.obj X ⟶ F.op ⋙ uliftYoneda.obj (F.obj X)
when F : C ⥤ D and X : C.
Instances For
A type-level equivalence between sections of a functor and morphisms from a terminal functor to it. We use the constant functor on a given singleton type here as a specific choice of terminal functor.
Instances For
A natural isomorphism between the sections functor (C ⥤ Type _) ⥤ Type _ and the co-Yoneda
embedding of a terminal functor, specifically a constant functor on a given singleton type X.
Instances For
FullyFaithful.homEquiv as a natural isomorphism.
Instances For
FullyFaithful.homEquiv as a natural isomorphism.
Instances For
FullyFaithful.homEquiv as a natural isomorphism.
Instances For
Alias of CategoryTheory.Functor.FullyFaithful.compUliftYonedaCompWhiskeringLeft.
FullyFaithful.homEquiv as a natural isomorphism.
Instances For
FullyFaithful.homEquiv as a natural isomorphism.
Instances For
FullyFaithful.homEquiv as a natural isomorphism, using coyoneda.
Instances For
FullyFaithful.homEquiv as a natural isomorphism, using coyoneda.