Dependent Pearl: Normalization by realizability
Pierre-\'Evariste Dagand, Lionel Rieg, Gabriel Scherer

TL;DR
This paper presents a dependently-typed program that models normalization proofs for the simply-typed lambda calculus with sums using Krivine's realizability, making semantic proof techniques more accessible.
Contribution
It offers a novel dependently-typed implementation of normalization by realizability, illustrating how evaluation order is influenced by reducibility predicate definitions.
Findings
Normalization corresponds to an evaluation procedure in the dependently-typed program.
Choices in defining reducibility predicates affect evaluation order and behavior.
The approach provides an accessible, programmatic perspective on semantic proof techniques.
Abstract
For those of us who generally live in the world of syntax, semantic proof techniques such as reducibility, realizability or logical relations seem somewhat magical despite -- or perhaps due to -- their seemingly unreasonable effectiveness. Why do they work? At which point in the proof is "the real work" done? Hoping to build a programming intuition of these proofs, we implement a normalization argument for the simply-typed lambda-calculus with sums: instead of a proof, it is described as a program in a dependently-typed meta-language. The semantic technique we set out to study is Krivine's classical realizability, which amounts to a proof-relevant presentation of reducibility arguments -- unary logical relations. Reducibility assigns a predicate to each type, realizability assigns a set of realizers, which are abstract machines that extend lambda-terms with a first-class notion of…
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 · Logic, Reasoning, and Knowledge · Formal Methods in Verification
