Lien de la note Hackmd
Si on a un ping pong, comment on verifie que l’algo marche ?
On lance et un espere que ca marche? Non ca c’est etre religieux
Il faut check toutes les relations et entralecements possibles (effets de bord, etc).
Il faut faire des preuves automatiques
On va prendre des outils capables d’en faire, en utilisant
- La description $\neq$ implementation du systeme distribue
- S’abstraire des pbs de langage
Qu’est-ce qu’un systeme ?
On veut qu’une fusee n’explose pas en vol
Why is a model required ?
On va considerer que TOUS les systemes qu’on etudie soit un systeme infini.
Le code suivant serveur peut etre considere un systeme:
unsigned received_= 0;
while (1)
{
accept_request();
received_ = received_ + 1 ;
reply_request();
}
Avec un modele, on enleve le probleme de received_

A more realistic example
On a une abstraction des differents comportements de notre systeme

On est capable de construire l’integralite du systeme. On veut faire le produit cartesien de tout le monde.

A l’etat initial du systeme, tout le monde est dans l’etat $1$.
Pour passer de l’etat $111$ a l’etat $211$, on doit avoir en meme temps un message recu et en transit.
Est-ce qu’on peut avoir 2 envois simultanement ?
Kripke structure

On definit un alphabet, un etat, une transition.


Example

On utilise des booleens qu’on appelle des propositions atomiques
- On etiquete notre modele pour savoir si on peut atteindre un chemin
How to express finite behavior ?
Combien de propositions atomiques ?
3 (rouge, orange, vert)

Comment on exprime les comportements a l’infini ?
On utilise une logique
Linear Temporal Logic

On s’interesse aux operateurs:
- $U$: “vrai jusqu’a qu’autre chose soit vrai”
- $X$: “a la prochaine etape c’est vrai”
Globally

Finally

Next

Until

Retour au feu rouge


Automata for model checking

Buchi: Transformer une logique d’evenement en automate

Express property automaton

Automata approach for model checking

On a reussi a creer un modele pour Aut. A et Kripke. On fait un produit synchronise
Produit synchronise On a l’automate de la propriete

On a l’automate du systeme. Quand on lit $d_1$ et $r_1$, on doit s’assurer de lire la meme chose dans notre systeme, on supprime les chemins qui font diverger ces valeurs, par le produit cartesien.

On regarde cette automate, si on trouve une pastille noir qui s’appelle en boucle, on a un contre-exemple a notre propriete.

La reponse est oui
