## Canonical typing and Π-conversion (1997)

Citations: | 3 - 3 self |

### BibTeX

@MISC{Kamareddine97canonicaltyping,

author = {Fairouz Kamareddine and Rob Nederpelt},

title = {Canonical typing and Π-conversion},

year = {1997}

}

### OpenURL

### Abstract

In usual type theory, if a function f is of type oe ! oe and an argument a is of type oe, then the type of fa is immediately given to be oe and no mention is made of the fact that what has happened is a form of fi-conversion. A similar observation holds for the generalized Cartesian product types, \Pi x:oe : . In fact, many versions of type theory assume that fi holds of both types and terms, yet only a few attempt to study the theory where terms and types are really treated equally and where fi-conversion is used for both. A unified treatment however, of types and terms is becoming indispensible especially in the approaches which try to generalise many systems under a unique one. For example, [Barendregt 91] provides the Barendregt cube and the Pure Type Systems (PTSs) which are a generalisation of many type theories. Yet even such a generalisation does not use fi-conversion for both types and terms. This is unattractive, in a calculus where types have the same syntax as terms (such as the calculi of the cube or the PTSs). For example, in those systems, even though compatibility holds for the typing of abstraction, it does not hold for the typing of application. That is, even though M : N ) y:P :M : \Pi y:P :N holds, the following does not hold: Based on this observation, we present a -calculus in which the conversion rules apply to types as well as terms. Abstraction and application, moreover, range over both types and terms. We extend the calculus with a canonical type operator in order to associate types to terms. The type of fa will then be Fa, where F is the type of f and the statement \Gamma ` t : oe from usual type theory is split in two statements in our system: \Gamma ` t and (\Gamma; t) = oe. Such a splitting enables us to discuss the two questio...