aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/univ.ml
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2018-02-12 14:46:05 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2018-02-15 18:02:14 +0100
commitd6ca9b2f71bced8711b184400fa7e80061497fd7 (patch)
tree7d7591a2a1a9cf6e9bb0202e95c68902dae934b2 /kernel/univ.ml
parent8dd6d091ffbfa237f7266eeca60187263a9b521f (diff)
Adding a sanity check on inductive variance subtyping.
Diffstat (limited to 'kernel/univ.ml')
-rw-r--r--kernel/univ.ml7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/univ.ml b/kernel/univ.ml
index fbb047364..c42b66749 100644
--- a/kernel/univ.ml
+++ b/kernel/univ.ml
@@ -759,6 +759,13 @@ struct
| Invariant, _ | _, Invariant -> Invariant
| Covariant, Covariant -> Covariant
+ let check_subtype x y = match x, y with
+ | (Irrelevant | Covariant | Invariant), Irrelevant -> true
+ | Irrelevant, Covariant -> false
+ | (Covariant | Invariant), Covariant -> true
+ | (Irrelevant | Covariant), Invariant -> false
+ | Invariant, Invariant -> true
+
let pr = function
| Irrelevant -> str "*"
| Covariant -> str "+"