Hybrid: reasoning with higher-order abstract syntax in coq and isabelle

  • Authors:
  • Amy P. Felty

  • Affiliations:
  • University of Ottawa, Ottawa, ON, Canada

  • Venue:
  • Proceedings of the third ACM SIGPLAN workshop on Mathematically structured functional programming
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present recent work on the Hybrid system, a logical framework for specifying and reasoning about languages and deductive systems. One of the main areas of application of this system is developing formal proofs of properties of programming languages. It is well-known that those languages that are formally proven to be sound can better provide a solid basis for building software systems that are reliable and secure. Hybrid is designed to exploit the advantages of higher-order abstract syntax within the well-understood setting of higher-order logic as implemented in a variety of general theorem proving systems. It is currently implemented in both Isabelle/HOL and Coq. Hybrid is definitional and introduces no new axioms. In particular, a de Bruijn representation of lambda-terms provides a definitional layer that allows the user to represent object languages using higher-order abstract syntax, while offering tools for reasoning about them at the higher level. We describe a variety of features of Hybrid, including two-level reasoning and inductive reasoning about open terms, and we present case studies to illustrate these features. We also discuss both classical and constructive versions of Hybrid.