Saved in:
Bibliographic Details
Main Authors: Rechenberger, Sascha, Frühwirth, Thom
Format: Preprint
Published: 2025
Subjects:
Online Access:https://arxiv.org/abs/2505.22155
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866912400033185792
author Rechenberger, Sascha
Frühwirth, Thom
author_facet Rechenberger, Sascha
Frühwirth, Thom
contents Constraint Handling Rules (CHR) is a rule-based programming language which is typically embedded into a general-purpose language. There exists a plethora of implementations of CHR for numerous host languages. However, the existing implementations often reinvent 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 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 introduce an execution algorithm for FreeCHR. We derive it from the refined operational semantics of CHR, which resolve the issues introduced by the very abstract semantics. We also prove soundness of the algorithm with respect to the very abstract semantics of FreeCHR. Hereby we provide a unified and an easy to implement guideline for new CHR implementations, as well as an algorithmic definition of the refined operational semantics.
format Preprint
id arxiv_https___arxiv_org_abs_2505_22155
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle An instance of FreeCHR with refined operational semantics
Rechenberger, Sascha
Frühwirth, Thom
Programming Languages
Constraint Handling Rules (CHR) is a rule-based programming language which is typically embedded into a general-purpose language. There exists a plethora of implementations of CHR for numerous host languages. However, the existing implementations often reinvent 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 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 introduce an execution algorithm for FreeCHR. We derive it from the refined operational semantics of CHR, which resolve the issues introduced by the very abstract semantics. We also prove soundness of the algorithm with respect to the very abstract semantics of FreeCHR. Hereby we provide a unified and an easy to implement guideline for new CHR implementations, as well as an algorithmic definition of the refined operational semantics.
title An instance of FreeCHR with refined operational semantics
topic Programming Languages
url https://arxiv.org/abs/2505.22155