{'fraction_non_alphanumeric': 0.011310084825636193, 'fraction_numerical': 0.0, 'mean_word_length': 5.555555555555555, '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}}
Three Algorithms and a Methodology for Amending Contracts for Choreographies

Distributed interactions are crucial design aspects to consider in modern applications. They can be suitably designed in terms of choreographies, that are global descriptions of the coordination of several distributed parties. Global assertions define contracts for choreographies by annotating multiparty session types with logical formulae to validate the content of the exchanged messages. The introduction of such constraints is a critical design issue as it may be hard to specify contracts that allow each party to be able to progress without violating the contract. We propose three algorithms to correct inconsistent global assertions. The methods are compared by discussing their applicability and the relationships between the amended global assertions and the original (inconsistent) ones. Also, we specify a methodology that exploits our algorithms to help designers to amend their choreographies. To show how the methodology can be applied we consider a simple scenario.