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.7.0.tar.gz
    
    
        
    
  
  
  
    
  
  
    
  
        md5=1ea449bc5592187183287c4c8b9c1158
    
    
  sha512=8b0e2abe77039bf422a709c9e88eb6537af7445effbcef51bf31e18fad8f39d0e39a813226eb28b1f1fb7c4538d4370e0181fa8c4b8f0e18171da21d32dd9ab2
    
    
  doc/CHANGES.html
Unreleased
Added
Changed
Fixed
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