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.8.1.tbz
    
    
        
    
  
  
  
    
  
  
    
  
        sha256=94090e05906c7a0559f60d2c65dbe167eb5953a2338b958b71911c1c81dd9ffd
    
    
  sha512=6f52f8918c3c242f1346ebdc244f80744966112b935e00519e5d4d5acc040f8e2d2c54ff6b172cf5eb34b9bf7366de085605de88fcc15c43f34abce39ed34220
    
    
  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)"
  >