semantic if