diff options
Diffstat (limited to 'abstract/environment_domain.ml')
-rw-r--r-- | abstract/environment_domain.ml | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/abstract/environment_domain.ml b/abstract/environment_domain.ml new file mode 100644 index 0000000..f5614fe --- /dev/null +++ b/abstract/environment_domain.ml @@ -0,0 +1,27 @@ +open Abstract_syntax_tree + +module type ENVIRONMENT_DOMAIN = sig + type t + + (* construction *) + val init : t + val bottom : t + + (* variable management *) + val addvar : t -> id -> t + val rmvar : t -> id -> t + + (* abstract operation *) + val assign : t -> id -> expr ext -> t (* S[id <- expr] *) + val compare : t -> expr ext -> expr ext -> t (* S[expr <= expr ?] *) + + (* set-theoretic operations *) + val join : t -> t -> t (* union *) + val meet : t -> t -> t (* intersection *) + val widen : t -> t -> t + + (* order *) + val subset : t -> t -> bool +end + + |