package goblint
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ca24f72fa9a87d288affe97c411753f14b7802bab4ca3649b337276b89bf5674
sha512=394b3521ccda0da91540cebb2f433f7525763060be4bbe179edd3b952a3580a8e173c4e410fc6895dc67fe6d17e6699aeddfed600f4692858bec093dd912bf1e
doc/goblint.lib/Goblint_lib/Analyses/index.html
Module Goblint_lib.Analyses
Analysis specification and constraint system signatures.
module M = Messages
Analysis starts from lists of functions: start functions, exit functions, and * other functions.
module type SysVar = sig ... end
module type VarType = sig ... end
module Var : sig ... end
module VarF (LD : Printable.S) : sig ... end
module type SpecSysVar = sig ... end
module GVarF (V : SpecSysVar) : sig ... end
module GVarG (G : Lattice.S) (C : Printable.S) : sig ... end
module ResultNode : Printable.S with type t = MyCFG.node
module type ResultConf = sig ... end
module Result (Range : Printable.S) (C : ResultConf) : sig ... end
type ('d, 'g, 'c, 'v) ctx = {
ask : 'a. 'a Queries.t -> 'a Queries.result;
emit : Events.t -> unit;
node : MyCFG.node;
prev_node : MyCFG.node;
control_context : unit -> ControlSpecC.t;
(*top-level Control Spec context, raises
*)Ctx_failure
if missingcontext : unit -> 'c;
(*current Spec context, raises
*)Ctx_failure
if missingedge : MyCFG.edge;
local : 'd;
global : 'v -> 'g;
spawn : GoblintCil.lval option -> GoblintCil.varinfo -> GoblintCil.exp list -> unit;
split : 'd -> Events.t list -> unit;
sideg : 'v -> 'g -> unit;
}
val ask_of_ctx : ('a, 'b, 'c, 'd) ctx -> Queries.ask
Convert ctx
to Queries.ask
.
module type Spec = sig ... end
module type MCPA = sig ... end
module type MCPSpec = sig ... end
type increment_data = {
server : bool;
solver_data : Obj.t;
changes : CompareCIL.change_info;
restarting : VarQuery.t list;
}
type 'v sys_change_info = {
obsolete : 'v list;
(*Variables to destabilize.
*)delete : 'v list;
(*Variables to delete.
*)reluctant : 'v list;
(*Variables to solve reluctantly.
*)restart : 'v list;
(*Variables to restart.
*)
}
Abstract incremental change to constraint system.
module type MonSystem = sig ... end
A side-effecting system.
module type EqConstrSys = MonSystem with type 'a m := 'a option
Any system of side-effecting equations over lattices.
module type GlobConstrSys = sig ... end
A side-effecting system with globals.
module type GenericEqIncrSolverBase =
functor (S : EqConstrSys) ->
functor (H : Batteries.Hashtbl.S with type key = S.v) ->
sig ... end
A solver is something that can translate a system into a solution (hash-table). Incremental solver has data to be marshaled.
module type IncrSolverArg = sig ... end
(Incremental) solver argument, indicating which postsolving should be performed by the solver.
module type GenericEqIncrSolver =
functor (Arg : IncrSolverArg) ->
GenericEqIncrSolverBase
An incremental solver takes the argument about postsolving.
module type GenericEqSolver =
functor (S : EqConstrSys) ->
functor (H : Batteries.Hashtbl.S with type key = S.v) ->
sig ... end
A solver is something that can translate a system into a solution (hash-table)
module type GenericGlobSolver =
functor (S : GlobConstrSys) ->
functor (LH : Batteries.Hashtbl.S with type key = S.LVar.t) ->
functor (GH : Batteries.Hashtbl.S with type key = S.GVar.t) ->
sig ... end
A solver is something that can translate a system into a solution (hash-table)
module ResultType2 (S : Spec) : sig ... end
module StdV : sig ... end
module VarinfoV : sig ... end
module EmptyV : sig ... end
module UnitA : sig ... end
module UnitP : sig ... end
module DefaultSpec : sig ... end
Relatively safe default implementations of some boring Spec functions.
module IdentitySpec : sig ... end
module type SpecSys = sig ... end
module type SpecSysSol = sig ... end