Section 4.5.7 Conditional Expressions governing an if expression requires this result, as explained under dynamic semantics. In particular all of your predicates "are evaluated and yield False." As a result "the value of the if expression is True." An annotation elaborates: "Else is required unless the if expression has a boolean type, so the last sentence can only apply to if expression with a boolean type." See also In classical logic, why is (𝑝⇒𝑞) True if both 𝑝 and 𝑞 are False?