
theorem Th7:
  for C being Category, I being Indexing of the Target of C, the
Source of C holds I is coIndexing of C iff (for a being Object of C holds I`2.
id a = id (I`1.a)) & for m1, m2 being Morphism of C st dom m2 = cod m1 holds I
  `2.(m2(*)m1) = (I`2.m1)*(I`2.m2)
proof
  let C be Category;
  let I be Indexing of the Target of C, the Source of C;
A1: C opp = CatStr(# the carrier of C, the carrier' of C, the Target of C,
    the Source of C, ~the Comp of C#);
  hereby
    assume
A2: I is coIndexing of C;
    thus for a be Object of C holds I`2.id a = id (I`1.a)
     proof let a be Object of C;
 id a = (IdMap C).a by ISOCAT_1:def 12;
      hence thesis by A1,Def10,A2;
     end;
    let m1, m2 be Morphism of C;
    assume
A3: dom m2 = cod m1;
    then
A4: [m2,m1] in dom the Comp of C by CAT_1:15;
    I`2.((~the Comp of C).(m1,m2)) = (I`2.m1)*(I`2.m2) by A1,A2,A3,Def10;
    then I`2.((the Comp of C).(m2,m1)) = (I`2.m1)*(I`2.m2) by A4,FUNCT_4:def 2;
    hence I`2.(m2(*)m1) = (I`2.m1)*(I`2.m2) by A3,CAT_1:16;
  end;
  assume that
A5: for a being Object of C holds I`2.id a = id (I`1.a) and
A6: for m1, m2 being Morphism of C st dom m2 = cod m1 holds I`2.(m2(*)m1)
  = (I`2.m1)*(I`2.m2);
  thus ex D being Category st D = CatStr(# the carrier of C, the carrier' of C
    , the Target of C, the Source of C, ~the Comp of C#) by A1;
  hereby
    let a be Object of C;
 id a = (IdMap C).a by ISOCAT_1:def 12;
    hence I`2.((IdMap C).a) = I`2.id a .= id (I`1.a) by A5;
  end;
  let m1, m2 be Morphism of C;
  assume (the Target of C).m2 = (the Source of C).m1;
  then
A7: dom m1 = cod m2;
  then I`2.(m1(*)m2) = (I`2.m2)*(I`2.m1) by A6;
  then
A8: I`2.((the Comp of C).(m1,m2)) = (I`2.m2)*(I`2.m1) by A7,CAT_1:16;
A9: [m1,m2] in dom the Comp of C by A7,CAT_1:15;
  thus I`2.((~the Comp of C).[m2,m1]) = I`2.((~the Comp of C).(m2,m1))
    .= (I`2.m2)*(I`2.m1) by A8,A9,FUNCT_4:def 2;
end;
