## NuPRL’s class theory and its applications (2000)

Venue: | Foundations of Secure Computation, NATO ASI Series, Series F: Computer & System Sciences |

Citations: | 15 - 7 self |

### BibTeX

@INPROCEEDINGS{Constable00nuprl’sclass,

author = {Robert L. Constable and Jason Hickey},

title = {NuPRL’s class theory and its applications},

booktitle = {Foundations of Secure Computation, NATO ASI Series, Series F: Computer & System Sciences},

year = {2000},

pages = {91--116},

publisher = {IOS Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

This article presents a theory of classes and inheritance built on top of constructive type theory. Classes are defined using dependent and very dependent function types that are found in the Nuprl constructive type theory. Inheritance is defined in terms of a general subtyping relation over the underlying types. Among the basic types is the intersection type which plays a critical role in the applications because it provides a method of composing program components. The class theory is applied to defining algebraic structures such as monoids, groups, rings, etc. and relating them. It is also used to define communications protocols as infinite state automata. The article illustrates the role of these formal automata in defining the services of a distributed group communications system. In both applications the inheritance mechanisms allow reuse of proofs and the statement of general properties of system composition. 1

### Citations

1542 |
Distributed Algorithms
- Lynch
- 1996
(Show Context)
Citation Context ...define a form of composition that preserves safety properties, that is state invariants and properties of individual traces of the automaton. Composition of automata is discussed extensively by Lynch =-=[37]-=-, and she states a number of theorems that relate the traces of a composition to the traces of the components. Composition identifies actions with the same name in different 3 Lynch and Tuttle also la... |

892 | A Theory of Objects
- Abadi, Cardelli
- 1996
(Show Context)
Citation Context .... We could borrow the idea from set theory that a class is a “large collection”, one too large to be considered a set (see for example Bernays [7]). We could follow the work on a semantics of objects =-=[1, 2, 11, 12, 14, 43, 28]-=-. In our theory this corresponds to taking classes as “large types”, i.e. types which contain types as members, in proper elements of universe, U2. We follow instead the idea from algebra and programm... |

537 | Conjoining Specifications
- Abadi, Lamport
- 1995
(Show Context)
Citation Context ... the all-viewsp variables of the view and view msg automata. The properties of EVS are the conjunction of the properties of the three parts, forming a complete specification of EVS.Abadi and Lamport =-=[3]-=- have explored composition in TLA using assume-guarantee specifications. We describe our systems with automata, rather than a temporal logic like TLA, because we can use a single language to represent... |

443 |
The formulae-as-types notion of construction
- Howard
- 1980
(Show Context)
Citation Context ...d. The inhabitants of a proposition are mathematical objects that provide evidence for the truth of the proposition. This approach to propositions is related to the so-called Curry-Howard isomorphism =-=[26, 33]-=- between propositions and types. But the correspondance is elevated in our type theory to the status of a definition. The Curry-Howard isomorphism explains why the definition is sensible for Heyting’s... |

342 |
Intuitionistic type theory
- Martin-Löf
- 1984
(Show Context)
Citation Context ... are discussed extensively by Allen [4] and Constable [18]. We use them later to define records and classes. 2.8 Propositions as types One of the key distinguishing features of Martin-Löf type theory =-=[39, 40, 41]-=- and the Nuprl type theory [19, 17, 18] is that propositions are considered to be types, and a proposition is true iff it is inhabited. The inhabitants of a proposition are mathematical objects that p... |

269 |
Constructive mathematics and computer programming
- Martin-Löf
- 1982
(Show Context)
Citation Context ...ypes built from the atomic types by the operations we have defined form a type called a universe. A universe is an example of a “large type” — a type whose members include types. Following Martin-Löf =-=[40]-=- we consider a hierarchy of universes, U1, U2, . . . Each Ui belongs to all Uj with j > i, and the hierarchy is cumulative, i.e. Ui ⊑ Ui+1. We treat universe indexes ambiguously, writing Ui to denote ... |

267 | A type-theoretic approach to higher-order modules with sharing
- Harper, Lillibridge
- 1994
(Show Context)
Citation Context ...ct-oriented programming. What we observe is that although it has been difficult to provide a clean mathematical foundation for all aspects of object-oriented programming (see the attempts by Cardelli =-=[13, 29, 30]-=-), nevertheless we can account elegantly for the concepts of class and method. 2 Types 2.1 The Core Theory Type theory is one of the most successful foundational theories for computer science [18, 17,... |

159 |
An intuitionistic theory of types: predicative part. Logic Colloquium
- Martin-Löf
- 1973
(Show Context)
Citation Context ... are discussed extensively by Allen [4] and Constable [18]. We use them later to define records and classes. 2.8 Propositions as types One of the key distinguishing features of Martin-Löf type theory =-=[39, 40, 41]-=- and the Nuprl type theory [19, 17, 18] is that propositions are considered to be types, and a proposition is true iff it is inhabited. The inhabitants of a proposition are mathematical objects that p... |

158 | Simple type-theoretic foundations for object-oriented programming
- Pierce, Turner
- 1994
(Show Context)
Citation Context .... We could borrow the idea from set theory that a class is a “large collection”, one too large to be considered a set (see for example Bernays [7]). We could follow the work on a semantics of objects =-=[1, 2, 11, 12, 14, 43, 28]-=-. In our theory this corresponds to taking classes as “large types”, i.e. types which contain types as members, in proper elements of universe, U2. We follow instead the idea from algebra and programm... |

142 | Operations on records
- Cardelli, Mitchell
- 1989
(Show Context)
Citation Context .... We could borrow the idea from set theory that a class is a “large collection”, one too large to be considered a set (see for example Bernays [7]). We could follow the work on a semantics of objects =-=[1, 2, 11, 12, 14, 43, 28]-=-. In our theory this corresponds to taking classes as “large types”, i.e. types which contain types as members, in proper elements of universe, U2. We follow instead the idea from algebra and programm... |

102 |
Proofs as Programs
- Bates, Constable
- 1982
(Show Context)
Citation Context ...of such languages, as work on ML illustrates. Type theory also guides the compilation of languages such as ML, Haskell, and Java. It provides the basis for programming logics and program verification =-=[22, 5, 46, 23]-=-. These solutions are not “perfect”, and there is more work to be done as better programming languages are designed. One reason for the constant evolution of programming languages is that there is a f... |

102 | On the type structure of Standard ML
- Harper, Mitchell
- 1993
(Show Context)
Citation Context ...ct-oriented programming. What we observe is that although it has been difficult to provide a clean mathematical foundation for all aspects of object-oriented programming (see the attempts by Cardelli =-=[13, 29, 30]-=-), nevertheless we can account elegantly for the concepts of class and method. 2 Types 2.1 The Core Theory Type theory is one of the most successful foundational theories for computer science [18, 17,... |

87 |
A modest model of records, inheritance, and bounded quantification
- Bruce, Longo
(Show Context)
Citation Context |

74 |
Implementing Mathematics with the Nuprl Development System
- Constable
- 1986
(Show Context)
Citation Context ... and Constable [18]. We use them later to define records and classes. 2.8 Propositions as types One of the key distinguishing features of Martin-Löf type theory [39, 40, 41] and the Nuprl type theory =-=[19, 17, 18]-=- is that propositions are considered to be types, and a proposition is true iff it is inhabited. The inhabitants of a proposition are mathematical objects that provide evidence for the truth of the pr... |

74 | Building Reliable, High-Performance Communication Systems from Components
- Liu, Kreitz, et al.
- 1999
(Show Context)
Citation Context ...ord calculus can be used to formally describe software systems by composition from components. We illustrate this by describing the service specifications for the Ensemble group communication systems =-=[36]-=-. These specifications are based on IO automata - a formalism extensively studied by Lynch and Tuttle [38]. We start with a formal specification of these automata as non-deterministic transition syste... |

70 |
Notes on data structuring
- Hoare
- 1972
(Show Context)
Citation Context ...matical and computational considerations. So we will see a tight relationship to the notion of type in programming languages. The notes by C.A.R. Hoare, Notes on Data Structuring, make the point well =-=[32]-=-. 2.3 Cartesian products If A and B are types, then so is their Cartesian product, written A × B. There will be many formation rules like this, telling us how to construct new types from existing ones... |

62 |
PER models of subtyping, recursive types and higher-order polymorphism
- Bruce, Mitchell
- 1992
(Show Context)
Citation Context |

41 | Constructing specification morphisms
- Smith
- 1993
(Show Context)
Citation Context ...egorical Operations There are categorical constructions, such as colimits, that can be used to unite theories. The Designware and Specware systems developed by Kestrel Inc are based on these concepts =-=[44, 45]-=-. We can mimic these constructions using our record calculus. Here is how we treat the basic example from the articles written by Doug Smith. Consider two structures over E with a binary relation (dec... |

40 | Decidability of higher-order subtyping with intersection types
- Compagnoni
- 1994
(Show Context)
Citation Context ... Given two types A and B, it makes sense to consider the elements they have in common; we call that type the intersection of A and B, written A ∩ B. This type constructor has been extensively studied =-=[6, 15, 21]-=-. We require that (a = b in A ∩ B) iff a = b in A and a = b in B. For example, it is clear that void ∩ A is void for any type A and A ∩ A is A. It might be a suprise that (1 → 1) ∩ (void → void) is no... |

38 | Baby Modula-3 and a theory of objects
- Abadi
(Show Context)
Citation Context |

38 | Extensible records in a pure calculus of subtyping
- Cardelli
- 1994
(Show Context)
Citation Context ...ct-oriented programming. What we observe is that although it has been difficult to provide a clean mathematical foundation for all aspects of object-oriented programming (see the attempts by Cardelli =-=[13, 29, 30]-=-), nevertheless we can account elegantly for the concepts of class and method. 2 Types 2.1 The Core Theory Type theory is one of the most successful foundational theories for computer science [18, 17,... |

34 | Toward a classification approach to design
- Smith
- 1996
(Show Context)
Citation Context ...egorical Operations There are categorical constructions, such as colimits, that can be used to unite theories. The Designware and Specware systems developed by Kestrel Inc are based on these concepts =-=[44, 45]-=-. We can mimic these constructions using our record calculus. Here is how we treat the basic example from the articles written by Doug Smith. Consider two structures over E with a binary relation (dec... |

32 |
A non-type-theoretic definition of Martin-Lof's types
- Allen
- 1987
(Show Context)
Citation Context ....e. Ui ⊑ Ui+1. We treat universe indexes ambiguously, writing Ui to denote any universe. We sometimes write T ype when the universe level is not critical. Universes are discussed extensively by Allen =-=[4]-=- and Constable [18]. We use them later to define records and classes. 2.8 Propositions as types One of the key distinguishing features of Martin-Löf type theory [39, 40, 41] and the Nuprl type theory ... |

32 |
Axiomatic set theory
- Bernays
- 1991
(Show Context)
Citation Context ...ction 2, there is more than one natural idea of a “class”. We could borrow the idea from set theory that a class is a “large collection”, one too large to be considered a set (see for example Bernays =-=[7]-=-). We could follow the work on a semantics of objects [1, 2, 11, 12, 14, 43, 28]. In our theory this corresponds to taking classes as “large types”, i.e. types which contain types as members, in prope... |

29 | Formal objects in type theory using very dependent types
- Hickey
- 1996
(Show Context)
Citation Context ... ideas requires explaining the starting point; we do that in the section on types. The new ideas are based on a definition of records and dependent records that we started exploring several years ago =-=[18, 25, 31]-=- and is related to recent work in Martin-Löf type theory [8]. This is the subject of section 3, Classes. Class theory provides the basis for formalizing objectoriented concepts such as classes and inh... |

29 | Semantic foundations for embedding HOL in Nuprl
- Howe
- 1996
(Show Context)
Citation Context ... example, we will see later that intersection, ∩x : A.B, makes sense as a kind of universal quantifier. We use P ropi as a synonym for T ypei. We also abbreviate P rop as P. Classical Nuprl Doug Howe =-=[34, 35]-=- has shown that Nuprl, as presented here, is consistent if we add the axioms ∀P : P ropi.(P ∨ ¬P ). He shows how to interpret types as sets and replace computable functions with set theoretic graphs. ... |

27 | Importing mathematics from hol into Nuprl
- Howe
- 1996
(Show Context)
Citation Context ... example, we will see later that intersection, ∩x : A.B, makes sense as a kind of universal quantifier. We use P ropi as a synonym for T ypei. We also abbreviate P rop as P. Classical Nuprl Doug Howe =-=[34, 35]-=- has shown that Nuprl, as presented here, is consistent if we add the axioms ∀P : P ropi.(P ∨ ¬P ). He shows how to interpret types as sets and replace computable functions with set theoretic graphs. ... |

24 | Extension of Martin Löf’s type theory with record types and subtyping
- Betarte, Tasistro
- 1999
(Show Context)
Citation Context ...ion on types. The new ideas are based on a definition of records and dependent records that we started exploring several years ago [18, 25, 31] and is related to recent work in Martin-Löf type theory =-=[8]-=-. This is the subject of section 3, Classes. Class theory provides the basis for formalizing objectoriented concepts such as classes and inheritance. The way we present these notions connects in an un... |

22 | Type Theoretic Methodology for Practical Programming Languages
- Crary
- 1998
(Show Context)
Citation Context ... ideas requires explaining the starting point; we do that in the section on types. The new ideas are based on a definition of records and dependent records that we started exploring several years ago =-=[18, 25, 31]-=- and is related to recent work in Martin-Löf type theory [8]. This is the subject of section 3, Classes. Class theory provides the basis for formalizing objectoriented concepts such as classes and inh... |

18 |
efficient object encoding using intersection types
- Simple
- 1998
(Show Context)
Citation Context ...ystem for object-oriented programming. It is possible to extend these ideas to account for other aspects of objects. Karl Crary has written “Simple, Efficient Object Encoding Using Intersection Types”=-=[24]-=-, available at his web page, and the second author has written a draft article available at his web page, “A Predicative Type-Theoretic Interpretation of Objects.” In addition Pavel Naumov has shown, ... |

17 | B.C.: Higher-order intersection types and multiple inheritance
- Compagnoni, Pierce
(Show Context)
Citation Context ... Given two types A and B, it makes sense to consider the elements they have in common; we call that type the intersection of A and B, written A ∩ B. This type constructor has been extensively studied =-=[6, 15, 21]-=-. We require that (a = b in A ∩ B) iff a = b in A and a = b in B. For example, it is clear that void ∩ A is void for any type A and A ∩ A is A. It might be a suprise that (1 → 1) ∩ (void → void) is no... |

17 |
editors. Theoretical Aspects of ObjectOriented
- Gunter, Mitchell
- 1994
(Show Context)
Citation Context |

16 |
The type theory of PL/CV3
- Constable, Zlatin
- 1984
(Show Context)
Citation Context ...of such languages, as work on ML illustrates. Type theory also guides the compilation of languages such as ML, Haskell, and Java. It provides the basis for programming logics and program verification =-=[22, 5, 46, 23]-=-. These solutions are not “perfect”, and there is more work to be done as better programming languages are designed. One reason for the constant evolution of programming languages is that there is a f... |

13 | Foundations for the Implementation of Higher-Order Subtyping
- Crary
- 1997
(Show Context)
Citation Context ...of such languages, as work on ML illustrates. Type theory also guides the compilation of languages such as ML, Haskell, and Java. It provides the basis for programming logics and program verification =-=[22, 5, 46, 23]-=-. These solutions are not “perfect”, and there is more work to be done as better programming languages are designed. One reason for the constant evolution of programming languages is that there is a f... |

10 | An object-oriented approach to verifying group communication systems. http://www.cs.cornell.edu/jyh/papers/cav99 ooioa
- Bickford, Hickey
(Show Context)
Citation Context ...ined at it’s Cornell web site www.cs.cornell.edu/Info/Projects/NuPrl/nuprl.html. This work was supported by DARPA under grant F30602-98-2-0198. 1arose in the context of formalizing a software system =-=[9]-=-, and we describe the system applications in section 5, Applications to systems. The concepts of record and subtyping allow us to express the basic ideas of object-oriented programming. What we observ... |

10 |
Constructively formalizing automata
- Constable, Jackson, et al.
- 1997
(Show Context)
Citation Context ...eory, an automaton is described by the following type: Auto ≡ Q: Type × A: Type × i: Q → P × t: (Q × A × Q) → P rop. (1) This is similar to the definition used in our formalization of automata theory =-=[20]-=-. The initial states i are a subset of the possible states Q, defined using a predicate Q → P, where P is the set of propositions (for simplicity, this can be thought of as a Boolean value). The trans... |

9 |
Experience using type theory as a foundation for computer science
- Constable
- 1995
(Show Context)
Citation Context ... 29, 30]), nevertheless we can account elegantly for the concepts of class and method. 2 Types 2.1 The Core Theory Type theory is one of the most successful foundational theories for computer science =-=[18, 17, 16]-=-. It is a mathematical theory which has provided solutions to a large number of the practical problems. It is an excellent basis for the semantics of functional and procedural programming languages. 2... |

9 | The structure of Nuprl’s type theory
- Constable
- 2000
(Show Context)
Citation Context ... 29, 30]), nevertheless we can account elegantly for the concepts of class and method. 2 Types 2.1 The Core Theory Type theory is one of the most successful foundational theories for computer science =-=[18, 17, 16]-=-. It is a mathematical theory which has provided solutions to a large number of the practical problems. It is an excellent basis for the semantics of functional and procedural programming languages. 2... |

6 |
Do-it-yourself type theory (part I
- Backhouse, Chisholm, et al.
- 1989
(Show Context)
Citation Context ... Given two types A and B, it makes sense to consider the elements they have in common; we call that type the intersection of A and B, written A ∩ B. This type constructor has been extensively studied =-=[6, 15, 21]-=-. We require that (a = b in A ∩ B) iff a = b in A and a = b in B. For example, it is clear that void ∩ A is void for any type A and A ∩ A is A. It might be a suprise that (1 → 1) ∩ (void → void) is no... |

6 |
Partial objects in constructive type theory
- Constable, Smith
- 1987
(Show Context)
Citation Context |

5 |
Formalizing Reference Types in NuPRL
- Naumov
- 1998
(Show Context)
Citation Context ...e, “A Predicative Type-Theoretic Interpretation of Objects.” In addition Pavel Naumov has shown, in his PhD thesis, how to define Java’s recursive types in Nuprl, Formalizing Reference Types in Nuprl =-=[42]-=-. Other aspects of Java’s class theory can easily be expressed in our type theory. For example, we can include specific methods in a class by specifying that a field names a specific function. To defi... |

4 |
Elements of Mathematics, Algebra, Volume 1
- Bourbaki
- 1968
(Show Context)
Citation Context ... each a in A and which produce a unique value. We summarize by A is a T ype B is a T ype A → B is a T ype. One common informal notation for functions is seen in algebra texts, e.g. Bourbaki’s Algebra =-=[10]-=-; namely, we write expressions like x ↦→ b or x f ↦→ b; the latter gives a name to the function. For example, x ↦→ x2 is the squaring function on numbers. If b computes to an element of B when x has v... |

1 |
On the meaning of the logical rules I: syntax vs semantics. Institut de
- Girard
- 1998
(Show Context)
Citation Context ... the basis for formalizing objectoriented concepts such as classes and inheritance. The way we present these notions connects in an unexpected way to the basic ideas behind Girard’s new logic, Ludics =-=[27]-=-. The most widely accessible applications of these ideas is to the basic structures and containment among them of algebra, e.g. relating monoids, groups, rings, algebras and so forth. Indeed for us, s... |