{'fraction_non_alphanumeric': 0.020689655172413793, 'fraction_numerical': 0.0, 'mean_word_length': 5.3791208791208796, '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}}
Decomposition of Sequential Behavior Using Interface Specification and Complementation

Decomposition of system behavior along functional boundaries into interacting sequential components is a key step in 
top-down system design. In this paper, we present sequential decomposition, a method for factoring sequential components 
from a system specification based on interface specifications of the components. The resulting components can be 
independently synthesized, or realized using off-the-shelf components. We introduce interface specification language (ISL), 
based on finite-state machine semantics, to specify the input/output behavior of synchronous sub-systems. A component is 
factored from a system by embedding an implementation of the complement of its interface into the system description. The 
composition of a machine with its complement is shown to be isomorphic to the machine, and the composition of a machine 
with an implementation of its component is shown to be a safe interaction. We apply sequential decomposition to a 
non-trivial example, a special-purpose computer with Scheme programming language primitives as its instructions.