aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/esubst.mli
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-02-27 12:12:35 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2018-03-27 13:25:54 +0200
commit4fba4b00257e8ddbc94f71115d139bfc2483944d (patch)
tree77338ae34ec87c6697e6bcfc94792c7c25899af1 /kernel/esubst.mli
parent01b7de3a673eb89cea61442c4db721aad9520c9f (diff)
Expliciting and taking advantage of a representation invariant in Esubst.
Diffstat (limited to 'kernel/esubst.mli')
-rw-r--r--kernel/esubst.mli6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/esubst.mli b/kernel/esubst.mli
index b82d6fdf0..a674c425a 100644
--- a/kernel/esubst.mli
+++ b/kernel/esubst.mli
@@ -56,7 +56,11 @@ val comp : ('a subs * 'a -> 'a) -> 'a subs -> 'a subs -> 'a subs
(** {6 Compact representation } *)
(** Compact representation of explicit relocations
- [ELSHFT(l,n)] == lift of [n], then apply [lift l].
- - [ELLFT(n,l)] == apply [l] to de Bruijn > [n] i.e under n binders. *)
+ - [ELLFT(n,l)] == apply [l] to de Bruijn > [n] i.e under n binders.
+
+ Invariant ensured by the private flag: no lift contains two consecutive
+ [ELSHFT] nor two consecutive [ELLFT].
+*)
type lift = private
| ELID
| ELSHFT of lift * int