aboutsummaryrefslogtreecommitdiff
path: root/tactics
diff options
context:
space:
mode:
authorherbelin2011-06-13 22:21:23 +0000
committerherbelin2011-06-13 22:21:23 +0000
commitd5b1c83d0f0a60f9658c45ae902035f2fdef0c41 (patch)
tree69a66d45f4e23eb9a979d571cdcf4cb099f8aa64 /tactics
parent463b54961c77aa7b5f21d2937628d9cc9cd5a06a (diff)
Added a flag to restrict conversion in tactic unification on the
strict subterms of the initial unification problem (inspired from ssreflect rewriting strategy). Not activated however (a few applications of setoid rewrite use this possibility on closed terms in the stdlib, e.g. "flip le p (min n m)" identified with "le (min n m) p"). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14198 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics')
-rw-r--r--tactics/auto.ml1
-rw-r--r--tactics/class_tactics.ml41
-rw-r--r--tactics/equality.ml2
-rw-r--r--tactics/rewrite.ml43
4 files changed, 7 insertions, 0 deletions
diff --git a/tactics/auto.ml b/tactics/auto.ml
index 6780ae2fcf..18e71661ff 100644
--- a/tactics/auto.ml
+++ b/tactics/auto.ml
@@ -846,6 +846,7 @@ let auto_unif_flags = {
resolve_evars = true;
use_evars_pattern_unification = false;
frozen_evars = ExistentialSet.empty;
+ restrict_conv_on_strict_subterms = false; (* Compat *)
modulo_betaiota = false;
modulo_eta = true;
allow_K_in_toplevel_higher_order_unification = false
diff --git a/tactics/class_tactics.ml4 b/tactics/class_tactics.ml4
index 3f4e773eca..b460222b95 100644
--- a/tactics/class_tactics.ml4
+++ b/tactics/class_tactics.ml4
@@ -80,6 +80,7 @@ let auto_unif_flags = {
resolve_evars = false;
use_evars_pattern_unification = true;
frozen_evars = ExistentialSet.empty;
+ restrict_conv_on_strict_subterms = false; (* ? *)
modulo_betaiota = true;
modulo_eta = true;
allow_K_in_toplevel_higher_order_unification = false
diff --git a/tactics/equality.ml b/tactics/equality.ml
index f6e8837f8b..98f47d8fbf 100644
--- a/tactics/equality.ml
+++ b/tactics/equality.ml
@@ -88,6 +88,7 @@ let rewrite_unif_flags = {
Unification.resolve_evars = true;
Unification.use_evars_pattern_unification = true;
Unification.frozen_evars = ExistentialSet.empty;
+ Unification.restrict_conv_on_strict_subterms = false;
Unification.modulo_betaiota = false;
Unification.modulo_eta = true;
Unification.allow_K_in_toplevel_higher_order_unification = false
@@ -144,6 +145,7 @@ let rewrite_conv_closed_unif_flags = {
Unification.resolve_evars = false;
Unification.use_evars_pattern_unification = true;
Unification.frozen_evars = ExistentialSet.empty;
+ Unification.restrict_conv_on_strict_subterms = false;
Unification.modulo_betaiota = false;
Unification.modulo_eta = true;
Unification.allow_K_in_toplevel_higher_order_unification = false
diff --git a/tactics/rewrite.ml4 b/tactics/rewrite.ml4
index b8ebf84a61..821284ec7f 100644
--- a/tactics/rewrite.ml4
+++ b/tactics/rewrite.ml4
@@ -308,6 +308,7 @@ let rewrite_unif_flags = {
Unification.resolve_evars = true;
Unification.use_evars_pattern_unification = true;
Unification.frozen_evars = ExistentialSet.empty;
+ Unification.restrict_conv_on_strict_subterms = false;
Unification.modulo_betaiota = false;
Unification.modulo_eta = true;
Unification.allow_K_in_toplevel_higher_order_unification = true
@@ -321,6 +322,7 @@ let rewrite2_unif_flags =
Unification.resolve_evars = true;
Unification.use_evars_pattern_unification = true;
Unification.frozen_evars = ExistentialSet.empty;
+ Unification.restrict_conv_on_strict_subterms = false;
Unification.modulo_betaiota = true;
Unification.modulo_eta = true;
Unification.allow_K_in_toplevel_higher_order_unification = true
@@ -335,6 +337,7 @@ let general_rewrite_unif_flags () =
Unification.resolve_evars = true;
Unification.use_evars_pattern_unification = true;
Unification.frozen_evars = ExistentialSet.empty;
+ Unification.restrict_conv_on_strict_subterms = false;
Unification.modulo_betaiota = true;
Unification.modulo_eta = true;
Unification.allow_K_in_toplevel_higher_order_unification = true }