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