Star di Kleene

Niente fonti!
Questa voce o sezione sugli argomenti teorie dell'informatica e logica non cita le fonti necessarie o quelle presenti sono insufficienti.

In logica matematica e in informatica, la stella di Kleene (o chiusura di Kleene, o operatore di Kleene) è un'operazione unaria definita su un insieme di stringhe o su un insieme di simboli o caratteri. In matematica, è più noto come la costruzione di un monoide libero. L'applicazione della stella di Kleene ad un insieme V {\displaystyle V} viene scritta come V {\displaystyle V^{*}} ; viene impiegata normalmente nelle espressioni regolari, contesto in cui Stephen Kleene ha introdotto originariamente tale concetto, stante ad indicare "zero o più".

Nozioni introduttive

Sia A {\displaystyle A} un insieme che chiameremo alfabeto. Si definisce universo linguistico di A {\displaystyle A} , e si indica con A {\displaystyle A^{*}} , l'insieme formato dalle sequenze finite di elementi di A {\displaystyle A} . Gli elementi di A {\displaystyle A^{*}} , detti anche parole, sono dunque ottenuti concatenando un numero arbitrario (ma finito) di elementi di A {\displaystyle A} , che prendono il nome di lettere dell'alfabeto. Se α {\displaystyle \alpha } e β {\displaystyle \beta } sono due parole, indichiamo con α β {\displaystyle \alpha \beta } la parola ottenuta concatenando le parole date nell'ordine in cui compaiono.

La parola vuota, ossia la sequenza costituita da zero elementi di A {\displaystyle A} , è solitamente indicata con il simbolo ε {\displaystyle \varepsilon } . Per la parola vuota vale la seguente proprietà:

α ε = ε α = α , α A . {\displaystyle \alpha \varepsilon =\varepsilon \alpha =\alpha ,\quad \forall \alpha \in A^{*}.}

Per ogni elemento x {\displaystyle x} di A {\displaystyle A} , l'operazione di concatenazione si definisce come:

S x ( α ) = α x , α A . {\displaystyle S_{x}\left(\alpha \right)=\alpha x,\quad \forall \alpha \in A^{*}.}

Si dimostra che A {\displaystyle A^{*}} coincide con la chiusura induttiva dell'insieme formato dalla parola vuota ε {\displaystyle \varepsilon } rispetto all'insieme delle operazioni di concatenazione definite su tutti gli elementi di A {\displaystyle A} , ossia:

A = C l o s ( { ε } , { S x | x A } ) . {\displaystyle A^{*}={\mathcal {C}}los\left(\left\{\varepsilon \right\},\left\{S_{x}\;|\;\forall x\in A\right\}\right).}

Si definisce linguaggio sull'alfabeto A {\displaystyle A} ogni sottoinsieme L {\displaystyle L} di A {\displaystyle A^{*}} . Se n N , a A {\displaystyle n\in N,a\in A} , si indica con a n {\displaystyle a^{n}} la parola di A {\displaystyle A^{*}} ottenuta giustapponendo n {\displaystyle n} volte a {\displaystyle a} , ossia:

a n = a a a a n . {\displaystyle a^{n}=\underbrace {aaa\ldots a} _{n}.}

Se indichiamo con L 1 {\displaystyle L_{1}} e L 2 {\displaystyle L_{2}} due linguaggi su A {\displaystyle A} , possiamo definire la seguente operazione di prodotto (o concatenazione) tra linguaggi:

L 1 L 2 = { α β | α L 1 , β L 2 } . {\displaystyle L_{1}\cdot L_{2}=\left\{\alpha \beta \;|\;\alpha \in L_{1},\beta \in L_{2}\right\}.}

Inoltre, se L {\displaystyle L} è un linguaggio, definiamo la seguente nozione di potenza n {\displaystyle n} -esima:

L 0 = { ε } , {\displaystyle L^{0}=\left\{\varepsilon \right\},}
L n + 1 = L L n , n N . {\displaystyle L^{n+1}=L\cdot L^{n},\quad n\in N.}

Definizione

Se L {\displaystyle L} è un linguaggio, si definisce star di Kleene l'operazione:

L = n N L n . {\displaystyle L^{*}=\bigcup _{n\in N}L^{n}.}
  Portale Informatica
  Portale Matematica