package goblint
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=99b78e6def71534d195eef9084baa26d8334b36084e120aa6afb300c9bf8afa6
sha512=f3162bd95a03c00358a2991f6152fc6169205bfb4c55e2c483e98cc3935673df9656d025b6f1ea0fa5f1bd0aee037d4f483966b0d2907e3fa9bf11a93a3392af
doc/goblint.constraint/ConstrSys/index.html
Module ConstrSysSource
constraint system signatures.
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.
Any system of side-effecting equations over lattices.
A side-effecting system with globals.
module type GenericEqIncrSolverBase =
functor (S : EqConstrSys) ->
functor (H : Batteries.Hashtbl.S with type key = S.v) ->
sig ... endA solver is something that can translate a system into a solution (hash-table). Incremental solver has data to be marshaled.
(Incremental) solver argument, indicating which postsolving should be performed by the solver.
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 ... endA 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 ... endA solver is something that can translate a system into a solution (hash-table)
Combined variables so that we can also use the more common EqConstrSys that uses only one kind of a variable.
module EqConstrSysFromGlobConstrSys
(S : GlobConstrSys) :
EqConstrSys
with type v = Var2(S.LVar)(S.GVar).t
and type d = Lattice.Lift2(S.G)(S.D).t
and module Var = Var2(S.LVar)(S.GVar)
and module Dom = Lattice.Lift2(S.G)(S.D)Translate a GlobConstrSys into a EqConstrSys
module GlobConstrSolFromEqConstrSolBase
(S : 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 : 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 : GenericEqIncrSolverBase)
(S : 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.
EqConstrSys where current_var indicates the variable whose right-hand side is currently being evaluated.