Sig.Transformation
Type of abitrary program transformation on top of an abstract domain. They typically override S
's apply
function
They can also change the type of relations used (for instance, to simplify the type of expressions by removing some operators)
Note that this type implies the transformation doesn't know the type of S.State.t
. It is opaque, meaning it:
query_truth_value
and query_is_constant
apply
, join
(and entrypoint
)module Domain
(S : Classical_Domain with type relation = relation_out) :
Classical_Domain
with module State = S.State
and module StateSet = S.StateSet
and type relation = relation_in
The actual transformation functor