aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraspiwack2008-02-29 19:24:57 +0000
committeraspiwack2008-02-29 19:24:57 +0000
commit50d4df2da89461f280c302d032422856f8e77991 (patch)
tree01e93ea00fd08ae5d46add22d72679cd28e0aff4
parent855cc609d2888ef59d848ed688f02390811b28c7 (diff)
Petite modif pour pouvoir faire "intros until 0" qui introduit autant
que possible des variables qui ont déjà un nom joli tout plein. La conséquence c'est qu'on peut aussi faire "destruct 0" qui est vachement moins intéressant... Mais bon. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10610 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--pretyping/detyping.ml17
1 files changed, 15 insertions, 2 deletions
diff --git a/pretyping/detyping.ml b/pretyping/detyping.ml
index b6ec169254..34e6945584 100644
--- a/pretyping/detyping.ml
+++ b/pretyping/detyping.ml
@@ -192,11 +192,24 @@ let lookup_index_as_renamed env t n =
| Prod (name,_,c') ->
(match concrete_name (Some true) [] empty_names_context name c' with
(Name _,_) -> lookup n (d+1) c'
- | (Anonymous,_) -> if n=1 then Some d else lookup (n-1) (d+1) c')
+ | (Anonymous,_) ->
+ if n=0 then
+ Some (d-1)
+ else if n=1 then
+ Some d
+ else
+ lookup (n-1) (d+1) c')
| LetIn (name,_,_,c') ->
(match concrete_name (Some true) [] empty_names_context name c' with
| (Name _,_) -> lookup n (d+1) c'
- | (Anonymous,_) -> if n=1 then Some d else lookup (n-1) (d+1) c')
+ | (Anonymous,_) ->
+ if n=0 then
+ Some (d-1)
+ else if n=1 then
+ Some d
+ else
+ lookup (n-1) (d+1) c'
+ )
| Cast (c,_,_) -> lookup n d c
| _ -> None
in lookup n 1 t