package binsec
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  Semantic analysis of binary executables
Install
    
    dune-project
 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.7.4.tbz
    
    
        
    
  
  
  
    
  
  
    
  
        sha256=ee45b9a6d54aebfb2b860c8fa7548ad85afbf1da3fe65cee10529c8a0934b8d6
    
    
  sha512=493658d337a96bf6ac7b54b162717aeb31c527348a50552bad8f9b0f3f08791295e89c09b02b3f1c8cfa3913d57625c791e4e80322477e2a5f974ca7d85d57ae
    
    
  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-2023 *) (* 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)"
  >