private some $int - инвариант func(int $int) - преконишн func(): int - посткондишн
а то, что у них логика захардкожена и нельзя условия писать - это уже не важно)))
это типы. инварианты и прочие атрибуты логики Хоара это более широкая штука. То что ты их типами выражаешь это да. Но от этого оно не перестает быть типами