Automatic Verification of Concurrent Systems using a Formula-Based Compositional Approach