From 5eda8fb59597c7a39335d2eb99f44cd07b25433d Mon Sep 17 00:00:00 2001 From: Julien Forest Date: Thu, 21 Nov 2013 09:46:40 +0100 Subject: Add Acc_intro_generator on top of all wf function proof (much much faster execution) --- plugins/funind/Recdef.v | 2 ++ plugins/funind/recdef.ml | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'plugins/funind') diff --git a/plugins/funind/Recdef.v b/plugins/funind/Recdef.v index b2955e902..e28c845cc 100644 --- a/plugins/funind/Recdef.v +++ b/plugins/funind/Recdef.v @@ -46,3 +46,5 @@ intros m n; case (Compare_dec.le_gt_dec m n). intros h; exists n; [exact h | apply le_n]. intros h; exists m; [apply le_n | apply Lt.lt_le_weak; exact h]. Defined. + +Definition Acc_intro_generator_function := fun A R => @Acc_intro_generator A R 100. \ No newline at end of file diff --git a/plugins/funind/recdef.ml b/plugins/funind/recdef.ml index 64bf71ec6..68ac62838 100644 --- a/plugins/funind/recdef.ml +++ b/plugins/funind/recdef.ml @@ -139,6 +139,7 @@ let iter_ref () = let iter = function () -> (constr_of_global (delayed_force iter_ref)) let eq = function () -> (coq_base_constant "eq") let le_lt_SS = function () -> (constant ["Recdef"] "le_lt_SS") +let acc_intro_generator_function = function () -> (constant ["Recdef"] "Acc_intro_generator_function") let le_lt_n_Sm = function () -> (coq_base_constant "le_lt_n_Sm") let le_trans = function () -> (coq_base_constant "le_trans") let le_lt_trans = function () -> (coq_base_constant "le_lt_trans") @@ -276,7 +277,7 @@ let tclUSER tac is_mes l g = let tclUSER_if_not_mes concl_tac is_mes names_to_suppress = if is_mes then tclCOMPLETE (h_simplest_apply (delayed_force well_founded_ltof)) - else tclUSER concl_tac is_mes names_to_suppress + else tclTHEN (h_simplest_apply (delayed_force acc_intro_generator_function) ) (tclUSER concl_tac is_mes names_to_suppress) -- cgit v1.2.3