Modular verification of shared-memory concurrent system software