• Non ci sono risultati.

Automi alternanti e model checking

N/A
N/A
Protected

Academic year: 2021

Condividi "Automi alternanti e model checking"

Copied!
40
0
0

Testo completo

(1)

Automi alternanti e model checking

Angelo Montanari (e Stefano Tognazzi) Universit`a di Udine

(2)

Indice

Automi di Buechi su parole infinite

Automi alternanti di Buechi su parole infinite Automi di Buechi su alberi infiniti

Automi alternanti di Buechi su alberi infiniti Automi alternanti deboli

LTL e automi alternanti CTL e automi alternanti deboli Model checking per LTL Model checking per CTL

(3)

Automi di Buechi su parole infinite

Un automa (non deterministico) di Buechi su parole infinite A `e una quintupla (Σ, S, s0, ρ, F ), dove:

I Σ `e un alfabeto finito di simboli non vuoto;

I S `e un insieme finito di stati non vuoto;

I s0∈ S `e lo stato iniziale;

I ρ : S × Σ → 2S `e una funzione di transizione: ρ(s, a) `e l’insieme di stati che A pu`o raggiungere a partire dallo stato s in corrispondenza del carattere a; alternativamente, la

funzione di transizione pu`o essere vista come una relazione ρ ⊆ S × Σ × S.

I F ⊆ S `e l’insieme degli stati finali.

Il linguaggio riconosciuto da A viene indicato con L(A).

(4)

Risultati di base

Proposizione

Si assuma che A1 e A2 siano due automi (non deterministici) di Buechi, rispettivamente con n1 e n2 stati. `E possibile costruire un automa (non deterministico) di Buechi A, con O(n1· n2) stati, tale che L(A) = L(A1) ∩ L(A2).

Proposizione

1. Il problema del vuoto per gli automi (non deterministici) di Buechi `e decidibile in tempo lineare (rispetto al numero di stati dell’automa).

2. Il problema di stabilire se esistono delle parole riconosciute da un automa (non deterministico) di Buechi con n stati `e decidibile in spazio O(log2n).

(5)

Formule Booleane positive

Dato un insieme X di variabili proposizionali, sia B+(X ) l’insieme delle formule Booleane positive costruite a partire da X , ossia costruite a partire dagli elementi di X utilizzando ∧ (congiunzione) e ∨ (disgiunzione). Per comodit`a, assumiamo che B+(X ) contenga anche le costanti logiche true e false.

Sia Y ⊆ X . Diremo che Y soddisfa ϕ ∈ B+(X ) se l’assegnamento del valore di verit`a vero alle variabili proposizionali in Y e falso alle variabili proposizionali in X \ Y rende vera la formula ϕ.

Esempio. Si consideri la formula ϕ = (s1∨ s2) ∧ (s3∨ s4). Gli insiemi {s1, s3} e {s1, s4} rendono entrambi vera ϕ.

(6)

Formule Booleane positive e funzione di transizione

Si consideri un automa (non deterministico) di Buechi A = (Σ, S, s0, ρ, F ) e sia ρ(s, a) = {s1, s2, s3}. Ogni stato s0 in ρ(s, a) pu`o essere visto come una delle possibili scelte non deterministiche dell’automa per il prossimo stato. Tale situazione pu`o essere rappresentata mediante la seguente formula di B+(S):

s1∨ s2∨ s3

Negli automi di Buechi alternanti ρ(s, a) pu`o essere una qualunque formula di B+(S). Ad esempio, la transizione:

ρ(s, a) = (s1∧ s2) ∨ (s3∧ s4)

specifica che A accetta la parola aw (con a ∈ Σ e w ∈ Σ), quando si trova nello stato s, se esso accetta la parola w a partire sia da s1 che da s2 oppure a partire sia da s3 che da s4.

(7)

Automi alternanti di Buechi su parole infinite

Formalmente, un automa alternante di Buechi su parole infinite `e una quintupla A = (Σ, S, s0, ρ, F ), dove tutte le componenti, ad eccezione della funzione di transizione ρ, sono definite come nel caso degli automi (non deterministici) di Buechi e la funzione di transizione ρ `e della forma: ρ : S × Σ → B+(S).

Data la presenza di scelte universali (∧) accanto a scelte

