Generalized Support and Formal Development of Constraint Propagators
James Caldwell, Ian P. Gent, Peter Nightingale

TL;DR
This paper introduces a generalized framework for designing and proving the correctness of constraint propagators in constraint programming, expanding support notions and enabling systematic derivation of efficient algorithms.
Contribution
It generalizes the concept of support in constraint propagators and provides a formal methodology for deriving correct, efficient propagators from support properties using Curry-Howard isomorphism.
Findings
Generalized support concepts for constraint propagators.
A formal methodology for deriving correct propagators.
Case studies demonstrating efficient algorithm derivation.
Abstract
Constraint programming is a family of techniques for solving combinatorial problems, where the problem is modelled as a set of decision variables (typically with finite domains) and a set of constraints that express relations among the decision variables. One key concept in constraint programming is propagation: reasoning on a constraint or set of constraints to derive new facts, typically to remove values from the domains of decision variables. Specialised propagation algorithms (propagators) exist for many classes of constraints. The concept of support is pervasive in the design of propagators. Traditionally, when a domain value ceases to have support, it may be removed because it takes part in no solutions. Arc-consistency algorithms such as AC2001 make use of support in the form of a single domain value. GAC algorithms such as GAC-Schema use a tuple of values to support each…
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 · Model-Driven Software Engineering Techniques · AI-based Problem Solving and Planning
