Stipulate that we want to choose some boolean function → on two inputs to represent “if P, then Q”. Then we want T→T=T,T→F=F or what are we even doing with our lives.
So we have four choices for how to define F→T and F→F. The standard choice says both are true. What about other choices?
Suppose we have F→F=F. Then we’ve translated “if P, then Q” into something that asserts Q and maybe (depending on F→T) also asserts P. That seems like a bad translation. So let’s say F→F=T. (Notably, if we add “undefined”, then F→F=U has the same problem, when P and Q are defined it lets P→Q be true only if Q is true.) Without this, we can’t really translate “if P, then Q. Not Q. Therefore, not P,” because (P→Q)∧¬Q is a contradiction. (Which does still give us ¬P, but it also gives us P, so.)
All that’s left is F→T. If we say this is false, then our “if P, then Q” is translated into something that means ”P and Q are either both true, or both false”, or P=Q. That seems like a bad translation too.
Basically, “if P, then Q” just doesn’t translate very well into boolean logic, but all the other ways to translate it seem worse.
Stipulate that we want to choose some boolean function → on two inputs to represent “if P, then Q”. Then we want T→T=T,T→F=F or what are we even doing with our lives.
So we have four choices for how to define F→T and F→F. The standard choice says both are true. What about other choices?
Suppose we have F→F=F. Then we’ve translated “if P, then Q” into something that asserts Q and maybe (depending on F→T) also asserts P. That seems like a bad translation. So let’s say F→F=T. (Notably, if we add “undefined”, then F→F=U has the same problem, when P and Q are defined it lets P→Q be true only if Q is true.) Without this, we can’t really translate “if P, then Q. Not Q. Therefore, not P,” because (P→Q)∧¬Q is a contradiction. (Which does still give us ¬P, but it also gives us P, so.)
All that’s left is F→T. If we say this is false, then our “if P, then Q” is translated into something that means ”P and Q are either both true, or both false”, or P=Q. That seems like a bad translation too.
Basically, “if P, then Q” just doesn’t translate very well into boolean logic, but all the other ways to translate it seem worse.
Thanks for posting this. I didn’t realise that there were such good reasons for this convention!