История изменений
Исправление ival, (текущая версия) :
A::ensure => absent должно повлечь С_i::ensure => absent для всех C_i'тых
Если существует хотя бы один С_i c ensure == present, то A::ensure тоже должно быть present
Эти два утверждения эквивалетны, согласно двум правилам:
Правило контропозиции A->B влечет not B -> not A. Например, утверждение «если человек является админом, то он бородат» влечет «если человек не бородат, то он не админ»
Правило обращения кванторов: not \exists x P(x) <-> \forall x not P(x): утверждение «не существует бородатых админов» эквивалентно утверждению «все админы безбородые»
Исходная версия ival, :
A::ensure => absent должно повлечь С_i::ensure => absent для всех C_i'тых
Если существует хотя бы один С_i c ensure == present, то A::ensure тоже должно быть present
Эти два утверждения эквивалетны, согласно двум правилам:
Правило контропозиции A->B влечет not B -> not A. Например, утверждение «если человек является админом, то он бородат» влечет «если человек не бородат, то он не админ»
Правило обращения квантором: not \exists x P(x) <-> \forall x not P(x): утверждение «не существует бородатых админов» эквивалентно утверждению «все админы безбородые»