- APPUNTI
- SCIENZE E TECNOLOGIE INFORMATICHE
- MODELLAZIONE E ANALISI DI SISTEMI
Modellazione e analisi di sistemi:
Appunti per il corso "Modellazione e analisi di sistemi", A.A 2018/2019, che presenta metodologie e tecniche per la specifica e l'analisi formale di sistemi complessi. 
Argomenti affrontati: 
•  Cosa sono ed a cosa servono i Metodi Formali
• Applicazione dei Metodi Formali alla progettazione ed all'analisi di sistemi 
• Modellazione ed analisi ad alto livello di astrazione. Le Abstract State Machines (ASM)
• Tecniche di raffinamento di modelli. Tecniche di astrazione
 
• Il tool-set ASMETA per modelli ASM
• Casi di studio di specifica di sistemi 
• Modellazione ed analisi a basso livello di astrazione
 
• Automi di Kripke e Logica Temporale CTL: sintassi, semantica, pattern di specifica
 
• Algoritmi di model checking. Simbolic Model Checking con rappresentazione mediante OBDD
 
• Verifica di proprietà temporali: proprietà di raggiungibilità, di safety, di liveness, di fairness, assenza di deadlock. 
• Astrazione di modelli: fusione degli stati; astrazione di variabili, riduzione di variabili, observer automata
• Raffinamenti di modelli: mappatura di modelli ad alto livello di astrazione verso modelli temporali
• Tool: NuSMV e AsmetaSMV
Dettagli appunto:
- 
                                    Autore:
                                    Maurizio Fortunati
 [Visita la sua tesi: "La Blockchain come strumento di marcatura temporale per grandi quantità di dati"]
 
 [Visita la sua tesi: "Dynamic Access Control in una realtà consortile tramite XACML e smart contract"]
 
