let C be Category; 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; 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 ; ( 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 ) }
; ( 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 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:61;
A8:
rng ( the Source of C | M) c= O
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:62;
A13:
dom ( the Target of C | M) = (dom the Target of C) /\ M
by RELAT_1:61;
A14:
rng ( the Target of C | M) c= O
dom ( the Source of C | M) = M
by A1, A11, RELAT_1:62;
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:4; ( 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:61;
A18:
dom ( the Id of C | O) = (dom the Id of C) /\ O
by RELAT_1:61;
A19:
rng ( the Id of C | O) c= M
proof
let y be
set ;
TARSKI:def 3 ( not y in rng ( the Id of C | O) or y in M )
assume
y in rng ( the Id of C | O)
;
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 3;
reconsider a =
x as
Object of
C by A18, A20;
( the Id of C | O) . a = id a
by A20, FUNCT_1:47;
then A22:
( the Id of C | O) . a in Hom (
a,
a)
by CAT_1:26;
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;
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 ;
TARSKI:def 3 ( not y in rng ( the Comp of C || M) or y in M )
assume
y in rng ( the Comp of C || M)
;
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 3;
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:1;
A28:
[g,f] in [:M,M:]
by A17, A24, A27, XBOOLE_0:def 4;
then
g in M
by ZFMISC_1:87;
then A29:
cod g in O
by A3;
dom g = cod f
by A26, A27, CAT_1:15;
then A30:
(
dom (g * f) = dom f &
cod (g * f) = cod g )
by CAT_1:17;
f in M
by A28, ZFMISC_1:87;
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:47
.=
g * f
by A26, A27, CAT_1:def 1
;
hence
y in M
by A2, A25, A31, A32, TARSKI:def 4;
verum
end;
hence
the Comp of C || M is PartFunc of [:M,M:],M
by A17, RELSET_1:4, XBOOLE_1:17; 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:62;
hence
the Id of C | O is Function of O,M
by A19, FUNCT_2:def 1, RELSET_1:4; verum