certifiable-* is the first ML pipeline that proves what it computes β cryptographically, across every platform, forever.
Run this on any DVM-compliant platform. The hashes will match.
git clone https://github.com/SpeyTech/certifiable-harness
cd certifiable-harness
mkdir build && cd build && cmake .. && make
./certifiable_harnessExpected output:
[certifiable-harness] Cross-Platform Verification
================================================
Stage Hash
----------- ----------------------------------------------------------------
data 2f0c6228001d125032afbe0163104da5f6ea8a3ef4328de603b5f6af7bee6b1c
training 36b34d87459ead09c5349d55a7a187646fc135f75d7e2e8cdd064c9513bf7dfc
quant 8c78bae645d6f06a3bdd6ce2db5e4755b1aecaa4cac4b1b7ae4d4bdd3d703942
deploy 32296bbc342c91ba0c95d1b2a20486bc3d27e71d72a8a2a61c0b8d981f69d17f
inference 48f4ecebc0eec79ab15fe694717a831e7218993502f84c66f0ef0f3d178c0138
monitor da7f49992d875a6390cb3c5dd693d835d9a89303498db3f4be7977d3d1f9eb8a
verify 33e41fcaaa25c405fbb44f77767eb9b487c0c4c73ff2f66f255396b0e85ae876
Verified: Linux x86_64 / GCC 12.2.0 β
Verified: macOS x86_64 / Apple Clang β
All 7 stages: PASS
These hashes are not illustrative. They are the actual cryptographic commitments produced by the pipeline on two independent platforms, compilers, and operating systems. They match to the bit.
Standard ML infrastructure is built for research, where approximately correct is good enough. In aerospace, medical devices, and autonomous systems, it is not.
The regulators asking these questions do not yet have reliable answers:
- How do you prove the deployed model is exactly what was certified?
- How do you show the training data was processed correctly?
- How do you audit an inference result six months after it happened?
- How do you verify nothing was tampered with between training and deployment?
- How do you satisfy DO-178C Level A, IEC 62304 Class C, or ISO 26262 ASIL-D for an ML component?
The certifiable-* ecosystem answers every one of them β not with claims, but with cryptographic proof and running code.
Standard ML pipelines are workflows. certifiable-* is a supply chain. Every stage produces a cryptographic commitment that binds the next stage to its inputs. The training run cannot be separated from the data that produced it. The deployed model cannot be separated from the weights it was derived from. The inference output cannot be separated from the model that generated it. From raw dataset to final prediction, the chain is mathematically unbroken and independently replayable by anyone, on any platform, without trusting anyone.
Each arrow carries a cryptographic commitment. Every stage binds the next to its exact inputs. This is not a pipeline diagram β it is a proof of custody.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β certifiable-data β
β Deterministic loading Β· Q16.16 normalisation Β· Feistel shuffle β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
[ M_data: Merkle root of dataset ]
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β certifiable-training β
β Fixed-point SGD Β· Counter-based PRNG Β· Neumaier reduction β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
[ H_train: Training chain hash ]
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β certifiable-quant β
β FP32 β Q16.16 Β· Formal error bounds Β· Lipschitz propagation β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
[ H_cert: Quantisation certificate ]
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β certifiable-deploy β
β CBF bundle Β· Merkle attestation Β· JCS manifest Β· Target binding β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
[ R: Release bundle hash ]
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β certifiable-inference β
β Static allocation Β· Fixed-point forward pass Β· No dynamic dispatch β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
[ H_pred: Inference output hash ]
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β certifiable-monitor β
β Drift detection Β· COE policy Β· Activation envelope Β· Audit ledger β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
[ H_audit: Monitor chain hash ]
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β certifiable-verify β
β Full replay Β· Cross-platform hash comparison Β· Bit-identity proof β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The Deterministic Virtual Machine (DVM) is the execution contract that makes the chain possible. It defines the only legal arithmetic semantics across all certifiable-* projects: integer-only operations, saturating overflow, fixed-topology reduction, and counter-based pseudo-random number generation with no hidden state. Any platform that implements the DVM contract produces identical outputs from identical inputs. Bit identity is not a property of the hardware β it is a property of the contract.
Every certifiable-* component satisfies three theorems by construction:
| Theorem | Statement | Implication |
|---|---|---|
| Bit Identity | F_A(s) = F_B(s) for any DVM-compliant platforms A, B | The same inputs produce identical outputs on every platform, every compiler, every time |
| Bounded Error | Quantisation error saturates and does not accumulate | Worst-case behaviour is known, bounded, and provable before deployment |
| Auditability | Any operation is verifiable in O(1) time via Merkle path | A six-month-old inference result can be verified against its training data in constant time |
These are not design goals. They are enforced invariants. Any violation is a compilation failure.
| Property | PyTorch | TensorFlow | ONNX Runtime | certifiable-* |
|---|---|---|---|---|
| Bit-identical across platforms | β | β | β | β |
| Cryptographic chain of custody | β | β | β | β |
| Independently replayable audit | β | β | Partial | β |
| Formal quantisation error bounds | β | β | β | β |
| DO-178C / IEC 62304 / ISO 26262 alignment | β | β | β | β |
| Zero dynamic allocation at inference | β | β | β | β |
certifiable-verify can replay the entire pipeline from any historical state and reproduce the original cryptographic commitments exactly:
[certifiable-verify] Full Pipeline Replay
==========================================
Replaying from stored state...
Stage Expected Actual Match
----------- ---------------------------------------------------------------- ---------------------------------------------------------------- -----
data 2f0c6228001d125032afbe0163104da5f6ea8a3ef4328de603b5f6af7bee6b1c 2f0c6228001d125032afbe0163104da5f6ea8a3ef4328de603b5f6af7bee6b1c PASS
training 36b34d87459ead09c5349d55a7a187646fc135f75d7e2e8cdd064c9513bf7dfc 36b34d87459ead09c5349d55a7a187646fc135f75d7e2e8cdd064c9513bf7dfc PASS
quant 8c78bae645d6f06a3bdd6ce2db5e4755b1aecaa4cac4b1b7ae4d4bdd3d703942 8c78bae645d6f06a3bdd6ce2db5e4755b1aecaa4cac4b1b7ae4d4bdd3d703942 PASS
deploy 32296bbc342c91ba0c95d1b2a20486bc3d27e71d72a8a2a61c0b8d981f69d17f 32296bbc342c91ba0c95d1b2a20486bc3d27e71d72a8a2a61c0b8d981f69d17f PASS
inference 48f4ecebc0eec79ab15fe694717a831e7218993502f84c66f0ef0f3d178c0138 48f4ecebc0eec79ab15fe694717a831e7218993502f84c66f0ef0f3d178c0138 PASS
monitor da7f49992d875a6390cb3c5dd693d835d9a89303498db3f4be7977d3d1f9eb8a da7f49992d875a6390cb3c5dd693d835d9a89303498db3f4be7977d3d1f9eb8a PASS
verify 33e41fcaaa25c405fbb44f77767eb9b487c0c4c73ff2f66f255396b0e85ae876 33e41fcaaa25c405fbb44f77767eb9b487c0c4c73ff2f66f255396b0e85ae876 PASS
Result: 7/7 PASS β pipeline state verified
The replay is deterministic. Running it again produces the same result. Running it on a different machine produces the same result. The audit is permanent.
Worst-case execution time is bounded and measurable. certifiable-inference produces a complete forward pass with no dynamic allocation, no recursion, and no data-dependent branching. WCET analysis can be applied directly to the generated binary using standard toolchains (AbsInt aiT, Rapita RVS).
Measured on reference hardware (Intel Core i7-12700, GCC 12.2.0, -O2):
| Network | Parameters | WCET |
|---|---|---|
| MLP 784β128β10 | 101,770 | 847 ΞΌs |
| CNN 3Γ32Γ32 | 62,006 | 1.2 ms |
No probabilistic WCET. No measurement-based approximation. Deterministic control flow from first principles. No speculative execution paths. No hidden runtime variability.
| Repository | Purpose | Tests | Status |
|---|---|---|---|
| certifiable-data | Deterministic data loading, normalisation, Feistel shuffle, Merkle provenance | 142 | β Released |
| certifiable-training | Fixed-point SGD, counter-based PRNG, Neumaier reduction, training chain | 10 suites | β Released |
| certifiable-quant | FP32 β Q16.16 with formal error bounds and Lipschitz certificate | 150 | β Released |
| certifiable-deploy | CBF bundle packaging, Merkle attestation, JCS manifest, offline verification | 201 | β Released |
| certifiable-inference | Static allocation, fixed-point forward pass, zero dynamic dispatch | 64 | β Released |
| certifiable-monitor | Runtime drift detection, COE policy, activation envelope, audit ledger | 253 | β Released |
| certifiable-verify | Full pipeline replay, cross-platform hash comparison, bit-identity proof | 10 suites | β Released |
| certifiable-harness | End-to-end cross-platform integration test | 4 suites | β Released |
| certifiable-bench | Performance validation across x86, ARM, and RISC-V targets | 11,840 assertions | β Released |
| certifiable-build | Shared build infrastructure β multi-toolchain support (CMake / build2), CI scaffolding, Tenstorrent dev environment | β | β Released |
The harness verifies cross-platform determinism and the cryptographic proof chain. Run it on any DVM-compliant platform β the hashes will match.
# Clone and verify the full pipeline in under five minutes
git clone https://github.com/SpeyTech/certifiable-harness
cd certifiable-harness
mkdir build && cd build
cmake ..
make
./certifiable_harnessTo build an individual component:
git clone https://github.com/SpeyTech/certifiable-inference
cd certifiable-inference
mkdir build && cd build
cmake ..
make
make testAll components build with CMake 3.10+, GCC or Clang, C99. No external dependencies. Components migrated to certifiable-build additionally support the four-step make setup/config/build/test pattern.
certifiable-* is designed for certification under DO-178C (aerospace), IEC 62304 (medical devices), and ISO 26262 (automotive). Each standard asks the same fundamental question in different language: can you prove that what you deployed is what you certified?
The cryptographic chain of custody provides the evidence required to answer that question. The mathematical specifications (CT-MATH, CI-MATH, CD-MATH per component) provide the formal foundations required by DAL A / Class C / ASIL-D assessors. The SRS documents provide traceability from requirement to implementation to test.
Full certification guidance β including artefact checklists, assessor Q&A, and standard-specific mapping β is in docs/CERTIFICATION-GUIDE.md.
| Platform | Compiler | Status |
|---|---|---|
| Linux x86_64 | GCC 12.2.0 | β Verified |
| macOS x86_64 | Apple Clang 14 | β Verified |
| macOS ARM64 (Apple Silicon) | Apple Clang 14 | β Verified |
| Linux aarch64 | GCC 12 | π In progress |
| Linux riscv64 | GCC 12 | π In progress |
aarch64 and riscv64 verification is in progress with Tenstorrent and Semper Victus hardware.
License: Dual licensed. Open source under GPL-3.0. Commercial licensing available for safety-critical deployments β contact william@fstopify.com.
Patent: Built on the Murray Deterministic Computing Platform (MDCP), UK Patent GB2521625.0.
Standards: Pure C99. MISRA-C 2012 aligned. Zero dynamic allocation. No floating-point at runtime.
certifiable-* was conceived by observing mycorrhizal networks in an orchard in the Scottish Highlands β the observation that a forest shares nutrients through an unbroken underground network, and that any node in that network can verify its connection to every other node without trusting a central authority. The same principle governs this pipeline.
Built by SpeyTech in the Scottish Highlands.
Copyright Β© 2026 The Murray Family Innovation Trust. All rights reserved.