package binsec
Install
dune-project
Dependency
Authors
-
AAdel Djoudi
-
BBenjamin Farinier
-
CChakib Foulani
-
DDorian Lesbre
-
FFrédéric Recoules
-
GGuillaume Girol
-
JJosselin Feist
-
LLesly-Ann Daniel
-
MMahmudul Faisal Al Ameen
-
MManh-Dung Nguyen
-
MMathéo Vergnolle
-
MMathilde Ollivier
-
MMatthieu Lemerre
-
NNicolas Bellec
-
OOlivier Nicole
-
RRichard Bonichon
-
RRobin David
-
SSébastien Bardin
-
SSoline Ducousso
-
TTa Thanh Dinh
-
YYaëlle Vinçont
-
YYanis Sellami
Maintainers
Sources
sha256=4cf70a0367fef6f33ee3165f05255914513ea0539b94ddfef0bd46fc9b42fa8a
sha512=cd67a5b7617f661a7786bef0c828ee55307cef5260dfecbb700a618be795d81b1ac49fc1a18c4904fd2eb8a182dc862b0159093028651e78e7dc743f5babf9e3
doc/binsec.smtlib/Binsec_smtlib/Formula/index.html
Module Binsec_smtlib.FormulaSource
include module type of struct include Formula end
val status_to_exit_code : status -> inttype bv_unop = | BvNot| BvNeg| BvRepeat of int| BvZeroExtend of int(*result has size: `size_of(bv) + int` *
*)| BvSignExtend of int| BvRotateLeft of int| BvRotateRight of int| BvExtract of int Binsec_base.Interval.t
and ax_term = private {ax_term_hash : int;ax_term_desc : ax_term_desc;idx_term_size : int;elt_term_size : int;
}type entry_desc = | Declare of decl| Define of def| Assert of bl_term| Assume of bl_term| Comment of string| Custom of custom_desc
An user defined entry.
Custom entry support is experimental and very limited. For now, it will work only for formula creation (no transformation) and printing (and by extension, call to external SMT solver).
type custom_handler = {hash : custom_desc -> int option;pp : Format.formatter -> custom_desc -> bool;
}val register_custom : custom_handler -> unitregister_custom { hash; pp } registers a hash and a pretty printer functions for custom entries.
The hash function should return Some h for the custom entries the handler supports, None otherwise. The pretty printer should print the entry without the surrounding parenthesis and return true for the custom entries the handler supports, false otherwise.
Handlers will be scanned in the reverse order of the call to the register_custom function. Using a custom entry without any registered handler will raise Invalid_custom.
An exception raised by a function that can not handle a custom entry, either because no hander has been registered for this entry or because the function does not support entry extension.
val empty : formulaval length : formula -> intmodule Printing : sig ... endBasic printing of formulas
val bl_sort : sortval bv_sort : int -> sortval ax_sort : int -> int -> sortval bl_var : string -> bl_varval bv_var : string -> int -> bv_varval ax_var : string -> int -> int -> ax_varval bl_term : bl_term_desc -> bl_termval bv_term : bv_term_desc -> bv_termval ax_term : ax_term_desc -> ax_termval entry : entry_desc -> entryval mk_bl_true : bl_termval mk_bl_false : bl_termval mk_bv_cst : Binsec_base.Bitvector.t -> bv_termval mk_comment : string -> entryval mk_bv_extract : int Binsec_base.Interval.t -> bv_term -> bv_termval mk_bv_zero : bv_termval mk_bv_one : bv_termval mk_bv_zeros : int -> bv_termval mk_bv_ones : int -> bv_termval mk_bv_fill : int -> bv_termmodule VarSet : sig ... endmodule BlVarSet : sig ... endmodule BvVarSet : sig ... endmodule AxVarSet : sig ... endmodule BlVarHashtbl : sig ... endmodule BvVarHashtbl : sig ... endmodule AxVarHashtbl : sig ... endmodule BlTermHashtbl : sig ... endmodule BvTermHashtbl : sig ... endmodule AxTermHashtbl : sig ... endThis module aim at generating well formatted smtlib2 formulas, taking in account some solvers differences (e.g: boolector not supporting function have arrays in parameters). All the strings generated by this module are smtlib 2 compliant.
val pp_status : Format.formatter -> Formula.status -> unitpretty print the smt_result with a given color
val print_status : Formula.status -> stringval print_bv_unop : Formula.bv_unop -> stringval print_bv_bnop : Formula.bv_bnop -> stringval print_bv_comp : Formula.bv_comp -> stringval print_bv_term : Formula.bv_term -> stringval print_ax_term : Formula.ax_term -> stringsee print_bv_term
val print_bl_term : Formula.bl_term -> stringsee print_bv_term
val print_varset : Formula.VarSet.t -> stringval pp_varset : Format.formatter -> Formula.VarSet.t -> unitval pp_header : theory:string -> Format.formatter -> unit -> unitval pp_as_comment :
(Format.formatter -> 'a -> unit) ->
Format.formatter ->
'a ->
unitval pp_bl_term : Format.formatter -> Formula.bl_term -> unitval pp_bv_term : Format.formatter -> Formula.bv_term -> unitval pp_ax_term : Format.formatter -> Formula.ax_term -> unitval pp_term : Format.formatter -> Formula.term -> unitval pp_entry : Format.formatter -> Formula.entry -> unitval pp_formula : Format.formatter -> Formula.formula -> unitmodule To_smtlib : sig ... endTranslation functions from BINSEC inner representation to SMT-LIB terms
module Transformation : sig ... endmodule Model : sig ... endInternal model representation
module Solver : sig ... endInterface with SMT solvers
module Utils : sig ... endUtility functions for formula creation
module Logger : sig ... end