どもです。
自分では対偶で認識していたのですが、人に教えるには補集合の方が分かり易いぞ。
となったので、次の機会のために図に残しておきます。
い && ろ
SQL的には、い AND ろ
数学的には、い∩ろ(共通部分)
!(い && ろ) | (!い || !ろ)
SQL的には、!(い AND ろ) または (!い OR !ろ)
数学的には、い∩ろ(共通部分の補集合) または い∪ろ(補集合の和集合)
補集合になると、一気に分からなくなる人が増えると思う。
「!( イ かつ ロ )」の対偶なので、「!イ または !ロ」と同義になる。
※上図の逆、または「イ以外」と「ロ以外」それぞれの合算。
集合の場合、これをドモルガンの法則という。
い || ろ
SQL的には、い OR ろ
数学的には、い∪ろ(和集合)
!(い || ろ) | (!い && !ろ)
SQL的には、!(い OR ろ) | (!い AND !ろ)
数学的には、い∪ろ(和集合の補集合) または い∩ろ(補集合の共通部分)
「!( イ または ロ )」の対偶なので、「!イ かつ !ロ」と同義になる。
※上図の逆、または「イ以外」と「ロ以外」の共通する部分なので、イでもロでもない部分。
また、
要素が増えても考え方は同じ。
い∩ろ∩は(共通部分) ⇒ い∩ろ∩は(共通部分の補集合) = い∪ろ∪は(補集合の和集合)