Unearthing Semantic Checks for Cloud Infrastructure-as-Code Programs