9 Esempi di Model Checking Usando LTL e CTL

Documenti analoghi
Esercizi di Metodi e Modelli per l Ingegneria del Software

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di

1/ 7 STN - DW IT. Titolo : Titolo : Cicli Di Rodaggio E Collaudo Funzionale ( Autotest ) Per Lavastoviglie EVO 3

SIMULATORE DI PARCHEGGIO A DUE ZONE DL 2120RM. Laboratorio di Automazione

TEN Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2.

SIMULATORE DI SEMAFORO INTELLIGENTE DL 2121RM. Laboratorio di Automazione

misura. Adesso, ad un arbitrario punto P dello spazio associamo una terna di numeri reali x

Linguaggi. Claudio Sacerdoti Coen 29,?/10/ : La struttura dei numeri naturali. Universitá di Bologna

Manuale D uso MultiBox

Esercizi proposti 10

Macchine Sequenziali

TRANSPONDER DI PROGRAMMAZIONE 3067

(o dopo il solo intervento su quest ultimo). Procedura per il reset della scheda in seguito ad allarme generico EAM/ESAM

Rappresentazione con i diagrammi di flusso (Flow - chart)

Esercitazione : REALIZZAZIONE IMPIANTO SEMAFORICO

UNIVERSITÀ di ROMA TOR VERGATA

LOGICA MATEMATICA PER INFORMATICA

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Metodo di Gauss-Jordan 1

DAI NUMERI NATURALI AI NUMERI RAZIONALI

Logica per la Programmazione

Matematica 1 per Ottici e Orafi. I Numeri Reali

ESERCIZI SUI PUNTI DI NON DERIVABILITÀ TRATTI DA TEMI D ESAME

Filosofia del linguaggio (i) (3 cr.)

Matematica. Corso integrato di. per le scienze naturali ed applicate. Materiale integrativo. Paolo Baiti 1 Lorenzo Freddi 1

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 5

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

x 1 Fig.1 Il punto P = P =

1 Calcolo dei predicati del I ordine. Semantica


Esercizi di termologia

MANUALE PRODOTTO TRANSPONDER DI PROGRAMMAZIONE Ultimo aggiornamento: bozza 2012 v02 basata su April 2007_V

PROGRAMMAZIONE STRUTTURATA

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER

La matematica non è un opinione, lo è oppure...?

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

Lezione 6 Selection/Insertion Sort su interi e stringhe

I Circuiti combinatori: LOGISIM