- Università: Università degli Studi di Milano
- Facoltà: Scienze e Tecnologie Informatiche
- Corso: Sicurezza Informatica
- Esame: Modellazione e analisi di sistemi
- Docente: Elvinia Riccobene
Questa è solo un’anteprima: 32 pagine mostrate su 163 totali. Registrati e scarica gratis il documento.
Modellazione e 
analisi di sistemi
Appunti di Maurizio Fortunati
Università degli Studi di Milano
Facoltà di Scienze e Tecnologie
Corso di Laurea Magistrale in Sicurezza informatica (Classe LM-66)
Esame di Modellazione e analisi di sistemi
Docente: Elvinia Riccobene 
Anno accademico - 2018/2019Modellazione e analisi dei 
sistemi 
Appunti a cura di Maurizio Fortunati 
Università degli Studi di Milano – Corso Magistrale in Sicurezza Informatica LM-66 
Corso tenuto da Elvinia Riccobene [mail] 
AA 2018/ 19 
Sito Docente 
Link Ariel - Lucidi 
Link Ariel - Video lezioni 
Link SourceForge – Asm examples 
V3.7 – 12 Febbraio 2020 
Sommario 
Sommario ..................................................................................................................................................................................... 2 
Introduzione al corso ........................................................................................................................................................... 5 
ASM I, Prima parte .................................................................................................................................................................. 6 
Riassunto Automi a stati finiti ....................................................................................................................................................... 6 
Da FSM a ASM ......................................................................................................................................................................................... 6 
Esempi porta girevole e macchinetta caffè ...................................................................................................................... 8 
ASM I, Seconda parte ......................................................................................................................................................... 11 
Stato Asm ................................................................................................................................................................................................. 11 
Domini ASM ............................................................................................................................................................................................. 13 
ASM II, Prima parte .............................................................................................................................................................. 15 
Regole di transizione ........................................................................................................................................................................ 15 
Esempi Advanced Clock e Semaforo .................................................................................................................................. 15 
ASM II, Seconda parte ....................................................................................................................................................... 19 
Esempio SluiceGate( Chiusa) .................................................................................................................................................... 19 
Esem pio fattoriale .............................................................................................................................................................................. 21 
Esempio Swap sort vettore ......................................................................................................................................................... 21 
AsmetaL - Linguaggio Strutturale ............................................................................................................................. 23 
Name .......................................................................................................................................................................................................... 24 
Header ....................................................................................................................................................................................................... 24 
Body ............................................................................................................................................................................................................. 24 
main rule ................................................................................................................................................................................................... 26 
Inizializzazione ...................................................................................................................................................................................... 26 
AsmetaL - Linguaggio delle definizioni .................................................................................................................. 26 
Dichiarazione dei domini .............................................................................................................................................................. 26 
Type Domain: .................................................................................................................................................................................................... 27 
Structured Domain ...................................................................................................................................................................................... 28 
Dichiarazione delle funzioni ........................................................................................................................................................ 31 
Funzioni statiche ............................................................................................................................................................................................. 32 
Funzioni dinamiche ...................................................................................................................................................................................... 32 
Funzioni derivate ............................................................................................................................................................................................ 34 
Invarianti.................................................................................................................................................................................................... 35 
Locazioni e aggiornamenti ......................................................................................................................................................... 35 
Convenzioni sugli ID ........................................................................................................................................................................ 36 
AsmetaL - Linguaggio dei termini ............................................................................................................................. 37 
AsmetaL - Linguaggio delle regole .......................................................................................................................... 38 
Skip, Update, Par, Seq .................................................................................................................................................................... 38 
Conditional rule (If, let, forall, choose, switch case) ................................................................................................. 40 
Macro call rule ..................................................................................................................................................................................... 43 
Extend Rule – Riserva di una ASM ........................................................................................................................................ 44 
ASM multi agenti ................................................................................................................................................................. 46 
Definizione .............................................................................................................................................................................................. 46 
ASM Sincrone .................................................................................................................................................................................................... 47 
ASM Asincrone ................................................................................................................................................................................................ 47 
Multi Agent in AsmetaL ................................................................................................................................................................. 48 
Case study – popolazione .................................................................................................................................................................... 48 
AsmetaL - Protocollo Needham-Schroeder ........................................................................................................ 50 
AsmetaL - Esempi ................................................................................................................................................................ 51 
Esem pio ATM ........................................................................................................................................................................................ 51 
Esame 2 luglio 2013 – sbarra cancello automobile .................................................................................................. 56 
Multi Agent ASM - produttore consumatore ................................................................................................................ 57 
Multi Agent ASM - Bambini e caramelle ......................................................................................................................... 60 
Popolazione ........................................................................................................................................................................................... 62 
FrameW ork ASM – Ground Model ............................................................................................................................. 66 
Design ....................................................................................................................................................................................................... 66 
Costruzione del ground model - GM ......................................................................................................................................... 67 
Raffinamento del modello ................................................................................................................................................................... 68 
Esempio chiusa .............................................................................................................................................................................................. 70 
FrameW ork ASM – Analisi .............................................................................................................................................. 74 
Logiche temporali ............................................................................................................................................................................. 74 
Automi di Kripke ............................................................................................................................................................................................. 74 
La CTL -  Computational tree logic .............................................................................................................................................. 75 
Equivalenze Canoniche .......................................................................................................................................................................... 80 
Algoritmo di model Checking ........................................................................................................................................................... 80 
Algoritmo di Labeling - Regole di etichettatura ............................................................................................................... 81 
Esercizi CTL ....................................................................................................................................................................................................... 83 
Algoritmo SAT ..................................................................................................................................................................................... 86 
Algoritm i SAT (EX, EU, AF) ................................................................................................................................................................... 88 
Esercizi SAT ....................................................................................................................................................................................................... 90 
Verifica di proprietà temporali ................................................................................................................................................. 94 
Proprietà ................................................................................................................................................................................................................ 94 
Pattern Noti - Practical patterns of Specifications 2 ..................................................................................................... 97 
Esercizi sulle proprietà temporali .................................................................................................................................................. 97 
OBDD - Ordered Binary Decision Diagrams ............................................................................................................... 10 0 
Teoria .................................................................................................................................................................................................................... 10 0 
Regole di compattezza .......................................................................................................................................................................... 10 1 
Esercizio di compattezza ..................................................................................................................................................................... 10 2 
Alberi BDD ......................................................................................................................................................................................................... 10 4 
Vantaggi di utilizzare ROBDD .......................................................................................................................................................... 10 5 
Calcolo del ROBDD e del SAT ....................................................................................................................................................... 10 5 
NuSMV ................................................................................................................................................................................................................ 10 6 
Preparazione Esame Teorico ...................................................................................................................................... 110 
Preparazione Esame di laboratorio ......................................................................................................................... 117 
Note su Asmeta tools ...................................................................................................................................................... 121 
Codici Sorgenti ................................................................................................................................................................... 122 
Template ................................................................................................................................................................................................ 122 
Advanced Clock ............................................................................................................................................................................... 123 
Cena dei filosofi ................................................................................................................................................................................. 124 
Adolfo ....................................................................................................................................................................................................... 126 
ADOLFO V2 .......................................................................................................................................................................................... 134 
Ex am 15 0 1 20 19 – prod consumatore ............................................................................................................................. 136 
Morra cinese ........................................................................................................................................................................................ 139 
ATM ............................................................................................................................................................................................................ 141 
Tris – Tic Tac Toe ............................................................................................................................................................................. 145 
Lotto .......................................................................................................................................................................................................... 147 
Tombola con la seq .................................................................................................................................................................................. 149 
Token ........................................................................................................................................................................................................ 151 
Container ................................................................................................................................................................................................ 153 
Popolazione ......................................................................................................................................................................................... 154 
Indice delle figure ............................................................................................................................................................. 156 
 
  
Introduzione al corso  
Riferimenti 
Lezione 201 8-02-28-11.0 0 .49 
Introduzione 
Obiettivo del corso, è quello di poter dimostrare che un sistema godi di certe proprietà. 
Come faccio a provare queste proprietà? 
Devo prima fare una rappresentazione astratta del sistema e per farla utilizzo i linguaggi di 
specifica. 
Un linguaggio di specifica permette di poter descrivere il sistema in modo univoco e non 
ambiguo, con il quale si potrà descrivere i requisiti del sistema creando un modello che è la 
rappresentazione astratta del sistema. 
Con questo modello è possibile effettuare delle analisi, definite validazione e verifica, che 
sono basate su simulazione, testing e model checking. 
Validazione: processo di valutazione di un sistema o di una componente per l’intero ciclo di 
sviluppo per determinare se esso soddisfa i requisiti specificati. 
I requisiti, sono documenti scritti in linguaggio naturale che descrivano il sistema come lo 
vuole il cliente. 
Validare significa valutare se il sistema che ho realizzato alla fine o durante lo sviluppo sia 
corretto rispetto ai requisiti. Validazione controlla i requisiti  
Si effettua tramite la simulazione e il testing 
Verifica: Processo di valutazione di un sistema o di una componente per determinare se i 
prodotti di una data fase di sviluppo soddisfano le condizioni (proprietà) imposte allo stato di 
quella fase. 
Dimostrare che il sw che si sta sviluppando in qualsiasi punto soddisfi alcune proprietà. 
Verifica correttezza di proprietà  
Si procede attraverso tecniche di theorem prover e model checker. 
Ovviamente non è possibile testare tutto a carta e penna, quindi utilizzeremo dei sistemi 
automatici. 
Quindi nel corso si studieranno 3 cose, linguaggimetodi tool. 
Metodi formali. 
Sono notazioni rigorose e dal significato preciso, dei simboli che non permettono ambiguità. 
Formalismi operazionali: forniscono una descrizione del comportamento del sistema in 
termini di operazioni di una macchina astratta, li utilizzeremo per effettuare la validazione. 
Per fare simulazione del modello. 
Esempi di formalismi operazionali sono: ASM, B & Z Method, SCR, Petri 
 
