[STATEMENT]
lemma the_cf_rKe_is_functor:
  assumes "\<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>"
    and "\<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
    and "\<And>c. c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> lim_Obj c\<lparr>UArr\<rparr> :
      lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>C\<^sub>F c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
  shows "the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
let ?UObj = \<open>\<lambda>a. lim_Obj a\<lparr>UObj\<rparr>\<close>
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
let ?UArr = \<open>\<lambda>a. lim_Obj a\<lparr>UArr\<rparr>\<close>
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
let ?const_comma = \<open>\<lambda>a b. cf_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (?UObj b)\<close>
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
let ?the_cf_rKe = \<open>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<close>
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
interpret \<KK>: is_functor \<alpha> \<BB> \<CC> \<KK>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
[PROOF STEP]
by (rule assms(1))
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
interpret \<TT>: is_functor \<alpha> \<BB> \<AA> \<TT>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule assms(2))
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
note [cat_lim_cs_intros] = is_cat_cone.cat_cone_obj
[PROOF STATE]
proof (state)
this:
?\<NN> : ?c <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e ?\<FF> : ?\<JJ> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<CC> \<Longrightarrow> ?c \<in>\<^sub>\<circ> ?\<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
proof(intro is_functorI')
[PROOF STATE]
proof (state)
goal (15 subgoals):
 1. \<Z> \<alpha>
 2. vfsequence (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj)
 3. category \<alpha> \<CC>
 4. category \<alpha> \<AA>
 5. vcard (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj) = 4\<^sub>\<nat>
 6. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 7. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 8. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>)
 9. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 10. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
A total of 15 subgoals...
[PROOF STEP]
show "vfsequence ?the_cf_rKe"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vfsequence (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj)
[PROOF STEP]
unfolding the_cf_rKe_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vfsequence [\<lambda>c\<in>\<^sub>\<circ>\<KK>\<lparr>HomCod\<rparr>\<lparr>Obj\<rparr>. lim_Obj c\<lparr>UObj\<rparr>, \<lambda>g\<in>\<^sub>\<circ>\<KK>\<lparr>HomCod\<rparr>\<lparr>Arr\<rparr>. THE f. f : lim_Obj (\<KK>\<lparr>HomCod\<rparr>\<lparr>Dom\<rparr>\<lparr>g\<rparr>)\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<TT>\<lparr>HomCod\<rparr>\<^esub> lim_Obj (\<KK>\<lparr>HomCod\<rparr>\<lparr>Cod\<rparr>\<lparr>g\<rparr>)\<lparr>UObj\<rparr> \<and> lim_Obj (\<KK>\<lparr>HomCod\<rparr>\<lparr>Dom\<rparr>\<lparr>g\<rparr>)\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M g \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj (\<KK>\<lparr>HomCod\<rparr>\<lparr>Cod\<rparr>\<lparr>g\<rparr>)\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const ((\<KK>\<lparr>HomCod\<rparr>\<lparr>Cod\<rparr>\<lparr>g\<rparr>) \<down>\<^sub>C\<^sub>F \<KK>) (\<TT>\<lparr>HomCod\<rparr>) f, \<KK>\<lparr>HomCod\<rparr>, \<TT>\<lparr>HomCod\<rparr>]\<^sub>\<circ>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
vfsequence (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj)

goal (14 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. vcard (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj) = 4\<^sub>\<nat>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 6. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 7. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>)
 8. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 9. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
 10. \<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
A total of 14 subgoals...
[PROOF STEP]
show "vcard ?the_cf_rKe = 4\<^sub>\<nat>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vcard (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj) = 4\<^sub>\<nat>
[PROOF STEP]
unfolding the_cf_rKe_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vcard [\<lambda>c\<in>\<^sub>\<circ>\<KK>\<lparr>HomCod\<rparr>\<lparr>Obj\<rparr>. lim_Obj c\<lparr>UObj\<rparr>, \<lambda>g\<in>\<^sub>\<circ>\<KK>\<lparr>HomCod\<rparr>\<lparr>Arr\<rparr>. THE f. f : lim_Obj (\<KK>\<lparr>HomCod\<rparr>\<lparr>Dom\<rparr>\<lparr>g\<rparr>)\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<TT>\<lparr>HomCod\<rparr>\<^esub> lim_Obj (\<KK>\<lparr>HomCod\<rparr>\<lparr>Cod\<rparr>\<lparr>g\<rparr>)\<lparr>UObj\<rparr> \<and> lim_Obj (\<KK>\<lparr>HomCod\<rparr>\<lparr>Dom\<rparr>\<lparr>g\<rparr>)\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M g \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj (\<KK>\<lparr>HomCod\<rparr>\<lparr>Cod\<rparr>\<lparr>g\<rparr>)\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const ((\<KK>\<lparr>HomCod\<rparr>\<lparr>Cod\<rparr>\<lparr>g\<rparr>) \<down>\<^sub>C\<^sub>F \<KK>) (\<TT>\<lparr>HomCod\<rparr>) f, \<KK>\<lparr>HomCod\<rparr>, \<TT>\<lparr>HomCod\<rparr>]\<^sub>\<circ> = 4\<^sub>\<nat>
[PROOF STEP]
by (simp add: nat_omega_simps)
[PROOF STATE]
proof (state)
this:
vcard (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj) = 4\<^sub>\<nat>

goal (13 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>)
 7. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 8. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
 9. \<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
 10. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
A total of 13 subgoals...
[PROOF STEP]
show "vsv (?the_cf_rKe\<lparr>ObjMap\<rparr>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>)
[PROOF STEP]
by (cs_concl cs_shallow cs_intro: cat_Kan_cs_intros)
[PROOF STATE]
proof (state)
this:
vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>)

goal (12 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
 8. \<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
 9. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
 10. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
A total of 12 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>)

goal (12 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
 8. \<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
 9. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
 10. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
A total of 12 subgoals...
[PROOF STEP]
show "\<D>\<^sub>\<circ> (?the_cf_rKe\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_simp: cat_Kan_cs_simps cs_intro: cat_cs_intros)
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>

goal (11 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
 8. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
 9. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
 10. \<And>b c g a f. \<lbrakk>g : b \<mapsto>\<^bsub>\<CC>\<^esub> c; f : a \<mapsto>\<^bsub>\<CC>\<^esub> b\<rbrakk> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
A total of 11 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>

goal (11 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
 8. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
 9. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
 10. \<And>b c g a f. \<lbrakk>g : b \<mapsto>\<^bsub>\<CC>\<^esub> c; f : a \<mapsto>\<^bsub>\<CC>\<^esub> b\<rbrakk> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
A total of 11 subgoals...
[PROOF STEP]
show "\<R>\<^sub>\<circ> (?the_cf_rKe\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
proof
      (
        intro the_cf_rKe_ObjMap_vrange;
        (cs_concl cs_shallow cs_simp: cat_cs_simps cs_intro: cat_cs_intros)?
      )
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c. c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> lim_Obj c\<lparr>UObj\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
fix c
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c. c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> lim_Obj c\<lparr>UObj\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
assume "c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (state)
this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<And>c. c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> lim_Obj c\<lparr>UObj\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
with assms(3)[OF this]
[PROOF STATE]
proof (chain)
picking this:
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
show "?UObj c \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. lim_Obj c\<lparr>UObj\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_simp: cat_cs_simps cs_intro: cat_lim_cs_intros)
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UObj\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>

goal (10 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
 8. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
 9. \<And>b c g a f. \<lbrakk>g : b \<mapsto>\<^bsub>\<CC>\<^esub> c; f : a \<mapsto>\<^bsub>\<CC>\<^esub> b\<rbrakk> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
 10. \<And>c. c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>)
\<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
\<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
have [cat_Kan_cs_intros]:
      "?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>" if \<open>c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>\<close> for c
[PROOF STATE]
proof (prove)
using this:
vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>)
\<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
\<R>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>) \<subseteq>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
by (metis that vsubsetE vsv.vsv_value)
[PROOF STATE]
proof (state)
this:
?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>

goal (10 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
 8. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
 9. \<And>b c g a f. \<lbrakk>g : b \<mapsto>\<^bsub>\<CC>\<^esub> c; f : a \<mapsto>\<^bsub>\<CC>\<^esub> b\<rbrakk> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
 10. \<And>c. c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
show "?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> :
      ?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>"
      if "f : a \<mapsto>\<^bsub>\<CC>\<^esub> b" for a b f
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
[PROOF STEP]
using assms(2) that
[PROOF STATE]
proof (prove)
using this:
\<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
[PROOF STEP]
by
        (
          cs_concl
            cs_simp: cat_Kan_cs_simps
            cs_intro: assms(3) cat_cs_intros cat_Kan_cs_intros
        )
[PROOF STATE]
proof (state)
this:
?f : ?a \<mapsto>\<^bsub>\<CC>\<^esub> ?b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?b\<rparr>

goal (9 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
 8. \<And>b c g a f. \<lbrakk>g : b \<mapsto>\<^bsub>\<CC>\<^esub> c; f : a \<mapsto>\<^bsub>\<CC>\<^esub> b\<rbrakk> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
 9. \<And>c. c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
?f : ?a \<mapsto>\<^bsub>\<CC>\<^esub> ?b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?b\<rparr>
[PROOF STEP]
have [cat_Kan_cs_intros]: "?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : A \<mapsto>\<^bsub>\<AA>\<^esub> B"
      if "A = ?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>"
        and "B = ?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>"
        and "f : a \<mapsto>\<^bsub>\<CC>\<^esub> b"
      for A B a b f
[PROOF STATE]
proof (prove)
using this:
?f : ?a \<mapsto>\<^bsub>\<CC>\<^esub> ?b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr> : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?b\<rparr>

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : A \<mapsto>\<^bsub>\<AA>\<^esub> B
[PROOF STEP]
by (simp add: that)
[PROOF STATE]
proof (state)
this:
\<lbrakk>?A = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>; ?B = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?b\<rparr>; ?f : ?a \<mapsto>\<^bsub>\<CC>\<^esub> ?b\<rbrakk> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr> : ?A \<mapsto>\<^bsub>\<AA>\<^esub> ?B

goal (9 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
 8. \<And>b c g a f. \<lbrakk>g : b \<mapsto>\<^bsub>\<CC>\<^esub> c; f : a \<mapsto>\<^bsub>\<CC>\<^esub> b\<rbrakk> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
 9. \<And>c. c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
show
      "?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> =
        ?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>"
      (is \<open>?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = ?the_rKe_g \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?the_rKe_f\<close>)
      if g_is_arr: "g : b \<mapsto>\<^bsub>\<CC>\<^esub> c" and f_is_arr: "f : a \<mapsto>\<^bsub>\<CC>\<^esub> b" for b c g a f
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
let ?ntcf_const_c = \<open>\<lambda>f. ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> f\<close>
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
note g = \<KK>.HomCod.cat_is_arrD[OF that(1)]
        and f = \<KK>.HomCod.cat_is_arrD[OF that(2)]
[PROOF STATE]
proof (state)
this:
g \<in>\<^sub>\<circ> \<CC>\<lparr>Arr\<rparr>
b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
\<CC>\<lparr>Dom\<rparr>\<lparr>g\<rparr> = b
\<CC>\<lparr>Cod\<rparr>\<lparr>g\<rparr> = c
f \<in>\<^sub>\<circ> \<CC>\<lparr>Arr\<rparr>
a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
\<CC>\<lparr>Dom\<rparr>\<lparr>f\<rparr> = a
\<CC>\<lparr>Cod\<rparr>\<lparr>f\<rparr> = b

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
note lim_a = assms(3)[OF f(2)]
        and lim_b = assms(3)[OF g(2)]
        and lim_c = assms(3)[OF g(3)]
[PROOF STATE]
proof (state)
this:
lim_Obj a\<lparr>UArr\<rparr> : lim_Obj a\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : a \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj b\<lparr>UArr\<rparr> : lim_Obj b\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
have gf: "g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f : a \<mapsto>\<^bsub>\<CC>\<^esub> c"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f : a \<mapsto>\<^bsub>\<CC>\<^esub> c
[PROOF STEP]
by (cs_concl cs_shallow cs_intro: cat_cs_intros)
[PROOF STATE]
proof (state)
this:
g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f : a \<mapsto>\<^bsub>\<CC>\<^esub> c

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
interpret lim_a: is_cat_limit
        \<alpha> \<open>a \<down>\<^sub>C\<^sub>F \<KK>\<close> \<AA> \<open>\<TT> \<circ>\<^sub>C\<^sub>F a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>\<close> \<open>?UObj a\<close> \<open>?UArr a\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lim_Obj a\<lparr>UArr\<rparr> : lim_Obj a\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : a \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule lim_a)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
interpret lim_c: is_cat_limit
        \<alpha> \<open>c \<down>\<^sub>C\<^sub>F \<KK>\<close> \<AA> \<open>\<TT> \<circ>\<^sub>C\<^sub>F c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>\<close> \<open>?UObj c\<close> \<open>?UArr c\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule lim_c)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
proof
        (
          rule sym,
          rule the_cf_rKe_ArrMap_app(3)[OF assms(1,2) gf lim_a lim_c]
        )
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : lim_Obj a\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
from assms(1,2) that lim_a lim_b lim_c
[PROOF STATE]
proof (chain)
picking this:
\<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
\<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
lim_Obj a\<lparr>UArr\<rparr> : lim_Obj a\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : a \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj b\<lparr>UArr\<rparr> : lim_Obj b\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
show
          "?the_rKe_g \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?the_rKe_f : ?UObj a \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c"
[PROOF STATE]
proof (prove)
using this:
\<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
\<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
lim_Obj a\<lparr>UArr\<rparr> : lim_Obj a\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : a \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj b\<lparr>UArr\<rparr> : lim_Obj b\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : lim_Obj a\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
[PROOF STEP]
by
            (
              cs_concl
                cs_simp: cat_cs_simps cs_intro: cat_cs_intros cat_Kan_cs_intros
            )
[PROOF STATE]
proof (state)
this:
the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : lim_Obj a\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>

goal (1 subgoal):
 1. lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
show
          "?UArr a \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> =
            ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c (?the_rKe_g \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?the_rKe_f)"
          (
            is
              \<open>
                ?UArr a \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> =
                  ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c ?the_rKe_gf
              \<close>
           )
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
proof(rule ntcf_eqI)
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : ?\<FF> \<mapsto>\<^sub>C\<^sub>F ?\<GG> : ?\<AA> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>
 2. lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>) : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>'
 3. (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>
 4. ?\<FF> = ?\<FF>'
 5. ?\<GG> = ?\<GG>'
 6. ?\<AA> = ?\<AA>'
 7. ?\<BB> = ?\<BB>'
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
show
            "?UArr a \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> :
              cf_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (?UObj a) \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F
              \<TT> \<circ>\<^sub>C\<^sub>F a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>C\<^sub>F ((g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>) :
              c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (cs_concl cs_shallow cs_intro: cat_cs_intros cat_comma_cs_intros)
[PROOF STATE]
proof (state)
this:
lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (6 subgoals):
 1. lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>) : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> ?\<BB>'
 2. (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>
 3. dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = ?\<FF>'
 4. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = ?\<GG>'
 5. c \<down>\<^sub>C\<^sub>F \<KK> = ?\<AA>'
 6. \<AA> = ?\<BB>'
[PROOF STEP]
have [cat_comma_cs_simps]:
            "?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = ?const_comma c a"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)
[PROOF STEP]
proof(rule cf_eqI)
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : ?\<AA> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>
 2. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) : ?\<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<DD>
 3. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>
 4. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>
 5. ?\<AA> = ?\<CC>
 6. ?\<BB> = ?\<DD>
[PROOF STEP]
from g_is_arr f_is_arr
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
show
              "?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by
                (
                  cs_concl
                    cs_simp: cat_comma_cs_simps cat_cs_simps
                    cs_intro:
                      cat_cs_intros cat_lim_cs_intros cat_comma_cs_intros
                )
[PROOF STATE]
proof (state)
this:
dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (5 subgoals):
 1. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) : ?\<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> ?\<DD>
 2. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>
 3. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>
 4. c \<down>\<^sub>C\<^sub>F \<KK> = ?\<CC>
 5. \<AA> = ?\<DD>
[PROOF STEP]
from g_is_arr f_is_arr
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
show "?const_comma c a : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by
                (
                  cs_concl
                    cs_simp: cat_comma_cs_simps cat_cs_simps
                    cs_intro:
                      cat_cs_intros cat_lim_cs_intros cat_comma_cs_intros
                )
[PROOF STATE]
proof (state)
this:
dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (4 subgoals):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>
 2. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>
 3. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 4. \<AA> = \<AA>
[PROOF STEP]
from g_is_arr f_is_arr
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
have ObjMap_dom_lhs:
              "\<D>\<^sub>\<circ> ((?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>) =
                c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. \<D>\<^sub>\<circ> ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by
                (
                  cs_concl
                    cs_simp: cat_comma_cs_simps cat_cs_simps
                    cs_intro:
                      cat_comma_cs_intros cat_lim_cs_intros cat_cs_intros
                )
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (4 subgoals):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>
 2. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>
 3. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 4. \<AA> = \<AA>
[PROOF STEP]
from g_is_arr f_is_arr
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
have ObjMap_dom_rhs:
              "\<D>\<^sub>\<circ> (?const_comma c a\<lparr>ObjMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_simp: cat_comma_cs_simps cat_cs_simps)
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (4 subgoals):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>
 2. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>
 3. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 4. \<AA> = \<AA>
[PROOF STEP]
show
              "(?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> =
                ?const_comma c a\<lparr>ObjMap\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>
[PROOF STEP]
proof(rule vsv_eqI, unfold ObjMap_dom_lhs ObjMap_dom_rhs)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>)
 2. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
from f_is_arr g_is_arr
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
[PROOF STEP]
show
                "vsv ((?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>)"
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c

goal (1 subgoal):
 1. vsv ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>)
[PROOF STEP]
by
                  (
                    cs_concl
                      cs_simp: cat_comma_cs_simps cat_cs_simps
                      cs_intro:
                        cat_cs_intros cat_lim_cs_intros cat_comma_cs_intros
                  )
[PROOF STATE]
proof (state)
this:
vsv ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>)

goal (3 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 3. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 3. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
assume prems: "A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (state)
this:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (3 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 3. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
with g_is_arr
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
obtain b' f'
                where A_def: "A = [0, b', f']\<^sub>\<circ>"
                  and b': "b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>"
                  and f': "f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. (\<And>b' f'. \<lbrakk>A = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>; b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>; f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
A = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (3 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 3. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
from prems b' f' g_is_arr f_is_arr
[PROOF STATE]
proof (chain)
picking this:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
show
                "(?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> =
                  ?const_comma c a\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>"
[PROOF STATE]
proof (prove)
using this:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
unfolding A_def
[PROOF STATE]
proof (prove)
using this:
[[]\<^sub>\<circ>, b', f']\<^sub>\<circ> \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet>
[PROOF STEP]
by
                  (
                    cs_concl
                      cs_simp: cat_comma_cs_simps cat_cs_simps
                      cs_intro:
                        cat_cs_intros cat_lim_cs_intros cat_comma_cs_intros
                  )
[PROOF STATE]
proof (state)
this:
(dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>

goal (2 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
qed (cs_concl cs_shallow cs_intro: cat_cs_intros)
[PROOF STATE]
proof (state)
this:
(dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>

goal (3 subgoals):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>
 2. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 3. \<AA> = \<AA>
[PROOF STEP]
from g_is_arr f_is_arr
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
have ArrMap_dom_lhs:
              "\<D>\<^sub>\<circ> ((?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>) =
                c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. \<D>\<^sub>\<circ> ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
[PROOF STEP]
by
                (
                  cs_concl
                    cs_simp: cat_comma_cs_simps cat_cs_simps
                    cs_intro:
                      cat_comma_cs_intros cat_lim_cs_intros cat_cs_intros
                )
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>

goal (3 subgoals):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>
 2. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 3. \<AA> = \<AA>
[PROOF STEP]
from g_is_arr f_is_arr
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
have ArrMap_dom_rhs:
              "\<D>\<^sub>\<circ> (?const_comma c a\<lparr>ArrMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_simp: cat_comma_cs_simps cat_cs_simps)
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>

goal (3 subgoals):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>
 2. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 3. \<AA> = \<AA>
[PROOF STEP]
show
              "(?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> =
                ?const_comma c a\<lparr>ArrMap\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>
[PROOF STEP]
proof(rule vsv_eqI, unfold ArrMap_dom_lhs ArrMap_dom_rhs)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>)
 2. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
 4. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
from f_is_arr g_is_arr
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
[PROOF STEP]
show
                "vsv ((?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>)"
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c

goal (1 subgoal):
 1. vsv ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>)
[PROOF STEP]
by
                  (
                    cs_concl
                      cs_simp: cat_comma_cs_simps cat_cs_simps
                      cs_intro:
                        cat_cs_intros cat_lim_cs_intros cat_comma_cs_intros
                  )
[PROOF STATE]
proof (state)
this:
vsv ((dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>)

goal (3 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
 3. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
fix F
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
 3. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
assume "F \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>"
[PROOF STATE]
proof (state)
this:
F \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>

goal (3 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
 3. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
F \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
[PROOF STEP]
obtain A B where F: "F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B"
[PROOF STATE]
proof (prove)
using this:
F \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>

goal (1 subgoal):
 1. (\<And>A B. F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding cat_comma_cs_simps
[PROOF STATE]
proof (prove)
using this:
F \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>

goal (1 subgoal):
 1. (\<And>A B. F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (auto intro: is_arrI)
[PROOF STATE]
proof (state)
this:
F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B

goal (3 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
 3. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
with g_is_arr
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
[PROOF STEP]
obtain b' f' b'' f'' h'
                where F_def: "F = [[0, b', f']\<^sub>\<circ>, [0, b'', f'']\<^sub>\<circ>, [0, h']\<^sub>\<circ>]\<^sub>\<circ>"
                  and A_def: "A = [0, b', f']\<^sub>\<circ>"
                  and B_def: "B = [0, b'', f'']\<^sub>\<circ>"
                  and h': "h' : b' \<mapsto>\<^bsub>\<BB>\<^esub> b''"
                  and f': "f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>"
                  and f'': "f'' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>"
                  and f''_def: "\<KK>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f' = f''"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B

goal (1 subgoal):
 1. (\<And>b' f' b'' f'' h'. \<lbrakk>F = [[[]\<^sub>\<circ>, b', f']\<^sub>\<circ>, [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>, [[]\<^sub>\<circ>, h']\<^sub>\<circ>]\<^sub>\<circ>; A = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>; B = [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>; h' : b' \<mapsto>\<^bsub>\<BB>\<^esub> b''; f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>; f'' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>; \<KK>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f' = f''\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
F = [[[]\<^sub>\<circ>, b', f']\<^sub>\<circ>, [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>, [[]\<^sub>\<circ>, h']\<^sub>\<circ>]\<^sub>\<circ>
A = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>
B = [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>
h' : b' \<mapsto>\<^bsub>\<BB>\<^esub> b''
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>
\<KK>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f' = f''

goal (3 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
 3. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> \<Longrightarrow> (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
from F f_is_arr g_is_arr g' h' f' f''
[PROOF STATE]
proof (chain)
picking this:
F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
\<lbrakk>?\<KK> : ?\<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<CC>; ?\<TT> : ?\<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<AA>; ?g : ?c \<mapsto>\<^bsub>?\<CC>\<^esub> ?c'\<rbrakk> \<Longrightarrow> ?g \<in>\<^sub>\<circ> ?\<CC>\<lparr>Arr\<rparr>
h' : b' \<mapsto>\<^bsub>\<BB>\<^esub> b''
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>
[PROOF STEP]
show
                "(?const_comma a a \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> =
                  ?const_comma c a\<lparr>ArrMap\<rparr>\<lparr>F\<rparr>"
[PROOF STATE]
proof (prove)
using this:
F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
\<lbrakk>?\<KK> : ?\<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<CC>; ?\<TT> : ?\<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<AA>; ?g : ?c \<mapsto>\<^bsub>?\<CC>\<^esub> ?c'\<rbrakk> \<Longrightarrow> ?g \<in>\<^sub>\<circ> ?\<CC>\<lparr>Arr\<rparr>
h' : b' \<mapsto>\<^bsub>\<BB>\<^esub> b''
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>

goal (1 subgoal):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr>
[PROOF STEP]
unfolding F_def A_def B_def
[PROOF STATE]
proof (prove)
using this:
[[[]\<^sub>\<circ>, b', f']\<^sub>\<circ>, [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>, [[]\<^sub>\<circ>, h']\<^sub>\<circ>]\<^sub>\<circ> : [[]\<^sub>\<circ>, b', f']\<^sub>\<circ> \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
\<lbrakk>?\<KK> : ?\<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<CC>; ?\<TT> : ?\<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<AA>; ?g : ?c \<mapsto>\<^bsub>?\<CC>\<^esub> ?c'\<rbrakk> \<Longrightarrow> ?g \<in>\<^sub>\<circ> ?\<CC>\<lparr>Arr\<rparr>
h' : b' \<mapsto>\<^bsub>\<BB>\<^esub> b''
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>

goal (1 subgoal):
 1. (dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> \<lparr>[[]\<^sub>\<circ>, b', f']\<^sub>\<circ>, [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>, [[]\<^sub>\<circ>, h']\<^sub>\<circ>\<rparr>\<^sub>\<bullet> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr> \<lparr>[[]\<^sub>\<circ>, b', f']\<^sub>\<circ>, [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>, [[]\<^sub>\<circ>, h']\<^sub>\<circ>\<rparr>\<^sub>\<bullet>
[PROOF STEP]
by
                  (
                    cs_concl
                      cs_intro:
                        cat_lim_cs_intros cat_cs_intros cat_comma_cs_intros
                      cs_simp:
                        cat_cs_simps cat_comma_cs_simps f''_def[symmetric]
                  )
[PROOF STATE]
proof (state)
this:
(dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr>

goal (2 subgoals):
 1. vsv (dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>)
 2. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Arr\<rparr>
[PROOF STEP]
qed (cs_concl cs_shallow cs_intro: cat_cs_intros)
[PROOF STATE]
proof (state)
this:
(dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>

goal (2 subgoals):
 1. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 2. \<AA> = \<AA>
[PROOF STEP]
qed simp_all
[PROOF STATE]
proof (state)
this:
dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>)

goal (6 subgoals):
 1. lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>) : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> ?\<BB>'
 2. (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>
 3. dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = ?\<FF>'
 4. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = ?\<GG>'
 5. c \<down>\<^sub>C\<^sub>F \<KK> = ?\<AA>'
 6. \<AA> = ?\<BB>'
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
show
            "?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c ?the_rKe_gf :
              cf_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (?UObj a) \<circ>\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F
              \<TT> \<circ>\<^sub>C\<^sub>F a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>C\<^sub>F ((g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>) :
              c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>) : dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by
              (
                cs_concl
                  cs_simp: cat_Kan_cs_simps cat_comma_cs_simps cat_cs_simps
                  cs_intro:
                    cat_lim_cs_intros
                    cat_comma_cs_intros
                    cat_Kan_cs_intros
                    cat_cs_intros
              )
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>) : dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (5 subgoals):
 1. (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>
 2. dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 3. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 4. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 5. \<AA> = \<AA>
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
have dom_lhs:
            "\<D>\<^sub>\<circ> ((?UArr a \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. \<D>\<^sub>\<circ> ((lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by
              (
                cs_concl cs_shallow
                  cs_intro: cat_cs_intros cat_comma_cs_intros
                  cs_simp: cat_cs_simps cat_comma_cs_simps
              )
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> ((lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (5 subgoals):
 1. (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>
 2. dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 3. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 4. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 5. \<AA> = \<AA>
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
have dom_rhs:
            "\<D>\<^sub>\<circ> ((?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c ?the_rKe_gf)\<lparr>NTMap\<rparr>) =
              c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. \<D>\<^sub>\<circ> ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by
              (
                cs_concl
                  cs_intro: cat_cs_intros cat_Kan_cs_intros cat_comma_cs_intros
                  cs_simp: cat_Kan_cs_simps cat_cs_simps cat_comma_cs_simps
              )
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (5 subgoals):
 1. (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>
 2. dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 3. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 4. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 5. \<AA> = \<AA>
[PROOF STEP]
show
            "(?UArr a \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> =
              (?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c ?the_rKe_gf)\<lparr>NTMap\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>
[PROOF STEP]
proof(rule vsv_eqI, unfold dom_lhs dom_rhs)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv ((lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>aa\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv ((lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>aa\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
assume prems: "A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (state)
this:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (4 subgoals):
 1. vsv ((lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>aa\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
with g_is_arr
[PROOF STATE]
proof (chain)
picking this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
obtain b' f'
              where A_def: "A = [0, b', f']\<^sub>\<circ>"
                and b': "b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>"
                and f': "f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>"
[PROOF STATE]
proof (prove)
using this:
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. (\<And>b' f'. \<lbrakk>A = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>; b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>; f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
A = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (4 subgoals):
 1. vsv ((lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>aa\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
note \<TT>.HomCod.cat_Comp_assoc[cat_cs_simps del]
              and \<KK>.HomCod.cat_Comp_assoc[cat_cs_simps del]
              and category.cat_Comp_assoc[cat_cs_simps del]
[PROOF STATE]
proof (state)
this:
\<lbrakk>?h : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; ?g : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; ?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b\<rbrakk> \<Longrightarrow> ?h \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?g \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f = ?h \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (?g \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f)
\<lbrakk>?h : ?c \<mapsto>\<^bsub>\<CC>\<^esub> ?d; ?g : ?b \<mapsto>\<^bsub>\<CC>\<^esub> ?c; ?f : ?a \<mapsto>\<^bsub>\<CC>\<^esub> ?b\<rbrakk> \<Longrightarrow> ?h \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> ?g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> ?f = ?h \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> (?g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> ?f)
\<lbrakk>category ?\<alpha> ?\<CC>; ?h : ?c \<mapsto>\<^bsub>?\<CC>\<^esub> ?d; ?g : ?b \<mapsto>\<^bsub>?\<CC>\<^esub> ?c; ?f : ?a \<mapsto>\<^bsub>?\<CC>\<^esub> ?b\<rbrakk> \<Longrightarrow> ?h \<circ>\<^sub>A\<^bsub>?\<CC>\<^esub> ?g \<circ>\<^sub>A\<^bsub>?\<CC>\<^esub> ?f = ?h \<circ>\<^sub>A\<^bsub>?\<CC>\<^esub> (?g \<circ>\<^sub>A\<^bsub>?\<CC>\<^esub> ?f)

goal (4 subgoals):
 1. vsv ((lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>aa\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
note [symmetric, cat_cs_simps] =
              lim_Obj_the_cf_rKe_commute[where lim_Obj=lim_Obj]
              \<KK>.HomCod.cat_Comp_assoc
              \<TT>.HomCod.cat_Comp_assoc
[PROOF STATE]
proof (state)
this:
\<lbrakk>?\<KK> : ?\<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<CC>; ?\<TT> : ?\<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<AA>; lim_Obj ?a\<lparr>UArr\<rparr> : lim_Obj ?a\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m ?\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M ?a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F ?\<KK> : ?a \<down>\<^sub>C\<^sub>F ?\<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<AA>; lim_Obj ?b\<lparr>UArr\<rparr> : lim_Obj ?b\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m ?\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M ?b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F ?\<KK> : ?b \<down>\<^sub>C\<^sub>F ?\<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<AA>; ?f : ?a \<mapsto>\<^bsub>?\<CC>\<^esub> ?b; [?a', ?b', ?f']\<^sub>\<circ> \<in>\<^sub>\<circ> ?b \<down>\<^sub>C\<^sub>F ?\<KK>\<lparr>Obj\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj ?b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a', ?b', ?f'\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>?\<AA>\<^esub> the_cf_rKe ?\<alpha> ?\<TT> ?\<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr> = lim_Obj ?a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a', ?b', ?f' \<circ>\<^sub>A\<^bsub>?\<CC>\<^esub> ?f\<rparr>\<^sub>\<bullet>
\<lbrakk>?h : ?c \<mapsto>\<^bsub>\<CC>\<^esub> ?d; ?g : ?b \<mapsto>\<^bsub>\<CC>\<^esub> ?c; ?f : ?a \<mapsto>\<^bsub>\<CC>\<^esub> ?b\<rbrakk> \<Longrightarrow> ?h \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> (?g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> ?f) = ?h \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> ?g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> ?f
\<lbrakk>?h : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; ?g : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; ?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b\<rbrakk> \<Longrightarrow> ?h \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (?g \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = ?h \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?g \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (4 subgoals):
 1. vsv ((lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>aa. aa \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>aa\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>\<lparr>aa\<rparr>
[PROOF STEP]
from assms(1,2) that prems lim_a lim_b lim_c b' f'
[PROOF STATE]
proof (chain)
picking this:
\<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
\<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
lim_Obj a\<lparr>UArr\<rparr> : lim_Obj a\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : a \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj b\<lparr>UArr\<rparr> : lim_Obj b\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
[PROOF STEP]
show
              "(?UArr a \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> =
                (?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c ?the_rKe_gf)\<lparr>NTMap\<rparr>\<lparr>A\<rparr>"
[PROOF STATE]
proof (prove)
using this:
\<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
\<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
lim_Obj a\<lparr>UArr\<rparr> : lim_Obj a\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : a \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj b\<lparr>UArr\<rparr> : lim_Obj b\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (1 subgoal):
 1. (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
unfolding A_def
[PROOF STATE]
proof (prove)
using this:
\<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
\<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
g : b \<mapsto>\<^bsub>\<CC>\<^esub> c
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[[]\<^sub>\<circ>, b', f']\<^sub>\<circ> \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
lim_Obj a\<lparr>UArr\<rparr> : lim_Obj a\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : a \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj b\<lparr>UArr\<rparr> : lim_Obj b\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (1 subgoal):
 1. (lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet>
[PROOF STEP]
by (*very slow*)
                (
                  cs_concl
                    cs_simp:
                      cat_cs_simps cat_Kan_cs_simps cat_comma_cs_simps
                    cs_intro:
                      cat_cs_intros cat_Kan_cs_intros cat_comma_cs_intros
                )+
[PROOF STATE]
proof (state)
this:
(lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>\<lparr>A\<rparr>

goal (3 subgoals):
 1. vsv ((lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
qed (cs_concl cs_simp: cs_intro: cat_cs_intros)+
[PROOF STATE]
proof (state)
this:
(lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>))\<lparr>NTMap\<rparr>

goal (4 subgoals):
 1. dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (a \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj a\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj a\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 2. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M a \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 3. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 4. \<AA> = \<AA>
[PROOF STEP]
qed simp_all
[PROOF STATE]
proof (state)
this:
lim_Obj a\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<lbrakk>?g : ?b \<mapsto>\<^bsub>\<CC>\<^esub> ?c; ?f : ?a \<mapsto>\<^bsub>\<CC>\<^esub> ?b\<rbrakk> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>?g \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> ?f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>?g\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>

goal (8 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
 8. \<And>c. c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
show "?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>"
      if "c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>" for c
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
let ?ntcf_const_c = \<open>ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>?UObj c\<rparr>)\<close>
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
note lim_c = assms(3)[OF that]
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
have CId_c: "\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr> : c \<mapsto>\<^bsub>\<CC>\<^esub> c"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr> : c \<mapsto>\<^bsub>\<CC>\<^esub> c
[PROOF STEP]
by (cs_concl cs_shallow cs_intro: cat_cs_intros)
[PROOF STATE]
proof (state)
this:
\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr> : c \<mapsto>\<^bsub>\<CC>\<^esub> c

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
interpret lim_c: is_cat_limit
        \<alpha> \<open>c \<down>\<^sub>C\<^sub>F \<KK>\<close> \<AA> \<open>\<TT> \<circ>\<^sub>C\<^sub>F c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>\<close> \<open>?UObj c\<close> \<open>?UArr c\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule lim_c)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>
[PROOF STEP]
proof
        (
          rule sym,
          rule the_cf_rKe_ArrMap_app(3)[
            where lim_Obj=lim_Obj, OF assms(1,2) CId_c lim_c lim_c
            ]
        )
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr> : lim_Obj c\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
[PROOF STEP]
from that lim_c
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
show
          "\<AA>\<lparr>CId\<rparr>\<lparr>?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr> : ?UObj c \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (1 subgoal):
 1. \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr> : lim_Obj c\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
[PROOF STEP]
by
            (
              cs_concl cs_shallow
                cs_simp: cat_Kan_cs_simps
                cs_intro: cat_cs_intros cat_lim_cs_intros
            )
[PROOF STATE]
proof (state)
this:
\<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr> : lim_Obj c\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>

goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
[PROOF STEP]
have "?UArr c \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> =  ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>)
[PROOF STEP]
proof(rule ntcf_eqI)
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : ?\<FF> \<mapsto>\<^sub>C\<^sub>F ?\<GG> : ?\<AA> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>
 2. lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>'
 3. (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>
 4. ?\<FF> = ?\<FF>'
 5. ?\<GG> = ?\<GG>'
 6. ?\<AA> = ?\<AA>'
 7. ?\<BB> = ?\<BB>'
[PROOF STEP]
from lim_c that
[PROOF STATE]
proof (chain)
picking this:
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
show
            "?UArr c \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> :
              cf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (?UObj c) \<circ>\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F
              \<TT> \<circ>\<^sub>C\<^sub>F c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> :
              c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
using this:
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (cs_concl cs_shallow cs_intro: cat_cs_intros cat_comma_cs_intros)
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (6 subgoals):
 1. lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> ?\<BB>'
 2. (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>
 3. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = ?\<FF>'
 4. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = ?\<GG>'
 5. c \<down>\<^sub>C\<^sub>F \<KK> = ?\<AA>'
 6. \<AA> = ?\<BB>'
[PROOF STEP]
from lim_c that
[PROOF STATE]
proof (chain)
picking this:
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
show
            "?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c :
               cf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (?UObj c) \<circ>\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F
               \<TT> \<circ>\<^sub>C\<^sub>F c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> :
               c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
using this:
lim_Obj c\<lparr>UArr\<rparr> : lim_Obj c\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (*very slow*)
              (
                cs_concl
                  cs_intro: cat_cs_intros
                  cs_simp: \<KK>.cf_arr_cf_comma_CId cat_cs_simps
                  cs_intro: cat_lim_cs_intros
              )
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (5 subgoals):
 1. (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>
 2. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 3. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 4. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 5. \<AA> = \<AA>
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
have dom_lhs:
            "\<D>\<^sub>\<circ> ((?UArr c \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<D>\<^sub>\<circ> ((lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by
              (
                cs_concl cs_shallow
                  cs_simp: cat_cs_simps
                  cs_intro: cat_cs_intros cat_comma_cs_intros
              )
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> ((lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (5 subgoals):
 1. (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>
 2. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 3. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 4. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 5. \<AA> = \<AA>
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
have dom_rhs:
            "\<D>\<^sub>\<circ> ((?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c)\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<D>\<^sub>\<circ> ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by
              (
                cs_concl
                  cs_intro: cat_lim_cs_intros cat_cs_intros
                  cs_simp: cat_cs_simps
              )
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (5 subgoals):
 1. (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>
 2. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 3. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 4. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 5. \<AA> = \<AA>
[PROOF STEP]
show
            "(?UArr c \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> =
              (?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c)\<lparr>NTMap\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>
[PROOF STEP]
proof(rule vsv_eqI, unfold dom_lhs dom_rhs)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
assume prems: "A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (state)
this:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (4 subgoals):
 1. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
with that
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
obtain b f
              where A_def: "A = [0, b, f]\<^sub>\<circ>"
                and b: "b \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>"
                and f: "f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. (\<And>b f. \<lbrakk>A = [[]\<^sub>\<circ>, b, f]\<^sub>\<circ>; b \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>; f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
A = [[]\<^sub>\<circ>, b, f]\<^sub>\<circ>
b \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>

goal (4 subgoals):
 1. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
from that prems f
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
[PROOF STEP]
have
              "?UArr c\<lparr>NTMap\<rparr>\<lparr>0, b, f\<rparr>\<^sub>\<bullet> : ?UObj c \<mapsto>\<^bsub>\<AA>\<^esub> \<TT>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>

goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b, f\<rparr>\<^sub>\<bullet> : lim_Obj c\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> \<TT>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
[PROOF STEP]
unfolding A_def
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[[]\<^sub>\<circ>, b, f]\<^sub>\<circ> \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>

goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b, f\<rparr>\<^sub>\<bullet> : lim_Obj c\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> \<TT>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
[PROOF STEP]
by
                (
                  cs_concl
                    cs_simp: cat_cs_simps cat_comma_cs_simps
                    cs_intro: cat_comma_cs_intros cat_cs_intros
                )
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b, f\<rparr>\<^sub>\<bullet> : lim_Obj c\<lparr>UObj\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> \<TT>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>

goal (4 subgoals):
 1. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
from that prems f
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
[PROOF STEP]
show
              "(?UArr c \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> =
                (?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ?ntcf_const_c)\<lparr>NTMap\<rparr>\<lparr>A\<rparr>"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>

goal (1 subgoal):
 1. (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
unfolding A_def
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[[]\<^sub>\<circ>, b, f]\<^sub>\<circ> \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>

goal (1 subgoal):
 1. (lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b, f\<rparr>\<^sub>\<bullet> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b, f\<rparr>\<^sub>\<bullet>
[PROOF STEP]
by
                (
                  cs_concl
                    cs_simp: cat_cs_simps cat_comma_cs_simps
                    cs_intro:
                      cat_lim_cs_intros cat_comma_cs_intros cat_cs_intros
                )
[PROOF STATE]
proof (state)
this:
(lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>\<lparr>A\<rparr>

goal (3 subgoals):
 1. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr>)
 2. vsv ((lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>)
 3. c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
qed (cs_concl cs_intro: cat_cs_intros)
[PROOF STATE]
proof (state)
this:
(lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>)\<lparr>NTMap\<rparr> = (lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>))\<lparr>NTMap\<rparr>

goal (4 subgoals):
 1. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj c\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>) \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 2. \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK>
 3. c \<down>\<^sub>C\<^sub>F \<KK> = c \<down>\<^sub>C\<^sub>F \<KK>
 4. \<AA> = \<AA>
[PROOF STEP]
qed simp_all
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>)

goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
[PROOF STEP]
with that
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>)
[PROOF STEP]
show
          "?UArr c \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> =
            ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj c\<lparr>UObj\<rparr>\<rparr>)

goal (1 subgoal):
 1. lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
[PROOF STEP]
by
            (
              cs_concl cs_shallow
                cs_simp: cat_Kan_cs_simps cs_intro: cat_cs_intros
            )
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UArr\<rparr> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>) \<^sub>A\<down>\<^sub>C\<^sub>F \<KK> = lim_Obj c\<lparr>UArr\<rparr> \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>?c\<rparr>\<rparr> = \<AA>\<lparr>CId\<rparr>\<lparr>the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr>\<rparr>

goal (7 subgoals):
 1. \<Z> \<alpha>
 2. category \<alpha> \<CC>
 3. category \<alpha> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomDom\<rparr> = \<CC>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>HomCod\<rparr> = \<AA>
 6. vsv (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>)
 7. \<D>\<^sub>\<circ> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>) = \<CC>\<lparr>Arr\<rparr>
[PROOF STEP]
qed
    (
      cs_concl
        cs_simp: cat_Kan_cs_simps cs_intro: cat_cs_intros cat_Kan_cs_intros
    )+
[PROOF STATE]
proof (state)
this:
the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal:
No subgoals!
[PROOF STEP]
qed