Results 1 -
1 of
1
Extension of Martin-Löf's Type Theory with Record Types and Subtyping
, 1998
"... this paper, the implementation has been used to verify an abstract version of sorting by insertion in (Tasistro 1997). In this latter work, dependent record types are used to express speciøcations of abstract data types. The theory here developed is a direct successor of the calculus of substitution ..."
Abstract
-
Cited by 22 (3 self)
- Add to MetaCart
this paper, the implementation has been used to verify an abstract version of sorting by insertion in (Tasistro 1997). In this latter work, dependent record types are used to express speciøcations of abstract data types. The theory here developed is a direct successor of the calculus of substitutions for type theory (Martin-L#f 1992; Tasistro 1997) in the sense that record types can be seen as type constructions corresponding to contexts of variables ¯record objects becoming then the counterpart to substitutions. Several theories of records have been developed in the context of systems without dependent types, mainly with the motivation of providing foundations for concepts that appear in object oriented programming. Then, for instance, there is by now a standard way of encoding objects in the sense of object oriented programming as recursively deøned records. The general motivation mentioned departs from ours, which, as far as the theory of programming is concerned, is limited to that of providing basic means that allow the use of dependent types for expressing speciøcations of abstract data types and modules in a general way. The problem of formulating a type system for object oriented programming raises a number of questions that are simply not relevant for our purposes. As to dependent record types, they have been implemented in PVS (Owre et al. 1993), which is a theorem proving system based on classical higher order logic. The subtyping that record types induce is, however, not a part of this implementation. In the original type theory, it is possible to encode each particular instance of inclusion between types ff and fi by using a coercion function that injects the objects of type ff into the type fi. In (Barthe 1996; Bailey 1996; Sa#bi 1997) different mechanisms...

