Formal Methods for Distributed Processing