Section thl.
Variables (C J : Category) (H1 : forall k : J -> C, Product1 k)
(H2 : forall k : Arrs J -> C, Product1 k)
(H3 : forall (a b : C) (f g : a --> b), Equalizer1_fg f g)
(F : Functor J C).
Let Limit2_fg (a b : C) (f g : a --> b) := Build_Equalizer2 (H3 f g) Elt1.
(* IIi Fi *)
Definition Thl_k_Fi (i : J) := F i.
Definition Thl_l_Fi := H1 Thl_k_Fi.
Definition Thl_PI_Fi := Pi1 Thl_l_Fi.
(* ||u F(codomu) *)
Definition Thl_k_Fu (u : Arrs J) := F (Codom u).
Definition Thl_l_Fu := H2 Thl_k_Fu.
Definition Thl_PI_Fu := Pi1 Thl_l_Fu.
(* qq u. fu : IIi Fi -> ku (= F(codomu)) *)
Definition Thl_fu (u : Arrs J) := Proj1 Thl_l_Fi (Codom u).
(* donc E! f : IIi Fi -> ||u F(codomu) tq ... *)
Definition Thl_f : Thl_PI_Fi --> Thl_PI_Fu := Pd1_diese Thl_l_Fu Thl_fu.
(* qq u. gu : IIi Fi --p(domu)--> F(domu) --Fu--> ku (= F(codomu)) *)
Definition Thl_gu (u : Arrs J) := Proj1 Thl_l_Fi (Dom u) o FMor F (Arrow u).
(* donc E! g : IIi Fi -> ||u F(codomu) tq ... *)
Definition Thl_g := Pd1_diese Thl_l_Fu Thl_gu.

Lemma Thl_diag2 : forall u : Arrs J, Thl_gu u =_S Thl_g o Proj1 Thl_l_Fu u.