esistenziali (∨) nella funzione di transizione degli automi alternanti, un run di un automa alternante non `e una parola, ma un albero.

Pi`u precisamente, un run r di un automa alternante di Buechi su una parola infinita α = a0a1. . . `e un albero infinito etichettato con simboli dell’insieme degli stati S tale che:

I r () = s0;

I se |x | = i , r (x ) = s e ρ(s, ai) = θ, allora x ha k figli x1, . . . , xk, per qualche k ≤ |S|, e {r (x1), . . . , r (xk)} soddisfa θ.

(8)

Un esempio

Sia ρ(s0, a0) = (s1∨ s2) ∧ (s3∨ s4). I nodi dell’albero di

computazione a livello 1 conterranno l’etichetta s1 o l’etichetta s2

e anche l’etichetta s3 o l’etichetta s4.

Un run pu`o contenere anche rami finiti: se |x | = i , r (x ) = s e ρ(s, ai) = true, allora x pu`o essere privo di figli. Al contrario, non

`e possibile che ρ(s, ai) = false dal momento che false non `e soddisfacibile. Chiediamo, inoltre, la completezza della funzione di transizione, ossia escludiamo la possibilit`a che ρ(s, ai) sia indefinita per qualche s ∈ S e ai ∈ Σ.

La condizione di accettazione per gli automi di Buechi alternanti `e pertanto definita nel seguente modo: ogni cammino infinito in r include un numero infinito di occorrenze di almeno uno stato finale.

(9)

Problema del (non) vuoto per automi alternanti di Buechi

Proposizione

Sia A un automa alternante di Buechi con n stati. `E possibile costruire un automa (non deterministico) di Buechi And con 2O(n) stati tale che L(And) = L(A).

Proposizione

1. Il problema del (non) vuoto per gli automi alternanti di Buechi `e decidibile in tempo esponenziale.

2. Il problema del (non) vuoto per gli automi alternanti di Buechi `e decidibile in spazio quadratico.

(10)

Automi di Buechi su alberi infiniti

Un automa (non deterministico) di Buechi su alberi infiniti di arit`a D `e una sestupla A = (Σ, D, S, s0, ρ, F ), dove:

I Σ `e un alfabeto finito di simboli;

I D ⊂ N `e un insieme finito di ariet`a;

I S `e un insieme finito di stati;

I s0∈ S `e lo stato iniziale;

I ρ `e una funzione di transizione della forma

ρ : S × Σ × D → 2S, dove ρ(s, a, k) ∈ Sk for each s ∈ S, a ∈ Σ, and k ∈ D;

I F ⊆ S `e l’insieme degli stati finali.

Denotiamo con T (A) l’insieme degli alberi riconosciuti da A.

(11)

Problema del (non) vuoto per automi di Buechi su alberi infiniti

Proposizione

Il problema del (non) vuoto per gli automi (non deterministici) di Buechi su alberi infiniti `e decidibile in tempo quadratico.

(12)

Automi alternanti di Buechi su alberi infiniti

I Una automa alternante di Buechi su alberi infiniti A `e una sestupla (Σ, D, S, s0, ρ, F ), dove tutte le componenti, a parte ρ, sono definite come nel caso degli automi di Buechi (non deterministici) su alberi infiniti.

I ρ `e una funzione parziale ρ : S × Σ × D → B+(N × S), dove ρ(s, a, k) ∈ B+({1, . . . , k} × S) per ogni s ∈ S, a ∈ Σ, k ∈ D per i quali ρ(s, a, k) `e definita.

Esempio. Sia ρ(s, a, 2) = ((1, s1) ∨ (2, s2)) ∧ ((1, s3) ∨ (2, s1)). A pu`o scegliere fra 4 alternative: nella prima una ‘copia’ di A procede in direzione 1 nello stato s1 e un’altra in direzione 1 nello stato s3; nella seconda una procede in direzione 1 nello stato s1 e un’altra in direzione 2 nello stato s1; nella terza una procede in direzione 2 nello stato s2 e un’altra in direzione 1 nello stato s3; nella quarta una procede in direzione 2 nello stato s2 e un’altra in direzione 2 nello stato s1. Si noti come pi`u copie possano

procedere nella stessa direzione.

(13)

Run degli automi alternanti di Buechi su alberi infiniti

Un run r di un automa alternante di Buechi su alberi infiniti con etichette in Σ e ariet`a in D `e un albero infinito con etichette in N× S. Sia t = hτ, T i, dove τ `e il dominio e T `e la funzione di etichettatura, l’albero di input e sia r = hτr, Tri. Ogni nodo di τr corrisponde ad un nodo di τ , mentre un nodo di τ pu`o essere associato a pi`u nodi di τr (un nodo di τr, etichettato con (x , s), descrive una copia di A che legge il nodo x di τ nello stato s).

Formalmente, hτr, Tri deve soddisfare le seguenti condizioni:

1. Tr() = (, s0);

2. sia y ∈ τr, Tr(y ) = (x , s), arity (x ) = k, ρ(s, T (x ), k) = θ;

allora, deve esistere un insieme

Q = {(c1, s1), . . . , (cn, sn)} ⊆ {1, . . . , k} × S tale che:

I Q soddisfa θ;

I per ogni 1 ≤ i ≤ n vi `e un nodo y · i ∈ τr e Tr(y · i ) = (x · ci, si).

