Automating Formal Verification of Distributed Systems via Property-Driven Reductions