Type Preservation as a Confluence Problem

This paper begins with recent work by Kuan, MacQueen, and Findler, which shows how standard type systems, such as the simply typed lambda calculus, can be viewed as abstract reduction systems operating on terms. The central idea is to think of the process of typing a term as the computation of an abstract value for that term. The standard metatheoretic property of type preservation can then be seen as a confluence problem involving the concrete and abstract operational semantics, viewed as abstract reduction systems (ARSs). In this paper, we build on the work of Kuan et al. by showing show how modern ARS theory, in particular the theory of decreasing diagrams, can be used to establish type preservation via confluence. We illustrate this idea through several examples of solving such problems using decreasing diagrams. We also consider how automated tools for analysis of term-rewriting systems can be applied in testing type

[1]  Nikolai Tillmann,et al.  Parameterized unit tests , 2005, ESEC/FSE-13.

[2]  Benjamin C. Pierce,et al.  Mechanized Metatheory for the Masses: The PoplMark Challenge , 2005, TPHOLs.

[3]  Robert Bruce Findler,et al.  A Rewriting Semantics for Type Inference , 2007, ESOP.

[4]  Frank Pfenning,et al.  Automated Theorem Proving in a Simple Meta-Logic for LF , 1998, CADE.

[5]  Yoshihito Toyama,et al.  Proving Confluence of Term Rewriting Systems Automatically , 2009, RTA.

[6]  Samson Abramsky,et al.  Handbook of logic in computer science. , 1992 .

[7]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[8]  Bernhard Beckert,et al.  Verification of Object-Oriented Software. The KeY Approach - Foreword by K. Rustan M. Leino , 2007, The KeY Approach.

[9]  Chucky Ellison,et al.  A Rewriting Logic Approach to Type Inference , 2009, WADT.

[10]  J. van Leeuwen,et al.  Theorem Proving in Higher Order Logics , 1999, Lecture Notes in Computer Science.

[11]  Grigore Rosu,et al.  A Rewriting Logic Semantics Approach to Modular Program Analysis , 2010, RTA.

[12]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[13]  Bernhard Beckert,et al.  Must Program Verification Systems and Calculi Be Verified ? , 2022 .

[14]  Matthias Felleisen,et al.  Semantics Engineering with PLT Redex , 2009 .

[15]  Vincent van Oostrom Confluence by Decreasing Diagrams , 2008, RTA.

[16]  Jürgen Giesl,et al.  Automatic Termination Proofs in the Dependency Pair Framework , 2006, IJCAR.