このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

場合分けは論理ORか論理ANDか?

計算や証明で場合分けをすることがあります。場合分けされた命題があったとき、それぞれのケースとなる命題達を論理ORして解釈すべきか? それとも論理ANDして解釈すべきか? どっちでしょう。

「場合分けなんだから、そりゃ論理ORでしょ」と答える人が多そうです。「場合分けは論理OR」とカタクナに信じているとマズい場面もあります*1\newcommand{\mr}[1]{\mathrm{#1}} 
\newcommand{\Imp}{\Rightarrow}


この記事で出てくる変数はすべて実数の変数だとします。例えば、x, y という変数が出てきたら、x\in {\bf R}, y\in {\bf R} だと仮定します。

場合分けを使う例として、絶対値関数 \mr{abs} の定義を挙げましょう。

  1. x \ge 0 のとき: \mr{abs}(x) = x
  2. x \lt 0 のとき: \mr{abs}(x) = -x

これは、実数が非負(正またはゼロ)の場合と、負の場合の2つのケースに場合分けして定義しています。

次に、実数に関する命題について考えてみましょう。

  • x^2 \ge 0

出てくる変数は実数だと約束しているので、x\in {\bf R} です。また、特定の実数について述べているわけではなくて、すべての〈任意の〉実数に関することですから、次のように書くのが正確です。

  • \forall x\in {\bf R}.\, x^2 \ge 0

この命題が正しいことを納得してもらうために、次のように説明すればいいでしょう。

  1. もし実数 x が正かゼロだったら、二乗して正かゼロになるよね。
  2. もし実数 x が負だったら、マイナスかけるマイナスがプラスになるから、二乗して正になるよね。
  3. 結局、どんな実数 x でも二乗すれば正かゼロになるだろ。

ここでも場合分けが使われています。どんな実数でも非負か負だからということで、次の2つのケースを考えます。

  1. x \ge 0
  2. x \lt 0

この2つのケースは論理OR(記号 \lor)してイイですが、論理AND(記号 \land)するとダメです。

  • x \ge 0 \lor x  \lt 0 はイイ
  • x \ge 0 \land x  \lt 0 はダメ

“イイ/ダメ”とは、論理OR/論理ANDで結合した後の命題が“真/偽”であることです。しかし、変数 x が自由に値を代入可能な状態では、代入した値で真偽が変わってしまうので、次のように書くのが正確です。

  • \forall x\in {\bf R}.\, x \ge 0 \lor x  \lt 0 はイイ
  • \forall x\in {\bf R}.\, x \ge 0 \land x  \lt 0 はダメ

ここまでの話では「場合分けは論理OR」はそのとおりです。

非負か負の2つのケースに分けて、それぞれに対して「二乗してどうなるか」を述べると:

  1. x \ge 0 \Imp x^2 \ge 0
  2. x \lt 0 \Imp x^2 \gt 0

「場合分けは論理OR」だとすると、

  • 2つのケースを論理ORで結合してイイ
  • 2つのケースを論理ANDで結合してはダメ

ほんとでしょうか?

  • \forall x\in {\bf R}.\, (x\ge 0 \Imp x^2 \ge 0)\land (x \lt 0 \Imp x^2 \gt 0) はダメ?

ダメじゃないですよね。

場合分けのケースと言ったとき、実数全体を2つの部分集合に分割する話と、分割したそれぞれの部分集合上で命題を考える話があります。後者の意味で場合分けした各命題が正しいなら、それらを論理ANDで結合しても正しいので問題ありません。

「場合分けは論理OR」というキャッチフレーズから、場合分けして得られた各ケースの条件付き命題が正しくても、それらを(論理ORはいいけど)論理ANDしてはダメだと思いこんでいるとしたら、それは誤解です。

*1:ふとしたキッカケから、以前「場合分けは論理OR」で困った経験を思い出してこの記事を書きました。