Skip to main content
Formal Software Verification · ESBMC since 2008

Prove it.
Don't just test it.

We use formal verification, not just testing, to find the bugs other tools miss, and prove their absence in safety-critical software.

1,500%

Speedup achieved for Intel firmware verification

23

Additional property violations ESBMC found in Arm's RMM firmware (SAS 2024)

PR #3600

Ethereum consensus-specs fix merged upstream after our ESBMC-Python report (ISSTA 2024)

F-1

Out-of-bounds write in NVIDIA OpenSMA confirmed and fixed upstream after our 2026 PoC

Why formal verification?

Testing is sampling.
Formal verification is proof.

Testing checks the cases you think of. Formal verification checks every possible input, including the integer_squareroot edge case our ESBMC-Python report flagged in the Ethereum consensus specification, the verification bottlenecks that blocked Intel's firmware analysis, and the 23 additional property violations ESBMC identified in Arm's RMM firmware on top of those CBMC had already detected.

ESBMC uses Satisfiability Modulo Theories (SMT) solvers to mathematically reason about your code's behaviour, producing either a proof of correctness or a concrete counterexample showing exactly how a bug can be triggered.

Learn how ESBMC works
integer_squareroot helper (Python)
def integer_squareroot(n: uint64) -> uint64:
  x = n
  y = (x + 1) // 2  # ← overflows to 0 when n = 2⁶⁴ − 1
  while y < x:
    x = y                 # x becomes 0 after the overflow
    y = (x + n // x) // 2  # ← ZeroDivisionError: n // 0
  return x

# Input:  n = 2⁶⁴ − 1 (maximum uint64 value)
# Result: ZeroDivisionError, the unsigned integer overflows to 0,
#         then is used as the denominator of a division operation.
# ESBMC-Python: confirmed the bug and produced a counterexample trace.

Proven in production

Case Studies

Intel Semiconductor · Firmware

1,500%

verification speedup

Scalable Formal Verification of Firmware

Read case study
Arm Hardware · Confidential Computing

23

additional property violations found

Securing the Arm Confidential Computing Architecture

Read case study
Ethereum Foundation Blockchain · Python

PR #3600

fix merged upstream

Reporting an integer_squareroot Bug in the Consensus Specification

Read case study
verify-rust-std project Open-source ecosystem · Rust

1 of 4

verification tools listed in the project

ESBMC in the verify-rust-std Project

Read case study
NVIDIA OpenSMA Data-centre firmware · C++23

F-1

OOB write fixed upstream by NVIDIA

Verifying NVIDIA OpenSMA Firmware with ESBMC

Read case study
AWS Neuron (NKI) AI accelerators · Python kernels

2

new NKI division-by-zero bugs filed and fixed upstream by AWS

Verifying AWS Neuron NKI Kernels with ESBMC

Read case study
vLLM LLM inference · Python

6 of 7

CLI-reachable findings fixed upstream in vLLM

Verifying vLLM Configuration Arithmetic with ESBMC

Read case study
Chromium Dashboard Developer infrastructure · Python

3

of 7 issues filed on Google's tracker fixed upstream

Verifying Google's Chromium Dashboard with ESBMC

Read case study
AWS SDK for C++ · Base64 Cloud SDK · C++

2 CVEs

memory-safety issues fixed by AWS in SDK 1.11.862

Two Base64 Memory-Safety CVEs in the AWS SDK for C++

Read case study
AWS SDK for C++ · DateTime Cloud SDK · C++

PR #3896

two DateTime parser bugs fixed by AWS in SDK 1.11.877

Two DateTime Parser Bugs in the AWS SDK for C++

Read case study

Ready to make your software provably correct?

Book a free 30-minute discovery call to discuss how formal verification can work for your project.