summaryrefslogtreecommitdiff
path: root/abstract/environment_domain.ml
diff options
context:
space:
mode:
Diffstat (limited to 'abstract/environment_domain.ml')
-rw-r--r--abstract/environment_domain.ml27
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
+
+