Constraint Functional Logic Programming over Finite Domains
Antonio J. Fernandez, Teresa Hortala-Gonzalez, Fernando Saenz-Perez, and Rafael del Vado-Virseda

TL;DR
This paper introduces CFLP(FD), a lazy functional logic programming language that integrates finite domain constraints, enhancing expressiveness and demonstrating competitive performance compared to existing systems.
Contribution
It presents the syntax, semantics, and implementation of CFLP(FD), combining functional programming with finite domain constraints in a novel, expressive language.
Findings
CFLP(FD) is more expressive than traditional CLP(FD)
The implementation is competitive with existing systems
CFLP(FD) outperforms similar approaches in performance
Abstract
In this paper, we present our proposal to Constraint Functional Logic Programming over Finite Domains (CFLP(FD)) with a lazy functional logic programming language which seamlessly embodies finite domain (FD) constraints. This proposal increases the expressiveness and power of constraint logic programming over finite domains (CLP(FD)) by combining functional and relational notation, curried expressions, higher-order functions, patterns, partial applications, non-determinism, lazy evaluation, logical variables, types, domain variables, constraint composition, and finite domain constraints. We describe the syntax of the language, its type discipline, and its declarative and operational semantics. We also describe TOY(FD), an implementation for CFLPFD(FD), and a comparison of our approach with respect to CLP(FD) from a programming point of view, showing the new features we introduce. And,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsConstraint Satisfaction and Optimization · Logic, Reasoning, and Knowledge · Formal Methods in Verification
