The Duality of Classical Intersection and Union Types

  title={The Duality of Classical Intersection and Union Types},
  author={P. Downen and Zena M. Ariola and Silvia Ghilezan},
  journal={Fundam. Informaticae},
For a long time, intersection types have been admired for their surprising ability to complete the simply typed lambda calculus. Intersection types are an example of an implicit typing feature which can describe program behavior without manifesting itself within the syntax of a program. Dual to intersections, union types are another implicit typing feature which extends the completeness property of intersection types in the lambda calculus to full-fledged programming languages. However, the… Expand
Abstracting models of strong normalization for classical calculi
A single uniform framework for strong normalization encompassing call-by-name, call- by-value, call -by-need, calls to call-By-push- value, non-deterministic disciplines, and any others satisfying some simple criteria is developed. Expand
Classical (Co)Recursion: Mechanics
It is shown how the implementation details in an abstract machine strengthens their connection, syntactically deriving corecursion from recursion via logical duality, giving a terminating calculus analogous to the original computational foundation of recursion. Expand


Programming with intersection types, union types, and polymorphism
Type systems based on intersection types have been studied extensively in recent years, both as tools for the analysis of the pure A-calculus and, more recently, as the basis for practicalExpand
Intersection and Union Type Assignment and Polarised λ̄ μ μ̃
Intersection and union type assignment systems are powerful tools for reasoning programs that completely characterise many semantic properties such as strong normalisation. At the same time, they areExpand
A Translation of Intersection and Union Types for the λμ-Calculus
An intersection and union type system for the λμ-calculus is introduced, which includes a restricted version of the traditional union-elimination rule and the terms typable in the system coincide with the strongly normalising terms of the \(\overline\lambda\mu\widetilde\)-calculus. Expand
Intersection Types for the lambda-mu Calculus
An intersection type system for the lambda-mu calculus that is invariant under subject reduction and expansion and shows that Parigot's typing oflambda-mu terms with classically valid propositional formulas can be translated into the restricted system, which provides an alternative proof of strong normalisability for the typed lambda-Mu calculus. Expand
Intersection and Union Types: Syntax and Semantics
Type assignment systems with intersection and union types are introduced. Although the subject reduction property with respect to s-reduction does not hold for a natural deduction-like system, weExpand
Type Assignment for Intersections and Unions in Call-by-Value Languages
A system of type assignment with intersection types, union types, indexed types, and universal and existential dependent types that is sound in a call-by-value functional language is developed and provides a uniform generalization and explanation of several earlier isolated systems. Expand
Completeness and partial soundness results for intersection and union typing for lambda_µµ_
  • S. V. Bakel
  • Mathematics, Computer Science
  • Ann. Pure Appl. Log.
  • 2010
It is shown that, with respect to full reduction, it is not possible to define a sound and complete intersection and union type assignment system for λ ¯ μ μ . Expand
The "Relevance" of Intersection and Union Types
A Curry-Howard interpretation of the intersection and union type inference system for Combinatory Logic is investigated, finding that typable terms are translated in a typed version, so that ∨-∧- typed combinatory logic terms are proved to completely codify the associated logical proofs. Expand
Non-idempotent intersection types and strong normalisation
A typing system with non-idempotent intersection types, typing a term syntax covering three different calculi, and the instance based on filters is shown to be better at proving strong normalisation results for {\ lambda}S and {\lambda}lxr. Expand
A Theory of Type Polymorphism in Programming
  • R. Milner
  • Computer Science
  • J. Comput. Syst. Sci.
  • 1978
This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline. Expand