Boolean logic, proof, sets, relations and graphs: the structures underneath conditions, databases, permissions and dependency systems.
Topics
- Boolean Logic
- Truth tables, De Morgan's laws and simplifying conditions so each branch is easy to verify.
- Quantifiers and Precise Statements
- For-all and there-exists statements, and writing rules precisely enough to be tested or proved.
- Induction and Loop Invariants
- Proving that loops and recursive functions do what they claim for every input.
- Sets and Relations
- Union, intersection, difference and relations, which are the mathematics behind relational databases.
- Graphs
- Nodes and edges for dependencies, networks and permissions, with traversal, cycles and topological order.
- Counting and Combinatorics
- Counting possible cases, which shows why exhaustive testing is impossible and where combinatorial bugs hide.