Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. C and C++ Static Analysis Tools
  3. SeaHorn

SeaHorn

What it is

SeaHorn is a free, open-source framework for automated analysis of LLVM-based programs, developed primarily for research in automated verification. It is not a turnkey static analyzer; users assemble its frontend, middle-end, and backend components for particular analyses. The frontend prepares programs such as C as LLVM bitcode, and the middle end expresses verification conditions as Constrained Horn Clauses. Backend engines apply SMT-based model checking, including PDR/IC3 methods, while optional Crab analysis supplies numerical invariants. SeaHorn supports abstract interpretation, context-sensitive pointer analysis, bounded model checking, constrained-Horn-clause software model checking, and termination or non-termination analysis. For C assertions, the `sea pf` command can show invariants for safe results or save executable counterexamples for violations. The `sea inspect` command reports structure and can generate memory or call graphs. Docker is the recommended starting route, while builds require LLVM, Z3, and Boost.

For and against

For

  • Open-source modified BSD license
  • Supports C and LLVM IR
  • Produces executable counterexamples
  • Includes multiple verification methods
  • Docker distribution available

Against

  • Not an out-of-the-box analyzer
  • Build dependencies and versions can change
  • Docker image was updated about seven years ago
  • Primarily research-oriented

The verdict

SeaHorn offers a broad, composable verification framework with model checking, invariants, and counterexamples. Its assembly-oriented design makes it better suited to technical analysis work than turnkey static-analysis use.

Who it suits

SeaHorn suits researchers and engineers analyzing C or LLVM IR with self-hosted verification workflows. It is intended for users comfortable assembling analysis components rather than expecting a ready-made analyzer.

On the record

Additional analysis
SeaHorn’s `sea inspect` command can report program structure and generate memory or call graph data.github.com · read 9 Oct 2026
Analysis engines
Its backend uses SMT-based model checking engines based on PDR/IC3, and uses CRAB to provide numerical invariants through abstract interpretation.seahorn.github.io · read 10 Oct 2026
Analysis output
The `sea pf` command can display computed invariants for a safe result or save a counterexample for a violation.github.com · read 9 Oct 2026
Counterexamples
SeaHorn can produce executable counterexamples when it finds a violation.github.com · read 9 Oct 2026
C verification
Its `sea pf` command takes a C program with assertions, translates it to LLVM bitcode, generates verification conditions, and solves them.github.com · read 9 Oct 2026
Dependencies
Building SeaHorn requires LLVM, Z3, and Boost; its README says the exact library versions change.github.com · read 9 Oct 2026
Download
The site links to a SeaHorn Docker image described as SeaHorn for LLVM 3.8; Docker Hub shows the nightly image command as `docker pull seahorn/seahorn:nightly`.hub.docker.com · read 10 Oct 2026
Founders
The site lists Arie Gurfinkel, Temesghen Kahsai, and Jorge Navas as founders.seahorn.github.io · read 10 Oct 2026
Frontend
Its frontend takes an LLVM-based program such as C and generates LLVM IR bitcode, preprocessing and optimizing it for verification.seahorn.github.io · read 10 Oct 2026
Image status
Docker Hub says the SeaHorn image was updated about 7 years ago and lists its size as 642.7 MB.hub.docker.com · read 10 Oct 2026
Inconsistency checking
SeaHorn detects inconsistent code fragments by computing path coverage for generated Horn clauses.seahorn.github.io · read 10 Oct 2026
Integrations
The site identifies CRAB as the abstract interpretation analyzer SeaHorn uses to provide numerical invariants.seahorn.github.io · read 10 Oct 2026
License
SeaHorn is distributed under a modified BSD license.github.com · read 9 Oct 2026
Model checking
SeaHorn supports SMT-based bounded model checking and constrained Horn clause based software model checking.github.com · read 9 Oct 2026
Not a turnkey analyzer
The project says SeaHorn is not an out-of-the-box static analysis tool.github.com · read 9 Oct 2026
Optional analysis component
Crab abstract interpretation is optional and can supply invariants to SeaHorn’s Spacer backend.github.com · read 9 Oct 2026
Pricing
The opened official site provides a Download section but no pricing information.seahorn.github.io · read 10 Oct 2026
Purpose
SeaHorn is a verification framework for LLVM-based programs.seahorn.github.io · read 10 Oct 2026

Alternatives to SeaHorn

Every alternative, ranked