論理演算

Jan 26 2023
論理演算と集合に対する演算との間には同等の関係があります。たとえば、次の論理ステートメントを考えてみましょう。「雨が降っているということは、空に雲があることを意味します。

論理演算と集合に対する演算との間には同等の関係があります。たとえば、次の論理ステートメントを考えてみましょう。

「雨が降っているということは、空に雲があることを意味します。」

雲がなければ雨は降らないでしょう。「雨が降っている場所のセット」と「雲がある場所のセット」という 2 つの場所のセットを取得し、最初のセットが厳密に 2 番目のセットに含まれていることを示すことができます。

同様に、コンピューター サイエンスでも、型推論は型間の論理演算に依存しており、型はその型に属するすべてのオブジェクトのセットと考えることができます (そのようなオブジェクトが少なくとも 1 つある場合、その型にはデータが入力されていると言えます。そうでない場合は、その型が設定されていると言えます) 。空です。 )

プログラムは型を見つけたいオブジェクトを処理するため、型推論は論理証明を使用し、入力された型を見つけることを目的としています。

上記の等価性のため、ここではBooleの精神に基づいてセットを使用した論理演算を説明します。セットに対する各操作は、論理コネクタと論理表記を使用して表現されます。

説明のために、整数AおよびB の2 つの区間を入力セットとして使用します。

答え: 0…10

B: 5…18

補体

コネクタ: なし

結果には、 Aにないすべての要素が含まれます。

зA: …-1、11…

連合

コネクタ: または

結果には、 Aまたは Bにあるすべての要素が含まれます。

A ∨ B: 0…18

交差点

コネクタ: および

結果には、 A とBの両方にある要素のみが含まれます。

A ∧ B: 5…10

選言的結合

コネクタ: else (xor)

結果には、 A にのみ存在する要素が含まれ、それ以外の場合はBにのみ存在します。

A ⊕ B: 0…4、11…18

含意

コネクタ: (暗黙的に)の場合のみ

結果には、 A にある要素がBにある場合にのみ含まれます。

これは、前の操作よりも理解するのが少し難しくなります。結果には 2 つのセットの共通部分が含まれていることが簡単にわかります。その要素はAとBにあり、条件を満たします。

しかし、残りのBはどうなるでしょうか?

交差の外側にあるBの要素はAにないことがわかります。ということは条件を満たしているということでしょうか?読み方によって異なります。

  • 結果には、 Aにある要素が含まれます( Bにある場合のみ)。
  • 結果には要素が含まれます (要素がBにある場合にのみA に含まれます)。

A ⇒ B: …-1、5…

別の例としては、「雲がある場合にのみ雨が降る」などがあります。雨が降っているのに雲がない場所が存在する場合、条件は満たされません。この文では雨が降っていない場所については条件を付けていないので、曇っていても曇っていなくてもどちらでも大丈夫です。

違い

コネクタ: ではありません

結果には、 Aには あるがBには存在しない要素のみが含まれます。

興味深いことに、今回は特別な読み方はありませんが、その違いは実際には暗示の補完です。AとBの順序が重要であることにも注意してください。

A - B: 0…4