Truth Table
The Truth Table tab enumerates all input assignments and shows the output for each row.
Overview
The truth table is generated for the active binding. Each row is one assignment of all free input variables. The final column (Out) shows whether the binding evaluates to true (1) or false (0) for that assignment.
age >= 18) are columns alongside boolean inputs.Column types
- Boolean inputs: each free boolean variable is a column with values 0 or 1.
- Predicate atoms: each unique predicate (e.g.
age >= 18) is a column with values 0 or 1, representing whether that predicate is true for that row. - Out: the final output column. Green 1 means true, dimmed 0 means false, amber ? means the output depends on a don't-care.
Don't-care rows
Rows where a don't-care variable affects the output appear in italics with a ? in the Out column. The simplifier is allowed to assume any value for the output in those rows.
Predicate columns
When an expression contains predicate atoms (age >= 18, region in {CA, US}), the truth table treats each unique predicate as a boolean column. The rows enumerate all combinations of true/false values for those predicates plus the regular boolean inputs.
This means the truth table may include logically impossible rows — e.g. a row where age < 18 = 1 and age >= 18 = 1 simultaneously. Logic Studio does not filter these out unless you use the bucket-aware decision table or the Z3 solver.
Constrained variables
Variables constrained to 0 or 1 in the Inputs panel are fixed in the truth table — only rows consistent with the constraints are shown. This lets you inspect a subset of the full truth table.
Scale limits
The truth table is generated for up to 2n rows where n is the number of free atoms (boolean inputs plus predicate atoms). For large expressions this can be slow. The table truncates at an internal limit to avoid browser hangs.
For expressions with many variables, use the Simplify or Solver panels instead of the full truth table.