Języki, automaty i obliczenia/Wykład 1: Słowa, katenacja - elementy teorii półgrup, półgrupy i monoidy wolne: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rogoda (dyskusja | edycje)
Nie podano opisu zmian
m Zastępowanie tekstu – „,...,” na „,\ldots,”
 
(Nie pokazano 60 wersji utworzonych przez 8 użytkowników)
Linia 1: Linia 1:
{theor}{TWIERDZENIE}[section]
__FORCETOC__
{rem}{UWAGA}[section]
==Definicje, oznaczenia i podstawowe własności==
{corol}{WNIOSEK}[section]
{fact}{FAKT}[section]
{ex}{PRZYK{}AD}[section]
{defin}{DEFINICJA}[section]
{lem}{LEMAT}[section]


{prf}{DOWÓD}
Przyjmijmy, że  <math>\mathbb{N}=\left\{ 1,2,\ldots \right\}</math> oznacza zbiór liczb naturalnych,
a <math>\mathbb{N}_{0}</math> zbiór liczb naturalnych wraz z '''0'''. Przypomnimy teraz podstawowe wiadomości z wykładu Algebra Liniowa dotyczące struktur algebraicznych, a dokładniej struktur najprostszych, półgrup i monoidów, posiadających jedno tylko działanie.


{Elementy teorii pó{}grup,<br>pó{}grupy i monoidy wolne}
{{definicja|1.1||
 
Zbiór <math>S</math>, w którym określone jest działanie łączne, to znaczy spełniające warunek
; Wprowadzenie
:  Teoria języków formalnych, automatów i gramatyk to klasyczna dzisiaj teoria, która
zajmuje istotne  miejsce w informatyce. Proponuje ona matematyczne modele obliczeń, które wykorzystywane
są w praktyce, na przykład w przetwarzaniu tekstu, projektowaniu kompilatorów, w językach programowania
czy też sztucznej inteligencji. Daje też znakomite podstawy dla teorii obliczalności czy teorii złożoności.
 
Wykład rozpoczniemy od omówienia półgrup - struktur algebraicznych o niezbyt skomplikowanej budowie, bo
posiadających jedno tylko działanie. Półgrupy bowiem tworzą ramy dla prezentacji i badań języków formalnych
oraz systemów, które takie języki definiują. Wykład zawiera podstawowe pojęcia oraz elementarne własności
z zakresu teorii półgrup.
 
; Słowa kluczowe
:  półgrupa, monoid, kongruencja, zbiór generatorów, wolny monoid, wolna półgrupa,
baza, alfabet, słowo, litera
 
==DEFINICJE OZNACZENIA I PODSTAWOWE WŁASNOŚCI==
 
<br>
Przyjmijmy, że  <math>\mathbb{N}=\left\{ 1,2,\ldots \right\}  </math> oznacza zbiór liczb naturalnych,
a <math>\mathbb{N}_{0} </math>
zbiór liczb naturalnych wraz z <math>0</math>.
Przypomnimy teraz podstawowe wiadomości z wykładu Algebra Liniowa dotyczące struktur
algebraicznych, a dokładniej struktur najprostszych, półgrup i monoidów, posiadających
jedno tylko działanie.
 
Zbiór <math>S </math>, w którym określone jest działanie łączne, to znaczy spełniające warunek


<center><math>\forall x,y,z \in S \;\;\; x\cdot (y\cdot z)=(x\cdot y)\cdot z</math></center>
<center><math>\forall x,y,z \in S \;\;\; x\cdot (y\cdot z)=(x\cdot y)\cdot z</math></center>


nazywamy '''półgrupą'''.
nazywamy '''półgrupą'''.
}}
{{przyklad|1.1||


{{cwiczenie|[Uzupelnij]||
Zbiór liczb naturalnych z dodawaniem <math>(\mathbb{N},+)</math> tworzy  półgrupę.
 
Zbiór liczb naturalnych z dodawaniem <math>(\mathbb{N},+) </math> tworzy  półgrupę.
}}
}}
{{definicja|1.2||


Półgrupę <math>M </math>, w której istnieje element neutralny działania, to znaczy element
Półgrupę <math>M</math>, w której istnieje element neutralny działania, to znaczy element <math>1_{M}\in M</math> spełniający warunek
<math>1_{M}\in M </math>
spełniający warunek


<center><math> \forall x\in M \;\;\;1_M \cdot x=x\cdot 1_M=x</math></center>
<center><math>\forall x\in M \;\;\;1_M \cdot x=x\cdot 1_M=x</math></center>


nazywamy '''monoidem'''.
nazywamy '''monoidem'''.
}}
{{przyklad|1.2||


{{cwiczenie|[Uzupelnij]||
: (1) Zbiór liczb naturalnych z mnożeniem <math>(\mathbb{N},\cdot ,1)</math> jest monoidem.


# Zbiór liczb naturalnych z mnożeniem <math>(\mathbb{N},\cdot ,1) </math> jest monoidem.
: (2) Zbiór liczb naturalnych z zerem <math>(\mathbb{N}_{0},+,0)</math> jest monoidem ze względu na dodawanie.


# Zbiór liczb naturalnych z zerem <math>(\mathbb{N}_{0},+,0) </math> jest monoidem ze względu na dodawanie.
: (3) Monoidem jest <math>(A^A,\circ,id_A)</math> - zbiór odwzorowań dowolnego zbioru <math>{A}</math> w siebie ze składaniem jako działaniem i identycznością jako elementem neutralnym.
 
# Monoidem jest <math>(A^A,\circ,id_A)</math> - zbiór odwzorowań dowolnego zbioru <math>A</math> w siebie ze składaniem jako dzialaniem
i identycznością jako elementem neutralnym.


Dwa pierwsze monoidy są przemienne, czyli działanie jest przemienne, a trzeci jest nieprzemienny.
Dwa pierwsze monoidy są przemienne, czyli działanie jest przemienne, a trzeci jest nieprzemienny.
}}
}}


Każdy monoid jest półgrupą.<br>
Każdy monoid jest półgrupą.
 
Dla uproszczenia notacji będziemy opuszczać kropkę "<math>\cdot</math>" oznaczającą działanie oraz
Dla uproszczenia notacji będziemy opuszczać kropkę "<math>\cdot</math>" oznaczającą działanie oraz
używać nazwy "jedynka" na element neutralny. Jeśli nie będzie zaznaczone inaczej, to
używać nazwy "jedynka" na element neutralny. Jeśli nie będzie zaznaczone inaczej, to
<math>(\mathbf{S},\cdot ) </math> będzie oznaczać  półgrupę, a <math>(\mathbf{M},\cdot ,\, 1_{\mathbf{M}}) </math>  monoid. Ze względu na
<math>(\mathbf{S},\cdot )</math> będzie oznaczać  półgrupę, a <math>(\mathbf{M},\cdot ,\, 1_{\mathbf{M}})</math>  monoid. Ze względu na łączność działania zarówno w półgrupie, jak i w monoidzie iloczyn <math>x_1...x_n</math>, a także <math>x^n=x...x</math> (n razy) jest określony jednoznacznie bez potrzeby wprowadzania nawiasów. Dla dowolnych liczb naturalnych <math>m,n\in \mathbb{N}</math> zachodzą wzory
łączność działania zarówno w półgrupie, jak i w monoidzie iloczyn <math>
x_1...x_n,</math> a także <math>x^n=x...x</math> (n&nbsp;razy) jest określony jednoznacznie
bez potrzeby wprowadzania nawiasów. Dla
dowolnych liczb naturalnych <math>m,n\in \mathbb{N} </math> zachodzą wzory