LEZIONE 4. { x + y + z = 1 x y + 2z = 3

Dalla tabella alla funzione canonica

8. Completamento di uno spazio di misura.

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Riconoscere e formalizzare le dipendenze funzionali

DIP SWITCH 1-4 LED 2 LED 1. SW1 pulsante di programmazione SEQUENZA DI PROGRAMMAZIONE MODALITÀ FUNZIONAMENTO SCHEDA

Via Kennedy, 2/B RIESE PIO X ( TV ) Tel Fax manuale d uso

GISA snc Salerno. mod. DAG. Progettazioni Costruzioni Elettroniche DISTRIBUTORE GETTONI

Logica per la Programmazione

Corsa nel Deserto. Introduzione

Curva caratteristica del transistor

07/12-01 PC Lettore di Prossimità Sfera. Manuale installatore

Precorsi di matematica

Ottimizzazione dei Sistemi Complessi

25 Comandi elettrici d emergenza

Elementi di Algebra e Logica Determinare la tavola della verità di ciascuna delle seguenti forme proposizionali:

DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE

Matlab. Istruzioni condizionali, cicli for e cicli while.

Figura 1 Trasformazione proibita dal Secondo Principio

Esercizi sulla complessità di frammenti di pseudo-codice

Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:

Calcolatori Elettronici

1 1+e ξ, (1) P A (ξ) = P B (ξ) = 1 1+e ξ (3) In figura (1) riportiamo l andamento delle probabilità P A (ξ) e P B (ξ). P A,P B

LOGICA PER LA PROGRAMMAZIONE - a.a Secondo Appello - 11/02/2016 Soluzioni Proposte

Sviluppi e derivate delle funzioni elementari

Derivazione Numerica

Ragionamento Automatico Model checking. Lezione 12 Ragionamento Automatico Carlucci Aiello, 2004/05Lezione Sommario. Formulazione del problema

LOGICA DEL PRIMO ORDINE: MOTIVAZIONI, SINTASSI E INTERPRETAZIONI. Corso di Logica per la Programmazione A.A Andrea Corradini

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

ax 1 + bx 2 + c = 0, r : 2x 1 3x = 0.

Programmazione LADDER dei PLC Esempi ed esercizi Prima parte. ITI Alessandro Volta - Sassuolo Anno Scolastico 2009/2010

Progetto di Geometria Computazionale: simulazione del movimento ondoso di un fluido utilizzando Kass e Miller

Parte V: Rilassamento Lagrangiano

Sistema videoconferenza AVAYA XT4300 Regione Toscana Guida rapida all utilizzo

Componenti Carica iniziale e stato di carica

Cammini minimi fra tutte le coppie

Modulo di frenatura ( Marklin 72442) auto costruito v 3.0 del 19/06/2010 by LucioTS

La codifica digitale

Permutazioni. 1 Introduzione

Codice Gray. (versione Marzo 2007)

COMPITO A Esercizio 1 (13 punti) Dato il seguente automa:

Maiuscole e minuscole

PRIMI PASSI CON ARDUINO

DIMOSTRAZIONI DI EQUIVALENZE, SUI CONNETTIVI E SULL'AMBIGUITA' DELLA SINTASSI. Corso di Logica per la Programmazione

ALGEBRA I: SOLUZIONI QUINTA ESERCITAZIONE 9 maggio 2011

Zeri di funzioni e teorema di Sturm

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B)

Cosa si intende con stato

Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi

Sequential Functional Chart

Reti sequenziali. Nord

ESERCIZI PLC COL LINGUAGGIO BASIC

Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana /16

Ultrasonic Sensor Block

Equazioni differenziali lineari a coefficienti costanti

Princìpi dell'algebra di Boole applicata ai circuiti digitali. An Investigations of the Laws of Thought. George Boole, nel 1854, pubblicò un libro,

H426V1 Manuale utente

CORSO DI LAUREA IN FISICA

1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine

GUIDA DB SCHEDE PROCESSO QUALITA

Transcript:

