:: MONOID_1 semantic presentation
deffunc H1( HGrStr ) -> Relation of [:the carrier of a1,the carrier of a1:],the carrier of a1 = the mult of a1;
deffunc H2( multLoopStr ) -> Element of the carrier of a1 = the unity of a1;
:: deftheorem Def1 defines .. MONOID_1:def 1 :
theorem Th1: :: MONOID_1:1
definition
let c
1, c
2, c
3, c
4 be non
empty set ;
let c
5 be
Function of c
2,c
3,
Funcs c
1,c
4;
let c
6 be
Element of c
2;
let c
7 be
Element of c
3;
let c
8 be
Element of c
1;
redefine func .. as c
5 .. c
6,c
7,c
8 -> Element of a
4;
coherence
c5 .. c6,c7,c8 is Element of c4
end;
definition
let c
1 be
set ;
let c
2, c
3, c
4 be non
empty set ;
let c
5 be
Function of c
2,c
3,c
4;
let c
6 be
Function of c
1,c
2;
let c
7 be
Function of c
1,c
3;
redefine func .: as c
5 .: c
6,c
7 -> Element of
Funcs a
1,a
4;
coherence
c5 .: c6,c7 is Element of Funcs c1,c4
end;
theorem Th2: :: MONOID_1:2
definition
let c
1, c
2, c
3 be non
empty set ;
let c
4 be
Function of c
1,c
2,c
3;
let c
5 be
set ;
func c
4,c
3 .: c
5 -> Function of
(Funcs a5,a1),
(Funcs a5,a2),
Funcs a
5,a
3 means :
Def2:
:: MONOID_1:def 2
for b
1 being
Element of
Funcs a
5,a
1for b
2 being
Element of
Funcs a
5,a
2 holds a
6 . b
1,b
2 = a
4 .: b
1,b
2;
existence
ex b1 being Function of (Funcs c5,c1),(Funcs c5,c2), Funcs c5,c3 st
for b2 being Element of Funcs c5,c1
for b3 being Element of Funcs c5,c2 holds b1 . b2,b3 = c4 .: b2,b3
uniqueness
for b1, b2 being Function of (Funcs c5,c1),(Funcs c5,c2), Funcs c5,c3 holds
( ( for b3 being Element of Funcs c5,c1
for b4 being Element of Funcs c5,c2 holds b1 . b3,b4 = c4 .: b3,b4 ) & ( for b3 being Element of Funcs c5,c1
for b4 being Element of Funcs c5,c2 holds b2 . b3,b4 = c4 .: b3,b4 ) implies b1 = b2 )
end;
:: deftheorem Def2 defines .: MONOID_1:def 2 :
for b
1, b
2, b
3 being non
empty set for b
4 being
Function of b
1,b
2,b
3for b
5 being
set for b
6 being
Function of
(Funcs b5,b1),
(Funcs b5,b2),
Funcs b
5,b
3 holds
( b
6 = b
4,b
3 .: b
5 iff for b
7 being
Element of
Funcs b
5,b
1for b
8 being
Element of
Funcs b
5,b
2 holds b
6 . b
7,b
8 = b
4 .: b
7,b
8 );
theorem Th3: :: MONOID_1:3
for b
1, b
2, b
3 being non
empty set for b
4 being
Function of b
1,b
2,b
3for b
5 being
set for b
6 being
Function of b
5,b
1for b
7 being
Function of b
5,b
2for b
8 being
set holds
( b
8 in b
5 implies
(b4,b3 .: b5) .. b
6,b
7,b
8 = b
4 . (b6 . b8),
(b7 . b8) )
theorem Th4: :: MONOID_1:4
theorem Th5: :: MONOID_1:5
theorem Th6: :: MONOID_1:6
theorem Th7: :: MONOID_1:7
theorem Th8: :: MONOID_1:8
theorem Th9: :: MONOID_1:9
theorem Th10: :: MONOID_1:10
theorem Th11: :: MONOID_1:11
theorem Th12: :: MONOID_1:12
theorem Th13: :: MONOID_1:13
theorem Th14: :: MONOID_1:14
theorem Th15: :: MONOID_1:15
theorem Th16: :: MONOID_1:16
theorem Th17: :: MONOID_1:17
for b
1 being
set for b
2, b
3, b
4, b
5, b
6, b
7 being non
empty set for b
8 being
Function of b
2,b
3,b
4for b
9 being
Function of b
5,b
6,b
7 holds
( b
8 <= b
9 implies b
8,b
4 .: b
1 <= b
9,b
7 .: b
1 )
definition
let c
1 be non
empty HGrStr ;
let c
2 be
set ;
func .: c
1,c
2 -> HGrStr equals :
Def3:
:: MONOID_1:def 3
multLoopStr(#
(Funcs a2,the carrier of a1),
(the mult of a1,the carrier of a1 .: a2),
(a2 --> (the_unity_wrt the mult of a1)) #)
if a
1 is
unital otherwise HGrStr(#
(Funcs a2,the carrier of a1),
(the mult of a1,the carrier of a1 .: a2) #);
correctness
coherence
( ( c1 is unital implies multLoopStr(# (Funcs c2,the carrier of c1),(the mult of c1,the carrier of c1 .: c2),(c2 --> (the_unity_wrt the mult of c1)) #) is HGrStr ) & ( not c1 is unital implies HGrStr(# (Funcs c2,the carrier of c1),(the mult of c1,the carrier of c1 .: c2) #) is HGrStr ) );
consistency
for b1 being HGrStr holds
verum;
;
end;
:: deftheorem Def3 defines .: MONOID_1:def 3 :
deffunc H3( non empty HGrStr ) -> set = the carrier of a1;
theorem Th18: :: MONOID_1:18
theorem Th19: :: MONOID_1:19
Lemma18:
for b1 being set
for b2 being non empty HGrStr holds .: b2,b1 is constituted-Functions
theorem Th20: :: MONOID_1:20
theorem Th21: :: MONOID_1:21
for b
1 being
set for b
2 being non
empty HGrStr for b
3, b
4 being
Element of
(.: b2,b1) holds
( ( for b
5 being
set holds
( b
5 in b
1 implies b
3 . b
5 = b
4 . b
5 ) ) implies b
3 = b
4 )
theorem Th22: :: MONOID_1:22
theorem Th23: :: MONOID_1:23
theorem Th24: :: MONOID_1:24
theorem Th25: :: MONOID_1:25
theorem Th26: :: MONOID_1:26
:: deftheorem Def4 defines MultiSet_over MONOID_1:def 4 :
theorem Th27: :: MONOID_1:27
theorem Th28: :: MONOID_1:28
theorem Th29: :: MONOID_1:29
theorem Th30: :: MONOID_1:30
theorem Th31: :: MONOID_1:31
:: deftheorem Def5 defines chi MONOID_1:def 5 :
theorem Th32: :: MONOID_1:32
theorem Th33: :: MONOID_1:33
for b
1 being non
empty set for b
2, b
3 being
Multiset of b
1 holds
( ( for b
4 being
Element of b
1 holds b
2 . b
4 = b
3 . b
4 ) implies b
2 = b
3 )
:: deftheorem Def6 defines finite-MultiSet_over MONOID_1:def 6 :
theorem Th34: :: MONOID_1:34
theorem Th35: :: MONOID_1:35
theorem Th36: :: MONOID_1:36
:: deftheorem Def7 defines |. MONOID_1:def 7 :
theorem Th37: :: MONOID_1:37
theorem Th38: :: MONOID_1:38
theorem Th39: :: MONOID_1:39
theorem Th40: :: MONOID_1:40
theorem Th41: :: MONOID_1:41
theorem Th42: :: MONOID_1:42
theorem Th43: :: MONOID_1:43
theorem Th44: :: MONOID_1:44
definition
let c
1, c
2, c
3 be non
empty set ;
let c
4 be
Function of c
1,c
2,c
3;
func c
4 .:^2 -> Function of
(bool a1),
(bool a2),
bool a
3 means :
Def8:
:: MONOID_1:def 8
for b
1 being
Element of
[:(bool a1),(bool a2):] holds a
5 . b
1 = a
4 .: [:(b1 `1 ),(b1 `2 ):];
existence
ex b1 being Function of (bool c1),(bool c2), bool c3 st
for b2 being Element of [:(bool c1),(bool c2):] holds b1 . b2 = c4 .: [:(b2 `1 ),(b2 `2 ):]
uniqueness
for b1, b2 being Function of (bool c1),(bool c2), bool c3 holds
( ( for b3 being Element of [:(bool c1),(bool c2):] holds b1 . b3 = c4 .: [:(b3 `1 ),(b3 `2 ):] ) & ( for b3 being Element of [:(bool c1),(bool c2):] holds b2 . b3 = c4 .: [:(b3 `1 ),(b3 `2 ):] ) implies b1 = b2 )
end;
:: deftheorem Def8 defines .:^2 MONOID_1:def 8 :
theorem Th45: :: MONOID_1:45
theorem Th46: :: MONOID_1:46
theorem Th47: :: MONOID_1:47
theorem Th48: :: MONOID_1:48
theorem Th49: :: MONOID_1:49
theorem Th50: :: MONOID_1:50
theorem Th51: :: MONOID_1:51
theorem Th52: :: MONOID_1:52
theorem Th53: :: MONOID_1:53
theorem Th54: :: MONOID_1:54
theorem Th55: :: MONOID_1:55
:: deftheorem Def9 defines bool MONOID_1:def 9 :
theorem Th56: :: MONOID_1:56
theorem Th57: :: MONOID_1:57
theorem Th58: :: MONOID_1:58