Ok, vedete? Vabbò, vediamo di riuscirà a fare qualcosa oggi. Teorema di Rice. Ok, allora tra le varie cose che abbiamo visto e purtroppo oggi è niente pausa e mi spiace non è dipesa da me. Vediamo che riusciamo a combinare. Allora, tra i vari linguaggi che abbiamo visto, abbiamo visto il linguaggio vuoto e il linguaggio non vuoto, per cui abbiamo quindi abbiamo che il linguaggio vuoto, è il linguaggio delle macchine e M per cui il linguaggio di M è il linguaggio vuoto, il linguaggio non vuoto, il linguaggio delle macchine m che è diverso dal linguaggio vuoto. Ok? Allora, questi linguaggi hanno la voi vedete? Sì, avete la peculiarità che sono linguaggi che contengono codifiche di macchine di touring in cui linguaggio, ok? Ha una certa proprietà. Ok? In questo caso può essere vuoto, può essere non vuoto, no? Allora, sostanzialmente noi abbiamo trovato che questi linguaggi sono indecidibili, ma il fatto che questi linguaggi siano indecidibili è solamente un caso particolare di una proprietà, di un risultato molto più generale che riguarda i linguaggi che hanno questa forma, cioè i linguaggi caratterizzati da codifiche di macchine di Touring che devono soddisfare una qualche proprietà. Ok? Allora, noi possiamo definire quindi questo concetto che è il concetto di proprietà di macchine di Touring, quindi è più o meno un'intuizione, no? Una macchina di Touring ha una certa proprietà, se ha una certa proprietà se se ha delle caratteristiche. Ok? Però per riuscire a formalizzare questa cosa, quello che noi possiamo fare è che definiamo formalmente una proprietà di macchine di touring come quindi una proprietà P come un insieme di macchine di codifiche di macchine di quindi noi semplicemente no se abbiamo una proprietà P che è un insieme Una macchina di touring ha una certa proprietà, se si trova qua dentro, eh, tutto qui. Ok, adesso può essere la proprietà di avere 10 stati, la proprietà di, che ne so, fare 100 passi prima di accettare le proprie stringhe, la proprietà che il linguaggio accettato, sia vuoto, sia non vuoto e così via. Cioè, quindi noi possiamo caratterizzare le proprietà delle macchine di touring in questo modo. Associato a questo set, di conseguenza noi abbiamo che il linguaggio della proprietà P è semplicemente l'insieme delle codifiche di macchine di Touring Male per cui M appartiene a P. Ok? Allora, una cosa che noi dobbiamo però verificare, cioè a cui dobbiamo stare attenti, è la seguente, che una proprietà per una macchina di touring può fare riferimento essenzialmente a due grosse categorie di caratteristiche della macchina, cioè può essere una proprietà che riguarda il com'è fatta la macchina, cioè quanti stati ha o come computa, cose di questo. questo tipo e proprietà che riguardano invece i linguaggi delle macchine. Ok? Quindi da un lato abbiamo la famiglia di proprietà che riguardano la struttura delle macchine, cosa fa la macchina, ok? e c'è proprio che ne so fisicamente come si comporta e dall'altro abbiamo la grande famiglia delle proprietà di macchine che riguardano invece i linguaggi riconosciuti dalla macchina. Cioè, quindi le proprietà dei linguaggi di macchine sono proprietà un po' più astratte, nel senso che non vanno sulla macchina specifica, ma vanno più sul linguaggio riconosciuto. Quindi noi possiamo distinguere due grandi famiglie, proprietà di macchine e la proprietà dei linguaggi delle macchine. la proprietà dei linguaggi. Questo lo mettiamo dopo. Ok. Quindi questa è la grossa categorizzazione che facciamo in queste due grandi famiglie. Poi daremo un nome particolare a queste cose. una proprietà una proprietà P è banale se o contiene tutte le macchine o o non ne contiene nessuna. Ok? Quindi una proprietà è banale essenzialmente se o ce l'hanno tutte le macchine o non ce l'ha nessuno. Ok? Secondo voi quanto difficile è decidere una proprietà banale, stabilire se una macchina ha una proprietà banale? Mh. una proprietà banale costante. Sì, è banale. Ecco perché le chiamo banali, perché date una proprietà, se sappiamo che ce l'hanno tutte le macchine, rispondiamo sempre di sì. Se la proprietà è banale, nel senso che è vuota, che non ce l'ha nessuna macchina, allora noi rispondiamo sempre di no. Ok? Quindi le proprietà banali, scusatemi, le proprietà banali sono proprietà per le quali è semplicissimo rispondere semplicemente per il fatto che o ce l'hanno tutte o non ce l'hanno nessuna. Ok? Allora, vediamo un paio di esempi. Proprietà uno, l'insieme delle macchine di Touring M tale che M cinque stati. Ok? Questa, per esempio, può essere una proprietà, no? Allora, come questa decidere questa proprietà secondo voi è qualcosa che si può fare o meno? Sì. Cioè, basta che noi andiamo a guardare la codifica della macchina, andiamo a contare quanti sono i suoi stati che ci sta là dentro perché l'abbiamo codificata, no? E se sono cinque rispondiamo sì, se sono diversi da cinque rispondiamo no. oppure questo qua. Quindi questa qui è una proprietà che riguarda la forma, la struttura della macchina, no? Un'altra proprietà potrebbe essere P2 che è l'insieme M dei linguaggi, l'insieme M delle macchine, il cui linguaggio contiene solo stringhe di lunghezza pari. Ok? Questa, per esempio, è un'altra proprietà, ma questa proprietà, a differenza di P1, è una proprietà che riguarda il linguaggio riconosciuto dalla eh dalla macchina, oppure P insieme delle macchine di Turini L M tale che il linguaggio di M è il linguaggio vuoto. La riconosciate questa proprietà? È il linguaggio L. Quindi e lei sostanzialmente era un linguaggio di una proprietà, un linguaggio della proprietà della vuotezza, cioè che questa macchina non accetta assolutamente niente. Ok? Allora, noi questi linguaggi qui, questo qua e questo qua, P2 e P, che riguardano solamente eh il linguaggio, ok? Riconosciuto dalla macchina, le chiamiamo proprietà semantiche, ok? Quindi proprietà semantiche. Quindi le proprietà semantiche sono quelle proprietà di macchine tale per cui viene caratterizzato più che la macchina in sé, il suo numero di stati, il suo modo di funzionare, se si stanca o non si stanca quando fa la computazione. La proprietà semantica è una proprietà che raccoglie al suo interno macchine di touring o le esclude basate esclusivamente sul linguaggio che riconoscono. Ok? Allora, formalmente una proprietà, quindi una proprietà P di macchine si dice semantica se per ogni coppia di macchine m1 ed m2 tale che il linguaggio di m1 è uguale al linguaggio di m2. [Musica] Se m1 appartiene a p, allora m2 appartiene a p. Ok? Cioè questa è semplicemente una definizione formale del fatto che l'appartenenza o meno di macchine ha una proprietà semantica P è caratterizzata solamente dal linguaggio che riconosce, non da quanto tempo ci mette, non se è deterministica o non deterministica, non dal numero di stati, eccetera. Ok? Nel momento in cui due macchine distinte, che magari lavorano in modo differente, una deterministica e l'altra non deterministica, se hanno lo stesso linguaggio, loro faranno contemporaneamente parte di una propria semantica o contemporaneamente ne saranno fuori. Ok? Perché quelle che caratterizza l'appartenenza a una proprietà semantica di una certa macchina è solamente il suo linguaggio. Per questa ragione le proprietà semantiche le chiamiamo anche proprietà di linguaggi. Ok? Allora, vi sto facendo questa introduzione perché questo topic delle proprietà dei linguaggi, proprietà delle semantiche eccetera, su libri diversi viene trattato in maniera diversa. Tipo sugli appunti di Calautti, se guarderete, lui c'ha usa le definizioni di proprietà semantiche. Se leggete il libro di Offcroft, loro parlano di proprietà di linguaggi. Allora, questo è il legame. Il legame è che le proprietà semantiche, penso che pure sul testo di Sipser parli di proprietà semantiche. Quando si parla di proprietà semantiche su quei testi è la stessa cosa che sul libro di Hopcroft si chiamano proprietà di linguaggi. Ok? Che cos'è una proprietà di un linguaggio? proprietà dei linguaggi re una proprietà una proprietà P di linguaggio. R e è semplicemente un sottoinsieme di R. Quindi P è una proprietà di linguaggi se è un sottoinsieme di R. Ok? Come facciamo ad avere Ecco, ora c'è la connessione fra proprietà di linguaggi e proprietà semantiche che eh ne parla poi sul libro di Hopcroft viene trattato in questo modo. Se noi abbiamo che un insieme P è un insieme di linguaggi, cioè non è che noi possiamo andare a ficcare i linguaggi dentro Pché non abbiamo modo di rappresentarli. Ok? Quello che noi possiamo fare è che un linguaggio viene rappresentato, siccome stiamo parlando di linguaggi di RE, possiamo identificarlo, descriverlo in maniera compatta tramite la macchina di Turing che lo riconosce. Quindi ecco perché c'è la connessione fra proprietà di linguaggi e proprietà semantiche, perché da un lato una proprietà di linguaggi è l'insieme delle macchine di Touring. Facciamo così. M Allora, supponiamo che P sia una proprietà di linguaggi, ok? Il linguaggio della proprietà P è semplicemente l'insieme delle macchine di Touring L M tale per cui il linguaggio di M appartiene a P. Ok? Ecco perché noi abbiamo il collegamento fra proprietà semantiche e proprietà di linguaggi, perché le proprietà semantiche sono anche quelle insieme di macchine. Da un lato abbiamo un insieme di macchine il cui linguaggio sia caratterizzato in un certo modo. Dall'altro abbiamo l'insieme di macchine il cui linguaggio appartiene alla proprietà di P. Ecco, quindi si sovrappongono i concetti, cioè proprietà di linguaggi e proprietà semantiche sono la stessa cosa. Io preferisco parlare di proprietà di linguaggi perché è più semplice ragionarci, tutto quanto. Ok? Adesso in delle dimostrazioni che vedremo stamattina vedrete che farò più spesso riferimento alle proprietà dei linguaggi che non alle proprietà semantiche, ok? Però sono sostanzialmente la stessa cosa. Ehm Ok. Alri. Allora, una cosa interessante, quindi noi abbiamo proprietà di macchine, proprietà semantiche e le proprietà semantiche sono le proprietà di linguaggi, quindi sono insiemi di linguaggi rappresentati come tramite l'insieme dei codici di macchina di Touring che riconoscono i linguaggi di quella proprietà. Anche per le proprietà di linguaggi abbiamo le proprietà banali. Ok? una proprietà P, una proprietà P di linguaggi di re è banale Se o P è l'insieme vuoto, quindi nessun linguaggio ha quella proprietà, o è uguale a r, cioè tutti i linguaggi hanno quella proprietà, ok? Quindi è l'estensione della definizione di proprietà banale per le macchine, la trasportiamo su proprietà banale dei linguaggi, ok? Quindi una proprietà è banale, una proprietà di linguaggi è banale se o tutti i linguaggi ce l'hanno, quindi tutti i linguaggi fanno parte di P e quindi tutto il resto sta dentro P o se P è vuoto, cioè non ce l'ha nessuno. Ok? In quel caso decidere il linguaggio della proprietà P significa stabilire se dato una modifica di macchina e Touring il linguaggio riconosciuto da quella macchina di Touring fa parte della proprietà o meno. Ok? ad esempio per il linguaggio L e sarebbe la proprietà del di essere il linguaggio vuoto. Ok? Quindi stabilire se una macchina appartiene a e le è essenzialmente stabilire se il linguaggio riconosciuto da quella macchina ha la proprietà di essere il linguaggio vuoto. Ok? Questa è la connessione. Noi avevamo visto che L ed LNE e sono dei linguaggi indecidibili, ma quei linguaggi indecidibili sono in realtà un caso particolare di un risultato molto più generale che è il seguente teorema. Questo è il teorema di Rise [Musica] che dice questo: ogni proprietà non banale dei linguaggi G R è è indecidibile. Ok? Cioè questo questo risultato ci dice che qualsiasi sia un linguaggio che andiamo a considerare che si può configurare come un linguaggio di una proprietà non banale, per questo teorema noi sappiamo che è indecidibile, non dobbiamo nemmeno andare a fare riduzioni o dimostrare chissà che cosa. Se il linguaggio che stiamo considerando è una proprietà non banale, allora per il teorema di Rise è indecisibile. Ok? Adesso però dobbiamo dimostrare questo teorema. Ok? Eh, spazio ne abbiamo più o meno. Ok, dimostrazione. Quindi P sia P sia P una proprietà una proprietà [Musica] non banale di R dei linguaggi di R. Ok? Ci sono due possibili casi, quindi due casi. Caso A, il linguaggio vuoto non appartiene a P. Caso B, il linguaggio vuoto appartiene a P. Ok? Quindi sono le due possibili scenarie, ok? O il vuoto sta dentro P o il vuoto non sta dentro P. Partiamo da A. Ok? Se P è una proprietà non banale di RE, quindi abbiamo che P è un sottoinsieme di R, ok? Noi abbiamo che P è una proprietà non banale da cui P non può essere vuota, ok? Cioè ci deve essere qualcosa di dentro. E siccome il linguaggio vuoto non sta dentro P, lo stiamo assumendo per il caso A, che il linguaggio vuoto non sta dentro P, allora dentro P deve starci un linguaggio Lorsivamente numerabile perché P è un sottinsieme di RE che sia diverso dal linguaggio vuoto. Ok? Quindi esiste un linguaggio L appartenente ad R tale che L Sì, L è diverso da vuoto e L appartiene a P. Ok? È chiaro? Bene. Ah, lo spazio è già finito. Ok. Eh. Ok. Allora, se L è un linguaggio di R ed Linguaggio vuoto, abbiamo che esiste una macchina di Touring ML che accetta il linguaggio L. Ok? Lo sappiamo dal fatto che L appartiene a R, quindi esiste esiste m serve spazio. Andiamo all'altra pagina. Quindi esiste una macchina ML tale che il linguaggio di ML è uguale ad L che è diverso da vuoto. Ok? È chiaro? Quindi fino fino ad ora abbiamo fatto solamente delle considerazioni su cosa ci sta dentro P. Abbiamo detto che dentro P stiamo assumendo che il linguaggio vuoto non ci sta, però P è una proprietà non banale, di conseguenza deve contenere qualcosa. Questo qualcosa che contiene deve essere un linguaggio L, ma siccome P è una proprietà dei linguaggi ricorsivamente numerabili, L deve essere ricorsivamente numerabile da cui esiste una macchina ML che riconosce L in particolare L è vuoto perché essendo che L appartiene a P e P non contiene un linguaggio vuoto, deve essere per forza diverso da vuoto. Ok? Chiaro? A questo punto noi possiamo dimostrare l'indecidibilità del linguaggio LP della proprietà tramite una riduzione da Lu. Ok? Allora, noi abbiamo LP è il linguaggio della proprietà che è semplice, l'insieme delle macchine di Touring M tale che il linguaggio di M appartiene alla proprietà P. Ok? Quello che facciamo ora è una riduzione da LU a LP. Ok? Che cos'è un'istanza per LU? Una coppia macchina stringa. Ma stringa. Ok. Che cos'è un'istanza per il P? È una macchina. Gli diamo un nome diverso per non confonderci. Ok. Quindi noi da MW tramite la funzione f vogliamo costruire una macchina n che è il trasformato secondo F di M. Ok? Alright. Allora, come abbiamo visto in altre riduzioni, quello che dobbiamo fare è partire dalla coppia MW e tirare fuori, inventarci sta macchina N, tale per cui N voi là non vedete, ok? Così vedete N deve essere una macchina che ha la deve essere una macchina in cui linguaggia la proprietà P se è solo se M eccet W. Ok? Questa è l'idea. Allora, la riduzione si può fare in questo modo. Abbiamo le nostre solite macchine giganti in questa N che è il trasformato di M e funziona così. Come prima cosa N simula M su w, cioè proprio lo esegue, ok? esegue m su w nel momento in cui m accetta l'accettazione da parte di m su w M questa è NFM dà il segnale di avvio a un altro pezzo di questa macchina che sta dentro che è ML, che è proprio quella ML che abbiamo menzionato prima. Eh, è esattamente questa qui, eh. ed ml viene eseguito sull'input della macchina, ok? Dopodiché restituisce la stessa cosa. Chiaro? Quindi, come funziona la macchina N? La macchina N come prima cosa esegue M su w. Semmai m su w arriva a fermarsi a dire sì, parte la computazione di ML, che è proprio quell ML che abbiamo detto prima, eh, non è un'altra, sull'input X della macchina N. Dopodiché la macchina n dà la stessa risposta di ml su X. Ok? Questo è il comportamento di questa macchina. Dobbiamo ora dimostrare che questa è effettivamente una riduzione da lu ad LP. Ok. Alright. Primo verso della riduzione. Supponiamo che MW appartiene ad Luu, da cui M accetta w. Ok. Allora, guardate questa macchina. Ok? Che cosa succede se M accetta w? Sì. Allora, guardate, questa è una cosa importante. Dentro la macchina N M M di Milano, dentro la macchina Napoli, la macchina Milano viene sempre eseguita su W. Quindi, se la riduzione ha trasformato una coppia MW in quella N particolare, quel pezzariello della macchina N accetta sempre perché W sta proprio infilata nella funzione di transizione di N. Ok? Di conseguenza noi avremo che indipendentemente dall'input x la macchina n sua prima fase arriverà sempre ad aver visto l'accettazione di m su w. A quel punto che fa? si esegue ML su X e fa la stessa cosa. Di conseguenza il linguaggio di N è il linguaggio di N è L. L. Sì, perché perché la parte iniziale della macchina fa sempre la stessa cosa perché m e w la funzione f li ha schiaffati dentro così come sono. Quindi non è che può succedere qualcosa di strano. Nella fase iniziale la macchina n simula m su w indipendentemente da x. Quindi, nel caso in cui M accetti w, il primo pezzo di esecuzione è determinato, fa sempre quello. A quel punto N si comporta come ML e quindi accetta, riconosce lo stesso linguaggio. Ok? Segue che il linguaggio di N è L. Ma L abbiamo supposto essere il linguaggio un linguaggio di P, quindi N appartiene a LP. Ok? Quindi se partiamo da un'istanza Sì MW di Lu, la macchina N sputata fuori dalla funzione di transizione F è una macchina il cui linguaggio appartiene alla proprietà P. Ok? Abbiamo trasformato unistanza s in un'istanza sì. Chiaro? Dobbiamo adesso vedere. Sì, prego. [Musica] Ma FDM FDM Ah, qua hai sbagliato. FM FDM. Sì, qui ho sbagliato. Eh, sì, perché prende tutto l'input. Ok, lì mi ero perso un pezzetto. Ok. Alright. Altro verso della dimostrazione. Supponiamo che MW non appartenga a Lu, da cui M non accetta W. Ok, riandiamo a guardare il nostro disegnino. Se M non accetta V, la seconda fase della computazione non parte mai e quindi la macchina si blocca prima dello start di ML e quindi non risponde mai di sì. Qual è il linguaggio di N in questo caso? Vuote. Vuoto. Quindi segue il linguaggio di N è il linguaggio vuoto. Ma il linguaggio vuoto lo stiamo assumendo dentro o fuori la proprietà? Nel caso A che stiamo ancora analizzando è fuori, poiché il linguaggio vuoto non appartiene a P. Allora, il linguaggio di n che è uguale al linguaggio vuoto, non appartiene a P nem meno, quindi Nartiene a LP. Ok? Questa cosa ci dimostra che cosa? ci dimostra che questa riduzione trasforma istanze sì di LU in istanze sì di LP e istanze no di lu istanze no di LP dal quale abbiamo che cosa? Abbiamo che il linguaggio LP è indecidibile perché Lu è indecidibile. Ok? Questo non ci conclude la dimostrazione perché noi a cosa abbiamo dimostrato finora? Abbiamo dimostrato che se P è una proprietà non banale che esclude il linguaggio vuoto, allora è indecidibile. Però quello che noi vogliamo mostrare è che se P è una qualsiasi proprietà non banale sia indecidibile, indipendentemente dal fatto se il linguaggio vuoto ci sta di dentro o meno. Quindi adesso dobbiamo considerare il caso B. Caso B abbiamo che il linguaggio vuoto appartiene alla proprietà P. Ok? Consideriamo eh sorry questa sì consideriamo il complemento di P definito come re - P. Ok? Quella quello slash là è il differenza fra insiemi, eh? Ok? Quindi abbiamo che il complemento di P è il complemento di P rispetto a R. Quindi prendiamo R, gli togliamo P. Ok? Se il linguaggio vuoto sta dentro P, il linguaggio vuoto può stare dentro il complemento di P? No. Quindi, prima cosa, il linguaggio vuoto non sta dentro il complemento di P. Ok? Se P se P è non banale per assunzione, cosa possiamo dire del complemento di P? Attenzione, che significa che P è non banale, che non è vuoto e non è una Ah, quindi il suo complemento è banale. È banale. Ah, è banale. Non banale, è banale. Eh, così si fa. Eh, fammi pensare il miglior modo per disegnarlo. Ok. No, vabbò così. Qua c'è re, questo è P. Pere banale è o niente o tutto il re. Se io prendo il suo complemento, che è questa cosa qua, siccome lui qua dentro non è schiacciato e non è tutto, vuol dire che qua fuori non possa essere né niente né tutto. Quindi il complemento di P è esso stesso non banale. Se P è non banale, allora il complemento di P è non banale. Quindi, che cos'è P? È il complemento di P. P segnato. P segnato è una proprietà non banale che contiene il linguaggio vuoto. Ci siamo? Questa proprietà è decidibile o indecidibile? L di P segnato è indecidibile perché per il caso di prima. Ripetiamo. P soprasegnato che cos'è? è una proprietà non banale che non contiene il il linguaggio vuoto. Quindi per il caso A, che è quello che abbiamo dimostrato prima, il linguaggio di P soprasegnato è indecidibile. Ok? Alri, adesso focalizziamoci su questo. Prendiamo il complemento di LP soprasegnato. Ok? Siccome stiamo considerando proprietà di linguaggi in re, ok? Tutti i linguaggi o stanno in piso prasegnato o stanno fuori piso prasegnato. E se stanno fuori piso frasegnato stanno in Pcho, sono tutte e due all'interno della classe re dei linguaggi. Di conseguenza questo linguaggio è LP. È chiaro? Adesso se LDP fosse decidibile lo sarebbe anche L di P soprasegnato. Soprasegnato perché sono lo stesso linguaggio. Se L di P soprasegnato soprassegnato fosse decidibile, cioè in R lo sarebbe anche chi? LP soprasegnato, anche LP soprasegnato, ma non lo può essere perché abbiamo prima visto che è indecidibile, ma ciò non è possibile da cui LP è indecidibile. È chiaro? Ok, quindi con questa dimostrazione, ho fatto tutto qua. Yes. Yes. Abbiamo quindi questo risultato molto generale, questo risultato sostanzialmente che il teorema di Rice ci dice che ogni qualvolta noi siamo di fronte a un linguaggio che si configura come il linguaggio di una proprietà non banale. Per questa ragione il linguaggio è indecidibile, cioè decidere proprietà non banali di linguaggi è una cosa che non possiamo mai fare, cioè solo le cose banali siamo in grado di rispondere, cioè solo le proprietà per cui diciamo sempre di sì o le proprietà per cui diciamo sempre di no. Solo su quelle siamo in grado di rispondere in maniera automatica. Per le altre per le altre proprietà, tutte le altre proprietà che siano non banali, noi abbiamo che è impossibile trovare algoritmi che decidano quelle proprietà, ok? non si può fare. E questa cosa noi la possiamo sfruttare per vedere varie indecidibilità di linguaggio. Un primissimo esempio è, per esempio, la coppia di linguaggi L e L l L n. Noi abbiamo fatto delle dimostrazioni tayor per mostrare che siano indecidibili. Abbiamo fatto delle riduzioni, ok, per dimostrare che siano indecidibili, ma in realtà l'indecidibilità di L e di lne discende anche in maniera abbastanza semplice a questo punto dal teorema di Rice. Ok? Per esempio, focalizziamoci su LE per vedere un po' di applicazioni del teorema di Rice. Poi ne vedremo nella restante parte della lezione, ne vedremo un po'. Allora, L che cos'è? È l'insieme di codici di macchine di touring tale che il linguaggio di M è il linguaggio vuoto. Ok? Allora, siccome L è un linguaggio che contiene codifiche di macchine di Touring, si configura come proprietà proprietà di macchine. Ok? Adesso, come potete vedere dalla definizione, questa è una proprietà di macchine, sì, ma è una proprietà che riguarda i linguaggi delle macchine, quindi è una proprietà semantica o una proprietà di linguaggi. Ok? Come facciamo? Per esempio, se volessimo dimostrare che L è una proprietà semantica di macchine, come si potrebbe fare? Consideriamo due macchine, m1 ed m2 tali che il linguaggio di m1 è uguale al linguaggio di m. Se m sta dentro le è perché il suo linguaggio è vuoto. Ma allora se m ha un linguaggio che è uguale a quello di m1, anche m2 deve stare dentro le da cui le è una propietà semantica. Ok? Quindi noi abbiamo che L è una proprietà semantica o di linguagge. Ok? Quello che ora ci chiediamo è L è una proprietà banale o non banale? Per essere una proprietà non banale non deve essere né vuota né essere l'intero re. Ok? Quindi le sarà una proprietà non banale. Le è non banale se L è diverso da vuoto e L è diverso da Re. Ok? Adesso L è banale o no? Yeah. Perché ci sono che riconoscono laud è non banale perché ci sono macchine che riconoscono solo il pad vuoto e altre macchine Sì. E non banale perché non è vuota, cioè contiene un linguaggio al suo interno che è il linguaggio vuoto. Ok? Cioè, è chiara per voi la differenza? Un conto che L sia vuota, un conto che L contienga il linguaggio vuoto, cioè L è vuota perché contiene qualcosa. Che cosa? Un linguaggio vuoto. Ok? Quindi L è questa cosa qua, ok? È una busta che contiene una busta vuota. La busta di fuori è non vuota, ok? Che contiene una busta che contiene niente, ok? Quindi L è non vuoto perché c'è il linguaggio vuoto al suo interno. È banale perché tutti i linguaggi diversi dal vuoto non stanno in L. Quindi L è non è tutto R. Da ciò noi ricaviamo che L è non banale, quindi L è una proprietà di linguaggi non banale da cui per il teorema di Rise L è indecidibile. Ok? È molto è molto più lineare in questo modo. Ok? e per ln lne è l'insieme delle macchine m tale che il linguaggio di m è diverso da linguaggio vuoto. Ok? Che possiamo dire di lne? Possiamo dire sicuramente, questo ve lo dico io, che è la parte facile che è una proprietà di macchine, ok? Perché è un linguaggio che contiene codifiche di macchine. Quindi ogni volta che un linguaggio contiene codifiche di macchine è una proprietà di macchine. Poi la questione è se la proprietà è semantica o non semantica. Ok? Il teorema di Rise è un teorema che si applica solo se la proprietà è di linguaggi, se la è una proprietà semantica. proprietà non semantiche di linguaggi, cioè quindi di di macchine. Il teorema di Rice non dice niente, ok? Il teorema di Ris ha come premessa che si deve applicare su proprietà semantiche. Se la proprietà non è semantica, ma riguarda una caratteristica della macchina, il teorema di R non dice niente. Quella proprietà può essere decidibile, può essere indecidibile. Uno si deve andare a guardare eh la definizione del del linguaggio stesso. Ad esempio, questo è un po' tricky. La proprietà che la macchina abbia cinque stati è una proprietà di macchine non semantiche decidibili, andiamo, le contiamo, eccetera. Il linguaggio che abbiamo visto ieri, halt per ogni, quello è un linguaggio di macchine, quindi è una proprietà di macchine. Il problema è, ok, se c'ho tempo ve lo mostro, che quella proprietà è non semantica perché quella proprietà dice la macchina si arresta su tutti gli input, ok? Però noi potremmo avere macchine che riconoscono lo stesso linguaggio perché una si arresta su tutto e dice di no. L'altra deliberatamente invece di dire no, inizia a luppare. Queste due macchine hanno lo stesso linguaggio, però una sta in halt per ogni e l'altra no. Quindi halt per ogni non è una proprietà semantica. Ok? Se abbiamo tempo ve la rispiego sta cosa, però per dirvi quella proprietà là mi arresto su tutte le su tutte le stringhe. Quella è una proprietà di macchine è una proprietà non semantica. È una proprietà indecidibile, ma non discende dal teorema di Ris indecidibilità, perché il teorema di Ris implica l'indecidibilità solamente di proprietà semantiche. Ok? sulle proprietà non semantiche ci dobbiamo andare a guardare il linguaggio e cercare di capire che succede. Ok? Alri. Qui avevo un po' di esempi. Ok. Avevamo vi avevo tra gli appunti che avevo messo prima, partiamo da P2. Mh. Dove sta? Dove sta P2? Questo l'avevamo scritto all'inizio, eh. La proprietà P2, l'insieme delle macchine M tali che il linguaggio di M contiene solo stringhe di lunghezza pari. Ok? Adesso noi vogliamo capire se questo linguaggio se questa proprietà P2 il linguaggio relativo alla proprietà P2 sia decidibile o meno. Ok? Allora, prima domanda. Questo linguaggio è una proprietà di macchine? Sì, perché perché è un linguaggio che contiene codifiche di macchine, ok? E quindi è una proprietà di macchine. Questo proprietà è una proprietà di linguaggi, una proprietà o equivalentemente una proprietà semantica di macchine. Sì, perché è relativa solamente al linguaggio che la macchina riconosce. Ok? Bene, questa quindi abbiamo che questa P2 è una proprietà di linguaggi o equivalentemente una proprietà semantica di macchine. Questa proprietà è banale o non banale? Non banale, perché chi ci sta dentro P2? [Musica] L'insieme vuoto ci sta. L'insieme vuoto ci sta. Poi xy sì, tipo 00 sta là dentro. Ok. E così via. Ce ne stanno tante qua, eh. Questa proprietà è infinita, cioè c'ha infiniti linguaggi, ok? Quindi questa proprietà è sicuramente non vuota. Questa proprietà contiene tutto il re? No, no, perché i linguaggi costring dispari non stanno dentro du. Quindi i linguaggi con stringhe dispari non stanno [Musica] dentro P2. Di conseguenza, P2 è una proprietà di linguaggi non banale. Per questa ragione, per il teorema di Rice, decidere P2 è indecidibile, ok? direttamente, possiamo dire, senza stare là a fare altre dimostrazioni. Nel momento in cui noi riconosciamo che un linguaggio è una proprietà semantica non banale, per il teorema di Rice, quella proprietà è indecidibile. Ok? Eh, + 1, come l'avevo definito? E qua c'ho esatto due cose diverse, no? Ok. La proprietà P1 invece, come dicevamo, è una proprietà di macchina non semantica. Eh, perché non semantica? Ok, perché non semantica la proprietà +1? Un attimo che la scriviamo qua, così lo vediamo formalmente. Quindi P1 è una proprietà di macchine che non semantica perché ok dalla descrizione vediamo che non è non è non fa riferimento al linguaggio di quella macchina, quindi dice ah è intuitivo. Ma se noi volessimo dimostrarle che non semantica, dovremmo trovare due macchine che conoscono lo stesso linguaggio, però il fatto che la prima partita uno non impulsa, che è la seconda partita. Sì, quindi dovremmo per dimostrare che è non semantico, è una proprietà non semantica. Dobbiamo trovare un controesempio, cioè due macchine che abbiano lo stesso linguaggio, una macchina appartiene a +1 e l'altra macchina appartiene non appartiene a +1. Come facciamo? Prendiamo una macchina con cinque stati che riconosca un certo linguaggio e la chiamiamo m1. Ok? Da m generiamo una macchina m2 in cui aggiungiamo un sesto stato che non fa niente, è uno stato irraggiungibile, non è attaccato a nulla. Quindi quella che cos'è? È una macchina m2 che ha lo stesso linguaggio di m1, ma il suo numero di stati è differente. Avremo che m1 appartiene a +1 ed m2 non appartiene a a +1. Di conseguenza la proprietà è non semantica, cioè è relativa a com'è fatta la macchina più che al linguaggio che che le macchine riconoscono. Ok? Alright. Ok. Vediamo alcuni esempi di applicazione. Come siamo messi? Esempi di applicazione. Primo, data una macchina M. Decidere se L è finito. Ok? Per finito il linguaggio è finito. Se ha un numero finito di stringa, eh? Ok. Quindi data M, chiamiamola quindi L, ad esempio, è l'insieme di macchine M, tale per cui il linguaggio di M è finito. Ok? LDA è una proprietà di macchine o no? Sì, perché le sue stringhe sono codifinghe di macchine. Ok? è una proprietà semantica o no? Semantica. È una proprietà semantica, quindi una proprietà che è relativa al linguaggio. Ok? Questa proprietà è banale o non banale? Non banale o banale? Per essere banale deve o non averci niente di dentro o deve avere di dentro tutti i linguaggi. Ok? Per avere per quindi per provare che sia non banale dobbiamo trovare un linguaggio che sta dentro e un linguaggio che sta fuori. Ok? In questo modo siamo sicuri che qualcosa ci sta e quindi è non vuota e che qualcosa non ci sta e quindi non è tutto il re. Qual è un linguaggio che sta dentro la il linguaggio vuoto o il linguaggio che contiene una stringa sola? Ok? Qualsiasi linguaggio con un numero finito di stringhe sta dentro la proprietà eh di la. Ok? E un linguaggio che sta fuori L? Il linguaggio di tutte le stringhe. Il linguaggio di tutte le stringhe, ad esempio. Ok? cioè qualsiasi cosa che ha un numero infinito di stringe. Per esempio a elev n con n > 0. Ok? Quello è un linguaggio infinito. Quindi l a proprietà semantica o equivalentemente una proprietà di linguaggi non banale. Per il teorema di Ris è indecisibile. Ok? B data una macchina M. decidere se LM è infinito. Ok? Questo è speculare. Quindi è vero che LB è una proprietà di macchine? Sì. Sì. È una proprietà semantica o una proprietà di struttura? Com'è? chiamiamo la proprietà semantica o non semantica? Semantica. È una proprietà semantica perché è una proprietà che riguarda il linguaggio riconosciuto dalla macchina. Ok? È banale o non banale? Non banale. banale perché è lo speculare di quella di prima, quindi qualcosa starà dentro, qualcosa starà fuori. Quindi LDB, poiché è una proprietà di linguaggi non banale, per il teorema di Rise è indecidibile. Ok? C. Ok. C data una macchina data una macchina M. e decidere se il linguaggio di M, LDM, è un linguaggio [Musica] accettato [Musica] solo da macchine con cinque stati. Ok, questo è è una variazione di di quello che abbiamo visto prima. Attenzione qua. Quindi abbiamo LDC è il linguaggio delle macchine touring tale che il LDM è riconosciuto da macchine solamente da macchine con cinque stati. Ok. Alri, questa qui è una proprietà di macchine o non è una proprietà di macchine? È una proprietà di macchine. Ci focalizziamo ora su un altro elemento prima. Questa qui è una proprietà banale o non banale? È banale. Perché è banale? Per quello che vi ho detto prima, se una macchina cinque state cingo si fa cercare anche con se uno stato m m E quindi chi sono i linguaggi riconosciuti solamente da macchine con cinque stati? nessuno. Quindi NDC è una proprietà banale. Ripeto, ogni linguaggio può essere riconosciuto da macchine di Turing con un numero qualsivoglia di stati, perché nel momento in cui abbiamo una macchina che riconosca un linguaggio, noi la possiamo inflazionare di stati inutili e quindi lo stesso linguaggio viene riconosciuto da macchine di touring con un altro numero di stati. Di conseguenza, i linguaggi che vengono riconosciuti da che vengono riconosciuti solamente da macchine di touring con cinque stati non ci stanno perché nessun linguaggio che sia riconosciuto dalla macchina di Touring cinque stati non può essere riconosciuto dalla macchina di Touring con 15. Quindi LDC in realtà è vuota, non c'ha niente lì dentro, ok? Quindi è una proprietà banale e per questa ragione è decidibile. Ok? Alright. Eh, questo li abbiamo visti. 5 Ah, qua c'avevo l'esentino, però non so se ce la facciamo a vederlo. Ok, vediamo. Ce la dovremmo fare, insomma. Allora, supponiamo di avere questo linguaggio L W cancelletto A tali che W appartiene a 0 1+ a = w oppure A è UG = Aw reverse. Ok? Qua. Boh, non vi chiederò altri perché no. Allora, proprietà uno e l'insieme di macchine di Touring M. No, vai, dai che ce la facciamo. Per infrensarci un po' la memoria, scriviamo una macchina di Turing che fa questo, ok? Che riconosca questo linguaggio. Alright. Allora, come ce la organizziamo? Ricop su un secondo nastro. Noi non stiamo vedendo queste macchine ormai da qualche lezione, però ci saranno alla fine, eh, quindi riprendetele, inventatevi esercizi, risolvete cose strane, eh, così vi vi preparate un po'. Ok. Allora, che abbiamo? Eh, ah facciamo due nastri sulla quale sul primo c'abbiamo l'input, sul secondo io mi ci ricopio w B in maniera tale poi da verificare che A sia o uguale a W o a W reverse. Ok? Si può fare sia deterministica che non deterministica. La facciamo non deterministica per semplificità, non è che la semplificherebbe più di tanto. Ok? Allora, che abbiamo Q0 qua, quindi iniziamo a ricopiare W sul secondo nastro. Sul primo c'è alfa, lascio alfa e vado avanti. Sul secondo c'è blank, scrivo alfa e vado avanti. Lo faccio per tutti. Sul primo c'è alfa, alfa e vado avanti. Sul secondo c'è blank, scrivo alfa. Vado avanti fino a quando sul primo c'è cancelletto, lascio cancelletto e vado avanti. Sul secondo c'è blank, lascio blank e torno dietro. V2. A quel punto noi non deterministicamente decidiamo se A è W o W reversa. Ok? Questo ramo si occupa del caso che A si addoppia a V reverse, quindi è Q3. E abbiamo sul primo nastro c'è alfa, lascio alfa e vado avanti. Sul secondo nastro c'è alfa, lascio alfa e torno dietro. Lo facciamo per tutti. Sul primo nastro c'è alfa, lascio alfa e vado avanti. Sul secondo nastro c'è alfa, lascio alfa e torno dietro. Fino a quando sul primo c'è blank, lascio blank e sto fermo. Sul secondo c'è blank, lascio blank e sto fermo e accettiamo U4 dall'altro lato e se invece a è uguale proprio a W. Quindi andiamo qua. Sul secondo nastro c'è Black, cioè no, non c'è Blank, c'è alfa. C'è alfa la alfa e torno dietro riavvgo tutto quei cinque sul secondo as alfa lascio alfa e torno dietro fino a quando e va avanti. Sul primo c'è alfa, la scalfa e va davanti. Sul secondo c'è Alfa, lascio Alfa e vado avanti. Quando accettiamo e sul primo c'è Blank, lascio blank, sto fermo. Sul secondo c'è Blank, lascio Blank e sto fermo. Ok, quindi questa è una macchina, ok, ci mancava un pezzino qua. Questa è una macchina che riconosce quel linguaggio là. Ok. Alright. Proprietà 1, questa qua l'insieme delle macchine tali che il linguaggio DM è uguale al linguaggio L, che è questo L che abbiamo scritto qua. Eh, è proprio lui. Allora, questo qui è il problema di decidere se una macchina ha come linguaggio un linguaggio fissato. Questo problema è decidibile o indecidibile? Voci nuove, voci nuove. Un attimo qualche volto nuovo, qualche nuovo talento. Su, voi vedete? Eh, questa è una L. Eh, allora, decidere se il linguaggio di una certa macchina è un linguaggio dato è un problema decidibile o indecidibile? Guys, lì sopra che non vi ho sentito per nulla oggi. Eh, prego. È indecidibile. è indecidibile perché è indecidibile è una prospetà di macchine, una prosetà sistematica e non è banale perché ci sono cioè l dentro, cioè R dentro e gli altri non stanno for. Ok, avete sentito? Quindi il problema di data una macchina, ok? Stabilire se il linguaggio di questa macchina è un certo linguaggio L è un problema indecidibile perché perché equivale a decidere una proprietà di linguaggio non banale. Qual è questa proprietà? È la proprietà di essere uguale al linguaggio L. Allora, P1, questo linguaggio è un linguaggio di macchine, quindi è una proprietà di macchine, è una proprietà semantica perché riguarda i linguaggi delle macchine, è una proprietà non banale perché dentro di sé c'ha L e fuori di sé c'ha le cose diverse da L, quindi questa proprietà non è né vuota né tutto il re. Quindi per il teorema di Rice questa proprietà è indecidibile. Ok? Quindi, ad esempio, questo ci dice varie cose, no? Il problema di date due macchine m1 ed m2. No, quella è un'altra cosa. Ok. Eh, altro esempio. P2 M l'insieme delle macchine M tale che il linguaggio di M è L ogni stringa di L M la accetta. in al più 100 passi. Ok. Ok. Questa qui è una proprietà di macchine o non è una proprietà di macchine? È una proprietà di macchine perché contiene codici di macchinatori. Questa qui è una proprietà banale o non banale? Vi ricordo che la distinzione noi abbiamo proprietà di macchine e proprietà di linguaggi. Una proprietà di macchine è banale se o contiene tutte le macchine o non contiene nessuna macchina. Una proprietà di linguaggi è banale se o non contiene nessun linguaggio o contiene tutti i linguaggi, ok? Sono similari. Quindi la proprietà P2 è una proprietà di macchine. Questa questa proprietà è banale o non banale? È banale perché abbiamo detto che la proprietà per una è indecidibile. Di conseguenza io sto chiedendo che m accetti in altri 100 passi che non so. Eh, ma questo è Ok, questo è non lo sappiamo. Una un conto è se una cosa non lo sappiamo, un'altra cosa è se è vero o meno. Nel senso è vero o no che l'espansione di pi greco decimale a un certo punto c'ha 100 zeri di fila. Noi non lo sappiamo, però di principio questa cosa è o vera o falsa. Ok? Quindi è un'altra cosa, cioè un'altra cosa. P2 è una proprietà di macchine banale o non banale? Moralmente sarebbe da dire banale in quanto, cioè è coloni che ci frega, cioè ogni stringa di L perché ogni stringa di L ècta con 100 passi, quindi abbiamo una ceramica strica che viene accettata un numero pico di passi, però sarà un numero fisso e noi possiamo permetterci guardando semplicemente per ciò che è andato suo Sì. Sì. Eh, soprattutto sono dei loop che sono della stringa possiamo ottenere doc una stringa che vada oltre c passi indipendentemente la traccia anche se modifichiamo possiamo costruire possiamo andare oltre. Quindi il per ogni ah una cioè ci multifica tutto quanto. E quindi P2 è vuoto. P2 è vuota. Recap, P2 non contiene nessuna macchina perché non c'è nessuna macchina che ci dia garanzia di di riconoscere L in 100 passi, perché sulle stringhe lunghe che W è lunga 200, quella macchina non ha meno nemmeno il tempo di leggerla W, ok? Quindi non sarà in grado di riconoscere L. Quella proprietà è vuota, è una proprietà banale, quindi è decidibile perché rispondiamo sempre di no. Ok? Eh, alright. P3, l'insieme delle macchine di Touring M tali che M non accetta. Non accetta che cosa? L intersecato cancelletto all 100. Ok? Che significa questo? Che in P3 ci stanno quelle macchine di touring che non accettano questo linguaggio. Qual è questo linguaggio? È il linguaggio delle stringhe che stanno in L e sono lunghe. 100 caratteri. Ok, ripetiamo. P3 è l'insieme delle macchine e l'insieme delle macchine che non accettano quel linguaggio particolare lì. Ok? Allora, quello che vogliamo capire è se questo linguaggio sia decidibile o meno. Allora, P3 è una proprietà di macchine o no? Sì, è una proprietà di macchine. Ok. Poi ci chiediamo P3 è banale o non banale? è non banale perché perché ci sono macchine che accettano e esattamente. Quindi qualche macchina sta in P3, qualche macchina non sta in P3. Quindi P3 è una proprietà di macchine ed è una proprietà non banale. Ok? Quello che dobbiamo capire ora per poter applicare il teorema di Rice è se questa proprietà P3 sia semantica o meno. La proprietà P3 è semantica o no? Sì. di sì perché scritta M non accettacato. Può essere scritto come lm diverso da secato. E a questo punto transverso. Vabbè, sono hanno lo stesso L. Hanno lo stesso L diversi. Sì, sì. Questa è una proprietà semantica perché è una proprietà che riguarda i linguaggi. Se volessimo essere un pelino più formali, noi avremmo siano m1 ed m2 due macchine, ok? Che abbiano lo stesso linguaggio. Supponiamo che m1 appartiene alla alla proprietà P3. Se m1 appartiene alla proprietà P3, allora il linguaggio di m1 deve essere diverso da questa. Ma m che l'abbiamo presa apposta avere lo stesso linguaggio di m1, ok? Avrà anch'essa un linguaggio diverso da lui, quindi nemmeno M2 sta in P3. Quindi questa è una proprietà di macchi, una proprietà non banale, una proprietà semantica e quindi è decidibile o indecidibile? è indecidibile per il teorema di Rice. Ok? E va bene. Con questo chiudiamo per oggi. Grazie mille. Dalla settimana prossima cambiamo argomenti, iniziamo complessità. Ok? Di nuovo, per complessità ci servono le riduzioni, quindi se il concetto di riduzione ancora non vi è chiaro, andate a riguardar, cercate di appropriarvene perché ne vedremo a non finire di riduzione. Ok, babbo giornata, buon weekend.