A set of functions is complete if you can represent all truth functions using these connectives. For boolean logic, the truth functions are of the form .

For each , there are such functions. This comes from the fact that for a function , there are such functions.

DNF

Fact: is complete.
Proof Sketch: Construct a DNF for each function.

  • For every possible set of inputs that map to , create a conjunction of all the input variables. If an input variable is set to , then write the negation of that input variable
  • Create a disjunction of all conjunctions constructed in the above bullet point

Example 1: For the

Example 2: For the function , we have the following truth table:

ab
FFF
FTT
TFT
TTT

Theorem: Every Boolean function has a DNF.
(Proof is same construction as above; the completeness fact is a corollary of every boolean function having a DNF)

CNF

Theorem: Every Boolean function has a CNF.

Generalized disjunctions/conjunctions


![Note]- Tip for remembering brackets to disjunction/conjunction

  • Square brackets form the start of a capital ‘D’, so square brackets for Disjunction (OR)
  • Angled brackets form the start of a capital ‘C’, so angled brackets for Conjunction (AND)

Disjunction valuates to if any .
Conjunction valuates to if for all we have .

Normal Form Algorithms

Alpha, Beta Formulas

Correctness of NF Algorithms

Proposition: Throughout running algorithm, we produce a sequence of logically equivalent formulas.
Proof: First 3 cases are trivial.

Case - Alpha Expansion:

Case - Beta Expansion:

Termination

Konig’s Lemma: A tree that is finitely branching but infinite must have an infinite branch.

Rank

We define rank as a measure of how “simple” a formula is.