•(foo||!bar) && (foo||bar) == (foo ||
(!bar&&bar))
•We can use a truth table
(F||!F) && (F||F) == (F ||
(!F&&F))
(T && F)
== (F || F) is true
(F||!T) && (F||T) == (F || (!T&&T))
(F && T)
== (F || F) is true
(T || !F) && (T || F) == (T ||
(!F && F))
(T && T)
== (T || F) is true
(T || !T) && (T || T) == (T ||
(!T && T))
(T && T)
== (T || F) is true
(foo||!bar) && (foo||bar) ==
(foo || (!bar&&bar))
This is
tautology. It is always true.