Goblint_solver.PostSolverExtra constraint system evaluation pass for warning generation, verification, pruning, etc.
module M = Messagesmodule type S = sig ... endPostsolver with hooks.
module type F =
functor (S : Goblint_constraint.ConstrSys.EqConstrSys) ->
functor (VH : Batteries.Hashtbl.S with type key = S.v) ->
S with module S = S and module VH = VHFunctorial 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.VHSequential composition of two postsolvers.
module type StartEqConstrSys = sig ... endEqConstrSys together with start values to be used.
module EqConstrSysFromStartEqConstrSys
(S : StartEqConstrSys) :
Goblint_constraint.ConstrSys.EqConstrSys
with type v = S.v
and type d = S.d
and module Var = S.Var
and module Dom = S.DomJoin start values into right-hand sides. This simplifies start handling in Make.
module type IncrS = sig ... endPostsolver for incremental.
Make incremental postsolving function from incremental postsolver.
module type MakeListArg = sig ... endList of postsolvers.
module type MakeIncrListArg = sig ... endList of postsolvers for incremental.
module MakeIncrList (Arg : MakeIncrListArg) : sig ... endMake incremental postsolving function from incremental list of postsolvers. If list is empty, no postsolving is performed.
module MakeList (Arg : MakeListArg) : sig ... endMake complete (non-incremental) postsolving function from list of postsolvers. If list is empty, no postsolving is performed.
module type MakeStdArg = sig ... endStandard postsolver options.
module ListArgFromStdArg
(S : Goblint_constraint.ConstrSys.EqConstrSys)
(VH : Batteries.Hashtbl.S with type key = S.v)
(Arg : MakeStdArg) :
MakeListArg with module S = S and module VH = VHList of standard postsolvers.
module EqIncrSolverFromEqSolver
(Sol : Goblint_constraint.SolverTypes.GenericEqSolver) :
Goblint_constraint.SolverTypes.GenericEqIncrSolverConvert a non-incremental solver into an "incremental" solver. It will solve from scratch, perform standard postsolving and have no marshal data.