Logique de sécurité
Logique de vote 2oo3 et un déclenchement à verrouillage qui reste vrai une fois déclenché.
REQ-SF-001 · 002Le projet de référence du voteur fait passer neuf fonctions de sécurité — vote, verrouillage, limitation de pente, surveillance de déclenchement, verrouillages de sécurité et une jauge de débit avec une frontière en virgule flottante — à travers les treize jalons, et rejoue chacune sur un Cortex-M4F émulé.

examples/voter est un projet djsafe complet : un fichier d’exigences, les spécifications Lean qu’il désigne, et une section cible nommant thumbv7em-none-eabihf sur la machine QEMU netduinoplus2. C’est le projet remis à un évaluateur externe accompagné d’un dossier de preuves unique.
Chaque exigence énonce, en texte clair, ce que la fonction doit faire — « La sortie du voteur doit être vraie si et seulement si au moins deux des trois canaux d’entrée sont vrais » — et son texte normalisé en espaces est fixé par empreinte dans les preuves, si bien qu’un changement de formulation est un changement que le build peut voir.
Logique de vote 2oo3 et un déclenchement à verrouillage qui reste vrai une fois déclenché.
REQ-SF-001 · 002Un limiteur de pente borné à ±100 par pas dans [−1000, 1000], un moniteur de déclenchement à deux états avec hystérésis, et un bloc de gain Q4.
REQ-SF-010 · 011 · 012Moyennes, ratios, racines carrées, normes de vecteurs et compteurs modulo, y compris l’arithmétique i64 large — certifiés sans panique (panic-free).
REQ-SF-013 · 014Un verrouillage de pression qui se déclenche à l’activation à ≥ 3000 et s’efface à la réinitialisation en dessous de 2500, avec une pression pire cas verrouillée et une marge de sécurité.
REQ-SF-015Une jauge de débit dont la valeur de capteur entre en f32 IEEE-754 par une conversion certifiée entiers uniquement vers Q4, et dont la marge ressort en f32 exactement convertie — le cœur en virgule fixe inchangé.
REQ-SF-016Les exigences s’analysent avec des identifiants uniques ; le paquet Lean entier — spécifications, bibliothèque de sémantique, chaque théorème — s’élabore et se vérifie par le noyau.
Chaque artefact dérivé de Lean est régénéré à partir des modules qui viennent d’être vérifiés, et une fonction mal formée est refusée à l’export.
L’IR, les sources de spécification et la bibliothèque de sémantique sont hachés par Lean et par Rust, et les deux doivent concorder.
Chaque exigence est satisfaite par une fonction, et chaque fonction ne cite que des exigences connues.
« 9 fonctions identiques en AST entre sgen-a et sgen-b », puis canoniques au bit près entre les deux.
Par fonction, cinq théorèmes sur l’artefact tel que reparsé à partir des octets livrés, vérifiés par le noyau Lean.
Vecteurs de référence Lean face au code compilé sur l’hôte, puis par fonction sur la cible émulée, chaque ELF haché.
Certificats, matrice de traçabilité, manifeste de comparaison dos à dos et transcription sur cible assemblés en un seul dossier.
Le guide de preuves donne à un évaluateur cinq procédures qui ne dépendent pas du propre rapport du pipeline, chacune exécutée telle qu’écrite. Pour flow_gauge : un troisième SHA-256 de la source de spécification correspond aux deux empreintes enregistrées et à l’en-tête du certificat ; le certificat se réexécute à travers le noyau avec un code de sortie 0 et ne dépend que de propext et de Quot.sound ; et l’ELF rejoué à la main affiche « B2BT flow_gauge cases=406 failed=0 float_cases=78 » avec une empreinte égale à celle des preuves.
Le guide est tout aussi explicite sur les limites : la validité des exigences reste une revue humaine, aucune affirmation ne concerne le timing ou les bornes de pile, et QEMU n’est pas du silicium.
Continuer à explorer