diff options
| author | coqbot-app[bot] | 2020-10-13 13:12:05 +0000 |
|---|---|---|
| committer | GitHub | 2020-10-13 13:12:05 +0000 |
| commit | 9fa5174bac92de63bceae2c4e9ef70fab93198fd (patch) | |
| tree | 9522f7abd098f6fbf7d232b042f4822a22c5d03a | |
| parent | 471da91fbef6656baf616b04a7f41a5440e52a52 (diff) | |
| parent | bdd2b322d26419ee9944b804e580d5b039631569 (diff) | |
Merge PR #13172: Fix #13169: vm_compute has existential crisis.
Reviewed-by: silene
| -rw-r--r-- | pretyping/vnorm.ml | 3 | ||||
| -rw-r--r-- | test-suite/bugs/closed/bug_13169.v | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/pretyping/vnorm.ml b/pretyping/vnorm.ml index 900ba0edb9..1420401875 100644 --- a/pretyping/vnorm.ml +++ b/pretyping/vnorm.ml @@ -218,7 +218,8 @@ and nf_evar env sigma evk stk = let t = List.fold_left fold concl hyps in let t, args = nf_args env sigma args t in let inst, args = Array.chop (List.length hyps) args in - let inst = Array.to_list inst in + (* Evar instances are reversed w.r.t. argument order *) + let inst = Array.rev_to_list inst in let c = mkApp (mkEvar (evk, inst), args) in nf_stk env sigma c t stk | _ -> diff --git a/test-suite/bugs/closed/bug_13169.v b/test-suite/bugs/closed/bug_13169.v new file mode 100644 index 0000000000..a0b564c725 --- /dev/null +++ b/test-suite/bugs/closed/bug_13169.v @@ -0,0 +1,14 @@ +Goal False. +Proof. + set (H1:=I). + set (x:=true). + assert (H2: x = true) by reflexivity. + set (y:=false). + assert (H3: y = false) by reflexivity. + clearbody H1 x y. + eenough (H4: _ = false). + vm_compute in H4. + (* H4 now has "x:=y" in the evar context. *) + 2: exact H3. + match type of H4 with y = false => idtac end. +Abort. |
