Teorema di McNaughton - Server users.dimi.uniud.it
Transcript
Teorema di McNaughton - Server users.dimi.uniud.it
Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Università degli Studi di Udine Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Corso di Verifica Automatica dei Sistemi: Teoria e Applicazioni Esempio Dimostrazione di correttezza Teorema di McNaughton e algoritmo di Safra Angelo Montanari (ed Elena Topan) Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Riferimento bibliografico: Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Dominique Perrin and Jean-Eric Pin. Infinite words : automata, semigroups, logic and games (Chapter 1). Pure and Applied Mathematics Series. Elsevier, 2004. Teorema di McNaughton Introduzione Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Data l’equivalenza tra automi di Rabin e automi di Muller (deterministici), il teorema di McNaughton ammette due formulazioni alternative: equivalenza tra automi di Büchi (non deterministici) e automi di Muller (deterministici), la cui dimostrazione è fornita nelle note al corso, ed equivalenza tra automi di Büchi (non deterministici) e automi di Rabin (deterministici). Rabin ≡ Muller ≡ B üchi ↑ McNaughton (versione 1) In questa lezione dimostreremo l’equivalenza tra automi di Büchi e automi di Rabin. B üchi ≡ Rabin ↑ McNaughton (versione 2) Teorema di McNaughton Definizioni di Base Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione • Automa di Büchi è una quintupla A = (Q, A, ∆, I , F ) dove: • • • • • Q è un insieme di stati A è un alfabeto ∆ ⊆ Q × A × Q è la relazione di transizione I ⊆ Q è l’insieme degli stati iniziali F ⊆ Q è l’insieme degli stati finali Esempio Dimostrazione di correttezza Una computazione σ si dice di successo se (e solo se): In (σ) ∩ F 6= ∅ Nel seguito indicheremo con ∆(P, a), con P ⊆ Q e a ∈ A, l’insieme degli stati raggiungibili via a a partire dagli stati in P. Teorema di McNaughton Definizioni di Base Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza • Automa di Rabin è una quintupla D = (Q, A, δ, i, Ω) dove Q e A sono definiti come negli automi di Büchi, δ è la funzione di transizione, i lo stato iniziale e Ω = {(L1 , U1 ) , . . . , (Ln , Un )} con Li , Ui ⊆ Q ∀i = 1, . . . n. Una computazione σ si dice di successo se esiste j tale che: • In (σ) ∩ Lj = ∅ • In (σ) ∩ Uj 6= ∅ Teorema di McNaughton Angelo Montanari Teorema di McNaughton Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Teorema (McNaughton) Un ω-linguaggio L ⊆ Aω è riconosciuto da un automa di Büchi se e soltanto se è riconosciuto da un automa di Rabin. La direzione da destra a sinistra è (quasi) immediata, sfruttando l’equivalenza di automi di Büchi e S1S. Esempio Dimostrazione di correttezza Per dimostrare la direzione da sinistra a destra, si utilizza l’algoritmo di Safra: un algoritmo che, a partire da un automa di Büchi (non deterministico), costruisce un automa di Rabin (deterministico) equivalente. Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza L’algoritmo di determinizzazione classico non funziona - 1 L’algoritmo di determinizzazione per gli automi a stati finiti su parole finite non funziona con le parole infinite. Ciò segue immediatemente dall’inclusione stretta degli automi di Büchi deterministici negli automi di Büchi nondeterministici. È, però, utile capire dove la costruzione viene meno. Sia α ∈ Aω una ω-parola riconosciuta dall’automa di Büchi A. Dalla condizione di accettazione degli automi di Büchi segue l’esistenza di uno stato f ∈ F , raggiungibile da uno stato i ∈ I , tale che i −→α0 f −→α1 f −→α2 f · · · dove α = α0 · α1 · α2 · · · Ora sia B l’automa (deterministico) di Büchi (P(Q), A, δ, {I }, F), dove δ(S, a) = ∆(S, a)(∈ P(Q)), con S ⊆ Q, a ∈ A e F = {P : P ∩ F 6= ∅}. Teorema di McNaughton Angelo Montanari L’algoritmo di determinizzazione classico non funziona - 2 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza La computazione dell’automa di Büchi (deterministico) B su α può essere espressa nel modo seguente: I −→α0 S0 −→α1 S1 −→α2 S2 · · · dove f ∈ Si per ogni i ≥ 0. Ciò non è, però, sufficiente, in generale, per garantire che la computazione sia di successo perché, per ogni i ≥ 1, non vi è alcuna garanzia che lo stato f presente in Si sia raggiungibile dallo stato f presente in Si−1 . Esempio. Si consideri il caso dell’automa di Büchi non deterministico che riconosce il linguaggio L = {α ∈ Aω . ∃<ω n α(n) = a}, con A = {a, b}. Teorema di McNaughton Una possibile via d’uscita - 1 Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Per rimuovere il problema evidenziato, è necessario identificare una sequenza Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione I −→α0 S0 −→α1 S1 −→α2 S2 · · · che soddisfi le seguenti due condizioni: Esempio 1 S0 ⊆ δ(I , α0 ) e, per ogni n ≥ 0, Sn+1 ⊆ δ(Sn , αn+1 ) Dimostrazione di correttezza 2 per ogni n ≥ 0 e ogni q ∈ Sn+1 , esistono uno stato p ∈ Sn e un cammino p −→αn+1 q in A che attraversa uno stato finale. Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Una possibile via d’uscita - 2 Per trovare tale cammino, costruiremo un automa (di Rabin) che memorizza le occorrenze degli stati finali. Gli stati dell’automa sono alberi orientati, i cui nodi vengono etichettati con gli insiemi Si . Si applica l’usuale algoritmo di determinizzazione con l’avvertenza di aggiungere i nuovi stati finali incontrati come etichetta di un nuovo figlio del nodo considerato. Dimostrazione di correttezza Quando tutti gli stati nell’etichetta Si di un nodo hanno già visitato uno stato finale (ossia quando tutti appaiono nei figli del nodo), il nodo viene marcato e tutti i suoi discendenti vengono rimossi. Teorema di McNaughton Algoritmo di Safra Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Descriviamo formalmente l’algoritmo. Sia A un generico automa di Büchi: A = (Q, A, ∆, I , F ) dove |Q| = n. Esempio Dimostrazione di correttezza Costruiamo un automa di Rabin deterministico equivalente D = (S, A, δ, i, Ω) Teorema di McNaughton Stati -1 Angelo Montanari Introduzione Definizioni di Base Gli stati dell’automa di Rabin sono alberi ordinati etichettati, con alcuni nodi marcati. Teorema di McNaughton Sia V = {1, 2, . . . , 2n}. Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Uno stato è una quadrupla (T , f , e, M) dove: • T ⊆ V è l’insieme dei nodi • f : T → T ∗ è una funzione che mappa ogni nodo nella sequenza ordinata dei suoi figli • e : T → 2Q \ ∅ è una funzione che associa un’etichetta (un sottoinsieme non vuoto di Q) ad ogni nodo • M ⊆ T è l’insieme dei nodi marcati Teorema di McNaughton Stati - 2 Angelo Montanari Introduzione Ogni albero deve soddisfare le seguenti condizioni: Definizioni di Base Teorema di McNaughton 1 la radice dell’albero è 1 Algoritmo di Safra 2 i nodi marcati devono essere foglie dell’albero 3 per ogni nodo v , l’unione delle etichette dei figli è un sottoinsieme stretto dell’etichetta di v (e (v )) 4 se il nodo v non è un antenato del nodo w e il nodo w non è un antenato del nodo v , allora e (v ) ∩ e (w ) = ∅ Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Indichiamo con Tn l’insieme di tutti gli alberi definiti in questo modo. Esso costituirà l’insieme S degli stati dell’automa di Rabin D. Teorema di McNaughton Angelo Montanari Stati - 3 Proposizione Introduzione Definizioni di Base Teorema di McNaughton Un albero (T , f , e, M) ∈ Tn ha al più n nodi. Sia: Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione e (w ) w figlio di v Per la condizione 3, tale insieme non può essere vuoto. Ne segue immediatamente che: X X |r (v ) | 1≤ |T | = v ∈T Esempio Dimostrazione di correttezza [ r (v ) = e (v ) \ v ∈T Inoltre, se v1 e v2 sono due nodi distinti, allora r (v1 ) ∩ r (v2 ) = ∅ (ciò segue direttamente dalla condizione 4, se i due nodi non sono uno l’antenato dell’altro; altrimenti, segue dalla definizione di r ). Possiamo, quindi, concludere che gli insiemi r (v ) sono a due a due distinti, da cui: X X |T | = 1≤ |r (v ) | ≤ |Q| = n v ∈T v ∈T Teorema di McNaughton Angelo Montanari Stati - 4 Definizione (Ordine esteso dei nodi in Tn ) Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Siano v1 e v2 due nodi che non sono uno un antenato dell’altro e sia v il loro minimo antenato comune. Inoltre, siano v10 e v20 i figli di v antenati rispettivamente di v1 e v2 . Diciamo che v1 è a sinistra di v2 se v10 < v20 (i figli di ogni nodo sono ordinati). Stati Funzione di Transizione Stato iniziale Condizione di Accettazione ··· v Esempio Dimostrazione di correttezza ··· v10 v20 ··· ··· ··· ··· ··· ··· v1 v2 Teorema di McNaughton Funzione di Transizione - 1 Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Sia R = (T , f , e, M) uno stato (albero) in Tn e sia a un elemento dell’alfabeto A. Lo stato δ (R, a) viene calcolato nel seguente modo: 1 si esegue la transizione dell’automa di Büchi su a per tutti gli elementi dell’etichetta di ogni nodo e si cancellano gli eventuali marcatori presenti, ottenendo l’albero (T , f , e1 , M1 ), con M1 = ∅ e e1 (v ) = ∆(e(v ), a) 2 si aggiunge ad ogni nodo v un nuovo figlio, a destra dell’ultimo figlio, con etichetta e1 (v ) ∩ F e si marca tale nodo. Tale nodo è scelto in modo arbitrario fra i nodi disponibili (assumiamo di scegliere il nodo più piccolo fra i nodi disponibili). Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Teorema di McNaughton Funzione di Transizione - 2 Angelo Montanari 2 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza 3 (continua) Formalmente, si sceglie una funzione iniettiva da T in V \ T che associa a ogni nodo v un nodo v (dato che T ha al più n elementi, ciò è sempre possibile). Sia T = {v : v ∈ T } e sia (T2 , f2 , e2 , M2 ) l’albero cosı̀ definito: T2 = T ∪ T M2 = T per ogni v ∈ T , f2 (v ) = f (v )v , f2 (v ) = , e2 (v ) = e1 (v ) e e2 (v ) = e1 (v ) ∩ F nell’etichetta di ogni nodo v vengono eliminati gli stati che appaiono nelle etichette dei nodi a sinistra di v . Formalmente, si definisce una funzione e3 tale che, per ogni nodo v ∈ T2 , [ e3 (v ) = e2 (v ) \ e2 (w ) w a sinistra di v Teorema di McNaughton Funzione di Transizione - 3 Angelo Montanari Introduzione 4 si eliminano i nodi con etichetta vuota, aggiornando coerentemente la funzione f e la marcatura. Formalmente, si genera un albero (T4 , f4 , e4 , M4 ), dove T4 = {v ∈ T2 : e3 (v ) 6= ∅}, M4 = M2 ∩ T4 , e4 (v ) è la restrizione di e3 (v ) a T4 e, per ogni nodo v ∈ T4 , f4 (v ) è ottenuta eliminando gli elementi di T2 \ T4 5 si marcano i nodi che hanno come etichetta l’unione delle etichette dei loro figli, ovvero i nodi v ∈ T4 tali che [ e(v ) = e(w ) Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza w figlio di v e si eliminano tutti i discendenti. Sia (T5 , f5 , e5 , M5 ) = δ (R, a) l’albero (in Tn ) cosı̀ ottenuto. Teorema di McNaughton Stato iniziale Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Tre casi: • se I ∩ F = ∅, lo stato iniziale è un albero formato da un nodo non marcato etichettato con I • se I ⊆ F , lo stato iniziale è un albero formato da un nodo marcato etichettato con I • altrimenti, è un albero formato da un nodo non marcato etichettato con I , con un figlio marcato etichettato con I ∩F Teorema di McNaughton Condizione di Accettazione Angelo Montanari Introduzione Definizioni di Base L’insieme Ω è definito nel seguente modo: Ω = {(Lv , Uv ) |v ∈ V } Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza dove: • Lv = {R ∈ Tn | v non è un nodo di R} • Uv = {R ∈ Tn | v è un nodo marcato di R} La computazione dell’automa D è pertanto di successo se esiste un nodo v ∈ V tale che la computazione attraversa finite volte gli stati in cui v non è presente e infinite volte almeno uno stato in cui v è un nodo marcato. Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Esempio - 1 Sia A l’automa di Büchi sull’alfabeto A = {a, b} che riconosce tutte e sole le ω-parole con un numero finito, maggiore di 0, di occorrenze del simbolo b: Teorema di McNaughton a, b a Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione q1 Esempio Dimostrazione di correttezza • Q = {q1 , q2 } • A = {a, b} • I = {q1 } • F = {q2 } b q2 Teorema di McNaughton Esempio - 2 Angelo Montanari Introduzione Definizioni di Base Per trovare l’automa di Rabin equivalente, eseguiamo l’algoritmo descritto in precedenza. Teorema di McNaughton Stato iniziale: Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza I ∩ F = ∅ ⇒ albero con un solo nodo non marcato, etichettato con I = {q1 }. Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Esempio - 3 Esecuzione dell’azione a sullo stato iniziale: Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Eseguiamo la transizione dell’automa di Büchi per ogni stato dell’etichetta e eliminiamo gli eventuali marcatori presenti. In questo caso, l’albero non viene modificato. Allo stesso modo, i passi successivi non modificano l’albero. Teorema di McNaughton Angelo Montanari Esempio - 4 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Esecuzione dell’azione b sullo stato iniziale: Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Esempio - 5 Esecuzione dell’azione a sullo stato II : Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Esempio - 6 Esecuzione dell’azione a sullo stato II : Teorema di McNaughton Angelo Montanari Esempio - 7 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Esecuzione dell’azione b sullo stato II : Teorema di McNaughton Angelo Montanari Esempio - 8 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Esecuzione dell’azione b sullo stato II : Teorema di McNaughton Angelo Montanari Introduzione Esempio - 9 Esecuzione dell’azione a sullo stato III : Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza I passi che vengono eseguiti dall’algoritmo sono analoghi a quelli prodotti dall’esecuzione dell’azione a sullo stato II . Lo stato risultante è lo stato III . Teorema di McNaughton Angelo Montanari Esempio - 10 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Esecuzione dell’azione b sullo stato III : Teorema di McNaughton Angelo Montanari Esempio - 11 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Esecuzione dell’azione b sullo stato III : Teorema di McNaughton Esempio - 12 Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Automa risultante: Teorema di McNaughton Esempio - 13 Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Condizione di accettazione: L1 = ∅ L2 = {I , III } L3 = {I , II } U1 = ∅ U2 = {II } U3 = {III } F = {({I , III }, {II }) , ({I , II }, {III })} Teorema di McNaughton Angelo Montanari Dimostrazione di correttezza - 1 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Dimostriamo che l’automa di Rabin D, ottenuto tramite l’esecuzione dell’algoritmo di Safra, è equivalente all’automa di Büchi iniziale A. Come primo passo, dimostriamo un lemma che prova una proprietà fondamentale dell’algoritmo di Safra. Teorema di McNaughton Dimostrazione di correttezza - 2 Angelo Montanari Introduzione Lemma Definizioni di Base • Sia u = a1 a2 · · · an una parola finita; Teorema di McNaughton • sia R0 uno stato (albero) di D che contiene un nodo marcato v etichettato con S0 ; Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza • per 0 < i ≤ n, gli stati Ri = δ(R0 , a1 · · · ai ) contengano il nodo v con etichetta Si e tale nodo sia marcato solamente per i = n. Teorema di McNaughton Dimostrazione di correttezza - 3 Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Lemma Con le ipotesi di cui al lucido precedente, si ha che: 1 per 0 ≤ i ≤ n − 1, Si+1 è contenuto in δ(Si , ai+1 ); 2 per ogni q ∈ Sn , esiste in A una computazione, etichettata con u, che inizia in S0 , termina in q e visita almeno uno stato finale. Teorema di McNaughton Angelo Montanari Dimostrazione di correttezza - 4 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Seguiamo passo passo l’esecuzione dell’algoritmo nello stato Ri (relativamente al nodo v con etichetta Si ). Al primo passo, si ottiene Si+1 = δ(Si , ai+1 ) Al terzo passo vengono eventualmente soppressi alcuni stati di Si+1 . Il primo punto del lemma è dimostrato. Teorema di McNaughton Angelo Montanari Dimostrazione di correttezza - 5 Introduzione Definizioni di Base Teorema di McNaughton Per quanto riguarda il secondo punto, dimostriamo, per induzione su i, che: Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio per ogni 0 ≤ i ≤ n − 1 e per ogni stato qi che compare nell’etichetta di un discendente di v in Ri , esiste una computazione di A, che legge la stringa a1 , · · · , ai , che inizia in S0 , termina in qi e attraversa almeno uno stato finale. Dimostrazione di correttezza i = 0 : v è marcato e deve pertanto essere una foglia di R0 (priva di discendenti). La tesi vale banalmente. Teorema di McNaughton Angelo Montanari Dimostrazione di correttezza - 6 Introduzione Definizioni di Base Teorema di McNaughton i > 0 : sia qi+1 uno stato che appare nell’etichetta di un discendente di v in Ri+1 . Sono possibili due casi: Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione • qi+1 ∈ δ(qi , ai+1 ) per qualche qi appartenente all’etichetta di un diretto discendente di v in Ri (la tesi segue dall’ipotesi induttiva). Esempio Dimostrazione di correttezza • altrimenti, qi+1 deriva da un’etichetta creata al secondo passo dell’algoritmo (aggiunta di un figlio, a destra di tutti gli altri, etichettato con e(v ) ∩ F ). Ne segue immediatamente che qi+1 ∈ F , da cui la tesi. Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Dimostrazione di correttezza - 7 Infine, dal momento che v è marcato in Rn , esso viene necessariamente marcato nel quinto passo dell’algoritmo. Ne segue che se q ∈ Sn , allora o q ∈ δ(Sn−1 , an ) ∩ F (Sn−1 è l’etichetta di v in Rn−1 ) o q appartiene all’unione dei δ(qn−1 , an ), dove qn−1 compare nell’etichetta di un discendente di V in Rn−1 . Nel primo caso, esiste un cammino, etichettato con u, che inizia in S0 e finisce in q, che è uno stato finale. Nel secondo caso, possiamo sfruttare la conclusione dell’induzione precedente: esiste un cammino in A che inizia in S0 e termina in qn−1 , etichettato con a1 · · · an−1 , che attraversa almeno una volta uno stato finale. La tesi segue immediatamente. Teorema di McNaughton Angelo Montanari Dimostrazione di correttezza - 8 Introduzione Definizioni di Base Sulla scorta del lemma precedente, siamo ora in grado di dimostrare il Teorema di McNaughton. Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Sia A = (Q, A, ∆, I , F ) un automa di Büchi e sia D = (S, A, δ, i, F) il corrispondente automa di Rabin costruito mediante l’algoritmo di Safra. Dimostriamo che i due automi sono equivalenti, ossia che per ogni ω-parola α in Aω : esiste una computazione di successo di A su α m la computazione di D su α è di successo Teorema di McNaughton Dimostrazione di correttezza - 9 Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza ⇐ Sia c una computazione di successo dell’automa D sulla ω-parola α ∈ Aω ⇓ esiste un nodo v ∈ V tale che, da un certo punto in poi, c visita solo stati dei quali v è un nodo e visita infinite volte almeno uno stato in cui v è un nodo marcato. Sia S0 = I . Per il lemma precedente, esistono una fattorizzazione α = u0 u1 · · · e una sequenza di insiemi Sn ⊆ Q tali che: a. ∀n ≥ 0 Sn+1 ⊆ δ(Sn , un ) b. ∀n > 0 e ∀q ∈ Sn+1 esiste una computazione in A, etichettata con un , che inizia in Sn , termina in q e visita almeno uno stato finale Teorema di McNaughton Angelo Montanari Dimostrazione di correttezza - 10 Introduzione Definizioni di Base Teorema di McNaughton Al fine di poter applicare il lemma di König, costruiamo un albero (N, r , p) dove: Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione • N = {r } ∪ {(q, n)|q ∈ Sn , n ∈ N} • tutti i nodi della forma (q, 0) hanno come padre r Esempio Dimostrazione di correttezza • ogni nodo della forma (q, n + 1) ha come padre un nodo della forma (q 0 , n) tale che esiste un percorso in A, etichettato con un , che parte in q 0 , termina in q e visita almeno uno stato finale Teorema di McNaughton Angelo Montanari Dimostrazione di correttezza - 11 r Introduzione Definizioni di Base Teorema di McNaughton (q1 , 0) (q2 , 0) ... (qk , 0) ... ... ... Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza (q 0 , n) ( in A : un q 0 −−−−− −−→ q ↑stato finale (q, n + 1) Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Dimostrazione di correttezza - 12 Ogni nodo ha un numero finito di figli, ma l’albero ha infiniti nodi. Ne segue che, per il lemma di König, esiste almeno un ramo infinito Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio ⇓ Esiste un percorso infinito in A etichettato con α che parte da I e attraversa infinite volte uno stato finale. Dimostrazione di correttezza ⇓ α è accettata da A Teorema di McNaughton Dimostrazione di correttezza - 13 Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza ⇒ Sia c una computazione di successo dell’automa A. Indichiamo con c(i) ∈ Q lo stato raggiunto da A al passo i-esimo della computazione a a 0 1 c : c(0) −→ c(1) −→ c(2) · · · Esiste un unico percorso (iniziale) d in D etichettato nello stesso modo. Indichiamo con d(i) ∈ S lo stato (albero) dell’automa D raggiunto al passo i-esimo. a a 0 1 d : d(0)(= I ) −→ d(1) −→ d(2) · · · Ogni c(i) ∈ Q appartiene all’etichetta della radice dell’albero d(i) (primo passo dell’algoritmo). Tale radice non viene mai soppressa e risulta pertanto essere un elemento fisso v0 di V . Teorema di McNaughton Angelo Montanari Dimostrazione di correttezza - 14 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza • Se v0 compare marcato in un’infinità di stati/alberi d(i), allora il percorso è di successo in D e la ω-parola α viene accettata • Altrimenti (v0 non viene marcato infinite volte), esiste un numero intero n0 tale che n0 è il numero più grande per il quale d(n0 ) ha la radice v0 marcata. d : ··· d(n0 ) {· · · } v0 d(n0 + 1) {· · · } v0 ··· ··· Teorema di McNaughton Dimostrazione di correttezza - 15 Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Sia m > n0 il più piccolo numero intero tale che c(m) = qf è uno stato finale ripetuto infinite volte. Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione · · · c(n0 ) · · · c(m) = qf · · · c(k) = qf ··· · · · d(n0 ) · · · d(m) · · · d(k) ··· Esempio Dimostrazione di correttezza Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Dimostrazione di correttezza - 16 Dato che qf è uno stato finale (dell’automa di Büchi di partenza), allora esso compare in un figlio della radice di d(m) (secondo passo dell’algoritmo): · · · c(n0 ) · · · c(m) = qf · · · c(k) = qf ··· · · · d(n0 ) · · · d(m) · · · d(k) ··· {qf , · · · } v0 Esempio Dimostrazione di correttezza ··· {qf , · · · } Teorema di McNaughton Angelo Montanari Introduzione Definizioni di Base Dimostrazione di correttezza - 17 A partire da un qualche n1 ≥ m in poi, ogni stato c(n), con n ≥ n1 , sarà presente in uno specifico figlio v1 della radice di d(n): Teorema di McNaughton · · · c(m) = qf · · · c(n1 ) = q · · · · · · d(m) · · · d(n1 ) · · · Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione {qf , · · · } v0 Esempio {q, · · · } v0 Dimostrazione di correttezza ··· {qf , · · · } ··· {q, · · · } v1 ··· Teorema di McNaughton Dimostrazione di correttezza - 18 Angelo Montanari Introduzione L’esistenza di un tale nodo v1 può essere dimostrata nel seguente modo: Definizioni di Base Teorema di McNaughton Algoritmo di Safra 1 Se lo stato c(n) è presente nell’etichetta di un nodo v , lo stato c(n + 1) è anch’esso presente nell’etichetta di v al passo successivo, a meno che non sia presente nella etichetta di uno dei nodi a sinistra di v (in tal caso, esso viene eliminato dall’etichetta di v durante l’applicazione del terzo passo dell’algoritmo: eliminare gli stati presenti nelle etichette dei nodi a sinistra del nodo considerato). 2 Tali spostamenti a sinistra possono essere effettuati solamente un numero finito di volte. 3 Deve pertanto esistere un (eventualmente altro) figlio della radice che non viene eliminato: v1 è tale figlio. Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza Teorema di McNaughton Angelo Montanari Dimostrazione di correttezza - 19 Introduzione Definizioni di Base Teorema di McNaughton Algoritmo di Safra Stati Funzione di Transizione Stato iniziale Condizione di Accettazione Esempio Dimostrazione di correttezza • Ora, se v1 viene marcato infinite volte, allora il percorso è di successo in D • Altrimenti, ripetiamo lo stesso procedimento sostituendo v0 con v1 . Dato che gli alberi hanno altezza finita, riusciamo sempre a trovare un nodo marcato infinite volte.