Logical Rules of Natural Reasoning about Programs