diff options
author | Maxime Dénès <mail@maximedenes.fr> | 2018-02-21 18:53:56 +0100 |
---|---|---|
committer | Maxime Dénès <mail@maximedenes.fr> | 2018-02-21 18:53:56 +0100 |
commit | 6ee9f47718fa9929de4d8e724d9df6d389ea9dc8 (patch) | |
tree | 99651982cd8f5c20ebc86a2124297af72884e97d /test-suite/modules | |
parent | aec63ba9c8f6840d98ba731640a786138d836343 (diff) | |
parent | d50cee3fa401246061c106248b749be03e108298 (diff) |
Merge PR #6740: Adding a sanity check on inductive variance subtyping.
Diffstat (limited to 'test-suite/modules')
-rw-r--r-- | test-suite/modules/cumpoly.v | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test-suite/modules/cumpoly.v b/test-suite/modules/cumpoly.v new file mode 100644 index 000000000..654b86cb4 --- /dev/null +++ b/test-suite/modules/cumpoly.v @@ -0,0 +1,19 @@ +Set Universe Polymorphism. + +(** Check that variance subtyping is respected. The signature T is asking for + invariance, while M provide an irrelevant implementation, which is deemed + legit. + + There is currently no way to go the other way around, so it's not possible + to generate a counter-example that should fail with the wrong subtyping. +*) + +Module Type T. +Parameter t@{i|Set <= i} : Type@{i}. +Cumulative Inductive I@{i|Set <= i} : Type@{i} := C : t@{i} -> I. +End T. + +Module M : T. +Definition t@{i|Set <= i} : Type@{i} := nat. +Cumulative Inductive I@{i|Set <= i} : Type@{i} := C : t@{i} -> I. +End M. |