projet : CROAP

previous up next contents
Précédent : Environnement interactif de preuve Remonter : Résultats nouveaux Suivant : Contrats industriels (nationaux, européens et


Sous-sections


   
Calcul formel et Déduction



Participants : Pierre Letouzey, François Maurel, Loïc Pottier, Laurence Rideau, Laurent Théry.

Certification de l'algorithme de Stålmark

Dans le cadre de l'action incitative CFC nous avons travaillé sur la certification d'un des algorithmes les plus efficaces pour la détection de tautologies : l'algorithme de Stålmarck. Une première version de l'algorithme a été entièrement prouvée en utilisant CtCoq. Un travail d'optimisation de l'algorithme reste à faire pour rendre cette expérience réellement concluante.

Optimisation de l'algorithme de Buchberger

Dans le cadre de l'action incitative CFC, le travail sur l'algorithme de Buchberger entrepris l'année précédente a été poursuivi. Cette année, on s'est attaché à prouver certaines optimisations de l'algorithme. Le résultat est que l'algorithme certifié ainsi obtenu se compare favorablement avec l'algorithme présent dans le système de calcul formel Maple. Ce travail a fait l'objet d'une publication dans la conférence Cade-15 [[16]] et de la distribution d'une librairie certifiée de calcul de base de Gröbner.

Certification de l'algorithme de Cantor-Zassenhaus

Francois Maurel, stagiaire de maîtrise de l'ENS Ulm, a réalisé une preuve de l'algorithme de Cantor-Zassenhaus pour la factorisation des polynômes dans les corps finis. Le code extrait (avec l'extraction de Type, voir section 6.6.6) est très raisonnable en efficacité, et permet de traiter des exemples importants (polynômes de Shup). Il arrive qu'il soit plus rapide que Mupad. Une page de test se trouve à l'URL http://www.inria.fr/croap/CFC/FFFC/facto.html.

Certification de l'analyse et l'impression de polynômes

Benjamin Blanc et Benjamin Grégoire, stagiaires de la maîtrise MASF de Nice ont certifié la cohérence entre des fonctions d'analyse syntaxique et d'affichage de polynômes à plusieurs variables. Le théorème principal dit que lorsque l'on imprime un polynôme et qu'on le relit, on le retrouve identique.

Formalisation de l'algèbre en Coq

La bibliothèque Coq de structures mathématiques s'est étoffée. Elle est maintenant indépendante du développement des catégories d'A. Saïbi, qui n'a pas été encore portée dans la dernière version de Coq, à cause de problèmes d'incompatibilité d'univers. Ses parties les plus développées concernent la théorie des ensembles (inspirée par les développements de G. Huet et G. Kahn), la théorie des groupes, la théorie des anneaux commutatifs, et les corps. Cette bibliothèque a été utilisée dans le stage de F. Maurel. Elle va servir de base à une thèse co-encadrée par A. Hirschowitz et L. Pottier sur la formalisation en Coq de la géométrie algébrique et de la méthode d'Horace pour l'interpolation en plusieurs variables. Mais elle est destinée à servir plus largement d'outil de référence pour les preuves à caractère très mathématique, comme celles d'algorithmes de calcul formel. Un soin important a été apporté à la lisibilité grâce à Ctcoq, de façon à rendre ce travail intelligible à une personne étrangère au domaine de la preuve sur machine. Il est prévu d'utiliser et de tester ce développement dans le cadre d'un cours d'algèbre de DEUG 1re année à Nice. Ce travail a été présenté par L.Pottier au workshop Calculemus/UITP à Eindhoven en juillet.

   
Extraction de Type

L'extraction de Coq ne fonctionne qu'avec les sortes Prop et Set. Mais la formalisation des mathématiques même élémentaires nécessite l'utilisation de la sorte Type. Aussi a-t-on développé une technique d'extraction de tous les termes Coq en OCaml. Essentiellement, on extrait vers un lambda-calcul non typé, avec pattern matching et récursion, en effondrant tous les termes de la sorte Prop vers une constante. Le code généré est du OCaml, dans lequel on élimine le typage par l'utilisation systématique de la fonction Obj.magic. L'extraction de Type a des performances raisonnables : sur l'algorithme de Buchberger, elle est au pire deux fois plus lente que l'extraction standard de Coq. Mais elle a encore de gros défauts : pas de modularité, code extrait illisible, choix d'expansion des fonctions.



previous up next contents
Précédent : Environnement interactif de preuve Remonter : Résultats nouveaux Suivant : Contrats industriels (nationaux, européens et