Introduzione all’approccio basato su automi per il Model Checking:
Si ricorda che data una struttura di Kripke e una formula di LTL
il problema del model checking è decidere se per ogni AP-cammino
di K vale che
(scritto in breve
).
Un algoritmo di model checking è dunque una procedura di decisione che per una struttura di Kripke K e formula restituisce:
Si se
No se non è il caso che e fornisce in questo secondo caso un controesempio che testimonia la violazione della proprietà.
In alternativa al provare che per ogni cammino
, è preferibile considerare il problema duale e cercare un controesempio che violi la proprietà desiderata:
provare che esiste un cammino tale che
Un AP-cammino è una sequenza di insiemi di simboli proposizionali in AP opportunamente sincronizzata con un cammino dell’LTS in K.
Per ogni formula di LTL, è possibile definire un automa di Büchi
che accetta una sequenza infinita se e solo se
In altri termini il linguaggio è precisamente l’insieme dei modelli che soddisfano la formula
Per verificare se un AP-cammino di K è tale che
occorre dunque vedere se:
Se K ha un numero finito di stati può essere visto come un automa di Büchi
La sincronizzazione tra indicata da
è ancora un automa di Büchi.
Il problema di verificare l’esistenza di un controesempio alla proprietà in K è equivalente a verificare se l’automa di Büchi
accetta il linguaggio vuoto.
Il problema del model checking di LTL è dunque riconducibile alla risoluzione del problema del vuoto per un opportuno automa di Büchi.
Dal punto di vista della complessità
Per la costruzione dell’automa di sincronizzazione è comodo utilizzare una variante degli automi di Büchi chiamata automi di Büchi generalizzati.
Rispetto alla definizione standard gli automi di Büchi generalizzati variano solo rispetto alla condizione di accettazione.
Un automa di Büchi generalizzato ha un insieme di insiemi di stati di accettazione.
La condizione di accettazione impone che un comportamento sia accettato se per ogni insieme esiste uno stato che occorre infinitamente spesso nella computazione.
La condizione di accettazione generalizzata non aggiunge capacità espressiva agli automi di Büchi.
Infatti, un automa di Büchi generalizzato
è equivalente alla seguente intersezione di automi di Büchi standard
La formula deve essere espressa in una opportuna forma normale in cui la negazione coinvolge solo simboli di predicato.
Per semplicità non vengono considerati gli operatori temporali derivati.
La sintassi della forma normale è come segue.
Con .
Si osserva che per la forma normale sono necessari:
Entrambi i connettivi di congiunzione e disgiunzione
Entrambi gli operatori temporali Until e Release (uno il duale dell’altro)
Gli operatori sono invece derivabili.
Ogni formula di LTL può essere opportunamente riscritta in una formula equivalente che rispetta la forma normale utilizzando i seguenti schemi:
Per gli operatori derivati:
Nella costruzione proposta i due passi elencati per la procedura di model checking:
Costruzione dell’automa per con
la normalizzazione di
Costruzione dell’automa sincronizzato
Non verranno eseguiti in sequenza ma realizzati simultaneamente.
La costruzione proposta di seguito è quella dell’automa .
Idea della costruzione
Ogni stato s della struttura di Kripke K viene accoppiato con un insieme H di sottoformule di garantendo che
Se (s,H) è uno stato di M, e è una formula in H (sottoformula di
) deve esistere un cammino della struttura di Kripke K che parte da s e soddisfa
.
I simboli proposizionali in H devono essere compatibili con quelli associati allo stato s nella struttura di Kripke (cioè devono essere presenti in L(s)).
L’inserimento in H di una formula che coinvolge operatori temporali che parlano di stati futuri deve essere compatibile con l’etichettatura fatta da L di almeno un cammino che parta dallo stato s.
Data una formula di LTL in forma normale si identifica con
l’insieme delle sottoformule di
.
Un sottoinsieme si dice Atomo se rispetta dei vincoli di consistenza detti consistenza locale:
L’insieme di atomi per una formula
Un atomo è un insieme di sottoformule consistenti cioè che possono essere soddisfatte simultaneamente in un preciso istante temporale.
Un atomo è candidato ad essere associato ad uno stato s di K (se compatibile con L(s)).
I vincoli di consistenza locale riguardano solo la compatibilità (rispetto alla soddisfacibilità) di un insieme di formule relativamente ad un istante temporale (stato).
La presenza di operatori temporali che relazionano stati presenti con stati successivi impone di considerare regole di consistenza che devono essere rispettate quando due atomi At e At’ debbono essere associati a uno stato s e al suo successore s’.
Per due atomi At e At’ la relazione Succ(At,At’) vale se valgono i seguenti vincoli di consistenza di passo:
Si osservi che i vincoli per Until e Release possono essere propagati al passo successivo nel rispetto delle seguenti equivalenze semantiche
Sia una struttura di Kripke una formula in forma normale, l’automa di sincronizzazione è un automa di Buchi generalizzato
con il vincolo,
con il vincolo,
è il seguente insieme di transizioni
La condizione di accettazione deve risolvere un potenziale problema legato al soddisfacimento delle sottoformule della forma
della
formula .
La regola di propagazione tra gli atomi successori
Potrebbe propagare indefinitamente il vincolo di soddisfacimento al successore senza che la formula venga mai soddisfatta nel futuro come richiesto dalla semantica.
L’insieme di accettazione
esclude la possibilità di propagazione indefinita dell’Until.
Si osservi che ogni insieme di accettazione è in corrispondenza con una occorrenza di una formula Until
Per esemplificare la costruzione dell’automa di sincronizzazione si considera la struttura di kripke in figura.
La formula da verificare è
La formula per cui trovare il controesempio è
La sua equivalente normalizzata è
Sia
Per semplicità sono presentati solo gli stati con atomi minimali. Non sono state considerati atomi con combinazioni irrilevanti di proposizioni al fine del problema.
Tutti gli stati dell’esempio non sono di accettazione: gli stati di accettazione hanno un atomo che o contiene o non contiene
(proprietà mai soddisfatta).
Si osserva che anche tutti gli stati non riportati hanno atomi in cui contengono e non contengono
L’automa accetta il linguaggio vuoto e dunque non esiste controesempio alla proprietà che vale per tutte le computazioni.
Quindi
Fig.3 Automa sincronizzazione
Negli atomi associati agli stati la presenza della proposizione
impedisce di comprendere nell’atomo la formula
che implicherebbe per consistenza la presenza anche di
Negli atomi associati agli stati la consistenza a passo impedisce di comprendere nell’atomo la formula
che, se presente, dovrebbe essere propagata anche all’atomo dello stato
Fig.3 Automa sincronizzazione
1. Introduzione ai metodi formali di specifica
2. Semantica dei formalismi di specifica
3. Astrazione e Bisimulazione debole
4. FSM: Macchine a Stati Finiti
5. FSM: Non-determinismo e succintezza
7. FSM e Parallelismo – seconda parte
8. FSM e Parallelismo – terza parte
9. Promela
10. Specifica e verifica in SPIN
11. Proprietà di liveness in SPIN
12. Specifica di proprietà in Logica Temporale Lineare
13. Comportamenti infiniti: Automi di Büchi
14. Model checking di LTL basato su automi
15. Specifica di sistemi real time: Automi Temporizzati
16. Proprietà degli Automi Temporizzati
17. Problemi di decisione negli Automi Temporizzati
18. Il sistema di verifica UPPAAL