Typing and computational properties of lambda expressions

Daniel Leivant
1986 Theoretical Computer Science  
We use a perception of second-order typing in the A-Calculus, as conveying semantic properties of expressions in models over A-expressions, to exhibit natural and uniform proofs of theorems of Girard (1971/72) and ofCoppo, Dezani and Veneri (1981) about the relations between typing properties and computational properties of A-expressions (solvability, normalizability, strong normalizability), and of some generalizations of these theorems. sequence that converts E to a normal expression.
more » ... E is solvable if there is a reduction sequence that converts E to a head-normal expression 1 (the equivalence of this definition to the original definition of solvability is due to Wadsworth [37, 3] ). Clearly, every strongly-normalizable expression is normalizable, and every normalizable expression is solvable. The rationale for considering solvable expressions is that they have natural computational and semantical characterizations which make them, in suitable senses, the only 'meaningful' expressions [3] . Given a property P of A-expressions, e.g., 'normalizable', we shall say that a typed A-calculus is P if every expression thereof is P. Programming languages such as PASCAL and ALGOL68 are based on relatively simple type disciplines, and their procedure call mechanism is represented by the simply typed lambda calculus or by fragments thereof [22, 12 (Section 4)]. It is not hard to see that the simply typed lambda calculus is strongly normalizable [33, 22, 30, 1, 12 (Subsection 6.1)]. A new dimension in typing was introduced by the invention of second-order and higher-order type disciplines [14, 15, 29]. From the programming language viewpoint, generic (parametric) types are motivated by the wish to avoid repeated definition of one procedure for arguments of different types. Once generic procedures are used, conceptual consistency dictates that they be also allowed as arguments of other procedures, the latter should again be permitted as arguments, and so on. This gives rise to the full second-order type discipline of Girard and Reynolds. The Lambda Calculus supplemented with the second-order type discipline is referred to as the Second-Order, or Polymorphic, Lambda Calculus. Normalization in the Second-Order Lambda Calculus There is no 'simple' proof that the Second-Order Lambda Calculus is normalizable: no such proof can be given in Second-Order Arithmetic, since the normalizability of the Second-Order Lambda Calculus implies the consistency of Second-Order Arithmetic [18] . A combinatorially isomorphic problem, that of normalization for Second-Order Logic, was an outstanding open problem in Mathematical Logic in the 50"s and 60's. Initially, a Normal Form Theorem was proved [33, 36, 26, 27] whereby every provable formula of Second-Order Logic has a normal (natural deduction) proof. The Strong Normalization Theorem for Second-Order Logic was finally proved by Girard [14, 15] by injecting second-order reasoning into the combinatorial method of Tait [34]. (Independently, Friedman injected second-order reasoning into a different syntactic method, Kleene's slash, with related results [ 13] .) Girard's method was then applied and refined, in different guises, to various formalisms [28, 21, 32, 35, 12]. We do not consider A-expressions that convert to a head-normal form by any reduction sequence (a natural analog to strong normalizability), since these expressions do not have natural computational or semantical characterizations. Lemma 5.2. If C~-E[F/x]: r is derived in Tfo, then so is C~(Ax.E)F: r.
doi:10.1016/0304-3975(86)90109-x fatcat:37vkpxzxyvglvlddlv2w632ozq