Techniques And Tools For The Verification Of Concurrent Systems