Logiche temporali.

Slides:



Advertisements
Presentazioni simili
- le Medie la Moda la Mediana
Advertisements

Definitezza Vogliamo poter richiedere la “definitezza” delle funzioni
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Punti Fissi.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
II° Circolo Orta Nova (FG)
____________________
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Il linguaggio della Matematica: Insiemi e operazioni
Informatica Generale Marzia Buscemi
COORDINATE POLARI Sia P ha coordinate cartesiane
6. Catene di Markov a tempo continuo (CMTC)
Introduzione Cosa sono le reti di Petri?
Frontespizio Economia Monetaria Anno Accademico
La scelta del paniere preferito
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
I sistemi di riferimento
1 Tavolo del Patto per la crescita intelligente, sostenibile e inclusiva Il ricorso agli ammortizzatori sociali nei territori colpiti dagli eventi sismici.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
6. Catene di Markov a tempo continuo (CMTC)
3. Processi Stocastici Un processo stocastico è una funzione del tempo i cui valori x(t) ad ogni istante di tempo t sono v.a. Notazione: X : insieme di.
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Ordini Parziali - Reticoli
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Model Checking.
Ordini Parziali - Reticoli
Logiche temporali. Tino CortesiTecniche di Analisi di Programmi 2 Torniamo allesempio dellascensore Nellesempio dellascensore, visto nella lezione precedente,
Esercitazioni su circuiti combinatori
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
EPA 01/02 VII /1 Relazioni spaziali tra i prezzi Lo spazio: produzione e consumo non avvengono nello stesso punto il prodotto deve essere spostato, con.
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
eliana minicozzi linguaggi1a.a lezione2
Seminario su clustering dei dati – Parte II
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Heap binomiali Gli heap binomiali sono strutture dati su cui si possono eseguire efficientemente le operazioni: Make(H) : crea uno heap vuoto Insert(H,
Lezione 4 Probabilità.
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
19 Lezione 21/5/04 Composizione dell'immagine 1 COMPOSIZIONE DELLIMMAGINE.
Contatore: esempio di circuito sequenziale
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
1 Informatica Senza Computer? Chiariamoci un po le idee!!! Carlo Gaibisso Informatica senza Computer?
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
1)Completa la seguente successione: C4, B7, E10, D13, G16,. A. G19 B
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
LE SAI LE TABELLINE? Mettiti alla prova!.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Acceleratori e Reattori Nucleari
TRASFORMATA DI FOURIER
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
1 Microsoft Access Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni Informatica per laurea triennale.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano Reti Logiche A Macchine non completamente specificate.
USR-INRiM-GMEE-CE.SE.DI Formazione&Metrologia Modulo 1 1 Modulo 1 Costruzione di un linguaggio comune Preparazione liste dei termini. Condivisione.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
4/20/20151 Metodi formali dello sviluppo software a.a.2013/2014 Prof. Anna Labella.
5/6/20151 Metodi formali dello sviluppo software a.a.2013/2014 Prof. Anna Labella.
Transcript della presentazione:

Logiche temporali

Model Checking Answer: Finite State Model Model Checker Yes, if the model satisfies the specification Counterexample, otherwise Finite State Model (System Requirements) Model Checker Logical Specification (System Property) Tino Cortesi Tecniche di Analisi di Programmi

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 L’ascensore non attraversa mai un piano nel quale ci sia una richiesta pendente senza soddisfare tale richiesta Tino Cortesi Tecniche di Analisi di Programmi

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

Tecniche di Analisi di Programmi 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’)) Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi 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) Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi 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é”,… Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi 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) Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi 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 Tino Cortesi Tecniche di Analisi di Programmi

Combinatori temporali Permettono di parlare di sequenze di stati appartenenti ad una stessa esecuzione X 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à p ovvero “ci sarà un tempo in cui p varrà (almeno una volta)” G Gp 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 nell’esecuzione considerata Tino Cortesi Tecniche di Analisi di Programmi

Combinatori temporali U 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 p Osservate che gli operatori introdotti finora (X,F,G,U) ci permettono di parlare di proprietà di una singola esecuzione Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Path Quantifiers A La 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 E La formula Ep dice che dallo stato corrente esiste un’esecuzione che soddisfa p Tino Cortesi Tecniche di Analisi di Programmi

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

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

Tecniche di Analisi di Programmi Combinazioni di A E F G EGg dice che esiste un’esecuzione nella quale g è sempre soddisfatta Tino Cortesi Tecniche di Analisi di Programmi

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

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

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

