Multiparty session types for dynamic verification of distributed systems