aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2007-09-25 09:01:24 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2007-09-25 09:01:24 +0000
commit25b260ab966d002c83f4b7778bcd71b762a302d8 (patch)
treeb18d64bebd32654d8e944e6d740bce46b0297828 /pretyping
parent544b277182f8ebbdf16216518068070b8b0e9c70 (diff)
Suppression de tous les alias de la forme x:=x dans la compilation du filtrage.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10140 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping')
-rw-r--r--pretyping/cases.ml7
1 files changed, 3 insertions, 4 deletions
diff --git a/pretyping/cases.ml b/pretyping/cases.ml
index 6ac1c8a16..fd8f24370 100644
--- a/pretyping/cases.ml
+++ b/pretyping/cases.ml
@@ -112,12 +112,11 @@ type alias_constr =
let mkSpecialLetInJudge j (na,(deppat,nondeppat,d,t)) =
{ uj_val =
- (match d with
+ (if isRel deppat then subst1 nondeppat j.uj_val
+ else match d with
| DepAlias -> mkLetIn (na,deppat,t,j.uj_val)
| NonDepAlias ->
- if (not (dependent (mkRel 1) j.uj_type))
- or (* A leaf: *) isRel deppat
- then
+ if (not (dependent (mkRel 1) j.uj_type)) then
(* The body of pat is not needed to type j - see *)
(* insert_aliases - and both deppat and nondeppat have the *)
(* same type, then one can freely substitute one by the other *)