let I be set ; :: thesis: for C being Category
for F, G being Function of I, the carrier' of C st doms F = cods G holds
( doms (F "*" G) = doms G & cods (F "*" G) = cods F )

let C be Category; :: thesis: for F, G being Function of I, the carrier' of C st doms F = cods G holds
( doms (F "*" G) = doms G & cods (F "*" G) = cods F )

let F, G be Function of I, the carrier' of C; :: thesis: ( doms F = cods G implies ( doms (F "*" G) = doms G & cods (F "*" G) = cods F ) )
assume A1: doms F = cods G ; :: thesis: ( doms (F "*" G) = doms G & cods (F "*" G) = cods F )
now :: thesis: for x being set st x in I holds
(doms (F "*" G)) /. x = (doms G) /. x
let x be set ; :: thesis: ( x in I implies (doms (F "*" G)) /. x = (doms G) /. x )
assume A2: x in I ; :: thesis: (doms (F "*" G)) /. x = (doms G) /. x
then A3: cod (G /. x) = (doms F) /. x by
.= dom (F /. x) by ;
thus (doms (F "*" G)) /. x = dom ((F "*" G) /. x) by
.= dom ((F /. x) (*) (G /. x)) by
.= dom (G /. x) by
.= (doms G) /. x by ; :: thesis: verum
end;
hence doms (F "*" G) = doms G by Th1; :: thesis: cods (F "*" G) = cods F
now :: thesis: for x being set st x in I holds
(cods (F "*" G)) /. x = (cods F) /. x
let x be set ; :: thesis: ( x in I implies (cods (F "*" G)) /. x = (cods F) /. x )
assume A4: x in I ; :: thesis: (cods (F "*" G)) /. x = (cods F) /. x
then A5: cod (G /. x) = (doms F) /. x by
.= dom (F /. x) by ;
thus (cods (F "*" G)) /. x = cod ((F "*" G) /. x) by
.= cod ((F /. x) (*) (G /. x)) by
.= cod (F /. x) by
.= (cods F) /. x by ; :: thesis: verum
end;
hence cods (F "*" G) = cods F by Th1; :: thesis: verum