aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugins/subtac/eterm.ml
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-04-08 20:23:46 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-04-08 20:23:46 +0000
commit870bc5c4badfa48556e473ad7b14c9d36b42d53d (patch)
tree4d050ab55045b7a10edac70b3c6723d248ac0f43 /plugins/subtac/eterm.ml
parent2b04a76fca80b7357a7ba40322f4c001d4e12cb4 (diff)
Experimental support for automatic destruction of recursive calls and
clearing of recursive protototypes in Program obligations. Relies on marking said prototypes with a particular constant and preprocessing obligation goals with an appropriate tactic. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12071 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'plugins/subtac/eterm.ml')
-rw-r--r--plugins/subtac/eterm.ml9
1 files changed, 3 insertions, 6 deletions
diff --git a/plugins/subtac/eterm.ml b/plugins/subtac/eterm.ml
index 00a69bba7..d65b520b6 100644
--- a/plugins/subtac/eterm.ml
+++ b/plugins/subtac/eterm.ml
@@ -92,7 +92,6 @@ let subst_vars acc n t =
(** Rewrite type of an evar ([ H1 : t1, ... Hn : tn |- concl ])
to a product : forall H1 : t1, ..., forall Hn : tn, concl.
Changes evars and hypothesis references to variable references.
- A little optimization: don't include unnecessary let-ins and their dependencies.
*)
let etype_of_evar evs hyps concl =
let rec aux acc n = function
@@ -104,11 +103,9 @@ let etype_of_evar evs hyps concl =
let trans' = Idset.union trans trans' in
(match copt with
Some c ->
-(* if noccurn 1 rest then lift (-1) rest, s', trans' *)
-(* else *)
- let c', s'', trans'' = subst_evar_constr evs n c in
- let c' = subst_vars acc 0 c' in
- mkNamedProd_or_LetIn (id, Some c', t'') rest,
+ let c', s'', trans'' = subst_evar_constr evs n c in
+ let c' = subst_vars acc 0 c' in
+ mkNamedProd_or_LetIn (id, Some c', t'') rest,
Intset.union s'' s',
Idset.union trans'' trans'
| None ->