Hostname: page-component-74656f9884-g96k6 Total loading time: 0 Render date: 2026-11-11T00:07:00.297Z Has data issue: false hasContentIssue false

Mechanizing proofs with logical relations – Kripke-style

Published online by Cambridge University Press:  02 August 2018

ANDREW CAVE
Affiliation:
School of Computer Science, McGill University, Montreal, Canada Email: acave1@cs.mcgill.ca, bpientka@cs.mcgill.ca
BRIGITTE PIENTKA
Affiliation:
School of Computer Science, McGill University, Montreal, Canada Email: acave1@cs.mcgill.ca, bpientka@cs.mcgill.ca
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Proofs with logical relations play a key role to establish rich properties such as normalization or contextual equivalence. They are also challenging to mechanize. In this paper, we describe two case studies using the proof environment Beluga: First, we explain the mechanization of the weak normalization proof for the simply typed lambda-calculus; second, we outline how to mechanize the completeness proof of algorithmic equality for simply typed lambda-terms where we reason about logically equivalent terms. The development of these proofs in Beluga relies on three key ingredients: (1) we encode lambda-terms together with their typing rules, operational semantics, algorithmic and declarative equality using higher order abstract syntax (HOAS) thereby avoiding the need to manipulate and deal with binders, renaming and substitutions, (2) we take advantage of Beluga's support for representing derivations that depend on assumptions and first-class contexts to directly state inductive properties such as logical relations and inductive proofs, (3) we exploit Beluga's rich equational theory for simultaneous substitutions; as a consequence, users do not need to establish and subsequently use substitution properties, and proofs are not cluttered with references to them. We believe these examples demonstrate that Beluga provides the right level of abstractions and primitives to mechanize challenging proofs using HOAS encodings. It also may serve as a valuable benchmark for other proof environments.

Information

Type
Paper
Copyright
Copyright © Cambridge University Press 2018