Open2

含意(論理包含)

Takeshi YonekuboTakeshi Yonekubo

含意(論理包含)

  • 論理演算の一種
  • A→B と表記され、「AならばB」と読む
  • Aが真ならば、Bは必ず真であるという条件を表す
  • Aが偽の場合は、Bの真偽に関わらず全体としては真になる

真偽表で見るのがわかりやすい。

A B A→B
T T T
T F F
F T T
F F T

「Aが真であるのにBが偽」のケースのみ、偽となる論理演算である。

Takeshi YonekuboTakeshi Yonekubo

含意の論理演算子を持つプログラミング言語

含意(Implication) を演算子として持つプログラミング言語は少ない。

Visual Basic (VBA)

Imp 演算子 より:

A > B Imp B > C

OCL

プログラミング言語ではないが、OCLのBooleanは implies をサポートしているらしい。
OMGのドキュメントより:

context Person inv:
    self.wife->notEmpty() implies self.wife.gender = Gender::female

上記サンプルは、Person の不変条件として、wife が空でないならば、wifegenderfemaleであることを表明している。
(ちょっと今の時代だと、トランスジェンダー的にどうなのよ、って例なのだけど。)