let C be Category; CategoryStr(# the carrier' of C, the Comp of C #) is category
consider o being object such that
A1:
o in the carrier of C
by XBOOLE_0:def 1;
reconsider o = o as Object of C by A1;
reconsider cc = CategoryStr(# the carrier' of C, the Comp of C #) as non empty CategoryStr ;
A2:
for f, g being morphism of cc
for f1, g1 being Element of the carrier' of C st g = g1 & f = f1 & g |> f holds
g (*) f = g1 (*) f1
A5:
for f, g, h being morphism of cc holds
( ( h (*) g |> f & h |> g implies g |> f ) & ( h |> g (*) f & g |> f implies h |> g ) & ( g |> f & h |> g implies ( h (*) g |> f & h |> g (*) f ) ) )
proof
let f,
g,
h be
morphism of
cc;
( ( h (*) g |> f & h |> g implies g |> f ) & ( h |> g (*) f & g |> f implies h |> g ) & ( g |> f & h |> g implies ( h (*) g |> f & h |> g (*) f ) ) )
reconsider f1 =
f,
g1 =
g,
h1 =
h as
Morphism of
C ;
thus
(
h (*) g |> f &
h |> g implies
g |> f )
( ( h |> g (*) f & g |> f implies h |> g ) & ( g |> f & h |> g implies ( h (*) g |> f & h |> g (*) f ) ) )
thus
(
h |> g (*) f &
g |> f implies
h |> g )
( g |> f & h |> g implies ( h (*) g |> f & h |> g (*) f ) )
assume A12:
g |> f
;
( not h |> g or ( h (*) g |> f & h |> g (*) f ) )
then A13:
dom g1 = cod f1
by CAT_1:def 6;
assume A14:
h |> g
;
( h (*) g |> f & h |> g (*) f )
A15:
dom h1 = cod g1
by A14, CAT_1:def 6;
dom (h1 (*) g1) = cod f1
by A13, A15, CAT_1:def 7;
then
[(h1 (*) g1),f1] in dom (CompMap cc)
by CAT_1:def 6;
hence
h (*) g |> f
by A14, A2;
h |> g (*) f
dom h1 = cod g1
by A14, CAT_1:def 6;
then
dom h1 = cod (g1 (*) f1)
by A13, CAT_1:def 7;
then
[h1,(g1 (*) f1)] in dom (CompMap cc)
by CAT_1:def 6;
hence
h |> g (*) f
by A12, A2;
verum
end;
A16:
for f, g, h being morphism of cc st h |> g & g |> f holds
h (*) (g (*) f) = (h (*) g) (*) f
proof
let f,
g,
h be
morphism of
cc;
( h |> g & g |> f implies h (*) (g (*) f) = (h (*) g) (*) f )
reconsider f1 =
f,
g1 =
g,
h1 =
h,
gf1 =
g (*) f,
hg1 =
h (*) g as
Morphism of
C ;
assume A17:
h |> g
;
( not g |> f or h (*) (g (*) f) = (h (*) g) (*) f )
then A18:
dom h1 = cod g1
by CAT_1:def 6;
assume A19:
g |> f
;
h (*) (g (*) f) = (h (*) g) (*) f
then A20:
dom g1 = cod f1
by CAT_1:def 6;
A21:
h |> g (*) f
by A17, A19, A5;
A22:
h (*) g |> f
by A17, A19, A5;
thus h (*) (g (*) f) =
h1 (*) gf1
by A21, A2
.=
h1 (*) (g1 (*) f1)
by A19, A2
.=
(h1 (*) g1) (*) f1
by A20, A18, CAT_1:def 8
.=
hg1 (*) f1
by A17, A2
.=
(h (*) g) (*) f
by A22, A2
;
verum
end;
A23:
for f being morphism of cc st f in Mor cc holds
( ex c being morphism of cc st
( c |> f & c is identity ) & ex d being morphism of cc st
( f |> d & d is identity ) )
set CS = CategoryStr(# the carrier' of C, the Comp of C #);
CategoryStr(# the carrier' of C, the Comp of C #) is composable
by A5, Lm3;
hence
CategoryStr(# the carrier' of C, the Comp of C #) is category
by A23, A16, Lm5, Lm2; verum