* 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
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.
boolean formulae in What4. This datastructure automatically implements
associative-commutative-idempotent rewriting as well as recognizing
resolution opportunities (i.e. A /\ ~A = False).
gather products.
In addition, use similar machenery to represent bitwise disjunction.
This gives additional boolean lattice reductions, including absorption
and idempotency.
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.
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.
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.