aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorjforest2009-12-16 16:03:38 +0000
committerjforest2009-12-16 16:03:38 +0000
commitea9a239eefacf85338c1f0ca0d3dc144c7e7f20e (patch)
tree461e73186eda24e2155bb13ecc09782b181cd771 /plugins
parent3f6db8c182cc45272f1b9988db687bcdd0009ab1 (diff)
adding an option functional_induction_rewrite_dependent to make functional induction using not v8.2 version of subst. By default functional induction uses new version of subst
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12592 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'plugins')
-rw-r--r--plugins/funind/indfun.ml2
-rw-r--r--plugins/funind/indfun_common.ml13
-rw-r--r--plugins/funind/indfun_common.mli1
3 files changed, 15 insertions, 1 deletions
diff --git a/plugins/funind/indfun.ml b/plugins/funind/indfun.ml
index 5ab65583a0..38f4284415 100644
--- a/plugins/funind/indfun.ml
+++ b/plugins/funind/indfun.ml
@@ -110,7 +110,7 @@ let functional_induction with_clean c princl pat =
}
in
Tacticals.tclTHEN
- (Tacticals.tclMAP (fun id -> Tacticals.tclTRY (Equality.subst [id])) idl )
+ (Tacticals.tclMAP (fun id -> Tacticals.tclTRY (Equality.subst_gen (do_rewrite_dependent ()) [id])) idl )
(Hiddentac.h_reduce flag Tacticals.allHypsAndConcl)
g
else Tacticals.tclIDTAC g
diff --git a/plugins/funind/indfun_common.ml b/plugins/funind/indfun_common.ml
index fb1204c1f6..9c15d9d12e 100644
--- a/plugins/funind/indfun_common.ml
+++ b/plugins/funind/indfun_common.ml
@@ -483,9 +483,22 @@ let add_Function is_general f =
let pr_table () = pr_table !from_function
(*********************************)
(* Debuging *)
+let functional_induction_rewrite_dependent_proofs = ref true
let function_debug = ref false
open Goptions
+let functional_induction_rewrite_dependent_proofs_sig =
+ {
+ optsync = false;
+ optname = "functional induction rewrite dependent";
+ optkey = ["functional_induction_rewrite_dependent"];
+ optread = (fun () -> !functional_induction_rewrite_dependent_proofs);
+ optwrite = (fun b -> functional_induction_rewrite_dependent_proofs := b)
+ }
+let _ = declare_bool_option functional_induction_rewrite_dependent_proofs_sig
+
+let do_rewrite_dependent () = !functional_induction_rewrite_dependent_proofs = true
+
let function_debug_sig =
{
optsync = false;
diff --git a/plugins/funind/indfun_common.mli b/plugins/funind/indfun_common.mli
index 87d646ab89..6f6607fccc 100644
--- a/plugins/funind/indfun_common.mli
+++ b/plugins/funind/indfun_common.mli
@@ -111,6 +111,7 @@ val pr_table : unit -> Pp.std_ppcmds
(* val function_debug : bool ref *)
val do_observe : unit -> bool
+val do_rewrite_dependent : unit -> bool
(* To localize pb *)
exception Building_graph of exn