Library ConCaT.CATEGORY_THEORY.ADJUNCTION.FREYD_THEOREM.FAFT_Part2_Proof2
Require Export Th_Adjoint.
Require Export Pres_Limits.
Require Export Comma_Complete.
Require Export Th_Initial.
Require Export Comma_UA.
Require Export FAFT_SSC2.
Set Implicit Arguments.
Unset Strict Implicit.
Section freyd_th_2'.
Variables (A X : Category) (G : Functor A X) (A_c : Complete A)
(G_c : Continuous G) (s : ∀ x : X, SSC2 G x).
Section uaxG'.
Variable x : X.
Section ssc2_to_ssc1.
Let I := SSC2_I (s x).
Let f (i : I) := SSC2_f i.
Let a (i : I) := SSC2_a i.
Let k (i : I) := Build_Com_ob (f i).
Section ssc2_to_cond1.
Variable axh : Comma G x.
Definition SSC2_1_i := SSC2_i (s x) (Mor_com_ob axh).
Definition SSC2_1_t := SSC2_t (s x) (Mor_com_ob axh).
Lemma SSC2_1_f_com_law : Com_law (axf:=k SSC2_1_i) (bxg:=axh) SSC2_1_t.
Proof.
unfold Com_law in |- ×.
apply (Prf_SSC2_law (s _) (Mor_com_ob axh)).
Qed.
Canonical Structure SSC2_1_f := Build_Com_arrow SSC2_1_f_com_law.
Canonical Structure SSC2_1_cond := Build_Cond1 (I:=I) SSC2_1_f.
End ssc2_to_cond1.
Canonical Structure SSC2_1 := Build_SSC1 SSC2_1_cond.
End ssc2_to_ssc1.
Definition FT_UA' :=
Com_UA (Thi2_initial (Comma_complete A_c G_c (x:=x)) SSC2_1).
End uaxG'.
Definition AFT1' : LeftAdj G := LeftAdjUA FT_UA'.
End freyd_th_2'.
