GaloisInc/what4

Symbolic formula representation and solver interaction library

Haskell

178

1,304 commits

updated Sep 21, 2026

See the code

README

What4 is a library for representing symbolic terms and communicating with satisfiability and SMT solvers (e.g. Yices and Z3).

It was originally a part of the Crucible project, but has found use cases that are independent of its original purpose as the representation language for the Crucible symbolic simulator, and has thus been split out into a separate repository.

For an overview of What4 and how to use it, please see the package-level README.

This material is based upon work supported by the Defense Advanced Research Projects Agency (DARPA) under Contract No. HR0011-19-C-0070. The views, opinions, and/or findings expressed are those of the author(s) and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.

Solver Compatibility

FeatureABCBitwuzlaBoolectorCVC4CVC5DrealSTPYicesZ3
Supportedyesyes>= 3.2.0, ?>= 1.8, ?1.0.2yes>= 2.3.3, ?2.6.x, ?4.8.8 -- 4.8.14
goal timeouts?yesyesyesyes?yesyes! (4.8.11 or 4.8.12)
strings with unicode and escape codes?no?>= 1.8yes???>= 4.8.11

Contributors

robdockins

467 commits

kquick

260 commits

langston-barrett

170 commits

RyanGlScott

157 commits

GaloisInc/what4

Symbolic formula representation and solver interaction library

Haskell

178

1,304 commits

updated Sep 21, 2026

See the code

README

What4 is a library for representing symbolic terms and communicating with satisfiability and SMT solvers (e.g. Yices and Z3).

It was originally a part of the Crucible project, but has found use cases that are independent of its original purpose as the representation language for the Crucible symbolic simulator, and has thus been split out into a separate repository.

For an overview of What4 and how to use it, please see the package-level README.

This material is based upon work supported by the Defense Advanced Research Projects Agency (DARPA) under Contract No. HR0011-19-C-0070. The views, opinions, and/or findings expressed are those of the author(s) and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.

Solver Compatibility

FeatureABCBitwuzlaBoolectorCVC4CVC5DrealSTPYicesZ3
Supportedyesyes>= 3.2.0, ?>= 1.8, ?1.0.2yes>= 2.3.3, ?2.6.x, ?4.8.8 -- 4.8.14
goal timeouts?yesyesyesyes?yesyes! (4.8.11 or 4.8.12)
strings with unicode and escape codes?no?>= 1.8yes???>= 4.8.11

Contributors

robdockins

467 commits

kquick

260 commits

langston-barrett

170 commits

RyanGlScott

157 commits

Languages

Haskell

99.6%