Goblint_solver.PostSolverSourceExtra constraint system evaluation pass for warning generation, verification, pruning, etc.
module Pretty = GoblintCil.Prettymodule M = Messagesmodule 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.
EqConstrSys 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.
Make incremental postsolving function from incremental postsolver.
List of postsolvers.
List of postsolvers for incremental.
Make incremental postsolving function from incremental list of postsolvers. If list is empty, no postsolving is performed.
Make complete (non-incremental) postsolving function from list of postsolvers. If list is empty, no postsolving is performed.
Standard 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.