Programming Finite-Domain Constraint Propagators in Action Rules
Neng-Fa Zhou

TL;DR
This paper introduces AR, a new language for implementing finite-domain constraint propagators, combining goal-oriented and event-driven models, enabling flexible and efficient constraint programming.
Contribution
The paper presents AR, a novel language that enhances the implementation of constraint propagators with greater descriptive power and flexibility than existing indexical-based systems.
Findings
AR can implement various consistency algorithms including interval and arc-consistency.
Extended B-Prolog with AR outperforms other CLP(FD) systems in benchmarks.
Demonstrated effective implementation of constraints like all_distinct and linear equality.
Abstract
In this paper, we propose a new language, called AR ({\it Action Rules}), and describe how various propagators for finite-domain constraints can be implemented in it. An action rule specifies a pattern for agents, an action that the agents can carry out, and an event pattern for events that can activate the agents. AR combines the goal-oriented execution model of logic programming with the event-driven execution model. This hybrid execution model facilitates programming constraint propagators. A propagator for a constraint is an agent that maintains the consistency of the constraint and is activated by the updates of the domain variables in the constraint. AR has a much stronger descriptive power than {\it indexicals}, the language widely used in the current finite-domain constraint systems, and is flexible for implementing not only interval-consistency but also arc-consistency…
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
TopicsLogic, programming, and type systems · Logic, Reasoning, and Knowledge · Formal Methods in Verification
