The Open Calculus of Constructions (Part II): An Equational Type Theory with Dependent Types for Programming, Specification, and Interactive Theorem Proving

The open calculus of constructions integrates key features of Martin-Lof's type theory, the calculus of constructions, membership equational logic, and rewriting logic into a single uniform language. The two key ingredients are dependent function types and conditional rewriting modulo equational theories. We explore the open calculus of constructions as a uniform framework for programming, specification and interactive verification in an equational higher-order style. By having equational logic and rewriting logic as executable sublogics we preserve the advantages of a first-order semantic and logical framework and we provide a foundation for a broad spectrum of applications ranging from what could be called executable mathematics, involving symbolic computations and logical proofs, to software and system engineering applications, involving symbolic execution and analysis of nondeterministic and concurrent systems.

[1]  Vincent van Oostrom,et al.  Comparing Combinatory Reduction Systems and Higher-order Rewrite Systems , 1993, HOA.

[2]  Joseph R. Shoenfield The axioms of set theory , 1977 .

[3]  Bengt Nordström,et al.  Programming in Martin-Lo¨f's type theory: an introduction , 1990 .

[4]  Joseph A. Goguen,et al.  A hidden agenda , 2000, Theor. Comput. Sci..

[5]  P. Dybjer Inductive sets and families in Martin-Lo¨f's type theory and their set-theoretic semantics , 1991 .

[6]  Yasuyuki Tsukada,et al.  Martin-Löf's Type Theory as an Open-Ended Framework , 2001, Int. J. Found. Comput. Sci..

[7]  José Meseguer,et al.  A logical theory of concurrent objects and its realization in the Maude language , 1993 .

[8]  Mark Philip Jones Qualified types: theory and practice (ordering relation) , 1992 .

[9]  Christine Paulin-Mohring,et al.  Inductive Definitions in the system Coq - Rules and Properties , 1993, TLCA.

[10]  Alfred Tarski On well-ordered subsets of any set , 1939 .

[11]  José Meseguer,et al.  Conditioned Rewriting Logic as a United Model of Concurrency , 1992, Theor. Comput. Sci..

[12]  Frank Pfenning,et al.  Higher-order abstract syntax , 1988, PLDI '88.

[13]  Jean-Pierre Jouannaud,et al.  Abstract Data Type Systems , 1997, Theor. Comput. Sci..

[14]  Thierry Coquand,et al.  An Analysis of Girard's Paradox , 1986, LICS.

[15]  S. Feferman A Language and Axioms for Explicit Mathematics , 1975 .

[16]  Mark P. Jones Qualified Types: Theory and Practice , 1994 .

[17]  José Meseguer,et al.  The HOL/NuPRL Proof Translator (A Practical Approach to Formal Interoperability) , 2001, TPHOLs.

[18]  José Meseguer,et al.  Rewriting Logic as a Semantic Framework for Concurrency: a Progress Report , 1996, CONCUR.

[19]  T. Coquand,et al.  Metamathematical investigations of a calculus of constructions , 1989 .

[20]  Alejandro Ríos,et al.  A de Bruijn Notation for Higher-Order Rewriting , 2000, RTA.

[21]  John C. Reynolds,et al.  Polymorphism is not Set-Theoretic , 1984, Semantics of Data Types.

[22]  Eduardo Giménez,et al.  Codifying Guarded Definitions with Recursive Schemes , 1994, TYPES.

[23]  Jean-Pierre Jouannaud,et al.  The Calculus of algebraic Constructions , 1999, RTA.

[24]  Douglas J. Howe Semantic Foundations for Embedding HOL in Nuprl , 1996, AMAST.

[25]  Yiannis N. Moschovakis,et al.  Notes On Set Theory , 1994 .

[26]  J. Meseguer,et al.  Rewriting Logic as a Logical and Semantic Framework , 1996 .

[27]  T. Coquand Une théorie des constructions , 1985 .

[28]  José Meseguer,et al.  General logics and logical frameworks , 1994 .

[29]  Tobias Nipkow,et al.  Higher-order critical pairs , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[30]  Peter Csaba Ölveczky,et al.  Rewriting Logic as a Unifying Framework for Petri Nets , 2001, Unifying Petri Nets.

[31]  Thierry Coquand,et al.  Constructions: A Higher Order Proof System for Mechanizing Mathematics , 1985, European Conference on Computer Algebra.

[32]  Randy Pollack,et al.  Closure Under Alpha-Conversion , 1994, TYPES.

[33]  Mark P. Jones,et al.  Type Classes with Functional Dependencies , 2000, ESOP.

[34]  A. Tarski,et al.  Über unerreichbare Kardinalzahlen , 1938 .

[35]  Mark-Oliver Stehr,et al.  Programming, specification, and interactive theorem proving : towards a unified language based on equational logic, rewriting logic, and type theory , 2002 .

[36]  José Meseguer,et al.  Relating models of polymorphism , 1989, POPL '89.

[37]  Narciso Martí-Oliet,et al.  From Abstract Data Types to Logical Frameworks , 1994, COMPASS/ADT.

[38]  Alejandro Ríos,et al.  From Higher-Order to First-Order Rewriting , 2001, RTA.

[39]  Corrado Böhm,et al.  Automatic Synthesis of Typed Lambda-Programs on Term Algebras , 1985, Theor. Comput. Sci..

