diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2018-02-12 14:46:05 +0100 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2018-02-15 18:02:14 +0100 |
commit | d6ca9b2f71bced8711b184400fa7e80061497fd7 (patch) | |
tree | 7d7591a2a1a9cf6e9bb0202e95c68902dae934b2 /kernel/univ.ml | |
parent | 8dd6d091ffbfa237f7266eeca60187263a9b521f (diff) |
Adding a sanity check on inductive variance subtyping.
Diffstat (limited to 'kernel/univ.ml')
-rw-r--r-- | kernel/univ.ml | 7 |
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 "+" |