Thèse soutenue

Preuves de theoremes inductifs et synthese de programmes recursifs

FR  |  
EN
Auteur / Autrice : SERGE MULLER
Direction : J. CHAZARAIN
Type : Thèse de doctorat
Discipline(s) : Sciences appliquées
Date : Soutenance en 1996
Etablissement(s) : Nice

Résumé

FR

Le sujet de cette these concerne l'automatisation des preuves inductives de specifications et de la synthese de programmes recursifs. Plus precisement, nous avons focalise nos travaux sur les preuves de formules de la forme pour tout x, il existe y tel que phi(x,y) dans le modele initial d'un systeme equationnel. Ces formules representent des specifications de problemes. La difficulte d'une telle approche provient du fait que de telles preuves necessitent en general plus qu'un simple raisonnement equationnel et ont recours a des raisonnements inductifs. Elles sont de plus rarement automatiques. Le processus automatique que nous decrivons utilise le concept d'ensemble test d'un systeme de reecriture qui capture la notion de preuve par recurrence. Il permet alors de decomposer les preuves suivant des schemas de recurrence en preuves de lemmes plus simples, et cela d'une maniere automatique. Nous avons etendu le processus pour permettre de simplifier des egalites en utilisant l'injectivite des symboles de fonction, et pour traiter le cas des formules purement existentielles. En outre nous donnons un critere suffisant pour refuter des formules non valides dans le modele initial. Notre contribution a la synthese de programmes se place dans le cadre de l'approche constructive. Notre processus de synthese consiste a extraire le programme desire de la preuve obtenue par notre processus de preuve. Nous avons prouve la correction des programmes synthetises vis a vis de la specification et de la theorie considerees. Quant a la terminaison elle est garantie par la nature de l'ordre utilise dans la preuve. Ces methodes ont ete implantees dans le systeme lemma qui synthetise des programmes logiques. Il a permis de construire automatiquement des programmes dans des domaines comme les entiers et les listes