## An operational approach to combining classical set theory and functional programming languages (1994)

### Cached

### Download Links

- [www.cs.sunysb.edu]
- [www.cs.stonybrook.edu]
- [www.cs.stonybrook.edu]
- [ftp.cs.indiana.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | In Theoretical Aspects of Computer Software, Lecture Notes in Computer Science |

Citations: | 4 - 2 self |

### BibTeX

@INPROCEEDINGS{Howe94anoperational,

author = {Douglas J. Howe and Scott D. Stoller},

title = {An operational approach to combining classical set theory and functional programming languages},

booktitle = {In Theoretical Aspects of Computer Software, Lecture Notes in Computer Science},

year = {1994},

pages = {36--55},

publisher = {Springer-Verlag}

}

### OpenURL

### Abstract

Abstract. We have designed a programming logic based on an integration of functional programming languages with classical set theory. The logic merges a classical view of equality with a constructive one by using equivalence classes, while at the same time allowing computation with representatives of equivalence classes. Given a programming language and its operational semantics, a logic is obtained by extending the language with the operators of set theory and classical logic, and extending the operational semantics with “evaluation ” rules for these new operators. This operational approach permits us to give a generic design. We give a general formalism for specifying evaluation semantics, and parameterize our design with respect to languages specifiable in this formalism. This allows us to prove, once and for all, important properties of the semantics such as the coherence of the treatment of equality. 1

### Citations

497 |
The calculus of constructions
- Coquand, Huet
- 1988
(Show Context)
Citation Context ...18]. Providing a highly expressive type system for functional programming languages.sTypes are a good way of organizing knowledge about functional programs. For example, the Calculus of Constructions =-=[7]-=- and Nuprl [6], have type systems rich enough to serve as specification languages for functional programs. Many of a program's properties can be expressed in its type, while in less expressive type sy... |

442 | Foundations of Constructive Analysis
- Bishop
- 1967
(Show Context)
Citation Context ...t when the definitions are appropriate and the reasoning is sufficiently constructive, a program can be extracted from a proof. This view is compatible with Bishop's style of constructive mathematics =-=[3]-=-. Mathematical modeling of programs and software systems. For example, we want to support at least the general kind of set-theoretic modeling used in the specification language Z [18]. Providing a hig... |

280 |
Constructive mathematics and computer programming
- Martin-Löf
- 1982
(Show Context)
Citation Context ...A) + F if a . oe, A . ff and oe 62 ff. We now give the rules for the auxiliary relation .. These rules capture the meaning-finding procedure described in the introduction. t + �� t . �� t + ff=-= t . ff (13)-=- t + c(s 1 ; : : : ; s n ) s 1 . oe 1 \Delta \Delta \Delta s n . oe n t . (i(c); (oe 1 ; : : : ; oe n )) (14) t + x : A: b A . oe dom(jOEj) = oe 8ae 2 oe: b[bae=x] . jOEj(ae) t . OE (15) In 15, jOEj(a... |

245 | The lazy lambda-calculus
- Abramsky
- 1990
(Show Context)
Citation Context ...ble with set-theoretic equality, and that equivalence classes can be given a computational interpretation. -- Congruence proof. Our program equivalence is a generalization of applicative bisimulation =-=[1]-=-. We prove it is a congruence using a new extension of the proof method introduced by the first author in [11]. The extension is needed to deal with typed -abstractions. There have been at two other r... |

207 |
HOL: A proof generating system for higher-order logic
- Gordon
- 1987
(Show Context)
Citation Context ... to serve as specification languages for functional programs. Many of a program's properties can be expressed in its type, while in less expressive type systems, such as the simple type theory of HOL =-=[9]-=-, almost all properties are formalized as a predicate over some simple type. As a suitable logic for these purposes, we propose an integration of a functional programming language with full classical ... |

187 |
Isabelle: The next 700 theorem provers
- Paulson
- 1990
(Show Context)
Citation Context ...for large-scale formal reasoning. There is a substantial body of experience supporting a positive answer. Variants of ZF have been successfully implemented and applied in the theorem-provers Isabelle =-=[15, 16]-=- and Ontic [14]. Experience with Nuprl is also relevant, since it shows that a high level of automation of reasoning can be achieved even when the logic strongly favours expressive power over the abil... |

159 |
The Z Notation
- Spivey
- 1989
(Show Context)
Citation Context ...ctive mathematics [3]. Mathematical modeling of programs and software systems. For example, we want to support at least the general kind of set-theoretic modeling used in the specification language Z =-=[18]-=-. Providing a highly expressive type system for functional programming languages.sTypes are a good way of organizing knowledge about functional programs. For example, the Calculus of Constructions [7]... |

109 |
et al. Implementing Mathematics with the Nuprl Proof Development System
- Constable
- 1986
(Show Context)
Citation Context ... a highly expressive type system for functional programming languages.sTypes are a good way of organizing knowledge about functional programs. For example, the Calculus of Constructions [7] and Nuprl =-=[6]-=-, have type systems rich enough to serve as specification languages for functional programs. Many of a program's properties can be expressed in its type, while in less expressive type systems, such as... |

101 | Equality in lazy computation systems
- Howe
(Show Context)
Citation Context ...d ordering). Adding an evaluation rule for " is straightforward. The natural notion of equality of programs with meanings is to take t = t 0 if t and t 0 have the same set as their meaning. Follo=-=wing [11], we-=- can also define another equality, which we will denote by ��, that is based directly on the operational semantics of P , is defined over all programs, and which justifies the usual kinds of equat... |

