deffunc H1( Object of C) -> Morphism of $1,$1 = id $1;
defpred S1[ Object of C] means verum;
defpred S2[ Object of C] means H1($1) in the carrier' of C;
set M = { H1(a) where a is Object of C : S1[a] } ;
set N = { H1(a) where a is Object of C : S2[a] } ;
A1:
for a being Object of C holds
( S2[a] iff S1[a] )
;
A2:
{ H1(a) where a is Object of C : S2[a] } = { H1(a) where a is Object of C : S1[a] }
from FRAENKEL:sch 3(A1);
set N' = { H1(a) where a is Object of C : ( H1(a) in the carrier' of C & S1[a] ) } ;
A3:
{ H1(a) where a is Object of C : ( H1(a) in the carrier' of C & S1[a] ) } c= the carrier' of C
from FRAENKEL:sch 17();
defpred S3[ Object of C] means ( H1($1) in the carrier' of C & S1[$1] );
set N'' = { H1(a) where a is Object of C : S3[a] } ;
A4:
for a being Object of C holds
( S2[a] iff S3[a] )
;
A5:
{ H1(a) where a is Object of C : S2[a] } = { H1(a) where a is Object of C : S3[a] }
from FRAENKEL:sch 3(A4);
consider a being Object of C;
id a in { H1(a) where a is Object of C : S1[a] }
;
then reconsider M = { H1(a) where a is Object of C : S1[a] } as non empty Subset of the carrier' of C by A2, A3, A5;
A6:
the Comp of C || M is PartFunc of [:M,M:],the carrier' of C
by PARTFUN1:43;
rng (the Comp of C || M) c= M
proof
let x be
set ;
:: according to TARSKI:def 3 :: thesis: ( not x in rng (the Comp of C || M) or x in M )
assume
x in rng (the Comp of C || M)
;
:: thesis: x in M
then consider y being
set such that A7:
y in dom (the Comp of C || M)
and A8:
x = (the Comp of C || M) . y
by FUNCT_1:def 5;
A9:
y in (dom the Comp of C) /\ [:M,M:]
by A7, RELAT_1:90;
then
y in [:M,M:]
by XBOOLE_0:def 4;
then consider y1,
y2 being
set such that A10:
(
y1 in M &
y2 in M )
and A11:
y = [y1,y2]
by ZFMISC_1:103;
consider a1 being
Object of
C such that A12:
y1 = id a1
by A10;
consider a2 being
Object of
C such that A13:
y2 = id a2
by A10;
A14:
y in dom the
Comp of
C
by A9, XBOOLE_0:def 4;
A15:
Hom a1,
a1 <> {}
by CAT_1:56;
A16:
a1 =
dom (id a1)
by CAT_1:44
.=
cod (id a2)
by A11, A12, A13, A14, CAT_1:40
.=
a2
by CAT_1:44
;
id a1 =
(id a1) * (id a1)
by CAT_1:59
.=
(id a1) * (id a2)
by A15, A16, CAT_1:def 13
.=
the
Comp of
C . (id a1),
(id a2)
by A11, A12, A13, A14, CAT_1:def 4
.=
x
by A8, A9, A11, A12, A13, FUNCT_1:71
;
hence
x in M
;
:: thesis: verum
end;
then reconsider COMP = the Comp of C || M as PartFunc of [:M,M:],M by A6, RELSET_1:14;
A17:
dom the Id of C = the carrier of C
by FUNCT_2:def 1;
rng the Id of C c= M
then reconsider ID = the Id of C as Function of the carrier of C,M by A17, FUNCT_2:4;
dom the Id of C = the carrier of C
by FUNCT_2:def 1;
then A20:
the Id of C | the carrier of C = the Id of C
by RELAT_1:97;
the carrier of C c= the carrier of C
;
then reconsider A = CatStr(# the carrier of C,M,(the Source of C | M),(the Target of C | M),COMP,ID #) as Subcategory of C by A20, Th9;
then reconsider A = A as strict discrete Subcategory of C by Def19;
take
A
; :: thesis: ( the carrier of A = the carrier of C & the carrier' of A = { (id a) where a is Object of C : verum } )
thus
( the carrier of A = the carrier of C & the carrier' of A = { (id a) where a is Object of C : verum } )
; :: thesis: verum