aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/tactics.ml
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2001-10-23 10:50:24 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2001-10-23 10:50:24 +0000
commit15e870b406ee5ab5f39cb5e8bf5cc90c2a7e7124 (patch)
treeb784b3cb8cb77a3ae8f52fbd3cd80aec09fa285c /tactics/tactics.ml
parenta5b3d9a4486c176d76926d824f2386988d3edd7b (diff)
Bug Induction (prise en compte let-in + ordre des dépendances dans thin)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2134 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics/tactics.ml')
-rw-r--r--tactics/tactics.ml9
1 files changed, 6 insertions, 3 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml
index 04d7b10c1..de1893c3c 100644
--- a/tactics/tactics.ml
+++ b/tactics/tactics.ml
@@ -1440,8 +1440,10 @@ let induction_from_context isrec style hyp0 gl =
let (statlists,lhyp0,indhyps,deps) = cook_sign hyp0 indvars env in
let tmpcl = it_mkNamedProd_or_LetIn (pf_concl gl) deps in
let lr = compute_elim_signature_and_roughly_check elimt mind in
- let dephyps = List.rev (List.map (fun (id,_,_) -> id) deps) in
- let args = List.map mkVar dephyps in
+ let dephyps = List.map (fun (id,_,_) -> id) deps in
+ let args =
+ List.fold_left
+ (fun a (id,b,_) -> if b = None then (mkVar id)::a else a) [] deps in
(* Magistral effet de bord: si hyp0 a des arguments, ceux d'entre
eux qui ouvrent de nouveaux buts arrivent en premier dans la
@@ -1462,7 +1464,8 @@ let induction_from_context isrec style hyp0 gl =
(induction_tac hyp0 typ0 (elimc,elimt))
(thin (hyp0::indhyps)))
(List.map
- (induct_discharge style mind statlists hyp0 lhyp0 dephyps) lr)
+ (induct_discharge style mind statlists hyp0 lhyp0
+ (List.rev dephyps)) lr)
tclIDTAC ]
gl