Un DSL de sécurité Lean 4 contraint
Écrivez des fonctions de sécurité sous forme de machines à états, de transitions gardées, de flux de données booléens et à virgule fixe — et prouvez des propriétés de sécurité (invariants, atteignabilité d’un état sûr) avec le noyau Lean.
Lean 4Génération diverse à double canal
Deux générateurs conçus indépendamment, l’un en Rust, l’autre en Lean, à partir de la même spécification. Leurs sorties doivent être structurellement identiques — toute divergence fait échouer le build.
sgen-a · sgen-bValidation de traduction
Chaque build reparcourt le texte Rust émis, et le noyau Lean vérifie un certificat neuf attestant qu’il est sémantiquement équivalent à la spécification. Ce qui est prouvé est ce qui part en production.
Certificat du noyauSortie Rust restreint
Aucun tas, sans panic, sans unsafe, boucles bornées par des constantes, arithmétique saturante — prêt pour le compilateur qualifié Ferrocene.
#![no_std]Traçabilité bidirectionnelle, vérifiée par machine
Exigence → théorème Lean → symbole Rust → vecteur de test. Le texte de l’exigence figé par hachage transforme tout impact de changement en erreur de build.
Matrice de traçabilitéArithmétique à virgule fixe au format Q
Largeurs, mise à l’échelle et saturation explicites — ainsi que l’absence de dépassement et les obligations d’exactitude sur chaque constante, vérifiées par le noyau.
Q-format