The SOCS computational logic approach to the specification and verification of agent societies