reserve C for CategoryStr;
reserve f,f1,f2,f3 for morphism of C;
reserve g1,g2 for morphism of C opp;
reserve C,D,E for with_identities CategoryStr;
reserve F for Functor of C,D;
reserve G for Functor of D,E;
reserve f for morphism of C;

theorem Th37:
  for C being non empty composable with_identities CategoryStr
  for f,g being Element of Mor(C) holds
  [g,f] in dom(CompMap(C)) iff (SourceMap(C)).g = (TargetMap(C)).f
  proof
    let C be non empty composable with_identities CategoryStr;
    let f,g be Element of Mor(C);
    hereby
      assume [g,f] in dom(CompMap(C));
      then
A1:   g |> f;
      consider u be morphism of C such that
A2:   dom g = u & g |> u & u is identity by Def18;
      g (*) u = g by A2,Def5;
      then
A3:   u |> f by A2,A1,Lm3;
      thus (SourceMap(C)).g = dom g by Def30
      .= cod f by A3,A2,Def19
      .= (TargetMap(C)).f by Def31;
    end;
    assume
A4: (SourceMap(C)).g = (TargetMap(C)).f;
A5: dom g = (SourceMap(C)).g by Def30
    .= cod f by A4,Def31;
    consider d be morphism of C such that
A6: dom g = d & g |> d & d is identity by Def18;
    consider c be morphism of C such that
A7: cod f = c & c |> f & c is identity by Def19;
    g(*)d |> f by A6,A7,A5,Lm3;
    hence [g,f] in dom(CompMap(C)) by A6,Def5;
  end;
