module type Domain = sig
.. end
Input domain for a simple dataflow analysis.
type
t
States propagated by the dataflow analysis.
val join : t ->
t -> t
Merges two states coming from different paths.
val widen : t ->
t -> t option
widen v1 v2
must returns None if v2
is included in v1
.
Otherwise, over-approximates the join between v1
and v2
such that
any sequence of successive widenings is ultimately stationary,
i.e. …widen (widen (widen x0 x1) x2) x3…
eventually returns None.
Called on loop heads to ensure the analysis termination.
val transfer : Interpreted_automata.vertex Interpreted_automata.transition ->
t -> t option
Transfer function for transitions: computes the state after the transition
from the state before. Returns None if the end of the transition is not
reachable from the given state.