Symbolic formula representation and solver interaction library
Go to file
Kevin Quick 320b966f1d
Remove use of partial fields and add warning.
Partial fields are the situation where an ADT is defined with record
syntax.  The field accessors are of type `ADT -> field`, but the field
is only valid for one constructor of the ADT, so proper usage requires
matching on the constructor before using field accessors, and omitting
this matching can lead to invalid accesses.

This change modifies the only use of this in What4 to ensure that the
Record types are not ADT's and vice-versa.
2021-03-24 09:07:33 -07:00
.github/workflows Added cabal check to github actions. 2021-03-14 10:22:53 -07:00
dependencies Update aig dependency to support GHC 8.10. 2021-01-17 10:45:45 -08:00
what4 Remove use of partial fields and add warning. 2021-03-24 09:07:33 -07:00
what4-abc [what4-abc] Update cabal for more recent specification version. 2021-03-14 10:19:28 -07:00
what4-blt [what4-blt] Update cabal specification to version 2.2. 2021-03-14 10:21:29 -07:00
.gitignore Ignore GHC environment files 2018-12-06 10:45:23 -08:00
.gitmodules migration to bv-sized representation (#34) 2020-06-04 15:07:57 -07:00
.hlint.yaml Separate Travis build+test jobs from lint jobs (#247) 2019-05-23 17:46:19 -07:00
cabal.project migration to bv-sized representation (#34) 2020-06-04 15:07:57 -07:00
README.md Add support for Verilog export (#65) 2020-12-14 13:54:31 -08:00

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.