[POPLmark] List machine 2.0

Adam Chlipala adamc at hcoop.net
Wed Apr 16 00:01:40 EDT 2008


Andrew W. Appel wrote:
> Rob Dockins and I are happy to announce
>
> List Machine 2.0
> http://www.cs.princeton.edu/~appel/listmachine/2.0/
>
> in which we present a fully worked demonstration in Coq, comparing
> syntactic (progress/preservation) and semantic (very modal model) proofs
> of type soundness for a simple Typed Assembly Language.
>   

I've posted another semantic solution in Coq at:
    http://adam.chlipala.net/poplmark/listmach_ltamer.tgz

My solution is 454 lines (not using anything from the benchmark 
distribution besides those symbols exported from the [simple_tc_safety] 
module), including a good amount of type definition/theorem statement 
boilerplate copied from the definition of the [SIMPLE_TC_SAFETY] 
signature.  Every theorem is proved with a single tactic.  This leaves 
complicated compound tactics as fair game, but rules out brittle proofs 
that refer to dynamically generated names.

I define the meanings of types using the dead obvious logical relation.

One of the most tiresome parts of working with the formalization in 
[Machine] was that it forced me to think about step counts too much.  
I've found that co-inductive semantics hide all of that nitty-gritty 
nicely.  It would also be nice to remove the need to prove determinism 
of the step relation explicitly by making [step] a function.  Here I'm 
just trying to transfer what I've found to work well with higher-level 
languages, but I haven't seen any reason yet to doubt that the same 
approach won't transfer well to assembly language.


More information about the Poplmark mailing list