{'fraction_non_alphanumeric': 0.020903010033444816, 'fraction_numerical': 0.0, 'mean_word_length': 6.041176470588235, '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}}
Another Tool in the Box: Why use Formal Methods for Autonomous Systems?

Formal Methods are mathematically-based techniques for software design and engineering, which enable the unambiguous description of, and reasoning about, a system's behaviour. Autonomous systems use software to make decisions without human control, they are often safety-critical, and are increasingly being introduced into everyday settings; autonomous systems need robust development and verification methods. This position paper described how Formal Methods are an effective tool for development and verification of autonomous systems. During design, they enable unambiguous description of requirements; in development, formal specification can be verified against requirements; software components may be synthesied from verified specification; and behaviour can be monitored at runtime and compared to its original specification. Modern Formal Methods often include highly automated tool support, which enables exhaustive checking of a system's state space. This paper argue that Formal Methods are another tool in the box for developing safe autonomous systems, alongside other robust software engineering techniques.