<center><math>\begin{array} {c}
<center><math>\begin{array} {c}
x^{m+n}=x^{m}x^{n}=x^{n}x^{m}\\
x^{m+n}=x^{m}x^{n}=x^{n}x^{m},\\
(x^{m})^{n}=x^{mn}
(x^{m})^{n}=x^{mn}.
\end{array} .</math></center>
\end{array}</math></center>


Dla dowolnego <math>x \in M</math> przyjmujemy z definicji <center><math>x^0 = 1_{M}.</math></center>
Dla dowolnego <math>x \in M</math> przyjmujemy z definicji <center><math>x^0 = 1_{M}</math>.</center>
Strukturę monoidu <math> M</math>  przenosimy na zbiór potęgowy <math>\mathcal{P}(M) </math>
Strukturę monoidu <math>M</math>  przenosimy na zbiór potęgowy <math>\mathcal{P}(M)</math>
wszystkich podzbiorów monoidu <math>M </math>, określając dla dowolnych <math>A,B \in\mathcal{P}(M) </math> działanie
wszystkich podzbiorów monoidu <math>M</math>, określając dla dowolnych <math>A,B \in\mathcal{P}(M)</math> działanie


<center><math>
<center><math>
A\cdot B=\left\{ x\in {\bf M}\: :\: \exists a\in A,\: \exists b\in B\: ,\: x=ab\right\}
A\cdot B=\left\{ x\in {\bf M}\ :\ \exists a\in A,\ \exists b\in B,\ x=ab\right\}
</math></center>
</math></center>


<math>(\mathcal{P}(M),\cdot, \{1_{M}\}) </math> jest monoidem. <br>
<math>(\mathcal{P}(M),\cdot, \{1_{M}\})</math> jest monoidem. <br>
Podobnie  przenosimy strukturę półgrupy z <math>S </math> na <math>\mathcal{P}(S) </math>.<br>
Podobnie  przenosimy strukturę półgrupy z <math>S</math> na <math>\mathcal{P}(S)</math>.<br>
Dla dowolnego podzbioru monoidu
Dla dowolnego podzbioru monoidu
(półgrupy) i dla dowolnej liczby <math>n \in \mathbb{N} </math>  zapis <math>A^n</math> oznacza n-krotny iloczyn
(półgrupy) i dla dowolnej liczby <math>n \in \mathbb{N}</math>  zapis <math>A^n</math> oznacza n-krotny iloczyn
zbioru <math>A</math> przez siebie rozumiany w powyższym sensie. <br>
zbioru <math>\text{A}</math> przez siebie rozumiany w powyższym sensie. <br>
W szczególności <math>A^{1}=A. </math>
W szczególności <math>A^{1}=A</math>
W przypadku monoidu przyjmujemy z definicji <center><math>A^0 = \{ 1_{ M} \}.</math></center>
W przypadku monoidu przyjmujemy z definicji <center><math>A^0 = \{ 1_{ M} \}</math>.</center>
 