(14)

Un esempio

Sia t = hτ, T i un albero con

I arity () = 2

I T () = a

I ρ(s0, a, 2) = ((1, s1) ∨ (1, s2)) ∧ ((1, s3) ∨ (1, s1)) I nodi di r = hτr, Tri a livello 1 includeranno

I l’etichetta (1, s1) o l’etichetta (1, s2) e

I l’etichetta (1, s3) o l’etichetta (1, s1)

(15)

Il problema del (non) vuoto per gli automi alternanti di Buechi su alberi infiniti

Proposizione

Sia A un automa alternante di Buechi su alberi infiniti con n stati.

E possibile costruire un automa (non deterministico) di Buechi su` alberi infiniti And con 2O(n log n) stati tale che T (A) = T (And).

Proposizione

Il problema del (non) vuoto per gli automi alternanti di Buechi su alberi infiniti `e decidibile in tempo esponenziale.

(16)

Automi di Buechi su alberi infiniti su un alfabeto con una sola lettera

Il problema del (non) vuoto per gli automi (non deterministici) di Buechi su alberi infiniti `e riducibile al problema del (non) vuoto per gli automi (non deterministici) di Buechi su alberi infiniti

etichettati con simboli di un alfabeto con una sola lettera.

Idea: anzich´e controllare che il linguaggio riconosciuto da un automa A = (Σ, D, S, s0, ρ, F ) non sia vuoto, si controlla che non sia vuoto il linguaggio riconosciuto dall’automa A0 = ({a}, D, S, s0, ρ0, F ), dove, per ogni s ∈ S e k ∈ D, ρ0(s, a, k) =Sb∈Σρ(s, b, k).

`E facile vedere che A accetta qualche albero se e solo se A0 accetta qualche albero a-etichettato: a partire da una

computazione di successo di A0, `e possibile costruire un albero di input sul quale la computazione di successo A0 `e anche una computazione di successo per A; il viceversa segue

immediatamente dalla definizione di ρ0.

(17)

Tale riduzione non pu` o essere applicata agli automi alternanti (in generale)

Si supponga di definire A0 come nel caso degli automi di Buechi su alberi infiniti, con ρ0(s, a, k) =Sb∈Σρ(s, b, k).

Se A0 accetta qualche albero a-etichettato, non `e detto che A accetti qualche albero.

Una condizione necessaria per la validit`a della riduzione `e, infatti, che copie diverse di A0 che operano sullo stesso sottoalbero di input t assumano la stessa etichettatura per t.

Niente impedisce, per`o, che una copia di A0 assuma una certa etichettatura di t e un’altra copia di A0 assuma un’etichettatura diversa di t.

(18)

Automi alternanti di Buechi su alberi infiniti su un alfabeto con una sola lettera

Una possibile via d’uscita: il problema di cui al lucido precedente non si pone nel caso in cui A sia definito su un alfabeto con una singola lettera.

In alcuni casi concreti di interesse, gli automi alternanti di Buechi si trovano ad operare su alberi infiniti su un alfabeto con una sola lettera.

Proposizione

Il problema del (non) vuoto per gli automi alternanti di Buechi su alberi infiniti su un alfabeto di un solo carattere `e decidibile in tempo quadratico.

(19)

Automi alternanti deboli

Gli automi alternanti deboli sono una sottoclasse degli automi alternanti di Buechi su alberi infiniti tale che:

I esiste una partizione dell’insieme degli stati S negli insiemi S1, . . . , Sn (il numero di insiemi della partizione `e detto profondit`a dell’automa) tale che, per 1 ≤ i ≤ n, Si ⊆ F (insieme accettante) oppure Si∩ F = ∅ (insieme rigettante) ed

