Higher-Order Dynamic Pattern Unification for Dependent Types and Records

While higher-order pattern unification for the λΠ-calculus is decidable and unique unifiers exists, we face several challenges in practice: 1) the pattern fragment itself is too restrictive for many applications; this is typically addressed by solving sub-problems which satisfy the pattern restriction eagerly but delay solving sub-problems which are non-patterns until we have accumulated more information. This leads to a dynamic pattern unification algorithm. 2) Many systems implement λΠΣ calculus and hence the known pattern unification algorithms for λΠ are too restrictive. In this paper, we present a constraint-based unification algorithm for λΠΣ-calculus which solves a richer class of patterns than currently possible; in particular it takes into account type isomorphisms to translate unification problems containing Σ-types into problems only involving Π-types. We prove correctness of our algorithm and discuss its application.

[1]  Orna Grumberg,et al.  A game-based framework for CTL counterexamples and 3-valued abstraction-refinement , 2007, TOCL.

[2]  Ian Stark,et al.  Free-Algebra Models for the pi-Calculus , 2005, FoSSaCS.

[3]  Warren D. Goldfarb,et al.  The Undecidability of the Second-Order Unification Problem , 1981, Theor. Comput. Sci..

[4]  Conor McBride,et al.  Outrageous but meaningful coincidences: dependent type-safe syntax and evaluation , 2010, WGP '10.

[5]  Healfdene Goguen Justifying Algorithms for beta-eta-Conversion , 2005, FoSSaCS.

[6]  Jaime G. Carbonell,et al.  Automated Deduction — CADE-16 , 2002, Lecture Notes in Computer Science.

[7]  DRAFT. April , 2004 .

[8]  D. Walker,et al.  A concurrent logical framework I: Judgments and properties , 2003 .

[9]  Jason Reed,et al.  Higher-order constraint simplification in dependent type theory , 2009, LFMTP '09.

[10]  Frank Pfenning,et al.  Tabled higher-order logic programming , 2003 .

[11]  Frank Pfenning,et al.  System Description: Twelf - A Meta-Logical Framework for Deductive Systems , 1999, CADE.

[12]  Carsten Schürmann,et al.  System Description: Delphin - A Functional Programming Language for Deductive Systems , 2008, LFMTP@LICS.

[13]  Dominic Duggan,et al.  Unification with Extended Patterns , 1998, Theor. Comput. Sci..

[14]  Dale Miller,et al.  Unification of Simply Typed Lamda-Terms as Logic Programming , 1991, ICLP.

[15]  Frank Pfenning,et al.  A hybrid logical framework , 2009 .

[16]  Bernd Löchner,et al.  Unification of Higher-Order patterns in a Simply Typed Lambda-Calculus with Finite Products and terminal Type , 1996, RTA.

[17]  Brigitte Pientka,et al.  Beluga: A Framework for Programming and Reasoning with Deductive Systems (System Description) , 2010, IJCAR.

[18]  U. Norell,et al.  Towards a practical programming language based on dependent type theory , 2007 .

[19]  Frank Pfenning,et al.  Contextual modal type theory , 2008, TOCL.

[20]  Carsten Schürmann,et al.  Pattern Unification for the Lambda Calculus with Linear and Affine Types , 2010, LFMTP.

[21]  Conal Elliott Extensions and applications of higher-order unification , 1990 .

[22]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[23]  M. Maher Unification via Explicit Substitutions: The Case of Higher-Order Patterns , 1996 .

[24]  Frank Pfenning,et al.  A Linear Spine Calculus , 2003, J. Log. Comput..

[25]  Dale Miller,et al.  Unification Under a Mixed Prefix , 1992, J. Symb. Comput..