De Morgan's Law
দ্য মরগানের সূত্র
Negation ভেতরে ঢুকলে operator উল্টে যায় — `¬(p ∧ q) ≡ ¬p ∨ ¬q` এবং `¬(p ∨ q) ≡ ¬p ∧ ¬q`।
also: de morgan, demorgan
¬(p ∧ q) ≡ ¬p ∨ ¬q
¬(p ∨ q) ≡ ¬p ∧ ¬q
প্রয়োগ করলে তিনটা জিনিস একসাথে বদলায় — আর তৃতীয়টা সবাই ভুলে যায়:
- বাইরের
¬মুছে যায় - ভেতরের প্রতিটা term-এ
¬বসে - Operator উল্টে যায় ← এটাই সবচেয়ে গুরুত্বপূর্ণ
if (!(is_admin && is_verified)) // ঠিক
if (!is_admin || !is_verified) // ঠিক — De Morgan প্রয়োগ করে
if (!is_admin && !is_verified) // ভুল — সম্পূর্ণ ভিন্ন শর্ত
তৃতীয় লাইনটা লিখলে verified non-admin আর unverified admin — দুই দলই ভুলভাবে পার পেয়ে যাবে।
একই সূত্র তিন জায়গায়:
| ক্ষেত্র | রূপ |
|---|---|
| Logic | ¬(p ∧ q) ≡ ¬p ∨ ¬q |
| [[set]] | (A ∩ B)' = A' ∪ B' |
| [[quantifier]] | ¬∀x P(x) ≡ ∃x ¬P(x) |
তিনটাই একই Boolean lattice-এর ভিন্ন মডেল, তাই নিয়মও অভিন্ন।