僕だけかもしれないけど、あるケースにおいてドモルガンの法則を使わないと間違えることがある。
例えば、緯度、経度が(135.5278526, 34.6416962) 以外 ある処理を行うとする。
ぱっと思いつくと以下の通りとなってしまう。
(lon != 135.5278526 && lat != 34.6416962)
でも何だか変だなと思って、ドモルガンの法則使って書き直すと以下のとおり。
!(lon == 135.5278526 && lat == 34.6416962)
=> (lon != 135.5278526 || lat != 34.6416962)
&&ではなく、||が正しい。
結局、「(135.5278526, 34.6416962)以外」という言葉が曲者で、
「緯度が135.5278526 かつ 経度が34.6416962 であるもの以外」
=> 「緯度が135.5278526でない または 経度が34.6416962ではない」
となるんだろうな。
おそらく、頭のなかの思考としては、緯度・経度が異なる集合に属するものという認識が薄いんだろうなぁ。
単なる数値として見てしまっている。
そもそも同じ集合だと仮定した場合、式としては A = a1 && A = a2 となり、これは常にfalseなのか。。。
やっぱり捉え方がナンカおかしいんだろうな。