Typability and type checking in System F are equivalent and undecidable

被引:73
|
作者
Wells, JB [1 ]
机构
[1] Univ Glasgow, Dept Comp Sci, Glasgow G12 8RZ, Lanark, Scotland
基金
英国工程与自然科学研究理事会; 美国国家科学基金会;
关键词
System F; semi-unification; type inference; typability; type checking; lambda calculus;
D O I
10.1016/S0168-0072(98)00047-5
中图分类号
O29 [应用数学];
学科分类号
070104 ;
摘要
Girard and Reynolds independently invented System F (a.k.a. the second-order polymorphically typed lambda calculus) to handle problems in logic and computer programming language design, respectively. Viewing F in the Curry style, which associates types with untyped lambda terms, raises the questions of typability and type checking. Typability asks for a term whether there exists some type it can be given. Type checking asks, for a particular term and type, whether the term can be given that type. The decidability of these problems has been settled for restrictions and extensions of F and related systems and complexity lower-bounds have been determined for typability in F, but this report is the first to resolve whether these problems are decidable for System F. This report proves that type checking in F is undecidable, by a reduction from semi-unification and that typability in F is undecidable, by a reduction from type checking. Because there is an easy reduction from typability to type checking, the two problems are equivalent. The reduction from type checking to typability uses a novel method of constructing lambda terms that simulate arbitrarily chosen type environments. All of the results also hold for the lambda I-calculus. (C) 1999 Published by Elsevier Science B.V. All rights reserved.
引用
收藏
页码:111 / 156
页数:46
相关论文
共 50 条
  • [31] Hybrid type checking
    Flanagan, C
    ACM SIGPLAN NOTICES, 2006, 41 (01) : 245 - 256
  • [32] MODEL-CHECKING ALTERNATING-TIME TEMPORAL LOGIC WITH STRATEGIES BASED ON COMMON KNOWLEDGE IS UNDECIDABLE
    Diaconu, Raluca
    Dima, Catalin
    APPLIED ARTIFICIAL INTELLIGENCE, 2012, 26 (04) : 331 - 348
  • [33] A Partial Type Checking Algorithm for Type : Type
    Abel, Andreas
    Altenkirch, Thorsten
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2011, 229 (05) : 3 - 17
  • [34] A correspondence between type checking via reduction and type checking via evaluation
    Sergey, Ilya
    Clarke, Dave
    INFORMATION PROCESSING LETTERS, 2012, 112 (1-2) : 13 - 20
  • [35] Type Checking with Open Type Functions
    Schrijvers, Tom
    Jones, Simon Peyton
    Chakravarty, Manuel
    Sulzmann, Martin
    ICFP'08: PROCEEDINGS OF THE 2008 SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2008, : 51 - 62
  • [36] Type checking with open type functions
    Schrijvers, Tom
    Jones, Simon Peyton
    Chakravarty, Manuel
    ACM SIGPLAN NOTICES, 2008, 43 (09) : 51 - 62
  • [37] System F with Type Equality Coercions
    Sulzmann, Martin
    Chakravarty, Manuel M. T.
    Jones, Simon Peyton
    Donnelly, Kevin
    PROCEEDINGS OF THE TLDI 2007: 2007 ACM SIGPLAN INTERNATIONAL WORKSHOP ON TYPES IN LANGUAGES DESIGN AND IMPLEMENTATION, 2007, : 53 - 66
  • [38] Type Checking for Reliable APIs
    Kechagia, Maria
    Spinellis, Diomidis
    2017 IEEE/ACM 1ST INTERNATIONAL WORKSHOP ON API USAGE AND EVOLUTION (WAPI), 2017, : 15 - 18
  • [39] Type checking for software system specifications in real-time process algebra
    Liu, CW
    Tan, XM
    DCABES 2004, PROCEEDINGS, VOLS, 1 AND 2, 2004, : 1077 - 1083
  • [40] Rosser-Type Undecidable Sentences Based on Yablo's Paradox
    Kurahashi, Taishi
    JOURNAL OF PHILOSOPHICAL LOGIC, 2014, 43 (05) : 999 - 1017