SmtConf
andSolver
creation now take a mandatory command argument to run the solver- using default command for the solvers is not recommended as it is end-user-dependent and not flexible
- if you still wish to use default commands, use the
default_<solver>
functions provided forSmtConf
andSolver
, e.g.Solver::default_z3()
- added example
examples/custom_cmd.rs
demonstrating how to pass a custom command to a solver configuration Solver
now implementsstd::io::Read
in addition tostd::io::Write
- useful for performing custom queries and quick testing
- added a
prelude
module containing common imports for convenience
Solver::set_custom_logic
- more documentation improvements
- fixed some problems in code/doc formatting (internal)
- slightly improved CVC4 support
- added support for Yices 2
- some (slight) documentation improvements
- fixed some problems in code/doc formatting (internal)
- switched to edition 2018
- removed a lot of the
Copy
requirements for parsers and input collections fordeclare_fun
etc... - various minor code embellishments
- (probably) fixed backend solvers being (sometimes) zombified when unwinding
- improved
check_sat_assuming
over iterators - rustfmt!
- support
timeout
s Solver
now implementsWrite
; this allows users to write custom commands directly- separated
ValueParser
andModelParser
; this fixes model parsing which wasn't making sense when parsing function definitions
- improved
SmtConf
to supportString
options and commands with options Solver::path_tee
tees the solver to file given by path- fixed/improved solver-level error handling
define_const
anddefine_const_with
- simplified the workflow significantly
- all solver commands that take info, like
assert
, now take no info; use..._with
, likeassert_with
, to pass down information - added
declare-datatypes
- fixed problem in
get_values
result parsing
- the info used by
*2Smt
is not explicitely a reference anymore - all solver commands that take an info now have a
<fn_name>_u
version that omits the info when it's unit()
- added an API for activation literals
- simplified parse traits type parameters a bit
- long overdue update of the
errors
- macros
smtry_io
andsmt_cast_io
are gone becausestd::io
errors are lifted torsmt2
errors now Solver
commands are now much more generic ; all type parameters are separated and all collections are supported through iterators- streamlined the interface, all the commands are in the
Solver
trait now - support solvers returning
unknown
to check-sat queries
- trait
Expr2Smt
does not use dispatch anymore