La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Logiche temporali. Tino CortesiTecniche di Analisi di Programmi 2 Torniamo allesempio dellascensore Nellesempio dellascensore, visto nella lezione precedente,

Presentazioni simili


Presentazione sul tema: "Logiche temporali. Tino CortesiTecniche di Analisi di Programmi 2 Torniamo allesempio dellascensore Nellesempio dellascensore, visto nella lezione precedente,"— Transcript della presentazione:

1 Logiche temporali

2 Tino CortesiTecniche di Analisi di Programmi 2 Torniamo allesempio dellascensore Nellesempio dellascensore, visto nella lezione precedente, supponiamo di voler verificare le seguenti proprietà: Prima o poi ogni richiesta deve venire soddisfatta Lascensore non attraversa mai un piano nel quale ci sia una richiesta pendente senza soddisfare tale richiesta

3 Tino CortesiTecniche di Analisi di Programmi 3 Proprietà comportamentali Queste 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 t app(n,t) è una richiesta pendente al piano n al tempo t serv(n,t) è il servizio al piano n al tempo t

4 Tino CortesiTecniche 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))

5 Tino CortesiTecniche di Analisi di Programmi 5 Formalizzazione (2) Lascensore 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 & t trav : t t trav t & H(t trav )=n allora t serv : t t serv t & serv(n, t serv )

6 Tino CortesiTecniche di Analisi di Programmi 6 Logiche temporali Logiche che permettono di esprimere proprietà legate al tempo Pnueli (1977) suggerisce di utilizzarle per la specifica di sistemi dinamici Operatori che indicano sempre, finché,…

7 Tino CortesiTecniche di Analisi di Programmi 7 Logiche temporali Linear Time Ogni stato ha un unico successore Sequenze infinite (words) Linear Temporal Logic (LTL) Branching Time Ogni stato ha diversi successori Alberi infiniti Computation Tree Logic (CTL)

8 Tino CortesiTecniche di Analisi di Programmi 8 CTL* CTL* serve per formalizzare proprietà degli stati che riguardano le esecuzioni di un sistema Una esecuzione è una sequenza di stati. Ad ogni stato sono associate le proposizioni atomiche che sono vere in quello stato Ci 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

9 Tino CortesiTecniche di Analisi di Programmi 9 Combinatori temporali Permettono di parlare di sequenze di stati appartenenti ad una stessa esecuzione XSe 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) FFp dice che uno stato futuro soddisferà p ovvero ci sarà un tempo in cui p varrà (almeno una volta) GGp dice che tutti gli stati futuri soddisfano p ovvero p varrà sempre Gli operatori possono essere innestati. Ad esempio GFp dice che p sarà vera infinite volte nellesecuzione considerata

10 Tino CortesiTecniche di Analisi di Programmi 10 Combinatori temporali UpUq 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, lallarme rimane attivato finché viene raggiunto lo stato di halt F è un caso speciale di U, infatti Fp è equivalente a true U p Osservate che gli operatori introdotti finora (X,F,G,U) ci permettono di parlare di proprietà di una singola esecuzione

11 Tino CortesiTecniche di Analisi di Programmi 11 Path Quantifiers ALa formula Ap dice che tutte le esecuzioni che partono dallo stato corrente soddisfano la proprietà p Attenzione a non confondere A con G: Ap dice che tutte le esecuzioni che in questo momento sono possibili soddisfano p Gp dice che p vale in ogni passo di una esecuzione che si considera ELa formula Ep dice che dallo stato corrente esiste unesecuzione che soddisfa p

12 Tino CortesiTecniche di Analisi di Programmi 12 Combinazioni di A E F G EFg dice che seguendo una qualche esecuzione è possibile raggiungere uno stato che soddisfa g

13 Tino CortesiTecniche di Analisi di Programmi 13 Combinazioni di A E F G AFg dice che seguendo ogni esecuzione si raggiunge prima o poi uno stato che soddisfa g (g è inevitabile!)

14 Tino CortesiTecniche di Analisi di Programmi 14 Combinazioni di A E F G EGg dice che esiste unesecuzione nella quale g è sempre soddisfatta

15 Tino CortesiTecniche di Analisi di Programmi 15 Combinazioni di A E F G AGg dice che in ogni esecuzione g è sempre soddisfatta

16 Tino CortesiTecniche di Analisi di Programmi 16 Combinazioni di A E F G AGFgin ogni esecuzione (A) ad ogni istante di tempo (G) si incontrerà necessariamente prima o poi (F) uno stato che soddisfa g AGEFgin ogni esecuzione (A) ad ogni istante di tempo è possibile raggiungere g Quindi AGEFg può essere verificata anche se esiste unesecuzione in cui g non è verificata. Osserva inoltre che Ag è equivalente a -E-g

17 Tino CortesiTecniche di Analisi di Programmi 17 Esempio Un sistema di controllo del traffico: vogliamo garantire che non ci siano collisioni e che il traffico scorra… E S N

18 Tino CortesiTecniche 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 poi AG=in ogni cammino sempre

19 Tino CortesiTecniche 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 |= g La definizione di |= è data per induzione sulla struttura della formula g

20 Tino CortesiTecniche 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 |=

21 Tino CortesiTecniche 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 |=

