Polymorphic computation systems: Theory and practice of confluence with call-by-value

Abstract We present a new framework of polymorphic computation rules that can accommodate a distinction between values and non-values. It is suitable for analysing fundamental calculi of programming languages. We develop a type inference algorithm and new criteria to check the confluence property. These techniques are then implemented in our automated confluence checking tool PolySOL . Its effectiveness is demonstrated through examination of various calculi, including the call-by-need lambda-calculus, Moggi's computational lambda-calculus, and skew-monoidal categories.

[1]  Makoto Hamana,et al.  Multiversal Polymorphic Algebraic Theories: Syntax, Semantics, Translations, and Equational Logic , 2013, 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science.

[2]  Makoto Hamana,et al.  Polymorphic Abstract Syntax via Grothendieck Construction , 2011, FoSSaCS.

[3]  Martin Odersky,et al.  The call-by-need lambda calculus , 1998, Journal of Functional Programming.

[4]  Tarmo Uustalu Coherence for Skew-Monoidal Categories , 2014, MSFP.

[5]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[6]  Kornel Szlachanyi,et al.  Skew-monoidal categories and bialgebroids , 2012, 1201.4981.

[7]  Bertram Felgenhauer,et al.  CSI: New Evidence - A Progress Report , 2017, CADE.

[8]  Makoto Hamana Higher-order semantic labelling for inductive datatype systems , 2007, PPDP '07.

[9]  Makoto Hamana Free S-Monoids: A Higher-Order Syntax with Metavariables , 2004, APLAS.

[10]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[11]  Makoto Hamana,et al.  How to prove your calculus is decidable: practical applications of second-order algebraic theories and computation , 2017, Proc. ACM Program. Lang..

[12]  Tobias Nipkow,et al.  Higher-Order Rewrite Systems and Their Confluence , 1998, Theor. Comput. Sci..

[13]  Marcelo P. Fiore,et al.  Second-Order Algebraic Theories - (Extended Abstract) , 2010, MFCS.

[14]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[15]  Yoshihito Toyama,et al.  Critical Pair Analysis in Nominal Rewriting , 2016, SCSS.

[16]  Gérard P. Huet,et al.  Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems , 1980, J. ACM.

[17]  Chung-Kil Hur,et al.  Second-order equational logic , 2010, CSL 2010.

[18]  Kazutaka Matsuda,et al.  The algebra of recursive graph transformation language UnCAL: complete axiomatisation and iteration categorical semantics , 2015, Mathematical Structures in Computer Science.

[19]  Makoto Hamana Correct Looping Arrows from Cyclic Terms - Traced Categorical Interpretation in Haskell , 2012, FLOPS.

[20]  Sam Staton,et al.  An Algebraic Presentation of Predicate Logic - (Extended Abstract) , 2013, FoSSaCS.

[21]  Dale Miller,et al.  A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification , 1991, J. Log. Comput..

[22]  Makoto Hamana,et al.  Semantic Labelling for Proving Termination of Combinatory Reduction Systems , 2009, WFLP.

[23]  Masahito Hasegawa,et al.  A Terminating and Confluent Linear Lambda Calculus , 2006, RTA.

[24]  Sam Staton,et al.  Algebraic Effects, Linearity, and Quantum Programming Languages , 2015, POPL.

[25]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[26]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[27]  D. Knuth,et al.  Simple Word Problems in Universal Algebras , 1983 .

[28]  Sam Staton,et al.  Instances of Computational Effects: An Algebraic Perspective , 2013, 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science.

[29]  Akihisa Yamada,et al.  Nagoya Termination Tool , 2014, RTA-TLCA.

[30]  Nicole Stender Template Metaprogramming for Haskell , 2014 .

[31]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[32]  Makoto Hamana,et al.  Confluence Competition 2018 , 2018, FSCD.

[33]  Ian Stark,et al.  Reducibility and TT-Lifting for Computation Types , 2005, TLCA.

[34]  S. Lane Categories for the Working Mathematician , 1971 .

[35]  Makoto Hamana Universal Algebra for Termination of Higher-Order Rewriting , 2005, RTA.

[36]  Albert Rubio,et al.  Normal Higher-Order Termination , 2015, ACM Trans. Comput. Log..

[37]  Tobias Nipkow,et al.  Higher-order critical pairs , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[38]  Makoto Hamana,et al.  Polymorphic Rewrite Rules: Confluence, Type Inference, and Instance Validation , 2018, FLOPS.

[39]  Thorsten Altenkirch,et al.  Monads need not be endofunctors , 2010, Log. Methods Comput. Sci..

[40]  Albert Rubio,et al.  Polymorphic higher-order recursive path orderings , 2007, JACM.