There is a newer version of the record available.

Published November 12, 2024 | Version v2

Smt.ml: A Multi-Backend Frontend for SMT Solvers in OCaml (Artifact)

  • 1. ROR icon Instituto Superior Técnico
  • 2. ROR icon Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento
  • 3. ROR icon Instituto de Telecomunicações
  • 4. OCamlPro
  • 5. ROR icon Université Paris-Saclay

Description

SMT solvers are essential for applications in artificial intelligence, software verification, and optimisation. However, no single solver excels across all formula types, different applications may require the use of different solvers. While the SMT-LIB language enables multi-solver support, it incurs heavy I/O overhead. To address this, we introduce Smt.ml, an SMT solver frontend for OCaml that simplifies integration with various solvers through a consistent interface. Its parametric encoding facilitates the easy addition of new solver backends, while optimisations like formula simplification, result caching, and detailed error feedback enhance performance and usability. Our evaluation demonstrates that Smt.ml maintains correctness and performance comparable to individual solvers, with significant improvements in batched interactions.

Files

README.md

Files (6.4 GB)

Name Size
md5:8995f5c2b7e420707e255d071151433a
11.8 kB Preview Download
md5:8edce799971395168bdf728c9a136399
6.4 GB Download

Additional details

Software

Programming language
OCaml