General:
Portfolio Solver (PR #284):
Created Portfolio class that uses multiprocessing to solve the
problem using multiple solvers. get_value and get_model work after a
SAT query. Other artifacts (unsat-core, interpolants) are not
supported.
Factory.is_* methods have been extended to include portfolio
key-word, and exported as is_* shortcuts. The syntax becomes:
is_sat(f, portfolio=["s1", "s2"])
Coverage has been significantly improved, thus giving raise to some
clean-up of the tests and minor bug fixes. Thanks to Coveralls.io
for providing free coverage analysis. (PR #353, PR #358, PR #372)
Introduce PysmtException, from which all exceptions must
inherit. This also introduces hybrid exceptions that inherit both
from the Standard Library and from PysmtException (i.e.,
PysmtValueError). Thanks to Alberto Griggio for
suggesting this change. (PR #365)
Windows: Add support for installing Z3. Thanks to Samuele
Gallerani for contributing this patch. (PR #385)
Arrays: Improved efficiency of array_value_get (PR #357)
Documentation: Thanks to the Hacktoberfest for sponsoring these
activities:
Every function in shortcuts.py now has a docstring! Thanks to
Vijay Raghavan for contributing this patch. (PR #363)
Contributing information has been moved to the official
documentation and prettyfied! Thanks to Jason Taylor Hodge for
contributing this patch. (PR #339)
Add link to Google Group in Readme.md . Thanks to @ankit01ojha for
contributing this. (PR #345)
smtlibscript_from_formula(): Allow the user to specify a custom
logic. Thanks to Alberto Griggio for contributing this
patch. (PR #360)
Solvers:
MathSAT: Improve back-conversion performance by using MSAT_TAGS (PR #379)
MathSAT: Add LIA support for Quantifier Elimination
Removed: Solver.declare_variable and Solver.set_options (PR #369,
PR #378)
Bugfix:
CVC4:
MathSAT: Thanks to Alberto Griggio for contributing these patches
Enforce a single call to is_sat in non-incremental mode (PR
#368). Thanks to @colinmorris for pointing out this issue.
Clarified Installation section and added example of call to pysmt-install --env
. Thanks to Marco Roveri
(@marcoroveri) for pointing this out.
SMT-LIB Parser:
pysmt-install: Gracefully fail if GIT is not installed (PR #390)
Thanks to Alberto Griggio for reporting this.
Removed dependency from internet connections when checking picosat
version (PR #386)