Djinious
DjiniousSafeCodice certificabile

Ciò che è dimostratoè ciò che spedisci.

La toolchain a codice dimostrato · IEC 61508 · SIL 4Dimostra

DjiniousSafe è una toolchain per costruire funzioni di sicurezza a norma IEC 61508 SIL 4: specificale formalmente in Lean 4, dimostra le loro proprietà di sicurezza con il kernel Lean e genera Rust no_std, privo di panic — con un certificato verificato dalla macchina per ogni build che il codice spedito equivale alla specifica, e tracciabilità completa dai requisiti ai teoremi.

DjiniousSafe
Pipeline di certificazione di DjiniousSafe: i requisiti (REQ-SF-xxx, YAML, SHA-256) alimentano una specifica Lean 4 verificata dal kernel, esportata come IR canonico con hash verso due generatori diversi, uno in Rust e uno in Lean; un gate di equivalenza richiede AST identici, il Rust no_std emesso viene ri-analizzato, un certificato del kernel dimostra che è uguale alla specifica, e un bundle di evidenze chiude la catena.
Ogni freccia è un gate fail-closed. I generatori non sono mai considerati affidabili — un difetto in uno di essi viene rilevato dal suo gemello diverso o dal kernel Lean.
gate fail-closed per build
13gate fail-closed per buildil primo fallimento interrompe la build
generatori diversi
2generatori diversiuno in Rust, uno in Lean — output identici byte per byte
teoremi verificati dal kernel per funzione
5teoremi verificati dal kernel per funzioneridimostrati a partire dal codice emesso a ogni build
funzioni di sicurezza di riferimento
9funzioni di sicurezza di riferimentocertificate end-to-end in examples/voter

Cos’è

Genera Rust embedded che implementa in modo dimostrabile la propria specifica formale

Una pipeline di generazione di codice di sicurezza da Lean a Rust. Valida i requisiti, esporta IR verificato da Lean, genera Rust ristretto, esegue gate di equivalenza e back-to-back, e scrive un bundle di evidenze di audit per le build accettate. Le build fallite sono fail-closed.

Un DSL di sicurezza Lean 4 vincolato

Scrivi funzioni di sicurezza come macchine a stati, transizioni con guardia, dataflow booleano e a virgola fissa — e dimostra proprietà di sicurezza (invarianti, raggiungibilità dello stato sicuro) con il kernel Lean.

Lean 4

Generazione diversa a doppio canale

Due generatori progettati in modo indipendente, uno in Rust, uno in Lean, dalla stessa specifica. I loro output devono essere strutturalmente identici — qualsiasi divergenza fa fallire la build.

sgen-a · sgen-b

Validazione della traduzione

Ogni build ri-analizza il testo Rust emesso e il kernel Lean verifica un nuovo certificato che sia semanticamente uguale alla specifica. Ciò che è dimostrato è ciò che spedisci.

Certificato del kernel

Output Rust ristretto

Zero heap, privo di panic, nessun unsafe, loop con limiti costanti, aritmetica satura — pronto per il compilatore qualificato Ferrocene.

#![no_std]

Tracciabilità bidirezionale, verificata dalla macchina

Requisito → teorema Lean → simbolo Rust → vettore di test. Il testo del requisito fissato con hash trasforma l'impatto di una modifica in un errore di build.

Matrice di tracciabilità

Aritmetica a virgola fissa in formato Q

Larghezze, scalatura e saturazione esplicite — più assenza di overflow verificata dal kernel e obblighi di esattezza su ogni costante.

Q-format

Dentro al prodotto

Guardala funzionare.

Ogni schermata qui sotto è il prodotto in esecuzione.

01 · Fail-closed ovunque

Tredici gate, e il primo fallimento ferma la build

Una build esegue i propri gate in un ordine fisso e ogni gate aggiunge una riga alle evidenze. Dimostrazioni, equivalenza dei generatori, certificato, matrice di tracciabilità e test back-to-back sono tutti gate rigidi: il primo fallimento interrompe la build, con l'errore registrato come dettaglio della riga fallita — e nessun gate successivo viene eseguito.

  • requirements · lean-proofs · export-fresh · ir-load · trace
  • generate · equiv · reprint · certificate
  • b2b-host · no_std-check · b2b-target · evidence-finalize
  • b2b-target viene eseguito solo quando è configurato un [target] — altrimenti è assente dalle evidenze, non contrassegnato come saltato

