La logica tempororale CTL (Computation Tree Logic)
Descrizione del linguaggio di specifica delle proprietà in UPPAAL
Esempi di proprietà: il caso dell’accesso dei treni al ponte.
Come linguaggio di specifica di proprietà UPPAAL usa un frammento della logica temporale CTL (Computation Tree Logic).
LTL vs CTL
LTL
LTL adotta un modello del tempo lineare.
I modelli sono sequenze lineari infinite: cammini in una struttura di Kripke.
Una formula di LTL predica delle proprietà di una sola computazione (sequenza lineare di stati associati alla computazione).
Non consente di esprimere proprietà che coinvolgano i percorsi alternativi che sono possibili per una scelta operabile in punto della computazione.
CTL
LTL adotta un modello del tempo ramificato (branching).
I modelli sono alberi ottenuti dallo ’srotolamento’ (unwind) di una struttura di Kripke.
Una formula di CTL può predicare di proprietà che coinvolgono simultaneamente possibili computazioni originate da un comune stato di partenza (computazioni alternative).
Sia una struttura di Kripke.
detto albero di computazione radicato nello stato è l’albero ottenuto ’srotolando’ K a partire dallo stato s (tutte le possibili computazioni a partire da s).
E’ definito induttivamente come segue:
Si osserva che uno stato rappresenta il fatto che dallo stato s in K si raggiunge lo stato con una sequenza di stati
è di fatto una struttura di Kripke strutturata ad albero.
Sia AP un insieme di proposizioni atomiche
La sintassi di CTL è definita come segue:
con .
Intuizione operatori temporali
esiste uno stato successore dello stato corrente dove è verificata
esiste un cammino a partire dallo stato corrente dove è soddisfatta
per ogni cammino che parte dallo stato corrente è soddisfatta
Sia una struttura di Kripke, e una formula di CTL.
se e solo se esiste un cammino di K
ed esiste tale che:
Con riferimento a in figura:
(in ogni stato vale )
se e solo se pero ogni cammino di K
esiste tale che:
Con riferimento a in figura:
In ogni cammino si diparte un cammino dove nel futuro è vera.
UPPAAL usa una versione semplificata di CTL
Non viene permesso l’innesto di formule di cammino (AU e EU) all’interno di formule di cammino.
UPPAL suddivide le formule per l’espressione delle proprietà in
Formule di stato (state formulae)
Sono espressioni che possono essere valutate su uno stato senza guardare al comportamento del sistema (essenzialmente una combinazione booleana di proposizioni atomiche).
Formule di cammino (path formulae)
Espressioni che debbono essere valutate su un albero delle computazioni per la presenza di operatori temporali (tra loro non innestati)
Sono classificate in
Rispetto a CTL possono essere viste come una combinazione booleana di proposizioni atomiche.
Sono un sovrainsieme delle formule che possono comparire nelle guardie delle transizioni.
Le proposizioni atomiche comprendono:
Proprietà di raggiungibilità
Esiste un cammino (una computazione) che raggiunge uno stato dove è soddisfatta la formula di stato
Formula in UPPAAL
Corrispondente formula di CTL
Limitazioni rispetto a CTL:
La formula è una formula di stato che non può contenere nidificazione di altre formule temporali
Ha la forma ristretta di un operatore Eventually
e non la piena espressività di un operatore Until
.
Proprietà di safety
Nulla di negativo può mai capitare.
La proprietà viene di solito espressa in termini positivi secondo due modalità:
(1) Una proprietà di stato vale in tutti gli stati raggiungibili
Corrispondente formula di CTL
(2) Esiste un cammino massimale dove una proprietà di stato vale in tutti gli stati.
Proprietà di liveness
Qualche cosa di desiderato alla fine capita.
La proprietà ha due modalità di espressione:
(1) Una proprietà di stato viene alla fine soddisfatta in tutti i cammini
Corrispondente formula di CTL
(2) Quando è soddisfatta alla fine sarà soddisfatta.
Corrispondente formula di CTL
Raggiungibilità
Il controllore del ponte riceve e memorizza messaggi di treni che si approssimano al ponte
Il treno 1 può attraversare il ponte prima o poi
Il treno 1 attraversa il ponte e gli altri tre treni rimangono in attesa
Gli esempi di proprietà riportati garantiscono solo la raggiungibilità di stati dove la proprietà di stato è verificata; ad esempio non garantiscono che sempre i treni accedano al ponte in mutua esclusione.
Safety
Non ci può essere più di un treno alla volta che attraversa il ponte
(l’espressione sfrutta il fatto che i valori booleani sono 0,1)
La coda non raggiunge mai l’overflow
(N è fissato come numero dei treni + 1; Free e Occ sono i soli due stati in cui si può fare una operazione di enqueue)
Liveness
Se il treno si avvicina al ponte alla fine lo attraversa
Il sistema non incorre in fenomeni di stallo
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