Formalismi dichiarativi, descrive il sistema in termini di proprietà che devono soddisfare; li 
utilizzeremo per la fase di verifica. 
Esempi di formalismi dichiarativi sono: Logica temporale, trio, algebre dei processi. 
 
  
ASM I, Prima parte 
Riferimenti 
Video lezione di riferimento 20 18 -02-28-13.0 5.27 lucidi 1 a 26 
Riassunto Automi a stati finiti  
Un automa, chiamato anche: macchina stati finiti, in inglese FSM (finite state macchine) è una 
notazione formale che permette la rappresentazione astratta del comportamento di un 
sistema. 
La FSM è composta da una tupla di 3 elementi:  
• S insieme finito di stati 
• I insieme finito di eventi input 
• δ che è la funzione di transizione  che connette ogni stato S a S’ per via di un input, 
Diagramma di stato è la rappresentazione grafica di una FSM. 
Le FSM sono molto basilari e con esse non si riesce a modellare la memoria o l’output, per 
questo motivo sono state introdotti: 
Automi di Mealy e di Moore per modellare l’output. 
Le FSM estese per modellare la memoria della macchina. 
Le FSM di comunicazione per modellare la comunicazione, ad esempio nelle macchine nei 
sistemi distribuiti. 
FSM temporizzate per modellare il tempo, dove si può definire un tempo di durata della 
transizione. 
Infine si giunge alle macchine di stato di UML o FSM di Harel che permettono di modellare, 
lo stato, input, output attività interne e trans interne e sotto macchine. 
Vedremo altre estensioni: 
ASM – Abstract state machine FSM con stati generalizzati 
Automi di Kripke lo stato porta informazioni di una proprietà che è valida in esso. 
 
