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 条
  • [21] A type system for static and dynamic checking of C++ pointers
    Della Penna, G
    COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2005, 31 (02) : 71 - 101
  • [22] A New Refinement Type System for Automated νHFLZ Validity Checking
    Katsura, Hiroyuki
    Iwayama, Naoki
    Kobayashi, Naoki
    Tsukada, Takeshi
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2020, 2020, 12470 : 86 - 104
  • [23] A type system for checking applet isolation in Java']Java Card
    Dietl, W
    Müller, P
    Poetzsch-Heffter, A
    CONSTRUCTION AND ANALYSIS OF SAFE, SECURE, AND INTEROPERABLE SMART DEVICES, 2005, 3362 : 129 - 150
  • [24] Operating system support for inter-domain type checking
    Farkas, A
    Dearle, A
    Hulse, D
    PERSISTENT OBJECT SYSTEMS: PRINCIPLES AND PRACTICE, 1997, : 23 - 32
  • [25] SafeGI: Type Checking to Improve Correctness in Rendering System Implementation
    Ou, Jiawei
    Pellacini, Fabio
    COMPUTER GRAPHICS FORUM, 2010, 29 (04) : 1269 - 1277
  • [26] AN ALGORITHM FOR CHECKING INCORRECTNESS OF A RULE IN EQUIVALENT TRANSFORMATION PROGRAMS
    Mabuchi, Hiroshi
    Miyajima, Shinya
    INTERNATIONAL JOURNAL OF INNOVATIVE COMPUTING INFORMATION AND CONTROL, 2015, 11 (01): : 327 - 347
  • [27] Hybrid Type Checking
    Knowles, Kenneth
    Flanagan, Cormac
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2010, 32 (02):
  • [28] TYPE CHECKING WITH UNIVERSES
    HARPER, R
    POLLACK, R
    THEORETICAL COMPUTER SCIENCE, 1991, 89 (01) : 107 - 136
  • [29] Preemptive type checking
    Grech, Neville
    Fischer, Bernd
    Rathke, Julian
    JOURNAL OF LOGICAL AND ALGEBRAIC METHODS IN PROGRAMMING, 2018, 101 : 151 - 181
  • [30] TYPE CHECKING IN THE LARGE
    LEVY, MR
    LECTURE NOTES IN COMPUTER SCIENCE, 1989, 371 : 137 - 145