Reasoning about computations using two-levels of logic

  • Authors:
  • Dale Miller

  • Affiliations:
  • INRIA Saclay & LIX, École Polytechnique, Palaiseau, France

  • Venue:
  • APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe an approach to using one logic to reason about specifications written in a second logic. One level of logic, called the "reasoning logic", is used to state theorems about computational specifications. This logic is classical or intuitionistic and should contain strong proof principles such as induction and co-induction. The second level of logic, called the "specification logic", is used to specify computation. While computation can be specified using a number of formal techniques--e.g., Petri nets, process calculus, and state machines--we shall illustrate the merits and challenges of using logic programming-like specifications of computation.