Section ylpsi_map1_def.
Variable b : C.
Definition YLpsi_arrow1 (f : a --> b) := FMor F f x.
Canonical Structure YLpsi_map1 :=
Build_Map (A:=FunSET a b) YLpsi_arrow1_map_law.
End ylpsi_map1_def.
(* (YLpsi<a,F>)x est une NT entre C(a,-) et F *)
Canonical Structure YLpsi_arrow := Build_NT YLpsi_map1_nt_law.
End ylpsi_arrow_def.
(* YLpsi<a,F> est une Map entre F(a) et NatFun(C(a,-),F) *)
Canonical Structure YLpsi_tau : Map0'' (F a) (NT_setoid (FunSET a) F) :=
YLpsi_arrow_map_law.
End ylpsi_tau_def.
(* L'objectif final e'tant de prouver que YLphi et YLpsi sont iso *)
(* pour cela on va prouver d'abord que YLphi<a,F> et YLpsi<a,F> sont iso *)

Lemma YonedaLemma :
forall (a : C) (F : Functor C SET),
AreBij0'' (YLpsi_tau a F) (YLphi_tau a F).