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 条
  • [41] Type Checking with Rewriting Rules
    Racordon, Dimi
    PROCEEDINGS OF THE 17TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON SOFTWARE LANGUAGE ENGINEERING, SLE 2024, 2024, : 171 - 183
  • [42] STATIC TYPE CHECKING OF MULTIMETHODS
    AGRAWAL, R
    DEMICHIEL, LG
    LINDSAY, BG
    SIGPLAN NOTICES, 1991, 26 (11): : 113 - 128
  • [43] Polymorphic CSP type checking
    Gao, P
    Esser, R
    PROCEEDINGS OF THE 24TH AUSTRALASIAN COMPUTER SCIENCE CONFERENCE, ACSC 2001, 2001, 23 (01): : 156 - 162
  • [44] EXTENDED TYPE CHECKING IN EIFFEL
    JONES, R
    JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 1992, 5 (02): : 59 - 62
  • [45] ABSTRACT INTERPRETATION FOR TYPE CHECKING
    FILE, G
    SOTTERO, P
    LECTURE NOTES IN COMPUTER SCIENCE, 1991, 528 : 311 - 322
  • [46] Type-checking smalltalk
    Drossopoulou, Sophia
    Karathanos, Stephan
    Yang, Dan
    JOOP - Journal of Object-Oriented Programming, 1996, 8 (08):
  • [47] TYPE CHECKING COHERENT OVERLOADING
    VOLPANO, DM
    SOFTWARE-CONCEPTS AND TOOLS, 1995, 16 (02): : 81 - 85
  • [48] Type Checking Circus Specifications
    Xavier, Manuela
    Cavalcanti, Ana
    Sampaio, Augusto
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2008, 195 (0C) : 75 - 93
  • [49] TYPE CHECKING IN A TYPELESS LANGUAGE
    HIGLEY, CJ
    COMPUTER JOURNAL, 1976, 19 (02): : 166 - 169
  • [50] Dynamic type checking in Jalapeno
    Alpern, B
    Cocchi, A
    Grove, D
    USENIX ASSOCIATION PROCEEDINGS JAVA(TM) VIRTUAL MACHINE RESEARCH AND TECHNOLOGY SYMPOSIUM, 2001, : 41 - 51