Verifier Tools

This page documents verification tools under tools/verifier/. These tools focus on program verification, abstract interpretation, and model checking.

CLAM – Numerical Abstract Interpretation

CLAM is a static analysis framework based on abstract interpretation over numerical abstract domains. It is designed for inferring invariants and checking safety properties over LLVM bitcode.

Binaries: clam, clam-pp, clam-diff Location: tools/verifier/clam/

Quick Start:

# Analyze with interval domain
./build/bin/clam --crab-dom=int --crab-check=assert program.bc

# Preprocess bitcode
./build/bin/clam-pp program.bc -o prep.bc

# Compare analysis results
./build/bin/clam-diff baseline.json modified.json

For detailed documentation, see CLAM – Numerical Abstract Interpretation.

SymAbsAI – Symbolic Abstraction + Abstract Interpretation

SymAbsAI is a framework for static program analysis using symbolic abstraction to provide a flexible interface for designing program analyses in a compositional way.

Binary: symabs_ai Location: tools/verifier/symabs-ai/

Quick Start:

# Analyze all functions
./build/bin/symabs_ai example.bc

# Analyze specific function
./build/bin/symabs_ai --function=foo example.bc

For detailed documentation, see SymAbsAI – Symbolic Abstraction + Abstract Interpretation.

Sifa – Symbolic Interpretation with Fluid Abstractions

Sifa is a symbolic-interpretation verifier with configurable abstract domains and optional SymAbs-backed reasoning.

Binary: sifa Location: tools/verifier/sifa/

Quick Start:

./build/bin/sifa program.bc
./build/bin/sifa program.bc --function=foo --block=loop.header
./build/bin/sifa program.bc --symabs --abstract-domain=Octagon

For detailed documentation, see Sifa Tool.

SeaHorn – Verification Framework

SeaHorn is a large-scale SMT-based verification framework built on constrained Horn clauses (CHC), symbolic execution, and abstraction-refinement.

Binaries: seahorn, seapp, seainspect Location: tools/verifier/seahorn/

Quick Start:

# Bounded model checking
./build/bin/seahorn --bmc=10 program.c

# CHC-based verification
./build/bin/seahorn --horn program.c

For detailed documentation, see SeaHorn – Verification Framework.

Horn-ICE – CHC Verification with Learning

Horn-ICE provides CHC (Constrained Horn Clause) verification with invariant learning capabilities.

Binaries: chc_verifier, hice-dt Location: tools/verifier/horn-ice/

Usage:

# CHC verification
./build/bin/chc_verifier input.smt2

# CHC verification with learning
./build/bin/hice-dt input.smt2

For detailed documentation, see Horn-ICE – CHC Verification with Learning.