:: MONOID_1 semantic presentation
deffunc H1( HGrStr ) -> M6([: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 c1,
c2,
c3,
c4 be non
empty set ;
let c5 be
Function of
c2,
c3,
Funcs c1,
c4;
let c6 be
Element of
c2;
let c7 be
Element of
c3;
let c8 be
Element of
c1;
redefine func .. as
c5 .. c6,
c7,
c8 -> Element of
a4;
coherence
c5 .. c6,c7,c8 is Element of c4
end;
definition
let c1 be
set ;
let c2,
c3,
c4 be non
empty set ;
let c5 be
Function of
c2,
c3,
c4;
let c6 be
Function of
c1,
c2;
let c7 be
Function of
c1,
c3;
redefine func .: as
c5 .: c6,
c7 -> Element of
Funcs a1,
a4;
coherence
c5 .: c6,c7 is Element of Funcs c1,c4
end;
theorem Th2: :: MONOID_1:2
for
b1,
b2 being
Function for
b3 being
set holds
(b1 | b3) * b2 = b1 * (b3 | b2)
definition
let c1,
c2,
c3 be non
empty set ;
let c4 be
Function of
c1,
c2,
c3;
let c5 be
set ;
func c4,
c3 .: c5 -> Function of
(Funcs a5,a1),
(Funcs a5,a2),
Funcs a5,
a3 means :
Def2:
:: MONOID_1:def 2
for
b1 being
Element of
Funcs a5,
a1 for
b2 being
Element of
Funcs a5,
a2 holds
a6 . b1,
b2 = a4 .: b1,
b2;
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 st ( 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 ) holds
b1 = b2
end;
:: deftheorem Def2 defines .: MONOID_1:def 2 :
for
b1,
b2,
b3 being non
empty set for
b4 being
Function of
b1,
b2,
b3 for
b5 being
set for
b6 being
Function of
(Funcs b5,b1),
(Funcs b5,b2),
Funcs b5,
b3 holds
(
b6 = b4,
b3 .: b5 iff for
b7 being
Element of
Funcs b5,
b1 for
b8 being
Element of
Funcs b5,
b2 holds
b6 . b7,
b8 = b4 .: b7,
b8 );
theorem Th3: :: MONOID_1:3
for
b1,
b2,
b3 being non
empty set for
b4 being
Function of
b1,
b2,
b3 for
b5 being
set for
b6 being
Function of
b5,
b1 for
b7 being
Function of
b5,
b2 for
b8 being
set st
b8 in b5 holds
(b4,b3 .: b5) .. b6,
b7,
b8 = b4 . (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
b1 being
set for
b2,
b3,
b4,
b5,
b6,
b7 being non
empty set for
b8 being
Function of
b2,
b3,
b4 for
b9 being
Function of
b5,
b6,
b7 st
b8 <= b9 holds
b8,
b4 .: b1 <= b9,
b7 .: b1
definition
let c1 be non
empty HGrStr ;
let c2 be
set ;
func .: c1,
c2 -> 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 a1 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
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
:: 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 c1,
c2,
c3 be non
empty set ;
let c4 be
Function of
c1,
c2,
c3;
func c4 .:^2 -> Function of
(bool a1),
(bool a2),
bool a3 means :
Def8:
:: MONOID_1:def 8
for
b1 being
Element of
[:(bool a1),(bool a2):] holds
a5 . b1 = a4 .: [:(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 st ( 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 ):] ) holds
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