Rank 2 Type Systems and Recursive De Nitions

Rank 2 Type Systems and Recursive De Nitions

Rank 2 typ e systems and recursive de nitions Technical Memorandum MIT/LCS/TM{531 Trevor Jim Lab oratory for Computer Science Massachusetts Institute of Technology August 1995; revised Novemb er 1995 Abstract We demonstrate an equivalence b etween the rank 2 fragments of the p olymorphic lamb da calculus System F and the intersection typ e dis- cipline: exactly the same terms are typable in each system. An imme- diate consequence is that typability in the rank 2 intersection system is DEXPTIME-complete. Weintro duce a rank 2 system combining intersections and p olymorphism, and prove that it typ es exactly the same terms as the other rank 2 systems. The combined system sug- gests a new rule for typing recursive de nitions. The result is a rank 2 typ e system with decidable typ e inference that can typ e some inter- esting examples of p olymorphic recursion. Finally,we discuss some applications of the typ e system in data representation optimizations suchasunboxing and overloading. Keywords: Rank 2 typ es, intersection typ es, p olymorphic recursion, boxing/unboxing, overloading. 1 Intro duction In the past decade, Milner's typ e inference algorithm for ML has b ecome phenomenally successful. As the basis of p opular programming languages like Standard ML and Haskell, Milner's algorithm is the preferred metho d of typ e inference among language implementors. And in the theoretical 545 Technology Square, Cambridge, MA 02139, [email protected]. Supp orted by NSF grants CCR{9113196 and CCR{9417382, and ONR Contract N00014{92{J{1310. 1 community, the literature on typ e inference is dominated by extensions of ML's let-p olymorphism. In this pap er we examine some alternatives to ML that have attracted surprisingly little attention: the systems of rank 2 typ es intro duced by Leivant [21]. These systems are slightly more p owerful than ML|strictly more terms can b e assigned typ es|and the increased p ower comes for free| the complexityoftypability is identical. But the unique feature of the rank 2 systems that justi es further study is that, in sharp contrast to other exten- sions of ML, they abandon let-p olymorphism. We use the expression x:xx to illustrate the limitations of let-p oly- morphism. It is well known that this expression cannot b e typ ed in ML: the only way for ML to typ e the self-application xx is by assigning a p oly- morphic typ e to x, and ML do es not allow abstraction over variables with p olymorphic typ e. In ML, the only mechanism for intro ducing variables of p olymorphic typ e is the let-expression: let x =y :y in xx This let-expression binds x to the identity function y :y , which has the p olymorphic typ e 8t:t ! t in ML. By ML's let-p olymorphism, x is assigned the typ e 8t:t ! t, which is sucienttotyp e xx. The problem with this is that we cannot typ echeck the uses of x the application xx separately from its de nition the function y :y . So ML must b e extended with a module language in order to supp ort programming in the large, where it is impractical to require every p olymorphic de nition to app ear in the same source le as every use. In contrast, x:xxistypable in all of the rank 2 systems we consider. Here are two rank 2 typings: x:xx: 8t:t ! t ! 8s:s ! s; x:xx: t ! t ^ t ! t ! t ! t ! t ! t: The rst typing says that x:xx is a function that, when given an argument with typ e t ! t for any typ e t, pro duces a result with typ e s ! s, for any s. The identity function is an appropriate argument. The second typing says that x:xx is a function that, when given an argumenthaving both the typ es t ! t and t ! t ! t ! t, pro duces a result of typ e t ! t. Once again, the identityy :y is an appropriate argument. 2 The rank 2 systems we consider are subsystems of two widely studied typ e systems, System F and the system of intersection typ es. System F, intro duced indep endently by Girard [7] and by Reynolds [28], predates ML and can typ e many more terms. A recent result of Wells [34], however, shows that typability in the system is undecidable, putting typ e inference out of reach. The system of intersection typ es, intro duced indep endently by Copp o and Dezani [5] and by Sall e [29], can typ e even more terms than System F: 1 it typ es all and only the strongly normalizing terms. The equivalence of typability and strong normalization implies that typ e inference, just as with System F, is unattainable. With the goal of typ e inference in mind, we seek decidable restrictions of these typ e systems. Restrictions based on the rank of typ es were suggested by Leivant [21]. The rank of a typ e can b e easily determined by examining it in tree form. A typ e is of rank k if no path from the ro ot of the typetoatyp e constructor of interest either typ e intersection `^'ortyp e quanti cation `8' passes to the left of k arrows. The typ es shown in Figure 1 are rank 2 typ es, b ecause no path from ro ot to ^ or 8 passes to the left of two arrows. But the typ es shown in Figure 2 go b eyond rank 2 they are rank 3 typ es. The typ es given ab ove for x:xx are rank 2 typ es. ! ^ 6 6 6 6 6 6 ! ! s s 6 6 6 6 6 6 s ^ t 8t 6 6 6 ! ! t 6 6 6 6 6 6 s t t t t ^ t ! s ! t ^ s s ! 8t:t ! t ! s Figure 1: Examples of rank 2 typ es Ranks 0 and 1 of Leivant's systems are equivalent to the simply typ ed lamb da calculus, which can typ e fewer terms than ML. But starting with 1 Without the typ e constant ! . 3 ! 6 6 6 ! 6 6 ! 6 s 6 6 ! 6 s 6 6 6 ! s 6 6 6 ^ t 6 6 6 s 8t s t t t ^ s ! t ! s s ! 8t:t ! s ! s Figure 2: Typ es that go b eyond rank 2 rank 2, the systems can typ e more terms than ML. Rank 2 of System F, whichwe call , has received the most study. Mc- 2 Cracken [23] prop osed a typ e inference algorithm for based on Leivant's 2 ideas. This algorithm is incorrect. Kfoury and Tiuryn [12] show that the complexityoftypabilityin is identical to that of ML. Kfoury and 2 Wells [16, 17] give a correct typ e inference algorithm, and show that ranks 3 and higher in System F are undecidable. Leivant's original pap er is almost the only work on rank 2 of the inter- section typ e disciplin e, whichwe call I . Leivantsketched a typ e inference 2 algorithm for I , but the algorithm was not formalized and proved correct 2 until recently [33]. Leivant also conjectured the undecidabili ty of ranks 3 and higher in the intersection system; to our knowledge the details of his pro of idea have never b een veri ed. I has a signi cant advantage over : it has principal typings. This 2 2 means that for any term M ,if M is typable in I , then there is an I typing 2 2 judgment A ` M : that represents all of the p ossible typing judgments for M . Other typings for M can b e obtained from the principal typing by simple op erations sub- stitution and subsumption. Contributions of the pap er Since I has principal typings, and do es not, we b elieve I deserves 2 2 2 more study. The rst contribution of this pap er is to develop some of the 4 2 basic prop erties of I .We establish the following equivalence: a term is 2 typable in I if and only if it is typable in . An immediate corollary is that 2 2 typabilityinI is DEXPTIME-complete, identical to typabilityin and 2 2 ML. We also consider some variants of I , and show they are all equivalent 2 in terms of typability. The second contribution of this pap er is to intro duce a new typ e system, P , that combines rank 2 intersection typ es and top-level quanti cation of 2 typ e variables, as in ML. P has principal typings, so it clearly improves 2 on . Its advantage over I is more subtle. The addition of quanti ers 2 2 makes typ es more expressive: the quanti ers identify generic typ e variables, that is, typ e variables which can safely b e instantiated with anytyp e. In particular, this suggests an interesting typ e inference algorithm for recursive de nitions. A recursive de nition is written in the form xM , and is meantto denote a program x such that x = M; where M may contain some uses of x. The standard rule for typing recursive de nitions lo oks like A [fx : g` M : A ` xM : Most typ e inference algorithms restrict the typ e in this rule to b e a simple typ e. The rule of polymorphic recursion relaxes this restriction by allow- ing to b e an ML typ e scheme.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    59 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us