package binsec
Semantic analysis of binary executables
Install
Dune Dependency
Authors
-
AAdel Djoudi
-
BBenjamin Farinier
-
CChakib Foulani
-
DDorian Lesbre
-
FFrédéric Recoules
-
GGuillaume Girol
-
JJosselin Feist
-
LLesly-Ann Daniel
-
MManh-Dung Nguyen
-
MMathéo Vergnolle
-
MMathilde Ollivier
-
MMatthieu Lemerre
-
OOlivier Nicole
-
RRichard Bonichon
-
RRobin David
-
SSébastien Bardin
-
SSoline Ducousso
-
TTa Thanh Dinh
-
YYaëlle Vinçont
Maintainers
Sources
binsec-0.6.0.tbz
sha256=e9101e68d317c837d5cff9608c6fba2127dd31ef6373b9b90806780c1d80bb52
sha512=c01af277239b8cc84fb904c301897f7d2388a8c850c7cb6a53acb8a4f8d51115c8a595c5517843d076421a76f4b2becb16e722b4c90f19a8fa208cce5f3ba274
doc/src/binsec.smt/smt_solver.ml.html
Source file smt_solver.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
(**************************************************************************) (* This file is part of BINSEC. *) (* *) (* Copyright (C) 2016-2022 *) (* CEA (Commissariat à l'énergie atomique et aux énergies *) (* alternatives) *) (* *) (* you can redistribute it and/or modify it under the terms of the GNU *) (* Lesser General Public License as published by the Free Software *) (* Foundation, version 2.1. *) (* *) (* It is distributed in the hope that it will be useful, *) (* but WITHOUT ANY WARRANTY; without even the implied warranty of *) (* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) (* GNU Lesser General Public License for more details. *) (* *) (* See the GNU Lesser General Public License version 2.1 *) (* for more details (enclosed in the file licenses/LGPLv2.1). *) (* *) (**************************************************************************) let solvers = let open Formula_options in [ Bitwuzla; Boolector; Z3; CVC4; Yices ] let map = let open Formula_options in let open Smt_options in function | Auto | Bitwuzla_native -> assert false | Bitwuzla_smtlib -> Bitwuzla | Boolector_smtlib -> Boolector | Z3_smtlib -> Z3 | CVC4_smtlib -> CVC4 | Yices_smtlib -> Yices let get_solver () = let open Formula_options in let open Smt_options in match SMTSolver.get () with | (Auto | Bitwuzla_native) when Smt_bitwuzla.available -> (module Smt_bitwuzla : Smt_sig.Solver) | Auto -> ( try let solver = List.find Prover.ping solvers in Logger.info "Found %a in the path." Prover.pp solver; Solver.set solver; (module Smt_external.Solver : Smt_sig.Solver) with Not_found -> Logger.fatal "No SMT solver found.") | Bitwuzla_native -> Logger.fatal "Native bitwuzla binding is required but not available." | solver when Prover.ping (map solver) -> Solver.set (map solver); (module Smt_external.Solver : Smt_sig.Solver) | solver -> Logger.fatal "%a is required but not available in path." Prover.pp (map solver)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>