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:
a | b | |
---|---|---|
F | F | F |
F | T | T |
T | F | T |
T | T | T |
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.