A Semantics and Proof System for Communicating Processes