Mots clés : déduction, réécriture,
récurrence, contrainte, paramodulation, résolution .
Résumé :
Nous développons des méthodes et des systèmes de
déduction automatique fondés sur la réécriture et la
résolution de contraintes. Ces méthodes sont appliquées aux
preuves par induction et aux preuves équationnelles.
L'élaboration de méthodes et d'outils de vérification de
logiciels est l'un de nos objectifs majeurs. Pour le
réaliser, nous développons des techniques et des systèmes de
déduction automatique fondés sur la réécriture et la
résolution de contraintes. La vérification de spécification
sur des structures de données récursives fait fréquemment
appel à des raisonnements par récurrence, ou à la
manipulation d'équations, et exploite des propriétés
d'opérateurs comme l'associativité ou la commutativité.
La réécriture, qui permet de simplifier les expressions et
les formules, est désormais un ingrédient essentiel pour
l'efficacité des systèmes de preuve automatisés. De plus, une
relation de réécriture bien fondée peut s'utiliser
naturellement pour implanter des raisonnements par
récurrence. C'est la base de notre approche dans le système
SPIKE qui permet en outre de
combiner diverses techniques de simplification et de détecter
les conjectures qui sont fausses. Dans le même cadre, nous
pouvons coder des preuves de propriétés observables des
programmes, qui sont motivées par les spécifications
orientées objets.
Les contraintes permettent de différer la résolution de
problèmes symboliques complexes pour les résoudre de manière
opportuniste. Elles permettent également d'augmenter
l'expressivité du langage de spécification et d'affiner les
stratégies de preuves. Le traitement des contraintes
d'unification ou d'orientation en présence d'opérateurs
interprétés (par exemple associatifs-commutatifs) laisse
espérer des preuves automatisée radicalement plus courtes.
Une implantation de ces idées a d'ailleurs permis à
W. McCune [Col96,McC97] de résoudre un problème mathématique
ouvert. La combinaison des contraintes avec les
simplifications par réécriture pose des problèmes complexes à
la fois théoriques, sur la complétude des stratégies, et
pratiques, pour une implantation performante. Nous explorons
ces techniques d'un point de vue conceptuel mais aussi
expérimental, par exemple dans le système daTac.