definition
let A be
set ;
func CatSign A -> strict ManySortedSign means :
Def3:
( the
carrier of
it = [:{0},(2 -tuples_on A):] & the
carrier' of
it = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] & ( for
a being
set st
a in A holds
( the
Arity of
it . [1,<*a*>] = {} & the
ResultSort of
it . [1,<*a*>] = [0,<*a,a*>] ) ) & ( for
a,
b,
c being
set st
a in A &
b in A &
c in A holds
( the
Arity of
it . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the
ResultSort of
it . [2,<*a,b,c*>] = [0,<*a,c*>] ) ) );
existence
ex b1 being strict ManySortedSign st
( the carrier of b1 = [:{0},(2 -tuples_on A):] & the carrier' of b1 = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] & ( for a being set st a in A holds
( the Arity of b1 . [1,<*a*>] = {} & the ResultSort of b1 . [1,<*a*>] = [0,<*a,a*>] ) ) & ( for a, b, c being set st a in A & b in A & c in A holds
( the Arity of b1 . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of b1 . [2,<*a,b,c*>] = [0,<*a,c*>] ) ) )
correctness
uniqueness
for b1, b2 being strict ManySortedSign st the carrier of b1 = [:{0},(2 -tuples_on A):] & the carrier' of b1 = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] & ( for a being set st a in A holds
( the Arity of b1 . [1,<*a*>] = {} & the ResultSort of b1 . [1,<*a*>] = [0,<*a,a*>] ) ) & ( for a, b, c being set st a in A & b in A & c in A holds
( the Arity of b1 . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of b1 . [2,<*a,b,c*>] = [0,<*a,c*>] ) ) & the carrier of b2 = [:{0},(2 -tuples_on A):] & the carrier' of b2 = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] & ( for a being set st a in A holds
( the Arity of b2 . [1,<*a*>] = {} & the ResultSort of b2 . [1,<*a*>] = [0,<*a,a*>] ) ) & ( for a, b, c being set st a in A & b in A & c in A holds
( the Arity of b2 . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of b2 . [2,<*a,b,c*>] = [0,<*a,c*>] ) ) holds
b1 = b2;
end;
::
deftheorem Def3 defines
CatSign CATALG_1:def 3 :
for A being set
for b2 being strict ManySortedSign holds
( b2 = CatSign A iff ( the carrier of b2 = [:{0},(2 -tuples_on A):] & the carrier' of b2 = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] & ( for a being set st a in A holds
( the Arity of b2 . [1,<*a*>] = {} & the ResultSort of b2 . [1,<*a*>] = [0,<*a,a*>] ) ) & ( for a, b, c being set st a in A & b in A & c in A holds
( the Arity of b2 . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of b2 . [2,<*a,b,c*>] = [0,<*a,c*>] ) ) ) );
Lm2:
for A being set
for x being object st x in proj2 ( the carrier of (CatSign A) \/ the carrier' of (CatSign A)) holds
x is Function
Lm3:
for S being delta-concrete ManySortedSign
for x being object st x in proj2 ( the carrier of S \/ the carrier' of S) holds
x is Function
theorem Th13:
for
a1,
b1,
a2,
b2 being
set st
homsym (
a1,
a2)
= homsym (
b1,
b2) holds
(
a1 = b1 &
a2 = b2 )
theorem Th14:
for
a1,
b1,
a2,
b2,
a3,
b3 being
set st
compsym (
a1,
a2,
a3)
= compsym (
b1,
b2,
b3) holds
(
a1 = b1 &
a2 = b2 &
a3 = b3 )
theorem
for
A being non
empty set for
a,
b,
c being
Element of
A holds
(
the_arity_of (compsym (a,b,c)) = <*(homsym (b,c)),(homsym (a,b))*> &
the_result_sort_of (compsym (a,b,c)) = homsym (
a,
c) )
by Def3;
definition
let C1,
C2 be
Category;
let F be
Functor of
C1,
C2;
uniqueness
for b1, b2 being Function of the carrier of (CatSign the carrier of C1), the carrier of (CatSign the carrier of C2) st ( for s being SortSymbol of (CatSign the carrier of C1) holds b1 . s = [0,((Obj F) * (s `2))] ) & ( for s being SortSymbol of (CatSign the carrier of C1) holds b2 . s = [0,((Obj F) * (s `2))] ) holds
b1 = b2
existence
ex b1 being Function of the carrier of (CatSign the carrier of C1), the carrier of (CatSign the carrier of C2) st
for s being SortSymbol of (CatSign the carrier of C1) holds b1 . s = [0,((Obj F) * (s `2))]
uniqueness
for b1, b2 being Function of the carrier' of (CatSign the carrier of C1), the carrier' of (CatSign the carrier of C2) st ( for o being OperSymbol of (CatSign the carrier of C1) holds b1 . o = [(o `1),((Obj F) * (o `2))] ) & ( for o being OperSymbol of (CatSign the carrier of C1) holds b2 . o = [(o `1),((Obj F) * (o `2))] ) holds
b1 = b2
existence
ex b1 being Function of the carrier' of (CatSign the carrier of C1), the carrier' of (CatSign the carrier of C2) st
for o being OperSymbol of (CatSign the carrier of C1) holds b1 . o = [(o `1),((Obj F) * (o `2))]
end;
Lm5:
for C being Category
for A being MSAlgebra over CatSign the carrier of C st ( for a, b being Object of C holds the Sorts of A . (homsym (a,b)) = Hom (a,b) ) holds
for a, b, c being Object of C holds
( Args ((compsym (a,b,c)),A) = product <*(Hom (b,c)),(Hom (a,b))*> & Result ((compsym (a,b,c)),A) = Hom (a,c) )
scheme
CatAlgEx{
F1()
-> non
empty set ,
F2()
-> non
empty set ,
F3(
set ,
set )
-> set ,
F4(
set ,
set ,
set ,
object ,
object )
-> set ,
F5(
set )
-> set } :
ex
A being
strict MSAlgebra over
CatSign F1() st
( ( for
a,
b being
Element of
F1() holds the
Sorts of
A . (homsym (a,b)) = F3(
a,
b) ) & ( for
a being
Element of
F1() holds
(Den ((idsym a),A)) . {} = F5(
a) ) & ( for
a,
b,
c being
Element of
F1()
for
f,
g being
Element of
F2() st
f in F3(
a,
b) &
g in F3(
b,
c) holds
(Den ((compsym (a,b,c)),A)) . <*g,f*> = F4(
a,
b,
c,
g,
f) ) )
provided
A1:
for
a,
b being
Element of
F1() holds
F3(
a,
b)
c= F2()
and A2:
for
a being
Element of
F1() holds
F5(
a)
in F3(
a,
a)
and A3:
for
a,
b,
c being
Element of
F1()
for
f,
g being
Element of
F2() st
f in F3(
a,
b) &
g in F3(
b,
c) holds
F4(
a,
b,
c,
g,
f)
in F3(
a,
c)
definition
let C be
Category;
func MSAlg C -> strict MSAlgebra over
CatSign the
carrier of
C means :
Def13:
( ( for
a,
b being
Object of
C holds the
Sorts of
it . (homsym (a,b)) = Hom (
a,
b) ) & ( for
a being
Object of
C holds
(Den ((idsym a),it)) . {} = id a ) & ( for
a,
b,
c being
Object of
C for
f,
g being
Morphism of
C st
dom f = a &
cod f = b &
dom g = b &
cod g = c holds
(Den ((compsym (a,b,c)),it)) . <*g,f*> = g (*) f ) );
uniqueness
for b1, b2 being strict MSAlgebra over CatSign the carrier of C st ( for a, b being Object of C holds the Sorts of b1 . (homsym (a,b)) = Hom (a,b) ) & ( for a being Object of C holds (Den ((idsym a),b1)) . {} = id a ) & ( for a, b, c being Object of C
for f, g being Morphism of C st dom f = a & cod f = b & dom g = b & cod g = c holds
(Den ((compsym (a,b,c)),b1)) . <*g,f*> = g (*) f ) & ( for a, b being Object of C holds the Sorts of b2 . (homsym (a,b)) = Hom (a,b) ) & ( for a being Object of C holds (Den ((idsym a),b2)) . {} = id a ) & ( for a, b, c being Object of C
for f, g being Morphism of C st dom f = a & cod f = b & dom g = b & cod g = c holds
(Den ((compsym (a,b,c)),b2)) . <*g,f*> = g (*) f ) holds
b1 = b2
correctness
existence
ex b1 being strict MSAlgebra over CatSign the carrier of C st
( ( for a, b being Object of C holds the Sorts of b1 . (homsym (a,b)) = Hom (a,b) ) & ( for a being Object of C holds (Den ((idsym a),b1)) . {} = id a ) & ( for a, b, c being Object of C
for f, g being Morphism of C st dom f = a & cod f = b & dom g = b & cod g = c holds
(Den ((compsym (a,b,c)),b1)) . <*g,f*> = g (*) f ) );
end;
::
deftheorem Def13 defines
MSAlg CATALG_1:def 13 :
for C being Category
for b2 being strict MSAlgebra over CatSign the carrier of C holds
( b2 = MSAlg C iff ( ( for a, b being Object of C holds the Sorts of b2 . (homsym (a,b)) = Hom (a,b) ) & ( for a being Object of C holds (Den ((idsym a),b2)) . {} = id a ) & ( for a, b, c being Object of C
for f, g being Morphism of C st dom f = a & cod f = b & dom g = b & cod g = c holds
(Den ((compsym (a,b,c)),b2)) . <*g,f*> = g (*) f ) ) );
theorem Th27:
for
A being
Category for
a,
b,
c being
Object of
A holds
(
Args (
(compsym (a,b,c)),
(MSAlg A))
= product <*(Hom (b,c)),(Hom (a,b))*> &
Result (
(compsym (a,b,c)),
(MSAlg A))
= Hom (
a,
c) )
theorem Th30:
for
C1,
C2 being
Category for
F being
Functor of
C1,
C2 for
a,
b,
c being
Object of
C1 for
f,
g being
Morphism of
C1 st
f in Hom (
a,
b) &
g in Hom (
b,
c) holds
for
x being
Element of
Args (
(compsym (a,b,c)),
(MSAlg C1)) st
x = <*g,f*> holds
for
H being
ManySortedFunction of
(MSAlg C1),
((MSAlg C2) | ((CatSign the carrier of C1),(Upsilon F),(Psi F))) st
H = F -MSF ( the
carrier of
(CatSign the carrier of C1), the
Sorts of
(MSAlg C1)) holds
H # x = <*(F . g),(F . f)*>
theorem
for
C being
Category for
a,
b,
c,
d being
Object of
C for
f,
g,
h being
Morphism of
C st
f in Hom (
a,
b) &
g in Hom (
b,
c) &
h in Hom (
c,
d) holds
(Den ((compsym (a,c,d)),(MSAlg C))) . <*h,((Den ((compsym (a,b,c)),(MSAlg C))) . <*g,f*>)*> = (Den ((compsym (a,b,d)),(MSAlg C))) . <*((Den ((compsym (b,c,d)),(MSAlg C))) . <*h,g*>),f*>
theorem
for
C being
Category for
a,
b being
Object of
C for
f being
Morphism of
C st
f in Hom (
a,
b) holds
(
(Den ((compsym (a,b,b)),(MSAlg C))) . <*(id b),f*> = f &
(Den ((compsym (a,a,b)),(MSAlg C))) . <*f,(id a)*> = f )