22 Tino CortesiTecniche di Analisi di Programmi 22 CTL*, LTL, CTL Il tempo è discreto (né continuo né denso!) LTL è un frammento di CTL* dove mancano i quantificatori A ed E In altre parole LTL parla di cammini senza preoccuparsi di come sono organizzato in un albero CTL è 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.

23 Tino CortesiTecniche di Analisi di Programmi 23 Model Checking CTL La componente fondamentale dellalgoritmo 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 dellautoma 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.

24 Tino CortesiTecniche 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

25 Tino CortesiTecniche di Analisi di Programmi 25 Rappresentare gli stati Rappresentare gli stati mediante formule booleane 2 m stati possono essere codificati con m variabili proposizionali Stati – congiunzione di proposizioni (o di negazioni d proposizioni) Insieme di stati – disgiunzione di formule che codificano stati Esempio: m = 2, S={s 1,s 2,s 3,s 4 } Variabili proposizionali {a, b} S={00, 01, 10, 11}={ a b, a b, a b, a b} {s 1,s 2 }={00, 01}=( a b) ( a b)

26 Tino CortesiTecniche di Analisi di Programmi 26 Rappresentazione di funzioni booleane Una funzione booleana può essere rappresentata come albero binario Ogni nodo interno è etichettato con una variabile booleana Ogni nodo interno ha un successore etichettato con 1 e uno etichettato con 0 I nodi terminali sono etichettati con 1 o 0

27 Tino CortesiTecniche 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 xx z xx 01101001 g = (y (x z)) ( y (x z)) 0 0 0 0 0 0 1 1 1 1 1 0 11

28 Tino CortesiTecniche di Analisi di Programmi 28 OBDD Tre regole di riduzione: Condivisione degli stessi nodi terminali. (R1) Test ridondanti (R2) Condivisione degli stessi nodi non terminali (R3)

29 Tino CortesiTecniche di Analisi di Programmi 29 Ordered Binary Decision Diagram (OBDD) (a 1 b 1 ) (a 2 b 2 ) a1a1 b1b1 b1b1 a2a2 a2a2 b2b2 b2b2 b2b2 a2a2 a2a2 b2b2 b2b2 b2b2 b2b2 b2b2 00110000 0 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 1 11 1 00001001 0 00 01 11 1

30 Tino CortesiTecniche di Analisi di Programmi 30 (a 1 b 1 ) (a 2 b 2 ) a1a1 b1b1 b1b1 a2a2 b2b2 b2b2 a2a2 a2a2 b2b2 b2b2 b2b2 b2b2 00110000 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 11 1 01001 0 0 1 1 Reduced Ordered BDD

31 Tino CortesiTecniche di Analisi di Programmi 31 (a 1 b 1 ) (a 2 b 2 ) a1a1 b1b1 b1b1 a2a2 b2b2 b2b2 a2a2 b2b2 b2b2 0011 0 0 0 0 0 0 0 1 1 1 1 1 1 1 01001 0 0 1 1 Reduced Ordered BDD

32 Tino CortesiTecniche di Analisi di Programmi 32 (a 1 b 1 ) (a 2 b 2 ) a1a1 b1b1 b1b1 a2a2 b2b2 b2b2 0 0 0 0 1 1 1 1 01001 0 0 1 1 Reduced Ordered BDD

33 Tino CortesiTecniche di Analisi di Programmi 33 (a 1 b 1 ) (a 2 b 2 ) a1a1 b1b1 b1b1 a2a2 b2b2 b2b2 0 0 0 1 1 1 01 0 01 1 0 1 Reduced Ordered BDD

34 Tino CortesiTecniche di Analisi di Programmi 34 y z x 0 Reduced BDD y z xx z xx 01101001 Binary Decision Tree g = (y (x z)) ( y (x z)) 1

35 Tino CortesiTecniche 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 canonici Per testare se due formule booleane sono equivalenti è sufficiente verificare che il loro OBDD siano identici. Questo è un risultato fondamentale per garantire lefficienza del model checking

36 Tino CortesiTecniche di Analisi di Programmi 36 Reduced OBDDs x1x1 y1y1 x2x2 y2y2 y2y2 1 0 y1y1 x 1 < y 1 < x 2 < y 2 x 1 < x 2 < y 1 < y 2 x1x1 x2x2 x2x2 y1y1 y1y1 y1y1 y1y1 y2y2 y2y2 1 0 (x 1 = y 1 x 2 = y 2 )

37 Tino CortesiTecniche di Analisi di Programmi 37 Genealogia Logics of Programs Temporal/ Modal Logics CTL Model Checking Symbolic Model Checking -automata S1S LTL Model Checking ATV Tarski -Calculus QBFBDD Floyd/Hoare late 60s Aristotle 300s BCE Kripke 59 Pnueli late 70s Clarke/Emerson Early 80s Büchi, 60 Kurshan Vardi/Wolper mid 80s 50s Park, 60s Bryant, mid 80s late 80s


Scaricare ppt "Logiche temporali. Tino CortesiTecniche di Analisi di Programmi 2 Torniamo allesempio dellascensore Nellesempio dellascensore, visto nella lezione precedente,"

Presentazioni simili


Annunci Google