1. Linguaggi Regolari (Automi)

  • Correttezza della Funzione di Transizione Estesa (): Dimostrazione per induzione sulla lunghezza della stringa che conferma che l’ultimo passo della computazione preserva il significato semantico.
  • Equivalenza NFA DFA: Dimostrazione che tramite la “Subset Construction” (costruzione dei sottoinsiemi). Si definisce ogni stato del DFA come un insieme di stati dell’NFA (), gestendo le -transizioni.
  • Conversione GNFA Regex: Algoritmo di conversione da Automa a Stati Finiti Generalizzato a Espressione Regolare. La dimostrazione procede per induzione sul numero di stati , rimuovendo uno stato alla volta e aggiornando le etichette (regex) sugli archi rimanenti.
  • Pumping Lemma per Linguaggi Regolari: Dimostrazione basata sul Pigeonhole Principle (Principio dei Cassetti). Se un DFA ha stati e legge una stringa con , deve visitare stati, visitando necessariamente uno stato due volte (), permettendo di ciclare la sottostringa .

2. Linguaggi Context-Free (CFL)

  • Equivalenza CFG PDA: Costruzione di un PDA che simula le derivazioni di una Grammatica Context-Free (CFG) utilizzando la pila per le variabili e l’input per i terminali.
  • Equivalenza PDA CFG: Dimostrazione complessa per induzione sul numero di passi. Si costruiscono variabili grammaticali che generano tutte le stringhe che portano il PDA dallo stato allo stato con pila vuota. Si distinguono due casi induttivi: la pila non si svuota mai internamente oppure si svuota in un punto intermedio.
  • Pumping Lemma per CFL: Dimostrazione basata sugli alberi di derivazione (parse trees) di una grammatica in Forma Normale di Chomsky. Se l’albero è sufficientemente alto (), esiste un cammino con una variabile ripetuta, permettendo la scomposizione della stringa in .

3. Calcolabilità e Indecidibilità

  • Non numerabilità dei Linguaggi: Dimostrazione che l’insieme delle Macchine di Turing è numerabile, mentre l’insieme di tutti i linguaggi su un alfabeto (insieme delle parti di ) non lo è (uso della diagonalizzazione e delle sequenze caratteristiche).
  • Indecidibilità di (Problema dell’Accettazione): Dimostrazione per assurdo tramite diagonalizzazione. Si ipotizza un decisore e si costruisce una macchina che, data , esegue l’opposto di . L’esecuzione porta a una contraddizione.
  • Teorema : Dimostrazione che un linguaggio è decidibile se e solo se lui e il suo complemento sono riconoscibili. La prova costruttiva esegue due TM in parallelo.
  • Indecidibilità di : Riduzione da . Se potessimo decidere se una macchina termina, potremmo decidere se accetta.
  • Teoremi di Incompletezza di Gödel:
    • 1° Teorema: In un sistema di prova sufficientemente potente, esiste una proposizione vera ma non dimostrabile. La dimostrazione costruisce una frase autoreferenziale (“Non sono dimostrabile”).
    • 2° Teorema: Se un sistema è consistente, non può dimostrare la propria consistenza ().

4. Complessità Computazionale

  • 2SAT : Dimostrazione che la soddisfacibilità di formule con 2 letterali per clausola è risolvibile in tempo polinomiale, riducendo il problema alla ricerca di componenti fortemente connesse in un grafo di implicazioni (insoddisfacibile sse e ).
  • Equivalenza Definizione NP: Dimostrazione che la definizione di NP tramite Verificatore Polinomiale è equivalente a quella tramite Macchina di Turing Non Deterministica (NTM) polinomiale.
  • Teorema di Cook-Levin (SAT è NP-Completo): Dimostrazione che ogni linguaggio in NP è riducibile a SAT (). Si costruisce una formula booleana che descrive un “Tableau” valido di computazione di una NTM (configurazioni legali, transizioni, stato iniziale/finale).
  • Teorema di Savitch (): Dimostrazione che . Si usa un algoritmo ricorsivo (tipo “divide et impera”) per verificare la raggiungibilità tra due configurazioni cercando un punto intermedio, riutilizzando lo spazio.
  • Gerarchie di Tempo e Spazio (Hierarchy Theorems):
    • Time Hierarchy Theorem: Dimostrazione tramite diagonalizzazione che, dato più tempo (), si possono decidere più linguaggi.
    • Space Hierarchy Theorem: Analogo per lo spazio. Si costruisce una macchina che simula tutte le altre entro un limite di spazio e ne inverte l’output.

PARTE 2: LISTA ARGOMENTI DI TEORIA

Automi e Linguaggi Regolari

  • DFA (Automa a Stati Finiti Deterministico): Definizione formale .
  • NFA (Non Deterministico): Differenze con DFA, -transizioni.
  • Regex (Espressioni Regolari): Sintassi e semantica.
  • Proprietà di Chiusura: Unione, Concatenazione, Star (*), Intersezione, Complemento.
  • Dimostrare la Non-Regolarità: Uso del Pumping Lemma e proprietà di chiusura (es. intersecare con una regex per ottenere un linguaggio noto non regolare come ).

Linguaggi Context-Free (CFL)

  • CFG (Grammatiche): Variabili, Terminali, Regole di produzione, Derivazioni ().
  • Forma Normale di Chomsky (CNF): Struttura delle regole ( o ). Algoritmo di semplificazione (rimozione -produzioni, regole unitarie).
  • PDA (Automi a Pila): Definizione, utilizzo dello stack, accettazione per stato finale vs pila vuota.
  • Relazioni: Grammatiche lineari (destre/sinistre) e loro equivalenza con gli Automi Finiti.

Calcolabilità (Macchine di Turing)

  • Macchina di Turing (TM): Definizione, configurazione, nastro infinito, testina.
  • Varianti della TM: Multinastro, Non Deterministica (NTM). Equivalenza tra le varianti.
  • Riconoscibilità vs Decidibilità: Differenza tra fermarsi sempre (decisore) e fermarsi solo se accetta (riconoscitore).
  • Problemi Decidibili: .
  • Problemi Indecidibili: .
  • Mapping Reductions (): Definizione e utilizzo per dimostrare indecidibilità (se è indecidibile e , allora è indecidibile).

Complessità Computazionale

  • Classi di Tempo:
    • P: Tempo polinomiale deterministico ().
    • EXP: Tempo esponenziale ().
    • NP: Tempo polinomiale non deterministico / Verificabile in tempo polinomiale.
  • NP-Completezza:
    • Definizione di NP-Hard vs NP-Complete.
    • Riduzioni polinomiali ().
    • Esempi di riduzioni: .
    • Relazione tra classi: .
  • CoNP: Definizione (complemento di NP) e problema .
  • Classi di Spazio:
    • vs .
    • PSPACE: Spazio polinomiale. Equivalenza (Savitch).
    • L (Log-Space) e NL (Nondeterministic Log-Space): Definizioni, riduzioni logaritmiche ().
    • PATH: Problema NL-Completo (raggiungibilità nei grafi diretti).
  • Relazioni Spazio-Tempo:
    • .
    • .