9 Esempi di Model Checking Usando LTL e CTL 9.1 Il forno a micro-onde Questo esempio è proposto in E. M. Clarke, O. Grumberg and D. A. Peled. Model Checking. The MIT Press e nelle dispense di Massimo Franceschet A crash course on model checking disponibili on-line. Consideriamo la seguente descrizione del comportamento di un forno a micro onde: per cuocere il cibo nel forno, aprire la porta, inserirvi il cibo e chiudere la porta. Non mettere contenitori metallici nel forno. Premere il bottone Start. Il forno si scalderà per 30 secondi, quindi comincerà la cottura. Al ternime della cottura il forno si spegne. Il forno si spegne anche nel caso in cui durante la cottura la porta venga aperta. Se il forno è avviato mentre la porta è aperta si produce un errore ed esso non si scalderà. In tal caso il bottone Reset può essere usato. To cook food in the oven, open the door, put the food inside, and close the door. Do not put metal containers in the oven. Press the start button. The oven will warmup for 30 seconds, and then it will start cooking. When the cooking is done, the oven will stop. The oven will stop also whenever the door is opened during cooking. If the oven is started while the door is open, an error will occur, and the oven will not heat. In such a case, the reset button may be used. Si consideri il seguente sistema di transizione per la specifica del forno a microonde M = S,,L: S = {α 0,...,α 6 }; = { (α 0,α 1 ), (α 0,α 3 ), (α 1,α 2 ), (α 2,α 1 ), (α 2,α 3 ), (α 3,α 0 ), (α 3,α 4 ), (α 4,α 5 ), (α 5,α 6 ), (α 6,α 0 ), (α 6,α 3 ), (α 6,α 6 ) }; L(α 0 )=, L(α 1 )={Start,Error}, L(α 2 )={Start,Close,Error}, L(α 3 )={Close}, L(α 4 )={Start,Close}, L(α 5 )={Start,Close,Heat}, L(α 6 )={Close,Heat}. Verifichiamo quali stati soddisfano le seguenti specifiche formalizzate come formule della logica CTL: 1. se il forno è caldo allora la porta è chiusa: AG (Heat Close). Svolgimento: stabiliamo prima di tutto quali stati soddisfano le formule proposizionali: Heat N N N N N Y Y Close N N Y Y Y Y Y Heat Close Y Y Y Y Y Y Y Ricordiamo che, per il significato di AG, una formula del tipo AG H è soddisfatta in uno stato α se α soddisfa H e tutti gli stati immediati successori di α soddisfano la formula AG H. In altri termini: uno stato non può soddisfare AG H senza soddisfare H. Quindi, gli stati che soddisfano AG H sono un sottoinsieme di quelli che soddisfano H. 47

Chiamiamo stati candidati quelli che non abbiamo ancora escluso possano soddisfare AG H. Nel nostro caso la formula H coincide con la formula Heat Close. Quindi gli stati candidati a soddisfare AG (Heat Close) sono tutti gli stati: AG (Heat Close) Y Y Y Y Y Y Y Partendo da α 0, vediamo che per ciascuno degli stati candidati a soddisfare AG (Heat Close) vale che tutti i suoi successori immediati sono anch essi stati candidati a soddisfare AG (Heat Close). Quindi nessuno tra α 0,...,α 6 cambia il proprio status di stato candidato a soddisfare AG (Heat Close). Dato che nulla è cambiato durante l iterazione concludiamo che tutti gli stati soddisfano AG (Heat Close). 2. Ogni volta che il bottone di avvio (Start) è premuto, è garantito che il forno si scalderà: AG (Start AF Heat). Svolgimento: Procediamo stabilendo quali stati soddisfano le sottoformule di AG (Start AF Heat). Ricordiamo che, per il significato di AF, se uno stato α soddisfa H oppure tutti gli stati immediatamente raggiungibili da α soddisfano AF H, allora α soddisfa AF H. In altri termini: gli stati che soddisfano H sono un sottoinsieme di quelli che soddisfano AF H, perchè a quelli che soddisfano H vanno aggiunti quelli per cui tutti gli immediati successori AF H. In base a quanto abbiamo stabilito per Heat nel punto precedente abbiamo che α 5 e α 6 sono due stati che soddisfano AF Heat e che costituiscono un sottoinsieme degli stati che soddisfano AF Heat. Data quindi AF Heat N N N N N Y Y facciamo una iterazione sulla tabella per vedere se tra gli stati ve ne sia qualcuno i cui successori immediati soddisfano AF Heat. Lo stato α 4 ha questa caratteristica, quindi aggiorniamo la tabella come segue: AF Heat N N N N Y Y Y Una ulteriore iterazione non porta alcun cambiamento alla tabella. Abbiamo quindi stabilito quali stati soddisfano AF Heat. Possiamo immediatamente stabilire quali stati soddisfano Start AF Heat: Start N Y Y N Y Y N AF Heat N N N N Y Y Y Start AF Heat Y N N Y Y Y Y Da questo risultato possiamo partire per stabilire quali stati soddisfano AG (Start AF Heat). Seguendo il ragionamento fatto al punto precedente gli stati che soddisfano AG (Start AF Heat) sono un sottoinsieme di quelli che soddisfano Start AF Heat che fungono da stati candidati: AG (Start AF Heat) Y N N Y Y Y Y 48

