[2] Brigitte can mix green with yellow paint
OR Brigitte can mix green with blue paint.
In the formalism of propositional logic it says: $(P \Rightarrow R) \vee (Q \Rightarrow R)$ with $R = P \wedge Q$. A truth table shows that this expression is a tautology. Now, from David Gries, "Compiler Construction for Digital Computers", John Wiley & Sons, 1971, we alternatively have:
c OR d is defined by IF c THEN TRUE ELSE d c AND d is defined by IF c THEN d ELSE FALSE NOT c is defined by IF c THEN FALSE ELSE TRUE c ==> d is defined by IF c THEN d ELSE TRUE c is defined by IF c THEN TRUE ELSE FALSEThus, in a sequential sense - according to Gries - the tautology $(P \Rightarrow R) \vee (Q \Rightarrow R)$ reads as follows.
if (if P then R else TRUE) then TRUE else (if Q then R else TRUE)In most programming languages boolean expressions indeed seem to be subject to "lazy evaluation" of the above kind. Therefore we can replace the abovementioned sequential expression by its combinatorical equivalent again: $((\neg P) \vee R) \vee ((\neg Q) \vee R_{\_}(R))$. With a little adjustment for the second variable $R$: the function $R_{\_}(R)$ is identical to $R$ but it contains an alarm message in addition, namely: ' observed! '. A little program in Pascal shall make clearer what's going on here:
program Rutten;
function r_(r : boolean) : boolean;
begin
Write(' observed! ');
r_ := r;
end;
procedure test;
var
p,q,r : boolean;
k : integer;
begin
Writeln('P':6,'Q':6,'R':6,'(P=>R)v(Q=>R)':16);
Writeln('-----------------------------------');
for k := 0 to 3 do
begin
p := ((k div 2) = 0);
q := ((k mod 2) = 0);
r := (p and q);
Writeln(p:6,q:6,r:6,((not p) or r) or ((not q) or r_(r)):12);
{ if (if p then r else true) then true else (if q then r else true) }
end;
end;
begin
test;
end.
Output (mind the absence of the alarm):
P Q R (P=>R)v(Q=>R)
-----------------------------------
TRUE TRUE TRUE TRUE
TRUE FALSE FALSE TRUE
FALSE TRUE FALSE TRUE
FALSE FALSE FALSE TRUE
The point is: the message ' observed! ' will never be observed!
[2] Brigitte can mix green with yellow paint
OR Brigitte has no blue paint.
Which sounds anyway more reasonable than the original statement.
It is also seen that the expression $(P \Rightarrow R) \vee (Q \Rightarrow R)$ is logically equivalent with this one:
$((\neg P) \vee R) \vee ((\neg Q) \vee R) \equiv ((\neg P) \vee (\neg Q) \vee (R \vee R))$.
The last instance of $R$ is obviously redundant.
Still anoher way of looking at our problem shall be presented.
For ease of notation, let's replace TRUE by $1$ and FALSE by $0$ in $(P \Rightarrow R) \vee (Q \Rightarrow R)$ with $R = (P \wedge Q)$.
Then, with the sequential interpretation and all possibilities covered:
if (if P then R else 1) then 1 else (if Q then R else 1) : in general if (if 0 else 1) then 1 [ ] : P = 0 if (if 1 then 0 ) else (if 0 [ ] else 1) : P = 1, Q = 0 if (if 1 then 1 ) then 1 [ ] : P = 1, Q = 1So for the second instance of $R$ we have, with all possible (0,1) specifications, empty spots [ ]; the second instance of $R$ it is not decidable. It is like it is not there at all! The accompanying Flowchart is in concordance with this observation:

if (if P then Q else 1) then 1 else (if Q then P else 1) : in general if (if 0 else 1) then 1 [ ] : P = 0 if (if 1 then 0 ) else (if 0 [ ] else 1) : P = 1, Q = 0 if (if 1 then 1 ) then 1 [ ] : P = 1, Q = 1Empty spots [ ] again. So the second instance of P is obviously redundant. As is clear as well from the Flowchart:

Not all propositional tautologies contain redundancies.
Time to present a counter example: $(P \Rightarrow Q) \Rightarrow (\neg Q \Rightarrow \neg P)$.
if (if P then Q else 1) then (if -Q then -P else 1) else 1 : in general if (if 0 else 1) then (if 1 then 1 ) : P = 0, Q = 0 if (if 0 else 1) then (if 0 else 1) : P = 0, Q = 1 if (if 1 then 0 ) else 1 : P = 1, Q = 0 if (if 1 then 1 ) then (if 0 else 1) : P = 1, Q = 1All instances of P and Q are decidable, none of these is redundant.


if (if (if P then Q else 0) then R else 1) then (if (if P then R else 1) then 1 else (if Q then R else 1)) else 1 : general if (if (if 0 else 0) else 1) then (if (if 0 else 1) then 1 [ ] : P = 0 if (if (if 1 then 0 ) else 1) then (if (if 1 then 0 ) else (if 0 [ ] else 1)) : P = 1 , Q = 0 , R = 0 if (if (if 1 then 0 ) else 1) then (if (if 1 then 1 ) then 1 [ ] : P = 1 , Q = 0 , R = 1 if (if (if 1 then 1 ) then 0 [ ] else 1 : P = 1 , Q = 1 , R = 0 if (if (if 1 then 1 ) then 1 ) then (if (if 1 then 1 ) then 1 [ ] : P = 1 , Q = 1 , R = 1LATE EDIT. Further elaboration of Question & Answer in: