[STATEMENT]
lemma the_ntcf_rKe_is_cat_rKe:
  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_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj :
    the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>
[PROOF STEP]
let ?UObj = \<open>\<lambda>a. lim_Obj a\<lparr>UObj\<rparr>\<close>
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>
[PROOF STEP]
let ?UArr = \<open>\<lambda>a. lim_Obj a\<lparr>UArr\<rparr>\<close>
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<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_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>
[PROOF STEP]
let ?the_ntcf_rKe = \<open>the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj\<close>
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<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_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<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_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>
[PROOF STEP]
interpret cf_rKe: is_functor \<alpha> \<CC> \<AA> ?the_cf_rKe
[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]
by (rule the_cf_rKe_is_functor[OF assms, simplified])
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>
[PROOF STEP]
interpret ntcf_rKe: is_ntcf \<alpha> \<BB> \<AA> \<open>?the_cf_rKe \<circ>\<^sub>C\<^sub>F \<KK>\<close> \<TT> ?the_ntcf_rKe
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (intro the_ntcf_rKe_is_ntcf assms(3))
      (cs_concl cs_shallow cs_intro: cat_cs_intros)+
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>
[PROOF STEP]
proof(rule is_cat_rKeI')
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
fix \<GG> \<epsilon>
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
assume prems:
      "\<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>" "\<epsilon> : \<GG> \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (state)
this:
\<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
\<epsilon> : \<GG> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
interpret \<GG>: is_functor \<alpha> \<CC> \<AA> \<GG>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule prems(1))
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
interpret \<epsilon>: is_ntcf \<alpha> \<BB> \<AA> \<open>\<GG> \<circ>\<^sub>C\<^sub>F \<KK>\<close> \<TT> \<epsilon>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon> : \<GG> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule prems(2))
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
define \<epsilon>' where "\<epsilon>' c =
      [
        (\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>),
        cf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>),
        \<TT> \<circ>\<^sub>C\<^sub>F c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>,
        c \<down>\<^sub>C\<^sub>F \<KK>,
        \<AA>
      ]\<^sub>\<circ>"
      for c
