[POPLmark] Adequacy for LF

Karl Crary crary at cs.cmu.edu
Mon May 2 20:09:11 EDT 2005


There's been some confusion about the adequacy of our encoding of the 
operational semantics; in particular, why our encoding is adequate, 
given that the paper presents the semantics using evaluation contexts 
and our encoding does not.  We wanted to clarify why it is adequate, and 
moreover, why we thought its adequacy was obvious.

The central point is the definition of adequacy.  Following the original 
paper on LF, we say that an encoding is adequate exactly when it defines 
a bijection between constructs in the object language and canonical 
forms (of appropriate type in an appropriate context) in LF, and that 
bijection respects substitution.

Why is this the right definition?  Since the set of object language 
terms/derivations and the set of LF canonical forms are entirely 
different sets, they can only be meaningfully related by isomorphism.  
And, since the only structure in this setting is substitution, an 
isomorphism is a bijection that respects substitution.  That's all:  To 
claim that an encoding of the operational semantics should "use 
evaluation contexts" is like saying that any group isomorphic to Z_k 
needs to "use addition."  Getting rid of such unimportant presentation 
details is exactly what isomorphisms are all about.

If we agree on this definition, then it is very easy to see that the 
encoding is adequate.  (Easier than usual, actually.)  Observe that, in 
the object language, there is exactly one derivation for derivable 
evaluation judgements.  Similarly, for any E1 and E2, there is at most 
one canonical form belonging to "step E1 E2".  Thus, the object language 
and its encoding are in isomorphism provided they agree on the 
judgement's graph.  We believe the latter is obvious (although to be 
rigorous would require an inductive proof).

    -- Karl and Bob




More information about the Poplmark mailing list