diff options
author | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2018-06-04 14:37:27 +0200 |
---|---|---|
committer | Matthieu Sozeau <matthieu.sozeau@inria.fr> | 2018-06-04 14:37:27 +0200 |
commit | 39cde6238489fafd706dfe7709052df0089ab3d5 (patch) | |
tree | 987c8f0f0cf74c635f234d400bfe7827629ad92d | |
parent | f1050affbd0009ea12794bd193184c80f938e1e6 (diff) | |
parent | 036a8660f11178a2523982d109ba11b99c062a3d (diff) |
Merge PR #7189: Fix #5539: algebraic universe produced by cases.
-rw-r--r-- | pretyping/cases.ml | 2 | ||||
-rw-r--r-- | test-suite/bugs/closed/5539.v | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/pretyping/cases.ml b/pretyping/cases.ml index 38196489a..1edce17bd 100644 --- a/pretyping/cases.ml +++ b/pretyping/cases.ml @@ -1850,7 +1850,7 @@ let build_inversion_problem loc env sigma tms t = (* [pb] is the auxiliary pattern-matching serving as skeleton for the return type of the original problem Xi *) let s' = Retyping.get_sort_of env sigma t in - let sigma, s = Evd.new_sort_variable univ_flexible_alg sigma in + let sigma, s = Evd.new_sort_variable univ_flexible sigma in let sigma = Evd.set_leq_sort env sigma s' s in let evdref = ref sigma in let pb = diff --git a/test-suite/bugs/closed/5539.v b/test-suite/bugs/closed/5539.v new file mode 100644 index 000000000..48e5568e9 --- /dev/null +++ b/test-suite/bugs/closed/5539.v @@ -0,0 +1,15 @@ +Set Universe Polymorphism. + +Inductive D : nat -> Type := +| DO : D O +| DS n : D n -> D (S n). + +Fixpoint follow (n : nat) : D n -> Prop := + match n with + | O => fun d => let 'DO := d in True + | S n' => fun d => (let 'DS _ d' := d in fun f => f d') (follow n') + end. + +Definition step (n : nat) (d : D n) (H : follow n d) : + follow (S n) (DS n d) + := H. |