## Ats: A language that combines programming with theorem proving (2005)

### Cached

### Download Links

- [www.cs.bu.edu]
- [www.cs.bu.edu]
- [www.cs.bu.edu]
- [www.cs.bu.edu]
- [cs-pub.bu.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | of Lecture Notes in Computer Science |

Citations: | 15 - 0 self |

### BibTeX

@INPROCEEDINGS{Cui05ats:a,

author = {Sa Cui and Kevin Donnelly and Hongwei Xi},

title = {Ats: A language that combines programming with theorem proving},

booktitle = {of Lecture Notes in Computer Science},

year = {2005},

pages = {310--320},

publisher = {Springer}

}

### OpenURL

### Abstract

Abstract. ATS is a language with a highly expressive type system that supports a restricted form of dependent types in which programs are not allowed to appear in type expressions. The language is separated into two components: a proof language in which (inductive) proofs can be encoded as (total recursive) functions that are erased before execution, and a programming language for constructing programs to be evaluated. This separation enables a paradigm that combines programming with theorem proving. In this paper, we illustrate by example how this programming paradigm is supported in ATS.

### Citations

1631 | The Definition of Standard ML
- Milner, Tofte, et al.
- 1997
(Show Context)
Citation Context ...radigm that combines programming with theorem proving is supported in ATS. 4.1 Programming with Constraints The design of the concrete syntax of ATS is largely influenced by that of Standard ML (SML) =-=[12]-=-. Previously, we used following concrete syntax to define a datatype constructor list for forming a type for a list:sdatatype list (type, int) = {a:type} nil (a, 0) | {a:type, n:nat} cons (a, n+1) of ... |

558 | Lambda calculi with types
- Barendregt
- 1992
(Show Context)
Citation Context ...paradigm that combines programming with theorem proving. In this paper, we illustrate by example how this programming paradigm is supported in ATS. 1 Introduction The framework Pure Type System (PTS) =-=[1]-=- offers a simple and general approach to designing and formalizing type systems. However, PTS makes it difficult, especially, in the presence of dependent types to accommodate many common realistic pr... |

526 |
Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions
- Bertot, Castéran
- 2004
(Show Context)
Citation Context ...tions, supporting a paradigm that combines programming with theorem proving [5]. This is fundamentally different from the paradigm of extracting programs from proofs as is done in systems such as Coq =-=[2]-=- and NuPrl [6]. In ATS, proofs are completely erased before execution, while proofs in Coq, for example, are not. In addition, ATS allows the construction of programs involvingssorts σ ::= b | σ1 → σ2... |

313 |
Higher-order abstract syntax
- Pfenning, Elliott
- 1988
(Show Context)
Citation Context ...ataprops In this section we briefly outline a verified call-by-value evaluator for pure λcalculus. We begin by declaring a static sort to represent λ-terms via higher-order abstract syntax (h.o.a.s.) =-=[13]-=-. datasort tm = lm of (tm -> tm) | ap of (tm, tm) This syntax declares a datasort tm with two term constructors: lm which takes as its argument a function of sort tm → tm, and ap which takes as its ar... |

131 |
Fourier-Motzkin elimination and its dual
- Dantzig, Eaves
- 1973
(Show Context)
Citation Context ...s a list with a 1 In the current version of ATS, linear constraints on integers can be solved implicitly by a built-in decision procedure based on the approach of Fourier-Motzkin variable elimination =-=[8]-=-. However, the programmer is required to construct explicit proofs to handle nonlinear constraints.sdatasort mynat = Z | S of mynat dataprop ADD (mynat, mynat, mynat) = | {n:mynat} ADDbas (Z, n, n) //... |

103 |
Recursive types and type constraints in second-order lambda calculus
- Mendler
- 1987
(Show Context)
Citation Context ...type systems. However, PTS makes it difficult, especially, in the presence of dependent types to accommodate many common realistic programming features, such as general recursion [7], recursive types =-=[11]-=-, effects [10] (e.g., exceptions [9], references, input/output), etc. To address such limitations of PTS, the framework Applied Type System (ATS) [14] has been proposed to allow for designing and form... |

90 | Combining Programming with Theorem Proving
- Chen, Xi
- 2005
(Show Context)
Citation Context ...lso a theorem proving component in ATS [4] that allows the programmer to encode (inductive) proofs as (total recursive) functions, supporting a paradigm that combines programming with theorem proving =-=[5]-=-. This is fundamentally different from the paradigm of extracting programs from proofs as is done in systems such as Coq [2] and NuPrl [6]. In ATS, proofs are completely erased before execution, while... |

82 |
Constable et al., Implementing Mathematics with the NuPRL
- L
- 1986
(Show Context)
Citation Context ...ing a paradigm that combines programming with theorem proving [5]. This is fundamentally different from the paradigm of extracting programs from proofs as is done in systems such as Coq [2] and NuPrl =-=[6]-=-. In ATS, proofs are completely erased before execution, while proofs in Coq, for example, are not. In addition, ATS allows the construction of programs involvingssorts σ ::= b | σ1 → σ2 static terms ... |

50 | A variable typed logic of effects
- Honsell, Mason, et al.
- 1995
(Show Context)
Citation Context ...However, PTS makes it difficult, especially, in the presence of dependent types to accommodate many common realistic programming features, such as general recursion [7], recursive types [11], effects =-=[10]-=- (e.g., exceptions [9], references, input/output), etc. To address such limitations of PTS, the framework Applied Type System (ATS) [14] has been proposed to allow for designing and formalizing (advan... |

40 | Applied Type System (extended abstract
- Xi
(Show Context)
Citation Context ...s, such as general recursion [7], recursive types [11], effects [10] (e.g., exceptions [9], references, input/output), etc. To address such limitations of PTS, the framework Applied Type System (ATS) =-=[14]-=- has been proposed to allow for designing and formalizing (advanced) type systems in support of practical programming. The key salient feature of ATS lies in a complete separation of the statics, in w... |

36 |
Partial objects in constructive type theory
- Constable, Smith
- 1987
(Show Context)
Citation Context ...ning and formalizing type systems. However, PTS makes it difficult, especially, in the presence of dependent types to accommodate many common realistic programming features, such as general recursion =-=[7]-=-, recursive types [11], effects [10] (e.g., exceptions [9], references, input/output), etc. To address such limitations of PTS, the framework Applied Type System (ATS) [14] has been proposed to allow ... |

35 |
PX: A Computational Logic
- Hayashi, Nakano
- 1988
(Show Context)
Citation Context ...ifficult, especially, in the presence of dependent types to accommodate many common realistic programming features, such as general recursion [7], recursive types [11], effects [10] (e.g., exceptions =-=[9]-=-, references, input/output), etc. To address such limitations of PTS, the framework Applied Type System (ATS) [14] has been proposed to allow for designing and formalizing (advanced) type systems in s... |

30 | Safe Programming with Pointers through Stateful Views
- Zhu, Xi
- 2005
(Show Context)
Citation Context ...tive development. In ATS, a variety of programming paradigms are supported in a typeful manner, including functional programming, object-oriented programming [3], imperative programming with pointers =-=[16]-=- and modular programming. There is also a theorem proving component in ATS [4] that allows the programmer to encode (inductive) proofs as (total recursive) functions, supporting a paradigm that combin... |

5 | A typeful approach to object-oriented programming with multiple inheritance
- Chen, Shi, et al.
- 2004
(Show Context)
Citation Context ...m rooted in the framework ATS, is under active development. In ATS, a variety of programming paradigms are supported in a typeful manner, including functional programming, object-oriented programming =-=[3]-=-, imperative programming with pointers [16] and modular programming. There is also a theorem proving component in ATS [4] that allows the programmer to encode (inductive) proofs as (total recursive) f... |

4 |
Applied Type System, 2005. Available at: http://www.cs.bu.edu/~hwxi/ATS
- Xi
- 2003
(Show Context)
Citation Context ...act syntax for statics and dynamics of ATS effects (e.g., non-termination, exceptions, references), which on the other hand are difficult to properly address in Coq. The current implementation of ATS =-=[15]-=- is written in Objective Caml, which mainly consists of a type-checker and an interpreter, and a compiler from ATS to C is under active development. The entire implementation (including source code) i... |

3 | Ats/lf: a type system for constructing proofs as total functional programs
- Chen, Xi
- 2004
(Show Context)
Citation Context ... typeful manner, including functional programming, object-oriented programming [3], imperative programming with pointers [16] and modular programming. There is also a theorem proving component in ATS =-=[4]-=- that allows the programmer to encode (inductive) proofs as (total recursive) functions, supporting a paradigm that combines programming with theorem proving [5]. This is fundamentally different from ... |