数学や論理学において、空虚な真理とは、前件が満たされないために真となる条件文または普遍文(特に条件文に変換できる普遍文)のことである。[ 1 ] [ 2 ] [ 3 ]このような文の例としては、「東京がスペインにあるならば、エッフェル塔はボリビアにある」などがある。
文が空虚に真であるとは、実際には何も言っていないという意味だと言われることがある。[ 4 ]例えば、「部屋にあるすべての携帯電話は電源が切れている」(別の言い方をすれば「この部屋にあるすべてのxについて、 xが携帯電話であれば、xは電源が切れている」)という文は、部屋に携帯電話が存在しない場合に真となる。この場合、「部屋にあるすべての携帯電話は電源が入っている」という文も空虚に真となる。この2つの論理積「部屋にあるすべての携帯電話は電源が入っていて、かつ部屋にあるすべての携帯電話は電源が切れている」は空虚にしか真になり得ず、「部屋には携帯電話がない」ことを意味している。
空虚な発言は、言葉の皮肉を生み出す修辞技法としても用いられる。よくある例としては、「イギリス女王」の反論がある。例えば、「私は泳ぎが得意です」という発言に対して、「あなたが泳ぎが得意なら、私はイギリス女王です」と、明白な誤った結論を用いて、発言が空虚であり、したがって前提が誤っていることを示唆する。[ 5 ]
これらの命題は、前件が偽であるという事実によって、後件の真偽値について推論することができないため、空虚な真理とみなされます。本質的に、実質条件文に基づく条件文は、結論または後件(例:「エッフェル塔はボリビアにある」)が真か偽かに関わらず、前件(例:「東京はスペインにある」)が偽であれば真となります。これは、実質条件文がそのように定義されているためです。
日常会話でよく見られる例としては、「地獄が凍りつくとき…」や「豚が空を飛ぶとき… 」といった、あり得ないことを表す慣用句として使われる条件句があり、これは、与えられた(不可能な)条件が満たされるまでは、話し手はそれに対応する(通常は偽りまたは不条理な)命題を受け入れないことを示しています。
純粋数学では、空虚に真である命題は一般にそれ自体では興味の対象とはならないが、数学的帰納法による証明の基本ケースとして頻繁に現れる。[ 6 ]この概念は、純粋数学だけでなく、古典論理を使用する他のあらゆる分野にも関連性がある。
数学以外の分野では、論理的には妥当であっても、空虚な真理の形をとった記述は、誤解を招く可能性がある。そのような記述は、実際には存在しない対象について、もっともらしい主張をしているように見える。例えば、子供が親に「お皿の野菜を全部食べた」と正直に言ったとしても、そもそも子供のお皿には野菜がなかったとしたらどうだろうか。この場合、親は子供が実際に野菜を食べたと信じてしまうかもしれないが、それは事実ではない。
声明実質的な条件文に似ている場合、「空虚に真実」である。、前件部が誤りであることが知られている。[ 1 ] [ 2 ] [ 4 ]
適切な変換によってこの基本形式(実質条件文)に還元できる、空虚に真である命題には、以下の全称量化された命題が含まれる。
空虚な真理は、2つの真理値を持つ古典論理で最も一般的に現れます。しかし、空虚な真理は、例えば直観主義論理でも、上記と同じ状況で現れることがあります。実際、偽の場合、実質条件文を使用する論理では空虚な真理を生み出すだろう。[ 7 ]もしが必然的な虚偽である場合、厳密な条件の下では空虚な真実も生じる。
関連性論理などの他の非古典的論理では、代替条件文(反事実条件文の場合など)を使用することで、空虚な真理を回避しようとする場合があります。
多くのプログラミング環境には、アイテムのコレクション内のすべてのアイテムが何らかの述語を満たすかどうかを照会するメカニズムがあります。このようなクエリは、空のコレクションに対して常に真と評価されるのが一般的です。例:
every配列内の各要素に対して指定されたコールバック関数を一度実行し、コールバック関数が false を返す要素が見つかった場合にのみ停止します。特に、every空の配列に対してこのメソッドを呼び出すと、どのような条件でも true が返されます。[ 8 ]all()を返します。[ 9 ]これをより明確に表現する方法は、 は要素のいずれも でない場合に True を返す、と言うことです。TrueTrueall([1,1])==True; all([1,1,0])==False; all([])==Trueall()FalseIterator::all関数はイテレータと述語を受け取り、true述語がtrueイテレータによって生成されたすべての項目に対して返した場合、またはイテレータが項目を生成しなかった場合にのみ返します。[ 10 ]ANY_VALUE空虚な真実と関連付ける RDBMS の動作によって異なる場合があります。一部の RDBMS は、非 値が存在する場合でもを返す場合があります。[ 11 ]一部の DBMS では、または句での使用が許可されていない場合があります。nullnullfilter(...)over(.. )all値を返します。trueAll値を返します。truestd::all_of関数テンプレートはtrue空のコレクションに対して を返します。[ 12 ]⊥、コンストラクタなしで定義されている ) は、Curry–Howard 対応に従って、型レベルで「偽」です。このような型のパラメータは「不合理な」パターンと照合でき、そのようなパターンを含む方程式には右辺がありません。ex falso quodlibetの原理は、このように関数 として定義できます。この関数は、すべての命題 (つまり型) に対して、空虚に真である命題の証明となります。例えば、 の証明です。efq : ∀ {n} {a : Set n} → ⊥ → aefq⊥ → aa⊥ → ⊥数学と自然言語からの例をそれぞれ一つずつ挙げると、空虚な真理という概念がよくわかる。