Making Logical Relations More Relatable (Proof Pearl)
Emmanuel Su\'arez Acevedo, Stephanie Weirich

TL;DR
This paper demonstrates that logical relations proofs, typically tedious, can be simplified and mechanized in Agda, making complex proofs like normalization more accessible for programming language theorists.
Contribution
It introduces a concise Agda formalization for logical relations proofs, including evaluation and normalization, enhancing understanding and teaching of these techniques.
Findings
Formalization is remarkably short (~40 lines)
Proofs extend to normalization by evaluation
Mechanized proofs are accessible and illustrative
Abstract
Mechanical proofs by logical relations often involve tedious reasoning about substitution. In this paper, we show that this is not necessarily the case, by developing, in Agda, a proof that all simply typed lambda calculus expressions evaluate to values. A formalization of the proof is remarkably short (~40 lines of code), making for an excellent introduction to the technique of proofs by logical relations not only on paper but also in a mechanized setting. We then show that this process extends to more sophisticated reasoning by also proving the totality of normalization by evaluation. Although these proofs are not new, we believe presenting them will empower both new and experienced programming language theorists in their use of logical relations.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Semantic Web and Ontologies · Logic, Reasoning, and Knowledge
