Редактировать: я добавил дополнительное объяснение, учитывая ваш комментарий (который сейчас удален).
A и B - две логические переменные. Например, в программе A может быть firstTestOK, а B может быть secondTestOK. Каждый из A и B может быть либо true (1), либо false (0).
A + B означает A или B, что верно, если A или B истинно. A * B означает, что A и B истинны, только если истинны как A, так и B.
Все комбинации для A, B:
- A ложно и B ложно
- A ложно, а B верно
- A верно, а B ложно
- A верно, а B верно
Это можно записать более компактно в виде таблицы истинности следующим образом:
A B
0 0
0 1
1 0
1 1
Вас попросили показать, что A * (B + A B) - это то же самое, что A B. Итак, для каждой комбинации мы работаем с левой стороны, которая является A * (B + A B), и с правой стороны, которая является A B:
A B C=A*B D=B+C A*D = A*B
0 0 0 0 0 0
0 1 0 1 0 0
1 0 0 0 0 0
1 1 1 1 1 1
Итак, глядя на все комбинации в двух последних столбцах, мы видим, что результаты одинаковы, поэтому A D = A (B + A B) равно A B.
Поскольку левая сторона немного сложна, я делал это поэтапно, разбивая ее на части, вводя C и D.