Commit Graph

26 Commits

Author SHA1 Message Date
Kevin Quick
287549faff
[what4-blt] Update cabal specification to version 2.2. 2021-03-14 10:21:29 -07:00
Brian Huffman
0a1ec94056 Switch from ansi-wl-pprint to the prettyprinter package.
This patch converts packages `what4`, `what4-abc`, and `what4-blt`.
2020-11-23 06:39:59 -08:00
Rob Dockins
2fe09d5fd9 Various metadata updates.
* Update/imporove Haddock comments and bump copyright years

* Bump copyright dates in LICENSE files

* Add .cabal package lower bounds. These appear to be reasonable, but
I haven't exhaustively tested the various configurations.

* Bump copyright dates in .cabal files

* Start a basic changelog
2020-07-21 17:43:47 -07:00
Rob Dockins
0a44276206 Relax base bounds for what4-abc and what4-blt 2020-05-07 13:09:38 -07:00
Rob Dockins
6340e3ad0c Add an Annotation term former to the NonceApp type,
and propigate changes to downstream packages.

Pipe the new annotation operation through the what4 interface
2020-04-02 10:27:02 -07:00
Rob Dockins
e9b5430a94 Update various .cabal files to upgrade certain warnings
to errors. These are: incomplete-patterns, overlapping-patterns, and
missing-methods.
2020-04-02 10:27:02 -07:00
Brian Huffman
60bb045365 what4: Remove DisjPred constructor.
We now represent disjunctions as negated conjunctions with negated
elements. This change makes it possible to significantly simplify
the definitions of the andPred and orPred operations.
2020-01-22 17:02:50 -08:00
Rob Dockins
2fb6f0c483 Fixes for GHC 8.8 builds. Mostly MonadFail related changes,
but a few other odds and ends as well.
2020-01-22 09:35:15 -08:00
Rob Dockins
6169f2c84e Squash unused-import warnings 2019-11-14 17:08:45 -08:00
Rob Dockins
2941e6f07b Update downstream packages with String type updates 2019-11-14 17:08:44 -08:00
Langston Barrett
3f37377ce3 Merge remote-tracking branch 'upstream/master' into travis-hlint-2 2019-05-08 09:53:58 -07:00
Langston Barrett
04a6db91e7 Fix additional language pragma whitespace, remove a few more 2019-05-01 14:44:56 -07:00
Langston Barrett
230502c784 (partially) fix hlint warning: Unused LANGUAGE pragma 2019-04-30 15:38:36 -07:00
Rob Dockins
e55f5100c1 Add explicit representation for disjunction to What4 rather than
using negations and conjunction only.
2019-03-15 16:05:29 -07:00
Rob Dockins
7488b58fa1 Implement n-way conjunctions instead of a binary AND operator for
boolean formulae in What4.  This datastructure automatically implements
associative-commutative-idempotent rewriting as well as recognizing
resolution opportunities (i.e. A /\ ~A = False).
2019-03-15 12:38:20 -07:00
Rob Dockins
1e7dee2792 Enhance the representation of semiring products. We now explicitly
gather products.

In addition, use similar machenery to represent bitwise disjunction.
This gives additional boolean lattice reductions, including absorption
and idempotency.
2019-03-14 16:15:47 -07:00
Rob Dockins
5e6b187a31 Reorganize quite a few pieces of the What4 bitvector representation,
and generalize equality and if/then/else to work over all base types.

Bitvectors now are paricipants in two different semiring instances:
the usual arithmetic one and a bitwise one based on XOR and AND.
This allows automatic term gathering, XOR-canceling and other
similar simplifications to occur automatically.
2019-03-11 18:41:41 -07:00
Rob Dockins
db251dc763 Update BLT and ABC support for what4 to handle cases where
variables are declared with bounds.
2018-12-13 14:25:32 -08:00
Kevin Quick
cdd3bb4476 Merge branch 'master' of github.com:GaloisInc/crucible 2018-11-15 12:22:42 -08:00
Jennifer Paykin
bf09ca6ff0 Updated remaining modules to work with updated LogData interface to what4 solvers 2018-11-13 18:51:02 -08:00
Kevin Quick
d51a6f96f7 Bump upper limits on base to allow GHC 8.6 compilation. 2018-11-06 13:18:54 -08:00
Rob Dockins
88c65dd54a Update to the text-interaction mode for SMT solvers.
This update fixes a variety of issues with solver interaction involving
the named assertion and unsat core updates.  CVC4, Z3 and Yices now will
properly issue queries and return resuts.

In addition, a variety of refactorings were made to the interaction code
that should make things more uniform going forward.  As part of these
refactorings, it is now possible to pass an "auxiliary output" file handle
when interacting with solvers.  If provided, solver commands and responses
will be echoed into this file for debugging purposes.
2018-10-31 10:39:43 -07:00
Rob Dockins
c64675f2f7 Modify the API for solver queries so that they take a list of predicates
instead of just a single predicate.  The semantics of the query is
just the conjunction of the given predicates.  However, for the purposes
of computing unsatisfiable cores, the list of given predicates
will be the atomic units that will either appear (or not) in the
generated unsat cores, for those solvers which support computing
unsat cores.
2018-10-08 10:52:27 -07:00
Rob Dockins
b13e0f36dc Add a new parameter to the SatResult data type for reporting
unsatisfiable cores when we get an UNSAT result.  Propigate
the minimum necessary changes.
2018-10-05 10:01:02 -07:00
Rob Dockins
e911897d72 Update what4 and crucible packages to make use of the new
solver event logging facilities.
2018-09-17 16:15:03 -07:00
Rob Dockins
75b690da99 Rename the crucible-blt package into what4-blt 2018-05-10 18:14:53 -07:00