We'll rebuild any system you commission, whatever it's written in. These are the ones we've done ourselves, on public code. Nobody paid for any of them.
ACAS — a fifty-year-old COBOL accounting system
Accounting · COBOL → SPARK Ada
Vincent Coen started writing ACAS in 1976 and still maintains it. We rebuilt parts of
its sales ledger reporting in SPARK Ada and ran them against what his system actually
printed. Six of them were compared that way and agreed on every case we
tested. It runs on this site, with his blessing.
Agreeing isn't the same as covering everything. Some cases weren't tested and we say
which. ACAS flies again.
COBOL → SPARK Ada
Run against the original's output
Live on this site
Multics — PL/I we can't finish
Operating systems · PL/I → SPARK Ada
We converted 219 modules of Multics PL/I to SPARK Ada and put every one of them through
the prover. Most of them don't prove. We publish the counts as they stand, including the
ones that went down when we measured again.
Multics, in public.
PL/I → SPARK Ada
219 modules
Cannot finish
Industrial protocol software
Critical infrastructure · SPARK Ada
Proven protocol software for the systems that run water, energy and transport, with a
gateway in front of the plant.
The gateway. A proven command gateway for industrial controllers, demonstrated end
to end against a simulated controller. The parts that move bytes on and off the network
are tested, not proved.
The protocol software. Proven where it reads messages and where it decides what
gets through.
None of it is certified. Cyber-harden.
SPARK-Ada
Proven and demonstrated, stated separately
Not yet released
Proven floating-point physics kernels
Scientific computing · Finite-volume schemes
Two one-dimensional finite-volume schemes, linear advection and inviscid Burgers, rebuilt
in SPARK Ada and proved against IEEE 754 double-precision arithmetic as executed, not
over the real numbers. Where an identity holds exactly in floating point it is proved
exactly. Where rounding makes that impossible, it is proved within a stated bound (the
wave-jump condition to within 6 units of roundoff, the conservative flux to within 10).
Division by zero at zero wave speed is ruled out by a stated precondition, and the Burgers
sonic point is defined rather than left to chance.
Why it matters: a proof over the reals says nothing about NaN, overflow or rounding in
the code that actually runs. Run side by side with the original generated C on about
252,000 inputs, the only differences were zero-speed cases where the C returns NaN and
ours refuses the input by name.
SPARK-Ada
IEEE 754 binary64
Exact and bounded theorems
Differential test
Earlier work, May and June 2026
Our first runs were on public Fortran and one benchmark: DL_POLY Classic, LAPACK's
DGESVD, the USGS seismic hazard code, the DTU wind turbine controller, and a UK income
tax calculator. They produced Ada with contracts, but the bodies were incomplete and
none of it was proved, so we've stopped describing them as finished work. They're still
in the ledger below.