I `e possibile definire un ordinamento parziale ≤ degli insiemi S1, . . . , Sn tale che, per ogni s ∈ Si e s0 ∈ Sj, se

s0 ∈ ρ(s, a, k), per qualche a ∈ Σ e k ∈ D, allora Sj ≤ Si. Ne segue che ogni cammino infinito in un run di un automa alternante debole finisce intrappolato in un qualche insieme Si. Ci`o consente di concludere che un cammino `e di successo se e solo se l’insieme Si in cui rimane intrappolato `e un insieme accettante.

(20)

Il problema del (non) vuoto per automi alternanti deboli su un alfabeto con una sola lettera

Proposizione

Il problema del (non) vuoto per automi alternanti deboli su alberi infiniti su un alfabeto con una sola lettera `e decidibile in tempo lineare.

(21)

Automi alternanti deboli con alternanza limitata

Esiste una sottoclasse degli automi alternanti deboli di particolare interesse che contiene gli automi alternanti deboli con alternanza limitata. In tali automi, ogni insieme Si della partizione pu`o essere classificato come transiente, esistenziale o universale.

Per ogni insieme Si, s ∈ Si, a ∈ Σ e k ∈ D, si ha che:

I se Si `e transiente, allora ρ(s, a, k) non contiene elementi di Si;

I se Si `e esistenziale, allora gli elementi di Si in ρ(s, a, k) sono legati in maniera disgiuntiva (equivalentemente, se la

transizione viene riscritta in forma normale disgiuntiva, in ogni disgiunto compare al pi`u un elemento di Si);

I se Si `e universale, allora gli elementi di Si in ρ(s, a, k) sono legati in maniera congiuntiva (equivalentemente, se la transizione viene riscritta in forma normale congiuntiva, in ogni congiunto compare al pi`u un elemento di Si).

(22)

Il problema del (non) vuoto per automi alternanti deboli con alternanza limitata su un alfabeto con una sola lettera

Dalla definizione di automi alternanti deboli con alternanza

limitata segue che un’alternanza pu`o presentarsi solo nel passaggio da un insieme Si all’insieme successivo (ossia da uno stato che `e legato in maniera congiuntiva agli stati dell’insieme cui appartiene ad uno stato che `e legato in maniera disgiuntiva agli stati

dell’insieme cui appartiene, e viceversa).

In altri termini, quando una copia di un automa visita uno stato in un insieme esistenziale (rispettivamente, universale) Si, essa procede in modo esistenziale (rispettivamente, universale) fino a quando rimane in Si.

Proposizione

Il problema del (non) vuoto per automi alternanti deboli con alternanza limitata di dimensione n e profondit`a m su un alfabeto con una sola lettera pu`o essere risolto in spazio O(m · log2n).

(23)

LTL e automi alternanti: traduzione - 1

I modelli di una formula della Logica Temporal Lineare (LTL) possono essere visti come computazioni (una computazione `e una funzione π : ω → 2AP, dove AP `e l’insieme delle variabili

proposizionali).

`E possibile dimostrare che le computazioni che soddisfano una data formula sono esattamente quelle accettate da un automa che opera su parole infinite.

Proposizione

Data una formula ϕ di LTL, `e possibile costruire un automa alternante di Buechi su parole infinite Aφ= (Σ, S, s0, ρ, F ), con Σ = 2AP e |S| ∈ O(|ϕ|), tale che L(Aϕ) `e esattamente l’insieme delle computazioni che soddisfano la formula ϕ.

(24)

LTL e automi alternanti: traduzione - 2

I L’insieme degli stati S consiste di tutte le sottoformule di ϕ e delle loro negazioni (identifichiamo ¬¬ψ con ψ).

I Lo stato iniziale s0 `e esattamente ϕ.

I L’insieme degli stati finali F consiste di tutti gli stati/formule di S della forma ¬(ξUψ).

I Per definire la funzione ρ, introduciamo il duale ¯θ di una formula θ, ottenuto a partire da θ sostituendo ∨ con ∧ (e viceversa), true con false (e viceversa) e negando le sottoformule in S. In modo pi`u formale,

I ξ = ¬ξ per ξ ∈ S¯

I true = false¯

I false = true¯

I (α ∧ β) = ¯α ∨ ¯β (se α ∧ β non appartiene a S)

I (α ∨ β) = ¯α ∧ ¯β (se α ∨ β non appartiene a S)

(25)

LTL e automi alternanti: traduzione - 3

La funzione di transizione ρ `e definita nel seguente modo:

I ρ(p, a) = true se p ∈ a

I ρ(p, a) = false se p 6∈ a

I ρ(ξ ∧ ψ, a) = ρ(ξ, a) ∧ ρ(ψ, a)

I ρ(¬ψ, a) = ρ(ψ, a)

I ρ(X ψ, a) = ψ

I ρ(ξUψ, a) = ρ(ψ, a) ∨ (ρ(ξ, a) ∧ ξUψ)

Le regole per true e false sono facilmente derivabili.

Si noti che, nella definizione di ρ(ξUψ, a), il secondo congiunto del secondo disgiunto ξUψ `e uno stato (formula atomica di B+(S)).

(26)

Un esempio

Consideriamo la formula ϕ = ¬(pUq), con p, q ∈ AP, e la

computazione π = {p}ω in cui p `e sempre vero e q `e sempre falso.

`E immediato vedere che la computazione π soddisfa ϕ.

La funzione di transizione ρ per Aφ, conterr`a la seguente transizione: ρ(¬(pUq), {p}) = ρ(q, {p}) ∨ (ρ(p, {p}) ∧ pUq) = false ∨ (true ∧ pUq) = pUq = (pUq `e (una sottoformula di) ϕ)

¬(pUq)

Esiste una computazione di Aφ su π in cui lo stato finale/

accettante ¬(pUq) si ripete infinite volte (sequenza di stati {¬(pUq)}ω).

(27)

LTL e automi non deterministici di Buechi

Proposizione

Data una formula ϕ di LTL, `e possibile costruire un automa (non deterministico) di Buechi su parole infinite And ϕ = (Σ, S, s0, ρ, F ), dove Σ = 2AP e |S| `e in 2O(|φ|), tale che L(And ϕ) `e esattamente l’insieme delle computazioni che soddisfano la formula ϕ.

(28)

Semantica di CTL

La semantica di CTL pu`o essere definita rispetto a programmi (che operano su un insieme di variabili proposizionali AP) della forma P = (W , w0, R, V ), dove:

I W `e un insieme di stati (se W `e finito, P `e detto programma a stati finiti);

I w0 ∈ W `e uno stato iniziale;

I R ⊆ W2 `e una relazione di accessibilit`a totale (assumiamo la totalit`a per ragioni di natura tecnica);

I V : W → 2AP `e una funzione che, dato uno stato, specifica quali variabili proposizionali sono vere in quello stato.

Un cammino in P `e una sequenza di stati u0, u1, . . . tale che, per ogni i ≥ 0, vale R(ui, ui +1). La relazione |= `e definita nel modo usuale.

(29)

CTL e automi alternanti deboli con alternanza limitata:

traduzione - 1

Un programma P `e detto programma ad albero se (l’unfolding del grafo) (W , R) `e un albero con radice w0. Se (l’unfolding di) (W , R) `e un albero D-ario, allora P `e un albero D-ario infinito (R

`e totale) etichettato con elementi in 2AP.

`E possibile dimostrare che i programmi ad albero che soddisfano una data formula sono esattamente quelli accettati da un automa alternante debole con alternanza limitata.

Proposizione

Dati una formula ϕ di CTL e un insieme finito D ⊂ N, `e possibile costruire un automa alternante debole con alternanza limitata Aϕ= (Σ, D, S, s0, ρ, F ), dove Σ = 2AP e |S| `e in O(|φ|), tale che T (Aφ) `e esattamente l’insieme dei programmi ad albero D-ari che soddisfano ϕ.

(30)

CTL e automi alternanti deboli con alternanza limitata:

traduzione - 2

I L’insieme degli stati S consiste di tutte le sottoformule di ϕ e delle loro negazioni (identifichiamo ¬¬ψ con ψ).

I Lo stato iniziale s0 `e ϕ.

I L’insieme F `e composto da tutti gli stati/formule in S della forma ¬E (ξUψ) e ¬A(ξUψ).

I Per definire la funzione ρ, introduciamo il duale ¯θ di una formula θ, definito come nel caso di LTL:

I ρ(p, a, k) = true se p ∈ a

I ρ(p, a, k) = false se p 6∈ a

I ρ(¬ψ, a, k) = ρ(ψ, a, k)

I ρ(ξ ∧ ψ, a, k) = ρ(ξ, a, k) ∧ ρ(ψ, a, k)

I ρ(EX φ, a, k) =Wk c=1(c, φ)

I ρ(AX φ, a, k) =Vk c=1(c, φ)

I ρ(E (ξUψ), a, k) = ρ(ψ, a, k) ∨ (ρ(ξ, a, k) ∧Wk

c=1(c, E (ξUψ)))

I ρ(A(ξUψ), a, k) = ρ(ψ, a, k) ∨ (ρ(ξ, a, k) ∧Vk

c=1(c, A(ξUψ)))

(31)

CTL e automi alternanti deboli con alternanza limitata:

traduzione - 3

Infine, la partizione degli stati di Aϕ e l’ordinamento (parziale) delle classi della partizione sono definiti nel seguente modo:

I lo stato/formula ψ in S costituisce un insieme singoletto {ψ}

della partizione;

I l’ordinamento parziale `e definito nel seguente modo:

{ξ} ≤ {ψ} se e solo se ξ `e una sottoformula o la negazione di una sottoformula di ψ;

I tutti gli insiemi della partizione sono transienti, ad eccezione degli insiemi della forma {E (ξUψ)} o della forma

{¬A(ξUψ)}, che sono esistenziali, e degli insiemi della forma {A(ξUψ)} o della forma {¬E (ξUψ)}, che sono universali.

(32)

Model checking per LTL

Dati un programma a stati finiti e una formula ϕ di LTL che specifica le computazioni ammissibili (del programma), il problema del model checking consiste nello stabilire se tutte le computazioni del programma sono ammissibili.

I Sia u = u0, u1, . . . un cammino di un programma a stati finiti P = (W , w0, R, V ) tale che u0= w0.

I Definiamo computazione di P la sequenza V (u0), V (u1), . . . .

I Diremo che P soddisfa una formula ϕ di LTL se tutte le computazioni di P soddisfano ϕ.

Il problema del model checking per LTL `e il problema di stabilire se P soddisfa o meno ϕ.

(33)

Model checking per LTL: passi intermedi - 1

L’automa AP per il programma P.

I Un programma P = (W , w0, R, V ) pu`o essere visto come un automa (non deterministico) di Buechi AP = (Σ, W , w0, ρ, W ), dove Σ = 2AP e v ∈ ρ(u, a) se e solo se uRv e a = V (u).

I Dato che l’insieme degli stati finali coincide con l’insieme di tutti gli stati, ogni run infinito di AP `e di successo

(accettante) e, quindi, L(AP) `e l’insieme di tutte le computazioni di P.

L’automa Aϕ per la formula ϕ di LTL.

I Per ogni formula ϕ di LTL, `e possibile costruire un automa Aϕ tale che L(Aϕ) `e esattamente l’insieme delle computazioni che soddisfano la formula φ.

(34)

Model checking per LTL: passi intermedi - 2

I Date le propriet`a di chiusura rispetto all’intersezione e alla complementazione degli automi (non deterministici) di

Buechi, il problema di verificare se L(AP) ⊆ L(Aϕ) (problema del model checking) `e equivalente al problema di verificare se l’intersezione delle computazioni accettate da AP e di quelle che rendono falsa ϕ `e vuota, ossia al problema del vuoto per L(AP) ∩ L(Aϕ).

I Per costruire L(Aφ) si considerino le seguenti uguaglianze:

L(Aφ) = L(Aφ) = Σω− L(Aφ).

I E possibile costruire un automa A` ¬φ che accetta il linguaggio L(Aφ) con 2O(|φ|) stati.

I Infine, `e possibile costruire un automa che riconosce il linguaggio intersezione L(AP) ∩ L(A¬φ) con O(|W | · 2O(|φ|)) stati.

(35)

Un algoritmo di model checking basato su automi per LTL

Proposizione

Stabilire se un programma a stati finiti P soddisfa una formula ϕ di LTL pu`o essere fatto in tempo O(|P| · 2O(|ϕ|)) e in spazio O((|ϕ| + log |P|)2).

Si noti che la complessit`a temporale `e polinomiale nella dimensione del programma ed esponenziale nella dimensione della formula (specifica).

Dato che la dimensione della formula `e di norma sufficientemente ridotta, tale soluzione si dimostra effettivamente praticabile – si veda il sistema Aalta (Another Algorithm for LTL To Buechi Automata).

(36)

Model checking per CTL

Nel caso delle logiche temporali ramificate, come CTL, ogni programma corrisponde ad un singolo albero di computazione.

Il model checking si riduce alla verifica dell’accettazione di tale albero di computazione da parte dell’automa che descrive la formula (specifica).

(37)

Model checking per CTL: passi intermedi - 1

I Un programma P = (W , w0, R, V ) pu`o essere visto come un albero hτP, TPi, con etichette in W , ottenuto attraverso l’unfolding di P a partire dallo stato iniziale w0.

I Per ogni w in W , definiamo arity (w ) come il numero dei suoi successori rispetto alla relazione R.

I Sia succR(w ) = (w1, . . . , warity (w )) la lista ordinata dei successori di w (assumiamo che i nodi di W siano ordinati).

I τP e TP possono essere definiti induttivamente nel seguente modo:

I  ∈ τP e TP() = w0;

I per y ∈ τP, con succR(TP(y )) = (w1, . . . , wk), e per ogni 1 ≤ i ≤ k, y · i ∈ τP e TP(y · i ) = wi.

(38)

Model checking per CTL: passi intermedi - 2

I L’albero del programma pu`o essere successivamente trasformato in un albero D-ario etichettato con elementi in 2AP

I Tale albero `e formalmente definito dalla coppia (τP, V · TP), dove V · TP = V (TP(y )), con y ∈ τP.

Consideriamo ora una formula ϕ di CTL. Sia AD,ϕ l’automa alternante debole con alternanza limitata che accetta esattamente gli alberi D-ari che soddisfano la formula ϕ.

`E facile vedere che (τP, V · TP) `e accettato da AD,ϕ se e solo se P |= ϕ.

Mostriamo, ora, che l’automa prodotto di P e AD,ϕ`e un automa alternante debole con alternanza limitata su un alfabeto di una lettera che `e non vuoto se e solo se (τP, V · TP) `e accettato da AD,ϕ.

(39)

Model checking per CTL: passi intermedi - 3

I Sia AD,ϕ= (2AP, D, S, ϕ, ρ, F ) e sia S1, . . . , Sn la partizione di S.

I L’automa prodotto di P e AD,ϕ`e l’automa AP,ϕ= ({a}, D, W × S, (w0, ϕ), δ, G ), dove:

I dati s ∈ S, w ∈ W , succR(w ) = (w1, . . . , wk) e ρ(s, V (w ), k)

= θ, definiamo δ((w , s), a, k) = θ0, dove θ0 `e ottenuta da θ sostituendo ogni atomo (c, s0) presente in θ con l’atomo (c, (wc, s0));

I G = W × F ;

I W × S `e partizionato in W × S1, W × S2, . . . , W × Sn;

I per 1 ≤ i ≤ n, W × Si `e transiente (rispettivamente, esistenziale, universale) se Si `e transiente (rispettivamente, esistenziale, universale).

Si noti che se P ha m1 stati e AD,ϕ ha m2 stati, allora AP,φ ha O(m1· m2) stati.

(40)

Un algoritmo di model checking per CTL basato su automi

Proposizione

T (AP,φ) non `e vuoto se e solo se P |= φ

Proposizione

Stabilire se un programma a stati finiti P soddisfa una formula ϕ di CTL pu`o essere fatto in tempo O(|P| · |φ|) e spazio

O(|φ| · log2|P|).

Riferimenti

Documenti correlati

Ci possono essere archi che portano in locazioni distinte ma che condividono parzialmente le activation. Le attivazioni non sono necessariamente sulle frontiere

A mathematical model is a formal model whose primary semantics is denotational; that is, the model describes by equations a relationship between quantities and how they change

in un campo vettoriale la direzione e l’intensit `a della derivata dipende dal punto, ma non dal tempo, quindi si tratta di un’equazione autonoma..

IDA (Independent Dynamics hybrid Automata) consentono identity resets tra locazioni che hanno la stessa dinamica Possiamo ridurre il problema della raggiungibilit `a per FOCoRe e IDA

Using -semantics and assuming both bounded invariants and decidability for specification language, we have decidability of reachability problem for hybrid automata.

A C++ package for set-based analysis of dynamical and control systems, including reachability analysis, robust simulation and safety verification. Balluchi, Casagrande,

Ma anche nomi più complessi di simboli, se servono a rendere più comprensibile lo scenario rappresentato:.. –

Simbolo letto dall’ingresso (pu` o non leggere nulla) L’automa a pila passa alla configurazione successiva:. cambiando