Boolean formula
An expression built from variables taking values in {false,true} and logical connectives. An assignment gives each variable a truth value.
REFERENCE SHEET
Connect logical specifications to finite computations on bits.
Before this Proof techniques
An expression built from variables taking values in {false,true} and logical connectives. An assignment gives each variable a truth value.
A formula is satisfiable if some assignment makes it true; valid if every assignment does. Unsatisfiable means no assignment works.
A finite directed acyclic network of gates, inputs, and outputs. Unlike a formula tree, a circuit may reuse a subcomputation through multiple outgoing wires.
Negating a conjunction gives a disjunction of negations; negating a disjunction gives a conjunction of negations.
Every Boolean function can be represented using AND, OR, and NOT; NAND alone also suffices.
Given an assignment and an acyclic circuit, evaluate gates in topological order in time linear in the number of gates and wires.
Combinational logic implements bit-level arithmetic and control functions.
Encode a finite collection of requirements as a formula and search for a satisfying assignment.
01 / Compute
Try P=false first.
It is satisfiable with P=false and Q=true. It is not valid: P=true makes the conjunction false.
02 / Construct
Feeding the same bit into both NAND inputs negates it.
NOT P is P NAND P. Let R=P NAND Q. Then R NAND R equals P AND Q.
These sheets use this topic as a prerequisite.
Further reading and full-length treatments: