Core.ChangeSourceChanges are used to log the statements executed during the computation of a post-state
Join two changes
val concat_change_map :
change Path.PathMap.t ->
change Path.PathMap.t ->
change Path.PathMap.tval add_stmt_to_change_map :
Ast.Stmt.stmt ->
Path.PathMap.key ->
change Path.PathMap.t ->
change Path.PathMap.t*****************
Change of a statement in terms of modified and removed variables
val get_stmt_change_vars :
custom:(Ast.Stmt.stmt -> change_vars option) ->
Ast.Stmt.stmt ->
change_varsGet the changes of a statement
val apply_change_vars :
change_vars ->
add:(Ast.Var.VarSet.elt -> 'b -> 'a -> 'a) ->
remove:(Ast.Var.VarSet.elt -> 'a -> 'a) ->
find:(Ast.Var.VarSet.elt -> 'a -> 'b) ->
'a ->
'a ->
'aApply changes on an abstract element
val generic_merge :
add:(Ast.Var.VarSet.elt -> 'a -> 'b -> 'b) ->
find:(Ast.Var.VarSet.elt -> 'b -> 'a) ->
remove:(Ast.Var.VarSet.elt -> 'b -> 'b) ->
?custom:(Ast.Stmt.stmt -> change_vars option) ->
('b * change) ->
('b * change) ->
'b * 'bGeneric merge operator for non-relational domains