Logiche temporali
description
Transcript of Logiche temporali
![Page 1: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/1.jpg)
Logiche temporali
![Page 2: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/2.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 2
Torniamo all’esempio dell’ascensore
Nell’esempio dell’ascensore, visto nella lezione precedente, supponiamo di voler verificare le seguenti proprietà:
Prima o poi ogni richiesta deve venire soddisfattaL’ascensore non attraversa mai un piano nel quale ci sia una richiesta pendente senza soddisfare tale richiesta
![Page 3: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/3.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 3
Proprietà comportamentaliQueste proprietà hanno a che fare con il comportamento dinamico del sistema.Possono essere formalzzate usando una notazione del tipo “la posizione al tempo t deve garantire che…”Possiamo usare la seguente notazione
H(t) è la posizione della cabina al tempo tapp(n,t) è una richiesta pendente al piano n al tempo tserv(n,t) è il servizio al piano n al tempo t
![Page 4: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/4.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 4
Formalizzazione (1)
Prima o poi ogni richiesta deve venire soddisfatta
per ogni t, per ogni n: (se app(n,t) allora t’>t: serv(n,t’))
![Page 5: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/5.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 5
Formalizzazione (2)L’ascensore non attraversa mai un piano nel quale ci sia una richiesta pendente senza soddisfare tale richiesta
Per ogni t, per ogni t’>t, per ogni n:se app(n,t) & H(t’) !=n & ttrav: t ttrav t’ & H(ttrav)=n
allora tserv: t tserv t’ & serv(n, tserv)
![Page 6: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/6.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 6
Logiche temporaliLogiche che permettono di esprimere proprietà legate al tempoPnueli (1977) suggerisce di utilizzarle per la specifica di sistemi dinamiciOperatori che indicano “sempre”, “finché”,…
![Page 7: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/7.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 7
Logiche temporali
Linear TimeOgni stato ha un unico successore
Sequenze infinite (words)
Linear Temporal Logic (LTL)
Branching TimeOgni stato ha diversi successori
Alberi infiniti
Computation Tree Logic (CTL)
![Page 8: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/8.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 8
CTL*CTL* serve per formalizzare proprietà degli stati che riguardano le esecuzioni di un sistemaUna esecuzione è una sequenza di stati. Ad ogni stato sono associate le proposizioni atomiche che sono vere in quello statoCi sono poi le costanti true e false, e i connettivi logici di congiunzione, disgiunzione, implicazione e negazione. Parliamo di formule proposizionali quando ci riferiamo a formule in cui compaiono solo proposizioni atomiche e connettivi logici
![Page 9: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/9.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 9
Combinatori temporaliPermettono di parlare di sequenze di stati appartenenti ad una stessa esecuzioneX Se p è una proprietà dello stato corrente, Xp dice che il prossimo stato soddisferà p.Per esempio (p v Xp) dice che p è soddisfatta o nello stato corrente o nel prossimo stato (o in entrambi)F Fp dice che uno stato futuro soddisferà povvero “ci sarà un tempo in cui p varrà (almeno una volta)” G Gp dice che tutti gli stati futuri soddisfano povvero “p varrà sempre”Gli operatori possono essere innestati. Ad esempio GFp dice che p sarà vera infinite volte nell’esecuzione considerata
![Page 10: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/10.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 10
Combinatori temporaliU pUq dice che a un certo punto q sarà verificata, e nel frattempo vale p.Esempio: G(alert -> (alarm U halt)) si legge: “ se sono in uno stato di allerta, l’allarme rimane attivato finché viene raggiunto lo stato di halt” F è un caso speciale di U, infatti Fp è equivalente a true U pOsservate che gli operatori introdotti finora (X,F,G,U) ci permettono di parlare di proprietà di una singola esecuzione
![Page 11: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/11.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 11
Path QuantifiersA La formula Ap dice che tutte le esecuzioni che partono dallo stato corrente soddisfano la proprietà pAttenzione a non confondere A con G:
Ap dice che tutte le esecuzioni che in questo momento sono possibili soddisfano pGp dice che p vale in ogni passo di una esecuzione che si considera
E La formula Ep dice che dallo stato corrente esiste un’esecuzione che soddisfa p
![Page 12: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/12.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 12
Combinazioni di A E F GEFg dice che seguendo una qualche esecuzione è possibile raggiungere uno stato che soddisfa g
![Page 13: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/13.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 13
Combinazioni di A E F GAFg dice che seguendo ogni esecuzione si raggiunge prima o poi uno stato che soddisfa g (g è inevitabile!)
![Page 14: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/14.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 14
Combinazioni di A E F GEGg dice che esiste un’esecuzione nella quale g è sempre soddisfatta
![Page 15: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/15.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 15
Combinazioni di A E F GAGg dice che in ogni esecuzione g è sempre soddisfatta
![Page 16: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/16.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 16
Combinazioni di A E F GAGFg in ogni esecuzione (A) ad ogni istante di tempo (G) si incontrerà necessariamente prima o poi (F) uno stato che soddisfa gAGEFg in ogni esecuzione (A) ad ogni istante di tempo è possibile raggiungere gQuindi AGEFg può essere verificata anche se esiste un’esecuzione in cui g non è verificata.
Osserva inoltre che Ag è equivalente a -E-g
![Page 17: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/17.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 17
EsempioUn sistema di controllo del traffico: vogliamo garantire che non ci siano collisioni e che il traffico scorra…
E
S
N
![Page 18: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/18.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 18
Specifica in CTL*Safety (nothing bad happens)
AG (E_Go (N_Go S_Go));
Liveness (something good happens)
AG ( N_Go N_Sense AF N_Go); AG ( S_Go S_Sense AF S_Go); AG ( E_Go E_Sense AF E_Go);
Fairness constraints
AF (N_Go N_Sense); AF (S_Go S_Sense); AF (E_Go E_Sense); AF=in ogni cammio prima o
poiAG=in ogni cammino sempre
![Page 19: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/19.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 19
Semantica di CTL*Vogliamo definire cosa significa, dato un automa A, che una formula g di CTL* è vera al tempo i di una esecuzione di A (che non parte necessariamente dallo stato iniziale)Questo si indica con A,,i |= gLa definizione di |= è data per induzione sulla struttura della formula g
![Page 20: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/20.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 20
Semantica di CTL*A,,i |= p se p l((i)) cioè se p è vera nello stato i-esimo della sequenza A,,i |= se non è vero che A,,i |= A,,i |= se A,,i |= e A,,i |= A,,i |= se A,,i |= p oppure A,,i |= A,,i |= X if i<|| e A,,i+1 |= A,,i |= F if j, (|| ≥ j ≥ 0): A,,j |= A,,i |= G if j, (|| ≥ j ≥ 0): A,,j |= A,,i |= U if j, (|| ≥ j ≥ 0): A,,j |= e
k t.c. j > k ≥ 0: A,,k |=
![Page 21: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/21.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 21
Semantica di CTL* (ctd.)A,,i |= E se ’: (0)…(i) = ’(0)… ’(i)
e A,’,i |= A,,i |= A se ’: (0)…(i) = ’(0)… ’(i)
vale A,’,i |=
Possiamo ora definere formalmente cosa significa che un automa soddisfa la formula
A |= se e solo se per ogni esecuzione di A: A,,0
|=
![Page 22: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/22.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 22
CTL*, LTL, CTLIl tempo è discreto (né continuo né denso!)LTL è un frammento di CTL* dove mancano i quantificatori A ed EIn altre parole LTL parla di cammini senza preoccuparsi di come sono organizzato in un alberoCTL è il frammento di CTL* dove si richiede che ogni combinatore temporale sia nello scope di un path quantifier: i combinatori che si possono utilizzare sono quindi EX, AX, E_U_, A_U_, ecc.
![Page 23: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/23.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 23
Model Checking CTLLa componente fondamentale dell’algoritmo di model checking per CTL è una procedura di marcatura che opera su un automa, e che, a partire da una formula di CTL, marca, per ogni stato q dell’automa e per ogni sottoformula di se è soddisfatta nello stato q.Parliamo di marcatura, perché il valore di in q, denotato con q. è calcolato e poi memorizzato.Quando la marcatura di è completa, è immediato verificare se A |= guardando al valore di q0.nello stato iniziale q0.
![Page 24: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/24.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 24
Risultati di complessitàIl problema di soddisfacibilità di LTL è PSPACE-completo.
LTL Model Checking ha complessità PSPACE-completa
Il problema di soddisfacibilità di CTL è EXPTIME-completo.
CTL Model Checking ha complessità polinomiale
Il problema di soddisfacibilità di CTL* è 2EXPTIME-completo.
CTL* Model Checking ha complessità PSPACE-completa
![Page 25: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/25.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 25
Rappresentare gli statiRappresentare gli stati mediante formule booleane
2m stati possono essere codificati con m variabili proposizionaliStati – congiunzione di proposizioni (o di negazioni d proposizioni)Insieme di stati – disgiunzione di formule che codificano stati
Esempio: m = 2, S={s1,s2,s3,s4}Variabili proposizionali {a, b}S={00, 01, 10, 11}={ab, a b, ab, ab}
{s1,s2}={00, 01}=(ab)(ab)
![Page 26: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/26.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 26
Rappresentazione di funzioni booleane
Una funzione booleana può essere rappresentata come albero binarioOgni nodo interno è etichettato con una variabile booleanaOgni nodo interno ha un successore etichettato con 1 e uno etichettato con 0I nodi terminali sono etichettati con 1 o 0
![Page 27: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/27.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 27
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
x y z g y
z
x x
z
x x
0 1 1 0 1 0 0 1
g = (y (x z)) (y (x z))
0
0
0 0 0 0
1
1 1
1 1
0
11
![Page 28: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/28.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 28
OBDDTre regole di riduzione:
Condivisione degli stessi nodi terminali. (R1)Test ridondanti (R2)Condivisione degli stessi nodi non terminali (R3)
![Page 29: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/29.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 29
Ordered Binary Decision Diagram (OBDD)
(a1 b1) (a2 b2)
a1
b1 b1
a2 a2
b2 b2 b2
a2 a2
b2 b2b2b2 b2
00 110000
0
0
0 0
0
0 0
0 0 0 0
1
1
11
1
11
1 1 1 100 001001
0 0 0 01 1 1 1
![Page 30: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/30.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 30
(a1 b1) (a2 b2)
a1
b1 b1
a2
b2 b2
a2 a2
b2 b2b2 b2
00 110000
0
0
0
0
0 0
0 0 0 0
1
1
11
1
1
1 1 1 101001
0 01 1
Reduced Ordered BDD
![Page 31: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/31.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 31
(a1 b1) (a2 b2)
a1
b1 b1
a2
b2 b2
a2
b2 b2
00 11
0
0
0
0
0
0 0
1
1
1
1
1
1 101001
0 01 1
Reduced Ordered BDD
![Page 32: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/32.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 32
(a1 b1) (a2 b2)
a1
b1 b1
a2
b2 b2
0
0
0
0
1
11
1
010010 01 1
Reduced Ordered BDD
![Page 33: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/33.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 33
(a1 b1) (a2 b2)
a1
b1 b1
a2
b2 b2
0
0
0
1
1
1
010 01
1
0
1
Reduced Ordered BDD
![Page 34: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/34.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 34
y
z
x
0
Reduced BDD
y
z
x x
z
x x
0 1 1 0 1 0 0 1
Binary Decision Tree
g = (y (x z)) (y (x z))
1
![Page 35: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/35.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 35
Ordered Binary Decision Diagrams
Dato un oridinamento fissato delle variabili, ogni funzione bolleana ha esattamente un BDD ridotto. Gli OBDD sono oggetti canoniciPer testare se due formule booleane sono equivalenti è sufficiente verificare che il loro OBDD siano identici.Questo è un risultato fondamentale per garantire l’efficienza del model checking
![Page 36: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/36.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 36
Reduced OBDDs
x1
y1
x2
y2y2
1 0
y1
x1 < y1 < x2 < y2 x1 < x2 < y1 < y2
x1
x2 x2
y1 y1 y1y1
y2y2
1 0
(x1 = y1 x2 = y2)
![Page 37: Logiche temporali](https://reader035.fdocuments.net/reader035/viewer/2022070416/568150a5550346895dbeaefe/html5/thumbnails/37.jpg)
Tino Cortesi Tecniche di Analisi di Programmi 37
Genealogia
Logics ofPrograms
Temporal/Modal Logics
CTL ModelChecking
SymbolicModel Checking
-automataS1S
LTL ModelChecking
ATV
Tarski
-Calculus
QBF BDD
Floyd/Hoarelate 60s
Aristotle 300’s BCEKripke 59
Pnuelilate 70’s Clarke/Emerson
Early 80’s
Büchi, 60
Kurshan Vardi/Wolpermid 80’s
50’s
Park, 60’s
Bryant, mid 80’s
late 80’s