← Derniers articles
💻 computer science

A Minimal Executable Proof for Multi-Language Contract Traceability

Ce papier présente une preuve exécutable minimale et falsifiable démontrant comment un contrat multi-langages, un graphe d'implémentation, une chaîne de traçabilité et une porte de revue peuvent être validés par six programmes « Hello, world! » dans différents langages, produisant cinq résultats de réussite et un saut dû à l'absence d'outils.

Auteurs originaux : Werner Kasselman

Publié 2026-05-28
📖 5 min de lecture🧠 Analyse approfondie

Auteurs originaux : Werner Kasselman

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 soyez un juge dans une salle d'audience très stricte. Vous avez une seule règle, minuscule, pour un jeu : « Dites « Hello, world! » exactement tel qu'écrit, sans aucun bruit supplémentaire, et arrêtez-vous immédiatement. »

Ce papier n'est pas une grande théorie sur la manière de construire l'ensemble du système juridique du logiciel. Au contraire, il s'agit d'une preuve délibérément minuscule et autonome montrant que nous pouvons construire une « salle d'audience » où nous pouvons vérifier si différentes personnes (écrivant dans différentes langues) ont suivi cette unique règle simple.

Voici comment le papier se décompose, en utilisant des analogies du quotidien :

1. Le « Contrat » (Le Règlement)

Les auteurs ont créé un règlement numérique appelé un Contrat.

  • La Règle : Le programme informatique doit imprimer les lettres exactes Hello, world! suivies d'un « saut de ligne » (comme appuyer sur Entrée). Il ne peut rien imprimer sur le canal « erreur » (pas de cris), et il doit se terminer par un « 0 » (un score parfait).
  • L'Analogie : Imaginez un concours de pâtisserie où la seule règle est : « Le gâteau doit mesurer exactement 10 pouces de large. » S'il fait 10,1 pouces, ou s'il est brûlé, vous perdez.

2. Les « Témoins » (Les Testeurs)

Pour prouver que la règle a été suivie, le papier utilise des Témoins. Ce sont des scripts automatisés (de petits robots) qui vérifient le travail.

  • Le Témoin Principal : Il exécute six versions différentes du programme écrites dans six langages différents (Rust, Go, C, Java, TypeScript et AWK).
  • Le Résultat : Cinq d'entre elles ont réussi parfaitement. Une (Java) a été marquée « SKIP » (Passé) car le juge ne disposait pas des bons outils (un compilateur Java) sur son bureau pour la vérifier. Ce n'était pas un échec ; le test n'a tout simplement pas pu avoir lieu.
  • L'Analogie : Imaginez un dégustateur essayant six gâteaux différents. Cinq ont exactement le bon goût. Le sixième est dans une boîte qu'il ne peut pas ouvrir, alors il le marque « Non testé » plutôt que « Mauvais ».

3. Le « DAG » (L'Arbre Généalogique)

Le papier utilise une structure appelée DAG (Graphe Acyclique Dirigé).

  • Le Concept : Imaginez un arbre généalogique. Vous avez les « Grands-Parents » (les fichiers de code source), et ils alimentent tous un « Parent » (l'étape de vérification).
  • Le Point : Cette carte montre exactement quel fichier de code a conduit à quel résultat de test. Cela prouve que le test ne s'est pas produit par magie ; c'était un résultat direct et traçable d'un code spécifique.

4. Les « Réécritures » (Les Tours de Magie)

Le papier teste également si le système peut repérer quand quelqu'un essaie de « cacher » la règle.

  • Le Tour Go : Un programmeur a écrit le message « Hello, world! » d'une manière très compliquée et tordue (comme écrire un code secret). Le papier affirme que le système peut toujours voir le « squelette » du code (les noms de fonctions) même si la « viande » (le texte littéral) est cachée.
  • Le Tour AWK : Un autre langage (AWK) ne figurait pas sur la liste officielle des langages que le système comprend habituellement. Ainsi, les auteurs ont créé une liste de contrôle spéciale « de repli » uniquement pour lui.
  • L'Analogie : C'est comme un détective qui peut dire qu'un suspect porte un déguisement (le code tordu) mais qui peut toujours reconnaître sa taille et la pointure de ses chaussures (la structure du code). Pour le langage que le détective ne connaît pas, il utilise simplement une liste de contrôle plus simple.

5. Ce que ce papier N'EST PAS (Les « Non-Revendications »)

C'est la partie la plus importante. Les auteurs sont très prudents pour dire ce qu'ils ne font pas :

  • Ce n'est pas un benchmark : Ils ne disent pas que leur système est le plus rapide ou le meilleur.
  • Ce n'est pas une garantie pour le monde réel : Ils ne prétendent pas que ce système peut attraper tous les pirates ou réparer tous les bugs dans une immense banque.
  • Ce n'est pas à propos du « Sens » : Ils ne prouvent pas que deux programmes complexes signifient la même chose. Ils prouvent seulement que pour cet exemple minuscule, les règles ont été suivies.

La Conclusion

Considérez ce papier comme un plan pour une seule brique parfaite.

Les auteurs ne tentent pas encore de construire un gratte-ciel. Ils disent : « Regardez, nous avons construit une toute petite brique. Nous avons une carte de sa fabrication, une liste des outils utilisés, et un témoin qui confirme qu'elle répond à l'exigence de taille. Si vous avez les mêmes outils, vous pouvez construire exactement la même brique et voir le même résultat. »

L'objectif est de montrer que la transparence est possible : vous pouvez retracer une affirmation (nous avons suivi la règle) jusqu'au code spécifique et au test spécifique qui l'ont prouvée.

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.

Essayer Digest →