:: CATALG_1 semantic presentation
:: deftheorem Def1 defines -MSF CATALG_1:def 1 :
theorem Th1: :: CATALG_1:1
theorem Th2: :: CATALG_1:2
theorem Th3: :: CATALG_1:3
theorem Th4: :: CATALG_1:4
theorem Th5: :: CATALG_1:5
theorem Th6: :: CATALG_1:6
theorem Th7: :: CATALG_1:7
theorem Th8: :: CATALG_1:8
theorem Th9: :: CATALG_1:9
theorem Th10: :: CATALG_1:10
theorem Th11: :: CATALG_1:11
theorem Th12: :: CATALG_1:12
theorem Th13: :: CATALG_1:13
:: deftheorem Def2 CATALG_1:def 2 :
canceled;
:: deftheorem Def3 defines empty CATALG_1:def 3 :
definition
let c1 be
set ;
canceled;func CatSign c1 -> strict ManySortedSign means :
Def5:
:: CATALG_1:def 5
( the
carrier of
a2 = [:{0},(2 -tuples_on a1):] & the
OperSymbols of
a2 = [:{1},(1 -tuples_on a1):] \/ [:{2},(3 -tuples_on a1):] & ( for
b1 being
set st
b1 in a1 holds
( the
Arity of
a2 . [1,<*b1*>] = {} & the
ResultSort of
a2 . [1,<*b1*>] = [0,<*b1,b1*>] ) ) & ( for
b1,
b2,
b3 being
set st
b1 in a1 &
b2 in a1 &
b3 in a1 holds
( the
Arity of
a2 . [2,<*b1,b2,b3*>] = <*[0,<*b2,b3*>],[0,<*b1,b2*>]*> & the
ResultSort of
a2 . [2,<*b1,b2,b3*>] = [0,<*b1,b3*>] ) ) );
existence
ex b1 being strict ManySortedSign st
( the carrier of b1 = [:{0},(2 -tuples_on c1):] & the OperSymbols of b1 = [:{1},(1 -tuples_on c1):] \/ [:{2},(3 -tuples_on c1):] & ( for b2 being set st b2 in c1 holds
( the Arity of b1 . [1,<*b2*>] = {} & the ResultSort of b1 . [1,<*b2*>] = [0,<*b2,b2*>] ) ) & ( for b2, b3, b4 being set st b2 in c1 & b3 in c1 & b4 in c1 holds
( the Arity of b1 . [2,<*b2,b3,b4*>] = <*[0,<*b3,b4*>],[0,<*b2,b3*>]*> & the ResultSort of b1 . [2,<*b2,b3,b4*>] = [0,<*b2,b4*>] ) ) )
correctness
uniqueness
for b1, b2 being strict ManySortedSign st the carrier of b1 = [:{0},(2 -tuples_on c1):] & the OperSymbols of b1 = [:{1},(1 -tuples_on c1):] \/ [:{2},(3 -tuples_on c1):] & ( for b3 being set st b3 in c1 holds
( the Arity of b1 . [1,<*b3*>] = {} & the ResultSort of b1 . [1,<*b3*>] = [0,<*b3,b3*>] ) ) & ( for b3, b4, b5 being set st b3 in c1 & b4 in c1 & b5 in c1 holds
( the Arity of b1 . [2,<*b3,b4,b5*>] = <*[0,<*b4,b5*>],[0,<*b3,b4*>]*> & the ResultSort of b1 . [2,<*b3,b4,b5*>] = [0,<*b3,b5*>] ) ) & the carrier of b2 = [:{0},(2 -tuples_on c1):] & the OperSymbols of b2 = [:{1},(1 -tuples_on c1):] \/ [:{2},(3 -tuples_on c1):] & ( for b3 being set st b3 in c1 holds
( the Arity of b2 . [1,<*b3*>] = {} & the ResultSort of b2 . [1,<*b3*>] = [0,<*b3,b3*>] ) ) & ( for b3, b4, b5 being set st b3 in c1 & b4 in c1 & b5 in c1 holds
( the Arity of b2 . [2,<*b3,b4,b5*>] = <*[0,<*b4,b5*>],[0,<*b3,b4*>]*> & the ResultSort of b2 . [2,<*b3,b4,b5*>] = [0,<*b3,b5*>] ) ) holds
b1 = b2;
end;
:: deftheorem Def4 CATALG_1:def 4 :
canceled;
:: deftheorem Def5 defines CatSign CATALG_1:def 5 :
for
b1 being
set for
b2 being
strict ManySortedSign holds
(
b2 = CatSign b1 iff ( the
carrier of
b2 = [:{0},(2 -tuples_on b1):] & the
OperSymbols of
b2 = [:{1},(1 -tuples_on b1):] \/ [:{2},(3 -tuples_on b1):] & ( for
b3 being
set st
b3 in b1 holds
( the
Arity of
b2 . [1,<*b3*>] = {} & the
ResultSort of
b2 . [1,<*b3*>] = [0,<*b3,b3*>] ) ) & ( for
b3,
b4,
b5 being
set st
b3 in b1 &
b4 in b1 &
b5 in b1 holds
( the
Arity of
b2 . [2,<*b3,b4,b5*>] = <*[0,<*b4,b5*>],[0,<*b3,b4*>]*> & the
ResultSort of
b2 . [2,<*b3,b4,b5*>] = [0,<*b3,b5*>] ) ) ) );
:: deftheorem Def6 defines Categorial CATALG_1:def 6 :
:: deftheorem Def7 defines CatSignature CATALG_1:def 7 :
theorem Th14: :: CATALG_1:14
:: deftheorem Def8 defines underlay CATALG_1:def 8 :
theorem Th15: :: CATALG_1:15
:: deftheorem Def9 defines delta-concrete CATALG_1:def 9 :
theorem Th16: :: CATALG_1:16
theorem Th17: :: CATALG_1:17
theorem Th18: :: CATALG_1:18
theorem Th19: :: CATALG_1:19
definition
let c1 be
set ;
func idsym c1 -> set equals :: CATALG_1:def 10
[1,<*a1*>];
correctness
coherence
[1,<*c1*>] is set ;
;
let c2 be
set ;
func homsym c1,
c2 -> set equals :: CATALG_1:def 11
[0,<*a1,a2*>];
correctness
coherence
[0,<*c1,c2*>] is set ;
;
let c3 be
set ;
func compsym c1,
c2,
c3 -> set equals :: CATALG_1:def 12
[2,<*a1,a2,a3*>];
correctness
coherence
[2,<*c1,c2,c3*>] is set ;
;
end;
:: deftheorem Def10 defines idsym CATALG_1:def 10 :
:: deftheorem Def11 defines homsym CATALG_1:def 11 :
:: deftheorem Def12 defines compsym CATALG_1:def 12 :
theorem Th20: :: CATALG_1:20
theorem Th21: :: CATALG_1:21
theorem Th22: :: CATALG_1:22
theorem Th23: :: CATALG_1:23
for
b1,
b2,
b3,
b4,
b5,
b6 being
set st
compsym b1,
b3,
b5 = compsym b2,
b4,
b6 holds
(
b1 = b2 &
b3 = b4 &
b5 = b6 )
theorem Th24: :: CATALG_1:24
theorem Th25: :: CATALG_1:25
theorem Th26: :: CATALG_1:26
theorem Th27: :: CATALG_1:27
theorem Th28: :: CATALG_1:28
theorem Th29: :: CATALG_1:29
for
b1 being non
empty set for
b2,
b3,
b4 being
Element of
b1 holds
(
the_arity_of (compsym b2,b3,b4) = <*(homsym b3,b4),(homsym b2,b3)*> &
the_result_sort_of (compsym b2,b3,b4) = homsym b2,
b4 )
by Def5;
definition
let c1,
c2 be
Category;
let c3 be
Functor of
c1,
c2;
func Upsilon c3 -> Function of the
carrier of
(CatSign the Objects of a1),the
carrier of
(CatSign the Objects of a2) means :
Def13:
:: CATALG_1:def 13
for
b1 being
SortSymbol of
(CatSign the Objects of a1) holds
a4 . b1 = [0,((Obj a3) * (b1 `2 ))];
uniqueness
for b1, b2 being Function of the carrier of (CatSign the Objects of c1),the carrier of (CatSign the Objects of c2) st ( for b3 being SortSymbol of (CatSign the Objects of c1) holds b1 . b3 = [0,((Obj c3) * (b3 `2 ))] ) & ( for b3 being SortSymbol of (CatSign the Objects of c1) holds b2 . b3 = [0,((Obj c3) * (b3 `2 ))] ) holds
b1 = b2
existence
ex b1 being Function of the carrier of (CatSign the Objects of c1),the carrier of (CatSign the Objects of c2) st
for b2 being SortSymbol of (CatSign the Objects of c1) holds b1 . b2 = [0,((Obj c3) * (b2 `2 ))]
func Psi c3 -> Function of the
OperSymbols of
(CatSign the Objects of a1),the
OperSymbols of
(CatSign the Objects of a2) means :
Def14:
:: CATALG_1:def 14
for
b1 being
OperSymbol of
(CatSign the Objects of a1) holds
a4 . b1 = [(b1 `1 ),((Obj a3) * (b1 `2 ))];
uniqueness
for b1, b2 being Function of the OperSymbols of (CatSign the Objects of c1),the OperSymbols of (CatSign the Objects of c2) st ( for b3 being OperSymbol of (CatSign the Objects of c1) holds b1 . b3 = [(b3 `1 ),((Obj c3) * (b3 `2 ))] ) & ( for b3 being OperSymbol of (CatSign the Objects of c1) holds b2 . b3 = [(b3 `1 ),((Obj c3) * (b3 `2 ))] ) holds
b1 = b2
existence
ex b1 being Function of the OperSymbols of (CatSign the Objects of c1),the OperSymbols of (CatSign the Objects of c2) st
for b2 being OperSymbol of (CatSign the Objects of c1) holds b1 . b2 = [(b2 `1 ),((Obj c3) * (b2 `2 ))]
end;
:: deftheorem Def13 defines Upsilon CATALG_1:def 13 :
:: deftheorem Def14 defines Psi CATALG_1:def 14 :
theorem Th30: :: CATALG_1:30
theorem Th31: :: CATALG_1:31
theorem Th32: :: CATALG_1:32
theorem Th33: :: CATALG_1:33
theorem Th34: :: CATALG_1:34
Lemma36:
for b1 being Category
for b2 being MSAlgebra of CatSign the Objects of b1 st ( for b3, b4 being Object of b1 holds the Sorts of b2 . (homsym b3,b4) = Hom b3,b4 ) holds
for b3, b4, b5 being Object of b1 holds
( Args (compsym b3,b4,b5),b2 = product <*(Hom b4,b5),(Hom b3,b4)*> & Result (compsym b3,b4,b5),b2 = Hom b3,b5 )
scheme :: CATALG_1:sch 1
s1{
F1()
-> non
empty set ,
F2()
-> non
empty set ,
F3(
set ,
set )
-> set ,
F4(
set ,
set ,
set ,
set ,
set )
-> set ,
F5(
set )
-> set } :
ex
b1 being
strict MSAlgebra of
CatSign F1() st
( ( for
b2,
b3 being
Element of
F1() holds the
Sorts of
b1 . (homsym b2,b3) = F3(
b2,
b3) ) & ( for
b2 being
Element of
F1() holds
(Den (idsym b2),b1) . {} = F5(
b2) ) & ( for
b2,
b3,
b4 being
Element of
F1()
for
b5,
b6 being
Element of
F2() st
b5 in F3(
b2,
b3) &
b6 in F3(
b3,
b4) holds
(Den (compsym b2,b3,b4),b1) . <*b6,b5*> = F4(
b2,
b3,
b4,
b6,
b5) ) )
provided
E37:
for
b1,
b2 being
Element of
F1() holds
F3(
b1,
b2)
c= F2()
and E38:
for
b1 being
Element of
F1() holds
F5(
b1)
in F3(
b1,
b1)
and E39:
for
b1,
b2,
b3 being
Element of
F1()
for
b4,
b5 being
Element of
F2() st
b4 in F3(
b1,
b2) &
b5 in F3(
b2,
b3) holds
F4(
b1,
b2,
b3,
b5,
b4)
in F3(
b1,
b3)
definition
let c1 be
Category;
func MSAlg c1 -> strict MSAlgebra of
CatSign the
Objects of
a1 means :
Def15:
:: CATALG_1:def 15
( ( for
b1,
b2 being
Object of
a1 holds the
Sorts of
a2 . (homsym b1,b2) = Hom b1,
b2 ) & ( for
b1 being
Object of
a1 holds
(Den (idsym b1),a2) . {} = id b1 ) & ( for
b1,
b2,
b3 being
Object of
a1 for
b4,
b5 being
Morphism of
a1 st
dom b4 = b1 &
cod b4 = b2 &
dom b5 = b2 &
cod b5 = b3 holds
(Den (compsym b1,b2,b3),a2) . <*b5,b4*> = b5 * b4 ) );
uniqueness
for b1, b2 being strict MSAlgebra of CatSign the Objects of c1 st ( for b3, b4 being Object of c1 holds the Sorts of b1 . (homsym b3,b4) = Hom b3,b4 ) & ( for b3 being Object of c1 holds (Den (idsym b3),b1) . {} = id b3 ) & ( for b3, b4, b5 being Object of c1
for b6, b7 being Morphism of c1 st dom b6 = b3 & cod b6 = b4 & dom b7 = b4 & cod b7 = b5 holds
(Den (compsym b3,b4,b5),b1) . <*b7,b6*> = b7 * b6 ) & ( for b3, b4 being Object of c1 holds the Sorts of b2 . (homsym b3,b4) = Hom b3,b4 ) & ( for b3 being Object of c1 holds (Den (idsym b3),b2) . {} = id b3 ) & ( for b3, b4, b5 being Object of c1
for b6, b7 being Morphism of c1 st dom b6 = b3 & cod b6 = b4 & dom b7 = b4 & cod b7 = b5 holds
(Den (compsym b3,b4,b5),b2) . <*b7,b6*> = b7 * b6 ) holds
b1 = b2
correctness
existence
ex b1 being strict MSAlgebra of CatSign the Objects of c1 st
( ( for b2, b3 being Object of c1 holds the Sorts of b1 . (homsym b2,b3) = Hom b2,b3 ) & ( for b2 being Object of c1 holds (Den (idsym b2),b1) . {} = id b2 ) & ( for b2, b3, b4 being Object of c1
for b5, b6 being Morphism of c1 st dom b5 = b2 & cod b5 = b3 & dom b6 = b3 & cod b6 = b4 holds
(Den (compsym b2,b3,b4),b1) . <*b6,b5*> = b6 * b5 ) );
end;
:: deftheorem Def15 defines MSAlg CATALG_1:def 15 :
for
b1 being
Category for
b2 being
strict MSAlgebra of
CatSign the
Objects of
b1 holds
(
b2 = MSAlg b1 iff ( ( for
b3,
b4 being
Object of
b1 holds the
Sorts of
b2 . (homsym b3,b4) = Hom b3,
b4 ) & ( for
b3 being
Object of
b1 holds
(Den (idsym b3),b2) . {} = id b3 ) & ( for
b3,
b4,
b5 being
Object of
b1 for
b6,
b7 being
Morphism of
b1 st
dom b6 = b3 &
cod b6 = b4 &
dom b7 = b4 &
cod b7 = b5 holds
(Den (compsym b3,b4,b5),b2) . <*b7,b6*> = b7 * b6 ) ) );
theorem Th35: :: CATALG_1:35
canceled;
theorem Th36: :: CATALG_1:36
theorem Th37: :: CATALG_1:37
for
b1 being
Category for
b2,
b3,
b4 being
Object of
b1 holds
(
Args (compsym b2,b3,b4),
(MSAlg b1) = product <*(Hom b3,b4),(Hom b2,b3)*> &
Result (compsym b2,b3,b4),
(MSAlg b1) = Hom b2,
b4 )
theorem Th38: :: CATALG_1:38
theorem Th39: :: CATALG_1:39
theorem Th40: :: CATALG_1:40
for
b1,
b2 being
Category for
b3 being
Functor of
b1,
b2 for
b4,
b5,
b6 being
Object of
b1 for
b7,
b8 being
Morphism of
b1 st
b7 in Hom b4,
b5 &
b8 in Hom b5,
b6 holds
for
b9 being
Element of
Args (compsym b4,b5,b6),
(MSAlg b1) st
b9 = <*b8,b7*> holds
for
b10 being
ManySortedFunction of
(MSAlg b1),
((MSAlg b2) | (CatSign the Objects of b1),(Upsilon b3),(Psi b3)) st
b10 = b3 -MSF the
carrier of
(CatSign the Objects of b1),the
Sorts of
(MSAlg b1) holds
b10 # b9 = <*(b3 . b8),(b3 . b7)*>
theorem Th41: :: CATALG_1:41
canceled;
theorem Th42: :: CATALG_1:42
theorem Th43: :: CATALG_1:43
for
b1 being
Category for
b2,
b3,
b4,
b5 being
Object of
b1 for
b6,
b7,
b8 being
Morphism of
b1 st
b6 in Hom b2,
b3 &
b7 in Hom b3,
b4 &
b8 in Hom b4,
b5 holds
(Den (compsym b2,b4,b5),(MSAlg b1)) . <*b8,((Den (compsym b2,b3,b4),(MSAlg b1)) . <*b7,b6*>)*> = (Den (compsym b2,b3,b5),(MSAlg b1)) . <*((Den (compsym b3,b4,b5),(MSAlg b1)) . <*b8,b7*>),b6*>
theorem Th44: :: CATALG_1:44
for
b1 being
Category for
b2,
b3 being
Object of
b1 for
b4 being
Morphism of
b1 st
b4 in Hom b2,
b3 holds
(
(Den (compsym b2,b3,b3),(MSAlg b1)) . <*(id b3),b4*> = b4 &
(Den (compsym b2,b2,b3),(MSAlg b1)) . <*b4,(id b2)*> = b4 )
theorem Th45: :: CATALG_1:45