Lm1:
the empty CategoryStr opp is discrete
Lm2:
for C being CategoryStr holds
( C is with_identities iff for f being morphism of C st f in Mor C holds
( ex c being morphism of C st
( c |> f & c is identity ) & ex d being morphism of C st
( f |> d & d is identity ) ) )
Lm3:
for C being CategoryStr holds
( C is composable iff for f, g, h being morphism of C 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 ) ) ) )
Lm4:
for C being CategoryStr
for f, g being morphism of C st g |> f holds
g (*) f = the composition of C . [g,f]
Lm5:
for C being composable CategoryStr holds
( C is associative iff for f, g, h being morphism of C st h |> g & g |> f holds
h (*) (g (*) f) = (h (*) g) (*) f )
definition
let C be
composable with_identities CategoryStr ;
correctness
consistency
for b1 being Function of (Mor C),(Ob C) holds verum;
existence
( ( for b1 being Function of (Mor C),(Ob C) holds verum ) & ( not C is empty implies ex b1 being Function of (Mor C),(Ob C) st
for f being Element of Mor C holds b1 . f = dom f ) & ( C is empty implies ex b1 being Function of (Mor C),(Ob C) st b1 = {} ) );
uniqueness
for b1, b2 being Function of (Mor C),(Ob C) holds
( ( not C is empty & ( for f being Element of Mor C holds b1 . f = dom f ) & ( for f being Element of Mor C holds b2 . f = dom f ) implies b1 = b2 ) & ( C is empty & b1 = {} & b2 = {} implies b1 = b2 ) );
correctness
consistency
for b1 being Function of (Mor C),(Ob C) holds verum;
existence
( ( for b1 being Function of (Mor C),(Ob C) holds verum ) & ( not C is empty implies ex b1 being Function of (Mor C),(Ob C) st
for f being Element of Mor C holds b1 . f = cod f ) & ( C is empty implies ex b1 being Function of (Mor C),(Ob C) st b1 = {} ) );
uniqueness
for b1, b2 being Function of (Mor C),(Ob C) holds
( ( not C is empty & ( for f being Element of Mor C holds b1 . f = cod f ) & ( for f being Element of Mor C holds b2 . f = cod f ) implies b1 = b2 ) & ( C is empty & b1 = {} & b2 = {} implies b1 = b2 ) );
end;
Lm6:
for C being non empty category holds CatStr(# (Ob C),(Mor C),(SourceMap C),(TargetMap C),(CompMap C) #) is Category
Lm7:
for C being Category holds CategoryStr(# the carrier' of C, the Comp of C #) is category