BinaryBedrockbinarybedrock.com
Closed beta

Every 1 counts.

Every 0, too. Binary Bedrock is the proof layer under your code: it mathematically proves that changed code (an AI refactor, a compiler trick, a hand optimization) computes exactly what it did before, bit for bit, on all inputs, and it hunts your existing repo for smaller code it can prove identical. Refactor away technical debt with a proof it changed nothing. Ship smaller binaries with the receipt attached. Not tested. Proven.

works with AI or without · any model, any agent, any workflow · hosted in minutes, or air-gapped on your metal where your source never leaves the building · zero model calls in the prover · every claim ships with a receipt you can re-prove

001Product one · the Firewall

Three verdicts. No opinions.

Give it two versions of a function: before and after any change. It compiles both and asks an SMT solver whether they are equivalent on every input. The answer is one of three, and it is never a guess.

✓ PROVEN exit 0

The change is behavior-preserving. A machine-checked equivalence certificate is produced. Safe to merge. This is a mathematical proof over all inputs, not a test suite's sample.

✗ DIVERGES exit 1

The change alters behavior, and you get the counterexample: a concrete input where old and new disagree. The bug report writes itself.

? CANNOT CERTIFY exit 2

The proof exceeded its budget. The gate stays closed: an unproven change is not treated as a safe change. Binary Bedrock fails safe, never silent.

Two qualifications exist and are always stated on the verdict itself: proofs over loops are conditional on the stated unroll bound, and domain-restricted proofs say exactly which inputs they cover. The verdict never claims more than the mathematics did.

001bProduct two · the Audit

Your whole repo. No diff needed.

Point it at the code you already ship. It compiles every function, then three independent engines (the compiler's own pipelines, Souper's SMT synthesis, and a frontier model) hunt for smaller equivalents. Nothing any engine proposes is trusted: only candidates the prover certifies equivalent survive, and every win ships as a receipt (original, winner, proof, byte counts) you can re-prove with one command. Every function that could not be certified is listed with a named reason. No silent drops.

010How to use it

Two ways in. Both keep your code yours.

AI assistants write more of your code every week. Binary Bedrock is the gate they pass through: from your editor for single functions, or on your own hardware for whole trees.

In your editor beta · hosted demo

  1. Add one MCP server to Claude Code, Cursor, or any MCP-capable agent. Paste the config below with your beta token.
  2. Ask your assistant to verify its own work: “refactor this, then prove it with Binary Bedrock.” The agent calls verify_refactor and shows you the verdict.
  3. Merge on PROVEN. On DIVERGES you get the input that breaks it, before it ships, not after.
{
  "mcpServers": {
    "binary-bedrock": {
      "url": "https://mcp.binarybedrock.com",
      "headers": { "Authorization": "Bearer <your-token>" }
    }
  }
}

The demo endpoint verifies code you paste. It holds no keys, calls no models, and never executes your code. For anything sensitive, use the on-prem kit.

On your metal on-prem kit · air-gapped

  1. Load one container image: we hand you a checksummed bundle; docker load, no registry, no account, no network required.
  2. Audit the whole project: bb ingest takes a source tree or your build's compile_commands.json, cross-compiles for your real target (--target cortex-m4; your build's own -mcpu flags are honored), and searches every eligible function for a proven-smaller equivalent with three independent engines: compiler pipelines, Souper's SMT synthesis, and a frontier model. Every report says exactly which engines ran.
  3. Keep the receipts: the audit writes a report plus one bundle per proven optimization: sizes in bytes on your target, the proof, and both IR files. Recheck any of them yourself with one command; you never take our word for it.
  4. Gate your CI: bb verify-diff old/ new/ proves every changed function across whole directory trees. One exit code decides the merge.
  5. Read the funnel: every function that couldn't be verified is listed with a named reason and what would make it eligible. No silent drops.
$ sha256sum -c CHECKSUMS.txt   # verify the bundle
$ docker load < bb-toolchain.tar.gz
$ ./bb ingest compile_commands.json --target cortex-m4
$ ./bb verify-refactor wins/f/original.ll \
    wins/f/winner.ll   # recheck any win
$ ./bb verify-diff before/ after/
010bWhy Bedrock

Three things nobody else can say.

An attack record, not a benchmark

15 consecutive adversarial battery runs, 17,554+ recorded verdicts of deliberately broken code planted to fool the gate: zero false approvals. And the chain around the prover has its own battery: every pipeline defect we ever found is now a standing attack it must survive (latest run: 7 attacks, 0 false approvals). Re-run both yourself; they ship in the kit.

Receipts for everything

Every win, every proof, every claim on this site comes with an artifact that re-proves it on your machine with one command. You never take our word for anything.

Proofs that scale

Whole-function proving hits a wall fast: in our recorded sweeps the single-query approach exhausts its budget at 2 all-distinct components and is 152x slower at 512 repeated-kernel components. Both sweeps compose chains by construction, so the split points are part of the experiment design; automatic seam discovery on arbitrary code is the separately shipped and separately verified feature. Re-verified on the current toolchain this week.

Every recorded run behind these claims, repo by repo

011Numbers

Every number below is from a recorded run.

