Goblint_solver.PostSolver
Extra constraint system evaluation pass for warning generation, verification, pruning, etc.
module M = Messages
module type S = sig ... end
Postsolver with hooks.
module type F =
functor (S : ConstrSys.EqConstrSys) ->
functor (VH : Batteries.Hashtbl.S with type key = S.v) ->
S with module S = S and module VH = VH
Functorial postsolver for any system.
module Compose
(PS1 : S)
(PS2 : S with module S = PS1.S and module VH = PS1.VH) :
S with module S = PS1.S and module VH = PS1.VH
Sequential composition of two postsolvers.
module type StartEqConstrSys = sig ... end
EqConstrSys
together with start values to be used.
module EqConstrSysFromStartEqConstrSys
(S : StartEqConstrSys) :
ConstrSys.EqConstrSys
with type v = S.v
and type d = S.d
and module Var = S.Var
and module Dom = S.Dom
Join start values into right-hand sides. This simplifies start handling in Make
.
module type IncrS = sig ... end
Postsolver for incremental.
Make incremental postsolving function from incremental postsolver.
module type MakeListArg = sig ... end
List of postsolvers.
module type MakeIncrListArg = sig ... end
List of postsolvers for incremental.
module MakeIncrList (Arg : MakeIncrListArg) : sig ... end
Make incremental postsolving function from incremental list of postsolvers. If list is empty, no postsolving is performed.
module MakeList (Arg : MakeListArg) : sig ... end
Make complete (non-incremental) postsolving function from list of postsolvers. If list is empty, no postsolving is performed.
module type MakeStdArg = sig ... end
Standard postsolver options.
module ListArgFromStdArg
(S : ConstrSys.EqConstrSys)
(VH : Batteries.Hashtbl.S with type key = S.v)
(Arg : MakeStdArg) :
MakeListArg with module S = S and module VH = VH
List of standard postsolvers.
Convert a non-incremental solver into an "incremental" solver. It will solve from scratch, perform standard postsolving and have no marshal data.