Specification and Verification of Multi-agent Systems