Доказательство того, что одно условное выражение равно другому условному выражению - PullRequest
0 голосов
/ 19 января 2019

Как вы можете доказать, что два следующих выражения одинаково одинаковы?

(A && C) || (B && C)
(A || B) && C

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Доказательство того, что (A && C) || (B && C) ≡ (A || B) && C является простым.

Давайте начнем со списка всех возможных перестановок, а затем протестируем их.

const permutations = [
  [false, false, false],
  [false, false, true],
  [false, true, false],
  [false, true, true],
  [true, false, false],
  [true, false, true],
  [true, true, false],
  [true, true, true],
];

permutations.forEach(permutation => {
  const [A, B, C] = permutation;
  console.log(((A && C) || (B && C)) === ((A || B) && C));
});
0 голосов
/ 19 января 2019

Доказательство того, что (A && C) || (B && C) ≡ (A || B) && C является простым.

Давайте начнем с правой части уравнения и перейдем к левой.

С помощью закона логического распределения можно показать, что для всех предложений P, Q и R P && (Q || R) ≡ (P && Q) || (P && R).
С помощью закона логической коммутации можно показать, что для всех предложений P иQ, P && Q ≡ Q && P

Используя это, мы можем показать, что приведенные выше утверждения эквивалентны.
(A || B) && C ≡ C && (A || B) (через коммутативный закон)
C && (A || B) ≡ (C && A) || (C && B) (через распределительный закон)
(C && A) || (C && B) ≡ (A && C) || (B && C) (через коммутативный закон)
Следовательно, мы имеем, что (A && C) || (B && C) ≡ (A || B) && C

...