package mopsa
Install
Dune Dependency
Authors
Maintainers
Sources
md5=fdee20e988343751de440b4f6b67c0f4
sha512=f5cbf1328785d3f5ce40155dada2d95e5de5cce4f084ea30cfb04d1ab10cc9403a26cfb3fa55d0f9da72244482130fdb89c286a9aed0d640bba46b7c00e09500
doc/abstraction/Abstraction/Value/index.html
Module Abstraction.Value
Source
Signature of a value abstraction.
Value manager
type ('v, 't) value_man = {
bottom : 'v;
top : 'v;
is_bottom : 'v -> bool;
subset : 'v -> 'v -> bool;
join : 'v -> 'v -> 'v;
meet : 'v -> 'v -> 'v;
print : Core.All.printer -> 'v -> unit;
get : 'v -> 't;
set : 't -> 'v -> 'v;
eval : Core.All.expr -> 'v;
avalue : 'r. 'r Core.All.avalue_kind -> 'v -> 'r;
ask : 'a 'r. ('a, 'r) Core.All.query -> 'r;
}
Manager of value abstractions
Valued expressions
Valued exprssions annotate each node in the tree of the expression with its abstract value
Singleton representing a leaf expression and its value
Attache a value to a sub-expression in a value expression
Change the value of a sub-expression in a value expression
Find the value of a sub-expression in a valued expression. ** Raises Not_found
if the sub-expression is not found.
Same as find_ctx_opt
but returns None
if the sub-expression is not found
Fold over the direct sub-expressions only
Fold over all sub-expression
val map2_vexpr :
('v -> 't) ->
('s -> 't) ->
('v -> 's -> 't) ->
'v vexpr ->
's vexpr ->
't vexpr
Combine two valued expressions
Combine two valued expressions
Value domain
val default_compare :
('v, 't) value_man ->
Core.All.operator ->
bool ->
Core.All.expr ->
't ->
Core.All.expr ->
't ->
't * 't
Helper module defining default transfer functions
Registration
Check if an abstraction exists
Get the list of registered abstractions