To send content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about sending content to .

To send content to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about sending to your Kindle.

Note you can select to send to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be sent to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

By using this service, you agree that you will only keep articles for personal use, and will not openly distribute them via Dropbox, Google Drive or other file sharing services.
Please confirm that you accept the terms of use.

In this work we put forward an algorithm for the mechanical verification of an extension
of Martin-Löf's theory of types with dependent record types and subtyping. We first give
a concise description of that theory and motivate its use for the formalization of algebraic
constructions. Then we concentrate on the informal explanation and specification of a proof
checker that we have implemented. The logical heart of this proof checker is a type checking
algorithm for the forms of judgement of a particular formulation of the extended theory
which incorporates a notion of parameter. The algorithm has been proven sound with respect
to the latter calculus. We include a discussion on that proof in the present work.

Researchers have recently proposed that for certain applications it is advantageous to use
functional languages whose type systems are based upon linear logic: so-called linear
functional languages. In this paper we develop reasoning techniques for programs in a linear
functional language, linPCF, based on their operational behaviour. The principal theorem
of this paper is to show that contextual equivalence of linPCF programs can be characterised
coinductively. This characterisation provides a tractable method for reasoning about
contextual equivalence, and is used in three ways:

[bull ] A number of useful contextual equivalences between linPCF programs is given.

[bull ] A notion of type isomorphism with respect to contextual equivalence, called operational
isomorphism, is given. In particular the types !ϕ[otimes ]!ψ and !(ϕ&ψ) are proved to be
operationally isomorphic.

[bull ] A translation of non-strict PCF into linPCF is shown to be adequate, but not fully abstract,
with respect to contextual equivalence.

A program derivation is said to be polytypic if some of its parameters are data types. Often
these data types are container types, whose elements store data. Polytypic program derivations
necessitate a general, non-inductive definition of ‘container (data) type’. Here we propose such
a definition: a container type is a relator that has membership. It is shown how this definition
implies various other properties that are shared by all container types. In particular, all
container types have a unique strength, and all natural transformations between container
types are strong.