Library CT.Instance.Algebra.PointedSetCategory
Pointed sets form a category.
Program Definition PointedSetCategory (T : Type) : Category :=
{| ob := @PointedSet T;
mor := PointPreservingMap;
comp := fun _ _ _ ⇒ ppm_composition;
id := fun _ ⇒ ppm_id;
assoc := fun _ _ _ _ ⇒ ppm_composition_assoc
|}.
Next Obligation.
Proof.
symmetry.
apply ppm_composition_assoc.
Qed.
Next Obligation.
Proof. apply ppm_eq. reflexivity. Qed.
Next Obligation.
Proof. apply ppm_eq. reflexivity. Qed.
{| ob := @PointedSet T;
mor := PointPreservingMap;
comp := fun _ _ _ ⇒ ppm_composition;
id := fun _ ⇒ ppm_id;
assoc := fun _ _ _ _ ⇒ ppm_composition_assoc
|}.
Next Obligation.
Proof.
symmetry.
apply ppm_composition_assoc.
Qed.
Next Obligation.
Proof. apply ppm_eq. reflexivity. Qed.
Next Obligation.
Proof. apply ppm_eq. reflexivity. Qed.