Introduzione alla logica modale e al µ-calcolo modale Giacomo Lenzi Assegnista di ricerca, Università di Pisa Questo testo contiene gli appunti di un ciclo di tre seminari sulla logica modale e il µ-calcolo modale, tenuti dall’autore presso il Dipartimento di Matematica dell’Università di Pisa nei mesi di Novembre e Dicembre 2002. Ringrazio il prof. Alessandro Berarducci per avermi proposto di tenere questo ciclo di seminari. 1 Primo seminario, 8 Novembre 2002 La logica modale La logica modale risale ad Aristotele, che la utilizzò per studiare i concetti di necessità e possibilità. Con la notazione moderna, se P è una proposizione, [ ]P significa intuitivamente che P è necessariamente vera, e h iP significa che P è possibilmente vera. Il simbolo [ ] si chiama box perché ricorda le forma di una scatola, e il simbolo h i si chiama diamond perché ricorda la forma di un diamante. Se aggiungiamo alla logica proposizionale le due modalità di cui sopra, otteniamo la logica modale proposizionale. Quindi, nella sintassi avremo proposizioni “atomiche” senza struttura, P, Q, . . ., e per ottenere formule più complesse avremo a disposizione la negazione di una formula, ¬φ, la congiunzione di due formule φ ∧ φ0 , la disgiunzione di due formule, φ ∨ φ0 , e le modalità h iφ e [ ]φ. 1 Ad esempio, formule della logica modale saranno P ∧ (Q ∨ [ ]R), [ ]h iP ecc. Talvolta nella sintassi, anziché avere una sola coppia di modalità [ ], h i, si hanno più coppie [i], hii, ove i varia in qualche insieme I di indici. Si parla in questo caso di logica polimodale. Adesso per completare la definizione della logica modale potremmo dare assiomi e regole di deduzione che consentono di ragionare nella logica; tuttavia osserviamo che, nella sua lunga storia, la logica modale è stata interpretata in molti modi, e gli assiomi e regole più appropriati dipendono dalla scelta dell’interpretazione. Facciamo qualche esempio di interpretazione. Abbiamo anzitutto l’interpretazione più antica, basata sui “mondi possibili”; cioè, si ha una pluralità di mondi, o situazioni, possibili, e [ ]P vuol dire che P è vera in tutti i mondi possibili, mentre h iP significa che P è vera in qualche mondo possibile. Un‘altra interpretazione è quella conoscitiva. In questo caso affermare [ ]P significa affermare di conoscere P , mentre affermare h iP significa affermare di non poter escludere P . Un’interpretazione nata in ambito matematico è quella aritmetica. In questo caso si considerano formule del linguaggio dell’aritmetica del primo ordine, i cui simboli sono 0, 1, la somma e il prodotto. Se φ è una tale formula, [ ]φ significa che φ è dimostrabile nell’Aritmetica di Peano. La nozione di dimostrabilità, di per sé, è metateorica, ma tale nozione può essere codificata con una formula aritmetica tramite il procedimento noto come gödelizzazione della sintassi. Quindi, [ ]φ sarà anch’essa una formula aritmetica, e possiamo iterare le modalità scrivendo [ ][ ]φ, ecc. Al variare delle interpretazioni, gli assiomi che è ragionevole assumere cambiano. Consideriamo ad esempio l’assioma [ ]([ ]φ → φ). In ambito conoscitivo, tale formula è ragionevole, in quanto ciò che si conosce è vero (il che giustifica [ ]φ → φ) ed è ragionevole che un soggetto cosciente sappia che ciò che egli conosce è vero (il che giustifica il box davanti). D’altra parte, in ambito aritmetico, consideriamo una formula φ falsa sui numeri interi, ad esempio 0 = 1. Allora [ ]φ significa che l’aritmetica di 2 Peano è inconsistente (dimostra una falsità), e [ ]φ → φ significa la negazione, cioè l’aritmetica di Peano è consistente. Se ora mettiamo un box davanti, otteniamo che l’aritmetica di Peano prova la sua consistenza; ma questo è falso per il secondo teorema di incompletezza di Gödel. Infine, un’interpretazione che unifica molte di quelle storicamente precedenti è l’interpretazione relazionale di Kripke. Qui la logica viene interpretata su grafi, cioè insiemi dotati di relazioni. In questo modo la logica modale ci consente di ragionare sui grafi, e questa idea viene applicata soprattutto in informatica. Infatti, in informatica, i grafi forniscono un modello per molti tipi di sistemi: hardware, software, ecc. L’idea è che un sistema è visto come un oggetto che ha molti stati possibili, e che può passare da uno stato all’altro mediante l’esecuzione di azioni. Il grafo che modella il sistema avrà quindi gli stati come vertici, e le azioni come relazioni tra vertici. Risulta che molte proprietà desiderabili di sistemi possono essere controllate mediante modellizzazione con un grafo. Facciamo qualche esempio. Una prima categoria di proprietà è la safety: l’idea è che “qualcosa di cattivo non accadrà mai”. Ad esempio, nel controllo di una stampante condivisa da vari utenti, non si vuole che la stampante serva due utenti contemporaneamente. Una categoria duale alla precedente è la liveness: qualcosa di buono, prima o poi, accadrà. Per esempio, sarebbe desiderabile che se un utente chiede l’accesso alla stampante, prima o poi lo otterrà. Un terzo tipo di proprietà, stavolta di tipo “infinitario”, è la fairness: qualcosa di buono accadrà infinite volte. Ad esempio, è desiderabile che se un sistema operativo serve due utenti, il controllo passi dall’uno all’altro infinite volte, o in altri termini, non succeda mai che uno dei due utenti monopolizzi il sistema indefinitamente: questo non sarebbe equo (fair). Un altro tipo di proprietà sono quelle cicliche: qualcosa di buono avviene ogni tot unità di tempo. Ovviamente queste proprietà sono fondamentali per la costruzione di orologi, timer, ecc. La logica modale e le sue estensioni permettono di formalizzare il problema di verificare la correttezza di un sistema come un problema di verità di certe formule in certe strutture matematiche (i grafi). Formalmente, un grafo è una coppia (V, R), ove V è un insieme di vertici e R è una relazione binaria su V . Poiché le formule da interpretare sui grafi conterranno atomi, possiamo considerare anche strutture formate da un grafo (V, R) più un sottoinsieme di V per ogni atomo che si vuole interpretare. 3 Più in generale, un sistema di transizione è una struttura S = (V, R1 , . . . , Rn , P1 , . . . , Pm ), ove V è un insieme, R1 , . . . , Rn sono relazioni binarie su V , e P1 , . . . , Pm sono sottoinsiemi di V , che interpretano gli atomi P1 , . . . , Pm rispettivamente. La semantica di una formula della logica modale è formalizzata mediante una relazione ternaria di soddisfazione S, v |= φ ove S è un sistema di transizione, v è un vertice di S e φ è una formula modale. La relazione è definita per induzione su φ: • S, v |= Pi vale se e solo se v ∈ Pi ; • S, v |= ¬φ vale se e solo se non è vero che S, v |= ¬φ; • S, v |= φ1 ∧ φ2 vale se e solo se S, v |= φ1 e S, v |= φ2 ; • S, v |= φ1 ∨ φ2 vale se e solo se S, v |= φ1 oppure S, v |= φ2 ; • S, v |= h Ri iφ vale se e solo se esiste un punto w tale che vRi w e S, w |= φ; • S, v |= [ Ri ]φ vale se e solo se per ogni punto w tale che vRi w si ha S, w |= φ. Notiamo che le ultime due clausole, relative a box e diamond, prescrivono in sostanza che la formula φ sia vera in qualche stato accessibile da quello corrente (per il diamond), o che sia vera in tutti gli stati accessibili (per il box). La relazione di soddisfazione permette di associare a ogni formula modale φ e a ogni sistema di transizione S un insieme di vertici di S, cioè ||φ|| = {v ∈ S | S, v |= φ}. Passiamo a un paio di traduzioni tra la logica modale ed altre logiche. Anzitutto, per ogni formula φ esiste una formula tφ (x) del primo ordine, su un linguaggio di predicati unari e binari, tale che si ha sempre S, v |= φ se e solo se S |= tφ (v). Infatti tφ è data da: 4 • tP (x) = P (x) per ogni atomo P ; • t¬φ = ¬tφ ; • tφ1 ∨φ2 = tφ1 ∨ tφ2 ; • tφ1 ∧φ2 = tφ1 ∧ tφ2 ; • thRiφ (x) = ∃y. xRy ∧ tφ (y); • t[R]φ (x) = ∀y. xRy → tφ (y). Risulta anzi che la traduzione può essere fatta nella logica del primo ordine con due variabili (ove si permette di quantificare più volte la stessa variabile) e poiché questo frammento della logica del prim’ordine è decidibile, la traduzione implica la decidibilità della logica modale. Cioè, esiste un algoritmo per verificare se una formula modale è identicamente vera. Comunque, dal punto di vista computazionale, la logica modale è meno complessa della logica a due variabili: il suo problema di decidibilità è PSPACE completo, vedi [12], mentre quello della logica a due variabili è NEXPTIME completo, vedi [8]. Una seconda traduzione è quella della logica intuizionista nella logica modale, proposta da Gödel negli anni ’30. Ricordiamo che la sintassi della logica intuizionista proposizionale ha gli atomi e i connettivi ¬ (negazione), ∧ (congiunzione) e ∨ (disgiunzione), più l’implicazione φ1 → φ2 che, a differenza della logica classica, non è definibile a partire dagli altri connettivi. La traduzione, che chiameremo M od, è data induttivamente: • M od(P ) = [ ]P ; • M od(φ1 ∨ φ2 ) = M od(φ1 ) ∨ M od(φ2 ); • M od(φ1 ∧ φ2 ) = M od(φ1 ) ∧ M od(φ2 ); • M od(¬φ) = [ ]¬M od(φ); • M od(φ1 → φ2 ) = [ ](M od(φ1 ) → M od(φ2 )). La traduzione consente di collegare la logica modale con la logica intuizionista proposizionale: si ha che una formula φ è intuizionisticamente valida se e solo se M od(φ) è una formula modale vera in tutti i punti di tutti i sistemi di transizione riflessivi e transitivi. 5 Tornando alle applicazioni informatiche, abbiamo detto che un sistema è descritto dal grafo dei suoi stati. In realtà, però, la specifica di un sistema non riguarda la struttura dettagliata del sistema, ma solo il suo comportamento. Quindi è interessante chiedersi cosa sia il comportamento di un sistema, o almeno, quando due sistemi hanno lo stesso comportamento. La risposta oggi comunemente accettata è la bisimulazione, dovuta a Park, vedi [16]. La definizione è la seguente. Siano S, T due sistemi a n relazioni, v un punto di S e w un punto di T . Diciamo che S, v è bisimile a T, w se esiste una relazione B ⊆ S × T tale che: • B vale tra v e w; • B rispetta gli atomi, cioè se xBy, allora x e y verificano le stesse proposizioni atomiche; • B completa i quadrati nel senso seguente: se xBy e xRi x0 , allora esiste un y 0 tale che yRi y 0 e x0 By 0 ; • lo stesso avviene dall’altra parte: se xBy e yRi y 0 , allora esiste un x0 tale che xRi x0 e x0 By 0 . Osserviamo che ogni relazione di “va e vieni” tra sistemi di transizione, nel senso della teoria dei modelli, è una bisimulazione, ma non viceversa: ad esempio, sono bisimili N con la relazione di successore (x succ y se y = x+1) nel punto 0, e Z con la relazione di successore nel punto 0. Inoltre, la logica modale è invariante per bisimulazione; cioè, se S, v è bisimile a T, w, allora S, v e T, w verificano le stesse formule modali. Questo è un esercizio, mentre il viceversa è un teorema; precisamente si ha: Teorema (Van Benthem, [20]). Sia φ una formula del primo ordine su un linguaggio di predicati unari e binari, invariante per bisimulazione. Allora φ equivale a una formula modale. Quindi, la logica modale corrisponde al frammento invariante per bisimulazione della logica del primo ordine. Una variante “finitaria” di questo teorema è la seguente: Teorema (Rosen, [19]) Sia φ una formula del primo ordine su un linguaggio di predicati unari e binari, invariante per bisimulazione sui grafi finiti. Allora φ equivale a una formula modale sui grafi finiti. Il limite della logica modale è la sua scarsa espressività, puramente “locale”. Infatti, la verità di una formula modale di lunghezza n in un modello dipende solo dai punti a distanza al più n dal punto di riferimento. 6 In particolare, la logica modale è troppo debole per esprimere le proprietà desiderabili di sistemi informatici di cui sopra. Per ottenere la possibilità di esprimere proprietà globali, sono necessarie logiche più potenti che introdurremo nei prossimi seminari. 2 Secondo seminario, 29 Novembre 2002 La logica temporale Abbiamo visto che la logica modale non è abbastanza espressiva per formalizzare le più importanti proprietà di correttezza dei sistemi informatici. Vedremo, nel terzo e ultimo seminario, che questo problema si può risolvere introducendo il µ-calcolo modale. Questo secondo seminario riguarda la logica temporale, la cui espressività si colloca a mezza strada tra la logica modale e il µ-calcolo. La logica temporale si occupa di concetti come “sempre”, “mai”, “qualche volta”, ecc. Essa è una branca della logica di origine antica, ma solo negli anni ’50 è stata studiata matematicamente, a cominciare dal lavoro di Prior, vedi [18]. Negli anni ’70 è stata applicata alla verifica di correttezza dei sistemi informatici, a cominciare dal lavoro di Pnueli, vedi [17]. Per applicare la logica temporale bisogna fissare un modello matematico del tempo. Ci sono vari possibili modelli di tempo. Il tempo può essere assunto discreto o continuo, finito o infinito, lineare o ramificato, unidirezionale o bidirezionale, ecc. Le logiche temporali di cui ci occuperemo, e che sono specializzate per la verifica di sistemi, assumono le seguenti proprietà del tempo: • il tempo è discreto: tra un istante e l’altro, si hanno solo un numero finito di istanti intermedi; • il tempo è infinito nel futuro e finito nel passato: c’è un primo istante ma non un ultimo; • il tempo fluisce dal passato al futuro e siamo interessati a cosa accadrà nel futuro: questa scelta è dettata dalle applicazioni, in cui lo scopo è fare previsioni sul comportamento di un sistema. Invece, l’alternativa tra tempo lineare e ramificato dà luogo a due possibilità egualmente interessanti. Il tempo si dice lineare se in ogni istante, il sistema può evolvere in un solo modo nell’istante successivo, cosicché l’evoluzione del 7 sistema ha la forma di una linea. Invece, il tempo si dice ramificato se in ogni istante, il sistema può evolvere in molti modi; in questo caso l’evoluzione del sistema a partire da un istante iniziale ha la forma di un albero. Cominciamo a descrivere una logica temporale lineare, in seguito passeremo alle logiche ramificate (branching in inglese). La logica temporale lineare, LT L, si ottiene aggiungendo alla logica proposizionale quattro operatori temporali F, G, O, U con il seguente significato. Sia P una proposizione. La formula F P significa che P è vera in qualche istante futuro. La formula GP significa che P è vera in ogni istante futuro, ed è quindi la formula duale di F P . Inoltre, la formula OP significa che P è vera nel prossimo istante. Infine, U è un operatore binario: se P, Q sono proprietà, la formula P U Q significa che la formula P vale fino al primo istante in cui vale Q (U viene dall’inglese “until”, finché). Per precisare meglio il significato degli operatori temporali, possiamo introdurre quelle che chiameremo le “strutture lineari”. Una struttura lineare è data da S = (N, P1 , . . . , Pn ), ove N è l’insieme dei numeri naturali 0, 1, 2, 3 . . . e P1 , . . . , Pn sono sottoinsiemi di N, che interpretano le proposizioni atomiche P1 , . . . , Pn . Abbiamo una relazione binaria di soddisfazione S |= φ, ove S è una struttura lineare e φ è una formula di LT L, definita induttivamente. Per poter scrivere la clausole della definizione, data una struttura lineare S e un numero i, denotiamo S i (lo i-esimo shift di S) come la struttura lineare ove Pj è interpretato dall’insieme {x − i | x ≥ i, x ∈ Pj }. Intuitivamente, S i |= φ significa che φ è vera all’istante i ∈ N. Abbiamo ora le clausole: • S |= Pj se 0 ∈ Pj ; • S |= ¬φ se non è vero che S |= φ; • S |= φ1 ∧ φ2 se S |= φ1 e S |= φ2 ; • S |= φ1 ∨ φ2 se S |= φ1 oppure S |= φ2 ; • S |= Oφ se S 1 |= φ; 8 • S |= F φ se S i |= φ per qualche i; • S |= Gφ se S i |= φ per ogni i; • S |= φ1 U φ2 se esiste i per cui S i |= φ2 , e per ogni j con j < i, si ha S j |= φ1 . Facciamo qualche esempio di formula LT L che mostra che, a differenza della logica modale, la logica temporale è abbastanza potente da esprimere molte proprietà desiderabili globali dei sistemi. Se P è una proprietà del sistema che si vuole evitare, allora G¬P dice che P non accadrà mai: questo è un esempio di proprietà di safety. Se P, Q sono proprietà, P → F Q dice che, se in un punto ho P , allora in qualche punto successivo ho Q; per esempio, se un utente chiede l’accesso a una stampante, prima o poi lo otterrà; questo è un esempio di proprietà di liveness. Una proprietà di liveness più forte è P → OQ; nel caso della stampante, dice che una richiesta di accesso alla stampante è soddisfatta immediatamente. Combinando gli operatori temporali possiamo esprimere anche proprietà di fairness; per esempio, la formula GF P significa che P è vera infinite volte; infine la formula duale F GP significa che P è vera in tutti i punti salvo un numero finito. La logica temporale lineare LT L che abbiamo esposto è quella più usata. Nel caso delle logiche branching c’è più varietà. Noi esporremo qui le logiche CT L (Computation Tree Logic) e la sua estensione CT L∗ . In entrambi i casi l’idea è di estendere la logica temporale lineare con i quantificatori sui cammini, denotati A ed E. Quindi se φ è una formula, Eφ significa che φ è vera in qualche cammino, e Aφ significa che φ è vera in ogni cammino. In CT L il modo in cui appaiono i quantificatori è soggetto ad alcune restrizioni, mentre in CT L∗ non c’è nessuna restrizione. Quindi per semplicità cominceremo ad esporre la semantica di CT L∗ e poi passeremo a CT L. Le formule di CT L∗ sono ottenute dalle formule atomiche mediante gli operatori booleani, gli operatori lineari F, G, O, U , e i quantificatori sui cammini A, E. Per definire la semantica di CT L∗ usiamo “strutture branching”, cioè strutture del tipo S = (V, R, P1 , . . . , Pn ), ove V è un insieme non vuoto, R è una relazione binaria su V e P1 , . . . , Pn sono sottoinsiemi di V , che interpretano gli atomi P1 , . . . , Pn . 9 I cammini che ci interessano saranno sequenze infinite v0 , v1 , . . . , vn , . . . di elementi di V , tali che vi Rvi+1 per ogni numero i ∈ N. Per semplicità assumiamo che: • la relazione R sia totale su V , nel senso che per ogni v ∈ V esiste w ∈ V tale che vRw. Questo implica che da ogni punto parte almeno un cammino infinito; • la struttura sia un albero; cioè, esista un punto r, detto radice, tale che per ogni punto v esista un solo cammino finito da r a v, cioè una sola sequenza finita v0 , . . . , vn tale che v0 = r, vn = v e vi Rvi+1 per ogni i < n. Avremo una relazione ternaria di soddisfazione S, π |= φ, ove S è una struttura branching, π è un cammino e φ è una formula di CT L∗ . La relazione è definita induttivamente in φ; diamo qui le clausole relative agli operatori lineari e ai quantificatori. Anche sui cammini abbiamo gli operatori di shift: se π è un cammino, π = v0 , v1 , . . . , vn , . . . e i ∈ N, π i è l’i-esimo suffisso di π: π i = vi , vi+1 , vi+2 , . . . Abbiamo le clausole: • S, π |= Pj se il primo vertice di π sta in Pj ; • S, π |= Oφ se S, π 1 |= φ; • S, π |= F φ se S, π i |= φ per qualche i; • S, π |= Gφ se S, π i |= φ per ogni i; • S, π |= φU ψ se per qualche i si ha S, π i |= ψ e S, π j |= φ per ogni j < i; • S, π |= Eφ se S, ρ |= φ per qualche cammino ρ che ha lo stesso primo vertice di π; • S, π |= Aφ se S, ρ |= φ per ogni cammino ρ che ha lo stesso primo vertice di π. 10 In alcuni casi la verità di una formula su un cammino dipende solo dal primo vertice del cammino. Questo succede in particolare per le cosiddette “formule di stato” (ricordiamo che i vertici di un grafo corrispondono agli stati di un sistema), definite come gli elementi del più piccolo insieme di formule F S tali che: • gli atomi stanno in F S; • F S è chiuso per operatori booleani; • se φ è una formula qualunque di CT L∗ , Eφ e Aφ stanno in F S. Quindi, se φ è una formula di stato e v è un vertice di una struttura branching, possiamo porre S, v |= φ se S, π |= φ per un qualunque cammino π che parte da v. In particolare, tra le formule di stato ci sono le formule della sottologica di CT L∗ nota come CT L. Definiamo CT L come l’insieme delle formule di CT L∗ ove: • ogni quantificatore A, E appare immediatamente prima di un operatore lineare F, G, O, U ; • ogni operatore lineare appare immediatamente dopo un quantificatore. Facciamo qualche esempio di formule CT L e CT L∗ . Siano P, Q due proposizioni. Anzitutto, in CT L abbiamo la formula EOP , che equivale a dire che esiste un successore in cui vale P , proprio come l’operatore diamond della logica modale. Analogamente abbiamo la formula AOP , che equivale a dire che in ogni successore vale P . Quindi questa formula corrisponde alla modalità box della logica modale, e quindi CT L include la logica modale. Un altro esempio di CT L è AGP , che significa che P accadrà sempre, nel senso che accadrà in ogni punto di ogni cammino che parte dal punto in cui la formula è valutata. Questa è una proprietà di tipo safety. Notiamo che non è detto che tutti i punti della struttura siano raggiungibili dal punto in cui si valuta la formula; la formula non dice nulla sui punti irraggiungibili. Analogamente, in CT L abbiamo EF P , cioè, P vale in qualche punto di qualche cammino che parte dal punto in cui la formula è valutata. Questa è una proprietà di tipo liveness. 11 Un’altra liveness più complicata esprimibile in CT L è AF P : in ogni cammino esiste un punto che verifica P . Tale proprietà si chiama talvolta “inevitabilità”. Usando l’Until possiamo poi, sempre in CT L, scrivere E(P U Q), che dice che in qualche cammino, P vale fino alla prima volta in cui vale Q; analogamente, A(P U Q) dice che ciò vale in ogni cammino. Combinando gli operatori lineari abbiamo in CT L formule come AGEF P , che significa: in ogni futuro c’è un futuro successivo in cui vale P . Passando a formule CT L∗ che non sono (sintatticamente) in CT L, possiamo segnalare l’importante formula di fairness EGF P , che significa che esiste un cammino in cui P vale infinite volte. In realtà EGF P non è neanche equivalente ad alcuna formula di CT L; questo segue dai risultati di [5]. La formula duale sarà AF GP , che dice che in ogni cammino, P vale ovunque salvo un numero finito di punti. La definizione della semantica di LT L e CT L∗ suggerisce traduzioni di queste logiche in formalismi più standard, come la logica del primo ordine o del secondo ordine. Infatti, LT L si traduce nella logica del primo ordine su N arricchito con l’ordine e un sottoinsieme per ogni atomo; chiamiamo F O(≤) questa logica. Per ogni formula φ ∈ LT L esiste una formula tφ (x) ∈ F O(≤) tale che, per ogni struttura lineare S per ogni i ∈ N, S i |= φ se e solo se S |= tφ (i). Si ha anche una traduzione inversa: Teorema (Kamp, [10]) Ogni formula di F O(≤) equivale a una formula di LT L. Quindi le due logiche sono equivalenti. Per dimostrare il teorema è necessario includere in LT L l’operatore Until; questo motiva l’introduzione di tale operatore in LT L. Una seconda traduzione è quella di CT L∗ in una logica del secondo ordine, che chiameremo “path logic”; cioè, si tratta della logica del primo ordine sulla relazione R, a cui si aggiungono quantificatori ristretti a cammini: “per qualche cammino si ha...” oppure “per ogni cammino si ha...”. Per ogni formula φ di CT L∗ si ha una formula φpath (X) della path logic (con una variabile del secondo ordine libera) tale che, per ogni struttura branching S, si ha S, π |= φ se e solo se S |= φpath (π). 12 Inoltre, si verifica che tutte le formule di CT L∗ sono invarianti per bisimulazione. Nella direzione inversa si ha: Teorema (Moller-Rabinovitch, [14]) Ogni formula della path logic invariante per bisimulazione equivale a una formula di CT L∗ . Quindi, CT L∗ equivale al frammento della path logic invariante per bisimulazione. Il teorema sopra ci dice che CT L∗ è molto potente, infatti è chiamata talvolta la “logica branching piena”. Tuttavia ci sono proprietà desiderabili che CT L∗ non può esprimere. Consideriamo una proposizione P , e denotiamo con Even(P ) il fatto che in qualche cammino, P vale in tutti i punti pari. Notiamo che Even(P ) è invariante per bisimulazione. Teorema (Wolper, [22]) Even(P ) non è esprimibile in CT L∗ . I limiti del potere espressivo di CT L∗ motivano l’introduzione di logiche più potenti come il µ-calcolo modale, che sarà l’oggetto del prossimo seminario. 3 Terzo e ultimo seminario, 13 Dicembre 2002 Il µ-calcolo modale L’idea è di partire dalla logica modale e aggiungere due operatori µ e ν che rappresentano i minimi e massimi punti fissi degli operatori insiemistici. Consideriamo l’insieme potenza di un insieme A, cioè l’insieme di tutti i sottinsiemi di A, che denoteremo P (A). Consideriamo una funzione f da P (A) in P (A). Assumiamo che f sia monotona rispetto all’inclusione, cioè X ⊆ Y ⊆ A implichi f (X) ⊆ f (Y ). Chiamiamo punto fisso di f un insieme E tale che E = f (E). Allora, per un teorema di Tarski, f ha un minimo punto fisso, denotato µX.f (X) e un massimo punto fisso, denotato νX.f (X). L’utilità degli operatori µ e ν segue dal fatto che molti concetti della logica temporale possono essere descritti come punti fissi di certe funzioni insiemistiche. La sintassi del µ-calcolo modale si ottiene aggiungendo alla logica modale delle variabili di punto fisso X, Y, . . . e gli operatori µX.φ(X) e νX.φ(X), 13 ove φ(X) è una qualunque formula sintatticamente positiva in X; cioè, ogni occorrenza di X deve comparire entro un numero pari di negazioni. La clausola di positività garantisce la monotonia, ed è necessaria perché le formule non positive possono dare luogo a operatori senza punti fissi: ad esempio, la funzione F definita da F (X) = ¬X (la negazione) non ha punti fissi nell’insieme potenza di un qualunque insieme non vuoto. Come la logica modale, il µ-calcolo modale si interpreta su strutture S = (V, R, P1 , . . . , Pn ), e la semantica di una formula del µ-calcolo è formalizzata mediante una relazione ternaria di soddisfazione S, v |= φ ove S è una struttura come sopra, v è un vertice di S e φ è una formula del µ-calcolo. Le clausole sono le stesse della logica modale, più le seguenti: • S, v |= µX.φ(X) se v appartiene al più piccolo insieme E uguale a ||φ(E)||; • S, v |= νX.φ(X) se v appartiene al più grande insieme E uguale a ||φ(E)||. Ricordiamo che ||φ(E)|| denota l’insieme dei punti di S che verificano φ(E). Vediamo qualche esempio di formula del µ-calcolo. Un primo esempio banale è µX.X. Questa formula è identicamente falsa, in quanto l’equazione banale X = X ha come soluzione tutti i sottoinsiemi della struttura, e quindi la minima soluzione è l’insieme vuoto. Altrettanto banalmente, νX.X è identicamente vera, perché la massima soluzione di X = X è l’insieme di tutti i punti. Anche µX.h iX è identicamente falsa, in quanto si verifica che l’equazione X = h iX è vera sull’insieme vuoto, che è quindi la minima soluzione (notiamo che h iX è l’insieme dei punti che hanno qualche successore in X; quindi si ha h i∅ = ∅). Invece, µX.[ ]X identifica una proprietà non banale, cioè è l’insieme dei punti “benfondati” dai quali non parte nessun cammino infinito. Questo si può verificare considerando l’equazione X = [ ]X, ove [ ]X è l’insieme dei punti che hanno tutti i successori in X. Chiamando BF l’insieme dei punti benfondati, basta verificare che: 14 • BF verifica l’equazione, cioè BF = [ ]BF ; • BF è la minima soluzione, cioè se X = [ ]X, allora BF ⊆ X. Le formule del µ-calcolo possono diventare difficili da comprendere al crescere della loro lunghezza; una euristica che può aiutare a comprenderne il significato è l’idea di vedere le formule dinamicamente, come ricerche di punti con certe proprietà, svolte muovendosi lungo le frecce del grafo. Il µ dice che la ricerca deve terminare, mentre il ν dice che la ricerca non deve necessariamente terminare. Come esempio di applicazione di questa euristica, consideriamo la formula µX. P ∨ h iX. Questa formula dice che deve esistere un punto accessibile che gode della proprietà P , cioè, corrisponde alla formula della logica temporale EF P . Infatti, partendo dal punto in cui la formula è valutata, iteriamo la seguente verifica: se il punto corrente verifica P , abbiamo finito; se no, selezioniamo una direzione (infatti, il diamond modale significa che si sceglie una direzione) e continuiamo la ricerca in quella direzione. Il µ all’inizio della formula dice che la ricerca deve terminare, e l’unico modo per terminare la ricerca è trovare un punto che gode di P . Notiamo che la formula precedente esprime una proprietà di tipo liveness: qualcosa di buono, prima o poi, accadrà. Come secondo esempio, duale al precedente, consideriamo la formula νX. P ∧ [ ]X. Questa formula dice che tutti i punti accessibili godono della proprietà P , cioè corrisponde alla formula temporale AGP . Infatti, partendo dal punto in cui la formula è valutata, iteriamo la seguente verifica: se il punto corrente verifica ¬P , abbiamo un fallimento; altrimenti, continuiamo la ricerca in tutte le direzioni (infatti il box modale significa prendere tutte le direzioni). Notiamo che la formula precedente esprime una proprietà di tipo safety: se la negazione ¬P di P è una proprietà cattiva, abbiamo che qualcosa di cattivo non accadrà mai. Combinando i minimi e i massimi punti fissi riusciamo anche a ottenere proprietà di tipo fairness: ad esempio, la formula νX. µY. (P ∧ h iX) ∨ h iY 15 significa che esiste un cammino infinito ove P occorre infinite volte, cioè corrisponde alla formula temporale EGF P . In generale, si dimostra che ogni formula della logica temporale CT L∗ , introdotta nel seminario precedente, è equivalente a una formula del µcalcolo. Nel seminario precedente avevamo anche visto che ci sono proprietà utili che la logica temporale non può esprimere: ad esempio, le proprietà cicliche, che dicono che qualcosa di buono occorre ogni tot passi. Tuttavia queste sono esprimibili nel mu calcolo: ad esempio la formula νX. P ∧ h ih iX dice che esiste un cammino in cui P occorre ogni due passi, e corrisponde quindi alla formula Even(P ) introdotta nel seminario precedente. Gli esempi mostrano che il µ-calcolo è molto espressivo. Possiamo chiederci se la sua espressività possa essere caratterizzata in termini di logiche più familiari. Risulta che la logica giusta con cui confrontare il µ-calcolo è la logica monadica del secondo ordine (l.m.s.o.), cioè, la logica ottenuta dalla logica del primo ordine aggiungendo la quantificazione, esistenziale o universale, sugli insiemi di punti. In particolare, poiché il µ calcolo parla di grafi, considereremo la l.m.s.o. sulla seguatura dei grafi, data da un simbolo di relazione binaria e un numero arbitrario di simboli per predicati unari. Notiamo anzitutto che la semantica stessa del µ-calcolo ci dà una traduzione del µ -calcolo nella l.m.s.o., che estende la traduzione che abbiamo visto nel primo seminario dalla logica modale nella logica del primo ordine. Data una formula φ del µ-calcolo, la sua traduzione tφ sarà definita induttivamente con le stesse clausole del caso modale, più le seguenti: • caso base: tE (x) = x ∈ E; • tµX.φ(X) (x) = ∀E. (∀y. y ∈ E ↔ tφ(E) (y)) → x ∈ E; • tνX.φ(X) (x) = ∃E. (∀y. y ∈ E ↔ tφ(E) (y)) ∧ x ∈ E. Notiamo che nelle clausole precedenti, la condizione ∀y. y ∈ E ↔ tφ(E) (y) formalizza l’equazione E = φ(E). Un’altra osservazione è che il µ-calcolo può essere immerso in una logica modale con disgiunzioni e congiunzioni infinite, mediante la costruzione dei 16 minimi e massimi punti fissi per approssimazione transfinita; l’idea è di definire la approssimazioni ordinali µα X.φ(X) e ν α X.φ(X) ponendo • µ0 X.φ(X) = f alse; • µα+1 X.φ(X) = φ(µα X.φ(X)); • µλ X.φ(X) = W α α<λ µ X.φ(X) per λ ordinale limite; e analogamente • ν 0 X.φ(X) = true; • ν α+1 X.φ(X) = φ(ν α X.φ(X)); • ν λ X.φ(X) = V α<λ ν α X.φ(X) per λ ordinale limite; risulta ora µX.φ(X) = _ νX.φ(X) = ^ µα X.φ(X) α ν α X.φ(X), α ove l’unione e l’intersezione sono fatte su tutti gli ordinali α. In particolare, poiché la logica modale infinitaria è invariante per bisimulazione, anche il µ-calcolo è invariante per bisimulazione. Nella direzione inversa, si ha il seguente risultato: Teorema (Janin-Walukiewicz, [9]) Sia φ una formula della logica monadica del secondo ordine sulla segnatura dei grafi, invariante per bisimulazione. Allora φ è equivalente a una formula del µ-calcolo. Quindi, il µ-calcolo coincide col frammento invariante per bisimulazione della l.m.s.o. sui grafi. Questo ci dà la caratterizzazione cercata del µ-calcolo in termini di logiche tradizionali. Il problema della soddisfacibilità del µ-calcolo è: data una formula φ, decidere se φ è vera in qualche punto di qualche grafo. Questo problema è decidibile, come nel caso della logica modale, ma la sua complessità è maggiore, nel senso che il problema richiede un tempo esponenziale nella lunghezza della formula, vedi [6]. Quindi, per dimostrare i teoremi del µcalcolo, è utile avere altri strumenti oltre alla procedura di decisione, ad esempio un sistema di assiomi e regole completo per derivare le formule identicamente vere, analoghi ai sistemi usati nella logica del primo ordine. Per questo motivo è interessante il sistema assiomatico per il µ-calcolo proposto da Kozen in [11], che consiste negli assiomi e regole seguenti: 17 • tutti gli assiomi e le regole della logica modale; • l’assioma di punto fisso φ(µX.φ(X)) → µX.φ(X); • la regola di induzione: dalla premessa φ(ψ) → ψ segue la conclusione µX.φ(X) → ψ, purché X non sia libera in ψ. Notiamo che gli assiomi e regole di cui sopra sono “corretti”; cioè, gli assiomi sono identicamente veri, e se la premessa di una regola è identicamente vera, lo è anche la conclusione. In particolare, la regola di induzione è sound perché µX.φ(X) non è solo la minima soluzione di φ(X) = X, ma anche la minima soluzione di φ(X) ⊆ X. La completezza del sistema di Kozen, invece, non è banale da dimostrare ed è stata dimostrata da Walukiewicz in [21]. Quindi, ogni formula del µcalcolo identicamente vera è dimostrabile nel sistema. La dimostrazione della completezza usa, tra gli altri ingredienti, una classe di formule del µcalcolo chiamate formule disgiuntive. In queste formule, intuitivamente, la disgiunzione può essere usata liberamente, mentre la congiunzione è ammessa solo in una forma molto ristretta. Prima di definire le formule disgiuntive, introduciamo alcuni operatori modali derivati, di arietà n ≥ 0 qualunque; cioè, date n formule α1 , . . . , αn , poniamo Cover(α1 , . . . , αn ) = [ ](α1 ∨ . . . ∨ αn ) ∧h iα1 ∧ . . . ∧ h iαn . Cioè, Cover(α1 , . . . , αn ) dice che i figli del punto corrente sono coperti da α1 , . . . , αn , e ciascun αi è presente in qualche figlio. Notiamo che box e diamond sono definibili a partire dagli operatori cover: h iα = Cover(α, true) [ ]α = Cover(∅) ∨ Cover(α). L’insieme D delle formule disgiuntive è il più piccolo insieme di formule del µ-calcolo tale che: • gli atomi e gli atomi negati appartengono a D; • se α, β ∈ D allora α ∨ β ∈ D; 18 • sia σ una congiunzione di atomi, atomi negati, variabili e variabili negate, e siano α1 , . . . , αn ∈ D. Allora la formula σ∧Cover(α1 , . . . , αn ) appartiene anch’essa a D; • sia α(X) una formula di D in cui X compare sempre positivamente, e mai in contesti del tipo X ∧ β. Allora µX.α(X) e νX.α(X) appartengono anch’esse a D. Risulta che ogni formula del µ-calcolo è equivalente a una formula disgiuntiva. Inoltre le formule disgiuntive hanno una struttura più semplice di una formula del µ-calcolo arbitraria: una formula disgiuntiva è soddisfacibile se e solo se, rimpiazzando le variabili di tipo µ con f alse e quelle di tipo ν con true, si ottiene una formula soddisfacibile. Questo dà un algoritmo lineare per la soddisfacibilità delle formule disgiuntive. Un difetto del µ-calcolo è la scarsa leggibilità delle sue formule, soprattutto quando contengono molti minimi e massimi punti fissi. Ci si può chiedere se tanti punti fissi siano realmente necessari, o se basti un numero limitato di punti fissi per esprimere tutte le formule del µ-calcolo. Il problema si può formalizzare in termini di classi di alternanza di punti fissi. Cioè introduciamo una successione di classi di formule Nk , Mk , dovuta a Niwinski, nel modo seguente: • N0 e M0 coincidono con l’insieme delle formule senza punti fissi, cioè, la logica modale; • Nk+1 è la chiusura di Nk ∪Mk rispetto alla composizione e all’operatore ν, ove comporre φ con ψ significa rimpiazzare un atomo fissato di φ con ψ; • analogamente, Mk+1 è la chiusura di Nk ∪ Mk rispetto alla composizione e all’operatore µ. Ci si può chiedere se tutto il µ-calcolo equivalga a Nk per qualche k. Questo è il cosiddetto problema della gerarchia del µ-calcolo, e in breve, la sua storia è la seguente. Già da [5] segue che il µ-calcolo non coincide con le composizioni di N1 e M1 ; un esempio è la formula che traduce la proprietà temporale EGF P . Il fatto che EGF P non stia in M2 segue da [2]. In [15], Niwinski mostra che la gerarchia è infinita se ci si restringe alle formule senza congiunzione. In [3], Bradfield mostra che la gerarchia è infinita nel caso generale, ma senza esibire formule di data complessità k, 19 cioè, che stanno in un dato Nk ma non nei livelli inferiori. In [13], l’autore esibisce una tale formula per k = 3, e una successione di formule φk che hanno complessità k nel µ-calcolo positivo (per la precisione, la nozione di alternanza usata dall’autore è quella di Emerson, che è leggermente più debole di quella di Niwinski). In [4], Bradfield ha poi semplificato la dimostrazione ed ha fornito esempi espliciti di formule che stanno in Nk ma non nei livelli inferiori, per ogni k. Segnaliamo anche il lavoro di Arnold in questo ambito, che in [1] ha dato una elegante dimostrazione dell’infinità della gerarchia sugli alberi binari, decorati con predicati unari. Vediamo l’idea della dimostrazione. Gli alberi binari decorati con predicati unari formano uno spazio metrico completo rispetto alla distanza d(A, B) = 2−h , ove h è la minima altezza di un punto ove A e B differiscono. Si considera una successione di formule Wk , dovute a Walukiewicz, che esprimono l’esistenza di una strategia vincente per uno dei due giocatori di un “gioco di parità” sul grafo. Un gioco di parità si gioca su un grafo, i cui vertici sono etichettati con un insieme finito di numeri. I due giocatori partono da un punto del grafo e percorrono a turno una freccia. Se uno dei due giocatori non può muovere, l’altro vince. Se no, si ha una successione infinita di punti, e vince il primo giocatore se il minimo numero che occorre infinite volte è pari. Risulta che Wk appartiene a Nk , e ogni formula del µ-calcolo di livello Nk si riduce a Wk mediante contrazioni dello spazio metrico. Ora Wk non può appartenere a Mk , altrimenti ¬Wk apparterrebbe a Nk e si avrebbe una contrazione γ tale che, per ogni albero A, A ∈ ¬Wk se e solo se γ(A) ∈ Wk . Ma γ è una contrazione, quindi (teorema di Banach-Caccioppoli) ha un punto fisso, cioè un albero A0 tale che γ(A0 ) = A0 . Allora si ricava l’assurdo: A0 ∈ ¬Wk se e solo se A0 ∈ Wk . Quindi Wk appartiene a Nk , ma non ai livelli inferiori. Il legame tra il µ-calcolo e i giochi di parità è molto stretto. Ad esempio tali giochi sono connessi con il problema del model checking per il µ-calcolo, cioè dato un grafo finito G, un punto v e una formula φ, decidere se G, v |= φ. Il problema del model checking è polinomialmente equivalente al problema di determinare il vincitore di un gioco di parità. Entrambi i problemi sono nella classe di complessità N P e, per complementazione, anche in coN P , vedi [7]. Sarebbe molto desiderabile un algoritmo polinomiale. 20 References [1] A. Arnold, The mu-calculus alternation-depth hierarchy is strict on binary trees, RAIRO Informatique théorique et applications 33, 329339, 1999. [2] A. Arnold and D. Niwinski, Fixed point characterization of Büchi automata on infinite trees, J. Inf. Process. Cybern. EIK 26, 453-461, 1990. [3] J. Bradfield, The modal µ-calculus alternation hierarchy is strict, Proceedings of CONCUR ’96, Lecture Notes in Computer Science n. 1119, 233-246, 1996. [4] J. Bradfield, Simplifying the modal µ-calculus alternation hierarchy, Proceedings of STACS ’98, Lecture notes in Computer Science n. 1373, 39-49, 1998. [5] A. Emerson and E. Clarke, Characterizing correctness properties of parallel programs using fixpoints, in: Automata, Languages and Programming, 7th Colloquium, Lecture Notes in Computer Science n. 85, 169-181, 1980. [6] A. Emerson, C. Jutla, The complexity of tree automata and logics of programs, SIAM Journal of Computing 29, 132-158, 1999. [7] A. Emerson, C. Jutla, P. Sistla, On model checking for fragments of µ-calculus, Proceedings of 5th Int. Conference on Computer Aided Verification, Lecture Notes in Computer Science n. 697, 385-396, 1993. [8] E. Grädel, P. Kolaitis and M. Vardi, On the decision problem for twovariable first-order logic, Bull. Symbolic Logic 3: 53-69, 1997. [9] D. Janin, I. Walukiewicz, On the expressive completeness of the model mu-calculus w.r.t. monadic second order logic, Proceedings of CONCUR ’96, Lecture Notes in Computer Science n. 1119, 263-277, 1996. [10] H. Kamp, Tense logic and the theory of linear order, Ph. D. Dissertation, University of California at los Angeles, 1968. [11] D. Kozen, Results on the propositional µ-calculus. Theoretical Computer Science 27, 333-354, 1983. 21 [12] R. Ladner, The computational complexity of provability in systems of modal propositional logic. SIAM Journal of Computing 6 (3): 467-480, 1977. [13] G. Lenzi, The µ-calculus and the hierarchy problem, Ph. D. Thesis, Scuola Normale Superiore, Pisa, 1997. [14] F. Moller, A. Rabinovich: On the expressive power of CT L∗ , Proceedings of LICS ’99, 360-369, 1999. [15] D. Niwinski, On fixed point clones, 13th colloquium on Automata, Languages and Programming, Lecture Notes in Computer Science n. 226, 464-473, 1986. [16] D. Park, Concurrency and automata on infinite sequences, Lecture Notes in Computer Science n. 154, 561-572, 1981. [17] A. Pnueli, The temporal logic of programs, Proceedings of the 18th IEEE Symposium on Foundations of Computer Science, 46-57, 1977. [18] A. Prior, Time and Modality, Oxford University Press, 1957. [19] E. Rosen, Modal logic over finite structures, Technical Report, university of Amsterdam, 1995. [20] J. Van Benthem, Modal Correspondence Theory, dissertation, Mathematical Institute, University of Amsterdam, 1976. [21] I. Walukiewicz, Completeness of Kozen’s axiomatization of the propositional µ-calculus, Information and Computation 157, 142-182, 2000. [22] P. Wolper, Temporal logic can be more expressive, Information and Control 56, 72-99, 1983. 22