Mostriamo che nessuno stato soddisfa AG (Start AF Heat): lo stato α 0 non soddisfa AG (Start AF Heat) perchè tra i suoi immediati successori vi è α 1 che non soddisfa AG (Start AF Heat). Quindi la tabella viene aggiornata come segue: AG (Start AF Heat) N N N Y Y Y Y Un altro stato candidato a soddisfare AG (Start AF Heat)èα 3, il quale non soddisfa AG (Start AF Heat) perchè non la soddisfa il suo immediato successore α 0. Quindi la tabella viene aggiornata come segue: AG (Start AF Heat) N N N N Y Y Y Lo stato α 4 resta candidato a soddisfare AG (Start AF Heat)perchèα 5, l unico suo successore, soddisfa AG (Start AF Heat). Analogamente, α 5 resta candidato perchè il suo unico immediato successore α 6 è candidato a soddisfare AG (Start AF Heat). Infine, scopriamo che α 6 non soddisfa AG (Start AF Heat) perchè esiste un suo successore immediato, α 0 per esempio, che non soddisfa AG (Start AF Heat). Al termine di questa iterazione la tabella è: AG (Start AF Heat) N N N N Y Y N Dato che durante l iterazione abbiamo fatto dei cambiamenti facciamo una nuova iterazione. Restano due stati candidati: α 4 e α 5. Lo stato α 4 non richiede alpcun aggiornamento, invece α 5 non è più candidato perchè adesso abbiamo scoperto che α 6 non soddisfa AG (Start AF Heat). La tabella risulta quindi AG (Start AF Heat) N N N N Y N N Dato che abbiamo fatto un aggiornamento facciamo una nuova iterazione. L unico candidato è α 4. Dato che il suo successore α 5 non soddisfa AG (Start AF Heat) otteniamo che neppure α 4 soddisfa la formula. Perveniamo quindi al risultato AG (Start AF Heat) N N N N N N N Quindi nessuno stato soddisfa AG (Start AF Heat) che interpretiamo come il fatto che è falso che in ogni caso premendo il pulsante di avvio del forno di sicuro questo prima o poi si scalda. 3. Ogni volta che il forno è correttamente avviato esso prima o poi si scalda: AG ((Start Error) AF Heat). 49

Svolgimento: Abbiamo già stabilito in quali stati è valida AF Heat, è quindi facile ricavare i fatti riportati nella seguente tabella Start N Y Y N Y Y N Error N Y Y N N N N Error Y N N Y Y Y Y Start Error N N N N Y Y N AF Heat N N N N Y Y Y (Start Error) AF Heat Y Y Y Y Y Y Y A questo punto dato che tutti gli stati soddisfano (Start Error) AF Heat, segue immediatamente che tutti gli stati soddisfano AG ((Start Error) AF Heat). 4. Ogni volta che avviene un errore, sarà sempre possibile cucinare: AG (Error EF Heat). Svolgimento: Abbiamo già stabilito in un punto precedente quali stati soddisfano Heat: Heat N N N N N Y Y Per il significato di EF, se uno stato α soddisfa H, allora soddisfa EF H. Inoltre, tutti gli stati che raggiungono α anch essi soddisfano EF H. Quindi gli stati che soddisfano H sono un sottoinsieme di quelli che soddisfano EF H. In base a quanto abbiamo stabilito nel punto precedente abbiamo che α 5 e α 6 sono due stati che soddisfano EF Heat e che costituiscono un sottoinsieme degli stati che soddisfano EF Heat. Altri stati che soddisfano EF Heat sono quelli che raggiungono almeno uno tra α 5 e α 6. Data quindi EF Heat N N N N N Y Y facciamo una iterazione sulla tabella per vedere se tra gli stati ve ne sia qualcuno che abbia α 5 o α 6 come successori. Lo stato α 4 ha questa caratteristica, quindi aggiorniamo la tabella come segue: EF Heat N N N N Y Y Y Facciamo una ulteriore iterazione che consiste nello stabilire se esiste qualche stato che abbia α 4 o α 5 o α 6 come successore immediato. Scopriamo che α 3 ha come sucecssore immediato α 4, quindi la tabella viene aggiornata come segue: EF Heat N N N Y Y Y Y 50

