We present ParTypes , a type discipline for parallel programs. The model we have in mind comprises fixed number of processes running and communicating via collective operations or point-to-point synchronous message exchanges. A describes protocol to be followed by each given program. the theory, core imperative programming language its operational semantics, prove that checking is decidable (up...