Combining programming with theorem proving

Applied Type System (ATS) is recently proposed as a framework for designing and formalizing (advanced) type systems in support of practical programming. In ATS, the definition of type equality involves a constraint relation, which may or may not be algorithmically decidable. To support practical programming, we adopted a design in the past that imposes certain restrictions on the syntactic form of constraints so that some effective means can be found for solving constraints automatically. Evidently, this is a rather em ad hoc design in its nature. In this design, which we claim to be both novel and practical. Instead of imposing syntactical restrictions on constraints, we provide a means for the programmer to construct proofs that attest to the validity of constraints. In particular, we are to accommodate a programming paradigm that enables the programmer to combine programming with theorem proving. Also we present some concrete examples in support of the practicality of this design.

[1]  George B. Dantzig,et al.  Fourier-Motzkin Elimination and Its Dual , 1973, J. Comb. Theory, Ser. A.

[2]  Per Martin-Löf,et al.  Intuitionistic type theory , 1984, Studies in proof theory.

[3]  P. Medawar A view from the left , 1984, Nature.

[4]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

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

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

[7]  Christine C. Paulin Extraction de programmes dans le calcul des constructions , 1989 .

[8]  Christine Paulin-Mohring Extraction de programmes dans le Calcul des Constructions. (Program Extraction in the Calculus of Constructions) , 1989 .

[9]  Robin Milner,et al.  Definition of standard ML , 1990 .

[10]  Amy P. Felty,et al.  The Coq proof assistant user's guide : version 5.6 , 1990 .

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

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

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

[14]  David B. MacQueen,et al.  The Definition of Standard ML (Revised) , 1997 .

[15]  H. Xi,et al.  Applied Type System with Stateful Views ∗ , 1998 .

[16]  Hongwei Xi,et al.  Dead Code Elimination through Dependent Types , 1999, PADL.

[17]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[18]  Hongwei Xi Dependent Types for Program Termination Verification , 2002, High. Order Symb. Comput..

[19]  Conor McBride Faking it: Simulating dependent types in Haskell , 2002, J. Funct. Program..

[20]  Hongwei Xi,et al.  Dependently Typed Pattern Matching , 2003 .

[21]  Hongwei Xi,et al.  Applied Type System: Extended Abstract , 2003, TYPES.

[22]  Gang Chen,et al.  Guarded recursive datatype constructors , 2003, POPL '03.

[23]  W. Miller Faking It , 2003 .

[24]  Conor McBride,et al.  The view from the left , 2004, Journal of Functional Programming.

[25]  H. Xi,et al.  Views , Types and Viewtypes ∗ , 2004 .

[26]  Chiyan Chen,et al.  Implementing Cut Elimination: A Case Study of Simulating Dependent Types in Haskell , 2004, PADL.

[27]  Tim Sheard,et al.  WHAT IS A PROOF , 2005 .

[28]  Zhong Shao,et al.  A type system for certified binaries , 2005, TOPL.

[29]  Combining programming with theorem proving , 2005, ICFP.