“…Proving properties for concurrent systems is still a challenge, even though type systems offering guarantees of various forms of safety have been explored extensively. There are, for example, type systems guaranteeing deadlock and livelock freedom of processes [55,58,64,76], type systems for checking the correctness of communications among processes, such as session types [51], and type systems for proving the termination of processes [35,82]. However, little was known about the existence of type systems able not only to guarantee but also to characterise some relevant property of concurrent processes, i.e., yielding completeness in addition to soundness, until the intersection type system in [33].…”