🤖 AI Summary
Existing CHR embedding implementations lack a unified semantic foundation, impeding maintainability and compromising correctness guarantees. This paper addresses the semantic gap between the abstract operational semantics and concrete execution in the FreeCHR framework. We propose, for the first time, a refined, executable operational semantics for FreeCHR and formalize and verify it in Coq. Specifically, we prove that our refined semantics constitutes a sound concretization of FreeCHR’s original abstract semantics, and further establish its strong equivalence to the standard CHR refined operational semantics. Consequently, we rigorously demonstrate behavioral and expressive equivalence between FreeCHR and mainstream CHR systems. This work provides the first unified, formally verified semantic bridge for CHR embeddings across diverse host languages, enabling principled implementation, interoperability, and verification of CHR-based constraint solvers.
📝 Abstract
Constraint Handling Rules (CHR) is a rule-based programming language that which is typically embedded into a general-purpose language with a plethora of implementations. However, the existing implementations often re-invent the way to embed CHR, which impedes maintenance and weakens assertions of correctness. To formalize and thereby unify the embedding of CHR into arbitrary host languages, we recently introduced the framework FreeCHR and proved it to be a valid representation of classical CHR. Until now, this framework only includes a translation of the very abstract operational semantics of CHR which, due to its abstract nature, introduces several practical issues. In this paper we present a definition of the refined operational semantics for FreeCHR and prove it to be both, a valid concretization of the very abstract semantics of FreeCHR, and an equivalent representation of the refined semantics of CHR. This will establish implementations of FreeCHR as equivalent in behavior and expressiveness to existing implementations of CHR. This is an extended preprint of a paper submitted to the the 41st International Conference on Logic Programming.