{'fraction_non_alphanumeric': 0.020066889632107024, 'fraction_numerical': 0.0, 'mean_word_length': 5.2020725388601035, '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}}
Coherence Checking of Coercions in Plastic

Coercive Subtyping is a conceptually simple but powerful framework for subtyping in type theory. Recent work in Durham by Luo et al. on Coercive Subtyping has been partially implemented in the proof assistant`Plastic'. Plastic is an implementation of a variant of Martin-LL of's LF with inductive types, universes, and coercive subtyping. After discussing background theory and then the implementation of coercions, this paper considers the important issue of coherence. Where several coercions are applicable, coherence will guarantee that the computational result is the same in all cases. Checking coherence is a diicult problem for implementations. Previous implementations have tackled this problem by imposing restrictions on the coercions that may be used, which also limits the power of coercions, eg making them harder to use with deenitions. This paper considers ways around the problem in a less restricted setting. One possibility is to only check coherence of the coercions actually used, rather than trying to check it globally over all possible coercions whether they are used or not; this technique we call \dynamic coherence checking".