Composing Programs in a Rewriting Logic for Declarative Programming
Juan M. Molina, Ernesto Pimentel
Abstract
Constructor-Based Conditional Rewriting Logic is a general framework for integrating first-order functional and logic programming which gives an algebraic semantics for non-deterministic functional-logic programs. In the context of this formalism, we introduce a simple notion of program module as an open program which can be extended together with several mechanisms to combine them. These mechanisms are based on a reduced set of operations. However, the high expressiveness of these operations enable us to model typical constructs for program modularization like hiding, export/import, genericity/instantiation, and inheritance in a simple way. We also deal with the semantic aspects of the proposal by introducing an immediate consequence operator, and studying several alternative semantics for a program module, based on this operator, in the line of logic programming: the operator itself, its least fixpoint (the least model of the module), the set of its pre-fixpoints (term models of the module), and some other variations in order to find a compositional and fully abstract semantics wrt the set of operations and a natural notion of observability.
Create a lesson
Related papers
Model Checking HyperRecHML is Decidable
Elli Anastasiadi, Kim Guldstrand Larsen, Martin Zimmermann
Two Variables and Two-Dimensional Structures
Bartosz Jan Bednarczyk, Daumantas Kojelis, Krzysztof Szymański
Reconstruction of continuous Archimedean t-norms from their section along an increasing curve
Gabriel Bauza-Llompart, Raquel Fernandez-Peralta, Marc Munar
Automating Observable Closure Analysis for Graph Transformation Models with MolFoundry
Marcel Friedrichs, Addie Jordon, Juri Kolčák et al.
Beyond LLM Judge: Mechanical Verification for Agentic Autoformalization
Anna Mei, Michael R. Douglas
Finite Satisfiability of Two-Variable Logic with Arbitrarily Many Successors
Artur Jeż, Jakub Michaliszyn, Piotr Witkowski