Da FSM a ASM 
Agganciandoci al concetto di modello delle FSM vediamo la ASM. 
Per il momento non concentrarti sulla sintassi o sulla forma ma sull’idea di 
funzionamento, perché alcuni dettagli o pezzi di codice non vengono inseriti o 
spiegati per brevità. 
Il linguaggio asm verrà spiegato in modo dettagliato più avanti 
Le differenze che si possono notare riguardano la concezione degli stati, che risultano più 
complessi nelle ASM e le condizioni di input e le azioni di output. 
Nelle FSM si ha un alfabeto finito mentre nelle ASM, si può avere un input qualsiasi. 
Introduciamo le asm con un modello di esempio; un orologio digitale che mostra l’ora che 
viene aggiornata ad ogni delta di tempo, attraverso il DisplayTime.  
Le macchine a stati sono costituite da due concetti, gli stati e le transizioni, andremo a 
sviluppare il concetto di stato e poi quello di transizione delle ASM. 
 
 
4 Funzioni: 
CurrTime: Rappresenta il tempo corrente ed è di tipo reale 
DisplayTime: variabile che rappresenta l’ora 
Delta: un numero reale 
+ : operazione di somma che dati due reali restituisce un reale, Real x Real  
 
In questo caso utilizziamo solamente un insieme di funzioni matematiche, cioè l’insieme dei 
reali. 
CurrTime e DisplayTime le possiamo vedere come delle variabili, il delta come una costante 
e il + come una funzione. 
In ASM tutto viene considerato come una funzione con differenze in base all’arietà (ovvero il 
numero di argomenti presenti). 
In questo esempio le funzioni utilizzate hanno arietà zero tranne il + che ha arietà 2.  
Quindi si possono distinguere funzioni con arietà zero e diverso da zero. 
Successivamente si procede con la costruzione degli stati strutturati che modellano dati 
complessi arbitrari e operazioni per la manipolazione dei dati, sostituendo uno stato non 
strutturato con un’algebra. 
Le transizioni nelle FSM vengono rappresentate con delle frecce, mentre in ASM 
utilizzeremo una formula  simile all’ if then else  if condition then updates . 
È possibile costruire delle regole con diversi costruttori: 
• parallelismo (par) ed azioni sequenziali (seq) 
• iterazioni (while) en invocazioni di sottomachine 
• non determinismo (choose) e parallelismo sincrono non limitato (forall) 
• multi-agenti sincroni e asincroni 
Nella programmazione della ASM andremo a distinguere header, body,main rule, 
initialization:  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 1 : Primo esempio di ASM 
Per poter passare da una FSM ad una ASM si può utilizzare il seguente schema: 
 
