Smt.ml: A Multi-Backend Frontend for SMT Solvers in OCaml
Résumé
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.
Domaines
Informatique [cs]Origine | Fichiers produits par l'(les) auteur(s) |
---|