2.8 Le prouveur
Le prouveur automatique de l’Atelier est composé de :
- mécanismes
Ces mécanismes doivent orienter la preuve, de manière à démontrer les buts des
obligations de preuve. Ils permettent le déclenchement des règles de la base de
règles.
- règles
Ces règles sont celles de la base de règles du prouveur (voir chapitre 2.4 page ). Elles
peuvent aussi avoir été ajoutées par l’opérateur (règles manuelles), par l’intermédiaire
de :
- fichier pmm (Proof Manual Method) pour un composant donné (voir chapitre 6
page )
- fichier PatchProver pour un projet complet (voir chapitre 7 page )
Le fichier PatchProver doit se situer dans le répertoire bdp du projet concerné
Attention ! ! L’utilisation de règles manuelles remet en cause l’intégrité de
la preuve (des règles fausses peuvent permettre de prouver des obligations
de preuve fausses). Il faudra donc, en cas d’ajout de règles, procéder à une
démonstration rigoureuse de celles-ci et s’astreindre à une relecture par une tierce
personne.
- Ressources
On peut paramétrer le prouveur à l’aide d’un fichier de ressources en positionnant les
ressources :
- Keep_Non_Simplified_Hypothesis qui, lorsqu’elle est à TRUE, permet de
conserver en hypothèses, les prédicats simplifiés (par le prouveur) ainsi que leur
version non simplifiée et lorsqu’elle vaut FALSE, indique au prouveur qu’il ne
faut conserver que les versions simplifiées des hypothèses. Par défaut, elle vaut
TRUE.
- Time_Out dont la valeur est un entier exprimant le temps de coupure
des prouveurs satellites (prouveur de prédicats et prouveur mono-lemme) en
User_Pass et Replay i.e. le temps au bout duquel, on décide de stopper l’action
des prouveurs satellites. Par défaut, il vaut 300 secondes.
- Use_Rule_Package qui lorsqu’elle est positionnée à la valeur p1 permet
d’utiliser des règles mathématiques supplémentaires.
- Max_Number_Of_Universal_Hypothesis_Instantiation qui est
représenté par un quadruplet d’entiers naturels dont les valeurs correspondent
respectivement au nombre maximum d’instanciation d’hypothèses quantifiées
universellement en force 0, 1, 2 et 3.