This will be a formalization of Nominal Adapton's lambda calculus (as depicted in section 4 of the OOPSLA'15 paper Incremental Computation with Names by Hammer et al.) in Agda. The end goal will be to formalize the proof of from-scratch consistency, as given in the paper's appendix.
- The original Adapton's lambda calculus is mostly encoded.
- Part of the common big-step operational semantics is encoded.
- Started on type checking procedure.
- All of the nominal stuff (and its new type system)
- Finish encoding big-step operational semantics (try both relational and functional).
- Finish type checking.
- Prove type soundness.
- Work on from-scratch consistency proof.
- AdaptonExamples
- Examples of Adapton programs.
- Type
- Defines Adapton's types and operations on them.
- Term
- Defines untyped terms, terminal values, and operations on them.
- TypedTerm
- Defines well-typed terms in Curry style and Church style (in submodule Church).
- Evaluation
- Encoding of big-step operational semantics.
- Sandro Stucki. system-f-agda. https://github.com/sstucki/system-f-agda
- Ulf Norell and James Chapman. Dependently Typed Programming in Agda. http://www.cse.chalmers.se/~ulfn/papers/afp08/tutorial.pdf
- Hammer et al. Adapton. http://arxiv.org/pdf/1503.07792v5.pdf
- Hammer et al. Nominal Adapton. http://www.cs.umd.edu/~hammer/adapton/adapton-pldi2014.pdf
- Paul Levy. A tutorial on call-by-push-value. http://cs.ioc.ee/efftt/levy-slides.pdf
- Fransesco Mazzoli. Agda by Example: lambda-calculus. http://mazzo.li/posts/Lambda.html
- Jan Malakhovski. Brutal [Meta]Introduction to Dependent Types in Agda. http://oxij.org/note/BrutalDepTypes/