A two-level logic approach to reasoning about computations
Andrew Gacek, Dale Miller, Gopalan Nadathur

TL;DR
This paper introduces a two-level logical framework combining a specification logic for describing computational notions with a reasoning logic, G, for proving properties, implemented in the Abella theorem prover, to facilitate formal reasoning about computations.
Contribution
It presents a novel two-level logic approach with G and Abella for formal reasoning about computational specifications involving binding and scope.
Findings
Successfully encodes specification logic in G
Supports proofs by induction and co-induction
Demonstrates effectiveness with examples in Abella
Abstract
Relational descriptions have been used in formalizing diverse computational notions, including, for example, operational semantics, typing, and acceptance by non-deterministic machines. We therefore propose a (restricted) logical theory over relations as a language for specifying such notions. Our specification logic is further characterized by an ability to explicitly treat binding in object languages. Once such a logic is fixed, a natural next question is how we might prove theorems about specifications written in it. We propose to use a second logic, called a reasoning logic, for this purpose. A satisfactory reasoning logic should be able to completely encode the specification logic. Associated with the specification logic are various notions of binding: for quantifiers within formulas, for eigenvariables within sequents, and for abstractions within terms. To provide a natural…
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 · Semantic Web and Ontologies
