aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2000-10-04 13:40:04 +0000
committerherbelin2000-10-04 13:40:04 +0000
commitd4567298bdf4e83f44fc1567448d68677eb8e9ca (patch)
treeb174d92c9da677030b1a78fbd295d19b3b788316
parent3ba261e48f2af4e878302951971a1d8ac6950e75 (diff)
Ajout LetIn dans prim_extractor
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@649 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--proofs/logic.ml12
1 files changed, 12 insertions, 0 deletions
diff --git a/proofs/logic.ml b/proofs/logic.ml
index aebc76539c..d7b67ba395 100644
--- a/proofs/logic.ml
+++ b/proofs/logic.ml
@@ -472,6 +472,10 @@ let prim_extractor subfun vl pft =
| IsProd (_,ty,_) ->
let cty = subst_vars vl ty in
mkLambda (Name id, cty, subfun (id::vl) spf)
+ | IsLetIn (_,b,ty,_) ->
+ let cb = subst_vars vl b in
+ let cty = subst_vars vl ty in
+ mkLetIn (Name id, cb, cty, subfun (id::vl) spf)
| _ -> error "incomplete proof!")
| { ref = Some (Prim { name = Intro_after; newids = [id]}, [spf]) } ->
@@ -479,6 +483,10 @@ let prim_extractor subfun vl pft =
| IsProd (_,ty,_) ->
let cty = subst_vars vl ty in
mkLambda (Name id, cty, subfun (id::vl) spf)
+ | IsLetIn (_,b,ty,_) ->
+ let cb = subst_vars vl b in
+ let cty = subst_vars vl ty in
+ mkLetIn (Name id, cb, cty, subfun (id::vl) spf)
| _ -> error "incomplete proof!")
| {ref=Some(Prim{name=Intro_replacing;hypspecs=[id]},[spf]) } ->
@@ -486,6 +494,10 @@ let prim_extractor subfun vl pft =
| IsProd (_,ty,_) ->
let cty = subst_vars vl ty in
mkLambda (Name id, cty, subfun (id::vl) spf)
+ | IsLetIn (_,b,ty,_) ->
+ let cb = subst_vars vl b in
+ let cty = subst_vars vl ty in
+ mkLetIn (Name id, cb, cty, subfun (id::vl) spf)
| _ -> error "incomplete proof!")
| {ref=Some(Prim{name=Fix;newids=[f];params=[Num(_,n)]},[spf]) } ->