Microsoft présente PDD Kit : des preuves mathématiques pour vérifier le code écrit par des agents IA

Microsoft Research a présenté le 5 novembre le PDD Kit (Proof-Driven Development Kit), une boîte à outils qui utilise des preuves mathématiques pour vérifier si le code écrit par des agents d'intelligence artificielle fait vraiment ce que le développeur a demandé. La proposition, décrite par les chercheurs Alex Lavaee et Matthai Philipose sur le blog officiel de Microsoft Research, déplace le centre de la révision : au lieu de lire ligne par ligne le code généré par l'IA, l'équipe examine l'intention — et une machine prouve que le code la respecte.

Le problème que PDD Kit tente de résoudre est une question d'échelle. Les agents de programmation livrent déjà des fonctionnalités entières en une seule fois, avec des dizaines ou des centaines de milliers de lignes, et lire chaque ligne d'une pull request n'est plus viable. Le plan en langage naturel devrait servir de contrat entre le développeur et l'agent, mais rien n'oblige l'agent à le suivre — et les tests qu'il écrit lui-même valident en général ce qu'il a construit, pas ce qui a été demandé.

Comment ça fonctionne

PDD Kit transforme l'intention exprimée en langage courant en une spécification formelle en Verus, un langage de preuve pour Rust développé avec la participation de Microsoft Research, de la Carnegie Mellon University, de l'ETH Zurich et d'autres institutions. Le vérificateur prouve ensuite que le code de l'agent respecte cette spécification pour toutes les entrées possibles — et recourt à des tests là où la preuve ne peut pas atteindre. Le kit fonctionne dans Chopin, l'environnement de planification collaborative en temps réel de GitHub Next.

Le flux comporte deux moitiés : d'abord, l'équipe examine l'intention en langage simple, PDD Kit posant les questions qu'un réviseur attentif poserait et consignant les réponses dans un artefact d'intention. Ensuite, le kit génère des preuves que le code respecte les spécifications formelles, ainsi que des tests de qualité pour le reste. Aucune formation en méthodes formelles n'est nécessaire pour utiliser le processus.

Le test : la connexion d'une boutique en Rust

Pour démontrer le kit, l'équipe a construit Pet Store, une application web complète écrite en Rust, d'environ 5 000 lignes de code : le back-end utilise Axum et SQLite et gère le stock, les promotions, les commandes et le paiement, tandis que la vitrine est une application Leptos compilée en WebAssembly. L'exercice s'est concentré sur la logique de connexion, à partir d'une demande de seulement deux phrases : le jeton n'est émis qu'avec le bon mot de passe, et seuls les comptes administrateurs reçoivent des jetons d'administrateur.

Verus a vérifié formellement cinq fonctions — login_flow, login_core, lookup_target, decide_login et issue_token — et, selon les chercheurs, a durci le code et révélé des bogues déjà présents, prouvant l'absence de bogues de connexion par rapport à la spécification. Le développeur n'a examiné que l'intention et n'a jamais lu le code généré ligne par ligne.

Ce que la preuve couvre — et ce qu'elle laisse de côté

Microsoft prend soin de délimiter la garantie. Six composants restent hors de la preuve, derrière des contrats supposés que le développeur accepte un par un : les deux requêtes à la base de données, la vérification du mot de passe avec bcrypt, l'horloge, la signature du jeton, la gestion des erreurs de la base de données et l'extraction de la requête. Chacun est couvert par des tests.

La preuve ne dit rien non plus de ce qui ne figure pas dans la spécification : si la connexion va répondre, à quelle vitesse, quelle est la limite de tentatives ou si le message d'erreur est clair. Et PDD Kit ne vérifie que Rust aujourd'hui — le langage de Verus. Les projets dans d'autres langages peuvent être portés vers Rust ou appeler le Rust vérifié via des bindings.

Contre la « vérification d'ambiance »

L'une des fonctions du kit est le test de mutation : pdd-prove plante un bogue par clause de la spécification dans une copie du code, et Verus doit rejeter chaque mutant. Si un mutant passe, la clause ne contraint rien — et revient comme une lacune. C'est la défense contre ce que les chercheurs appellent la « vibe verification » : des invariants faibles qui se prouvent, mais ne garantissent presque rien.

Lorsque les tâches passent, le kit ouvre des pull requests avec le code vérifié et marque chaque exigence comme formellement vérifiée ou contrôlée empiriquement. Le flux pdd-ship ajoute la vérification Verus à l'intégration continue, de sorte que toute modification ultérieure de la connexion doit continuer à prouver contre la même spécification.

PDD Kit est un prototype de recherche, dont l'accès est décrit comme un aperçu de recherche limité. Il indique pourtant une direction concrète pour un problème réel : à mesure que les agents écrivent de plus en plus de code, examiner l'intention — et prouver qu'elle a été respectée — pourrait être le seul moyen pour la révision de suivre le rythme.

Sources

Le compte officiel @MSFTResearch a également relayé ce travail sur X le 5 novembre 2026.

Crédit image : Microsoft Research — organigramme de décision de PDD Kit, image à la une de l'article officiel du blog Microsoft Research.

Transparence : cet article a été produit avec l'aide de l'intelligence artificielle, en croisant des publications publiques sur X et des sources en ligne. Consultez les sources originales pour confirmer les informations.

Par Muse