logiche temporali

40
Logiche temporali

Upload: lilly

Post on 20-Jan-2016

63 views

Category:

Documents


2 download

DESCRIPTION

Logiche temporali. Model Checking. Answer: Yes, if the model satisfies the specification Counterexample, otherwise. Finite State Model (System Requirements). Model Checker. Logical Specification (System Property). Torniamo all’esempio dell’ascensore. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Logiche temporali

Logiche temporali

Page 2: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 2

Model Checking

Finite State Model(System Requirements)

Logical Specification(System Property)

ModelChecker

Answer:

Yes, if the model satisfiesthe specification

Counterexample, otherwise

Page 3: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 3

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 4: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 4

Proprietà comportamentaliQueste proprietà hanno a che fare con il comportamento dinamico del sistema.Possono essere formalizzate 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 5: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 5

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 6: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 6

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 7: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 7

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 8: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 8

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 9: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 9

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 10: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 10

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 11: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 11

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 12: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 12

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 13: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 13

Combinazioni di A E F GEFg dice che seguendo una qualche esecuzione è possibile raggiungere uno stato che soddisfa g

Page 14: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 14

Combinazioni di A E F GAFg dice che seguendo ogni esecuzione si raggiunge prima o poi uno stato che soddisfa g (g è inevitabile!)

Page 15: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 15

Combinazioni di A E F GEGg dice che esiste un’esecuzione nella quale g è sempre soddisfatta

Page 16: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 16

Combinazioni di A E F GAGg dice che in ogni esecuzione g è sempre soddisfatta

Page 17: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 17

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 18: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 18

EsempioUn sistema di controllo del traffico: vogliamo garantire che non ci siano collisioni e che il traffico scorra…

E

S

N

Page 19: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 19

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 20: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 20

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 21: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 21

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 22: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 22

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 23: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 23

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 organizzati 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 24: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 24

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 25: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 25

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 26: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 26

input:temporal logic specfinite-state model

outputyesno + counterexample

MC

G(p F q)yes

nop

q

p

q

Page 27: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 27

Rappresentare gli statiRappresentare gli stati mediante formule booleane

2m stati possono essere codificati con m variabili proposizionaliStati – congiunzione di proposizioni (o di negazioni di 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 28: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 28

Rappresentazione di funzioni booleane

Una funzione booleana può essere rappresentata come albero binario, con una sola radiceOgni nodo interno è etichettato con una variabile booleana (una per ogni livello)Ogni nodo interno ha un successore etichettato con 1 e uno etichettato con 0I nodi terminali sono etichettati con 1 o 0

Page 29: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 29

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 30: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 30

OBDDTre regole di riduzione:

Condivisione degli stessi nodi terminali. (R1)Test ridondanti (R2)Condivisione degli stessi nodi non terminali (R3)

Page 31: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 31

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 32: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 32

(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 33: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 33

(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 34: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 34

(a1 b1) (a2 b2)

a1

b1 b1

a2

b2 b2

0

0

0

0

1

11

1

010010 01 1

Reduced Ordered BDD

Page 35: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 35

(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 36: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 36

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

z

x

Page 37: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 37

Ordered Binary Decision Diagrams

Dato un oridinamento fissato delle variabili, ogni funzione booleana 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 38: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 38

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 39: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 39

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

Page 40: Logiche temporali

Tino Cortesi Tecniche di Analisi di Programmi 40

ApplicazioniHardware Design

Encore GigamaxIntel instruction decoderSGI cache protocol chip

Altre areeAvionics (TCAS)Chemical plant controlNuclear storage facilities

Tools commercialiCadence, IBM, Synopsys