package goblint
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=af01aac256229f33a90a9fcbfed04b01e3097f154d4d124f006476d6387c6a66
sha512=2a93bfe16881adbc2d8dcbfe38c1e19cd24ca105d8e1eda13d02440f3002874ffe2957dfd937510765233a054a40568b0052db92e31d382a5bd215d1ec12565c
doc/goblint.solver/Goblint_solver/SideWPointSelect/Never/index.html
Module SideWPointSelect.NeverSource
Never widen side-effects.
Parameters
module HM : Batteries.Hashtbl.S with type key = S.vmodule VS : Batteries.Set.S with type elt = S.vSignature
Create data required by this widening point selection strategy. The parameters are not necessarily used by all strategies.
Notifies this strategy that a side-effect has occurred. This allows the strategy to adapt its internal data structure.
Whether the destabilization of the side-effected var should record the destabilization of called variables and start variables. This information should be passed to should_mark_wpoint by the solver.
This strategy can decide to prevent widening. Note that, if this strategy does not veto, this does not mean that widening will necessarily be performed. Nor does a call to this function imply that the value of the leaf has grown.
val should_mark_wpoint :
data ->
unit HM.t ->
VS.t ->
S.v option ->
S.v ->
bool option ->
boolThe value of the leaf has grown. Should it be marked a widening point? Widening points are widened when their value grows, unless vetoed. Even if this function is called, leaf y might already be a widening point from an earlier side-effect.