{'fraction_non_alphanumeric': 0.01078582434514638, 'fraction_numerical': 0.0015408320493066256, 'mean_word_length': 5.310679611650485, '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}}
Reducing Invariant Proofs To Finite Search via Rewriting

We present a tool-supported methodology for proving predicates invariant over all time on the behavior of systems by exploring a finite graph generated from the definition of the predicate using rewrite rules from proven ACL2 theorems. The methodology provides a means for proving invariants which avoids the complexity and cost of defining an inductive invariant while still allowing the proof of invariants for infinite-state systems. We present two examples of the application of the methodology: a simple critical section example, and a slightly more complex MESI cache coherence system.