{'fraction_non_alphanumeric': 0.02028397565922921, 'fraction_numerical': 0.0, 'mean_word_length': 5.367741935483871, '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}}
Graph Grammars: A Comparison between Verification Methods

Graph grammars are a formal specification language well-suited to applications in which states have a complex topology (involving not only many types of elements, but also different types of relations between them) and in which behaviour is essentially data-driven, that is, events are triggered basically by particular configurations of the state. Many reactive systems are examples of this class of applications, such as protocols for distributed and mobile systems, simulation of biological systems, and many others. Graph grammars can be analysed through model-checking and theorem proving. Each verification technique has arguments for and against its use, but we can say that model-checking and theorem proving are complementary. The main aim of this paper is to present the main existing approaches for the analysis of graph grammars considering each one of these techniques, describing a brief comparative between them.