Star di Kleene

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:F 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 viene scritta come 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 un insieme che chiameremo alfabeto. Si definisce universo linguistico di A, e si indica con A*, l'insieme formato dalle sequenze finite di elementi di A. Gli elementi di A*, detti anche parole, sono dunque ottenuti concatenando un numero arbitrario (ma finito) di elementi di A, che prendono il nome di lettere dell'alfabeto. Se α e β sono due parole, indichiamo con αβ la parola ottenuta concatenando le parole date nell'ordine in cui compaiono.

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

αε=εα=α,αA*.

Per ogni elemento x di A, l'operazione di concatenazione si definisce come:

Sx(α)=αx,αA*.

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

A*=𝒞los({ε},{Sx|xA}).

Si definisce linguaggio sull'alfabeto A ogni sottoinsieme L di A*. Se nN,aA, si indica con an la parola di A* ottenuta giustapponendo n volte a, ossia:

an=aaaan.

Se indichiamo con L1 e L2 due linguaggi su A, possiamo definire la seguente operazione di prodotto (o concatenazione) tra linguaggi:

L1L2={αβ|αL1,βL2}.

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

L0={ε},
Ln+1=LLn,nN.

Definizione

Se L è un linguaggio, si definisce star di Kleene l'operazione:

L*=nNLn.

Template:Portale