Dissertação de Mestrado

A Multi-Backend Frontend for SMT Solvers in OCaml

João Maria Henriques Madeira Pereira2024

Informações chave

Autores:

João Maria Henriques Madeira Pereira (João Maria Henriques Madeira Pereira)

Orientadores:

José Faustino Fragoso Femenin dos Santos (José Faustino Fragoso Femenin dos Santos); Pedro Miguel dos Santos Alves Madeira Adão (Pedro Miguel dos Santos Alves Madeira Adão)

Publicado em

12 de novembro de 2024

Resumo

Satisfiability Modulo Theories (SMT) solvers have proven to be highly effective and helpful in various domains, including software and hardware verification and test-case generation, among others. Consequently, numerous tools need to interface with SMT solvers during their execution. With the intent of efficiently facilitating this interaction within the OCaml programming language, SMT.ml was developed as a frontend for SMT solving that allows an OCaml program to easily interact with an SMT solver. However, the current version of SMT.ml exclusively supports the Z3 SMT solver. This can pose constraints on users, as Z3 may not be the optimal solver for all theories and applications. To address this limitation, we propose an enhanced version of SMT.ml that features an additional backend for cvc5, a state-of-the-art SMT solver that outperforms Z3 in multiple theories. To achieve this, we also developed OCaml bindings that enable direct interaction between SMT.ml and the cvc5 solver. These bindings will not only benefit SMT.ml but also provide value to OCaml developers aiming to incorporate the cvc5 SMT solver into their programs and other OCaml-based tools.

Detalhes da publicação

Autores da comunidade :

Domínio Científico (FOS)

electrical-engineering-electronic-engineering-information-engineering - Engenharia Eletrotécnica, Eletrónica e Informática

Idioma da publicação (código ISO)

eng - Inglês

Acesso à publicação:

Embargo levantado

Data do fim do embargo:

4 de setembro de 2025

Nome da instituição

Instituto Superior Técnico