Just finished set theory a few weeks ago in Math 220 and I honestly found it quite interesting. The union, intersection, partition, and complement of sets all relate to probability in Stat 302. One may say that the intersection of the content of the 2 courses is non-empty… Jokes aside, props to Professor Brett Kolesnik for having engaging lectures taught at the right pace. You know a course is well taught when you rarely need to look at textbook explanations.

Anyways, after set theory came logic and statements. This came quite naturally to me due to my prior programming experience in first and second year. Simple operators such as:

Not/Negation (~)

Or/Disjunction (∨)

And/Conjunction (∧)

If/Implication (⇒)

If and only if/Biconditional (⟺)

had truth tables that I already knew, simply by thinking in terms of code. However, something new came up that troubled me. Logical equivalence theorems such as commutative, associative, distributive, and De Morgan’s laws were not anything I was familiar with. After some practice it was much easier to handle.

*Simple example*: Show that ~(P⇒Q) is logically equivalent to (P∧~Q)∨(Q∧~P)

Start with ~(P⇒Q)≡(P∧~Q)∨(Q∧~P)

~(P⇒Q)≡~((P⇒Q)∧(Q⇒P)) … by definition of biconditional

≡~(P⇒Q)∨~(Q⇒P) … by De Morgan’s Law

≡(P∧~Q)∨(Q∧~P) …∎