Verifying Abstract Components Within Concrete Software Environments