Results 1 
2 of
2
Extension of MartinLö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 24 (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 (MartinL#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...
A Machineassisted Proof that Well Typed Expressions Cannot Go Wrong
, 1998
"... This paper deals with the application of constructive type theory to the theory of programming languages. The main aim of this work is to investigate constructive formalisations of the mathematics of programs. Here, we consider a small typed functional language and prove some properties about it, ar ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
This paper deals with the application of constructive type theory to the theory of programming languages. The main aim of this work is to investigate constructive formalisations of the mathematics of programs. Here, we consider a small typed functional language and prove some properties about it, arriving at the property that establishes that well typed expressions cannot go wrong. First, we give the definitions and proofs in an informal style, and then we present and explain the formalisation of these definitions and proofs. For the formalisation, we use the proof editor ALF and its pattern matching facility.