{'fraction_non_alphanumeric': 0.028064992614475627, 'fraction_numerical': 0.0, 'mean_word_length': 5.336448598130841, '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}}
Exercises for teaching logic in a formal methods course: formalizing ERDs

In a first course in formal methods for software engineers, the emphasis on the topic of logic should be on using (first-order predicate) logic to specify and formally describe properties. In this paper, we suggest using ERDs (Entity-Relationship Diagrams) as support for formalization exercises. Starting from graphical descriptions (ERDs) and textual informal specification of various constraints, students have to produce an equivalent textual and formal specification. We present the notation we use in our course (Spec), some heuristics to obtain the formal concepts from ERDs and a small example.