let C be Category; :: thesis: for O being non empty Subset of the carrier of C
for M being non empty set st M = union { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } holds
( the Source of C | M is Function of M,O & the Target of C | M is Function of M,O & the Comp of C || M is PartFunc of [:M,M:],M & the Id of C | O is Function of O,M )

let O be non empty Subset of the carrier of C; :: thesis: for M being non empty set st M = union { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } holds
( the Source of C | M is Function of M,O & the Target of C | M is Function of M,O & the Comp of C || M is PartFunc of [:M,M:],M & the Id of C | O is Function of O,M )

set H = { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } ;
A1: dom the Source of C = the carrier' of C by FUNCT_2:def 1;
let M be non empty set ; :: thesis: ( M = union { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } implies ( the Source of C | M is Function of M,O & the Target of C | M is Function of M,O & the Comp of C || M is PartFunc of [:M,M:],M & the Id of C | O is Function of O,M ) )
assume A2: M = union { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } ; :: thesis: ( the Source of C | M is Function of M,O & the Target of C | M is Function of M,O & the Comp of C || M is PartFunc of [:M,M:],M & the Id of C | O is Function of O,M )
A3: now
let f be Morphism of C; :: thesis: ( f in M implies ( dom f in O & cod f in O ) )
assume f in M ; :: thesis: ( dom f in O & cod f in O )
then consider X being set such that
A4: f in X and
A5: X in { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } by A2, TARSKI:def 4;
ex a, b being Object of C st
( X = Hom (a,b) & a in O & b in O ) by A5;
hence ( dom f in O & cod f in O ) by A4, CAT_1:18; :: thesis: verum
end;
set d = the Source of C | M;
set c = the Target of C | M;
set p = the Comp of C || M;
set i = the Id of C | O;
A6: dom the Target of C = the carrier' of C by FUNCT_2:def 1;
A7: dom ( the Source of C | M) = (dom the Source of C) /\ M by RELAT_1:90;
A8: rng ( the Source of C | M) c= O
proof
let y be set ; :: according to TARSKI:def 3 :: thesis: ( not y in rng ( the Source of C | M) or y in O )
assume y in rng ( the Source of C | M) ; :: thesis: y in O
then consider x being set such that
A9: x in dom ( the Source of C | M) and
A10: y = ( the Source of C | M) . x by FUNCT_1:def 5;
reconsider f = x as Morphism of C by A1, A7, A9, XBOOLE_0:def 4;
( ( the Source of C | M) . f = dom f & f in M ) by A7, A9, FUNCT_1:70, XBOOLE_0:def 4;
hence y in O by A3, A10; :: thesis: verum
end;
A11: M is non empty Subset of the carrier' of C by A2, Th28;
then A12: dom ( the Target of C | M) = M by A6, RELAT_1:91;
A13: dom ( the Target of C | M) = (dom the Target of C) /\ M by RELAT_1:90;
A14: rng ( the Target of C | M) c= O
proof
let y be set ; :: according to TARSKI:def 3 :: thesis: ( not y in rng ( the Target of C | M) or y in O )
assume y in rng ( the Target of C | M) ; :: thesis: y in O
then consider x being set such that
A15: x in dom ( the Target of C | M) and
A16: y = ( the Target of C | M) . x by FUNCT_1:def 5;
reconsider f = x as Morphism of C by A6, A13, A15, XBOOLE_0:def 4;
( ( the Target of C | M) . f = cod f & f in M ) by A13, A15, FUNCT_1:70, XBOOLE_0:def 4;
hence y in O by A3, A16; :: thesis: verum
end;
dom ( the Source of C | M) = M by A1, A11, RELAT_1:91;
hence ( the Source of C | M is Function of M,O & the Target of C | M is Function of M,O ) by A8, A14, A12, FUNCT_2:def 1, RELSET_1:11; :: thesis: ( the Comp of C || M is PartFunc of [:M,M:],M & the Id of C | O is Function of O,M )
A17: dom ( the Comp of C || M) = (dom the Comp of C) /\ [:M,M:] by RELAT_1:90;
A18: dom ( the Id of C | O) = (dom the Id of C) /\ O by RELAT_1:90;
A19: rng ( the Id of C | O) c= M
proof
let y be set ; :: according to TARSKI:def 3 :: thesis: ( not y in rng ( the Id of C | O) or y in M )
assume y in rng ( the Id of C | O) ; :: thesis: y in M
then consider x being set such that
A20: x in dom ( the Id of C | O) and
A21: y = ( the Id of C | O) . x by FUNCT_1:def 5;
reconsider a = x as Object of C by A18, A20;
( the Id of C | O) . a = id a by A20, FUNCT_1:70;
then A22: ( the Id of C | O) . a in Hom (a,a) by CAT_1:55;
a in O by A18, A20, XBOOLE_0:def 4;
then Hom (a,a) in { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } ;
hence y in M by A2, A21, A22, TARSKI:def 4; :: thesis: verum
end;
A23: dom the Comp of C c= [: the carrier' of C, the carrier' of C:] by RELAT_1:def 18;
rng ( the Comp of C || M) c= M
proof
let y be set ; :: according to TARSKI:def 3 :: thesis: ( not y in rng ( the Comp of C || M) or y in M )
assume y in rng ( the Comp of C || M) ; :: thesis: y in M
then consider x being set such that
A24: x in dom ( the Comp of C || M) and
A25: y = ( the Comp of C || M) . x by FUNCT_1:def 5;
A26: x in dom the Comp of C by A17, A24, XBOOLE_0:def 4;
then consider g, f being Morphism of C such that
A27: x = [g,f] by A23, DOMAIN_1:9;
A28: [g,f] in [:M,M:] by A17, A24, A27, XBOOLE_0:def 4;
then g in M by ZFMISC_1:106;
then A29: cod g in O by A3;
dom g = cod f by A26, A27, CAT_1:40;
then A30: ( dom (g * f) = dom f & cod (g * f) = cod g ) by CAT_1:42;
f in M by A28, ZFMISC_1:106;
then dom f in O by A3;
then A31: Hom ((dom (g * f)),(cod (g * f))) in { (Hom (a,b)) where a, b is Object of C : ( a in O & b in O ) } by A29, A30;
A32: g * f in Hom ((dom (g * f)),(cod (g * f))) ;
( the Comp of C || M) . x = the Comp of C . (g,f) by A24, A27, FUNCT_1:70
.= g * f by A26, A27, CAT_1:def 4 ;
hence y in M by A2, A25, A31, A32, TARSKI:def 4; :: thesis: verum
end;
hence the Comp of C || M is PartFunc of [:M,M:],M by A17, RELSET_1:11, XBOOLE_1:17; :: thesis: the Id of C | O is Function of O,M
dom the Id of C = the carrier of C by FUNCT_2:def 1;
then dom ( the Id of C | O) = O by RELAT_1:91;
hence the Id of C | O is Function of O,M by A19, FUNCT_2:def 1, RELSET_1:11; :: thesis: verum