An Adequate, Denotational, Functional-Style Semantics for Typed FlatCurry

With the aim of putting type-based reasoning for functional logic languages, as recently explored by [5], on a formal basis, we develop a denotational semantics for a typed core language of Curry. Dealing with the core language FlatCurry rather than with full Curry suffices, since there exists a type-preserving translation from the latter into the former. In contrast to existing semantics for functional logic languages, we deliberately approach the problem "from the functional side". That is, rather than adapting approaches previously known from the study of (resolution-like) semantics for logic languages, we aim for a semantics in the spirit of standard denotational semantics for the polymorphic lambda calculus. We claim and set out to prove that the presented semantics is adequate with respect to an existing operational semantics. A particularly interesting aspect, we think, is that we give the first denotational treatment of recursive let-bindings in combination with call-time choice.

[1]  J. C. Gonz Alez-Moreno,et al.  An Approach to Declarative Programming Based on a Rewriting Logic , 2022 .

[2]  Joachim M. Buhmann,et al.  On Spatial Quantization of Color Images , 1998, ECCV.

[3]  Michal Walicki,et al.  Algebraic approaches to nondeterminism—an overview , 1997, CSUR.

[4]  Bernd Brassel,et al.  On a Tighter Integration of Functional and Logic Programming , 2007, APLAS.

[5]  Germán Vidal,et al.  An Operational Semantics for Declarative Multi-Paradigm Languages , 2002, WRS.

[6]  M. Schmidt-Schauß,et al.  Counterexamples to Simulation in Non-Deterministic Call-by-Need Lambda-Calculi with letrec , 2009 .

[7]  Levent Erkok,et al.  Value recursion in monadic computations , 2002 .

[8]  Gerhard Lakemeyer,et al.  Levesque's Axiomatization of only Knowing is Incomplete , 1995, Artif. Intell..

[9]  Simon L. Peyton Jones,et al.  Scrap Your Boilerplate , 2003, APLAS.

[10]  Joachim M. Buhmann,et al.  A Deterministic Annealing Framework for Unsupervised Texture Segmentation , 1996 .

[11]  Ernesto Pimentel,et al.  Composing Programs in a Rewriting Logic for Declarative Programming , 2003, Theory Pract. Log. Program..

[12]  Wolfram Burgard,et al.  Knowledge-Enhanced CO-monitoring in Coal-Mines , 1996, IEA/AIE.

[13]  Philip Wadler,et al.  Theorems for free! , 1989, FPCA.

[14]  Juan Rodríguez-Hortalá,et al.  Equivalence of Two Formal Semantics for Functional Logic Programs , 2007, Electron. Notes Theor. Comput. Sci..

[15]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[16]  Samson Abramsky,et al.  Domain theory , 1995, LICS 1995.

[17]  Juan Rodríguez-Hortalá,et al.  A Fully Abstract Semantics for Constructor Systems , 2009, RTA.

[18]  P. SESTOFTJ,et al.  Non-determinism in Functional Languages , 2008 .

[19]  Daniel Cremers,et al.  Efficient Nonlocal Means for Denoising of Textural Patterns , 2008, IEEE Transactions on Image Processing.

[20]  Joyce L. Vedral,et al.  Functional Programming Languages and Computer Architecture , 1989, Lecture Notes in Computer Science.

[21]  Daniel Seidel,et al.  Free theorems for functional logic programs , 2010, PLPV '10.

[22]  Francisco Javier López-Fraguas,et al.  An Approach to Declarative Programming Based on a Rewriting Logic , 1999, J. Log. Program..

[23]  Jens E. Wolff,et al.  The MyView System: Tackling the Interface Problem , 1997 .

[24]  Sebastian Fischer,et al.  Transforming Functional Logic Programs into Monadic Functional Programs , 2010, WFLP.