{'fraction_non_alphanumeric': 0.01814300960512273, 'fraction_numerical': 0.0, 'mean_word_length': 5.559440559440559, '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}}
A Survey of Formal Techniques for Hardware/Software Co-verification

A growing trend for today's intelligent automotive industry is co-design of hardware alongside embedded, low-level software that closely interacts with it. Formal techniques have emerged as alternative ways to ensure the quality and correctness of embedded systems, overcoming some of the deficiencies of traditional validation techniques such as simulation and testing. Tighter integration of hardware and software components makes a strong case for the need of formal co-verification tools. In order to provide insight into the scope of currently available formal techniques, we survey a variety of frameworks and techniques proposed in the literature and applied to actual designs. There are two main aspects about the application of formal co-verification techniques: unified property specification and co-verification framework used to specify desired properties.