Truth Table¶
Logic enumeration — instantiates Predicate Criterion Formalization
Enumerates every combination of boolean inputs to make the predicate's composition behavior — how negation, AND, and OR change the result — explicit.
A Truth Table enumerates every possible combination of a predicate's boolean inputs and records the resulting truth value for each, laying the predicate's composition behavior completely open. Its defining purpose is semantic clarity, not action: it exists to show HOW negation, conjunction, and disjunction combine into the compound result — to make visible, for instance, that "not (A and B)" equals "not-A or not-B," or that an OR you intended as exclusive is behaving as inclusive. Because it lists all 2ⁿ rows it hides nothing about the logic; because its cells are truth values rather than instructions it says nothing about what to do with a result. It is the mechanism you reach for when a compound condition is subtly wrong and you need to see the logic itself, combination by combination.
Example¶
A safety-critical controller reads three independent temperature sensors and must decide whether "over-temperature" is TRUE. The engineers want a two-out-of-three majority so a single stuck sensor can neither trip the alarm nor mask a real fault. To confirm that the expression (A AND B) OR (A AND C) OR (B AND C) really encodes "at least two of three," they draw the truth table: eight rows for the three sensor inputs, each row showing the compound output.
Reading down the table, they verify the output is TRUE exactly on the rows with two or three highs and FALSE on all others. They also catch, in an earlier draft written as A AND B OR C, that operator precedence made the alarm fire whenever C alone was high — a single-sensor trip they never intended, invisible in the code but glaring in the table. The table didn't tell them what the controller should do on an alarm; it told them precisely what their expression means across every input combination, which is what let them trust the composition before wiring it to anything.
How it works¶
- Enumerate all input combinations. For n atomic conditions, list all 2ⁿ rows; completeness is the whole point — no combination is assumed away.
- Fill the compound value. For each row, evaluate the expression and record
TRUE/FALSE, exposing how the operators combine the atoms. - Read columns for equivalence. Comparing the output columns of two expressions proves whether they are logically equivalent (verifying a De Morgan rewrite, say) or pinpoints where they diverge.
- Surface precedence and vacuous rows. The all-false and all-true rows, and the rows where flipping one atom flips the result, reveal precedence bugs and cases where a term does no work.
Tuning parameters¶
- Input arity — how many atomic conditions. Each added input doubles the rows; beyond four or five the full table becomes unwieldy, pushing toward decomposition or symbolic simplification.
- Value set — pure two-valued (T/F) versus adding a third "unknown" column to see how the composition treats a missing input.
- Layout — Karnaugh-style grouping to expose simplification opportunities versus plain lexicographic ordering.
- Don't-care marking — flagging combinations that cannot occur, which both shrinks the table and documents the assumption that they can't.
When it helps, and when it misleads¶
Its strength is that it is the ground truth of composition: it settles arguments about what a compound condition means, proves equivalences, and exposes precedence and De Morgan mistakes.[n1]
Its failure mode is combinatorial blow-up — the table is tractable only for a handful of inputs, and forcing a large predicate into one invites omitted rows and error. A subtler trap is treating enumerated abstract combinations as if they were real cases: the table says nothing about which combinations actually occur or what evidence establishes each input. The classic misuse is using a truth table to justify an action policy — it defines the logic's meaning but not what any outcome warrants doing. The discipline that guards against this is to keep inputs few (simplify or decompose first) and to hand off "what happens on each outcome" to a mechanism built for it.
How it implements the components¶
composition_contract— the table IS the explicit contract for how atomic predicates combine: it fixes, for every input combination, what negation/AND/OR produce, so downstream formulas cannot silently re-interpret the compound.truth_evaluation_logic— by listing the output for all combinations, it fully specifies the necessary-and-sufficient structure of the compound predicate — exactly which combinations of atoms are sufficient forTRUE.
It does NOT map outcomes to actions or supply a default for uncovered situations — the boundary_case_library of enumerated rule-cases and the indeterminate_case_policy else-row belong to Decision Table, which consumes a truth table's settled semantics rather than establishing them.
Related¶
- Instantiates: Predicate Criterion Formalization — the truth table is the composition-semantics instance, clarifying how a compound criterion is built.
- Sibling mechanisms: Boolean Guard Clause · SQL WHERE Clause or Query Filter · Decision Table · Eligibility Criteria Checklist · Policy Definition of Terms · Predicate Version Registry · Test Case Matrix · Counterexample Register · Unknown-State Routing Rule
Editorial Notes¶
Form Classification¶
Form family: Representation, Specification & Plan
Rationale: Truth Table is defined in the frozen evidence as: Enumerates every combination of boolean inputs to make the predicate's composition behavior — how negation, AND, and OR change the result — explicit. Its operative deployed or enacted form is therefore Representation, Specification & Plan.
Nearest alternative: Analysis, Modeling & Optimization — Analysis, Modeling & Optimization can support this mechanism, but the evidence centers the concrete operation described above rather than the alternative family's defining operation.
Review outcome: Adjudicated after independent review; medium confidence.
Origin Attribution¶
Primary origin: Mathematics
Origin pattern: Cross-disciplinary synthesis
Present-day reach: Universal
Rationale: Truth table is rooted in formal proof, structure, transformation, and abstraction; historically, that field developed the core operation described here: enumerates every combination of boolean inputs to make the predicate's composition behavior — how negation, AND, and OR change the result — explicit.
Related originating lineages:
- Computer Science & Software Engineering — Software systems, algorithms, and data structures supplies a distinct formative lineage for the mechanism's truth table logic.
- Philosophy — Philosophical logic, epistemology, and normative reasoning supplies a parallel or contributing lineage for the mechanism's defining operation: enumerates every combination of boolean inputs to make the predicate's composition behavior — how negation, AND, and OR change the result — explicit.
Review resolution: The blind reviewers agree that mathematics is the primary origin and differ only on alternate origin disagreement, origin mode disagreement, domain reach disagreement, encyclopedia synthesis disagreement. I preserve every independently explained alternate from both records rather than imposing a numeric cap. I retain cross_disciplinary_synthesis because the combined evidence shows material contributions from several lineages. The broader reach of universal records portability separately from historical provenance; encyclopedia_synthesis=true preserves the affirmative synthesis judgment where either reviewer identified one.
Encyclopedia synthesis: The exact catalogued form synthesizes established practice rather than reproducing a single standard historical label.
Review outcome: Reconciled after independent review; high confidence.
Notes¶
[n1] De Morgan's laws — the equivalences NOT (A AND B) = NOT A OR NOT B and NOT (A OR B) = NOT A AND NOT B. They are the composition rules a truth table most often exists to verify, because negating a compound condition by hand is where intuition silently goes wrong. ↩