Correspondence Matrices · practice and reference
Prerequisite reference
Use this sheet before symbolic work, binary addressing or the executable lab. It supplies prerequisites; the lessons teach the CM constructions.
Boolean values and operators
Each fact is 0 (false) or 1 (true). NOT flips a bit. AND needs both inputs. OR accepts at least one. Exclusive-or, written ⇕, accepts exactly one. Implication X⇒Y fails only at X=1,Y=0. Equivalence X⇔Y means equal values.
| X | Y | X∧Y | X∨Y | X⇕Y | X⇒Y |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 | 0 | 1 |
Parentheses set scope: ¬(X∧Y) differs from (¬X)∧Y. Useful laws are X∧(Y∨Z)=(X∧Y)∨(X∧Z), ¬(X∧Y)=¬X∨¬Y, ¬(X∨Y)=¬X∧¬Y, X⇕X=0 and X⇕¬X=1. XOR equals OR only for disjoint terms: two true terms give XOR=0 and OR=1.
Read the object and operation
A numeric CM stores outputs under declared axes. A logical matrix (LM) stores formulas that still need a consistent valuation. A graph stores operations and dependencies. A hash identifies a structure or file under a specified contract; it does not prove semantic equivalence.
Introduce the generic operator CM as [Θ] before choosing it. For example, with true-first X rows and Y columns, [∧]=[[1,0],[0,0]]. A formula in one cell is an entry, not the name of the whole matrix.
A column times a row is an outer product. A row–CM–column contraction ANDs paired entries and XORs their products. An entrywise operation combines matching coordinates without contraction. A tensor expands blocks. A repartition changes addresses while preserving the value at each complete assignment.
Axes and binary addresses
Paper examples generally place 1 before 0. Thus input bit 0 selects the second physical position. Repository examples place 0 before 1 and use zero-based binary indices. Always read both the variable lists and their order.
For row bits A,B, the repository row index is 2A+B. For column bits C,D it is 2C+D. Assignment ABCD=1011 with rows AB and columns CD has row 10₂=2 and column 11₂=3. The address does not itself say what output is stored there. With rows A and columns BCD, the same input has address (1,3).
For k independent free inputs there are 2^k assignments. With r row bits and c column bits there are 2^r × 2^c = 2^(r+c) cells. This differs from 2^(2^k) possible Boolean functions.
Support and fixed inputs
An input is in semantic support if changing it changes the answer in at least one context. The ambient universe can include irrelevant inputs. For F=(A∧B)⇕(C∨D), fix C=1. The restricted rule is ¬(A∧B): D no longer affects it. A still matters because toggling A when B=1 changes the output. Toggling A when B=0 does not prove A irrelevant everywhere.
There are four A/B input cases. Keeping an irrelevant D display axis repeats those outputs across eight cells. Fixed inputs, remaining support and displayed axes are separate choices.
Python preparation
The lab expects imports, loops, lists, dictionaries, assertions and running a script from a terminal. Var(i) maps to the name xi, such as Var(0) to x0. Build expression objects with the provided constructors; Python's ordinary and and or are not those constructors. Give the lookup every input by its declared name.
Start the beginner setup and complete worked lab. A point answer, satisfying-count request and complete truth output are different contracts. The current named lazy CM wrapper returns a dense array; the word “lazy” does not waive materialization cost.
Two cautions for later lessons
Lesson 13's quotient means directional removal A∖B=A∧¬B. It is different from grouping equal cofactors into quotient classes in a decomposition extension. In Lesson 22 all timings are hypothetical; no measured advantage follows from that arithmetic.
Older videos retain historical notation. This companion uses uppercase Θ, short implication ⇒ and XOR ⇕. Use the notation and axis labels given in each lesson.

