diff options
| author | Hugo Herbelin | 2014-09-29 07:04:28 +0200 |
|---|---|---|
| committer | Hugo Herbelin | 2014-09-29 15:36:19 +0200 |
| commit | a08733fb871b336e122d65c446bc344a3894cfaf (patch) | |
| tree | d7f3838b18b5b4cfb584bdc50d063c11950253bd | |
| parent | 435cd91ddb71a59fef3611210b19e9d01fc730f9 (diff) | |
Restoring non-uniform delta on local and global constants in 2nd order
unification for apply (compatibility reason). Waiting for another way
to provide a more uniform scheme by default (keyed unification?).
| -rw-r--r-- | pretyping/unification.ml | 2 | ||||
| -rw-r--r-- | test-suite/success/apply.v | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/pretyping/unification.ml b/pretyping/unification.ml index f99ea9a52c..a347149e37 100644 --- a/pretyping/unification.ml +++ b/pretyping/unification.ml @@ -307,7 +307,7 @@ let default_unify_flags () = let flags = default_core_unify_flags () in { core_unify_flags = flags; merge_unify_flags = flags; - subterm_unify_flags = { flags with modulo_delta = empty_transparent_state }; + subterm_unify_flags = { flags with modulo_delta = var_full_transparent_state }; allow_K_in_toplevel_higher_order_unification = false; (* Why not? *) resolve_evars = false } diff --git a/test-suite/success/apply.v b/test-suite/success/apply.v index 6a2012d91d..21b829aa19 100644 --- a/test-suite/success/apply.v +++ b/test-suite/success/apply.v @@ -527,3 +527,12 @@ eapply eq_trans. apply H. rewrite H0. change (x+0=0). Abort. + +(* 2nd order apply used to have delta on local definitions even though + it does not have delta on global definitions; keep it by + compatibility while finding a more uniform way to proceed. *) + +Goal forall f:nat->nat, (forall P x, P (f x)) -> let x:=f 0 in x = 0. +intros f H x. +apply H. +Qed. |
