An encoding of "focused lambda-calculus" in Coq using higher-order
abstract syntax.

Author: Noam Zeilberger
Paper:
  "Focusing and Higher-order Abstract Syntax", POPL '08
  http://www.cs.cmu.edu/~noam/research/focusing-hoas.pdf

* Building the code
  -----------------
  Run "make".  You must have Coq installed on your machine.


* Description of modules
  ----------------------

  ArithLem.v                a few basic facts about arithmetic
  Debruijn2.v               encoding of "two-level" de Bruijn indices
  Debruijn2Facts.v          facts about de Bruijn indices
  Syntax.v                  syntax and type system
  Semantics.v               operational semantics
  Safety.v                  proof of type safety
  tctacs.v                  tactics to automate type-checking
  Examples.v                examples in focused lambda-calculus
