CWS paper

Matthew Fluet Matthew Fluet <fluet@CS.Cornell.EDU>
Wed, 6 Dec 2000 16:00:54 -0500 (EST)


> I'm a bit confused by your analysis.  Here's what I understand after the latest
> modification.
> 
> RCont = Func U Jump U {bot}
> REnv = Func -> RCont

I think it will be 

REnv = (Func U Jump) -> RCont

because you want the rule:

R[let fun k <xi>* = e in e']p = R[e]p' V Gamma
 where Gamma = R[e']p and p' = Gamma(k)

> Here is your latest definition of <=l, which is a reflexive, transitive binary
> relation on RCont.
> 
> > bot <=l l' <=l l   forall l' in Label
> 
> I'm afraid I don't understand what this means.  Where is "l" quantified?  As
> best as I can make out, this says that every label is <=l every other label.
> I.E. the relation is pretty trivial.
> 
> Can you define <=l again for me?
> 
> Do you mean for <=l to be a partial order?

I want <=l to the partial order imposed on RCont when interpreted relative
to the label l.  The partial order on REnv is "pointwise" in the sense
that it's defined as:

Gamma1 <= Gamma2
iff
forall l in Label. Gamma1(l) <=l Gamma2(l)
                   where
                   bot <=l l' <=l l   forall l' in Label

So, (Func U Jump U {bot}, <=l) corresponds to the squashed powerset
domain, with bot for {}, l' for {l'} (where l' <> l), and l for everything
else.