[40]  Gérard P. Huet,et al.  Constructive category theory , 2000, Proof, Language, and Interaction.

[41]  Carolyn L. Talcott,et al.  Plan in Maude: Specifying an Active Network Programming Language , 2004, WRLA.

[42]  Michael Beeson Towards a Computation System Based on Set Theory , 1988, Theor. Comput. Sci..

[43]  Zhaohui Luo,et al.  Computation and reasoning - a type theory for computer science , 1994, International series of monographs on computer science.

[44]  Rod M. Burstall,et al.  Computational category theory , 1988, Prentice Hall International Series in Computer Science.

[45]  Benjamin Werner,et al.  Sets in Types, Types in Sets , 1997, TACS.

[46]  Zhaohui Luo,et al.  A Unifying Theory of Dependent Types: The Schematic Approach , 1992, LFCS.

[47]  Frédéric Blanqui,et al.  Inductive types in the Calculus of Algebraic Constructions , 2003, Fundam. Informaticae.

[48]  Douglas J. Howe Importing Mathematics from HOL into Nuprl , 1996, TPHOLs.

[49]  David B. MacQueen Using dependent types to express modular structure , 1986, POPL '86.

[50]  Sam Lindley,et al.  Extensional Rewriting with Sums , 2007, TLCA.

[51]  Bengt Nordström,et al.  Programming in Martin-Löf's Type Theory , 1990 .

[52]  P. Martin-Löf An Intuitionistic Theory of Types: Predicative Part , 1975 .

[53]  Paul Hudak,et al.  Parametric type classes , 1992, LFP '92.

[54]  José Meseguer,et al.  Membership algebra as a logical framework for equational specification , 1997, WADT.

[55]  Jean-Pierre Jouannaud,et al.  Inductive-data-type systems , 2002, Theor. Comput. Sci..

[56]  Thierry Coquand,et al.  Infinite Objects in Type Theory , 1994, TYPES.

[57]  Lennart Augustsson,et al.  Cayenne—a language with dependent types , 1998, ICFP '98.

[58]  Butler W. Lampson,et al.  Pebble, a Kernel Language for Modules and Abstract Data Types , 1988, Inf. Comput..

[59]  Peter Dybjer,et al.  A Finite Axiomatization of Inductive-Recursive Definitions , 1999, TLCA.

[60]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[61]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[62]  Horst Reichel,et al.  An approach to object semantics based on terminal co-algebras , 1995, Mathematical Structures in Computer Science.

[63]  John C. Mitchell,et al.  Abstract types have existential types , 1985, POPL.

[64]  Philip Wadler,et al.  How to make ad-hoc polymorphism less ad hoc , 1989, POPL '89.

[65]  Scott D. Stoller,et al.  An Operational Approach to Combining Classical Set Theory and Functional Programming Languages , 1994, TACS.

[66]  Narciso Martí-Oliet,et al.  Towards Maude 2.0 , 2000, WRLA.

[67]  S. Maclane,et al.  Categories for the Working Mathematician , 1971 .

[68]  John C. Mitchell,et al.  Relating strands and multiset rewriting for security protocol analysis , 2000, Proceedings 13th IEEE Computer Security Foundations Workshop. CSFW-13.

[69]  Herman Geuvers,et al.  A Simple Model Construction for the Calculus of Constructions , 1995, TYPES.

[70]  Mark P. Jones A Theory of Qualified Types , 1994, Sci. Comput. Program..

[71]  Frédéric Blanqui Rewriting Modulo in Deduction Modulo , 2003, RTA.

[72]  José Meseguer,et al.  Specification and proof in membership equational logic , 2000, Theor. Comput. Sci..

[73]  Klaus Grue,et al.  Map Theory , 1992, Theor. Comput. Sci..

[74]  Thierry Coquand,et al.  Inductively defined types , 1988, Conference on Computer Logic.

[75]  S. Allen A Non-Type-Theoretic Semantics for Type-Theoretic Language , 1987 .

[76]  Piotr Rudnicki,et al.  On Equivalents of Well-Foundedness , 1999, Journal of Automated Reasoning.

[77]  José Meseguer,et al.  Pure Type Systems in Rewriting Logic: Specifying Typed Higher-Order Languages in a First-Order Logical Framework , 2004, Essays in Memory of Ole-Johan Dahl.

[78]  Zhaohui Luo,et al.  A Higher-Order Calculus and Theory Abstraction , 1991, Inf. Comput..

[79]  Douglas J. Howe A Type Annotation Scheme for Nuprl , 1998, TPHOLs.

[80]  Hartmut Ehrig,et al.  Unifying Petri Nets , 2001, Lecture Notes in Computer Science.

[81]  Jean-Pierre Jouannaud,et al.  Higher-order recursive path orderings , 1998 .

[82]  J. Meseguer,et al.  Order-Sorted Algebra Solves the Constructor-Selector, Multiple Representation, and Coercion Problems , 1993, Inf. Comput..

[83]  Mark-Oliver Stehr,et al.  Revisiting the Algebra of Petri Net Processes under the Collective Token Philosophy , 2002, Fundam. Informaticae.

[84]  Mark-Oliver Stehr,et al.  Representing the MSR Cryptoprotocol Specification Language in an Extension of Rewriting Logic with Dependent Types , 2004, WRLA.