7/22/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof. Anna Labella
Correttezza |- M |= Completezza M |= |- Indecidibilità Compattezza Espressività 7/22/ Proprietà
Teorema è coerente sse ogni suo s.i. finito è coerente Se |= , allora |- , ma questo significa che esiste un s.i. finito t.c. allora |- , cioè |= 7/22/ Compattezza
Se per c’è un modello per ogni cardinalità finita, allora ce n’è uno con cardinalità infinita Descriviamo le cardinalità finite: se sono tutte coerenti con , allora c’un modello che le soddisfa tutte e, dunque è infinito 7/22/ Löwenheim-Skolem
7/22/ Espressività Good news SQL queries su basi di dati relazionali Xqueris su cocumenti XML
7/22/ Espressività
7/22/ Espressività Bad news: La raggiungibilità nei grafi diretti è decidibile? Teorema. No: è esprimibile attraverso una formula φ? Per il teorema di compattezza, date definiamo Soddisfacibile o insoddisfacibile? Abbiamo bisogno di un linguaggio esistenziale del secondo ordine
Micromodelli del software Model checking M |= Conseguenza logica |= 7/22/2015 8
Conseguenza logica |= è un insieme di richieste per il nostro software una proprietà |= : ogni modello di soddisfa bello, ma indecidibile 7/22/2015 9
Model checking M |= Si costruisce un modello M secondo le richieste e si verifica Decidibile, ma si rischia di superspecificare senza saperlo 7/22/
State machines 1 un tool: Alloy 7/22/
State machines 2 Esempio: F ={i} (stato iniziale) P = {R,F} (raggiungibilità, essere finale) A dominio di interpretazione (stati) 7/22/
State machines 3 Esempi di proprietà: y R(i, y) (raggiungibilità) F(i) (l’iniziale non è finale) x y z (R(x, y) R(x, z) y=z) (determinismo) x y R(x, y) (assenza di deadlock) 7/22/
State machines 4 7/22/
State machines 5 7/22/
Semantica 7/22/
Semantica 7/22/
un tool: Alloy 7/22/ Uso della logica predicativa e della teoria degli insiemi
Alloy: costruzione di un controesempio 7/22/
Alloy: costruzione di un modello 7/22/