02 · I generatori non sono mai considerati affidabili

Lo stesso programma, scritto due volte, da due toolchain

Il testo Rust viene prodotto due volte, in modo indipendente: sgen-a abbassa l'IR esportato in Rust; sgen-b stampa direttamente dalla funzione di sicurezza elaborata in Lean. Il gate equiv richiede identità dell'AST, il gate reprint identità byte per byte — un difetto deve verificarsi in modo identico in entrambe le toolchain per passare.

  • Ogni hash cross-linguaggio viene calcolato due volte — da un'implementazione SHA-256 in Lean e dal crate Rust sha2 — ed entrambi vengono registrati
  • L'artefatto spedito deve essere byte-canonico: print(parse(bytes)) == bytes
  • I certificati vengono costruiti a partire dal codice emesso stesso, mai dallo stato del generatore

03 · Funzioni di sicurezza di riferimento

Dal requisito YAML al Rust no_std certificato

L'esempio voter porta nove funzioni di sicurezza di riferimento dal requisito al codice certificato: un voter 2oo3, uno scatto con latching, un limitatore di rate, un monitor di soglia con isteresi, un blocco di guadagno, un blocco statistico, un blocco di rapporto punto per punto, un interblocco di pressione e un misuratore di portata con limite IEEE-754 f32 — ciascuno spedito con un certificato di equivalenza verificato dal kernel.

  • Ogni file generato porta la propria riga // TRACE: requirement
  • Per ogni funzione, il certificato dimostra la buona formazione, l'uguaglianza strutturale esatta e la simulazione passo per passo della specifica
  • Aritmetica div, rem, sqrt e i64 estesa certificata priva di panic
DjiniousSafe
Due funzioni di sicurezza di riferimento: il Rust generato per il passo del voter 2oo3, tracciato a REQ-SF-001, e il certificato Lean per il limitatore di rate con i suoi teoremi wfAll, structEqExact e di equivalenza a passi, ciascuno scaricato da decide.
Codice generato e il suo certificato, entrambi contrassegnati “GENERATED. DO NOT EDIT.” — examples/voter, REQ-SF-001/002 e REQ-SF-010/011.

04 · Riproduzione on-target

Back-to-back sull'host, e su un Cortex-M4F emulato

I vettori di riferimento lato Lean — prodotti incrociati ai limiti, sequenze LCG a 8 × 32 passi e, per le funzioni con limiti in virgola mobile, sonde f32 incluse NaN, ±inf, ±0 e pareggi di arrotondamento — vengono riprodotti contro il codice compilato sull'host. Quando è configurato un target, gli stessi vettori vengono riprodotti sotto QEMU su thumbv7em-none-eabihf, con lo SHA-256 di ogni ELF riprodotto fissato nelle evidenze.

  • Un seed fisso per i vettori, così ogni conteggio è deterministico
  • Uguaglianza dei conteggi tra host e target: nessun credito parziale, nessuna funzione mancante
  • Costruire due volte con sorgenti e ambiente invariati ha dato zero differenze in evidence.json, hash ELF inclusi

IA e agenti

Gli agenti chiamano la stessa pipeline che chiami tu

djsafe serve incapsula la pipeline esistente senza duplicare il comportamento della build: i comandi CLI locali restano la fonte di verità, e il servizio espone le stesse operazioni tramite una Provider API pronta per gli agenti e un endpoint MCP.

01

Provider API

Capacità, identità e un documento OpenAPI, con build e clean come operazioni idempotenti.

02

Endpoint MCP

Le stesse operazioni come strumenti MCP, così un agente può scoprirle e invocarle.

03

Regole per gli agenti

Scopri le capacità prima di invocare le operazioni, tieni i token fuori dai log e dai riassunti, riporta i gate falliti in modo abbastanza letterale da diagnosticare la build, e chiedi conferma prima di distribuire.

Funzionalità

La toolchain, crate per crate

