• OBIETTIVI:
Il metodo della diagonalizzazione
• OBIETTIVI:
- Il metodo della diagonalizzazione fu successivamente usato per
dimostrare che esistono linguaggi non Turing riconoscibili.
Il metodo della diagonalizzazione
• OBIETTIVI:
- Il metodo della diagonalizzazione fu successivamente usato per
dimostrare che esistono linguaggi non Turing riconoscibili.
- Il metodo della diagonalizzazione e l’autoreferenzialità sono
usati per dimostrare il teorema seguente
Il metodo della diagonalizzazione
• OBIETTIVI:
- Il metodo della diagonalizzazione fu successivamente usato per
dimostrare che esistono linguaggi non Turing riconoscibili.
- Il metodo della diagonalizzazione e l’autoreferenzialità sono
usati per dimostrare il teorema seguente
Teorema
Il linguaggio
non è decidibile.
Funzioni
Definizione
Dati due insiemi non vuoti X e Y ,
una funzione f : X → Y da X in Y è una relazione che associa a
ogni elemento x in X uno e un solo y = f (x) in Y .
X è il dominio della funzione,
Y è il codominio della funzione.
Funzioni
Definizione
Una funzione f : X → Y è iniettiva se
∀x, x 0 ∈ X x 6= x 0 ⇒ f (x) 6= f (x 0 )
Funzioni
Definizione
Una funzione f : X → Y è iniettiva se
∀x, x 0 ∈ X x 6= x 0 ⇒ f (x) 6= f (x 0 )
Definizione
Una funzione f : X → Y è suriettiva ⇔ ∀y ∈ Y ∃x ∈ X : y = f (x)
Funzioni
Definizione
Una funzione f : X → Y è iniettiva se
∀x, x 0 ∈ X x 6= x 0 ⇒ f (x) 6= f (x 0 )
Definizione
Una funzione f : X → Y è suriettiva ⇔ ∀y ∈ Y ∃x ∈ X : y = f (x)
Definizione
Una funzione f : X → Y è una funzione biettiva di X su Y (o una
biezione tra X e Y ) se f è iniettiva e suriettiva.
Funzioni
Definizione
Due insiemi X e Y hanno la stessa cardinalità se esiste una
funzione biettiva f : X → Y di X su Y .
Cardinalità
Definizione
Due insiemi X e Y hanno la stessa cardinalità se esiste una
funzione biettiva f : X → Y di X su Y .
Definizione
Due insiemi X e Y hanno la stessa cardinalità se esiste una
funzione biettiva f : X → Y di X su Y .
(x + y )(x + y + 1)
∀(x, y ) ∈ N2 f ((x, y )) = +x
2
1
= ((x + y )2 + 3x + y ) ∈ N
2
Esempio
(x + y )(x + y + 1)
∀(x, y ) ∈ N2 f ((x, y )) = +x
2
1
= ((x + y )2 + 3x + y ) ∈ N
2
1 2 3 4
1 1 2 4 7 ...
2 3 5 8 ... ...
3 6 9 ... ... ...
· ... ... ... ... ...
i ... ... ... ... ...
· ... ... ... ... ...
· ... ... ... ... ...
Numerabilità
Definizione
Un insieme X è numerabile se esiste una funzione biettiva
f : N → X di N su X .
Un insieme X è enumerabile se esiste una funzione biettiva
calcolabile f : N → X di N su X .
Un insieme X è contabile se è finito o numerabile.
Numerabilità
Definizione
Un insieme X è numerabile se esiste una funzione biettiva
f : N → X di N su X .
Un insieme X è enumerabile se esiste una funzione biettiva
calcolabile f : N → X di N su X .
Un insieme X è contabile se è finito o numerabile.
Definizione
Un insieme X è numerabile se esiste una funzione biettiva
f : N → X di N su X .
Un insieme X è enumerabile se esiste una funzione biettiva
calcolabile f : N → X di N su X .
Un insieme X è contabile se è finito o numerabile.
Teorema
R non è numerabile.
R non è numerabile
n f (n)
1 d1,1 d1,2 ... ... ...
2 d2,1 d2,2 ... ... ...
· ... ... ... ... ...
· ... ... ... ... ...
i di,1 di,2 ... ... ...
· ... ... ... ... ...
· ... ... ... ... ...
R non è numerabile
n f (n)
1 d1,1 d1,2 ... ... ...
2 d2,1 d2,2 ... ... ...
· ... ... ... ... ...
· ... ... ... ... ...
i di,1 di,2 ... ... ...
· ... ... ... ... ...
· ... ... ... ... ...
Corollario
Esistono linguaggi che non sono Turing riconoscibili.
Il Metodo della diagonalizzazione per provare che esistono
linguaggi non Turing riconoscibili
e w2 = a, w6 = ba, w8 =?
Non numerabilità dell’insieme dei linguaggi
La sequenza binaria del linguaggio delle stringhe binarie che iniziano con 0
Esempio
Esempio
Non numerabilità dell’insieme dei linguaggi
Corollario
Esistono linguaggi che non sono Turing riconoscibili.
Esistono linguaggi non Turing riconoscibili
Corollario
Esistono linguaggi che non sono Turing riconoscibili.
Corollario
Esistono linguaggi che non sono Turing riconoscibili.
Corollario
Esistono linguaggi che non sono Turing riconoscibili.
Corollario
Esistono linguaggi che non sono Turing riconoscibili.
Corollario
Esistono linguaggi che non sono Turing riconoscibili.
(Seconda) Dimostrazione
Supponiamo per assurdo che P(Σ∗ ) sia numerabile.
Non numerabilità dell’insieme dei linguaggi
(Seconda) Dimostrazione
Supponiamo per assurdo che P(Σ∗ ) sia numerabile.
Quindi esiste un’applicazione biettiva h di N in P(Σ∗ ).
Non numerabilità dell’insieme dei linguaggi
(Seconda) Dimostrazione
Supponiamo per assurdo che P(Σ∗ ) sia numerabile.
Quindi esiste un’applicazione biettiva h di N in P(Σ∗ ).
Sia L1 , L2 , . . . la lista dei linguaggi, cioè degli elementi di
P(Σ∗ ), dove L1 = h(1), L2 = h(2) e in generale Li = h(i).
Non numerabilità dell’insieme dei linguaggi
(Seconda) Dimostrazione
Supponiamo per assurdo che P(Σ∗ ) sia numerabile.
Quindi esiste un’applicazione biettiva h di N in P(Σ∗ ).
Sia L1 , L2 , . . . la lista dei linguaggi, cioè degli elementi di
P(Σ∗ ), dove L1 = h(1), L2 = h(2) e in generale Li = h(i).
Σ∗ è enumerabile, sia g una biezione di N in Σ∗ e siano
w1 , w2 , . . . gli elementi di Σ∗ , con wi = g (i).
Non numerabilità dell’insieme dei linguaggi
(Seconda) Dimostrazione
Supponiamo per assurdo che P(Σ∗ ) sia numerabile.
Quindi esiste un’applicazione biettiva h di N in P(Σ∗ ).
Sia L1 , L2 , . . . la lista dei linguaggi, cioè degli elementi di
P(Σ∗ ), dove L1 = h(1), L2 = h(2) e in generale Li = h(i).
Σ∗ è enumerabile, sia g una biezione di N in Σ∗ e siano
w1 , w2 , . . . gli elementi di Σ∗ , con wi = g (i).
Definiamo una matrice (infinita) avente come indici di riga i
linguaggi L1 , L2 , . . . e indici di colonna le stringhe w1 , w2 , . . ..
Non numerabilità dell’insieme dei linguaggi
w1 w2 ... wj
L1 0 1 ... 0 ...
L2 1 1 ... 1 ...
L3 0 0 ... 1 ...
· ... ... ... ... ...
Li 1 0 ... 0 ...
· ... ... ... ... ...
· ... ... ... ... ...
Non numerabilità dell’insieme dei linguaggi
w1 w2 ... wj
L1 0 1 ... 0 ...
L2 1 1 ... 1 ...
L3 0 0 ... 1 ...
· ... ... ... ... ...
Li 1 0 ... 0 ...
· ... ... ... ... ...
· ... ... ... ... ...
∀i > 0 wi ∈ L ⇔ wi 6∈ Li
Non numerabilità dell’insieme dei linguaggi
∀i > 0 wi ∈ L ⇔ wi 6∈ Li
∀i > 0 wi ∈ L ⇔ wi 6∈ Li
∀i > 0 wi ∈ L ⇔ wi 6∈ Li
∀i > 0 wi ∈ L ⇔ wi 6∈ Li
Σ∗ è numerabile
Numerabilità dell’insieme delle parole
Σ∗ è numerabile
Σ∗ è numerabile
Σ∗ è numerabile
Numerabilità dell’insieme delle parole
Σ∗ è numerabile
Dimostrazione
Numerabilità dell’insieme delle parole
Σ∗ è numerabile
Dimostrazione
Sia σ ∈ Σ, l’applicazione f : n ∈ N → σ n ∈ Σ∗ è iniettiva,
quindi
|N| ≤ |Σ∗ |
Numerabilità dell’insieme delle parole
Σ∗ è numerabile
Dimostrazione
Sia σ ∈ Σ, l’applicazione f : n ∈ N → σ n ∈ Σ∗ è iniettiva,
quindi
|N| ≤ |Σ∗ |
Per ogni n ∈ N sia fn : Σn → N un’applicazione iniettiva.
Inoltre poniamo f0 () = 1.
Numerabilità dell’insieme delle parole
Σ∗ è numerabile
Dimostrazione
Sia σ ∈ Σ, l’applicazione f : n ∈ N → σ n ∈ Σ∗ è iniettiva,
quindi
|N| ≤ |Σ∗ |
Per ogni n ∈ N sia fn : Σn → N un’applicazione iniettiva.
Inoltre poniamo f0 () = 1.
Definiamo una funzione g tale che g (w ) = (|w | + 1, f|w | (w )).
Numerabilità dell’insieme delle parole