Tecniche avanzate per la correttezza del softwareAutomi temporizzati e Uppaal
Università degli studi di Salerno
Prof. Salvatore La Torre
Studente: Vincenzo Ceci
1
• Introduzione
• Modellare il tempo
• Overview
• ω-automata
• Automa di Buchi
• Automi temporizzati
• Automa temporizzato di Büchi
• Uppaal
• Applicazione in Uppaal
• Controllo del vuoto
Indice
2
Introduzione• Gli automi permettono di descrivere con precisione e in maniera
formale il comportamento di molti sistemi presenti nel mondo reale
• automi temporizzati• Sequenza di stati o eventi di sistema (execution trace) associata ad una
temporizzazione
• Obiettivo: dare delle specifiche e verificare sistemi real-time modificando gli automi classici
3
Papers usati
• A Theory of Timed Automata (1994) Rajeev Alur and David Dill
4
• An introduction to timed Automata, Patricia Bouyer
• Decision problems for timed automata, Rajeev Alur
Modellare il tempo: tempo discreto
• Richiede che la sequenza temporale sia una sequenza monotona crescente di interi
• Vantaggio: può essere trasformato facilmente in un linguaggio formale classico attraverso dei particolari eventi silenziosi
• Svantaggio: non rappresenta efficientemente gli eventi del mondo reale
• Il tempo discreto descrive il tempo continuo utilizzando dei quantum interi di tempo
• Limitazione sull’accuratezza della rappresentazione
5
Modellare il tempo: tempo continuo
• Sono valori reali che aumentano monotonicamente senza limiti
• Vantaggio: è un modello più naturale per rappresentare i processi fisici
• Svantaggio: è difficile trasformarlo in un linguaggio formale classico
• Sono stati così realizzati linguaggi temporizzati e automi temporizzati per fare ragionamenti su tali sistemi
6
Overview• Analizzeremo gli automi temporizzati, automi a stati finiti con
un insieme finito di clock a valori reali.
• Gli automi temporizzati si basano su altri automi:• ω-automata• Automa di Buchi
• Gli automi temporizzati accettano timed-words• infinite sequenze in cui ad ogni simbolo è associato un tempo a
valori reali di avvenimento
• Caratteristiche• Reset del clock• Vincoli temporali• Transizioni possibili solo se i vincoli temporali sono soddisfatti
7
ω-automata
• Un ω-linguaggio consiste di parole di lunghezza infinita
• Una ω-parola è una sequenza infinita di simboli su un alfabeto A
• Un ω-automa fornisce una rappresentazione finita per i ω-linguaggi
• E’ simile ad un NFA• Condizione di accettazione modificata per accettare ω-parole
• Formalmente: <Σ, S, S0, E>• Σ alfabeto finito di simboli• S insieme di stati• S0 insieme di stati iniziali• E ∈ S x S x Σ insieme di archi 8
Automa di Büchi – definizione formale• Gli automi di buchi inseriscono le condizioni di accettazione
• Formalmente: <Σ, S, S0, E, F>
• Σ alfabeto finito di simboli
• S insieme di stati
• S0 insieme di stati iniziali
• E ∈ S x S x Σ insieme di archi
• F ∈ S
• Una esecuzione r è accettante se e solo se alcuni stati dell’insieme F si ripetono infinite volte lungo r. Formalmente:
• L(A) = {ω | ω ∈Σω ∧ A ha una esecuzione di accettazione su ω }
9
Automa di Büchi - Esempio
10
Automa di Büchi - Osservazioni
• Un ω-linguaggio è ω-regolare se e solo se è accettato da alcuni automi di Buchi.
• L’automa visto nell’esempio precedente è ω-regolare
• La classe dei linguaggi ω-regolari è chiusa in tutte le operazioni booleane.
11
Automi temporizzati - Introduzione• Utilizzano timed-words caratterizzate da:
• Simbolo
• Valore di tempo ( il dominio del tempo è l’insieme dei numeri reali)
• Obiettivo:• estendere la definizione di ω-automa in modo che essi accettano le
timed-words
• realizzare una teoria per i linguaggi timed-regular
12
Automi temporizzati - timed-words
• Una sequenza di tempo t= t1 t2 … è una sequenza infinita di valori di tempo ti ∈ R con ti>0, che soddisfano i seguenti vincoli:
• Monotonia: per ogni i>=1, ti < ti +1
• Progresso: per ogni p ∈ R, c’è qualche i>=1 tale che ti > p
• Una timed-word su un alfabeto Σ è una coppia (w,t) dove w=w1 w2
… è una parola infinita su Σ e t è una sequenza di tempo
• Se una parola temporizzata (w, t) è data in input ad un automa, al tempo ti viene letto il simbolo wi
13
Automi temporizzati – Esempio 1
Temporizzato
Non
temporizzato
14
Automi temporizzati – Esempio 2
15
Automi temporizzati - Vincoli e interpretazione di clock
• I vincoli di clock possono essere definiti usando un insieme Φ(x) di vincoli δ
• Una interpretazione di clock v per un insieme di clock X assegna un valore reale ad ogni clock, ciò è possibile quando tutti i vincoli su quel clock sono soddisfatti
16
Automi temporizzati - Definizione formale
• <Σ, S, S0,C, E>
• Σ alfabeto finito di simboli
• S insieme finito di stati
• S0 insieme di stati iniziali
• C insieme finito di clock
• E ∈ S x S x Σ x 2C x Φ(C)
• Un arco <s, s’, a, λ, δ> rappresenta una transizione dallo stato s allo stato s’ su input a. λ è l’insieme dei clock e δ è un vincolo di clock
17
Automi temporizzati - Esecuzione temporizzata
• R è un’esecuzione in cui sono soddisfatti i seguenti requisiti:• Inizializzazione: <S0, V0>
• Successione
18
Automa temporizzato di Büchi• Un automa temporizzato di Büchi (TBA) è una tupla <Σ, S, S0,C, E, F>
• Σ alfabeto finito di simboli• S insieme finito di stati• S0 insieme di stati iniziali• C insieme finito di clock• E ∈ S x S x Σ x 2C x Φ(C) • F insieme di stati finali
• Un’esecuzione r su una parola temporizzata (w,t) è chiamata esecuzione accettante se e solo se inf(r) F ∅.
• Per un TBA D, il linguaggio L(D) delle timed-words è:• {(w,t) | D ha una esecuzione accettante su (w,t)}
• Per ogni linguaggio ω-regolare L, il linguaggio temporizzato {(w, t)| w ∈ L} è regolare
• Un linguaggio temporizzato e’ regolare se esiste un automa di Büchitemporizzato che lo accetta.
• La classe dei linguaggi regolari temporizzati e’ chiusa sotto l’unione e l’intersezione, ma non sotto il complemento. 19
20
Automa temporizzato di Büchi
Sia dato il seguente linguaggio e il relativo automa:
- Il complemento di questo linguaggio non può essere rappresentato da un TBA
- Il complemento dovrebbe assicurarsi che nessuna coppia di ‘a’ sia separata a distanza 1
- tenere traccia dei tempi di tutte le ‘a’ in una unità di tempo richiederebbe un numero infinito di clock.
Automa temporizzato di Büchi - esempio
21
22
Automa temporizzato di Büchi -Convergenza temporale
Per un linguaggio regolare temporizzato si possono verificare molti simboli in un intervallo di tempo finito.Inoltre, i simboli possono essere arbitrariamente vicino a ciascun altro.
Una parola accettata è:
Se richiediamo che tutti i valori di tempo τi siano multipli di qualche costante fissata ε, il linguaggio accettato dall’automa sarebbe vuoto.
Uppaal - panoramica- Strumento utilizzato per la modellazione, validazione e verifica di
sistemi real-time modellati come reti di automi temporizzati
- Sviluppato in collaborazione con la Uppsala University e la Aalborg
University
- Consiste in due parti principali:
- Una Graphical User Interface (GUI)
- Un model-checker engine
23
Uppaal - panoramica- Tecnica «on-the-fly» per risolvere il problema dell’esplosione
combinatoria
- Tecnica simbolica semplificata per ridurre il problema della verifica in
semplici sistemi di vincoli lineari
- Verifica basata sulla costruzione dell’automa delle regioni [slide
integrative]
- Trasformazione in un automa il cui problema del vuoto è finito
- Esecuzione di diversi algoritmi (reachability, safety ecc)
- Utilizzo di «zone di clock» per risolvere ulteriormente eventuali
esplosioni di stati
24
25
Uppaal – panoramica – automa delle regioni
- Negli automi temporizzati si ha un numero infinito di configurazioni
- coppie (stato – tempo) infinite
- Sono state sviluppate tecniche simboliche e astrazioni, che tengano
comunque in considerazione le proprietà specifiche degli automi
temporizzati
- L’automa delle regioni riduce il modello da temporizzato a non
temporizzato
- Non tutto si può ridurre ad un caso non temporizzato finito, infatti il
problema dell’universalità degli automi temporizzati è indecidibile.
26
Uppaal – panoramica – automa delle regioni
- Automa delle regioni: a partire dall’automa temporizzato, creare una
astrazione con comportamenti finiti
- La verifica della reachability property in un automa temporizzato si riduce
alla verifica della reachability property in un automa a stati finiti.
- Partizionamento in regioni:
- Insieme finito di clock X
- R partizione finita di di Tx
- C insieme finito di vincoli di X
- Tre condizioni di compatibilità su R :- Due valutazioni equivalenti soddisfano gli stessi clock
- L’intercorrere del tempo non distingue due valutazioni equivalenti
- Il reset dei clock non distingue due valutazioni equivalenti
27
Uppaal – panoramica – automa delle regioni
- Se R soddisfa queste tre condizioni, diremo che R è un gruppo di
regioni per l'insieme dei vincoli C
- R definisce una relazione di equivalenza tra le valutazioni
- v ≡R v’ se e solo se per ogni regione R di R, v ∈ R ⇐⇒ v’ ∈ R
- L’automa delle regioni simula in qualche modo l’automa
temporizzato di partenza:
- Un gruppo di transizioni simula azioni discrete, mentre il
secondo tipo di transizioni simula l’intercorrere del tempo
Per un’esecuzione r di A del tipo:
Definiamo la sua proiezione [r] = (s, [v]) come:
28
Uppaal – panoramica – automa delle regioni
29
Uppaal – panoramica – automa delle regioni
Proprietà fondamentale:- Sia A un automa temporizzato con insieme di vincoli C. Assumiamo che possiamo costruire un insieme di regioni R per C. Allora
- Dove L(ΓR (A)) è il linguaggio (non temporizzato) accettato da ΓR (A)- Più precisamente, ogni volta che in A è possibile attendere qualche ritardo
e poi viene effettuata la transizione su ‘a’, allora in ΓR (A) è possibile
prendere diverse ε- transizioni e poi effettuare la transizione su ‘a’, e viceversa.
- In questo modo la verifica della reachability property in A si riduce alla verifica della reachability in ΓR (A).
Uppaal – ambiente di sviluppomenu
icone
tabs
30
Uppaal - editor
- Un modello sviluppato in Uppaal è visto come un insieme di processi
concorrenti (rete di automi), scritti con un linguaggio simil C.
- Ogni processo è graficamente visto come un automa temporizzato
- Un automa temporizzato è costruito all’interno della finestra «editor»
attraverso gli elementi grafici, tipici di un automa.
31
Uppaal - editor - archiGli archi sono generalmente annotati con guardie, updates,
synchronizations:
Un update è un’espressione di assegnamento, utilizzata per cambiare lo
stato del sistema
Una guardia è un’espressione che utilizza le variabili e i clock per
indicare quando una transizione è permessa
32
Uppaal – editor - archiLa sincronizzazione è il meccanismo usato per coordinare l’azione di due o più processi.
- Dichiarata attraverso un channel c (all’interno del file «declarations» , dichiara con «chan
c» ). Successivamente un processo avrà un arco annotato con «c!» e gli altri processi
avranno l’annotazione sugli archi con «c?»
3 tipi di sincronizzazioni:
- regular channel (dichiarato con «chan c», c! si sincronizza con un unico ricevente c?)
- urgent channel (dichiarato con «urgent chan c», la transizione viene effettuata subito.
Non possono essere specificati vincoli di tempo sugli archi)
- broadcast channel (dichiarato con «broadcast chan c», c! si sincronizza con un numero
arbitrario di riceventi c?))33
Uppaal – editor - positions e invariants
- Hanno un nome opzionale
- Possono essere di tre differenti tipi
- Normal: classico
- Urgent: blocca il tempo
- Committed: blocca il tempo, inoltre il sistema
dovrà uscire dallo stato committed prima che
ricominci ad avanzare il tempo
- E’ possibile assegnare a dei positions delle
invarianti
- Le invarianti sono condizioni che devono essere sodisfatte mentre l’automa si trova in
quella position. Essi possono essere definite attraverso variabili e clocks 34
Uppaal – simulatore- permette all’utente di simulare in modo interattivo e grafico il
comportamento dinamico del sistema
- 3 modalità: manuale, random, selezione
35
Uppaal – Verificatore- La fase successiva è verificare che il modello verifica delle proprietà
- Le proprietà devono essere scritte in un linguaggio per query specifico di Uppaal (TCTL)
- I tipi di proprietà che possono essere espresse in «Uppal query language» possono essere classificate
come:
- Reachability properties: «proprietà di raggiungibilità»
- E<> p : partendo dallo stato iniziale,
esiste un path e uno stato in cui p è
soddisfatta.
36
- Safety properties: «proprietà di sicurezza»
Uppaal – Verificatore
- A[] p : Partendo dallo stato iniziale, per ogni
path e per ogni stato la proprietà P è
soddisfatta.
- E[] p : Partendo dallo stato iniziale, esiste un pathtale che per ogni stato la proprietà P è soddisfatta.
37
- A<>p : Partendo dallo stato iniziale, per ogni
path esiste uno stato per cui P è soddisfatta
Uppaal – Verificatore- Liveness properties:
- . qp: Partendo dallo stato iniziale, per ogni
path in cui Q è soddisfatta, allora anche P lo
sarà durante il path.
- Deadlock properties: . Uno stato è in deadlock se è impossibile che un modello si evolva ad uno stato successivo.
- E<> deadlock, esiste un deadlock.
- A[] not deadlock, non c’è un deadlock. 38
Uppaal – Verificatore
39
Applicazione in Uppaal – Editor (1)- Rappresentazione del sistema: Attraversamento di un treno in un passaggio a livello
- Due automi che interagiscono tra loro:
- Treno: può trovarsi lontano, vicino al passaggio a livello, sul passaggio a livello;
- Barriera: può essere alzata, in abbassamento, abbassata, in alzamento.
Automa «Treno» File «Declarations» dell’automa «Treno»
Modellazione del treno:
40
Automa «Barriera» File «Declarations» dell’automa «Barriera»
Modellazione della barriera:
Applicazione in Uppaal – Editor (2)
41
Applicazione in Uppaal – Editor (3)
File «Declarations» globale
Dichiarazione variabili globali
- Exit: determina l’avvenuto attraversamento
del treno
- app: determina l’imminente arrivo del treno
File «System declarations»
Dichiarazione dei sistemi modellati
«Treno» e «Barriera»
42
Applicazione in Uppaal - Simulatore
43
Applicazione in Uppaal - Verificatore
44
SLIDE INTEGRATIVE
45
Controllo del vuotoIntroduzione
• Ci concentriamo sugli automi di Buchi su parole untimed
• Useremo, come restrizione dei vincoli di clock, delle costanti intere
• Per il controllo del vuoto realizzeremo un automa equivalente, chiamato «automa delle regioni»
• Stati visti come «regioni di clock»
• Archi realizzati attraverso il concetto del «time successor»
46
Controllo del vuotoStato esteso
Dato un automa temporizzato < Σ,S,S0,C,E>, uno stato esteso è dato da
una coppia <s,v>, dove sS e v è una interpretazione per i clock C.
Se per due stati estesi i valori dei clock hanno la stessa parte intera e lo
stesso ordine sulla parte frazionaria, allora i cammini a partire dai due
stati sono gli stessi.
Dato tR, fract(t) denota la parte frazionaria e t la parte intera. t = t
+fract(t)
47
Sia A=<S,S,S0,C,E> un automa temporizzato.
Per ogni xC sia cx la piu’ grande costante tale che xcx o xcx
che occorre in E.
La relazione di equivalenza ~ è definita sull’insieme delle
interpretazioni per C: v~v’ se e solo se valgono le seguenti
condizioni:
1. per tutti gli xC v(x) e v’(x) hanno lo stesso valore oppure
v(x) e v’(x) sono entrambi maggiori di cx
2. per tutti gli x,yC con v(x) cx e v(y) cy, fract(v(x)) fract(v(y))
se e solo se fract(v’(x)) fract(v’(y))
3. per tutti gli xC con v(x) cx, fract(v(x)) =0 se e solo se
fract(v’(x)) =0
Una regione di clock è una classe di equivalenza di ~, denotata [v]
Controllo del vuotoStato esteso e regione di clock
48
Controllo del vuotoStato esteso e regione di clock – esempio (1)
• Si consideri un automa temporizzato con due clock, x e y, e cx=2, cy=1.
6 vertici (es vertice rosso: X=0 y=1)
14 segmenti (es linea rossa: 0<x=y<1)
8 regioni (es area rossa: 1<x<2
0<y<1 fract(x)<fract(y))
49
Controllo del vuotoStato esteso e regione di clock – esempio (2)
50
• Una regione a’ è un time-successor della regione a se e solo se per ogni va, esiste un tR, positivo, tale che v+ta’.
Controllo del vuotoTime successor
51
Controllo del vuotoAutoma delle regioni • Indicheremo con R(A) una regione dell’automa temporizzato A
Stati:
• Uno stato della regione è caratterizzato da <Si, [vi]>
• Quando A si trova nello stato esteso <s, v>, R(A) si trova nello stato <s, [v]>
• Lo stato iniziale dell’automa della regione è <S0, [v0]>
Archi:
• R(A) ha un arco < <s, [v]>, <s’, [v’]>, a> se e solo se:
• C’è un arco <s, s’, a, λ, δ> ∈ E e una regione [v’’] tale che:
• [v’’] è un time successor di [v]
• [v’’] soddisfa i vincoli temporali δ
52
Controllo del vuotoAutoma delle regioni - Esempio
53
Controllo del vuotoEsecuzioni a confronto
Per un’esecuzione r di A del tipo:
Definiamo la sua proiezione [r] = (s, [v]) come:
54
Controllo del vuotoOsservazioni
• Un automa temporizzato accetta il linguaggio vuoto se e solo se il suo automa delle regioni accetta il linguaggio vuoto
• Il vuoto viene calcolato sull’automa delle regioni che si riduce ad un semplice problema di raggiungibilità dei grafi
• La complessità dell’algoritmo del vuoto dipende dalla taglia dell’automa delle regioni
55
GRAZIE PER L’ATTENZIONE
56
Top Related