Material nonimplication
(aka "abjunction" or "implies not") is my favorite boolean operator because, while
it's pretty much useless for electronics or computing, you can build a complete
functioning circuit using NIMPLY logic, which I will now ramble about.
I'll be using ⥇ to represent the operation here since the Unicode symbol that
looks closest to the mathematical one (U+219B)
has some rendering issues on my machine.
First off, what the operator means is that A ⥇ B is true if and only if B
is true but A is false. So it's essentially an odd AND. This also means
it's not communitive like most boolean operators since swapping A and B get
different results.
So with a constant B = 1, we can get NOT.
A ⥇ 1 ⇔ ¬A
Then since it's just an odd variant of AND, we can negate A to turn it into an
actual AND.
(A ⥇ 1) ⥇ B ⇔ ¬A ⥇ B ⇔ A ∧ B
By inverting B instead of A, we get a NOR gate instead.
A ⥇ ¬B ⇔ A ⥇ (B ⥇ 1) ⇔ A ↓ B
Interestingly, the NIMPLY operator works great for defining XOR as "A OR B but not A AND B".
(A ∧ B) ⥇ (A ∨ B) ⇔ A ⊕ B
In summary:
NOT: ¬A ⇔ A ⥇ 1
OR: A ∨ B ⇔ (A ⥇ (B ⥇ 1)) ⥇ 1
NOR A ↓ B ⇔ A ⥇ (B ⥇ 1)
AND: A ∧ B ⇔ (A ⥇ 1) ⥇ B
NAND: A ↑ B ⇔ ((A ⥇ 1) ⥇ B) ⥇ 1
XOR: A ⊕ B ⇔ ((A ⥇ 1) ⥇ B) ⥇ ((A ⥇ (B ⥇ 1)) ⥇ 1)
XNOR: A ⊙ B ⇔ (((A ⥇ 1) ⥇ B) ⥇ ((A ⥇ (B ⥇ 1)) ⥇ 1)) ⥇ 1
In conclusion, it's likely I got some math wrong somewhere and TIL what the
mathematical symbol for exclusive nor is.