Tutorial: Reasoning with, about and for Constraint Handling Rules
Constraint reasoning finds more and more applications. The rule-based concurrent programming language Constraint Handling Rules (CHR) was introduced to ease the development of constraint reasoners. Currently several CHR libraries exist in languages such as Prolog, Haskell and Java, worldwide more than 50 projects use CHR. CHR and dozens of its constraint reasoners/solvers can be used online via the internet at http://www.pms.informatik.uni-muenchen.de/~webchr/
Over time it has become apparent that CHR and its extensions are useful for implementing reasoning systems in general, including deduction and abduction, since techniques like forward and backward chaining, bottom-up and top-down evaluation, integrity constraints, tabulation/ memoization can be easily implemented and combined. This 90 minute talk will consist of the following parts: - Introduction of CHR by examples, giving syntax and semantics of the language. - Reasoning with CHR: How to implement and combine reasoning systems in CHR. - Reasoning about CHR: How to analyse CHR programs, e.g. for operational equivalence and complexity. - Reasoning for CHR: How to automatically derive from a logical specification constraint reasoners that are executable in CHR.