
theorem Th16:
  for C being Category, D being Categorial Category, F being
  Functor of C,D holds [Obj F, pr2 F] is Indexing of C
proof
  let C be Category, D be Categorial Category, F be Functor of C,D;
  set I = [Obj F, pr2 F];
A1: dom F = the carrier' of C by FUNCT_2:def 1;
  dom Obj F = the carrier of C by FUNCT_2:def 1;
  then
A2: Obj F is ManySortedSet of the carrier of C by PARTFUN1:def 2;
A3: I`2 = pr2 F;
A4: dom pr2 F = dom F by MCART_1:def 13;
  then pr2 F is ManySortedSet of the carrier' of C by A1,PARTFUN1:def 2
,RELAT_1:def 18;
  then reconsider
  I as ManySortedSet of the carrier of C, the carrier' of C by A2,Def4;
  pr2 F is Function-yielding
  proof
    let x be object;
    assume x in dom pr2 F;
    then reconsider x as Morphism of C by A1,MCART_1:def 13;
    reconsider m = F.x as Morphism of D;
    (pr2 F).x = m`2 by A1,MCART_1:def 13;
    hence thesis;
  end;
  then reconsider
  FF = pr2 F as ManySortedFunction of the carrier' of C by A4,A1,PARTFUN1:def 2
,RELAT_1:def 18;
  I`1 is Category-yielding;
  then reconsider
  I as Category-yielding_on_first ManySortedSet of the carrier of C
  , the carrier' of C by Def5;
  FF is ManySortedFunctor of I`1*the Source of C, I`1*the Target of C
  proof
    let m be Morphism of C;
    reconsider x = F.m as Morphism of D;
A5: x`11 = dom (F.m) by CAT_5:13;
    x`12 = cod (F.m) by CAT_5:13;
    then consider f being Functor of x`11, x`12 such that
A6: F.m = [[x`11, x`12], f] by A5,CAT_5:def 6;
A7: ((Obj F)*the Source of C).m = (Obj F).dom m by FUNCT_2:15
      .= dom (F.m) by CAT_1:69;
A8: ((Obj F)*the Target of C).m = (Obj F).cod m by FUNCT_2:15
      .= cod (F.m) by CAT_1:69;
    FF.m = x`2 by A1,MCART_1:def 13
      .= f by A6;
    hence thesis by A5,A7,A8,CAT_5:13;
  end;
  then reconsider I as Indexing of the Source of C, the Target of C by A3,Def8;
A9: dom F = the carrier' of C by FUNCT_2:def 1;
A10: now
    let m1, m2 be Morphism of C;
    assume
A11: dom m2 = cod m1;
    set h1 = F.m1, h2 = F.m2;
A12: dom h2 = F.dom m2 by CAT_1:72
      .= cod h1 by A11,CAT_1:72;
A13: dom h2 = h2`11 by CAT_5:13;
    cod h2 = h2`12 by CAT_5:13;
    then consider f2 being Functor of h2`11, h2`12 such that
A14: h2 = [[h2`11, h2`12], f2] by A13,CAT_5:def 6;
A15: cod h1 = h1`12 by CAT_5:13;
    dom h1 = h1`11 by CAT_5:13;
    then consider f1 being Functor of h1`11, h1`12 such that
A16: h1 = [[h1`11, h1`12], f1] by A15,CAT_5:def 6;
    thus I`2.(m2(*)m1) = (F.(m2(*)m1))`2 by A9,MCART_1:def 13
      .= (h2(*)h1)`2 by A11,CAT_1:64
      .= [[h1`11, h2`12], f2*f1]`2 by A13,A15,A14,A16,A12,CAT_5:def 6
      .= f2*f1
      .= h2`2*f1 by A14
      .= h2`2*h1`2 by A16
      .= (I`2.m2)*h1`2 by A9,MCART_1:def 13
      .= (I`2.m2)*(I`2.m1) by A9,MCART_1:def 13;
  end;
  now
    let a be Object of C;
    reconsider i = (Obj F).a as Object of D;
    thus I`2.id a = (F.(id a qua Morphism of C))`2 by A9,MCART_1:def 13
      .= (id i qua Morphism of D)`2 by CAT_1:68
      .= [[I`1.a, I`1.a], id (I`1.a)]`2 by CAT_5:def 6
      .= id (I`1.a);
  end;
  hence thesis by A10,Th6;
end;