We publish what the tool measured, including what it can't do yet. That discipline is the product. And it is enforced by a machine: every figure on this site is recomputed in CI from a ledger of the recorded runs, and the build fails if a published number drifts.

0 / 17,554
false “PROVEN” verdicts across 17,554 recorded adversarial verdicts: deliberately broken code planted to fool it. Proofs over loops are conditional on the stated unroll bound, and every such verdict says so.
4 of 109
valid refactors from a frontier AI model silently changed behavior in our recorded field studies (3.7%; small n, integer-kernel corpus, stated so you can weigh it). Every one was caught. None were blessed.
98.2%
of valid AI rewrites classified decisively, PROVEN or DIVERGES with a counterexample, rather than refused. The gate answers; it rarely shrugs.
67 proven
functions on real, unseen open-source code (zlib + littlefs re-audits of 2026-08-21/22: 333 submitted, nobody hand-picked), 49% of the 137 the funnel admits. Zero wrongly accepted. Receipts on the campaigns page. (An earlier recorded run of the same repos proved 69; each figure belongs to its own dated run.)
59% smaller
a proven-identical routine on Cortex-M4: 34 → 14 bytes, formally verified equivalent while shrinking. Verified optimization, not vibes.
11.2% smaller
zlib's inflateValidate (89 → 79 bytes at -O3), found by a whole-project audit with no model in the loop, proven equivalent, and shipped as a receipt you can re-prove yourself with one command.
198 / 31
littlefs, the most deployed embedded filesystem, audited cross-compiled ON Cortex-M4: 198 functions submitted, 31 proven equivalent, sizes measured in the target's own bytes. Real MCU code on its real target.
53% eligible
CMSIS-NN, Arm's neural-network kernels, audited on Cortex-M4: 149 submitted, 79 eligible (roughly three times the general-code rate), 34 proven equivalent. The code that ships quantized AI on MCUs is the code the prover handles best.
seconds
typical proof time for a single function. Median well under a minute; hard cases are given a budget and refused honestly when it runs out.

methodology & full runs available to beta partners · verdicts anchored in Alive2 (the LLVM community's translation-validation tool) and the Z3 SMT solver: peer-reviewed provers we deliberately did not build ourselves, with zero model calls in the proof path · every recorded campaign, repo by repo

110Who it's for

Plain outcomes. No binary talk.

Three verbs, every industry: reduce size, speed up, prove it didn't break.

AI & ML

Let AI write code, then ship it only when it's proven right. And shrink the math inside on-device AI so it runs faster and cheaper.

recorded run · We asked a frontier AI model for 126 refactors; of the 109 valid ones, 4 silently changed behavior. Every one was caught, none shipped.

Defence & aerospace

Prove that every change to critical code changes nothing it shouldn't. Works fully offline, inside your walls.

recorded run · 17,554 sabotage attempts planted to trick the gate into approving broken code. False approvals: zero.

Crypto & security

The routines that checksums, signatures and money depend on, proven identical after every optimization.

recorded run · A one-character typo in a CRC checksum (>>4 became >>3) was caught in seconds, with the exact input that exposes it.

Embedded

Smaller firmware, longer battery, cheaper hardware, with a proof that behavior didn't change.

recorded run · littlefs, the most deployed embedded filesystem, audited cross-compiled ON Cortex-M4: 198 functions in, 31 proven, in the target's own bytes.

Chips & silicon

Squeeze more out of every core you ship, verified separately for each target you sell.

recorded run · The compiler's own vectorized rewrites of scalar routines went through the gate, each verdict anchored to a recorded solver run.

Your team

Refactor away technical debt with a proof it changed nothing; ship smaller code with the receipt. One config line in your editor, one gate in your CI. Then run the audit over what you already shipped.

recorded run · Pointed cold at zlib + littlefs (333 functions, nobody hand-picked): 67 proven, zero wrongly accepted.

Why big code doesn't scare us
pieces of code proven together (recorded synthetic sweep to 64; repeated-kernel sweep extends to 1000) time to prove ✗ all-at-once: gives up at 2 ✓ Bedrock: split, prove pieces, stay linear

Provers choke on big functions. Bedrock automatically splits code at safe boundaries, proves each piece, and proves the splitting itself, so proof time grows in a straight line instead of hitting a wall.

100What it does not do

Said out loud, on purpose.

  • No “fault-free software” claims. The Firewall proves a change preserves behavior; the Audit proves a smaller version is identical to yours. Neither proves your original code was correct, and we will never pretend otherwise. What we prove is that nothing you adopt through Bedrock behaves differently from what you had.
  • Floating point rewrites rarely prove bit-exact. That's the honest mathematics of FP, and we say so instead of hand-waving.
  • Unbounded loops and recursion end in CANNOT-CERTIFY. The gate stays closed rather than guessing.
  • C and C++ carry the product today. Rust and GPU-kernel coverage is experimental and labeled as such.
101Closed beta

Prove your next merge.

Request access below, or create an account directly. Once approved you create your own MCP tokens in the portal. We are onboarding a small number of teams: embedded & firmware shops, and engineering orgs using AI assistants heavily. You get a token for the editor demo, the on-prem kit, and a direct line to us. Bring a repo; the first audit report is the demo.