## Formal Objects in Type Theory Using Very Dependent Types (1996)

Venue: | In Foundations of Object Oriented Languages 3 |

Citations: | 29 - 8 self |

### BibTeX

@INPROCEEDINGS{Hickey96formalobjects,

author = {Jason J. Hickey},

title = {Formal Objects in Type Theory Using Very Dependent Types},

booktitle = {In Foundations of Object Oriented Languages 3},

year = {1996}

}

### Years of Citing Articles

### OpenURL

### Abstract

In this paper we present an extension to basic type theory to allow a uniform construction of abstract data types (ADTs) having many of the properties of objects, including abstraction, subtyping, and inheritance. The extension relies on allowing type dependencies for function types to range over a well-founded domain. Using the propositions--as--types correspondence, abstract data types can be identified with logical theories, and proofs of the theories are the objects that inhabit the corresponding ADT. 1 Introduction In the past decade, there has been considerable progress in developing formal account of a theory of objects. One property of object oriented languages that make them popular is that they attack the problem of scale: all object oriented languages provide mechanisms for providing software modularity and reuse. In addition, the mechanisms are intuitive enough to be followed easily by novice programmers. During the same decade, the body of formal mathematics has be...

### Citations

891 | A Theory of Objects
- Abadi, Cardelli
- 1996
(Show Context)
Citation Context ...the Extended Calculus of Constructions on the lego [18] system. Another line of research has been followed to provide an object-oriented calculus, for instance in Mitchell [22] and Abadi and Cardelli =-=[1]-=-. Record calculi with subtyping are key features of these systems. In this paper we present an extension to constructive type theory to allow a uniform construction of abstract data types (ADTs) havin... |

