Towards a constraint solver for proving confluence with invariant and equivalence of realistic CHR programs
Christiansen, H. & Kirkeby, M. H. (2019). “Towards a constraint solver for proving confluence with invariant and equivalence of realistic CHR programs”. In Functional and Constraint Logic Programming, 2019, 26th International Workshop, WFLP 2018, Frankfurt/Main, Germany, September 6, 2018, Revised Selected Papers. A part of Lecture Notes in Computer Science, Vol. 11285, pp. 112–130. DOI: 10.1007/978-3-030-16202-3_7
Confluence of a nondeterministic program ensures a functional input-output relation, freeing the programmer from considering the actual scheduling strategy, and allowing optimized and perhaps parallel implementations. The more general property of confluence modulo equivalence ensures that equivalent inputs are related to equivalent outputs, that need not be identical. Confluence under invariants is also considered. Constraint Handling Rules (CHR) is an important example of a rewrite based logic programming language, and we aim at a mechanizable method for proving confluence modulo equivalence of terminating CHR programs. While earlier approaches to confluence for CHR programs concern an idealized logic subset, we refer to a semantics compatible with standard Prolog-based implementations. We specify a meta-level constraint language in which invariants and equivalences can be expressed and manipulated as is needed for confluence proofs, thus extending our previous theoretical results towards a practical implementation.