Un formalismo di specifica deve essere dotato di semantica formale.
La semantica formale del linguaggio di specifica permette di associare ad ogni specifica una struttura matematica.
La struttura matematica adottata tradizionalmente è il:
Labelled Transition System (LTS)
Vantaggi:
Gli LTS sono le strutture di input dei sistemi di verifica (model checker);
Consento di valutare quantitativamente la similarità tra diverse specifiche.
Se la struttura delle etichette è adeguata, si possono confrontare specifiche scritte in linguaggi diversi confrontando gli LTS.
Un LTS su un alfabeto , è un grafo con archi etichettati da simboli dell’alfabeto.
Formalmente un LTS è una terna ,
S, è l’insieme degli stati;
è il sottoinsieme degli stati iniziali;
è la relazione di transizione tra stati; se
il sistema può transire dallo stato s allo stato s’ e l’azione osservabile all’esterno è a.
L’LTS condivide la natura grafica dei formalismi Stato-Transizione.
L’LTS è in generale una struttura di più basso livello rispetto al linguaggio di specifica.
I comportamenti del sistema sono tutti e soli i cammini dell’LTS che iniziano dallo stato inziale.
Traccia: l’informazione osservabile di un comportamento è solo la sequenza di simboli che etichetta il cammino .
Un sistema può essere descritto ‘equivalentemente’ mediante specifiche sintatticamente diverse.
Problema: Come riconoscere se due specifiche descrivono il medesimo sistema?
Intuitivamente due descrizioni che determinano gli stessi comportamenti descrivono lo stesso sistema.
Il confronto non deve essere condotto sulla descrizione (sintassi) ma sulla semantica (LTS) che descrive i comportamenti.
Criteri di equivalenza per le specifiche sono suggeriti da criteri di raffronto degli LTS.
E’ possibile esprimere una ricca gamma di criteri di equivalenza adatti alle diverse necessità.
Esempio d’uso di criteri di equivalenza: metodologia di sviluppo modulare delle specifiche.
Sostituendo nella specifica di un sistema un modulo con un modulo ad esso equivalente il comportamento del sistema non dovrebbe cambiare.
Richiede un forte criterio di equivalenza rispetto ai comportamenti.
Esempio d’uso di criteri di equivalenza: sviluppo top-down di una specifica.
Quando si raffina una specifica (implementazione della specifica) l’implementazione non deve introdurre comportamenti non previsti nella specifica.
Richiede un criterio di equivalenza in grado di astrarre dai dettagli introdotti nell’implementazione e non presenti nella specifica.
Un criterio troppo forte: isomorfismo di LTS.
Un criterio troppo debole: equivalenza per tracce.
Due LTS sono equivalenti per tracce se hanno lo stesso insieme di tracce.
Es. Tracce(LTS1)=Tracce(LTS2)=
{10,10.caffè,10.thè}
Sistemi equivalenti ma ……:
Dati due LTS ,
una bisimulazione forte è una relazione
che soddisfa il seguente requisito: se allora deve valere
(1) .
(2) .
Le seguenti relazioni sono bisimulazioni
Se R e S sono due relazioni di bisimulazione forte anche le seguenti sono relazioni di bisimulazione forte:
L’unione arbitraria di relazioni di bisimulazione è una relazione di bisimulazione.
Questo permette di affermare l’esistenza della massima bisimulazione forte, definibile come l’unione di tutte le bisimulazioni:
Due LTS sono fortemente bisimili se la coppia dei loro stati iniziali appartiene alla massima bisimulazione forte.
Bisimulazioni:
R5 è la massima bisimulazione e non contiene la coppia di stati iniziali .
Esempio di LTS bisimili: unfolding di ciclo.
Bisimulazione:
R contiene la coppia di stati iniziali .
Si osservi che LTS1 ha un solo stato e LTS2 un numero infinito di stati.
La bisimulazione forte è una nozione adeguata per lo sviluppo modulare.
Due LTS fortemente bisimili soddisfano lo stesso insieme di proprietà espresse mediante alcune logiche standard (ad esempio, logica temporale lineare).
La nozione di bisimulazione forte è un criterio troppo forte per lo sviluppo top-down di specifiche (specifica-implementazione).
1. Introduzione ai metodi formali di specifica
2. Semantica dei formalismi di specifica
3. Astrazione e Bisimulazione debole
4. FSM: Macchine a Stati Finiti
5. FSM: Non-determinismo e succintezza
7. FSM e Parallelismo – seconda parte
8. FSM e Parallelismo – terza parte
9. Promela
10. Specifica e verifica in SPIN
11. Proprietà di liveness in SPIN
12. Specifica di proprietà in Logica Temporale Lineare
13. Comportamenti infiniti: Automi di Büchi
14. Model checking di LTL basato su automi
15. Specifica di sistemi real time: Automi Temporizzati
16. Proprietà degli Automi Temporizzati
17. Problemi di decisione negli Automi Temporizzati
18. Il sistema di verifica UPPAAL