We present a method for specifying and verifying networks of non-deterministic processes that communicate by asynchronous message-passing. The method handles safety and deadlock properties. Networks are specified in an operational manner by transition systems. We say that the specification A implements another specification B if every safety and deadlock property true of A also is true of B. We establish a proof rule for verifying that A implements B in this sense. The proof rule is based on simulation between the states of A and B, and is shown to be complete under the assumption that B is deterministic. We illustrate the method by applying it to the alternating bit protocol.