Relational Verification of Distributed Systems Via Weak Simulations