5/6/20151 Metodi formali dello sviluppo software a.a.2013/2014 Prof. Anna Labella
5/6/ OBDD [H-R cap.6] Rappresentare le funzioni booleane
5/6/ Binary decision diagrams
5/6/ BDD
5/6/ BDD
5/6/ BDD Rimuovere i terminali duplicati Rimuovere i test ridondanti Rimuovere i non terminali duplicati
5/6/ BDD costanti variabili
5/6/ BDD Si possono sostituire terminali con non terminali e comporre funzioni ad es. nella congiunzione si sostituisce 1 con il BDD dell’altra funzione nella disgiunzione si sostituisce 0 con il BDD dell’altra funzione nella negazione si scambiano 1 e 0
5/6/ BDD Soddisfacibilità: si raggiunge 1 attraverso un cammino coerente Validità: non si raggiunge 0 attraverso un cammino coerente
5/6/ OBDD Equivalenza?
5/6/ OBDD Forma normale: ordinare e poi ridurre Il risultato è unico
5/6/ OBDD Un esempio: la funzione parità su 4 variabili
5/6/ OBDD: l’algoritmo “reduce” Identifica nodi uguali partendo dal basso
5/6/ OBDD: l’algoritmo “apply” Implementa operazioni
5/6/ OBDD: l’algoritmo “restrict” Da f a f[0/x]
5/6/ OBDD: l’algoritmo “exists” f = f[0/x] + f[1/x] f = f[0/x]. f[1/x]
5/6/ Specifica e logica Specifica derivata dalle proprietà del sistema Specifica derivata da un modello del sistema Sintassi Semantica
5/6/ Model Checking automatico Basato su un modello costruito col model checking Verifica di soddisfacibilità di proprietà A posteriori Sistemi concorrenti Sistemi reattivi Aspetti temporali
State machines: Alloy 5/6/ automatico Basato su un modello Verifica di proprietà Costruisce un contromodello Stati finiti statico
5/6/ Logica temporale [H-R cap.3] a è una costante di tipo tempo Se c’è richiesta di stampare un file, prima o poi il file sarà stampato
5/6/ Logica temporale Si preferiscono operatori modali distinguendo i riferimenti temporali da quelli di dominio
5/6/ Logica temporale: sintassi ::=T | | p | ( ) | ( ) | ( ) | ( ) | (X ) | (F ) | (G ) | ( U ) | ( W ) F “prima o poi” G “sempre” U “finché” W “finché eventualmente”
5/6/ Logica temporale LTL Tempo lineare/ ramificato Tempo discreto
5/6/ Logica temporale LTL: LTS L ‘i nterpretazione è data su un sistema di transizione M= (S, , L) S è un insieme di stati (nodi) una relazione di accessibilità L un’etichettatura dei nodi con formule atomiche Proprietà della relazione di accessibilità
5/6/
5/6/
5/6/
5/6/ Logica temporale LTL: semantica Soddisfacibilità: Un cammino è una successione infinita di stati in relazione consecutiva M,s |= se ogni cammino che parte da s soddisfa
5/6/ Logica temporale LTL: semantica
5/6/