{'fraction_non_alphanumeric': 0.021830985915492956, 'fraction_numerical': 0.0, 'mean_word_length': 5.766666666666667, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Framework for Dynamic Constraint Reasoning using Procedural Constraints

Many complex real-world decision problems, such as planning, contain an underlying constraint reasoning problem. The feasibility of a solution candidate then depends on the consistency of the associated constraint problem instance. The underlying constraint problems are invariably dynamic, as higher level decisions result in variables, values, and constraints being added and removed. In real-world reasoning applications, constraints may be arbitrarily complex, variables may have continuous domains, and neither variables nor values may be effectively enumerable beforehand. Such applications, therefore, present a number of significant challenges for a dynamic constraint reasoning mechanism. 
 
In this paper, we introduce a general framework for representing and reasoning about dynamic constraint networks arising from complex real-world applications. It is based on the use of procedures to represent and effectively reason about general constraints. The framework can handle arbitrary changes to the network, including the addition and deletion of variables and values. It can reason with real-valued variables, and utilize special-purpose reasoning methods, such as arithmetic problem solving, in the form of procedures. The resulting framework is based on a sound theoretical foundation, which guarantees termination and correctness.