:: MONOID_0 semantic presentation
deffunc H1( 1-sorted ) -> set = the carrier of a1;
deffunc H2( HGrStr ) -> M5([:the carrier of a1,the carrier of a1:],the carrier of a1) = the mult of a1;
:: deftheorem Def1 defines constituted-Functions MONOID_0:def 1 :
:: deftheorem Def2 defines constituted-FinSeqs MONOID_0:def 2 :
definition
let c
1 be non
empty set ;
let c
2 be
BinOp of c
1;
attr a
2 is
left-invertible means :: MONOID_0:def 3
for b
1, b
2 being
Element of a
1 holds
ex b
3 being
Element of a
1 st a
2 . b
3,b
1 = b
2;
attr a
2 is
right-invertible means :: MONOID_0:def 4
for b
1, b
2 being
Element of a
1 holds
ex b
3 being
Element of a
1 st a
2 . b
1,b
3 = b
2;
attr a
2 is
invertible means :
Def5:
:: MONOID_0:def 5
for b
1, b
2 being
Element of a
1 holds
ex b
3, b
4 being
Element of a
1 st
( a
2 . b
1,b
3 = b
2 & a
2 . b
4,b
1 = b
2 );
attr a
2 is
left-cancelable means :: MONOID_0:def 6
for b
1, b
2, b
3 being
Element of a
1 holds
( a
2 . b
1,b
2 = a
2 . b
1,b
3 implies b
2 = b
3 );
attr a
2 is
right-cancelable means :: MONOID_0:def 7
for b
1, b
2, b
3 being
Element of a
1 holds
( a
2 . b
2,b
1 = a
2 . b
3,b
1 implies b
2 = b
3 );
attr a
2 is
cancelable means :: MONOID_0:def 8
for b
1, b
2, b
3 being
Element of a
1 holds
( ( a
2 . b
1,b
2 = a
2 . b
1,b
3 or a
2 . b
2,b
1 = a
2 . b
3,b
1 ) implies b
2 = b
3 );
attr a
2 is
uniquely-decomposable means :: MONOID_0:def 9
( a
2 has_a_unity & ( for b
1, b
2 being
Element of a
1 holds
( a
2 . b
1,b
2 = the_unity_wrt a
2 implies ( b
1 = b
2 & b
2 = the_unity_wrt a
2 ) ) ) );
end;
:: deftheorem Def3 defines left-invertible MONOID_0:def 3 :
:: deftheorem Def4 defines right-invertible MONOID_0:def 4 :
:: deftheorem Def5 defines invertible MONOID_0:def 5 :
:: deftheorem Def6 defines left-cancelable MONOID_0:def 6 :
:: deftheorem Def7 defines right-cancelable MONOID_0:def 7 :
:: deftheorem Def8 defines cancelable MONOID_0:def 8 :
for b
1 being non
empty set for b
2 being
BinOp of b
1 holds
( b
2 is
cancelable iff for b
3, b
4, b
5 being
Element of b
1 holds
( ( b
2 . b
3,b
4 = b
2 . b
3,b
5 or b
2 . b
4,b
3 = b
2 . b
5,b
3 ) implies b
4 = b
5 ) );
:: deftheorem Def9 defines uniquely-decomposable MONOID_0:def 9 :
theorem Th1: :: MONOID_0:1
theorem Th2: :: MONOID_0:2
theorem Th3: :: MONOID_0:3
:: deftheorem Def10 defines unital MONOID_0:def 10 :
:: deftheorem Def11 defines commutative MONOID_0:def 11 :
:: deftheorem Def12 defines associative MONOID_0:def 12 :
:: deftheorem Def13 defines idempotent MONOID_0:def 13 :
:: deftheorem Def14 defines left-invertible MONOID_0:def 14 :
:: deftheorem Def15 defines right-invertible MONOID_0:def 15 :
:: deftheorem Def16 defines invertible MONOID_0:def 16 :
:: deftheorem Def17 defines left-cancelable MONOID_0:def 17 :
:: deftheorem Def18 defines right-cancelable MONOID_0:def 18 :
:: deftheorem Def19 defines cancelable MONOID_0:def 19 :
:: deftheorem Def20 defines uniquely-decomposable MONOID_0:def 20 :
theorem Th4: :: MONOID_0:4
theorem Th5: :: MONOID_0:5
theorem Th6: :: MONOID_0:6
Lemma13:
for b1 being non empty HGrStr holds
( b1 is commutative iff for b2, b3 being Element of b1 holds b2 * b3 = b3 * b2 )
Lemma14:
for b1 being non empty HGrStr holds
( b1 is associative iff for b2, b3, b4 being Element of b1 holds (b2 * b3) * b4 = b2 * (b3 * b4) )
theorem Th7: :: MONOID_0:7
canceled;
theorem Th8: :: MONOID_0:8
canceled;
theorem Th9: :: MONOID_0:9
theorem Th10: :: MONOID_0:10
theorem Th11: :: MONOID_0:11
theorem Th12: :: MONOID_0:12
theorem Th13: :: MONOID_0:13
theorem Th14: :: MONOID_0:14
theorem Th15: :: MONOID_0:15
theorem Th16: :: MONOID_0:16
theorem Th17: :: MONOID_0:17
Lemma20:
for b1 being non empty HGrStr holds
( b1 is invertible iff ( b1 is left-invertible & b1 is right-invertible ) )
Lemma21:
for b1 being non empty HGrStr holds
( b1 is cancelable iff ( b1 is left-cancelable & b1 is right-cancelable ) )
Lemma22:
for b1 being non empty HGrStr holds
( b1 is associative & b1 is invertible implies b1 is Group-like )
deffunc H3( multLoopStr ) -> Element of the carrier of a1 = the unity of a1;
:: deftheorem Def21 defines well-unital MONOID_0:def 21 :
theorem Th18: :: MONOID_0:18
Lemma25:
for b1 being non empty multLoopStr holds
( b1 is well-unital implies b1 is unital )
theorem Th19: :: MONOID_0:19
:: deftheorem Def22 defines MonoidalExtension MONOID_0:def 22 :
theorem Th20: :: MONOID_0:20
theorem Th21: :: MONOID_0:21
theorem Th22: :: MONOID_0:22
:: deftheorem Def23 defines SubStr MONOID_0:def 23 :
:: deftheorem Def24 defines MonoidalSubStr MONOID_0:def 24 :
:: deftheorem Def25 defines MonoidalSubStr MONOID_0:def 25 :
theorem Th23: :: MONOID_0:23
theorem Th24: :: MONOID_0:24
theorem Th25: :: MONOID_0:25
theorem Th26: :: MONOID_0:26
theorem Th27: :: MONOID_0:27
theorem Th28: :: MONOID_0:28
theorem Th29: :: MONOID_0:29
theorem Th30: :: MONOID_0:30
theorem Th31: :: MONOID_0:31
theorem Th32: :: MONOID_0:32
theorem Th33: :: MONOID_0:33
theorem Th34: :: MONOID_0:34
theorem Th35: :: MONOID_0:35
theorem Th36: :: MONOID_0:36
theorem Th37: :: MONOID_0:37
theorem Th38: :: MONOID_0:38
theorem Th39: :: MONOID_0:39
:: deftheorem Def26 defines <REAL,+> MONOID_0:def 26 :
theorem Th40: :: MONOID_0:40
theorem Th41: :: MONOID_0:41
theorem Th42: :: MONOID_0:42
theorem Th43: :: MONOID_0:43
theorem Th44: :: MONOID_0:44
theorem Th45: :: MONOID_0:45
canceled;
theorem Th46: :: MONOID_0:46
theorem Th47: :: MONOID_0:47
:: deftheorem Def27 defines <NAT,+> MONOID_0:def 27 :
:: deftheorem Def28 defines <NAT,+,0> MONOID_0:def 28 :
:: deftheorem Def29 defines addnat MONOID_0:def 29 :
theorem Th48: :: MONOID_0:48
canceled;
theorem Th49: :: MONOID_0:49
theorem Th50: :: MONOID_0:50
theorem Th51: :: MONOID_0:51
theorem Th52: :: MONOID_0:52
theorem Th53: :: MONOID_0:53
theorem Th54: :: MONOID_0:54
:: deftheorem Def30 defines <REAL,*> MONOID_0:def 30 :
theorem Th55: :: MONOID_0:55
theorem Th56: :: MONOID_0:56
theorem Th57: :: MONOID_0:57
theorem Th58: :: MONOID_0:58
theorem Th59: :: MONOID_0:59
canceled;
theorem Th60: :: MONOID_0:60
:: deftheorem Def31 defines <NAT,*> MONOID_0:def 31 :
:: deftheorem Def32 defines <NAT,*,1> MONOID_0:def 32 :
:: deftheorem Def33 defines multnat MONOID_0:def 33 :
theorem Th61: :: MONOID_0:61
theorem Th62: :: MONOID_0:62
theorem Th63: :: MONOID_0:63
theorem Th64: :: MONOID_0:64
theorem Th65: :: MONOID_0:65
theorem Th66: :: MONOID_0:66
theorem Th67: :: MONOID_0:67
:: deftheorem Def34 defines *+^ MONOID_0:def 34 :
:: deftheorem Def35 defines *+^+<0> MONOID_0:def 35 :
:: deftheorem Def36 defines -concatenation MONOID_0:def 36 :
theorem Th68: :: MONOID_0:68
theorem Th69: :: MONOID_0:69
theorem Th70: :: MONOID_0:70
theorem Th71: :: MONOID_0:71
theorem Th72: :: MONOID_0:72
theorem Th73: :: MONOID_0:73
theorem Th74: :: MONOID_0:74
theorem Th75: :: MONOID_0:75
theorem Th76: :: MONOID_0:76
:: deftheorem Def37 defines GPFuncs MONOID_0:def 37 :
:: deftheorem Def38 defines MPFuncs MONOID_0:def 38 :
:: deftheorem Def39 defines -composition MONOID_0:def 39 :
theorem Th77: :: MONOID_0:77
theorem Th78: :: MONOID_0:78
theorem Th79: :: MONOID_0:79
theorem Th80: :: MONOID_0:80
theorem Th81: :: MONOID_0:81
Lemma66:
for b1, b2 being set holds
( b1 in Funcs b2,b2 implies b1 is Function of b2,b2 )
:: deftheorem Def40 defines GFuncs MONOID_0:def 40 :
:: deftheorem Def41 defines MFuncs MONOID_0:def 41 :
theorem Th82: :: MONOID_0:82
theorem Th83: :: MONOID_0:83
theorem Th84: :: MONOID_0:84
theorem Th85: :: MONOID_0:85
:: deftheorem Def42 defines GPerms MONOID_0:def 42 :
theorem Th86: :: MONOID_0:86
theorem Th87: :: MONOID_0:87
theorem Th88: :: MONOID_0:88
theorem Th89: :: MONOID_0:89