[PROOF STATE]
proof (state)
this:
\<epsilon>' ?c = [\<lambda>A\<in>\<^sub>\<circ>?c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>, dghm_const (?c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have \<epsilon>'_components:
      "\<epsilon>' c\<lparr>NTMap\<rparr> = (\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>)"
      "\<epsilon>' c\<lparr>NTDom\<rparr> = cf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>)"
      "\<epsilon>' c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>C\<^sub>F c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>"
      "\<epsilon>' c\<lparr>NTDGDom\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>"
      "\<epsilon>' c\<lparr>NTDGCod\<rparr> = \<AA>"
      for c
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<epsilon>' c\<lparr>NTMap\<rparr> = (\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>) &&& \<epsilon>' c\<lparr>NTDom\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)) &&& \<epsilon>' c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> &&& \<epsilon>' c\<lparr>NTDGDom\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK> &&& \<epsilon>' c\<lparr>NTDGCod\<rparr> = \<AA>
[PROOF STEP]
unfolding \<epsilon>'_def nt_field_simps
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ([\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>, dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>[]\<^sub>\<circ>\<rparr> = (\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>) &&& [\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>, dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>1\<^sub>\<nat>\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)) &&& [\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>, dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>2\<^sub>\<nat>\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> &&& [\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>, dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>3\<^sub>\<nat>\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK> &&& [\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>, dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>4\<^sub>\<nat>\<rparr> = \<AA>
[PROOF STEP]
by (simp_all add: nat_omega_simps)
[PROOF STATE]
proof (state)
this:
\<epsilon>' ?c\<lparr>NTMap\<rparr> = (\<lambda>A\<in>\<^sub>\<circ>?c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>)
\<epsilon>' ?c\<lparr>NTDom\<rparr> = dghm_const (?c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr>\<rparr>)
\<epsilon>' ?c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M ?c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
\<epsilon>' ?c\<lparr>NTDGDom\<rparr> = ?c \<down>\<^sub>C\<^sub>F \<KK>
\<epsilon>' ?c\<lparr>NTDGCod\<rparr> = \<AA>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
note [cat_Kan_cs_simps] = \<epsilon>'_components(2-5)
[PROOF STATE]
proof (state)
this:
\<epsilon>' ?c\<lparr>NTDom\<rparr> = dghm_const (?c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr>\<rparr>)
\<epsilon>' ?c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M ?c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
\<epsilon>' ?c\<lparr>NTDGDom\<rparr> = ?c \<down>\<^sub>C\<^sub>F \<KK>
\<epsilon>' ?c\<lparr>NTDGCod\<rparr> = \<AA>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have [cat_Kan_cs_simps]: "\<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>"
      if "A = [a, b, f]\<^sub>\<circ>" and "[a, b, f]\<^sub>\<circ> \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>" for A a b c f
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
A = [a, b, f]\<^sub>\<circ>
[a, b, f]\<^sub>\<circ> \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
unfolding \<epsilon>'_components
[PROOF STATE]
proof (prove)
using this:
A = [a, b, f]\<^sub>\<circ>
[a, b, f]\<^sub>\<circ> \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. (\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>)\<lparr>A\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
by (auto simp: nat_omega_simps)
[PROOF STATE]
proof (state)
this:
\<lbrakk>?A = [?a, ?b, ?f]\<^sub>\<circ>; [?a, ?b, ?f]\<^sub>\<circ> \<in>\<^sub>\<circ> ?c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>\<rbrakk> \<Longrightarrow> \<epsilon>' ?c\<lparr>NTMap\<rparr>\<lparr>?A\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have \<epsilon>': "\<epsilon>' c : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>"
      and \<epsilon>'_unique: "\<exists>!f'.
        f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c \<and>
        \<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> f'"
      if c: "c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>" for c
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>' c : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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> &&& \<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<epsilon>' c : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
 2. \<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
have "?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> = ?UObj c"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

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

goal (2 subgoals):
 1. \<epsilon>' c : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
 2. \<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
[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 assms(3)[OF that])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<epsilon>' c : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
 2. \<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
[PROOF STEP]
show "\<epsilon>' c : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>' c : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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]
proof(intro is_cat_coneI is_ntcfI')
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<Z> \<alpha>
 2. vfsequence (\<epsilon>' c)
 3. vcard (\<epsilon>' c) = 5\<^sub>\<nat>
 4. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>) : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 5. \<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>
 6. \<epsilon>' c\<lparr>NTDom\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
 7. \<epsilon>' c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 8. \<epsilon>' c\<lparr>NTDGDom\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>
 9. \<epsilon>' c\<lparr>NTDGCod\<rparr> = \<AA>
 10. vsv (\<epsilon>' c\<lparr>NTMap\<rparr>)
A total of 14 subgoals...
[PROOF STEP]
show "vfsequence (\<epsilon>' c)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vfsequence (\<epsilon>' c)
[PROOF STEP]
unfolding \<epsilon>'_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vfsequence [\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>, dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
vfsequence (\<epsilon>' c)

goal (13 subgoals):
 1. \<Z> \<alpha>
 2. vcard (\<epsilon>' c) = 5\<^sub>\<nat>
 3. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>) : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<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>
 5. \<epsilon>' c\<lparr>NTDom\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
 6. \<epsilon>' c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 7. \<epsilon>' c\<lparr>NTDGDom\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>
 8. \<epsilon>' c\<lparr>NTDGCod\<rparr> = \<AA>
 9. vsv (\<epsilon>' c\<lparr>NTMap\<rparr>)
 10. \<D>\<^sub>\<circ> (\<epsilon>' c\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
A total of 13 subgoals...
[PROOF STEP]
show "vcard (\<epsilon>' c) = 5\<^sub>\<nat>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vcard (\<epsilon>' c) = 5\<^sub>\<nat>
[PROOF STEP]
unfolding \<epsilon>'_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vcard [\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>, dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ> = 5\<^sub>\<nat>
[PROOF STEP]
by (simp add: nat_omega_simps)
[PROOF STATE]
proof (state)
this:
vcard (\<epsilon>' c) = 5\<^sub>\<nat>

goal (12 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>) : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<epsilon>' c\<lparr>NTDom\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
 5. \<epsilon>' c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<epsilon>' c\<lparr>NTDGDom\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>
 7. \<epsilon>' c\<lparr>NTDGCod\<rparr> = \<AA>
 8. vsv (\<epsilon>' c\<lparr>NTMap\<rparr>)
 9. \<D>\<^sub>\<circ> (\<epsilon>' c\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 10. \<And>a. a \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>
A total of 12 subgoals...
[PROOF STEP]
show "vsv (\<epsilon>' c\<lparr>NTMap\<rparr>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vsv (\<epsilon>' c\<lparr>NTMap\<rparr>)
[PROOF STEP]
unfolding \<epsilon>'_components
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vsv (\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
vsv (\<epsilon>' c\<lparr>NTMap\<rparr>)

goal (11 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>) : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<epsilon>' c\<lparr>NTDom\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
 5. \<epsilon>' c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<epsilon>' c\<lparr>NTDGDom\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>
 7. \<epsilon>' c\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<D>\<^sub>\<circ> (\<epsilon>' c\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 9. \<And>a. a \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>
 10. \<And>a b f. f : a \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> b \<Longrightarrow> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
A total of 11 subgoals...
[PROOF STEP]
show "\<D>\<^sub>\<circ> (\<epsilon>' c\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (\<epsilon>' c\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
unfolding \<epsilon>'_components
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (\<lambda>A\<in>\<^sub>\<circ>c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>A\<lparr>1\<^sub>\<nat>\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>A\<lparr>2\<^sub>\<nat>\<rparr>\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (\<epsilon>' c\<lparr>NTMap\<rparr>) = c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (10 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>) : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<epsilon>' c\<lparr>NTDom\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
 5. \<epsilon>' c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<epsilon>' c\<lparr>NTDGDom\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>
 7. \<epsilon>' c\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<And>a. a \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>
 9. \<And>a b f. f : a \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> b \<Longrightarrow> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
 10. \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
show "\<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> :
          cf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub>
          (\<TT> \<circ>\<^sub>C\<^sub>F c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>"
          if "A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>" for A
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
from that prems c
[PROOF STATE]
proof (chain)
picking this:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
\<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
\<epsilon> : \<GG> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
c \<in>\<^sub>\<circ> \<CC>\<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:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
\<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
\<epsilon> : \<GG> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
c \<in>\<^sub>\<circ> \<CC>\<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 (1 subgoal):
 1. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
from that prems f c that b f
[PROOF STATE]
proof (chain)
picking this:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
\<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
\<epsilon> : \<GG> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
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>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
\<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
\<epsilon> : \<GG> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
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>

goal (1 subgoal):
 1. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<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>
\<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
\<epsilon> : \<GG> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
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>
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. \<epsilon>' c\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b, f\<rparr>\<^sub>\<bullet> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr> \<lparr>[]\<^sub>\<circ>, b, f\<rparr>\<^sub>\<bullet> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> \<lparr>[]\<^sub>\<circ>, b, f\<rparr>\<^sub>\<bullet>
[PROOF STEP]
by
              (
                cs_concl cs_shallow
                  cs_simp: cat_cs_simps cat_Kan_cs_simps cat_comma_cs_simps
                  cs_intro: cat_cs_intros cat_comma_cs_intros
              )
[PROOF STATE]
proof (state)
this:
\<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>?A\<rparr> : dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>?A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>?A\<rparr>

goal (9 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>) : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<epsilon>' c\<lparr>NTDom\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
 5. \<epsilon>' c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<epsilon>' c\<lparr>NTDGDom\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>
 7. \<epsilon>' c\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<And>a b f. f : a \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> b \<Longrightarrow> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
 9. \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
show
          "\<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> cf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> =
            (\<TT> \<circ>\<^sub>C\<^sub>F c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr>"
          if "F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B" for A B F
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
from that c
[PROOF STATE]
proof (chain)
picking this:
F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
obtain b f b' f' k
            where F_def: "F = [[0, b, f]\<^sub>\<circ>, [0, b', f']\<^sub>\<circ>, [0, k]\<^sub>\<circ>]\<^sub>\<circ>"
              and A_def: "A = [0, b, f]\<^sub>\<circ>"
              and B_def: "B = [0, b', f']\<^sub>\<circ>"
              and k: "k : 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>k\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f = f'"
[PROOF STATE]
proof (prove)
using this:
F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. (\<And>b f b' f' k. \<lbrakk>F = [[[]\<^sub>\<circ>, b, f]\<^sub>\<circ>, [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>, [[]\<^sub>\<circ>, k]\<^sub>\<circ>]\<^sub>\<circ>; A = [[]\<^sub>\<circ>, b, f]\<^sub>\<circ>; B = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>; k : 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>k\<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>, k]\<^sub>\<circ>]\<^sub>\<circ>
A = [[]\<^sub>\<circ>, b, f]\<^sub>\<circ>
B = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>
k : 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>k\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f = f'

goal (1 subgoal):
 1. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
from c that k f f'
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
k : 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 ?thesis
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
F : A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
k : 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. \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
unfolding F_def A_def B_def
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[[[]\<^sub>\<circ>, b, f]\<^sub>\<circ>, [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>, [[]\<^sub>\<circ>, k]\<^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>
k : 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. \<epsilon>' c\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr> \<lparr>[[]\<^sub>\<circ>, b, f]\<^sub>\<circ>, [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>, [[]\<^sub>\<circ>, k]\<^sub>\<circ>\<rparr>\<^sub>\<bullet> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr> \<lparr>[[]\<^sub>\<circ>, b, f]\<^sub>\<circ>, [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>, [[]\<^sub>\<circ>, k]\<^sub>\<circ>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b, f\<rparr>\<^sub>\<bullet>
[PROOF STEP]
by (*slow*)
              (
                cs_concl
                  cs_simp:
                    cat_cs_simps
                    cat_comma_cs_simps
                    cat_Kan_cs_simps
                    \<epsilon>.ntcf_Comp_commute''
                    f'_def[symmetric]
                  cs_intro: cat_cs_intros cat_comma_cs_intros
              )
[PROOF STATE]
proof (state)
this:
\<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?F : ?A \<mapsto>\<^bsub>c \<down>\<^sub>C\<^sub>F \<KK>\<^esub> ?B \<Longrightarrow> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>?B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>?F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>?F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>?A\<rparr>

goal (8 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>) : c \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<epsilon>' c\<lparr>NTDom\<rparr> = dghm_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>\<rparr>)
 5. \<epsilon>' c\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M c \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<epsilon>' c\<lparr>NTDGDom\<rparr> = c \<down>\<^sub>C\<^sub>F \<KK>
 7. \<epsilon>' c\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
qed
        (
          use c that in
            \<open>cs_concl cs_simp: cat_Kan_cs_simps cs_intro: cat_cs_intros\<close>
        )+
[PROOF STATE]
proof (state)
this:
\<epsilon>' c : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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. \<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
[PROOF STEP]
from is_cat_limit.cat_lim_ua_fo[OF assms(3)[OF that] this]
[PROOF STATE]
proof (chain)
picking this:
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
[PROOF STEP]
show
        "\<exists>!f'.
          f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c \<and>
          \<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> f'"
[PROOF STATE]
proof (prove)
using this:
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'

goal (1 subgoal):
 1. \<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>' ?c : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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> \<Longrightarrow> \<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj ?c\<lparr>UObj\<rparr> \<and> \<epsilon>' ?c = 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> f'

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
define \<sigma> :: V where
      "\<sigma> =
        [
          (
            \<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f.
              f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c \<and>
              \<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> f
          ),
          \<GG>,
          ?the_cf_rKe,
          \<CC>,
          \<AA>
        ]\<^sub>\<circ>"
[PROOF STATE]
proof (state)
this:
\<sigma> = [\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f, \<GG>, the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj, \<CC>, \<AA>]\<^sub>\<circ>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have \<sigma>_components:
      "\<sigma>\<lparr>NTMap\<rparr> =
        (
          \<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f.
            f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c \<and>
            \<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> f
        )"
      "\<sigma>\<lparr>NTDom\<rparr> = \<GG>"
      "\<sigma>\<lparr>NTCod\<rparr> = ?the_cf_rKe"
      "\<sigma>\<lparr>NTDGDom\<rparr> = \<CC>"
      "\<sigma>\<lparr>NTDGCod\<rparr> = \<AA>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<sigma>\<lparr>NTMap\<rparr> = (\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f) &&& \<sigma>\<lparr>NTDom\<rparr> = \<GG>) &&& \<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj &&& \<sigma>\<lparr>NTDGDom\<rparr> = \<CC> &&& \<sigma>\<lparr>NTDGCod\<rparr> = \<AA>
[PROOF STEP]
unfolding \<sigma>_def nt_field_simps
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ([\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f, \<GG>, the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj, \<CC>, \<AA>]\<^sub>\<circ>\<lparr>[]\<^sub>\<circ>\<rparr> = (\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f) &&& [\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f, \<GG>, the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj, \<CC>, \<AA>]\<^sub>\<circ>\<lparr>1\<^sub>\<nat>\<rparr> = \<GG>) &&& [\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f, \<GG>, the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj, \<CC>, \<AA>]\<^sub>\<circ>\<lparr>2\<^sub>\<nat>\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj &&& [\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f, \<GG>, the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj, \<CC>, \<AA>]\<^sub>\<circ>\<lparr>3\<^sub>\<nat>\<rparr> = \<CC> &&& [\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f, \<GG>, the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj, \<CC>, \<AA>]\<^sub>\<circ>\<lparr>4\<^sub>\<nat>\<rparr> = \<AA>
[PROOF STEP]
by (simp_all add: nat_omega_simps)
[PROOF STATE]
proof (state)
this:
\<sigma>\<lparr>NTMap\<rparr> = (\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f)
\<sigma>\<lparr>NTDom\<rparr> = \<GG>
\<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
\<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
\<sigma>\<lparr>NTDGCod\<rparr> = \<AA>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
note [cat_Kan_cs_simps] = \<sigma>_components(2-5)
[PROOF STATE]
proof (state)
this:
\<sigma>\<lparr>NTDom\<rparr> = \<GG>
\<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
\<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
\<sigma>\<lparr>NTDGCod\<rparr> = \<AA>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have \<sigma>_NTMap_app_def: "\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> =
      (
        THE f.
          f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c \<and>
          \<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> f
      )"
      if "c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>" for c
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = (THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f)
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = (THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f)
[PROOF STEP]
unfolding \<sigma>_components
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. (\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f)\<lparr>c\<rparr> = (THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr> = (THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj ?c\<lparr>UObj\<rparr> \<and> \<epsilon>' ?c = 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> f)

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have \<sigma>_NTMap_app_is_arr: "\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c"
      and \<epsilon>'_\<sigma>_commute:
        "\<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)"
      and \<sigma>_NTMap_app_unique:
        "\<lbrakk>
          f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c;
          \<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> f
         \<rbrakk> \<Longrightarrow> f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>"
        if c: "c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>" for c f
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> &&& \<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>) &&& (\<lbrakk>f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>; \<epsilon>' c = 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> f\<rbrakk> \<Longrightarrow> f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)
 3. \<lbrakk>f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>; \<epsilon>' c = 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> f\<rbrakk> \<Longrightarrow> f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
have
        "\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c \<and>
        \<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)
[PROOF STEP]
by
          (
            cs_concl cs_shallow
              cs_simp: cat_Kan_cs_simps \<sigma>_NTMap_app_def
              cs_intro: theI' \<epsilon>'_unique that
          )
[PROOF STATE]
proof (state)
this:
\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)

goal (3 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)
 3. \<lbrakk>f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>; \<epsilon>' c = 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> f\<rbrakk> \<Longrightarrow> f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)
[PROOF STEP]
show "\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c"
        and "\<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)"
[PROOF STATE]
proof (prove)
using this:
\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> &&& \<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)
[PROOF STEP]
by simp_all
[PROOF STATE]
proof (state)
this:
\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
\<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)

goal (1 subgoal):
 1. \<lbrakk>f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>; \<epsilon>' c = 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> f\<rbrakk> \<Longrightarrow> f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
with c \<epsilon>'_unique[OF c]
[PROOF STATE]
proof (chain)
picking this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
\<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)
[PROOF STEP]
show "f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>"
        if "f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c"
          and "\<epsilon>' c = ?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> f"
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
\<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)

goal (1 subgoal):
 1. f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f'
\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
\<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)
f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
\<epsilon>' c = 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> f

goal (1 subgoal):
 1. f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
\<lbrakk>f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>; \<epsilon>' c = 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> f\<rbrakk> \<Longrightarrow> f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj ?c\<lparr>UObj\<rparr>
?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>' ?c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr>)
\<lbrakk>?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>; ?f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj ?c\<lparr>UObj\<rparr>; \<epsilon>' ?c = 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> ?f\<rbrakk> \<Longrightarrow> ?f = \<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have \<sigma>_NTMap_app_is_arr'[cat_Kan_cs_intros]: "\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : a \<mapsto>\<^bsub>\<AA>'\<^esub> b"
      if "c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>"
        and "a = \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr>"
        and "b = ?UObj c"
        and "\<AA>' = \<AA>"
      for \<AA>' a b c
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : a \<mapsto>\<^bsub>\<AA>'\<^esub> b
[PROOF STEP]
by (simp add: that \<sigma>_NTMap_app_is_arr)
[PROOF STATE]
proof (state)
this:
\<lbrakk>?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>; ?a = \<GG>\<lparr>ObjMap\<rparr>\<lparr>?c\<rparr>; ?b = lim_Obj ?c\<lparr>UObj\<rparr>; ?\<AA>' = \<AA>\<rbrakk> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr> : ?a \<mapsto>\<^bsub>?\<AA>'\<^esub> ?b

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have \<epsilon>'_NTMap_app_def:
      "\<epsilon>' c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> =
        (?UArr c \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F ntcf_const (c \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>))\<lparr>NTMap\<rparr>\<lparr>A\<rparr>"
      if "A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>" and "c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>" for A c
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>' c\<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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>))\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
using \<epsilon>'_\<sigma>_commute[OF that(2)]
[PROOF STATE]
proof (prove)
using this:
\<epsilon>' c = 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>)

goal (1 subgoal):
 1. \<epsilon>' c\<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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>))\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<lbrakk>?A \<in>\<^sub>\<circ> ?c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>; ?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>\<rbrakk> \<Longrightarrow> \<epsilon>' ?c\<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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr>))\<lparr>NTMap\<rparr>\<lparr>?A\<rparr>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have \<epsilon>b_\<GG>f:
      "\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> =
        ?UArr c\<lparr>NTMap\<rparr>\<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>"
      if "A = [a, b, f]\<^sub>\<circ>" and "A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>" and "c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>"
      for A a b c f
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<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 assms(3)[OF that(3)])
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
A = [a, b, f]\<^sub>\<circ>
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
have 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:
A = [a, b, f]\<^sub>\<circ>
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. b \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr> &&& f : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>
[PROOF STEP]
by blast+
[PROOF STATE]
proof (state)
this:
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. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
show
        "\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> =
          ?UArr c\<lparr>NTMap\<rparr>\<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
using \<epsilon>'_NTMap_app_def[OF that(2,3)] that(2,3)
[PROOF STATE]
proof (prove)
using this:
\<epsilon>' c\<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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>))\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
unfolding that(1)
[PROOF STATE]
proof (prove)
using this:
\<epsilon>' c\<lparr>NTMap\<rparr> \<lparr>a, 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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>))\<lparr>NTMap\<rparr> \<lparr>a, b, f\<rparr>\<^sub>\<bullet>
[a, b, f]\<^sub>\<circ> \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
by
          (
            cs_prems cs_shallow
              cs_simp: cat_cs_simps cat_Kan_cs_simps
              cs_intro: cat_cs_intros cat_Kan_cs_intros
          )
[PROOF STATE]
proof (state)
this:
\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a, b, f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<lbrakk>?A = [?a, ?b, ?f]\<^sub>\<circ>; ?A \<in>\<^sub>\<circ> ?c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>; ?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>\<rbrakk> \<Longrightarrow> \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr> = lim_Obj ?c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a, ?b, ?f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr>

goal (4 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<And>\<GG>' \<epsilon>'. \<lbrakk>\<GG>' : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon>' : \<GG>' \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>\<rbrakk> \<Longrightarrow> \<exists>!\<sigma>. \<sigma> : \<GG>' \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon>' = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
show "\<exists>!\<sigma>.
      \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F ?the_cf_rKe : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and>
      \<epsilon> = ?the_ntcf_rKe \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F \<KK>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<exists>!\<sigma>. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
proof(intro ex1I[where a=\<sigma>] conjI; (elim conjE)?)
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 2. \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
 3. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
define \<tau> where "\<tau> a b f =
        [
          (
            \<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>.
              ?UArr b\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
          ),
          cf_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>),
          \<TT> \<circ>\<^sub>C\<^sub>F b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>,
          b \<down>\<^sub>C\<^sub>F \<KK>,
          \<AA>
        ]\<^sub>\<circ>"
        for a b f
[PROOF STATE]
proof (state)
this:
\<tau> ?a ?b ?f = [\<lambda>F\<in>\<^sub>\<circ>?b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj ?b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>, dghm_const (?b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>

goal (3 subgoals):
 1. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 2. \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
 3. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
have \<tau>_components:
        "\<tau> a b f\<lparr>NTMap\<rparr> =
          (
            \<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>.
              ?UArr b\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
          )"
        "\<tau> a b f\<lparr>NTDom\<rparr> = cf_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>)"
        "\<tau> a b f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>C\<^sub>F b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>"
        "\<tau> a b f\<lparr>NTDGDom\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK>"
        "\<tau> a b f\<lparr>NTDGCod\<rparr> = \<AA>"
        for a b f
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> a b f\<lparr>NTMap\<rparr> = (\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>) &&& \<tau> a b f\<lparr>NTDom\<rparr> = dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)) &&& \<tau> a b f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> &&& \<tau> a b f\<lparr>NTDGDom\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK> &&& \<tau> a b f\<lparr>NTDGCod\<rparr> = \<AA>
[PROOF STEP]
unfolding \<tau>_def nt_field_simps
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ([\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>, dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>[]\<^sub>\<circ>\<rparr> = (\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>) &&& [\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>, dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>1\<^sub>\<nat>\<rparr> = dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)) &&& [\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>, dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>2\<^sub>\<nat>\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> &&& [\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>, dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>3\<^sub>\<nat>\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK> &&& [\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>[]\<^sub>\<circ>\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>, dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>\<lparr>4\<^sub>\<nat>\<rparr> = \<AA>
[PROOF STEP]
by (simp_all add: nat_omega_simps)
[PROOF STATE]
proof (state)
this:
\<tau> ?a ?b ?f\<lparr>NTMap\<rparr> = (\<lambda>F\<in>\<^sub>\<circ>?b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj ?b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>)
\<tau> ?a ?b ?f\<lparr>NTDom\<rparr> = dghm_const (?b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>\<rparr>)
\<tau> ?a ?b ?f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M ?b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
\<tau> ?a ?b ?f\<lparr>NTDGDom\<rparr> = ?b \<down>\<^sub>C\<^sub>F \<KK>
\<tau> ?a ?b ?f\<lparr>NTDGCod\<rparr> = \<AA>

goal (3 subgoals):
 1. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 2. \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
 3. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
note [cat_Kan_cs_simps] = \<tau>_components(2-5)
[PROOF STATE]
proof (state)
this:
\<tau> ?a ?b ?f\<lparr>NTDom\<rparr> = dghm_const (?b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>\<rparr>)
\<tau> ?a ?b ?f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M ?b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
\<tau> ?a ?b ?f\<lparr>NTDGDom\<rparr> = ?b \<down>\<^sub>C\<^sub>F \<KK>
\<tau> ?a ?b ?f\<lparr>NTDGCod\<rparr> = \<AA>

goal (3 subgoals):
 1. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 2. \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
 3. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
have \<tau>_NTMap_app[cat_Kan_cs_simps]:
        "\<tau> a b f\<lparr>NTMap\<rparr>\<lparr>F\<rparr> =
          ?UArr b\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>"
        if "F \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>" for a b f F
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>F\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
F \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>F\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
unfolding \<tau>_components
[PROOF STATE]
proof (prove)
using this:
F \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. (\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)\<lparr>F\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
?F \<in>\<^sub>\<circ> ?b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> ?a ?b ?f\<lparr>NTMap\<rparr>\<lparr>?F\<rparr> = lim_Obj ?b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>?F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>

goal (3 subgoals):
 1. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 2. \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
 3. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
have \<tau>: "\<tau> a b f :
        \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<TT> \<circ>\<^sub>C\<^sub>F b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
        if f_is_arr: "f : a \<mapsto>\<^bsub>\<CC>\<^esub> b" for a b f
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<tau> a b f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<tau> a b f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
[PROOF STEP]
note f = \<KK>.HomCod.cat_is_arrD[OF that]
[PROOF STATE]
proof (state)
this:
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. \<tau> a b f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
[PROOF STEP]
note lim_a = assms(3)[OF f(2)] and lim_b = assms(3)[OF f(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>

goal (1 subgoal):
 1. \<tau> a b f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
[PROOF STEP]
interpret lim_b: is_cat_limit
          \<alpha> \<open>b \<down>\<^sub>C\<^sub>F \<KK>\<close> \<AA> \<open>\<TT> \<circ>\<^sub>C\<^sub>F b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>\<close> \<open>?UObj b\<close> \<open>?UArr b\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 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>
[PROOF STEP]
by (rule lim_b)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<tau> a b f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
[PROOF STEP]
note lim_b.cat_cone_Comp_commute[cat_cs_simps del]
[PROOF STATE]
proof (state)
this:
?f : ?a \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> ?b \<Longrightarrow> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>?a\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr>

goal (1 subgoal):
 1. \<tau> a b f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
[PROOF STEP]
from f
[PROOF STATE]
proof (chain)
picking this:
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
[PROOF STEP]
have a: "a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>" and b: "b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
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. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> &&& b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<tau> a b f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<tau> a b f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>
[PROOF STEP]
proof(intro is_cat_coneI is_ntcfI')
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<Z> \<alpha>
 2. vfsequence (\<tau> a b f)
 3. vcard (\<tau> a b f) = 5\<^sub>\<nat>
 4. dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>) : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 5. \<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>
 6. \<tau> a b f\<lparr>NTDom\<rparr> = dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)
 7. \<tau> a b f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 8. \<tau> a b f\<lparr>NTDGDom\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK>
 9. \<tau> a b f\<lparr>NTDGCod\<rparr> = \<AA>
 10. vsv (\<tau> a b f\<lparr>NTMap\<rparr>)
A total of 14 subgoals...
[PROOF STEP]
show "vfsequence (\<tau> a b f)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vfsequence (\<tau> a b f)
[PROOF STEP]
unfolding \<tau>_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vfsequence [\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>, dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
vfsequence (\<tau> a b f)

goal (13 subgoals):
 1. \<Z> \<alpha>
 2. vcard (\<tau> a b f) = 5\<^sub>\<nat>
 3. dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>) : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<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>
 5. \<tau> a b f\<lparr>NTDom\<rparr> = dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)
 6. \<tau> a b f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 7. \<tau> a b f\<lparr>NTDGDom\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK>
 8. \<tau> a b f\<lparr>NTDGCod\<rparr> = \<AA>
 9. vsv (\<tau> a b f\<lparr>NTMap\<rparr>)
 10. \<D>\<^sub>\<circ> (\<tau> a b f\<lparr>NTMap\<rparr>) = b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
A total of 13 subgoals...
[PROOF STEP]
show "vcard (\<tau> a b f) = 5\<^sub>\<nat>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vcard (\<tau> a b f) = 5\<^sub>\<nat>
[PROOF STEP]
unfolding \<tau>_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vcard [\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>, dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>), \<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>, \<AA>]\<^sub>\<circ> = 5\<^sub>\<nat>
[PROOF STEP]
by (simp add: nat_omega_simps)
[PROOF STATE]
proof (state)
this:
vcard (\<tau> a b f) = 5\<^sub>\<nat>

goal (12 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>) : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<tau> a b f\<lparr>NTDom\<rparr> = dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)
 5. \<tau> a b f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<tau> a b f\<lparr>NTDGDom\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK>
 7. \<tau> a b f\<lparr>NTDGCod\<rparr> = \<AA>
 8. vsv (\<tau> a b f\<lparr>NTMap\<rparr>)
 9. \<D>\<^sub>\<circ> (\<tau> a b f\<lparr>NTMap\<rparr>) = b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 10. \<And>aa. aa \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>aa\<rparr> : dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr>
A total of 12 subgoals...
[PROOF STEP]
show "vsv (\<tau> a b f\<lparr>NTMap\<rparr>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vsv (\<tau> a b f\<lparr>NTMap\<rparr>)
[PROOF STEP]
unfolding \<tau>_components
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vsv (\<lambda>F\<in>\<^sub>\<circ>b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>. lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
vsv (\<tau> a b f\<lparr>NTMap\<rparr>)

goal (11 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>) : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<tau> a b f\<lparr>NTDom\<rparr> = dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)
 5. \<tau> a b f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<tau> a b f\<lparr>NTDGDom\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK>
 7. \<tau> a b f\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<D>\<^sub>\<circ> (\<tau> a b f\<lparr>NTMap\<rparr>) = b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
 9. \<And>aa. aa \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>aa\<rparr> : dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr>
 10. \<And>aa ba fa. fa : aa \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> ba \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>ba\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>fa\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>fa\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>aa\<rparr>
A total of 11 subgoals...
[PROOF STEP]
show "\<D>\<^sub>\<circ> (\<tau> a b f\<lparr>NTMap\<rparr>) = b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (\<tau> a b f\<lparr>NTMap\<rparr>) = b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by (auto simp: \<tau>_components)
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (\<tau> a b f\<lparr>NTMap\<rparr>) = b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (10 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>) : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<tau> a b f\<lparr>NTDom\<rparr> = dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)
 5. \<tau> a b f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<tau> a b f\<lparr>NTDGDom\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK>
 7. \<tau> a b f\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<And>aa. aa \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>aa\<rparr> : dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>aa\<rparr>
 9. \<And>aa ba fa. fa : aa \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> ba \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>ba\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>fa\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>fa\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>aa\<rparr>
 10. \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
show "\<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> :
            cf_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub>
            (\<TT> \<circ>\<^sub>C\<^sub>F b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>"
            if "A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>" for A
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> : dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> : dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
from that f_is_arr
[PROOF STATE]
proof (chain)
picking this:
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>"
[PROOF STATE]
proof (prove)
using this:
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. (\<And>b' f'. \<lbrakk>A = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>; b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>; f' : b \<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> : dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
from  f_is_arr that b' f' a b
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

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

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> : dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ObjMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet>
[PROOF STEP]
by
                (
                  cs_concl cs_shallow
                    cs_simp: cat_cs_simps cat_comma_cs_simps cat_Kan_cs_simps
                    cs_intro: cat_cs_intros cat_comma_cs_intros cat_Kan_cs_intros
                )
[PROOF STATE]
proof (state)
this:
\<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> : dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>A\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>?A\<rparr> : dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ObjMap\<rparr>\<lparr>?A\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ObjMap\<rparr>\<lparr>?A\<rparr>

goal (9 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>) : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<tau> a b f\<lparr>NTDom\<rparr> = dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)
 5. \<tau> a b f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<tau> a b f\<lparr>NTDGDom\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK>
 7. \<tau> a b f\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<And>aa ba fa. fa : aa \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> ba \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>ba\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>fa\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>fa\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>aa\<rparr>
 9. \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
show
            "\<tau> a b f\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub>
              cf_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> =
              (\<TT> \<circ>\<^sub>C\<^sub>F b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr>"
            if "F : A \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B" for A B F
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
F : A \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
[PROOF STEP]
have F: "F : A \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B"
[PROOF STATE]
proof (prove)
using this:
F : A \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B

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

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
with f_is_arr
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
F : A \<mapsto>\<^bsub>b \<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>"
                and f'': "f'' : b \<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:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
F : A \<mapsto>\<^bsub>b \<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>; f'' : b \<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : b \<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 (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
from
              lim_b.ntcf_Comp_commute[OF that]
              that f_is_arr g' h' f' f''
[PROOF STATE]
proof (chain)
picking this:
lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj b\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj b\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
F : A \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
\<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>
[PROOF STEP]
have [cat_Kan_cs_simps]:
              "?UArr b\<lparr>NTMap\<rparr>\<lparr>0, b'', \<KK>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f'\<rparr>\<^sub>\<bullet> =
                \<TT>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?UArr b\<lparr>NTMap\<rparr>\<lparr>0, b', f'\<rparr>\<^sub>\<bullet>"
[PROOF STATE]
proof (prove)
using this:
lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj b\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj b\<lparr>UObj\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
F : A \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
\<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>

goal (1 subgoal):
 1. lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b'', \<KK>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f'\<rparr>\<^sub>\<bullet> = \<TT>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet>
[PROOF STEP]
unfolding F_def A_def B_def
[PROOF STATE]
proof (prove)
using this:
lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b'', f''\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (lim_Obj b\<lparr>UObj\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>lim_Obj b\<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> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^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> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet>
[[[]\<^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>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
\<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>

goal (1 subgoal):
 1. lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b'', \<KK>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f'\<rparr>\<^sub>\<bullet> = \<TT>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet>
[PROOF STEP]
by
                (
                  cs_prems
                    cs_simp:
                      cat_cs_simps cat_comma_cs_simps f''_def[symmetric]
                    cs_intro: cat_cs_intros cat_comma_cs_intros
                )
[PROOF STATE]
proof (state)
this:
lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b'', \<KK>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f'\<rparr>\<^sub>\<bullet> = \<TT>\<lparr>ArrMap\<rparr>\<lparr>h'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
from f_is_arr that g' h' f' f''
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
F : A \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
\<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
F : A \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> B
\<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr>
[PROOF STEP]
unfolding F_def A_def B_def
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[[[]\<^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>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>
\<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b'', f''\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<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> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^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> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet>
[PROOF STEP]
(*very slow*)
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[[[]\<^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>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> [[]\<^sub>\<circ>, b'', f'']\<^sub>\<circ>
\<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
f'' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b''\<rparr>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b'', f''\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<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> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^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> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet>
[PROOF STEP]
by
                (
                  cs_concl
                    cs_simp:
                      cat_cs_simps
                      cat_Kan_cs_simps
                      cat_comma_cs_simps
                      f''_def[symmetric]
                    cs_intro:
                      cat_cs_intros cat_Kan_cs_intros cat_comma_cs_intros
                )+
[PROOF STATE]
proof (state)
this:
\<tau> a b f\<lparr>NTMap\<rparr>\<lparr>B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?F : ?A \<mapsto>\<^bsub>b \<down>\<^sub>C\<^sub>F \<KK>\<^esub> ?B \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>?B\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)\<lparr>ArrMap\<rparr>\<lparr>?F\<rparr> = (\<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>)\<lparr>ArrMap\<rparr>\<lparr>?F\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>?A\<rparr>

goal (8 subgoals):
 1. \<Z> \<alpha>
 2. dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>) : b \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. \<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>
 4. \<tau> a b f\<lparr>NTDom\<rparr> = dghm_const (b \<down>\<^sub>C\<^sub>F \<KK>) \<AA> (\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>) (\<AA>\<lparr>CId\<rparr>\<lparr>\<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>\<rparr>)
 5. \<tau> a b f\<lparr>NTCod\<rparr> = \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>
 6. \<tau> a b f\<lparr>NTDGDom\<rparr> = b \<down>\<^sub>C\<^sub>F \<KK>
 7. \<tau> a b f\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<in>\<^sub>\<circ> \<AA>\<lparr>Obj\<rparr>
[PROOF STEP]
qed
          (
            use that f_is_arr in
              \<open>
                cs_concl
                  cs_simp: cat_cs_simps cat_Kan_cs_simps cs_intro: cat_cs_intros
              \<close>
          )+
[PROOF STATE]
proof (state)
this:
\<tau> a b f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
?f : ?a \<mapsto>\<^bsub>\<CC>\<^esub> ?b \<Longrightarrow> \<tau> ?a ?b ?f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>c\<^sub>o\<^sub>n\<^sub>e \<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>

goal (3 subgoals):
 1. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 2. \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
 3. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
show \<sigma>: "\<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F ?the_cf_rKe : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
proof(rule is_ntcfI')
[PROOF STATE]
proof (state)
goal (13 subgoals):
 1. \<Z> \<alpha>
 2. vfsequence \<sigma>
 3. vcard \<sigma> = 5\<^sub>\<nat>
 4. \<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 5. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 6. \<sigma>\<lparr>NTDom\<rparr> = \<GG>
 7. \<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 8. \<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
 9. \<sigma>\<lparr>NTDGCod\<rparr> = \<AA>
 10. vsv (\<sigma>\<lparr>NTMap\<rparr>)
A total of 13 subgoals...
[PROOF STEP]
show "vfsequence \<sigma>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vfsequence \<sigma>
[PROOF STEP]
unfolding \<sigma>_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vfsequence [\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f, \<GG>, the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj, \<CC>, \<AA>]\<^sub>\<circ>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
vfsequence \<sigma>

goal (12 subgoals):
 1. \<Z> \<alpha>
 2. vcard \<sigma> = 5\<^sub>\<nat>
 3. \<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 5. \<sigma>\<lparr>NTDom\<rparr> = \<GG>
 6. \<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 7. \<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
 8. \<sigma>\<lparr>NTDGCod\<rparr> = \<AA>
 9. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 10. \<D>\<^sub>\<circ> (\<sigma>\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
A total of 12 subgoals...
[PROOF STEP]
show "vcard \<sigma> = 5\<^sub>\<nat>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vcard \<sigma> = 5\<^sub>\<nat>
[PROOF STEP]
unfolding \<sigma>_def
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vcard [\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f, \<GG>, the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj, \<CC>, \<AA>]\<^sub>\<circ> = 5\<^sub>\<nat>
[PROOF STEP]
by (simp add: nat_omega_simps)
[PROOF STATE]
proof (state)
this:
vcard \<sigma> = 5\<^sub>\<nat>

goal (11 subgoals):
 1. \<Z> \<alpha>
 2. \<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<sigma>\<lparr>NTDom\<rparr> = \<GG>
 5. \<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 6. \<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
 7. \<sigma>\<lparr>NTDGCod\<rparr> = \<AA>
 8. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 9. \<D>\<^sub>\<circ> (\<sigma>\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
 10. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>
A total of 11 subgoals...
[PROOF STEP]
show "vsv (\<sigma>\<lparr>NTMap\<rparr>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vsv (\<sigma>\<lparr>NTMap\<rparr>)
[PROOF STEP]
unfolding \<sigma>_components
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. vsv (\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
vsv (\<sigma>\<lparr>NTMap\<rparr>)

goal (10 subgoals):
 1. \<Z> \<alpha>
 2. \<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<sigma>\<lparr>NTDom\<rparr> = \<GG>
 5. \<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 6. \<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
 7. \<sigma>\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<D>\<^sub>\<circ> (\<sigma>\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
 9. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>
 10. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
show "\<D>\<^sub>\<circ> (\<sigma>\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (\<sigma>\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
unfolding \<sigma>_components
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (\<lambda>c\<in>\<^sub>\<circ>\<CC>\<lparr>Obj\<rparr>. THE f. f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> \<epsilon>' c = 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> f) = \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (\<sigma>\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>

goal (9 subgoals):
 1. \<Z> \<alpha>
 2. \<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<sigma>\<lparr>NTDom\<rparr> = \<GG>
 5. \<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 6. \<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
 7. \<sigma>\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>
 9. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
show "\<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>"
          if "a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>" for a
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
using that
[PROOF STATE]
proof (prove)
using this:
a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
by
            (
              cs_concl
                cs_simp: cat_cs_simps cat_Kan_cs_simps
                cs_intro: cat_cs_intros cat_Kan_cs_intros
            )
[PROOF STATE]
proof (state)
this:
?a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>

goal (8 subgoals):
 1. \<Z> \<alpha>
 2. \<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<sigma>\<lparr>NTDom\<rparr> = \<GG>
 5. \<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 6. \<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
 7. \<sigma>\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
?a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>
[PROOF STEP]
have [cat_Kan_cs_intros]: "\<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : b \<mapsto>\<^bsub>\<AA>\<^esub> c"
          if "a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>"
            and "b = \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>"
            and "c = ?the_cf_rKe\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>"
          for a b c
[PROOF STATE]
proof (prove)
using this:
?a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : b \<mapsto>\<^bsub>\<AA>\<^esub> c
[PROOF STEP]
using that(1)
[PROOF STATE]
proof (prove)
using this:
?a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>
a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : b \<mapsto>\<^bsub>\<AA>\<^esub> c
[PROOF STEP]
unfolding that(2,3)
[PROOF STATE]
proof (prove)
using this:
?a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>
a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<lbrakk>?a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>; ?b = \<GG>\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>; ?c = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ObjMap\<rparr>\<lparr>?a\<rparr>\<rbrakk> \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?a\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c

goal (8 subgoals):
 1. \<Z> \<alpha>
 2. \<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<sigma>\<lparr>NTDom\<rparr> = \<GG>
 5. \<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 6. \<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
 7. \<sigma>\<lparr>NTDGCod\<rparr> = \<AA>
 8. \<And>a b f. f : a \<mapsto>\<^bsub>\<CC>\<^esub> b \<Longrightarrow> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
show
          "\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> =
            ?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>"
          if f_is_arr: "f : a \<mapsto>\<^bsub>\<CC>\<^esub> b" for a b f
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
note f = \<KK>.HomCod.cat_is_arrD[OF that]
[PROOF STATE]
proof (state)
this:
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. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
note lim_a = assms(3)[OF f(2)] and lim_b = assms(3)[OF f(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>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<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. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
interpret lim_b: is_cat_limit
            \<alpha> \<open>b \<down>\<^sub>C\<^sub>F \<KK>\<close> \<AA> \<open>\<TT> \<circ>\<^sub>C\<^sub>F b \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>\<close> \<open>?UObj b\<close> \<open>?UArr b\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. 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>
[PROOF STEP]
by (rule lim_b)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
from f
[PROOF STATE]
proof (chain)
picking this:
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
[PROOF STEP]
have a: "a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>" and b: "b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
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. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> &&& b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
b \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
from lim_b.cat_lim_unique_cone'[OF \<tau>[OF that]]
[PROOF STATE]
proof (chain)
picking this:
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr> \<and> (\<forall>j\<in>elts (b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>). \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>j\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>j\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> f')
[PROOF STEP]
obtain g'
            where g': "g' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj b"
              and \<tau>_NTMap_app: "\<And>A. A \<in>\<^sub>\<circ> (b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>) \<Longrightarrow>
                \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = ?UArr b\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> g'"
              and g'_unique: "\<And>g''.
                \<lbrakk>
                  g'' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj b;
                  \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow>
                    \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = ?UArr b\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> g''
                \<rbrakk> \<Longrightarrow> g'' = g'"
[PROOF STATE]
proof (prove)
using this:
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr> \<and> (\<forall>j\<in>elts (b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>). \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>j\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>j\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> f')

goal (1 subgoal):
 1. (\<And>g'. \<lbrakk>g' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>; \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> g'; \<And>g''. \<lbrakk>g'' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>; \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> g''\<rbrakk> \<Longrightarrow> g'' = g'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
g' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
?A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>?A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>?A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> g'
\<lbrakk>?g'' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>; \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?g''\<rbrakk> \<Longrightarrow> ?g'' = g'

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
have lim_Obj_a_f\<KK>[symmetric, cat_Kan_cs_simps]:
            "?UArr a\<lparr>NTMap\<rparr>\<lparr>a', b', f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> =
              ?UArr b\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>"
            if "A = [a', b', f']\<^sub>\<circ>" and "A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>" for A a' b' f'
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lim_Obj a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<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. lim_Obj a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<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(2) f_is_arr
[PROOF STATE]
proof (chain)
picking this:
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
have a'_def: "a' = 0"
              and b': "b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>"
              and f': "f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>"
[PROOF STATE]
proof (prove)
using this:
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. a' = []\<^sub>\<circ> &&& b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr> &&& f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
[PROOF STEP]
unfolding that(1)
[PROOF STATE]
proof (prove)
using this:
[a', b', f']\<^sub>\<circ> \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. a' = []\<^sub>\<circ> &&& b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr> &&& f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
a' = []\<^sub>\<circ>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (1 subgoal):
 1. lim_Obj a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<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. lim_Obj a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>
[PROOF STEP]
unfolding that(1)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lim_Obj a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> = 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>
[PROOF STEP]
by
                (
                  rule
                    lim_Obj_the_cf_rKe_commute
                      [
                        where lim_Obj=lim_Obj,
                        OF
                          assms(1,2)
                          lim_a
                          lim_b
                          f_is_arr
                          that(2)[unfolded that(1)]
                      ]
                )
[PROOF STATE]
proof (state)
this:
lim_Obj a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<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>?A = [?a', ?b', ?f']\<^sub>\<circ>; ?A \<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\<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>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a', ?b', ?f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<lbrakk>?A = [?a', ?b', ?f']\<^sub>\<circ>; ?A \<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\<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>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a', ?b', ?f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
fix a' b' f' A
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
note \<TT>.HomCod.cat_assoc_helper[
              where h=\<open>?UArr b\<lparr>NTMap\<rparr>\<lparr>a',b',f'\<rparr>\<^sub>\<bullet>\<close>
                and g=\<open>?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>\<close>
                and q=\<open>?UArr a\<lparr>NTMap\<rparr>\<lparr>a', b', f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet>\<close>
                ]
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f'\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; 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>\<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> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = lim_Obj a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f' \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, ?f'3\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, ?f'3\<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'3, ?b'3, ?f'3 \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet>\<rbrakk> \<Longrightarrow> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, ?f'3\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = lim_Obj a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, ?f'3 \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
note [cat_Kan_cs_simps] = this
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, ?f'3\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, ?f'3\<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'3, ?b'3, ?f'3 \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet>\<rbrakk> \<Longrightarrow> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, ?f'3\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = lim_Obj a\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, ?f'3 \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
proof(rule trans_sym[where s=g'])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = g'
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = g'
[PROOF STEP]
show "\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = g'"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = g'
[PROOF STEP]
proof(rule g'_unique)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
from that
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[PROOF STEP]
show
                "\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj b"
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
[PROOF STEP]
by (cs_concl cs_intro: cat_cs_intros cat_Kan_cs_intros)
[PROOF STATE]
proof (state)
this:
\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>

goal (1 subgoal):
 1. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
assume prems': "A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (state)
this:
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
with f_is_arr
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>"
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<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' : b \<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (1 subgoal):
 1. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
from f_is_arr prems'
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
show
                "\<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> =
                  ?UArr b\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)"
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
unfolding A_def
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[[]\<^sub>\<circ>, b', f']\<^sub>\<circ> \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)
[PROOF STEP]
by
                  (
                    cs_concl
                      cs_simp: cat_cs_simps cat_Kan_cs_simps
                      cs_intro: cat_cs_intros cat_Kan_cs_intros
                  )
[PROOF STATE]
proof (state)
this:
\<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr>)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> = g'

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = g'
[PROOF STEP]
show "?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = g'"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = g'
[PROOF STEP]
proof(rule g'_unique)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
assume prems': "A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (state)
this:
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
with f_is_arr
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>"
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<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' : b \<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' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
A = [[]\<^sub>\<circ>, b', f']\<^sub>\<circ>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
fix a' b' f' A
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
note \<TT>.HomCod.cat_assoc_helper
                  [
                    where h=\<open>?UArr b\<lparr>NTMap\<rparr>\<lparr>a', b', f'\<rparr>\<^sub>\<bullet>\<close>
                      and g=\<open>\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr>\<close>
                      and q=\<open>\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>\<close>
                  ]
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f'\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', f'\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f'\<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> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'a3, ?f'a3\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'a3, ?f'a3\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'a3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f'a3\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'a3, ?f'a3\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'a3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f'a3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
note [cat_Kan_cs_simps] =
                this
                \<epsilon>b_\<GG>f[OF A_def prems' b, symmetric]
                \<epsilon>b_\<GG>f[symmetric]
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'a3, ?f'a3\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'a3, ?f'a3\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'a3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f'a3\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'a3, ?f'a3\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'a3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f'a3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f
lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>
\<lbrakk>?A = [?a, ?b, ?f]\<^sub>\<circ>; ?A \<in>\<^sub>\<circ> ?c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>; ?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj ?c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a, ?b, ?f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>

goal (2 subgoals):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
from f_is_arr prems' b' f'
[PROOF STATE]
proof (chain)
picking this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
[PROOF STEP]
show
                "\<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> =
                  ?UArr b\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub>
                    (?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)"
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
A \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
unfolding A_def
[PROOF STATE]
proof (prove)
using this:
f : a \<mapsto>\<^bsub>\<CC>\<^esub> b
[[]\<^sub>\<circ>, b', f']\<^sub>\<circ> \<in>\<^sub>\<circ> b \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : b \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>

goal (1 subgoal):
 1. \<tau> a b f\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, 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> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)
[PROOF STEP]
by
                  (
                    cs_concl
                      cs_simp:
                        cat_cs_simps
                        cat_Kan_cs_simps
                        cat_comma_cs_simps
                        cat_op_simps
                      cs_intro:
                        cat_cs_intros
                        cat_Kan_cs_intros
                        cat_comma_cs_intros
                        cat_op_intros
                  )
[PROOF STATE]
proof (state)
this:
\<tau> a b f\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj b\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>)

goal (1 subgoal):
 1. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>a\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj b\<lparr>UObj\<rparr>
[PROOF STEP]
qed
              (
                use that in
                  \<open>
                    cs_concl
                      cs_simp: cat_Kan_cs_simps
                      cs_intro: cat_cs_intros cat_Kan_cs_intros
                  \<close>
              )
[PROOF STATE]
proof (state)
this:
the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = g'

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

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

goal (7 subgoals):
 1. \<Z> \<alpha>
 2. \<GG> : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 4. \<sigma>\<lparr>NTDom\<rparr> = \<GG>
 5. \<sigma>\<lparr>NTCod\<rparr> = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 6. \<sigma>\<lparr>NTDGDom\<rparr> = \<CC>
 7. \<sigma>\<lparr>NTDGCod\<rparr> = \<AA>
[PROOF STEP]
qed
        (
          cs_concl cs_shallow
            cs_simp: cat_cs_simps cat_Kan_cs_simps
            cs_intro: cat_cs_intros
        )+
[PROOF STATE]
proof (state)
this:
\<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (2 subgoals):
 1. \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
 2. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
interpret \<sigma>: is_ntcf \<alpha> \<CC> \<AA> \<GG> \<open>?the_cf_rKe\<close> \<sigma>
[PROOF STATE]
proof (prove)
using this:
\<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (1 subgoal):
 1. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
 2. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
show "\<epsilon> = ?the_ntcf_rKe \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F \<KK>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
proof(rule ntcf_eqI)
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. \<epsilon> : ?\<FF> \<mapsto>\<^sub>C\<^sub>F ?\<GG> : ?\<AA> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>
 2. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>) : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>'
 3. \<epsilon>\<lparr>NTMap\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>
 4. ?\<FF> = ?\<FF>'
 5. ?\<GG> = ?\<GG>'
 6. ?\<AA> = ?\<AA>'
 7. ?\<BB> = ?\<BB>'
[PROOF STEP]
have dom_lhs: "\<D>\<^sub>\<circ> (\<epsilon>\<lparr>NTMap\<rparr>) = \<BB>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (\<epsilon>\<lparr>NTMap\<rparr>) = \<BB>\<lparr>Obj\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_simp: cat_cs_simps)
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (\<epsilon>\<lparr>NTMap\<rparr>) = \<BB>\<lparr>Obj\<rparr>

goal (7 subgoals):
 1. \<epsilon> : ?\<FF> \<mapsto>\<^sub>C\<^sub>F ?\<GG> : ?\<AA> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>
 2. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>) : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>'
 3. \<epsilon>\<lparr>NTMap\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>
 4. ?\<FF> = ?\<FF>'
 5. ?\<GG> = ?\<GG>'
 6. ?\<AA> = ?\<AA>'
 7. ?\<BB> = ?\<BB>'
[PROOF STEP]
have dom_rhs: "\<D>\<^sub>\<circ> ((?the_ntcf_rKe \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F \<KK>))\<lparr>NTMap\<rparr>) = \<BB>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> ((the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>) = \<BB>\<lparr>Obj\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_simp: cat_cs_simps cs_intro: cat_cs_intros)
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> ((the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>) = \<BB>\<lparr>Obj\<rparr>

goal (7 subgoals):
 1. \<epsilon> : ?\<FF> \<mapsto>\<^sub>C\<^sub>F ?\<GG> : ?\<AA> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>
 2. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>) : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>'
 3. \<epsilon>\<lparr>NTMap\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>
 4. ?\<FF> = ?\<FF>'
 5. ?\<GG> = ?\<GG>'
 6. ?\<AA> = ?\<AA>'
 7. ?\<BB> = ?\<BB>'
[PROOF STEP]
show "\<epsilon>\<lparr>NTMap\<rparr> = (?the_ntcf_rKe \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F \<KK>))\<lparr>NTMap\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>
[PROOF STEP]
proof(rule vsv_eqI, unfold dom_lhs dom_rhs)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv (\<epsilon>\<lparr>NTMap\<rparr>)
 2. vsv ((the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>)
 3. \<BB>\<lparr>Obj\<rparr> = \<BB>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
fix b
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv (\<epsilon>\<lparr>NTMap\<rparr>)
 2. vsv ((the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>)
 3. \<BB>\<lparr>Obj\<rparr> = \<BB>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
assume prems': "b \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (state)
this:
b \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>

goal (4 subgoals):
 1. vsv (\<epsilon>\<lparr>NTMap\<rparr>)
 2. vsv ((the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>)
 3. \<BB>\<lparr>Obj\<rparr> = \<BB>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
note [cat_Kan_cs_simps] = \<epsilon>b_\<GG>f[
            where f=\<open>\<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>\<rparr>\<close> and c=\<open>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>\<close>, symmetric
            ]
[PROOF STATE]
proof (state)
this:
\<lbrakk>?A = [?a, ?b, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>\<rparr>]\<^sub>\<circ>; ?A \<in>\<^sub>\<circ> (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>) \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>; \<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr> \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a, ?b, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>\<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b\<rparr>\<rparr>\<rparr>

goal (4 subgoals):
 1. vsv (\<epsilon>\<lparr>NTMap\<rparr>)
 2. vsv ((the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>)
 3. \<BB>\<lparr>Obj\<rparr> = \<BB>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr> \<Longrightarrow> \<epsilon>\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
from prems' \<sigma>
[PROOF STATE]
proof (chain)
picking this:
b \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
\<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
show
            "\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> = (?the_ntcf_rKe \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F \<KK>))\<lparr>NTMap\<rparr>\<lparr>b\<rparr>"
[PROOF STATE]
proof (prove)
using this:
b \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
\<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>b\<rparr>
[PROOF STEP]
by
              (
                cs_concl
                  cs_simp: cat_cs_simps cat_comma_cs_simps cat_Kan_cs_simps
                  cs_intro: cat_cs_intros cat_comma_cs_intros cat_Kan_cs_intros
              )
[PROOF STATE]
proof (state)
this:
\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>b\<rparr>

goal (3 subgoals):
 1. vsv (\<epsilon>\<lparr>NTMap\<rparr>)
 2. vsv ((the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>)
 3. \<BB>\<lparr>Obj\<rparr> = \<BB>\<lparr>Obj\<rparr>
[PROOF STEP]
qed (cs_concl cs_intro: cat_cs_intros V_cs_intros)
[PROOF STATE]
proof (state)
this:
\<epsilon>\<lparr>NTMap\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>

goal (6 subgoals):
 1. \<epsilon> : ?\<FF> \<mapsto>\<^sub>C\<^sub>F ?\<GG> : ?\<AA> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>
 2. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>) : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>'
 3. ?\<FF> = ?\<FF>'
 4. ?\<GG> = ?\<GG>'
 5. ?\<AA> = ?\<AA>'
 6. ?\<BB> = ?\<BB>'
[PROOF STEP]
qed (cs_concl cs_shallow cs_simp: cat_cs_simps cs_intro: cat_cs_intros)+
[PROOF STATE]
proof (state)
this:
\<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
fix \<sigma>'
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
assume prems':
        "\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F ?the_cf_rKe : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
        "\<epsilon> = ?the_ntcf_rKe \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F \<KK>)"
[PROOF STATE]
proof (state)
this:
\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
\<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
interpret \<sigma>': is_ntcf \<alpha> \<CC> \<AA> \<GG> \<open>?the_cf_rKe\<close> \<sigma>'
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule prems'(1))
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
have \<epsilon>_NTMap_app[symmetric, cat_Kan_cs_simps]:
        "\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> =
          ?UArr (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>NTMap\<rparr>\<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub>
          \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>"
        if "b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>" and "a' = 0" for a' b'
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>
[PROOF STEP]
from prems'(2)
[PROOF STATE]
proof (chain)
picking this:
\<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)
[PROOF STEP]
have \<epsilon>_NTMap_app:
          "\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = (?the_ntcf_rKe \<bullet>\<^sub>N\<^sub>T\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>N\<^sub>T\<^sub>C\<^sub>F\<^sub>-\<^sub>C\<^sub>F \<KK>))\<lparr>NTMap\<rparr>\<lparr>b'\<rparr>"
          for b'
[PROOF STATE]
proof (prove)
using this:
\<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)

goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>b'\<rparr>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>?b'\<rparr>

goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>
[PROOF STEP]
using \<epsilon>_NTMap_app[of b'] that(1)
[PROOF STATE]
proof (prove)
using this:
\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>b'\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>
[PROOF STEP]
unfolding that(2)
[PROOF STATE]
proof (prove)
using this:
\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = (the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>))\<lparr>NTMap\<rparr>\<lparr>b'\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>
[PROOF STEP]
by
            (
              cs_prems cs_shallow
                cs_simp: cat_cs_simps cat_comma_cs_simps cat_Kan_cs_simps
                cs_intro: cat_cs_intros cat_comma_cs_intros
            )
[PROOF STATE]
proof (state)
this:
\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<lbrakk>?b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>; ?a' = []\<^sub>\<circ>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a', ?b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'\<rparr>

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<lbrakk>?b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>; ?a' = []\<^sub>\<circ>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a', ?b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'\<rparr>

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
fix a' b' f' A
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
note \<TT>.HomCod.cat_assoc_helper
          [
            where h= \<open>?UArr (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>NTMap\<rparr>\<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet>\<close>
              and g=\<open>\<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<close>
              and q=\<open>\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr>\<close>
          ]
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
note [cat_Kan_cs_simps] = this \<epsilon>b_\<GG>f[symmetric]
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f
\<lbrakk>?A = [?a, ?b, ?f]\<^sub>\<circ>; ?A \<in>\<^sub>\<circ> ?c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>; ?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj ?c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a, ?b, ?f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>'\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f
\<lbrakk>?A = [?a, ?b, ?f]\<^sub>\<circ>; ?A \<in>\<^sub>\<circ> ?c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>; ?c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj ?c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a, ?b, ?f\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?c\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
fix a' b' f' A
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
note \<TT>.HomCod.cat_assoc_helper
          [
            where h=
              \<open>?UArr (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>NTMap\<rparr>\<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet>\<close>
            and g=\<open>\<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<close>
            and q=\<open>\<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr>\<close>
          ]
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>a', b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>b'\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
note [cat_Kan_cs_simps] = this
[PROOF STATE]
proof (state)
this:
\<lbrakk>?f : ?a \<mapsto>\<^bsub>\<AA>\<^esub> ?b; \<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> : ?b \<mapsto>\<^bsub>\<AA>\<^esub> ?c; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> : ?c \<mapsto>\<^bsub>\<AA>\<^esub> ?d; lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr>\<rbrakk> \<Longrightarrow> lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>?a'3, ?b'3, \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> (\<sigma>\<lparr>NTMap\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>?b'3\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f) = \<epsilon>\<lparr>NTMap\<rparr>\<lparr>?b'3\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f

goal (1 subgoal):
 1. \<And>\<sigma>'. \<lbrakk>\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>; \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma>' \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)\<rbrakk> \<Longrightarrow> \<sigma>' = \<sigma>
[PROOF STEP]
show "\<sigma>' = \<sigma>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>' = \<sigma>
[PROOF STEP]
proof(rule ntcf_eqI)
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. \<sigma>' : ?\<FF> \<mapsto>\<^sub>C\<^sub>F ?\<GG> : ?\<AA> \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>
 2. \<sigma> : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>?\<alpha>\<^esub> ?\<BB>'
 3. \<sigma>'\<lparr>NTMap\<rparr> = \<sigma>\<lparr>NTMap\<rparr>
 4. ?\<FF> = ?\<FF>'
 5. ?\<GG> = ?\<GG>'
 6. ?\<AA> = ?\<AA>'
 7. ?\<BB> = ?\<BB>'
[PROOF STEP]
show "\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F ?the_cf_rKe : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule prems'(1))
[PROOF STATE]
proof (state)
this:
\<sigma>' : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (6 subgoals):
 1. \<sigma> : ?\<FF>' \<mapsto>\<^sub>C\<^sub>F ?\<GG>' : ?\<AA>' \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> ?\<BB>'
 2. \<sigma>'\<lparr>NTMap\<rparr> = \<sigma>\<lparr>NTMap\<rparr>
 3. \<GG> = ?\<FF>'
 4. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj = ?\<GG>'
 5. \<CC> = ?\<AA>'
 6. \<AA> = ?\<BB>'
[PROOF STEP]
show "\<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F ?the_cf_rKe : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule \<sigma>)
[PROOF STATE]
proof (state)
this:
\<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>

goal (5 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr> = \<sigma>\<lparr>NTMap\<rparr>
 2. \<GG> = \<GG>
 3. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 4. \<CC> = \<CC>
 5. \<AA> = \<AA>
[PROOF STEP]
have dom_lhs: "\<D>\<^sub>\<circ> (\<sigma>\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (\<sigma>\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_simp: cat_cs_simps)
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (\<sigma>\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>

goal (5 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr> = \<sigma>\<lparr>NTMap\<rparr>
 2. \<GG> = \<GG>
 3. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 4. \<CC> = \<CC>
 5. \<AA> = \<AA>
[PROOF STEP]
have dom_rhs: "\<D>\<^sub>\<circ> (\<sigma>'\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<D>\<^sub>\<circ> (\<sigma>'\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_simp: cat_cs_simps)
[PROOF STATE]
proof (state)
this:
\<D>\<^sub>\<circ> (\<sigma>'\<lparr>NTMap\<rparr>) = \<CC>\<lparr>Obj\<rparr>

goal (5 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr> = \<sigma>\<lparr>NTMap\<rparr>
 2. \<GG> = \<GG>
 3. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 4. \<CC> = \<CC>
 5. \<AA> = \<AA>
[PROOF STEP]
show "\<sigma>'\<lparr>NTMap\<rparr> = \<sigma>\<lparr>NTMap\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>'\<lparr>NTMap\<rparr> = \<sigma>\<lparr>NTMap\<rparr>
[PROOF STEP]
proof(rule vsv_eqI, unfold dom_lhs dom_rhs)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv (\<sigma>'\<lparr>NTMap\<rparr>)
 2. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 3. \<CC>\<lparr>Obj\<rparr> = \<CC>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
fix c
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. vsv (\<sigma>'\<lparr>NTMap\<rparr>)
 2. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 3. \<CC>\<lparr>Obj\<rparr> = \<CC>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
assume prems': "c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (state)
this:
c \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (4 subgoals):
 1. vsv (\<sigma>'\<lparr>NTMap\<rparr>)
 2. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 3. \<CC>\<lparr>Obj\<rparr> = \<CC>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
note lim_c = assms(3)[OF prems']
[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 (4 subgoals):
 1. vsv (\<sigma>'\<lparr>NTMap\<rparr>)
 2. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 3. \<CC>\<lparr>Obj\<rparr> = \<CC>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<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 (4 subgoals):
 1. vsv (\<sigma>'\<lparr>NTMap\<rparr>)
 2. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 3. \<CC>\<lparr>Obj\<rparr> = \<CC>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
from prems'
[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 (4 subgoals):
 1. vsv (\<sigma>'\<lparr>NTMap\<rparr>)
 2. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 3. \<CC>\<lparr>Obj\<rparr> = \<CC>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
from lim_c.cat_lim_unique_cone'[OF \<tau>[OF CId_c]]
[PROOF STATE]
proof (chain)
picking this:
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> (\<forall>j\<in>elts (c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>). \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>j\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>j\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> f')
[PROOF STEP]
obtain f
            where f: "f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c"
              and "\<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow>
                \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = ?UArr c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> f"
              and f_unique: "\<And>f'.
                \<lbrakk>
                  f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> ?UObj c;
                  \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow>
                    \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = ?UArr c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> f'
                \<rbrakk> \<Longrightarrow> f' = f"
[PROOF STATE]
proof (prove)
using this:
\<exists>!f'. f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr> \<and> (\<forall>j\<in>elts (c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>). \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>j\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>j\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> f')

goal (1 subgoal):
 1. (\<And>f. \<lbrakk>f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>; \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> f; \<And>f'. \<lbrakk>f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>; \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> f'\<rbrakk> \<Longrightarrow> f' = f\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by metis
[PROOF STATE]
proof (state)
this:
f : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
?A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>?A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>?A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> f
\<lbrakk>?f' : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>; \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> ?f'\<rbrakk> \<Longrightarrow> ?f' = f

goal (4 subgoals):
 1. vsv (\<sigma>'\<lparr>NTMap\<rparr>)
 2. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 3. \<CC>\<lparr>Obj\<rparr> = \<CC>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
note [symmetric, cat_cs_simps] =
            \<sigma>.ntcf_Comp_commute
            \<sigma>'.ntcf_Comp_commute
[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> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>?a\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>
?f : ?a \<mapsto>\<^bsub>\<CC>\<^esub> ?b \<Longrightarrow> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>?a\<rparr> = \<sigma>'\<lparr>NTMap\<rparr>\<lparr>?b\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<GG>\<lparr>ArrMap\<rparr>\<lparr>?f\<rparr>

goal (4 subgoals):
 1. vsv (\<sigma>'\<lparr>NTMap\<rparr>)
 2. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 3. \<CC>\<lparr>Obj\<rparr> = \<CC>\<lparr>Obj\<rparr>
 4. \<And>a. a \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr> \<Longrightarrow> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>a\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>a\<rparr>
[PROOF STEP]
show "\<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
proof(rule trans_sym[where s=f])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = f
 2. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = f
[PROOF STEP]
show "\<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = f"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = f
[PROOF STEP]
proof(rule f_unique)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<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 (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
with prems'
[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 (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
let ?\<KK>b' = \<open>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<close>
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from b'
[PROOF STATE]
proof (chain)
picking this:
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
[PROOF STEP]
have \<KK>b': "?\<KK>b' \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_intro: cat_cs_intros)
[PROOF STATE]
proof (state)
this:
\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
interpret lim_\<KK>b': is_cat_limit
                \<alpha> \<open>?\<KK>b' \<down>\<^sub>C\<^sub>F \<KK>\<close> \<AA> \<open>\<TT> \<circ>\<^sub>C\<^sub>F ?\<KK>b' \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>\<close> \<open>?UObj ?\<KK>b'\<close> \<open>?UArr ?\<KK>b'\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr> : lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>) \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>) \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule assms(3)[OF \<KK>b'])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from \<KK>b'
[PROOF STATE]
proof (chain)
picking this:
\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
have CId_\<KK>b': "\<CC>\<lparr>CId\<rparr>\<lparr>?\<KK>b'\<rparr> : ?\<KK>b' \<mapsto>\<^bsub>\<CC>\<^esub> ?\<KK>b'"
[PROOF STATE]
proof (prove)
using this:
\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

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

goal (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from CId_\<KK>b' b'
[PROOF STATE]
proof (chain)
picking this:
\<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> : \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
[PROOF STEP]
have a'_b'_CId_\<KK>b':
                "[0, b', \<CC>\<lparr>CId\<rparr>\<lparr>?\<KK>b'\<rparr>]\<^sub>\<circ> \<in>\<^sub>\<circ> ?\<KK>b' \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
\<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> : \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. [[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>]\<^sub>\<circ> \<in>\<^sub>\<circ> (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>) \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by
                  (
                    cs_concl cs_shallow
                      cs_simp: cat_cs_simps cat_comma_cs_simps
                      cs_intro: cat_cs_intros cat_comma_cs_intros
                  )
[PROOF STATE]
proof (state)
this:
[[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>]\<^sub>\<circ> \<in>\<^sub>\<circ> (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>) \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from
                lim_Obj_the_cf_rKe_commute[
                  where lim_Obj=lim_Obj,
                  OF assms(1,2) lim_c assms(3)[OF \<KK>b'] f' a'_b'_CId_\<KK>b'
                  ]
                f'
[PROOF STATE]
proof (chain)
picking this:
lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f'\<rparr>\<^sub>\<bullet> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
[PROOF STEP]
have [cat_Kan_cs_simps]:
                "?UArr c\<lparr>NTMap\<rparr>\<lparr>0, b', f'\<rparr>\<^sub>\<bullet> =
                  ?UArr ?\<KK>b'\<lparr>NTMap\<rparr>\<lparr>0, b', \<CC>\<lparr>CId\<rparr>\<lparr>?\<KK>b'\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub>
                    ?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>"
[PROOF STATE]
proof (prove)
using this:
lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f'\<rparr>\<^sub>\<bullet> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f'\<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 (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>
[PROOF STEP]
by (cs_prems cs_shallow cs_simp: cat_cs_simps)
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>

goal (2 subgoals):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from prems' prems'' b' 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>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
[PROOF STEP]
show
                "\<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = ?UArr c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<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>
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. \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<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>
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. \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
(*very slow*)
[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>
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. \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
by
                  (
                    cs_concl
                      cs_simp:
                        cat_cs_simps cat_comma_cs_simps cat_Kan_cs_simps
                      cs_intro:
                        cat_lim_cs_intros
                        cat_cs_intros
                        cat_comma_cs_intros
                        cat_Kan_cs_intros
                  )
[PROOF STATE]
proof (state)
this:
\<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr>

goal (1 subgoal):
 1. \<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
[PROOF STEP]
qed
              (
                use prems' in
                  \<open>
                    cs_concl cs_shallow
                      cs_simp: cat_Kan_cs_simps cs_intro: cat_cs_intros
                  \<close>
              )
[PROOF STATE]
proof (state)
this:
\<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = f

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = f
[PROOF STEP]
show "\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = f"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = f
[PROOF STEP]
proof(rule f_unique)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<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 (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from this prems'
[PROOF STATE]
proof (chain)
picking this:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
c \<in>\<^sub>\<circ> \<CC>\<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:
A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
c \<in>\<^sub>\<circ> \<CC>\<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 (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
let ?\<KK>b' = \<open>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<close>
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from b'
[PROOF STATE]
proof (chain)
picking this:
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
[PROOF STEP]
have \<KK>b': "?\<KK>b' \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
by (cs_concl cs_shallow cs_intro: cat_cs_intros)
[PROOF STATE]
proof (state)
this:
\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
interpret lim_\<KK>b': is_cat_limit
                \<alpha> \<open>?\<KK>b' \<down>\<^sub>C\<^sub>F \<KK>\<close> \<AA> \<open>\<TT> \<circ>\<^sub>C\<^sub>F ?\<KK>b' \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK>\<close> \<open>?UObj ?\<KK>b'\<close> \<open>?UArr ?\<KK>b'\<close>
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr> : lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UObj\<rparr> <\<^sub>C\<^sub>F\<^sub>.\<^sub>l\<^sub>i\<^sub>m \<TT> \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>) \<^sub>O\<Sqinter>\<^sub>C\<^sub>F \<KK> : (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>) \<down>\<^sub>C\<^sub>F \<KK> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
by (rule assms(3)[OF \<KK>b'])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from \<KK>b'
[PROOF STATE]
proof (chain)
picking this:
\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
have CId_\<KK>b': "\<CC>\<lparr>CId\<rparr>\<lparr>?\<KK>b'\<rparr> : ?\<KK>b' \<mapsto>\<^bsub>\<CC>\<^esub> ?\<KK>b'"
[PROOF STATE]
proof (prove)
using this:
\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<in>\<^sub>\<circ> \<CC>\<lparr>Obj\<rparr>

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

goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from CId_\<KK>b' b'
[PROOF STATE]
proof (chain)
picking this:
\<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> : \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
[PROOF STEP]
have a'_b'_CId_\<KK>b':
                "[0, b', \<CC>\<lparr>CId\<rparr>\<lparr>?\<KK>b'\<rparr>]\<^sub>\<circ> \<in>\<^sub>\<circ> ?\<KK>b' \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>"
[PROOF STATE]
proof (prove)
using this:
\<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> : \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr> \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>

goal (1 subgoal):
 1. [[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>]\<^sub>\<circ> \<in>\<^sub>\<circ> (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>) \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>
[PROOF STEP]
by
                  (
                    cs_concl cs_shallow
                      cs_simp: cat_cs_simps cat_comma_cs_simps
                      cs_intro: cat_cs_intros cat_comma_cs_intros
                  )
[PROOF STATE]
proof (state)
this:
[[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>]\<^sub>\<circ> \<in>\<^sub>\<circ> (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>) \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr>

goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from
                lim_Obj_the_cf_rKe_commute
                  [
                    where lim_Obj=lim_Obj,
                    OF assms(1,2) lim_c assms(3)[OF \<KK>b'] f' a'_b'_CId_\<KK>b'
                  ]
                f'
[PROOF STATE]
proof (chain)
picking this:
lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f'\<rparr>\<^sub>\<bullet> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
[PROOF STEP]
have [cat_Kan_cs_simps]:
                "?UArr c\<lparr>NTMap\<rparr>\<lparr>0, b', f'\<rparr>\<^sub>\<bullet> =
                  ?UArr (?\<KK>b')\<lparr>NTMap\<rparr>\<lparr>0, b', \<CC>\<lparr>CId\<rparr>\<lparr>?\<KK>b'\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub>
                    ?the_cf_rKe\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>"
[PROOF STATE]
proof (prove)
using this:
lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr> \<circ>\<^sub>A\<^bsub>\<CC>\<^esub> f'\<rparr>\<^sub>\<bullet> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f'\<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 (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>
[PROOF STEP]
by (cs_prems cs_shallow cs_simp: cat_cs_simps)
[PROOF STATE]
proof (state)
this:
lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = lim_Obj (\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>)\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', \<CC>\<lparr>CId\<rparr>\<lparr>\<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>\<rparr>\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj\<lparr>ArrMap\<rparr>\<lparr>f'\<rparr>

goal (2 subgoals):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
 2. \<And>A. A \<in>\<^sub>\<circ> c \<down>\<^sub>C\<^sub>F \<KK>\<lparr>Obj\<rparr> \<Longrightarrow> \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
from prems' prems'' b' 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>
b' \<in>\<^sub>\<circ> \<BB>\<lparr>Obj\<rparr>
f' : c \<mapsto>\<^bsub>\<CC>\<^esub> \<KK>\<lparr>ObjMap\<rparr>\<lparr>b'\<rparr>
[PROOF STEP]
show
                "\<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = ?UArr c\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<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>
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. \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<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>
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. \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
(*very slow*)
[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>
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. \<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr> \<lparr>[]\<^sub>\<circ>, b', f'\<rparr>\<^sub>\<bullet> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>
[PROOF STEP]
by
                  (
                    cs_concl
                      cs_simp:
                        cat_cs_simps cat_comma_cs_simps cat_Kan_cs_simps
                      cs_intro:
                        cat_lim_cs_intros
                        cat_cs_intros
                        cat_comma_cs_intros
                        cat_Kan_cs_intros
                  )
[PROOF STATE]
proof (state)
this:
\<tau> c c (\<CC>\<lparr>CId\<rparr>\<lparr>c\<rparr>)\<lparr>NTMap\<rparr>\<lparr>A\<rparr> = lim_Obj c\<lparr>UArr\<rparr>\<lparr>NTMap\<rparr>\<lparr>A\<rparr> \<circ>\<^sub>A\<^bsub>\<AA>\<^esub> \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>

goal (1 subgoal):
 1. \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> : \<GG>\<lparr>ObjMap\<rparr>\<lparr>c\<rparr> \<mapsto>\<^bsub>\<AA>\<^esub> lim_Obj c\<lparr>UObj\<rparr>
[PROOF STEP]
qed
              (
                use prems' in
                  \<open>
                    cs_concl cs_shallow
                      cs_simp: cat_Kan_cs_simps cs_intro: cat_cs_intros
                  \<close>
              )
[PROOF STATE]
proof (state)
this:
\<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = f

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<sigma>'\<lparr>NTMap\<rparr>\<lparr>c\<rparr> = \<sigma>\<lparr>NTMap\<rparr>\<lparr>c\<rparr>

goal (3 subgoals):
 1. vsv (\<sigma>'\<lparr>NTMap\<rparr>)
 2. vsv (\<sigma>\<lparr>NTMap\<rparr>)
 3. \<CC>\<lparr>Obj\<rparr> = \<CC>\<lparr>Obj\<rparr>
[PROOF STEP]
qed auto
[PROOF STATE]
proof (state)
this:
\<sigma>'\<lparr>NTMap\<rparr> = \<sigma>\<lparr>NTMap\<rparr>

goal (4 subgoals):
 1. \<GG> = \<GG>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj = the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj
 3. \<CC> = \<CC>
 4. \<AA> = \<AA>
[PROOF STEP]
qed simp_all
[PROOF STATE]
proof (state)
this:
\<sigma>' = \<sigma>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<exists>!\<sigma>. \<sigma> : \<GG> \<mapsto>\<^sub>C\<^sub>F the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA> \<and> \<epsilon> = the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj \<bullet>\<^sub>N\<^sub>T\<^sub>S\<^sub>M\<^sub>C\<^sub>F (\<sigma> \<circ>\<^sub>T\<^sub>D\<^sub>G\<^sub>H\<^sub>M\<^sub>-\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK>)

goal (3 subgoals):
 1. \<KK> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<CC>
 2. the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj : \<CC> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
 3. the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>D\<^sub>G\<^sub>H\<^sub>M \<KK> \<mapsto>\<^sub>C\<^sub>F \<TT> : \<BB> \<mapsto>\<mapsto>\<^sub>C\<^bsub>\<alpha>\<^esub> \<AA>
[PROOF STEP]
qed (cs_concl cs_shallow cs_intro: cat_cs_intros)+
[PROOF STATE]
proof (state)
this:
the_ntcf_rKe \<alpha> \<TT> \<KK> lim_Obj : the_cf_rKe \<alpha> \<TT> \<KK> lim_Obj \<circ>\<^sub>C\<^sub>F \<KK> \<mapsto>\<^sub>C\<^sub>F\<^sub>.\<^sub>r\<^sub>K\<^sub>e\<^bsub>\<alpha>\<^esub> \<TT> : \<BB> \<mapsto>\<^sub>C \<CC> \<mapsto>\<^sub>C \<AA>

goal:
No subgoals!
[PROOF STEP]
qed