Rapport de stage Anaïs CHENON
I. Définitions
1. Coq
Le logiciel Coq est un assistant de preuve développé par le CNRS, qui fournit un langage permettant de
formaliser des définitions et des théorèmes mathématiques et de les prouver.
Ce langage, proche du Caml, permet par exemple de définir des
constantes telles que des entiers naturels ou des booléens.
On peut aussi définir des fonctions comme la fonction
addition, ici renommée f
Un outil développé en plus par mes maîtres de stage permet de définir deux résultats possibles à une
fonction, ce qui est notamment utile par exemple lorsqu'on applique un algorithme à un état : si l'état
change, le résultat apparaît sous la forme Some s, sinon sous la forme None.
2. Algorithmes distribués, auto-stabilisants et silencieux
Comme présenté succinctement dans l'introduction, un algorithme distribué est un ensemble d'unité de
traitement autonomes inter-connectées entre elles. Chaque unité, chaque machine est un processus, qui
peut être représenté par un nœud dans un réseau. L'autonomie provient du fait que chaque unité de
traitement est pourvue de son propre contrôle ; les machines sont aussi capables de s'échanger des
informations.
L'algorithme est exécuté simultanément sur plusieurs machines différentes ce qui permet d'effectuer un
seul calcul ; à chaque « pas », chaque « étape », chaque processus effectue l'algorithme dont il est
pourvu
5/16
Definition n : nat := 3
Definition B : bool := true
Definition f (n1 n2 : nat) : nat := n1+n2
Definition l : list nat := 5::4::3::2::1::nil