91 |
A language and axioms for explicit mathematics
- Feferman
- 1975
(Show Context)
Citation Context ...ped -abstractions. There have been at two other recent attempts to combine set theory with computation. In [2], Beeson extends to ZF set theory Feferman's idea for a classical model of his theory T 0 =-=[8]-=-. This might appear more general than our logic, since one can build function types containing untyped abstractions. For example, the type N ! N would contain the polymorphic identity x: x, and, in ge... |

67 | Logical and computational aspects of programming with sets/bags/lists
- Breazu-Tannen, Subrahmanyam
- 1991
(Show Context)
Citation Context ...ather conventional rule for proving termination of a recursive program by well-founded induction. The following aspects of our work are new. -- Computational interpretation of equivalence classes. In =-=[4]-=-, Breazu-Tannen and Subrahmanyam give a logic for reasoning about programs using structural recursion over data types involving constructors subject to some equations. Their idea, to assign a meaning ... |

48 | Set theory for verification: I. From foundations to functions
- Paulson
- 1993
(Show Context)
Citation Context ...for large-scale formal reasoning. There is a substantial body of experience supporting a positive answer. Variants of ZF have been successfully implemented and applied in the theorem-provers Isabelle =-=[15, 16]-=- and Ontic [14]. Experience with Nuprl is also relevant, since it shows that a high level of automation of reasoning can be achieved even when the logic strongly favours expressive power over the abil... |

47 |
Polymorphism is not Set-Theoretic
- Reynolds
- 1984
(Show Context)
Citation Context ...ese exist, the meaning of e is the set-theoretic pair (u 0 ; v 0 ). For functions we need to make a restriction. Assigning a set-theoretic meaning to polymorphic functions such as x: x is problematic =-=[17]-=-. We allow such programs, but do not give them a set-theoretic meaning, although they can appear in larger programs that do have a meaning. We could try to give a general account of the forms of funct... |

40 |
Ontic: A Knowledge Representation System for Mathematics
- McAllester
- 1987
(Show Context)
Citation Context ...mal reasoning. There is a substantial body of experience supporting a positive answer. Variants of ZF have been successfully implemented and applied in the theorem-provers Isabelle [15, 16] and Ontic =-=[14]-=-. Experience with Nuprl is also relevant, since it shows that a high level of automation of reasoning can be achieved even when the logic strongly favours expressive power over the ability to uniforml... |

17 |
On computational open-endedness in Martin-Löf’s type theory
- Howe
- 1991
(Show Context)
Citation Context ...theory are well-known, but there is no general agreement on what should go into a functional programming language. We give a formalism for specifying evaluation semantics, similar to the one given in =-=[12]-=-, and parameterize our account with respect to languages specifiable in this formalism. This allows us, for example, to prove, once and for all, such properties as congruence of equality and adequacy ... |

14 | Map theory
- Grue
- 1992
(Show Context)
Citation Context ...be understood as a function space in the traditional sense, since no function whose graph is in V can have a sufficiently large domain. Also, Beeson does not deal with equivalence classes. Map theory =-=[10] provides -=-an alternate foundation to set theory, in which everything is reduced to a "map". ZF set theory can be interpreted in map theory, and a function found inside the interpreted set theory is it... |

13 |
Towards a computation system based on set theory, Theoretical Computer Science 60
- Beeson
- 1988
(Show Context)
Citation Context ... proof method introduced by the first author in [11]. The extension is needed to deal with typed -abstractions. There have been at two other recent attempts to combine set theory with computation. In =-=[2]-=-, Beeson extends to ZF set theory Feferman's idea for a classical model of his theory T 0 [8]. This might appear more general than our logic, since one can build function types containing untyped abst... |

1 |
On extending computational adequacy by data abstraction
- Breazu-Tannen, Subrahmanyam
- 1992
(Show Context)
Citation Context ...d, since the equality in Q will be equality of pairs of integers. We might still be able to establish suitable representation independence results, but this will require considerable extra work. (See =-=[5]-=- for an approach along these lines.) This is not required in our setting, since in P we can give an implementation of Q by taking the obvious one in P 0 and using quotienting to make it respect the eq... |