Logiche temporali

37
Logiche temporali

description

Logiche temporali. 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 soddisfatta - PowerPoint PPT Presentation

Transcript of Logiche temporali

Page 1: Logiche temporali

Logiche temporali

Page 2: Logiche temporali

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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