Results 1 -
6 of
6
Principal type schemes for the strict type assignment system
- Logic and Computation
, 1993
"... We study the strict type assignment system, a restriction of the intersection type discipline [6], and prove that it has the principal type property. We define, for a term, the principal pair (of basis and type). We specify three operations on pairs, and prove that all pairs deducible for can be obt ..."
Abstract
-
Cited by 32 (18 self)
- Add to MetaCart
We study the strict type assignment system, a restriction of the intersection type discipline [6], and prove that it has the principal type property. We define, for a term, the principal pair (of basis and type). We specify three operations on pairs, and prove that all pairs deducible for can be obtained from the principal one by these operations, and that these map deducible pairs to deducible pairs.
Typability and Type Checking in the Second-Order lambda-Calculus Are Equivalent and Undecidable
, 1993
"... We consider the problems of typability and type checking in the Girard/Reynolds second-order polymorphic typed-calculus, for which we use the short name "System F" and which we use in the "Curry style" where types are assigned to pure-terms. These problems have been considered and proven to be d ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
We consider the problems of typability and type checking in the Girard/Reynolds second-order polymorphic typed-calculus, for which we use the short name "System F" and which we use in the "Curry style" where types are assigned to pure-terms. These problems have been considered and proven to be decidable or undecidable for various restrictions and extensions of System F and other related systems, and lower-bound complexity results for System F have been achieved, but they have remained "embarrassing open problems" 3 for System F itself. We first prove that type checking in System F is undecidable by a reduction from semi-unification. We then prove typability in System F is undecidable by a reduction from type checking. Since the reverse reduction is already known, this implies the two problems are equivalent. The second reduction uses a novel method of constructing-terms such that in all type derivations, specific bound variables must always be assigned a specific type. Using this technique, we can require that specif subterms must be typable using a specific, fixed type assignment in order for the entire term to be typable at all. Any desired type assignment maybe simulated. We develop this method, which we call \constants for free", for both the K and I calculi.
Comparing cubes of typed and type assignment systems
- Annals of Pure and Applied Logic
, 1997
"... We study the cube of type assignment systems, as introduced in [13], and confront it with Barendregt’s typed λ-cube [4]. The first is obtained from the latter through applying a natural type erasing function E to derivation rules, that erases type information from terms. In particular, we address th ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
We study the cube of type assignment systems, as introduced in [13], and confront it with Barendregt’s typed λ-cube [4]. The first is obtained from the latter through applying a natural type erasing function E to derivation rules, that erases type information from terms. In particular, we address the question whether a judgement, derivable in a type assignment system, is always an erasure of a derivable judgement in a corresponding typed system; we show that this property holds only for the systems without polymorphism. The type assignment systems we consider satisfy the properties ‘subject reduction’ and ‘strong normalization’. Moreover, we define a new type assignment cube that is isomorphic to the typed one.
Intersection types for light affine lambda calculus
- In Proceedings of 3rd Workshop on Intersection Types and Related Systems (ITRS’04
, 2004
"... Light Affine Lambda Calculus is a term calculus for polynomial time computation ([12]). Some of the terms of Light Affine Lambda Calculus must however be regarded as errors. Intuitionistic Light Affine Logic (ILAL) types only terms without errors, but not all of them. We introduce two type assignmen ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Light Affine Lambda Calculus is a term calculus for polynomial time computation ([12]). Some of the terms of Light Affine Lambda Calculus must however be regarded as errors. Intuitionistic Light Affine Logic (ILAL) types only terms without errors, but not all of them. We introduce two type assignment systems with intersection types: in the first one, typable pseudo-terms are exactly the terms without errors; in the second one, they are exactly those that reduce to normal terms without errors.
Theoretical Foundations for Practical ‘Totally Functional Programming’
, 2007
"... Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt ..."
Abstract
- Add to MetaCart
Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt to redress the problem of interpretation. It incorporates an awareness of the undesirability
of interpretation with observations that definitions and a certain style of programming appear to
offer alternatives to it. Application of TFP is expected to lead to a number of significant outcomes,
theoretical as well as practical. Primary among these are novel programming languages to lessen or
eliminate the use of interpretation in programming, leading to better-quality software. However,
TFP contains a number of lacunae in its current formulation, which hinder development of these
outcomes. Among others, formal semantics and type-systems for TFP languages are yet to be
discovered, the means to reduce interpretation in programs is to be determined, and a detailed
explication is needed of interpretation, definition, and the differences between the two. Most
important of all however is the need to develop a complete understanding of the nature of
interpretation. In this work, suitable type-systems for TFP languages are identified, and guidance
given regarding the construction of appropriate formal semantics. Techniques, based around the
‘fold’ operator, are identified and developed for modifying programs so as to reduce the amount of
interpretation they contain. Interpretation as a means of language-extension is also investigated.
v
Finally, the nature of interpretation is considered. Numerous hypotheses relating to it considered in
detail. Combining the results of those analyses with discoveries from elsewhere in this work leads
to the proposal that interpretation is not, in fact, symbol-based computation, but is in fact something
more fundamental: computation that varies with input. We discuss in detail various implications of
this characterisation, including its practical application. An often more-useful property, ‘inherent
interpretiveness’, is also motivated and discussed in depth. Overall, our inquiries act to give
conceptual and theoretical foundations for practical TFP.

