Download presentation
Presentation is loading. Please wait.
Published byJarod Leuty Modified over 9 years ago
1
1 Pierangelo Dell’Acqua Dept. of Science and Technology Linköping University pier@itn.liu.se Constraint programming 2001 November 13th 2001 http://www.ida.liu.se/labs/logpro/ulfni/cp2001/
2
2 Overview 1 Motivation 2 Language CHR 3 Declarative and operational semantics 4 Properties 5 Examples of CHR constraint solvers
3
3 Based on FTheory and Practice of Constraint Handling Rules Thom Frühwirth, J. Logic Programming 1994:19, 20:1-679 FExamples CHR constraint solvers available at: www.informatik.uni-muenchen.de/~fruehwir/chr/
4
4 Black-box vs Glass-box solvers FIn most systems constraint solving is hard-wired in a built-in constraint solver in a low-level language: black-box approach 3efficiency 3non-extensible, unpredictable, hard to debug FSome systems facilitate defining new constraints and solvers: glass-box approach 3improved control of propagation and search 3examples CHR, HAL,...
5
5 Constraint Handling Rules (CHR) FDeclarative programming language for the specification and implementation of constraint solvers and programs Black-box Host language (Prolog, Lisp, … ) CHR-solver Application CHR-constraints built-in constraints FCHR-constraint solvers are open and flexible, can be maintained, debugged and analysed
6
6 CHR by example The partial order relation X Y as a user-defined constraint: Computation: A=<B C=<A B=<C C=<A A=<B propagates C=<B by transitivity C=<B B=<C simplifies to B=C by antisymmetry A=<B C=<A simplifies to A=B by antisymmetry since B=C A=B B=C X= X=Y | true.reflexivity X= X=Y.antisymmetry X= X=<Z.transitivity
7
7 CHR syntax A CHR-program is a finite set of CHR-rules. There are three kinds of CHR-rules: HeadHconjunction of CHR-constraints GuardGconjunction of built-in constraints BodyBconjunction of built-in and CHR-constraints SimplificationH G | B PropagationH = => G | B SimpagationH1 \ H2 G | B
8
8 Declarative semantics Simplification rule H G | B h ( g (G) ( H b ( B ) ) ) Propagation rule H = => G | B h ( g (G) ( H b ( B ) ) ) Simpagation rule H1 \ H2 G | B h 1 h 2 ( g (G) (H1 H2 b (H1 B)))
9
9 Declarative semantics (2) Declarative semantics of a CHR-program P: Sem(P) = L P, CT where L P is the logical reading of the CHR-rules in P and CT is a theory for built-in constraints
10
10 Operational semantics A state is a tuple F,E,D where: F is a conjunction of CHR- and built-in constraints (goal store) E is a conjunction of CHR-constraints (CHR-store) D is a conjunction of built-in constraints (built-in constraints store)
11
11 CHR transitions Solve C F, E, D F, E, D2 if C is a built-in constraint and CT |= (C D) D2 Introduce H F, E, D F, H E, D if H is a CHR-constraint Simplify F, H2 E, D B F, E, H=H2 D if (H G | B) in P and CT |= D h (H=H2 G)
12
12 CHR transitions (2) Propagate F, H2 E, D B F, H2 E, H=H2 D if (H = => G | B) in P and CT |= D h (H=H2 G)
13
13 Initial and final states An initial state consists of a goal G and empty constraint stores: G,true,true A final state is either of the form: (i) F,E,false failed final state or of the form: (ii) true,E,D successful final state where no transition is applicable and D false
14
14 CHR computations A computation of a goal G is a sequence S 0, S 1, … of states with S i S i+1 beginning with the initial state S 0 = G,true,true and ending with a final state or diverging The logical meaning of a state F,E,D , which occurs in a computation for G, is x (F E D), where x are the variables in F,E,D but not in G An answer of a goal G is the final state of a computation for G
15
15 Example CHR calculus X= X=Y | true.reflexivity X= X=Y.antisymmetry X= X=<Z.transitivity A=<B C=<A B=<C, true, true Introduce 3 true, A=<B C=<A B=<C, true Propagate C=<B, A=<B C=<A B=<C, true Introduce true, A=<B C=<A B=<C C=<B, true Simplify B=C, A=<B C=<A, true Solve true, A=<B C=<A, B=C Simplify A=B, true, B=C Solve true, true, A=B B=C
16
16 Logical equivalence of states CHR transitions preserve the logical meaning of states: Lemma Let P be a CHR program and G a goal. If C is the logical meaning of a state in a computation of G, then L P, CT |= ( G C) There is no distinction between successful and failed computations
17
17 Correspondence between semantics Theorem (Soundness) Let P be a CHR program and G a goal. If G has a computation with answer C, then L P, CT |= ( C G) Theorem (Completeness) Let P be a CHR program and G a goal with at least one finite computation. Let C be a conjunction of constraints. If L P, CT |= (G C), then G has a computation with answer C2 such that L P, CT |= ( C C2)
18
18 Example: completeness The completeness theorem does not hold if G has no finite computations: Let P be { p p } and G the goal p. Since L P is {p p}, it holds that L P,CT |= p p, but G has only an infinite computation
19
19 Example: failed computations The completeness theorem is weak for failed computations: Let P be: We have that L P, CT |= q, but q has no failed computation. It has a successful derivation with answer q. { p q, p false }
20
20 Confluence Confluence: The answer of a goal G is always the same, no matter which of the applicable rules are applied { p q, p false } is not confluent { p q, p false, q false} is confluent
21
21 Soundness and Completeness revisited Theorem (Strong Soundness and Completeness) Let P be a terminating and confluent CHR program, G a goal and C a conjunction of constraints. Then the following are equivalent: L P, CT |= (C G) G has a computation with answer C2 such that: L P, CT |= (C C2) Every computation of G has an answer C2 such that: L P, CT |= (C C2)
22
22 CLP + CHR Any CLP language can be extended with CHR - Allow clauses for CHR constraints: introduce choices - Regard a predicate as a constraint and add CHR rules for it Idea: Don’t know and don’t care nondeterminism combined in a declarative way
23
23 CLP+CHR language A CLP+CHR program is a finite set of : (i)CLP clauses for predicates and CHR constraints, and (ii)CHR rules for CHR constraints. A CLP clause is of the form: H :- B 1,…,B k (k 0) an atom or a CHR constraint not a built-in constraint conjunction of atoms, CHR constraints and built-in constraints
24
24 CLP+CHR language (2) The logical meaning of a CLP clause is given by Clark’s completion Backward compatibility Labelling declarations (see def. 6.1 of JLP paper) are dropped, easily simulated H :- B label-with H if G lw, H G | H2, lw H2 :- B CHR constraint new predicate new CHR constraint
25
25 CLP+CHR transitions Unfold (revisited) H2 F, E, D B F, E, H=H2 D if (H:-B) in P, H2 is a predicate and CT |= D h (H=H2) Label (revisited) F, H2 E, D B F, E, H=H2 D if (H:-B) in P, H2 is a CHR constraint and CT |= D h (H=H2)
26
26 Examples of CHR solvers Several constraint solvers have been written in CHR, including new constraint domains such as terminological and temporal reasoning bool.plboolean constraints arc.plarc-consistency over finite domains interval.plinterval domains over integers and reals list.plequality constraints over concatenation of lists
27
27 Sicstus Prolog + CHR A CHR rule in SicstusProlog+CHR is of the form: H G | B H = => G | B H1 \ H2 G | B where: H is a conjunction of CHR-constraints G is a conjunction of atoms and built-in constraints B is a conjunction of atoms, built-in and CHR-constraints A CHR rule can be fired if its guard G is true Note that during the proof of the guard G no new binding can be generated for variables that occur also in H
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.