package smtml
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
An SMT solver frontend for OCaml
Install
dune-project
Dependency
Authors
-
JJoão Pereira <joaomhmpereira@tecnico.ulisboa.pt>
-
FFilipe Marques <filipe.s.marques@tecnico.ulisboa.pt>
-
HHichem Rami Ait El Hara <hra@ocamlpro.com>
-
LLéo Andrès <contact@ndrs.fr>
-
AArthur Carcano <arthur.carcano@ocamlpro.com>
-
PPierre Chambart <pierre.chambart@ocamlpro.com>
-
JJosé Fragoso Santos <jose.fragoso@tecnico.ulisboa.pt>
Maintainers
Sources
v0.8.0.tar.gz
md5=f3384afc4c52ea0fcda2b434892f8412
sha512=47a70d32fae1c833b6a4765ab1152b241e1c60078a30c27b4669bb4a7fe499228d5c5783aca4462ed553408fa16488903924bad11b050bb22a985770796f56af
doc/CHANGES.html
Unreleased
Added
Changed
Fixed
v0.8.0
Added
- Add
Solver_dispatcher.supported_solverslist - Add alt-ergo to list of available solver to check
- Add
Expr.Set.ppfunction - Simplify int->float->int conversions
- Add simplification for
((extract 31 0) ((zero_extend 32) x))=x - Value lifting for arbitrary bitvectors
- Add support for a bunch of FPA in the SMT-LIB parser
- Add uninterpred
to_ieee_bvto solvers that don't support it - More pointer simplifications
- Add logical implication that is parsed from SMT-lib
=>.
Changed
- Serialize exception log output in sexp format to a temp file
- Remove OfString and ToString operators from Int module
- Base of pointers as bitvectors instead of fixed int32.
- Smtml now handles unknown SMT-lib symbols as apps instead of failing.
Fixed
- Fix rotates in alt-ergo and colibri2
- Fix cvc5's bindings
v0.7.0
Added
- Normalization of comparasion operators (@felixL-K)
- Add custom Bitvector library leveraging zarith and modulo arithmetic
Changed
- Remove value
Num (I32 | I64)and add valueBitv of Bitvector.t
Fixed
- Bring back model generation for alt-ergo-lib in 2.6.2 (@felixL-K)
- General bug fixes in the concrete evaluation of some operators
- Fix fxx.{neg|abs|copysign} operators
- Improvements for the colibri2 mappings (@hra687261)
- Fix cvc5 mappings use of outdated smtml API functions
v0.6.3
Added
- Add a message to concrete eval's
TypeError(closes #321) - Add
popcntimplementation (@zapashcanon)
v0.6.2
Added
- Add missing
trunc_sat_f{32|64}_{u|s}operations - Expose
Integer_overflowandConversion_to_integerexceptions in `Eval
v0.6.1
Changed
- Removed alt-ergo-lib pin and disabled model generation for the alt-ergo solver
Fixed
- Fixes model parsing in the JSON format.
v0.6.0
Added
- Add
get_sat_modelfunction to fetch models from path conditions - Add
cache_hitsandcache_missesfunctions to cached solver - Add
Expr.Set.hashas an alias toExpr.Set.to_int - optimize Expr.equal, cache Expr.simplify (@zapashcanon)
- Add floating-point operator
Copysign(Closes #185) - Add sign extension to operators with unsigned counter parts (Closes #207)
Fixed
- Bring back forall and exists quantifiers (Closes #200)
- Fixes
Value.compare(Closes #210)
v0.5.0
Changed
- Bump
prelude0.3 -> 0.5 - Removes
satisfiabilitytype
v0.4.1
Added
- Added
no_valueargument toModel.to_scfgandModel.to_scfg_string
Fixed
- Don't print types of
Numvalues in models
v0.4.0
Added
- Model parsing for the
jsonandscfgformats
v0.3.1
Fixed
- Fixes incorrect type calculation of bitv
*_extendops - Bumps bitwuzla 0.4.0 -> 0.6.0 to fix segmentation faults
v0.3.0
Added
- Add Dockerfile to built smtml using docker
- Add
Alt-Ergomappings - Use
Dolmento parse smt2 benchmarks - Add
Binderexpression to model:Forall,Exists, andLet_in - Provide hashconsed sets of expressions in
Expr.Set
v0.2.5
Fixed
- Fixes cvc5 mappigns
v0.2.4
Changed
- Bump
prelude0.2 -> 0.3
v0.2.3
Added
- Add
Num.set_default_printerto change between pretty and hexa modes
Changed
- Reverted
Num.pphexadecimal printing
v0.2.2
Added
- Allow creating and lifting bitvecs of bitwidth = 1
- Add unitary value
Value.Unit - Add simplification cases for Nan and Infinity floats (@joaomhmpereira)
- Add
Model.to_jsonfunction - Add
Solver.get_statisticsfunction
Fixed
Changed
- Print bitvectors and fps in hexadecimal and removed
Value.pp_num - Deprecated
Solver.get_statistics
v0.2.1
Fixed
- Add conflicts on solvers versions outside depopt range (@krtab)
v0.2.0
Added
- Added
ListandAppvalues (@joaomhmpereira) - Added
NaryoptoExpr(@joaomhmpereira) - Added
val Expr.ptr : int32 -> t -> tconstructor (@filipeom) - Added missing concrete simplification to
Eval(@joaomhmpereira)
Changed
- Renamed
Seq_operators toString_(@joaomhmpereira) String.concatis now a nary operator (@joaomhmpereira)- Made
Eval.TypeErrormore explicit on which operator triggered the error. (@joaomhmpereira) - Made
Expr.Ptra record (@filipeom)
Fixed
- Missing bitwuzla operators
to_fpandof_ieee_bv.
v0.1.3
Changed
- Changed
Num.( = )toNum.equalto be more consistent with other modules
Fixed
- Fixed comparison of boolean values
v0.1.2
Added
- Adds
Solver_dispacher.{is_available|available_solvers|solver}to check availability of installed solvers - Model generation for Bitwuzla
Changed
- Exposes
Optimizer.Maketo allow for parametric optimizers - Makes Z3 optional
Fixed
- Parametric mappings should only create sorts once
v0.1.1
- Improves interoperability with multiple solvers
- Bug fixes for
colibri2andz3 - Adds preliminary support for cvc5
v0.1.0
- Renames project to
Smt.mland library tosmtml - Minor fixes and typos
- Adds preliminary support for the Bitwuzla solver
- Completes concrete simplifications
Solver.checknow returns aSat | Unsat | Unknowninstead of aboolvalue- Adds owi's simplifications and smart op constructors
- Moves theory annotation (
Ty.t) only to necessary variants
v0.0.4
- Adds Arthur's clz and ctz implementations for i64s
- Completes missing
eval_numericoperations - Adds more tests to increase code coverage
- Adds
extend_ixxto lexer - Adds colibri2 mappings
- Fixes hash-consing in 72eeb6f
- Rename
declare-funtolet-const - Rotate_left and rotate_right operators
- Print floats in OCaml syntax (Closes #49)
v0.0.3
- Improve bitv creation interface
- Add naive hash-consing of expressions
- Add
CeilandFloorFPA operators - Start migrating inline tests to standard tests
- No simplifier on batch solver
v0.0.2
- Support for bv8
- Refactor optimizer interface
- Fixes batch solver in
e061344 - Adds default simplifier in z3 leading to great performance gains
- Adds logic configuration option to
mk_solver - Fixes pp function in
11476fb - Adds
ematchingandtimeoutparameters - Improves documentation
- Relax ocaml compiler constraint to
>= 4.14.0
v0.0.1
Initial release
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page