A Lean 4 Formalization of Euclidean Domain Algorithms from a 1986 Icon Experimentation Package
Cet article présente une formalisation complète en Lean 4 des algorithmes du domaine euclidien de l'ICON 1986, séparant les définitions mathématiques, les implémentations calculables et la reproduction des sorties héritées afin de fournir des preuves vérifiées par machine pour les procédures centrales tout en préservant les résultats originaux des tests de performance.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous possédez un vieux livre de recettes poussiéreux de 1986, écrit par un chef nommé Lars. Ce livre contient 14 recettes spécifiques et complexes pour « cuisiner » avec des nombres — comme trouver le plus grand commun diviseur, résoudre des énigmes avec des restes, ou manipuler des polynômes. Le livre original a été écrit dans un langage appelé Icon, qui était comme un outil de cuisine spécialisé et excentrique, fonctionnant très bien à l'époque, mais que les ordinateurs modernes ont du mal à comprendre.
Ce document traite d'une équipe qui a pris ce livre de recettes de 1986 et l'a traduit en Lean 4, un langage moderne et ultra-strict utilisé pour prouver des vérités mathématiques. Mais ils n'ont pas seulement traduit les mots ; ils ont reconstruit la cuisine entière pour s'assurer que la nourriture ait exactement le même goût, tout en ajoutant un « inspecteur de sécurité » pour vérifier si les mathématiques sont réellement correctes.
Voici comment ils ont procédé, décomposé en concepts simples :
1. La cuisine à trois étages
Le plus grand défi était que les outils mathématiques modernes (appelés Mathlib) sont comme une cuisine de haute technologie et automatisée. Ils sont parfaits et prouvés, mais ils sont « non calculables » — ce qui signifie que vous ne pouvez pas réellement les exécuter pour voir le résultat sur un écran ; ils n'existent que sous forme de preuves abstraites. Le package Icon de 1986, cependant, était un système de type « exécuter et voir ».
Pour combler ce fossé, les auteurs ont construit une cuisine à trois étages distincts :
- L'Étage 1 : L'Étage de la Preuve (L'inspecteur de sécurité). Cet étage utilise les outils mathématiques modernes et de haute technologie (Mathlib). Il contient les définitions mathématiques de référence. Si vous demandez à cet étage : « Cette recette est-elle correcte ? », il vous donne un « Oui » vérifié par machine. Cependant, vous ne pouvez pas cuisiner réellement ici.
- L'Étage 2 : L'Étage Calculable (La cuisine de travail). Cet étage est une cuisine personnalisée, de style ancien, qui imite exactement le système Icon de 1986. Il utilise des instructions pures, étape par étape, qu'un ordinateur peut réellement exécuter pour produire des résultats. Il n'a pas encore d'« Inspecteur de sécurité », mais il produit exactement les mêmes nombres que le livre original de 1986.
- L'Étage 3 : L'Étage du Rapport (Le serveur). Cet étage est responsable du formatage de la sortie. Il prend les nombres de la Cuisine de travail et les imprime avec exactement la même police, le même espacement et le même style que le rapport de 1986. Cela permet à l'équipe d'effectuer un « contrôle ponctuel » pour s'assurer que le nouveau système est un clone parfait de l'ancien.
2. Le « Fantôme » dans la machine (La découverte de la coquille)
L'une des parties les plus passionnantes du projet était un mystère historique. Dans le rapport de 1986, il y avait un tableau de résultats pour un calcul spécifique (appelé PREM). Le tableau imprimé affichait un nombre énorme et compliqué comme réponse.
Cependant, lorsque les auteurs ont exécuté le code original de 1986 sur un ordinateur moderne, la réponse était zéro.
Le document explique que le rapport de 1986 contenait une coquille dans le tableau imprimé. Les mathématiques étaient en fait simples : diviser un polynôme par une constante devrait toujours laisser un reste de zéro. Le nouveau système Lean a détecté cette erreur en « cuisinant » réellement la recette et en voyant que le résultat était zéro, et non le nombre géant imprimé dans le livre. Ils ont corrigé une erreur de documentation de 40 ans en exécutant le code.
3. Ce qu'ils ont réellement prouvé (et ce qu'ils n'ont pas prouvé)
Les auteurs sont très honnêtes sur ce qui est « prouvé » et ce qui est simplement « digne de confiance ».
- Ce qui est « Prouvé » (Niveau A) : Pour les mathématiques entières de base (comme trouver le plus grand commun diviseur de deux nombres entiers), ils ont utilisé l'Inspecteur de sécurité moderne. Ils ont une garantie vérifiée par machine que ces algorithmes spécifiques sont mathématiquement parfaits.
- Ce qui est « Digne de confiance » (Niveau B) : Pour les recettes plus complexes et sophistiquées (comme la division de polynômes ou les transformées de Fourier rapides), ils n'ont pas encore prouvé qu'elles correspondent à l'Inspecteur de sécurité moderne. Au lieu de cela, ils s'appuient sur des tests de régression. Cela signifie qu'ils ont exécuté le nouveau code et l'ont comparé ligne par ligne avec la sortie de 1986. Puisque le code de 1986 a fonctionné pendant 40 ans et que le nouveau code correspond parfaitement, ils « font confiance » au résultat.
- La « Liste de choses à faire » (Niveau C) : Ils ont identifié les « Obligations de cohérence ». C'est comme une promesse pour les travaux futurs : « Nous promettons de prouver plus tard que la Cuisine de travail (Étage 2) produit exactement les mêmes résultats que l'Inspecteur de sécurité (Étage 1). » Ils ne l'ont pas encore fait, mais ils ont cartographié précisément où la preuve doit aller.
4. Pourquoi cela importe
Ce document ne porte pas sur l'invention de nouvelles mathématiques ou sur l'utilisation de ces algorithmes pour le diagnostic médical ou l'exploration spatiale. Il porte sur la préservation et la vérification.
- Préservation : Ils ont sauvegardé une pièce de l'histoire de l'informatique (le package Icon de 1986) en le traduisant dans un langage qui sera encore lisible dans 50 ans.
- Vérification : Ils ont montré que même les algorithmes « anciens » peuvent être rigoureusement vérifiés. Ils ont prouvé que la logique de 1986 tient la route, même si le rapport imprimé original contenait une coquille.
- Transparence : Ils ont clairement étiqueté les parties du code qui sont mathématiquement prouvées et celles qui sont simplement « vérifiées par rapport à l'ancien livre et qui correspondent ».
En résumé, ce document est une rénovation de capsule temporelle. Ils ont pris une vieille maison légèrement poussiéreuse, ont renforcé les fondations avec de l'acier moderne (les preuves Lean), ont conservé la disposition originale des meubles (les algorithmes de 1986) et ont même trouvé une fissure dans le mur (la coquille) que personne n'avait remarquée pendant quatre décennies.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.