Una sola CLI, djsafe, orchestra un workspace di crate piccoli e monofunzione e un pacchetto Lean.

Specifica e dimostrazione3 funzionalità

leansafe

Semantica di sicurezza, specifiche e codice di esportazione in Lean: il DSL, l'assenza di overflow sugli intervalli, il ponte di accuratezza macchina, il generatore lato Lean e l'esportazione dei vettori back-to-back.

req-model

Analisi e hashing del modello dei requisiti — SHA-256 per requisito su testo normalizzato negli spazi bianchi.

safe-ir

L'IR di sicurezza tipizzato esportato da Lean e fissato con hash su entrambi i lati.

Generazione e gate5 funzionalità

sgen-a

Generatore Rust A, che abbassa l'IR esportato.

rrust-syntax

Il parser e il printer del Rust ristretto dietro la legge di canonicità byte.

equiv-gate

Il gate di equivalenza dei generatori: identità dell'AST o la build fallisce.

cert-gen

Generazione del certificato: un termine Lean ricostruito dall'artefatto analizzato, verificato dal kernel.

trace

Generazione della matrice di tracciabilità in JSON, CSV e HTML, con rifiuto di requisiti orfani, riferimenti sconosciuti e funzioni non tracciate per nome.

Operatività2 funzionalità

djsafe

CLI, orchestrazione della pipeline, servizio HTTP e comandi client remoto — build e clean in locale o sul servizio distribuito.

Skill djinious-safe-service

Una skill per agenti IA per operare il servizio distribuito.

Fiducia

Una base di fiducia limitata — e limiti dichiarati onestamente

Nessun singolo componente è considerato affidabile per un'affermazione che non sia verificata incrociando un percorso strutturalmente diverso. Ogni affermazione portante può essere riderivata da un valutatore senza fidarsi del rapporto della pipeline stessa.

Il kernel Lean è la radice di fiducia

Ogni affermazione semantica si riduce a dimostrazioni verificate dal kernel. Un audit degli assiomi mostra che i certificati dipendono solo dagli assiomi standard di Lean — nessun sorry, nessun native_decide, nessun assioma personalizzato.

Lean 4.15.0

Playbook di verifica indipendente

Rifissa una specifica con un tuo terzo hash indipendente, riesegui un certificato attraverso il kernel, riesegui l'intera build e confronta le evidenze, riproduci a mano un binario on-target, e fai transitare un artefatto spedito andata e ritorno attraverso il parser e il printer.

Pronto per un compilatore qualificato

Le build del codice generato possono essere puntate a Ferrocene tramite la configurazione [toolchain]; l'identità del compilatore viene registrata in ogni bundle di evidenze. L'identità non è qualificazione, e le evidenze lo dichiarano.

Ferrocene

Ciò che non viene affermato

La validità dei requisiti resta una revisione umana. Nessuna affermazione riguarda tempistiche, WCET, limiti dello stack o ingombro di memoria. QEMU valida il codice macchina cross-compilato e la libcore del target, non il silicio fisico.

Nel filo digitale

Cosa riceve. Cosa consegna.

DjiniousSafe svolge la propria parte del ciclo di ingegneria e trasmette le proprie evidenze — e funziona altrettanto bene anche da sola.

Da sola

Da sola, DjiniousSafe è una toolchain a riga di comando: punta djsafe su un progetto di requisiti e specifiche Lean, e restituisce Rust embedded certificato con le sue evidenze — oppure il gate che lo ha rifiutato.

Prenota una demo

Guardala sul tuo problema.

Guarda una funzione di sicurezza andare dal requisito al Rust embedded certificato — e osserva la build rifiutare quando deve.

  1. Scrivere una funzione di sicurezza e le sue proprietà nel DSL di sicurezza Lean 4
  2. Una build djsafe completa attraverso tutti e tredici i gate, fino a BUILD ACCEPTED
  3. Manomettere un artefatto generato e osservare il gate del certificato respingerlo
  4. Leggere il bundle di evidenze: matrice di tracciabilità, certificati, back-to-back e riproduzione on-target
  5. Le scelte di toolchain, la base di fiducia e ciò che le evidenze non affermano