Figura 2: Da FSM a ASM 
dove: 
• ctl_state è una variabile che rappresenta lo stato corrente e può prendere come valore 
uno stato di controllo (in un insieme finito) 
• i, j1 , j2, … , jn sono stati interni di controllo (i valori di ctl_state) 
• ck (k=1 , 2, … , n) rappresentano le condizioni di input 
• Rk le azioni della macchina 
Facendo un paragone tra fsm e asm si può notare che nelle Fsm esiste un unico stato di 
controllo (ctl_state), che può assumere valori in un insieme finito di un certo tipo. 
Mentre nelle ASM lo stato è più complesso 
Le condizioni di input e le azioni di output, nelle fsm sono un alfabeto finito, mentre nelle 
ASM l’input può avere qualsiasi input. 
Esempi porta girevole e macchinetta caffè 
Porta girevole 
 
 
Figura 3: Esempio Porta girevole 
Gli stati sono i 5 rettangoli (open, stayopen,..) e li inserisco nell’inizializzazione, mentre le 
funzioni da simulare sono le 4 azioni che interconnettono gli stati (click, complete, click + 
ctl_state che serve per verificare lo stato) 
 
Si possono vedere le asm come dello pseudo codice con alcune differenze e caratteristiche. 
Giusto per citarne qualcuna e anticipare alcuni concetti, si vedrà che alcuni stati possono 
scattare contemporaneamente.  
Il click e il time-out sono delle entità che rappresentano il flusso dell’ambiente sul sistema.  
Queste funzioni si andranno a distinguerle tra monitorate e controllate. 
Monitorate sono quelle che arrivano dall’ambiente, il valore viene dato ad ogni stato 
dall’ambiente. 
Il simulatore fornisce dei valori, mentre dal punto di vista semantico è l’ambiente che li 
fornisce e non la macchina che ne effettua l’aggiornamento; la macchina sa che quando 
avrà bisogno di certi dati li potrà ottenere dall’ambiente come una specie di oracolo. 
Mentre quelle cambiate dalla macchina sono quelle controllate. 
Sarà compito delle regole di transizione di aggiornare tali valori, la macchina aggiornerà la 
funzione ctl_state mentre quelle controllate dall’ambiente sarà compito del simulatore 
aggiornarle. 
 
Esempio macchinetta caffè 
 
Figura 4: Esempio macchinetta caffè 
Versione tramite EFSM: 
In questo caso è stata utilizzata una macchina estesa in quanto c’è bisogno della memoria 
per contare le monete e le bevande scelte.  
Si può notare che tutte le transazioni seguono una sequenza simile. In esempio quella rossa 
Azione che attiva la transazione ins (50cent) 
[possibile guardia che può bloccare la transazione][coin<25&…] 
aggiornamento delle variabilicoin≔coin+1, … 
/output /eroga(milk) 
 
In ASM: 
Segnatura/ definizione 
Bisogna definire il tipo di monete e il tipo di prodotto erogato tramite il dominio 
Monete half/ one e prodotto caffè e latte, quindi:  
enum domain cointype = {HALF|ONE} 
enum domain product ={MILK | COFFE} 
Questi due elementi non sono infiniti, perché il latte e il caffè possono essere erogati al 
massimo 1 0 volte e il contenitore delle monete ne contiene al massimo 25. 
Si inseriscono altre due variabili che vengono chiamati domini, che appartengono all’insieme 
degli interi. 
signature: 
domain QuantityDomain subsetof integer 
domain CoinDomain subsetof integer 
 
definitions: 
  domain QuantityDomain={0..10} 
 domain CoinDomain ={0..25} 
 
Si definisce una funzione (available) che dato un prodotto (caffè o latte), ne restituisca la 
quantità presente. 
Questa funzione associa ad ogni prodotto la sua quantità 
controlled available: productQuantityDomain 
 
Si definisce l’insieme delle monete, che fanno parte del dominio delle monete. 
controlled Coins: CoinDomain 
e si definisce il dominio delle monete inserite 
controlled insertedCoin: CoinType 
inizializzazione: 
default init s0: 
 function coins=0 
function available($p in product)=10 
 
regole: 
main rule r_Main = 
if(coins < 25) then 
if(insertedCoin = HALF) then 
if(available(MILK) > 0) then 
r_serveProduct[MILK] 
endif 
else 
if(available(COFFEE)>0) then 
      r_serveProduct[COFFE] 
