Companion code to
   Focusing on Binding and Computation
   Daniel R. Licata, Noam Zeilberger, Robert Harper
   LICS, 2008

Language.agda:		The language definition
StructuralGamma.agda:	Weakening and subst for normal assumptions
Sugar.agda:		Derived forms

rulestruct:		Structural properties for the rule context
rulestruct/Subord.agda: Definitions
           CISEmbed.agda,
	   NSDiff.agda,
		
rulestruct/Transport.agda: Weakening and strengthening of insubordinates
rulestruct/Weaken.agda:	   Weakening with computational insubordinates
rulestruct/Subst.agda:	   Substitution


******
Notes: 
******

- One of the definitions in Subord.agda is coinductive, so you'll need a 
  recent enough version of Agda that it supports this

- The rule structural properties in rulestruct don't pass the
  termination checker.  They follow the same recursion pattern that is
  usually used to prove the identity theorem.  It should be possible to
  pass an accessibility predicate around and induct on the usual type
  subformula relation, in which case these operations would be
  terminating when this relation is well-founded.  Alternatively, I
  conjecture that if you view expressions coinductively, then they're
  always productive (but I haven't tried this in Agda yet).
