CentraleSupélec LMF, UMR CNRS 9021
Département informatique Laboratoire Méthodes Formelles
Bât Breguet, 3 rue Joliot-Curie Bât 650 Ada Lovelace, Université Paris Sud
91190 Gif-sur-Yvette, France Rue Noetzlin, 91190 Gif-sur-Yvette, France
Spécification des booléens vue en FISDA

Avertissement

Cette spécification a été écrite dans un but pédagogique, en reprenant le style axiomatique des spécifications algébriques telles qu'elles étaient présentées aux étudiants. Isabelle a été choisi comme outil pour permettre aux étudiants de manipuler concrètement ce type de spécification. Toutefois, cette spécification a un vice caché dans l'utilisation de datatype pour définition les opérations Not, And et Or.

En effet, datatype permet de définir les constantes et les constructeurs d'un type, et implicitement, l'hypothèse est faite que les différents constructeurs produisent des termes différents. Ainsi, d'après cette définition, false est différent de tout terme construit avec Not, alors que l'axiome b1 dit que false = Not true. À partir de cette contradiction, on peut démontrer n'importe quoi, comme le montre l'exemple suivant :

Une définition axiomatique qui semble raisonnable peut donc se révéler très risquée...