Так скажем
!(!$a or $b) === true
совпадает с !$a or $b === false
.
Таким образом, !$a or $b
должно быть ложным, что означает, что !$a
и $b
должны быть оба ложными, что, в свою очередь, означает, что $a
должно быть истинным, а $b
должно быть ложным.
В конце это !(!$a or $b)
эквивалентно $a and !$b
.
$a $b !(!$a or $b) $a and !$b
T T F F
T F T T
F T F F
F F F F
Мы также можем доказать это, используя булеву алгебру и Теорема де Моргана
¬ (¬A∨B) = ¬ (¬A) ∧¬B = A∧¬B