endif 
endif 
endif 
endif 
 
Volendo si può accorpare in un’unica regola per servire i prodotti, utilizzando una regola con 
parametro. 
Rule r_serveProduct($p in Product)= 
par 
Available($p):= available($p)-1 
 Coins:= coins+1 
endpar 
  
ASM I, Seconda parte 
Riferimenti 
Video lezione di riferimento 20 18 -03-07-10 .38 .44 lucidi da 27 a 42 
Stato Asm 
Nelle ASM gli stati sono associati a un insieme di valori di qualsiasi tipo, memorizzate in 
apposite locazioni. 
Matematicamente una locazione è definita come Il valore di una funzione f  f(x1, … , xn) nello 
stato S, cioè di funzioni con valore.  
Es. availab le (LATTE) = 10 
Potremmo pensare alle locazioni come a delle variabili, ma non sono spazi in memoria che 
contengono un valore, sono invece occupati dal risultato di una certa funzione con un certo 
parametro. 
Per variabili si intende un valore, mentre per locazione la coppia la funzione + parametro. 
Questo ci porta dire che le transizioni di stato delle FSM corrispondono alle transizioni di 
stato delle ASM con aggiornamenti dei valori contenuti nelle locazioni. 
Definizione formale dello stato di una ASM  
Fissato un vocabolario, uno stato: è l’insieme non vuoto (super universo) delle interpretazioni 
delle funzioni del vocabolario. 
Iniziamo a definire cosa sia un vocabolario. 
 
Vocabolario 
Un vocabolario è una collezione finita di nomi e funzioni, un insieme di nomi che non hanno 
significato fino a quando non glielo diamo noi. 
Dare significato = dare un’interpretazione. 
Si può pensar al vocabolario come alla dichiarazione di tutte le funzioni che verranno usate. 
Le funzioni dichiarate possono essere dinamiche o statiche. 
Dinamiche, se il significato può cambiare di stato in stato, mentre statiche se rimane lo 
stesso per tutta l’esecuzione. 
Nei linguaggi di programmazione classici, siamo abituati ad utilizzare le variabili, in asm le 
variabili come le conosciamo noi, non esistono, perché tutto è funzione. 
Per modellare una variabile bisogna creare una sono funzioni dinamica che abbia arietà zero. 
Mentre per definire le costanti, utilizzo delle funzioni statiche con arietà 0. 
Il concetto di funzione matematica racchiude il concetto di variabili, costanti, funzioni e 
insieme. 
Dal punto di vista matematico, se voglio modellare un sistema e rappresentare in astratto lo 
stato attuale mi basta solo definire un insieme di funzioni e definire come queste funzioni 
cambiano di interpretazione passando allo stato successivo. 
Avendo un vocabolario, che contiene dei nomi, associo ai nomi delle funzioni alle quali 
assegno delle interpretazioni e possono essere statiche o dinamiche a seconda del fatto che 
la loro interpretazioni cambia o meno nel tempo. 
Ogni vocabolario ASM contiene sempre 3 funzioni statiche di arietà zero (costanti statiche) 
undef, true e false. 
I numeri sono costanti numeriche che l’utente può definire a piacimento come ad esempio: 
votomin=18 
Il valore undef serve per poter dare la possibilità di far diventare le funzioni totali, perché non 
sempre lo zero ha la stessa interpretazione, ad esempio nella moltiplicazione e nella 
somma, lo zero ha due significati diversi.  
Le funzioni statiche con arietà maggiore di zero sono definite tramite una legge fissa e di 
solito sono le operazioni tra numeri, +, -, *… oppure tra booleani (op logici come and or… ) 
Le funzioni dinamiche con arietà zero sono le classiche variabili. 
Esempio di vocabolario: Σ bool  
Che è il vocabolario di tutte le funzioni booleane. 
In questo vocabolario si inseriscono diversi elementi che sono: 
Due simboli 0 e 1 che sono due costanti. 
Una funzione con arietà 1 che è il NOT con il simbolo “-”. 
Due funzioni binarie chiamate “+ ” “*” per OR e l’AND. 
Per il momento abbiamo solamente definito il vocabolario senza darne un’interpretazione. 
 