Tecniche di Analisi di Programmi 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 Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Semantica di CTL* Vogliamo definire cosa significa, dato un automa A, che una formula g di CTL* è vera al tempo i di una esecuzione s di A (che non parte necessariamente dallo stato iniziale) Questo si indica con A,s,i |= g La definizione di |= è data per induzione sulla struttura della formula g Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Semantica di CTL* A,s,i |= p se p l(s(i)) cioè se p è vera nello stato i-esimo della sequenza s A,s,i |= x se non è vero che A,s,i |= x A,s,i |= x  y se A,s,i |= x e A,s,i |= y A,s,i |= x  y se A,s,i |= p oppure A,s,i |= y A,s,i |= X x if i<|s| e A,s,i+1 |= x A,s,i |= F x if j, (|s| ≥ j ≥ 0): A,s,j |= x A,s,i |= G x if j, (|s| ≥ j ≥ 0): A,s,j |= x A,s,i |= x U y if j, (|s| ≥ j ≥ 0): A,s,j |= y e k t.c. j > k ≥ 0: A,s,k |= x Tino Cortesi Tecniche di Analisi di Programmi

Semantica di CTL* (ctd.) A,s,i |= E x se  s’: s(0)…s(i) = s’(0)… s’(i) e A,s’,i |= x A,s,i |= A x se  s’: s(0)…s(i) = s’(0)… s’(i) vale A,s’,i |= x Possiamo ora definere formalmente cosa significa che un automa soddisfa la formula x A |= x se e solo se per ogni esecuzione s di A: A,s,0 |= x Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi 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 organizzati 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. Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Model Checking CTL La 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 x di CTL, marca, per ogni stato q dell’automa e per ogni sottoformula y di x se y è soddisfatta nello stato q. Parliamo di marcatura, perché il valore di y in q, denotato con q.y è calcolato e poi memorizzato. Quando la marcatura di x è completa, è immediato verificare se A |= x guardando al valore di q0.x nello stato iniziale q0. Tino Cortesi Tecniche di Analisi di Programmi

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 Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi G(p Þ F q) yes input: temporal logic spec finite-state model output yes no + counterexample MC no p p q q Tino Cortesi Tecniche di Analisi di Programmi

Rappresentare gli stati Rappresentare gli stati mediante formule booleane 2m stati possono essere codificati con m variabili proposizionali Stati – 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}={ab, a b, ab, ab} {s1,s2}={00, 01}=(ab)(ab) Tino Cortesi Tecniche di Analisi di Programmi

Rappresentazione di funzioni booleane Una funzione booleana può essere rappresentata come albero binario, con una sola radice Ogni nodo interno è etichettato con una variabile booleana (una per ogni livello) Ogni nodo interno ha un successore etichettato con 1 e uno etichettato con 0 I nodi terminali sono etichettati con 1 o 0 Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi x y z g y 1 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 z z 1 1 x x x x 1 1 1 1 1 1 1 1 g = (y  (x  z))  (y  (x  z)) Tino Cortesi Tecniche di Analisi di Programmi

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

Ordered Binary Decision Diagram (OBDD) 1 (a1  b1)  (a2  b2) Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Reduced Ordered BDD a1 1 b1 b1 1 1 a2 a2 a2 1 1 1 b2 b2 b2 b2 b2 b2 1 1 1 1 1 1 1 1 1 1 (a1  b1)  (a2  b2) Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Reduced Ordered BDD a1 1 b1 b1 1 1 a2 a2 1 1 b2 b2 b2 b2 1 1 1 1 1 1 1 1 (a1  b1)  (a2  b2) Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Reduced Ordered BDD a1 1 b1 b1 1 1 a2 1 b2 b2 1 1 1 1 (a1  b1)  (a2  b2) Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Reduced Ordered BDD a1 1 b1 b1 1 1 a2 1 b2 b2 1 1 1 (a1  b1)  (a2  b2) Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Reduced BDD Binary Decision Tree y y z x 1 z z x x 1 g = (y  (x  z))  (y  (x  z)) Tino Cortesi Tecniche di Analisi di Programmi

Ordered Binary Decision Diagrams Dato un oridinamento fissato delle variabili, ogni funzione booleana 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 l’efficienza del model checking Tino Cortesi Tecniche di Analisi di Programmi

Tecniche di Analisi di Programmi Reduced OBDDs x1 < y1 < x2 < y2 x1 < x2 < y1 < y2 x1 y1 x2 y2 1 x1 x2 y1 y2 1 (x1 = y1  x2 = y2) Tino Cortesi Tecniche di Analisi di Programmi

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

Tecniche di Analisi di Programmi Applicazioni Hardware Design Encore Gigamax Intel instruction decoder SGI cache protocol chip Altre aree Avionics (TCAS) Chemical plant control Nuclear storage facilities Tools commerciali Cadence, IBM, Synopsys Tino Cortesi Tecniche di Analisi di Programmi