342 |
Intuitionistic type theory
- Martin-Löf
- 1984
(Show Context)
Citation Context ...ut value (in some pre-defined manner). We have implemented an object calculus using the very-dependent function types in the Nuprl system. Although we use the Nuprl type theory (based on Martin-Lof's =-=[19, 20]-=- type theory) and the Nuprl terminology in this paper, our results should carry over to other proof systems that use dependent types, including Coq [11], lego [18], Alf [9], and pvs [10]. We present t... |

305 | Subtyping recursive types
- Amadio, Cardelli
- 1993
(Show Context)
Citation Context ...ypes can be developed, the concept of "Self " needs to be explored. In much of the current work on objects, for example Mitchell, Honsell, and Fisher [22], Abadi and Cardelli [1], Amadio and=-= Cardelli [3], Harper a-=-nd Pierce [13], and Bruce [7], the self-application of method selection is handled directly, and the interpretation often use a recursive type to represent the type for "Self." To illustrate... |

162 | A Lambda Calculus of Objects and Method Specialization
- Fisher, Honsell, et al.
- 1994
(Show Context)
Citation Context ...h they have performed using the Extended Calculus of Constructions on the lego [18] system. Another line of research has been followed to provide an object-oriented calculus, for instance in Mitchell =-=[22]-=- and Abadi and Cardelli [1]. Record calculi with subtyping are key features of these systems. In this paper we present an extension to constructive type theory to allow a uniform construction of abstr... |

158 | Simple type-theoretic foundations for object-oriented programming
- Pierce, Turner
- 1994
(Show Context)
Citation Context ...lf-application and method override with the predicativity of the type theory can be complex enough to obscure the interpretation. Instead, we adopt the existential interpretation of Pierce and Turner =-=[23] (this is -=-the "state-application semantics" of Abadi and Cardelli [1]), in which each object has a state, and updates are allowed only to the state. This formalization has a simple, predicative, type ... |

157 |
An intuitionistic theory of types: Predicative part
- Martin-Löf
- 1975
(Show Context)
Citation Context ...ut value (in some pre-defined manner). We have implemented an object calculus using the very-dependent function types in the Nuprl system. Although we use the Nuprl type theory (based on Martin-Lof's =-=[19, 20]-=- type theory) and the Nuprl terminology in this paper, our results should carry over to other proof systems that use dependent types, including Coq [11], lego [18], Alf [9], and pvs [10]. We present t... |

143 | Toward Formal Development of Programs from Algebraic Specifications
- Sannella, Tarlecki
- 1988
(Show Context)
Citation Context ...in the Nuprl [12] system to implement a considerable amount of constructive abstract algebra. Subtyping is key to modeling inheritance and reuse, and Aspinali and Compagnoni [4], and Sannella et. al. =-=[26]-=- have analyzed subtyping in the presence of type dependencies in order to model formal programming in-the-large. Jackson [17] has developed subtyping in Nuprl for use in his account of constructive al... |

117 | A paradigmatic object-oriented programming language: Design, static typing and semantics
- Bruce
- 1994
(Show Context)
Citation Context ...Self " needs to be explored. In much of the current work on objects, for example Mitchell, Honsell, and Fisher [22], Abadi and Cardelli [1], Amadio and Cardelli [3], Harper and Pierce [13], and B=-=ruce [7], the self-=--application of method selection is handled directly, and the interpretation often use a recursive type to represent the type for "Self." To illustrate this point, we use the standard exampl... |

65 |
Recursive Definition in Type Theory
- Mendler
- 1987
(Show Context)
Citation Context ... between objects and proofs. There are several reasons to develop an account of objects within the type theory. The type theory already has several semantics, including set theoretic [16], PER models =-=[2, 21]-=-, denotational models [25], and others. By developing our account within the type theory, we provide a solid mathematical foundation for objects. In addition, we can draw on mathematical techniques, e... |

59 | A record calculus based on symmetric concatenation
- Harper, Pierce
- 1991
(Show Context)
Citation Context ...the concept of "Self " needs to be explored. In much of the current work on objects, for example Mitchell, Honsell, and Fisher [22], Abadi and Cardelli [1], Amadio and Cardelli [3], Harper a=-=nd Pierce [13], and Bruc-=-e [7], the self-application of method selection is handled directly, and the interpretation often use a recursive type to represent the type for "Self." To illustrate this point, we use the ... |

55 |
A Non-Type-Theoretic Semantics for TypeTheoretic Language
- Allen
- 1987
(Show Context)
Citation Context ... between objects and proofs. There are several reasons to develop an account of objects within the type theory. The type theory already has several semantics, including set theoretic [16], PER models =-=[2, 21]-=-, denotational models [25], and others. By developing our account within the type theory, we provide a solid mathematical foundation for objects. In addition, we can draw on mathematical techniques, e... |

51 | Higher-order subtyping
- Pierce, Steffen
- 1994
(Show Context)
Citation Context ...s description states that each element in the the supertype has a corresponding representation in the subtype. This requirement is a stronger version of the "positive subtyping" of Hofmann a=-=nd Pierce [15]. In their-=- formulation, the rules for subtyping are constrained so that all subtypes must obey this "update" restriction. In our case, subtyping retains its original mathematical meaning, but if AsB, ... |

44 | Enhancing the Nuprl proof-development system and applying it to computational abstract algebra
- Jackson
- 1995
(Show Context)
Citation Context ...o been attacking the problem of scale. Algebraic specification techniques are a basis for many approaches, including Breu [5] who uses them to develop an object calculus for software systems. Jackson =-=[17]-=- has developed these techniques in the Nuprl [12] system to implement a considerable amount of constructive abstract algebra. Subtyping is key to modeling inheritance and reuse, and Aspinali and Compa... |

41 |
Algebraic Specification Techniques in Object-Oriented Programming Environments
- BREU
- 1991
(Show Context)
Citation Context ...thematics has been steadily increasing, and proof development systems have also been attacking the problem of scale. Algebraic specification techniques are a basis for many approaches, including Breu =-=[5]-=- who uses them to develop an object calculus for software systems. Jackson [17] has developed these techniques in the Nuprl [12] system to implement a considerable amount of constructive abstract alge... |

36 |
G.: The COQ Proof Assistant User’s Guide
- Dowek, Felty, et al.
- 1993
(Show Context)
Citation Context ...he Nuprl type theory (based on Martin-Lof's [19, 20] type theory) and the Nuprl terminology in this paper, our results should carry over to other proof systems that use dependent types, including Coq =-=[11]-=-, lego [18], Alf [9], and pvs [10]. We present the following results: ffl a dependent record calculus, forming the foundation for a theory of objects, ffl a generalization of the type theory's functio... |

36 |
Proof Development System: User’s Manual
- LEGO
- 1992
(Show Context)
Citation Context ...4] have translated the laws of module algebra into laws of "deliverables" that can be proved correct in type theory, which they have performed using the Extended Calculus of Constructions on=-= the lego [18]-=- system. Another line of research has been followed to provide an object-oriented calculus, for instance in Mitchell [22] and Abadi and Cardelli [1]. Record calculi with subtyping are key features of ... |

31 |
Rushby, Natarajan Shankar, and Mandayam Srivas. A tutorial introduction to PVS
- Crow, Owre, et al.
- 1995
(Show Context)
Citation Context ...tin-Lof's [19, 20] type theory) and the Nuprl terminology in this paper, our results should carry over to other proof systems that use dependent types, including Coq [11], lego [18], Alf [9], and pvs =-=[10]-=-. We present the following results: ffl a dependent record calculus, forming the foundation for a theory of objects, ffl a generalization of the type theory's function type to allow dependencies over ... |

30 | Subtyping is not a good "match" for objectoriented languages
- Bruce, Fiech, et al.
- 1997
(Show Context)
Citation Context ...ent of objects would require a more extensional definition of equality over the behavior of objects, excluding their states and representation types. A similar subtyping restriction is given by Bruce =-=[8], who addresses this-=- problem in PolyTOIL by defining "matching," where an object "matches" another if any method that can be invoked on the first object can also be invoked on the second. Given this s... |

11 |
the Hopkins Objects Group (Jonathan Eifrig
- Bruce, Cardelli, et al.
- 1996
(Show Context)
Citation Context ...have any information about the representation type for any other object, it is not possible to write binary methods of this form. A more complete discussion of binary methods is given in Bruce et.al. =-=[6]-=-. Proper handling of binary methods requires the use of an explicit representation type, as we describe in the following section for a description of monoids. Exposing the representation type results ... |

8 |
and Adriana Compagnoni. Subtyping dependent types
- Aspinall
- 1996
(Show Context)
Citation Context ...eveloped these techniques in the Nuprl [12] system to implement a considerable amount of constructive abstract algebra. Subtyping is key to modeling inheritance and reuse, and Aspinali and Compagnoni =-=[4]-=-, and Sannella et. al. [26] have analyzed subtyping in the presence of type dependencies in order to model formal programming in-the-large. Jackson [17] has developed subtyping in Nuprl for use in his... |

6 | Verifying properties of module construction in type theory
- Reus, Streicher
- 1993
(Show Context)
Citation Context ...n the presence of type dependencies in order to model formal programming in-the-large. Jackson [17] has developed subtyping in Nuprl for use in his account of constructive algebra. Reus and Streicher =-=[24] have tran-=-slated the laws of module algebra into laws of "deliverables" that can be proved correct in type theory, which they have performed using the Extended Calculus of Constructions on the lego [1... |

6 |
Subtyping is not a good \match" for object-oriented languages
- Bruce, Petersen, et al.
- 1997
(Show Context)
Citation Context ...ment of objects would require a more extensional de nition of equality over the behavior of objects, excluding their states and representation types. A similar subtyping restriction is given by Bruce =-=[8]-=-, who addresses this problem in PolyTOIL by de ning \matching," where an object \matches" another if any method that can be invoked on the rst object can also be invoked on the second. Given this subt... |

6 |
Inductive De nition in Type Theory
- Mendler
- 1987
(Show Context)
Citation Context ... between objects and proofs. There are several reasons to develop an account of objects within the type theory. The type theory already has several semantics, including set theoretic [16], PER models =-=[2, 21]-=-, denotational models [25], and others. By developing our account within the type theory, we provide a solid mathematical foundation for objects. In addition, we can draw on mathematical techniques, e... |

5 |
Semantic Foundations for Embedding HOL
- Howe
- 1996
(Show Context)
Citation Context ...and theories, and between objects and proofs. There are several reasons to develop an account of objects within the type theory. The type theory already has several semantics, including set theoretic =-=[16]-=-, PER models [2, 21], denotational models [25], and others. By developing our account within the type theory, we provide a solid mathematical foundation for objects. In addition, we can draw on mathem... |

5 |
Algebraic Speci cation Techniques in Object{Oriented Programming Environments, volume 562 of LNCS
- Breu
- 1991
(Show Context)
Citation Context ...athematics has been steadily increasing, and proof development systems have also been attacking the problem of scale. Algebraic speci cation techniques are a basis for many approaches, including Breu =-=[5]-=- who uses them to develop an object calculus for software systems. Jackson [17] has developed these techniques in the Nuprl [12] system to implement a considerable amount of constructive abstract alge... |

3 |
Semantics of constructive type theory
- Rezus
- 1985
(Show Context)
Citation Context ...There are several reasons to develop an account of objects within the type theory. The type theory already has several semantics, including set theoretic [16], PER models [2, 21], denotational models =-=[25]-=-, and others. By developing our account within the type theory, we provide a solid mathematical foundation for objects. In addition, we can draw on mathematical techniques, especially those of abstrac... |

1 |
A semantics of objects in type theory. Online formalization available through Cornell CS
- Hickey
(Show Context)
Citation Context ...es, the type for the point might be described as follows: Point = (X:[getX : Z; setX : Z! X]) Although an account of these calculi in the type theory is reasonable (without the use of recursive types =-=[14]-=-), the interaction of self-application and method override with the predicativity of the type theory can be complex enough to obscure the interpretation. Instead, we adopt the existential interpretati... |