Prima di darla cerchiamo di definire il concetto di stato. 
Fissato un vocabolario Σ (che è un insieme di nomi), uno stato A del vocabolario Σ è un insieme 
non vuoto X, detto super universo di A, con le interpretazioni dei nomi delle funzioni di Σ. 
 
Quindi fisso un vocabolario, definisco le interpretazioni dei simboli e definisco un insieme 
non vuoto X che comprende i simboli con le loro interpretazioni, ecco definito il super 
universo A 
Se f è un nome di funzione n-aria di Σ, allora la sua interpretazione f A è una funzione da Xn a 
X. 
Se c è un nome di costante di Σ, allora la sua interpretazione A è un elemento di X 
Adesso vedremo due esempi di stato su Σ  
Ese m p i o 1: 
 
Stiamo facendo discorsi a basso livello, quindi lo zero, l’uno, il meno, il più e l’asterisco devo 
considerarli solo come dei simboli, come dei disegni che fanno parte del vocabolario Σ Bool 
che per il momento non hanno significato. 
 
Per dargli un significato creo lo stato A che è composto dai numeri chiamati anche costanti 0 
e 1. 
Quindi per questo motivo che ai simboli 0, 1 , -, +, * ho ad apice A per indicare che 
attualmente stiamo considerando l’interpretazione nel contesto dello stato A. 
 
I simboli a e b sono da interpretare come qualsiasi valore del dominio cioè che possono 
essere solo 0 e 1 . 
Con questa logica procedo ad analizzare le righe. 
Lo zero, simbolo che ho messo all’interno del mio vocabolario Σ Bool
 
nella mia algebra che 
ha come X come super universo gli associo la costante 0. 
Stessa cosa per il simbolo 1. 
 
Al simbolo – seguito da un valore arbitrario a gli conferisco l’interpretazione 1 -a. 
E così via. 
 
 
 
Domini ASM 
Si possono dividere il super universo in domini o sotto universi in base alla loro funzione 
caratteristica, cioè creo una funzione che risulti vera solamente per gli elementi presenti in 
quel dominio. 
Nella slide si fa l’esempio che il super universo è composto da i seguenti elementi {1,2,3, a, b, 
mario, pippo} che si possono dividere nei domini interi char e string, questi domini sono 
guidati da una funzione che risulterà vera solamente per gli elementi di quel dominio. 
 
Parliamo sempre di funzioni, ma perché serve che tutto sia funzione?  
Perché dobbiamo riportare il concetto delle ASM alle macchine a stato, composte da uno 
stato più la transizione (la freccia). 
Nelle ASM lo stato piuttosto che essere una cosa non strutturata a cui posso definire solo 
nel nome diventa adesso uno stato che è una struttura algebrica, con nomi di funzioni e 
d om ini.  
Per il momento non abbiamo definito formalmente la transizione ma andando per intuizione 
ipotizziamo di fotografare il sistema al momento t0 e t1 ; potremo avere due casi, il primo che 
non sia successo niente e il secondo che sia successo qualcosa. 
Il concetto matematico che può cambiare è l’interpretazione della funzione, perché le 
funzioni non si possono creare o distruggere in quanto il vocabolario è fisso, quindi l’unica 
cosa che si può cambiare è l’interpretazione della funzione. 
Come abbiamo visto tutto è funzione, costanti variabili, domini, predicati. 
Quello che dovrò fare nelle regole di transizione è definire come cambiano le regole di 
interpretazione delle funzioni, questo mi darà il concetto di passo di computazio ne.  
 
Durante le transizioni potranno cambiare solamente le interpretazioni delle funzioni 
dinamiche. 
Le transizioni hanno come mattone di base, l’aggiornamento della funzione. 
 
Esempio di stato ASM – orologio: 
Il vocabolario è composto da 4 elementi 2 funzioni dinamiche e 2 funzioni statiche, il super 
universo è composto da elementi reali. 
  
                            Forse potrebbe interessarti:
Architettura dell'informazione per la rete
PAROLE CHIAVE:
informaticasistemi informatici
modellazione
sistemi complessi
metodi formali
model checking