Compositional Verification of Distributed Objects with Asynchronous Method Calls