Facciamo una ulteriore iterazione a partire da α 0 e aggiorniamo la tabella come segue: EF Heat Y N Y Y Y Y Y perchè sia α 0 che α 2 hanno come successore α 3. Infine con una ulteriore iterazione otteniamo EF Heat Y Y Y Y Y Y Y perchè α 1 ha come successore α 2. A questo punto per il significato di e AG è immediato ottenere EF Heat Y Y Y Y Y Y Y Error EF Heat Y Y Y Y Y Y Y AG (Error EF Heat) Y Y Y Y Y Y Y 9.2 Contatore Modulo 4 Questo esempio è tratto da C. Baier J. Katoen. Principles of Model Checking. The MIT Press Cambridge. Un contatore modulo 4 è costruito in modo da emettere in output 1 ogni 4 cicli, 0 altrimenti. Il contatore è costruito usando due registri binari r 1 e r 0 ed il valore assunto dal contatore è dato da i =2r 1 + r 0. Il valore di i è incrementato di 1 mod 4 ad ogni ciclo. Il contatore emette in output il valore 1 quando i vale 0. Esprimere in LTL le seguenti specifiche, dove le variabili proposizionali r i esprimono le proposizioni il registro r i contiene 1 e y la proposizione il valore in output è 1: 1. Il contatore emette 1 infinitamente spesso. Svolgimento: GFy. 2. Ogni volta che il contatore emette 1, i vale 0 e viceversa. Svolgimento: G (y r 1 r 0 ). 3. Ogni volta che il contatore emette 1, nei successivi tre stati esso emette 0. Svolgimento: G (y (X y XX y XXX y). 4. Vale sempre che entro 4 cicli il contatore emette 1. Svolgimento: G (y X y XXy XXXy). Nota che le ultime due formule messe assieme indicano che esattamente ogni 4 cicli viene emesso un 1. 5. Ogni volta che i vale 0, nel successivo stato i vale 1. Svolgimento: G (y X ( r 1 r 0 )); 51

9.3 Semaforo stradale Consideriamo di voler specificare il comportamento di un semaforo semplificato, il quale ha tre luci di colore verde, giallo e rosso. In ogni momento del funzionamento del semaforo solamente una delle tre luci è accesa. Il semaforo le accende ciclicamente in sequenza. Introduciamo tre variabili proposizionali verde, giallo e rosso una per ciascuna luce che può essere accesa o spenta. Esprimere in LTL le seguenti specifiche: 1. La luce verde si accende infinitamente spesso. Svolgimento: GFverde; 2. ogni volta che la luce è gialla, nello stato immediatamente successivo la luce è rossa. Svolgimento: G (gialla X rossa); 3. ogni volta che la luce è gialla, nel futuro prima o poi diventa rossa e nel frattempo è rimasta gialla: G (gialla X (gialla U rossa)); 4. Accensione in sequenza delle luci: Svolgimento: G ((gialla X rossa) (rossa X verde) (verde X gialla)). Un semaforo che rispetti questa specifica cambia colore delle luci per ogni transizione, cioè nel sistema di transizione non possono esistere due stati consecutivi con la medesima luce accesa. Una specifica più permissiva: 5. Accensione in sequenza delle luci (versione con durata finita ma arbitraria): G ((gialla X (gialla U rossa)) (rossa X (rossa U verde)) (verde X (verde U gialla))) 52