Harpoon: Mechanizing Metatheory Interactively

Abstract Beluga is a proof checker that provides sophisticated infrastructure for implementing formal systems with the logical framework LF and proving metatheoretic properties as total, recursive functions transforming LF derivations. In this paper, we describe Harpoon , an interactive proof engine...

Full description

Bibliographic Details
Main Authors: Errington, Jacob, Jang, Junyoung, Pientka, Brigitte
Format: Book Part
Language:unknown
Published: Springer International Publishing 2021
Subjects:
Online Access:http://dx.doi.org/10.1007/978-3-030-79876-5_38
https://link.springer.com/content/pdf/10.1007/978-3-030-79876-5_38
Description
Summary:Abstract Beluga is a proof checker that provides sophisticated infrastructure for implementing formal systems with the logical framework LF and proving metatheoretic properties as total, recursive functions transforming LF derivations. In this paper, we describe Harpoon , an interactive proof engine built on top of Beluga . It allows users to develop proofs interactively using a small, fixed set of high-level actions that safely transform a subgoal. A sequence of actions elaborates into a (partial) proof script that serves as an intermediate representation describing an assertion-level proof. Last, a proof script translates into a Beluga program which can be type-checked independently. Harpoon is available on GitHub. We have used Harpoon to replay a wide array of examples covering all features supported by Beluga . In particular, we have used it for normalization proofs, including the recently proposed POPLMark reloaded challenge.