Formalizing Compatibility and Substitutability in Communication Protocols Using I/O-Constraint Automata