Library ConCaT.CATEGORY_THEORY.FUNCTOR.Dual_Functor



Require Export Dual.
Require Export Functor.

Set Implicit Arguments.
Unset Strict Implicit.

Section dfunctor_def.

Variables (A B : Category) (F : Functor A B).

Definition DFunctor_ob : Dual A -> Dual B := fun a : A => F a.

Definition DFunctor_map (b a : A) := FMap F a b.

Lemma DFunctor_comp_law : Fcomp_law (FOb:=DFunctor_ob) DFunctor_map.
Proof.
unfold Fcomp_law in |- *; simpl in |- *.
intros a b c f g.
exact (Prf_Fcomp_law F g f).
Qed.

Lemma DFunctor_id_law : Fid_law (FOb:=DFunctor_ob) DFunctor_map.
Proof.
unfold Fid_law in |- *; simpl in |- *.
intro a; exact (Prf_Fid_law F a).
Qed.

Canonical Structure Dfunctor :=
  Build_Functor DFunctor_comp_law DFunctor_id_law.

End dfunctor_def.