proofs

Janis Voigtlaender Janis Voigtlaender <voigt@orchid.inf.tu-dresden.de>
Thu, 18 Oct 2001 09:21:41 +0200 (MET DST)


I wrote:

> Rijk-Jan van Haaften writes:
> 
> > I used 3 main properties for the process:
> > ...
> > 2. Lifting local let definitions to a higher level
> > let
> >          f =
> >                  let
> >                          g = gExpr
> >                  in
> >                          fExpr
> > in
> >          expr
> > 
> > can be translated into
> > ...
>
> Care has to be taken if g (which might be bound outside this let-block) occurs 
> in expr, because with the translated version it is now bound to gExpr. 
Renaming 
> helps (for some unused g'):
> > let
> >          g' = gExpr
> >          f  = fExpr[g <- g']
> > in
> >          expr

Oops:

let
         g' = gExpr[g <- g']
         f  = fExpr[g <- g']
in
         expr

Hope, I got it right now.
Janis.

--
Janis Voigtlaender
http://wwwtcs.inf.tu-dresden.de/~voigt/
mailto:voigt@tcs.inf.tu-dresden.de