package goblint
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=b729c94adb383a39aea32eb005c988dfd44b92af22ee6a4eedf4239542ac6c26
sha512=643b98770e5fe5644324c95c9ae3a9f698f25c8b11b298f0751d524e0b20af368b2a465fc8200b75a73d48fc9a053fd90f5e8920d4db070927f93188bb8687e0
doc/goblint.lib/Goblint_lib/Constraints/index.html
Module Goblint_lib.Constraints
Construction of a constraint system from an analysis specification and CFGs. Transformatons of analysis specifications as functors.
module M = Messagesmodule HashconsLifter
(S : Analyses.Spec) :
Analyses.Spec
with module D = Lattice.HConsed(S.D)
and module G = S.G
and module C = S.CLifts a Spec so that the domain is Hashconsd
module HashconsContextLifter
(S : Analyses.Spec) :
Analyses.Spec
with module D = S.D
and module G = S.G
and module C = Printable.HConsed(S.C)Lifts a Spec so that the context is Hashconsd.
module OptEqual (S : Analyses.Spec) : sig ... endmodule LevelSliceLifter
(S : Analyses.Spec) :
Analyses.Spec
with module D = Lattice.Prod(S.D)(Lattice.Reverse(IntDomain.Lifted))
and module G = S.G
and module C = S.CIf dbg.slice.on, stops entering functions after dbg.slice.n levels.
module LimitLifter (S : Analyses.Spec) : sig ... endLimits the number of widenings per node.
module WidenContextLifterSide (S : Analyses.Spec) : sig ... endmodule DeadCodeLifter
(S : Analyses.Spec) :
Analyses.Spec
with module D = Analyses.Dom(S.D)
and module G = S.G
and module C = S.CLifts a Spec with a special bottom element that represent unreachable code.
module type Increment = sig ... endmodule Var2
(LV : Analyses.VarType)
(GV : Analyses.VarType) :
Analyses.VarType with type t = [ `L of LV.t | `G of GV.t ]Combined variables so that we can also use the more common EqConstrSys that uses only one kind of a variable.
module FromSpec
(S : Analyses.Spec)
(Cfg : MyCFG.CfgBackward)
(I : Increment) :
sig ... endThe main point of this file---generating a GlobConstrSys from a Spec.
Convert a non-incremental solver into an "incremental" solver. It will solve from scratch, perform standard postsolving and have no marshal data.
module EqConstrSysFromGlobConstrSys
(S : Analyses.GlobConstrSys) :
Analyses.EqConstrSys
with type v = Var2(S.LVar)(S.GVar).t
and type d = Lattice.Lift2(S.G)(S.D)(Printable.DefaultNames).t
and module Var = Var2(S.LVar)(S.GVar)
and module Dom = Lattice.Lift2(S.G)(S.D)(Printable.DefaultNames)Translate a GlobConstrSys into a EqConstrSys
module GlobConstrSolFromEqConstrSolBase
(S : Analyses.GlobConstrSys)
(LH : Batteries.Hashtbl.S with type key = S.LVar.t)
(GH : Batteries.Hashtbl.S with type key = S.GVar.t)
(VH : Batteries.Hashtbl.S with type key = Var2(S.LVar)(S.GVar).t) :
sig ... endSplits a EqConstrSys solution into a GlobConstrSys solution with given Hashtbl.S for the EqConstrSys.
module GlobConstrSolFromEqConstrSol
(S : Analyses.GlobConstrSys)
(LH : Batteries.Hashtbl.S with type key = S.LVar.t)
(GH : Batteries.Hashtbl.S with type key = S.GVar.t) :
sig ... endSplits a EqConstrSys solution into a GlobConstrSys solution.
module GlobSolverFromEqSolver
(Sol : Analyses.GenericEqIncrSolverBase)
(S : Analyses.GlobConstrSys)
(LH : Batteries.Hashtbl.S with type key = S.LVar.t)
(GH : Batteries.Hashtbl.S with type key = S.GVar.t) :
sig ... endTransforms a GenericEqIncrSolver into a GenericGlobSolver.
module PathSensitive2
(Spec : Analyses.Spec) :
Analyses.Spec
with module G = Spec.G
and module C = Spec.C
and module V = Spec.VAdd path sensitivity to a analysis
module DeadBranchLifter (S : Analyses.Spec) : Analyses.Specmodule LongjmpLifter (S : Analyses.Spec) : Analyses.Specmodule RecursionTermLifter
(S : Analyses.Spec) :
Analyses.Spec with module D = S.D and module C = S.CAdd cycle detection in the context-sensitive dynamic function call graph to an analysis
module CompareGlobSys (SpecSys : Analyses.SpecSys) : sig ... endmodule CompareHashtbl
(Var : Analyses.VarType)
(Dom : Lattice.S)
(VH : Batteries.Hashtbl.S with type key = Var.t) :
sig ... endmodule CompareEqSys
(Sys : Analyses.EqConstrSys)
(VH : Batteries.Hashtbl.S with type key = Sys.Var.t) :
sig ... endmodule CompareGlobal
(GVar : Analyses.VarType)
(G : Lattice.S)
(GH : Batteries.Hashtbl.S with type key = GVar.t) :
sig ... endmodule CompareNode
(C : Printable.S)
(D : Lattice.S)
(LH : Batteries.Hashtbl.S with type key = Analyses.VarF(C).t) :
sig ... endmodule CurrentVarEqConstrSys (S : Analyses.EqConstrSys) : sig ... endEqConstrSys where current_var indicates the variable whose right-hand side is currently being evaluated.