{{definicja|1.3||
'''Homomorfizmem''' '''półgrup''' <math>(S,\cdot)\;,\;\;(S',*)</math> nazywamy
'''Homomorfizmem''' '''półgrup''' <math>(S,\cdot)\;,\;\;(S',*)</math> nazywamy
odwzorowanie
odwzorowanie
<math>h~:S~\longmapsto~S'</math> takie, że <center><math> \forall x,y \in S \;\;\; h(x\cdot y)=h(x)*h(y).</math></center>
<math>h~:S~\longmapsto~S'</math> takie, że <center><math>\forall x,y \in S \;\;\; h(x\cdot y)=h(x)*h(y)</math>.</center>


'''Homomorfizmem monoidów''' <math>(M,\cdot,1_{M}),\;(M',*,1_{M'})</math> nazywamy
'''Homomorfizmem monoidów''' <math>(M,\cdot,1_{M}),\;(M',*,1_{M'})</math> nazywamy
odwzorowanie <math>h:M \longmapsto M'</math>
odwzorowanie <math>h:M \longmapsto M'</math>
takie, że <center><math> \forall x,y \in {M} \;\;\;h(x\cdot y)=h(x)*h(y) \;\;\; i \;\;\; h(1_{M})= 1_{M'}.</math></center>
takie, że <center><math>\forall x,y \in {M} \;\;\;h(x\cdot y)=h(x)*h(y) \;\;\; i \;\;\; h(1_{M})= 1_{M'}</math>.</center>
 
}}
{{cwiczenie|[Uzupelnij]||
{{przyklad|1.3||


Odwzorowanie <math>h:{\mathbb{Z}}_{mod\, 3}\longrightarrow {\mathbb{Z}}_{mod\,6} </math>
Odwzorowanie <math>h:{\mathbb{Z}}_{mod\, 3}\longrightarrow {\mathbb{Z}}_{mod\,6}</math>
takie, że  
takie, że  


Linia 116: Linia 81:
2\longrightarrow 2
2\longrightarrow 2
\end{array}  
\end{array}  
\end{array} </math></center>
\end{array}</math></center>


jest homomorfizmem półgrupy <math>(\mathbb{Z}_{mod\,3},\cdot ) </math> w półgrupę
jest homomorfizmem półgrupy <math>(\mathbb{Z}_{mod\,3},\cdot )</math> w półgrupę
<math>(\mathbb{Z}_{mod\,6},\cdot ) </math>, ale nie jest homomorfizmem monoidu <math>(\mathbb{Z}_{mod\,3},\cdot,1 ) </math> w monoid
<math>(\mathbb{Z}_{mod\,6},\cdot )</math>, ale nie jest homomorfizmem monoidu <math>(\mathbb{Z}_{mod\,3},\cdot,1 )</math> w monoid
<math>(\mathbb{Z}_{mod\,6},\cdot,1 ) </math>, bo  wartością <math>1</math> z monoidu <math>(\mathbb{Z}_{mod\,3},\cdot, 1 ) </math>
<math>(\mathbb{Z}_{mod\,6},\cdot,1 )</math>, bo  wartością '''1''' z monoidu <math>(\mathbb{Z}_{mod\,3},\cdot, 1 )</math>
nie jest jedynka monoidu <math>(\mathbb{Z}_{mod\,6},\cdot,1 ) </math>.
nie jest jedynka monoidu <math>(\mathbb{Z}_{mod\,6},\cdot,1 )</math>.
}}
}}


------- dla dociekliwych - start ------
{{zainteresowani|||
 
'''Definicja 1.4.'''


Niech <math>(S,\cdot),\;\;(M,\cdot,1_{M})</math> będą odpowiednio dowolną półgrupą, monoidem.
Niech <math>(S,\cdot),\;\;(M,\cdot,1_{M})</math> będą odpowiednio dowolną półgrupą, monoidem.


* <math>(T,\cdot)</math> nazywamy '''podpółgrupą '''<math>S</math> wtedy i tylko wtedy, gdy <math>T\subset S</math> i <math>T^2 \subset T.</math>
* <math>(T,\cdot)</math> nazywamy '''podpółgrupą '''<math>{S}</math> wtedy i tylko wtedy, gdy <math>T\subset S</math> i <math>T^2 \subset T</math>.


* <math>(N,\cdot,1_{M})</math> nazywamy '''podmonoidem''' <math>M</math> wtedy i tylko wtedy, gdy <math>N</math> jest podpółgrupą <math>M</math> i <math>1_{M} \in N.</math>
* <math>(N,\cdot,1_{M})</math> nazywamy '''podmonoidem''' <math>M</math> wtedy i tylko wtedy, gdy <math>N</math> jest podpółgrupą <math>M</math> i <math>1_{M} \in N</math>


{{cwiczenie|[Uzupelnij]||
'''Przykład 1.4.'''


<math>(\mathbb{Z}_{mod\,6},\cdot ) </math> jest monoidem.  Podzbiór <math>\{2,4\} </math>,
<math>(\mathbb{Z}_{mod\,6},\cdot )</math> jest monoidem.  Podzbiór <math>\{2,4\}</math>, jako zamknięty na działanie <math>\cdot _{mod\, 6}</math>, tworzy podpółgrupę <math>\mathbb{Z}_{mod\, 6}</math>. <math>(\{2,4\},\cdot _{mod\, 6})</math> jest monoidem z
jako zamknięty na działanie <math>\cdot _{mod\, 6} </math>, tworzy podpółgrupę
<math>4</math> jako elementem neutralnym, ale nie podmonoidem <math>\mathbb{Z}_{mod\, 6}</math>.
<math>\mathbb{Z}_{mod\, 6} </math>. <math>(\{2,4\},\cdot _{mod\, 6}) </math> jest monoidem z
<math>4 </math> jako elementem neutralnym, ale nie podmonoidem <math>\mathbb{Z}_{mod\, 6} </math>.
}}


Niech <math>X</math> będzie dowolnym podzbiorem monoidu <math>M</math>. Zbiór
Niech <math>X</math> będzie dowolnym podzbiorem monoidu <math>M</math>. Zbiór
<center><math>X^*= \{1\}\cup X\cup X^2\cup ...\cup X^n \cup \ldots = \bigcup_{i=0}^\infty X^i</math></center>  
 
<center><math>X^*= \{1\}\cup X\cup X^2\cup ...\cup X^n \cup \ldots = \bigcup_{i=0}^\infty X^i</math></center>
 
 
jest  podmonoidem monoidu <math>M</math>.
jest  podmonoidem monoidu <math>M</math>.
Jest to najmniejszy, w sensie inkluzji podmonoid monoidu <math>M</math> zawierający zbiór <math>X</math>.
Jest to najmniejszy, w sensie inkluzji podmonoid monoidu <math>M</math> zawierający zbiór <math>X</math>.
Gdy  spełniona jest równość <math>X^*={M}</math>, to mówimy, że <math>X</math> jest '''zbiorem generatorów'''  monoidu <math>M</math>.
Gdy  spełniona jest równość <math>X^*={M}</math>, to mówimy, że <math>X</math> jest '''zbiorem generatorów'''  monoidu <math>M</math>.
Zachodzą następujące własności
Zachodzą następujące własności:
 
:1. Zbiór generatorów nie jest wyznaczony jednoznacznie.
 
:2. Dla dowolnego monoidu istnieje zbiór generatorów, jest nim w szczególności zbiór <math>{M}</math>.
 
Podobnie dla dowolnego podzbioru <math>X</math> półgrupy <math>{S}</math> zbiór
 


# Zbiór generatorów nie jest wyznaczony jednoznacznie.
<center><math>X^+=X\cup X^2\cup...\cup X^n \cup \ldots = \bigcup_{i=1}^\infty X^i</math></center>


# Dla dowolnego monoidu istnieje zbiór generatorów, jest nim w szczególności zbiór <math>{M}</math>.


Podobnie dla dowolnego podzbioru <math>X </math> półgrupy <math>{S}</math> zbiór
jest podpółgrupą <math>{S}</math> i to najmniejszą w sensie inkluzji zawierającą zbiór <math>X</math>. <br> Powyższe uwagi dotyczące zbioru generatorów monoidów przenoszą się odpowiednio dla półgrup.
<center><math>X^+=X\cup X^2\cup...\cup X^n \cup \ldots = \bigcup_{i=1}^\infty X^i</math></center> jest podpółgrupą <math>{S}</math> i to najmniejszą w sensie
inkluzji zawierającą zbiór <math>X.</math> <br> Powyższe uwagi dotyczące zbioru generatorów monoidów przenoszą się odpowiednio dla półgrup.


{{cwiczenie|[Uzupelnij]||
'''Przykład 1.5.'''


W monoidzie <math>(\mathbb{N}_{0},+,0) </math> podmonoid generowany przez zbiór generatorów
W monoidzie <math>(\mathbb{N}_{0},+,0)</math> podmonoid generowany przez zbiór generatorów
<math>X=\{2\} </math> składa się z liczb parzystych i nieujemnych.
<math>X=\{2\}</math> składa się z liczb parzystych i nieujemnych.


}}
}}
{{definicja|1.5||


----- dla dociekliwych - end -----
Niech <math>S</math> będzie półgrupą. Relację równoważności <math>\rho \subset {S}^2</math> nazywamy:


Niech <math>S </math> będzie półgrupą. Relację równoważności <math>\rho \subset {S}^2 </math> nazywamy:
: (1) '''prawą kongruencją''' w półgrupie <math>{S}</math>, jeśli <center><math>\forall x,y,z \in {S} \;\;\; x\;\rho\; y \Rightarrow xz\;\rho\; yz</math>,</center>


# '''prawą kongruencją''' w półgrupie <math>{S}</math>,
: (2) '''lewą kongruencją''' w półgrupie <math>{S}</math>, jeśli <center><math>\forall x,y,z \in {S} \;\;\; x\;\rho\; y \Rightarrow zx\;\rho\; zy</math>,</center>
jeśli <center><math> \forall x,y,z \in {S} \;\;\; x\;\rho\; y \Rightarrow xz\;\rho\; yz,</math></center>


# '''lewą kongruencją''' w półgrupie <math>{S}</math>, jeśli <center><math> \forall x,y,z \in {S} \;\;\; x\;\rho\; y \Rightarrow zx\;\rho\; zy,</math></center>
: (3) '''kongruencją''', jeśli jest prawą i lewą kongruencją, tzn. <center><math>\forall x,y,z \in {S} \;\;\; x\;\rho\; y \Rightarrow zx\;\rho\; zy \;\; i \;\; xz\;\rho\; yz</math>.</center>


# '''kongruencją''', jeśli jest prawą i lewą
Zastępując w powyższej definicji półgrupę <math>S</math> na monoid <math>M</math> otrzymamy dualnie pojęcia prawej kongruencji,
kongruencją, tzn. <center><math> \forall x,y,z \in {S} \;\;\; x\;\rho\; y \Rightarrow zx\;\rho\; zy \;\; i \;\; xz\;\rho\; yz.</math></center>
 
Zastępując w powyższej definicji półgrupę <math>S </math> na monoid <math>M </math> otrzymamy dualnie pojęcia prawej kongruencji,
lewej kongruencji i kongruencji zdefiniowane w monoidzie. <br>
lewej kongruencji i kongruencji zdefiniowane w monoidzie. <br>
Mając kongruencję <math>\rho</math> określoną w&nbsp;półgrupie <math>{S}</math> (monoidzie
Mając kongruencję <math>\rho</math> określoną w&nbsp;półgrupie <math>{S}</math> (monoidzie
<math>M) </math> możemy utworzyć półgrupę ilorazową <math>{S}/\rho</math> (monoid ilorazowy <math>{M}/\rho</math>), której elementami
<math>M)</math> możemy utworzyć półgrupę ilorazową <math>{S}/\rho</math> (monoid ilorazowy <math>{M}/\rho</math>), której elementami
są klasy równoważności (abstrakcji) relacji <math>\rho </math>.<br>
są klasy równoważności (abstrakcji) relacji <math>\rho</math>.<br>


Dla dowolnego homomorfizmu półgrup <math>h:{S}\longmapsto {S}'</math> określamy relację
Dla dowolnego homomorfizmu półgrup <math>h:{S}\longmapsto {S}'</math> określamy relację
<center><math>Ker_h = \{ (x,y)\in {S}\times {S}\;:\;\; h(x)=h(y) \}.</math></center> Relacja <math>Ker_h</math> jest
<center><math>Ker_h = \{ (x,y)\in {S}\times {S}\;:\;\; h(x)=h(y) \}</math>.</center> Relacja <math>Ker_h</math> jest kongruencją w półgrupie <math>{S}</math>. <br>
kongruencją w półgrupie <math>{S}.</math> <br>
Dla homomorfizmu monoidów <math>h:{M}\longmapsto {M}'</math>  relacja <math>Ker_h</math> jest kongruencją
Dla homomorfizmu monoidów <math>h:{M}\longmapsto {M}'</math>  relacja <math>Ker_h</math> jest kongruencją
w monoidzie <math>M </math>.
w monoidzie <math>M</math>.


Podstawowe twierdzenie o epimorfizmie dla struktur algebraicznych przyjmuje dla
Podstawowe twierdzenie o epimorfizmie dla struktur algebraicznych przyjmuje dla półgrup i odpowiednio dla monoidów następującą postać.
półgrup i odpowiednio dla monoidów następującą postać.
}}
{{twierdzenie|1.1||


Niech <math>h:{S}\longmapsto {S}'</math> będzie dowolnym epimorfizmem półgrupy <math>{S}</math> na półgrupę <math>{S}'.</math> Półgrupa <math>{S}'</math> jest
Niech <math>h:{S}\longmapsto {S}'</math> będzie dowolnym epimorfizmem półgrupy <math>{S}</math> na półgrupę <math>{S}'</math>. Półgrupa <math>{S}'</math> jest
izomorficzna z półgrupą ilorazową <math>{S}/_{Ker_h}</math>.
izomorficzna z półgrupą ilorazową <math>{S}/_{Ker_h}</math>.
}}


rys-01
<center>
<div class="thumb"><div style="width:200px;"><flash>file=Ja-1-1.swf|width=200|height=200</flash>
<div.thumbcaption>Rysunek 1</div>
</div></div>
</center>
 
{{twierdzenie|1.2||


Niech <math>h:{M}\longmapsto {M}'</math> będzie dowolnym epimorfizmem monoidu <math>{M}</math> na
Niech <math>h:{M}\longmapsto {M}'</math> będzie dowolnym epimorfizmem monoidu <math>{M}</math> na
monoid <math>{M}'.</math> Monoid <math>{M}'</math> jest izomorficzny z monoidem ilorazowym <math>{M}/_{Ker_h}</math>.
monoid <math>{M}'</math>. Monoid <math>{M}'</math> jest izomorficzny z monoidem ilorazowym <math>{M}/_{Ker_h}</math>.
}}


rys-02
<center>
[[File:Ja-1-2.svg|200x200px|thumb|center|Rysunek 2]]
</center>


==PÓŁGRUPY WOLNE I MONOIDY WOLNE==
==Półgrupy wolne i monoidy wolne==


Niech <math>A</math> oznacza dowolny zbiór.
Niech <math>{A}</math> oznacza dowolny zbiór.


'''Wolnym monoidem''' <math>A^*</math> '''o bazie''' <math>A</math> nazywamy
{{definicja|2.1||
zbiór wszystkich skończonych ciągów: <center><math>A^*=\{ (a_1,...,a_n)\;\;:\;\;n \geq 0\;\;,\;\;a_i \in A \}</math></center> wraz z
działaniem <center><math> (a_1,...,a_n)\cdot (b_1,...,b_m) = (a_1,...,a_n,b_1,...,b_m). </math></center>


Ciąg pusty (n<nowiki>=</nowiki>0) oznaczamy symbolem "<math>1</math>" i z definicji jest on elementem neutralnym określonego powyżej
'''Wolnym monoidem''' <math>A^*</math> '''o bazie''' <math>{A}</math> nazywamy zbiór wszystkich skończonych ciągów:
<center>
<math>A^*=\{ (a_1,\ldots,a_n)\;\;:\;\;n \geq 0\;\;,\;\;a_i \in A \}</math></center> wraz z działaniem
<center>
<math>(a_1,\ldots,a_n)\cdot (b_1,\ldots,b_m) = (a_1,\ldots,a_n,b_1,\ldots,b_m)</math></center>
 
Ciąg pusty <math>{(n=0)}</math> oznaczamy symbolem "'''1'''" i z definicji jest on elementem neutralnym określonego powyżej
działania, nazywanego '''katenacją''' lub '''konkatenacją'''.
działania, nazywanego '''katenacją''' lub '''konkatenacją'''.


Przyjmujemy następującą konwencję zapisu: <center><math>(a)\equiv a,\;\;\;(a_1,...,a_n)\equiv a_1...a_n.</math></center> W oparciu o nią możemy
Przyjmujemy następującą konwencję zapisu: <center><math>(a)\equiv a,\;\;\;(a_1,\ldots,a_n)\equiv a_1...a_n</math>.</center> W oparciu o nią możemy stwierdzić inkluzję <math>A\subset A^*</math>.
stwierdzić inkluzję <math>A\subset A^*</math>.
}}
{{zainteresowani|||


----- dla dociekliwych - start -----
Ta inkluzja uzasadnia użycie wprowadzonego wcześniej oznaczenia <math>A^*</math>.<br>
<math>A^*</math> jest najmniejszym podmonoidem
monoidu <math>A^*</math> zawierającym <math>A</math>.
}}
{{definicja|2.2||


Ta inkluzja uzasadnia użycie
''' Wolną półgrupą'''  <math>A^+</math> '''nad alfabetem'''
wprowadzonego wcześniej ([[##lab1|Uzupelnic lab1|]]) oznaczenia <math>A^*</math>.<br>
<math>A</math> nazywamy zbiór wszystkich skończonych ciągów:
<math>A^*</math> jest najmniejszym podmonoidem
<center><math>A^+=\{ (a_1,\ldots,a_n)\;\;:\;\;n > 0,\;\;\;a_i \in A \}</math></center> wraz z działaniem katenacji.
monoidu <math>A^*</math> zawierającym <math>A.</math>


----- dla dociekliwych - end -----
Używa się także określeń - wolny monoid o bazie <math>A</math>
i wolna półgrupa o bazie <math>A</math>.


''' Wolną półgrupą'''  <math>A^+</math> '''nad alfabetem'''  
* Elementy alfabetu <math>{A}</math> nazywamy '''literami'''.
<math>A</math> nazywamy
zbiór wszystkich skończonych ciągów:
<center><math>A^+=\{ (a_1,...,a_n)\;\;:\;\;n > 0\;\;,\;\;a_i \in A \}</math></center> wraz z
działaniem katenacji.


Używa się także określeń - wolny monoid o bazie <math>A </math>
* Elementy wolnego monoidu (półgrupy) nazywamy '''słowami''' i oznaczać bedziemy w wykładzie najczęściej literami <math>u,v,w</math>.
i wolna półgrupa o bazie <math>A </math>.


* elementy alfabetu <math>A</math> nazywamy '''literami'''.
* Dowolny podzbiór wolnego monoidu (półgrupy) nazywamy '''językiem'''.


* Elementy wolnego monoidu (półgrupy) nazywamy '''słowami''' i
Długością słowa <math>w \in A^*</math> nazywamy liczbę <math>|w|</math> będącą długością ciągu określającego to słowo. Słowo
oznaczać bedziemy w wykładzie najczęściej literami <math>u,v,w </math>.
puste '''1''', czyli odpowiadające ciągowi pustemu ma długość równą '''0'''.
}}
{{przyklad|2.1||


* Dowolny podzbiór wolnego monoidu (półgrupy)
: (1) Wolna półgrupa <math>\{0,1\}^+</math> składa się z ciągów binarnych.
nazywamy '''językiem'''.


Długością słowa <math>w \in A^*</math> nazywamy
: (2) Wolny monoid <math>\{0,1\}^*</math> składa się z ciągów binarnych i ciągu pustego.
liczbę <math>|w|</math> będącą długością ciągu określającego to słowo. Słowo
puste <math>1</math>, czyli odpowiadające ciągowi pustemu ma długość równą <math>0</math>.


{{cwiczenie|[Uzupelnij]||
}}
{{definicja|2.3||


# Wolna półgrupa <math>\{0,1\}^+</math> składa się z ciągów binarnych.
Niech <math>A</math> i <math>B</math> będą alfabetami. '''Podstawieniem''' nazywamy homomorfizm


# Wolny monoid <math>\{0,1\}^*</math> składa się z ciągów binarnych i ciągu pustego.
<center><math>s:A^{*}\longrightarrow \mathcal{P}(B^{*})</math>.</center>


Odwzorowanie <math>s</math> jako homomorfizm monoidu <math>A^{*}</math> w monoid <math>\mathcal{P}(B^{*})</math> spełnia dla dowolnych <math>v,w\in A^{*}</math> równość <center><math>s(vw)=s(v)s(w) \;\; \text{oraz}\;\;  s(1)=\{1\}</math></center>
}}
}}
<span id="zainteresowani_2">
</span>
{{zainteresowani|||


Niech <math>A </math> i <math>B </math> będą alfabetami. '''Podstawieniem'''
'''Twierdzenie 2.1.'''
nazywamy homomorfizm


<center><math>s:A^{*}\longrightarrow \mathcal{P}(B^{*}).</math></center>
Niech <math>{A}</math> oznacza dowolny zbiór, a <math>({M},\cdot,1_{M})</math> dowolny monoid.


Odwzorowanie <math>s </math> jako
: (1) Każde odwzorowanie
homomorfizm monoidu <math>A^{*} </math> w monoid <math>\mathcal{P}(B^{*}) </math> spełnia
dla dowolnych <math>v,w\in A^{*} </math> równość <center><math> s(vw)=s(v)s(w) \;\; \text{oraz}\;\;  s(1)=\{1\} </math></center>.


----- dla dociekliwych - start -----
<center><math>f:A\longmapsto {M}</math></center>
: daje się jednoznacznie rozszerzyć do homomorfizmu <center><math>h:A^*\longmapsto {M}</math>.</center>


Niech <math>A</math> oznacza dowolny zbiór, a <math>({M},\cdot,1_{M})</math> dowolny monoid.  
: (2) Homomorfizm <math>{h}</math> jest epimorfizmem wtedy i tylko wtedy, gdy <math>f(A)</math> jest zbiorem generatorów <math>{M}</math>.


# Każde odwzorowanie <center><math>f:A\longmapsto {M}</math></center> daje się
jednoznacznie rozszerzyć do homomorfizmu <center><math>h:A^*\longmapsto {M}.</math></center>


# Homomorfizm <math>h</math> jest epimorfizmem wtedy i tylko wtedy,
'''Dowód'''
gdy <math>f(A)</math> jest zbiorem generatorów <math>{M}.</math>


# Przyjmujemy
: (1) Przyjmujemy
<center><math>\forall\; a_1...a_n \in A^+\;\;\;\;h(a_1...a_n)=f(a_1)...f(a_n) \;\;\;\text{oraz}\; \;\;h(1)=1_{M}.</math></center> Tak określone <math>h</math> jest jedynym rozszerzeniem przekształcenia <math>f</math>.


# <math>f(A)^*=M  \Leftrightarrow \forall s \in {M}\;\; s=f(a_1)...f(a_n)=h(a_1...a_n)</math> dla pewnego
<center><math>\forall\; a_1...a_n \in A^+\;\;\;\;h(a_1...a_n)=f(a_1)...f(a_n) \;\;\;\text{oraz}\; \;\;h(1)=1_{M}</math>.</center>
<math>a_1...a_n \in A^*\Leftrightarrowh</math> jest suriekcją
: Tak określone <math>h</math> jest jedynym rozszerzeniem przekształcenia <math>f</math>.


<math>\diamondsuit</math>
: (2) <math>f(A)^*=M  \Leftrightarrow \forall s \in {M}\;\; s=f(a_1)...f(a_n)=h(a_1...a_n)</math> dla pewnego <math>a_1...a_n \in A^*\Leftrightarrow h</math> jest suriekcją.


Przyjmując w powyższym twierdzeniu jako <math>A</math> dowolny zbiór generatorów monoidu <math>{M}</math> oraz jako funkcję <math>f</math> włożenie <math>id_{A}:A\longrightarrow \mathbf{M} </math> równe identyczności na <math>A </math> dochodzimy do następującego wniosku.


Każdy monoid <math>{M}</math> jest homomorficznym obrazem wolnego monoidu&nbsp;<math>A^*</math> utworzonego nad dowolnym zbiorem generatorów <math>{M}.</math>
Przyjmując w powyższym twierdzeniu jako <math>A</math> dowolny zbiór generatorów monoidu <math>{M}</math> oraz jako funkcję <math>f</math> włożenie <math>id_{A}:A\longrightarrow \mathbf{M}</math> równe identyczności na <math>{A}</math> dochodzimy do następującego wniosku.
 
'''Wniosek 2.1.'''
 
Każdy monoid <math>{M}</math> jest homomorficznym obrazem wolnego monoidu&nbsp;<math>A^*</math> utworzonego nad dowolnym zbiorem generatorów <math>{M}</math>.


Udowodnione powyżej twierdzenie oraz sformułowany wniosek prawdziwy jest również dla półgrup.<br>
Udowodnione powyżej twierdzenie oraz sformułowany wniosek prawdziwy jest również dla półgrup.<br>
Powyższe rezultaty określają rolę wolnych monoidów (półgrup) w klasie wszystkich monoidów (półgrup).
Powyższe rezultaty określają rolę wolnych monoidów (półgrup) w klasie wszystkich monoidów (półgrup).


Monoid <math>{M}</math> jest wolny wtedy i tylko wtedy, gdy każdy element
'''Twierdzenie 2.2.'''
<math>m \in {S}={M}\setminus \{1\}</math> ma jednoznaczny rozkład na elementy zbioru <math>A={S}\setminus {S}^2.</math>


Załóżmy, że monoid <math>{M}</math> jest wolny, to znaczy <math>{M}=B^*</math> dla pewnego zbioru (bazy) <math>B.</math> <br>
Monoid <math>{M}</math> jest wolny wtedy i tylko wtedy, gdy każdy element <math>m \in {S}={M}\setminus \{1\}</math> ma jednoznaczny rozkład na elementy zbioru <math>A={S}\setminus {S}^2</math>.


* Udowodnimy, że <math>A</math> jest zbiorem generatorów monoidu <math>M</math>. W tym celu
'''Dowod'''
wykażemy, że zachodzi  inkluzja <center><math>{S}\subset ({S}\setminus {S}^2)^+.</math></center> Dowód przeprowadzimy nie wprost.
Załóżmy więc, że <center><math>{S}\setminus ({S}\setminus {S}^2)^+ \neq \emptyset</math></center> i niech <math>m</math> oznacza element z tego zbioru o
najmniejszej długości w <math>B^*.</math> <br>
Wnioskujemy stąd kolejno:


m  ({S} {S}^2)^+<br>
Załóżmy, że monoid <math>{M}</math> jest wolny, to znaczy <math>{M}=B^*</math> dla pewnego zbioru (bazy) <math>B</math>. <br>
{S}^2<br>
m<nowiki>=</nowiki>s_1s_2 {dla pewnych} s_1,s_2  {S},


przy czym długość <math>s_1,s_2</math> jest silnie mniejsza niż długość <math>m.</math> Zatem   
:* Udowodnimy, że <math>A{}</math> jest zbiorem generatorów monoidu <math>M</math>. W tym celu wykażemy, że zachodzi  inkluzja <center><math>{S}\subset ({S}\setminus {S}^2)^+</math>.</center> Dowód przeprowadzimy nie wprost. Załóżmy więc, że
<center><math>{S}\setminus ({S}\setminus {S}^2)^+ \neq \emptyset</math></center>
: i niech <math>{m}</math> oznacza element z tego zbioru o najmniejszej długości w <math>B^*</math>. <br> Wnioskujemy stąd kolejno:
<center>
<math>m\notin ({S}\setminus {S}^2)^+</math><br>
<math>m\in {S}^2</math><br>
<math>m=s_1s_2</math> dla pewnych <math>s_1,s_2\in {S}</math>,
</center>
: przy czym długość <math>s_1,s_2</math> jest silnie mniejsza niż długość <math>m</math>. Zatem   


<center><math>s_1,s_2 \in ({S}\setminus {S}^2)^+  
<center><math>s_1,s_2 \in ({S}\setminus {S}^2)^+  
</math></center>
</math></center>


a to oznacza, że
: a to oznacza, że


<center><math>m=s_1s_2 \in ({S}\setminus {S}^2)^+.
<center><math>m=s_1s_2 \in ({S}\setminus {S}^2)^+</math></center>
</math></center>


Otrzymana sprzeczność kończy dowód faktu, że <math>A={S}\setminus {S}^2</math> jest zbiorem generatorów monoidu <math>{M}.</math>
: Otrzymana sprzeczność kończy dowód faktu, że <math>A={S}\setminus {S}^2</math> jest zbiorem generatorów monoidu <math>{M}</math>.


* Pokażemy teraz, że <math>A \subset B.</math> <br>
:* Pokażemy teraz, że <math>A \subset B</math>. <br>Niech <math>m=b_1...b_k \in {S}\setminus {S}^2</math>  dla pewnych <math>b_i \in B</math>, <math>i=1,\ldots,k</math>. <br>Jeśli <math>k>1</math>, to <math>m\in {S}^2</math>, co jest sprzeczne z wyborem <math>m</math>. Zatem <math>{k=1}</math>, co implikuje <math>A\subset B</math>.
Niech <math>m=b_1...b_k \in {S}\setminus {S}^2</math>  dla
pewnych <math>b_i \in B</math>, <math>i=1,...,k.</math> <br>
Jeśli <math>k>1</math>, to <math>m\in {S}^2</math>, co jest sprzeczne z wyborem <math>m.</math> Zatem <math>k=1</math>, co implikuje <math>A\subset B.</math>


Z definicji wolnego monoidu
Z definicji wolnego monoidu wynika jednoznaczność rozkładu na elementy z bazy <math>B</math>, a to pociąga za sobą jednoznaczność rozkładu na elementy z podzbioru <math>A={S}\setminus {S}^2</math>.<br>
wynika jednoznaczność rozkładu na elementy z bazy <math>B</math>, a to pociąga za sobą
jednoznaczność rozkładu na elementy z podzbioru <math>A={S}\setminus {S}^2.</math><br>


Niech teraz <math>{M}</math> oznacza monoid z jednoznacznością rozkładu na elementy zbioru <math>A~=~S~\setminus~S^2</math>. Rozszerzamy
Niech teraz <math>{M}</math> oznacza monoid z jednoznacznością rozkładu na elementy zbioru <math>A~=~S~\setminus~S^2</math>. Rozszerzamy identyczność <math>id_A:A\longmapsto {M}</math> do homomorfizmu <math>h:A^*\longmapsto {M}</math>. Z założenia wynika, że każdy element <math>m \in {S}</math> można przedstawić jako iloczyn  
identyczność <math>id_A:A\longmapsto {M}</math> do homomorfizmu <math>h:A^*\longmapsto {M}.</math> Z założenia wynika, że każdy
<center><math>m=a_1...a_n \;\;\; gdzie \;\;\;a_i \in A \;\;\;
element <math>m \in {S}</math> można przedstawić jako iloczyn <center><math>m=a_1...a_n \;\;\; gdzie \;\;\;a_i \in A \;\;\;
dla \;\;\; i=1,\ldots,n</math>.</center>
dla \;\;\; i=1,...,n.</math></center> Zatem <center><math>h(a_1...a_n)=h(a_1)...h(a_n)=a_1...a_n.</math></center> Homomorfizm <math>h</math> jest
Zatem  
izomorfizmem, więc monoid <math>{M}</math> jako izomorficzny z <math>A^*</math> jest wolny.
<center><math>h(a_1...a_n)=h(a_1)...h(a_n) a_1...a_n</math>.</center>  
Homomorfizm <math>h</math> jest izomorfizmem, więc monoid <math>{M}</math> jako izomorficzny z <math>A^*</math> jest wolny.


<math>\diamondsuit</math>   
Powyższe twierdzenie posiada swój odpowiednik dla wolnych półgrup.


Powyższe twierdzenie posiada swój odpowiednik dla wolnych półgrup.
'''Twierdzenie 2.3.'''
 
Półgrupa <math>{S}</math> jest wolna wtedy i tylko wtedy, gdy każdy element <math>x \in {S}</math> ma jednoznaczny rozkład na elementy zbioru <math>{S}\setminus {S}^2</math>.


Półgrupa <math>{S}</math> jest wolna wtedy i tylko wtedy, gdy każdy element <math>x \in {S}</math> ma jednoznaczny
'''Wniosek 2.2.'''
rozkład na elementy zbioru <math>{S}\setminus {S}^2.</math>


Baza wolnego monoidu (półgrupy) jest minimalym zbiorem generatorów.
Baza wolnego monoidu (półgrupy) jest minimalym zbiorem generatorów.


{{cwiczenie|[Uzupelnij]||
'''Przyklad 2.2.'''


# Półgrupa <math>(\mathbb{N},+ ) </math> jest wolna. Każdy jej element można jednoznacznie zapisać
: (1) Półgrupa <math>(\mathbb{N},+ )</math> jest wolna. Każdy jej element można jednoznacznie zapisać jako sumę jedynek - <math>\mathbb{N}\setminus (\mathbb{N}+\mathbb{N})=\left\{ 1\right\}</math>.
jako sumę jedynek - <math>\mathbb{N}\setminus (\mathbb{N}+\mathbb{N})=\left\{ 1\right\} </math>.


# Dla <math>\mathbb{N}_2=\{n \in \mathbb{N}:n\geq 2\}</math> półgrupa <math>(\mathbb{N}_2,+ ) </math> nie jest to półgrupą wolną.<br>
: (2) Dla <math>\mathbb{N}_2=\{n \in \mathbb{N}:n\geq 2\}</math> półgrupa <math>(\mathbb{N}_2,+ )</math> nie jest to półgrupą wolną.<br> Nie ma jednoznaczności rozkładu na elementy z <math>\mathbb{N}_2\setminus (\mathbb{N}_2+\mathbb{N}_2)=\{2,3\}</math>.<br>  Na przykład <math>6=2+2+2=3+3</math>.
Nie ma jednoznaczności rozkładu na elementy z <math>\mathbb{N}_2\setminus (\mathbb{N}_2+\mathbb{N}_2)=\{2,3\}</math>.<br>  Na przykład <math>6=2+2+2=3+3</math>.


}}
}}
----- dla dociekliwych - end -----

Aktualna wersja na dzień 21:58, 15 wrz 2023

Definicje, oznaczenia i podstawowe własności

Przyjmijmy, że ={1,2,} oznacza zbiór liczb naturalnych, a 0 zbiór liczb naturalnych wraz z 0. Przypomnimy teraz podstawowe wiadomości z wykładu Algebra Liniowa dotyczące struktur algebraicznych, a dokładniej struktur najprostszych, półgrup i monoidów, posiadających jedno tylko działanie.

Definicja 1.1

Zbiór S, w którym określone jest działanie łączne, to znaczy spełniające warunek

x,y,zSx(yz)=(xy)z

nazywamy półgrupą.

Przykład 1.1

Zbiór liczb naturalnych z dodawaniem (,+) tworzy półgrupę.

Definicja 1.2

Półgrupę M, w której istnieje element neutralny działania, to znaczy element 1MM spełniający warunek

xM1Mx=x1M=x

nazywamy monoidem.

Przykład 1.2

(1) Zbiór liczb naturalnych z mnożeniem (,,1) jest monoidem.
(2) Zbiór liczb naturalnych z zerem (0,+,0) jest monoidem ze względu na dodawanie.
(3) Monoidem jest (AA,,idA) - zbiór odwzorowań dowolnego zbioru A w siebie ze składaniem jako działaniem i identycznością jako elementem neutralnym.

Dwa pierwsze monoidy są przemienne, czyli działanie jest przemienne, a trzeci jest nieprzemienny.

Każdy monoid jest półgrupą.

Dla uproszczenia notacji będziemy opuszczać kropkę "" oznaczającą działanie oraz używać nazwy "jedynka" na element neutralny. Jeśli nie będzie zaznaczone inaczej, to (𝐒,) będzie oznaczać półgrupę, a (𝐌,,1𝐌) monoid. Ze względu na łączność działania zarówno w półgrupie, jak i w monoidzie iloczyn x1...xn, a także xn=x...x (n razy) jest określony jednoznacznie bez potrzeby wprowadzania nawiasów. Dla dowolnych liczb naturalnych m,n zachodzą wzory

xm+n=xmxn=xnxm,(xm)n=xmn.

Dla dowolnego

xM

przyjmujemy z definicji

x0=1M.

Strukturę monoidu M przenosimy na zbiór potęgowy 𝒫(M) wszystkich podzbiorów monoidu M, określając dla dowolnych A,B𝒫(M) działanie

AB={x𝐌 : aA, bB, x=ab}

(𝒫(M),,{1M}) jest monoidem.
Podobnie przenosimy strukturę półgrupy z S na 𝒫(S).
Dla dowolnego podzbioru monoidu (półgrupy) i dla dowolnej liczby n zapis An oznacza n-krotny iloczyn zbioru A przez siebie rozumiany w powyższym sensie.
W szczególności A1=A

W przypadku monoidu przyjmujemy z definicji

A0={1M}.

Definicja 1.3

Homomorfizmem półgrup (S,),(S,*) nazywamy odwzorowanie

h:SS takie, że
x,ySh(xy)=h(x)*h(y).

Homomorfizmem monoidów (M,,1M),(M,*,1M) nazywamy odwzorowanie h:MM

takie, że
x,yMh(xy)=h(x)*h(y)ih(1M)=1M.

Przykład 1.3

Odwzorowanie h:mod3mod6 takie, że

140022

jest homomorfizmem półgrupy (mod3,) w półgrupę (mod6,), ale nie jest homomorfizmem monoidu (mod3,,1) w monoid (mod6,,1), bo wartością 1 z monoidu (mod3,,1) nie jest jedynka monoidu (mod6,,1).

Dla zainteresowanych

Definicja 1.4.

Niech (S,),(M,,1M) będą odpowiednio dowolną półgrupą, monoidem.

  • (T,) nazywamy podpółgrupą S wtedy i tylko wtedy, gdy TS i T2T.
  • (N,,1M) nazywamy podmonoidem M wtedy i tylko wtedy, gdy N jest podpółgrupą M i 1MN

Przykład 1.4.

(mod6,) jest monoidem. Podzbiór {2,4}, jako zamknięty na działanie mod6, tworzy podpółgrupę mod6. ({2,4},mod6) jest monoidem z 4 jako elementem neutralnym, ale nie podmonoidem mod6.

Niech X będzie dowolnym podzbiorem monoidu M. Zbiór


X*={1}XX2...Xn=i=0Xi


jest podmonoidem monoidu M. Jest to najmniejszy, w sensie inkluzji podmonoid monoidu M zawierający zbiór X. Gdy spełniona jest równość X*=M, to mówimy, że X jest zbiorem generatorów monoidu M. Zachodzą następujące własności:

1. Zbiór generatorów nie jest wyznaczony jednoznacznie.
2. Dla dowolnego monoidu istnieje zbiór generatorów, jest nim w szczególności zbiór M.

Podobnie dla dowolnego podzbioru X półgrupy S zbiór


X+=XX2...Xn=i=1Xi


jest podpółgrupą S i to najmniejszą w sensie inkluzji zawierającą zbiór X.
Powyższe uwagi dotyczące zbioru generatorów monoidów przenoszą się odpowiednio dla półgrup.

Przykład 1.5.

W monoidzie (0,+,0) podmonoid generowany przez zbiór generatorów X={2} składa się z liczb parzystych i nieujemnych.

Definicja 1.5

Niech S będzie półgrupą. Relację równoważności ρS2 nazywamy:

(1) prawą kongruencją w półgrupie S, jeśli
x,y,zSxρyxzρyz,
(2) lewą kongruencją w półgrupie S, jeśli
x,y,zSxρyzxρzy,
(3) kongruencją, jeśli jest prawą i lewą kongruencją, tzn.
x,y,zSxρyzxρzyixzρyz.

Zastępując w powyższej definicji półgrupę S na monoid M otrzymamy dualnie pojęcia prawej kongruencji, lewej kongruencji i kongruencji zdefiniowane w monoidzie.
Mając kongruencję ρ określoną w półgrupie S (monoidzie M) możemy utworzyć półgrupę ilorazową S/ρ (monoid ilorazowy M/ρ), której elementami są klasy równoważności (abstrakcji) relacji ρ.

Dla dowolnego homomorfizmu półgrup h:SS określamy relację

Kerh={(x,y)S×S:h(x)=h(y)}.
Relacja Kerh jest kongruencją w półgrupie S.

Dla homomorfizmu monoidów h:MM relacja Kerh jest kongruencją w monoidzie M.

Podstawowe twierdzenie o epimorfizmie dla struktur algebraicznych przyjmuje dla półgrup i odpowiednio dla monoidów następującą postać.

Twierdzenie 1.1

Niech h:SS będzie dowolnym epimorfizmem półgrupy S na półgrupę S'. Półgrupa S' jest izomorficzna z półgrupą ilorazową S/Kerh.

<flash>file=Ja-1-1.swf|width=200|height=200</flash> <div.thumbcaption>Rysunek 1

Twierdzenie 1.2

Niech h:MM będzie dowolnym epimorfizmem monoidu M na monoid M'. Monoid M' jest izomorficzny z monoidem ilorazowym M/Kerh.

Rysunek 2

Półgrupy wolne i monoidy wolne

Niech A oznacza dowolny zbiór.

Definicja 2.1

Wolnym monoidem A* o bazie A nazywamy zbiór wszystkich skończonych ciągów:

A*={(a1,,an):n0,aiA}
wraz z działaniem
(a1,,an)(b1,,bm)=(a1,,an,b1,,bm)

Ciąg pusty (n=0) oznaczamy symbolem "1" i z definicji jest on elementem neutralnym określonego powyżej działania, nazywanego katenacją lub konkatenacją.

Przyjmujemy następującą konwencję zapisu:
(a)a,(a1,,an)a1...an.
W oparciu o nią możemy stwierdzić inkluzję AA*.
Dla zainteresowanych

Ta inkluzja uzasadnia użycie wprowadzonego wcześniej oznaczenia A*.
A* jest najmniejszym podmonoidem monoidu A* zawierającym A.

Definicja 2.2

Wolną półgrupą A+ nad alfabetem A nazywamy zbiór wszystkich skończonych ciągów:

A+={(a1,,an):n>0,aiA}
wraz z działaniem katenacji.

Używa się także określeń - wolny monoid o bazie A i wolna półgrupa o bazie A.

  • Elementy alfabetu A nazywamy literami.
  • Elementy wolnego monoidu (półgrupy) nazywamy słowami i oznaczać bedziemy w wykładzie najczęściej literami u,v,w.
  • Dowolny podzbiór wolnego monoidu (półgrupy) nazywamy językiem.

Długością słowa wA* nazywamy liczbę |w| będącą długością ciągu określającego to słowo. Słowo puste 1, czyli odpowiadające ciągowi pustemu ma długość równą 0.

Przykład 2.1

(1) Wolna półgrupa {0,1}+ składa się z ciągów binarnych.
(2) Wolny monoid {0,1}* składa się z ciągów binarnych i ciągu pustego.

Definicja 2.3

Niech A i B będą alfabetami. Podstawieniem nazywamy homomorfizm

s:A*𝒫(B*).
Odwzorowanie s jako homomorfizm monoidu A* w monoid 𝒫(B*) spełnia dla dowolnych v,wA* równość
s(vw)=s(v)s(w)orazs(1)={1}

Dla zainteresowanych

Twierdzenie 2.1.

Niech A oznacza dowolny zbiór, a (M,,1M) dowolny monoid.

(1) Każde odwzorowanie
f:AM
daje się jednoznacznie rozszerzyć do homomorfizmu
h:A*M.
(2) Homomorfizm h jest epimorfizmem wtedy i tylko wtedy, gdy f(A) jest zbiorem generatorów M.


Dowód

(1) Przyjmujemy
a1...anA+h(a1...an)=f(a1)...f(an)orazh(1)=1M.
Tak określone h jest jedynym rozszerzeniem przekształcenia f.
(2) f(A)*=MsMs=f(a1)...f(an)=h(a1...an) dla pewnego a1...anA*h jest suriekcją.


Przyjmując w powyższym twierdzeniu jako A dowolny zbiór generatorów monoidu M oraz jako funkcję f włożenie idA:A𝐌 równe identyczności na A dochodzimy do następującego wniosku.

Wniosek 2.1.

Każdy monoid M jest homomorficznym obrazem wolnego monoidu A* utworzonego nad dowolnym zbiorem generatorów M.

Udowodnione powyżej twierdzenie oraz sformułowany wniosek prawdziwy jest również dla półgrup.
Powyższe rezultaty określają rolę wolnych monoidów (półgrup) w klasie wszystkich monoidów (półgrup).

Twierdzenie 2.2.

Monoid M jest wolny wtedy i tylko wtedy, gdy każdy element mS=M{1} ma jednoznaczny rozkład na elementy zbioru A=SS2.

Dowod

Załóżmy, że monoid M jest wolny, to znaczy M=B* dla pewnego zbioru (bazy) B.

  • Udowodnimy, że A jest zbiorem generatorów monoidu M. W tym celu wykażemy, że zachodzi inkluzja
    S(SS2)+.
    Dowód przeprowadzimy nie wprost. Załóżmy więc, że
S(SS2)+
i niech m oznacza element z tego zbioru o najmniejszej długości w B*.
Wnioskujemy stąd kolejno:

m(SS2)+
mS2
m=s1s2 dla pewnych s1,s2S,

przy czym długość s1,s2 jest silnie mniejsza niż długość m. Zatem
s1,s2(SS2)+
a to oznacza, że
m=s1s2(SS2)+
Otrzymana sprzeczność kończy dowód faktu, że A=SS2 jest zbiorem generatorów monoidu M.
  • Pokażemy teraz, że AB.
    Niech m=b1...bkSS2 dla pewnych biB, i=1,,k.
    Jeśli k>1, to mS2, co jest sprzeczne z wyborem m. Zatem k=1, co implikuje AB.

Z definicji wolnego monoidu wynika jednoznaczność rozkładu na elementy z bazy B, a to pociąga za sobą jednoznaczność rozkładu na elementy z podzbioru A=SS2.

Niech teraz M oznacza monoid z jednoznacznością rozkładu na elementy zbioru A=SS2. Rozszerzamy identyczność idA:AM do homomorfizmu h:A*M. Z założenia wynika, że każdy element mS można przedstawić jako iloczyn

m=a1...angdzieaiAdlai=1,,n.

Zatem

h(a1...an)=h(a1)...h(an)a1...an.

Homomorfizm h jest izomorfizmem, więc monoid M jako izomorficzny z A* jest wolny.

Powyższe twierdzenie posiada swój odpowiednik dla wolnych półgrup.

Twierdzenie 2.3.

Półgrupa S jest wolna wtedy i tylko wtedy, gdy każdy element xS ma jednoznaczny rozkład na elementy zbioru SS2.

Wniosek 2.2.

Baza wolnego monoidu (półgrupy) jest minimalym zbiorem generatorów.

Przyklad 2.2.

(1) Półgrupa (,+) jest wolna. Każdy jej element można jednoznacznie zapisać jako sumę jedynek - (+)={1}.
(2) Dla 2={n:n2} półgrupa (2,+) nie jest to półgrupą wolną.
Nie ma jednoznaczności rozkładu na elementy z 2(2+2)={2,3}.
Na przykład 6=2+2+2=3+3.