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.

Truth table for the feature-flag example showing columns for each predicate atom and a final Out column.
Truth table for the feature-flag expression. Predicate atoms (like age >= 18) are columns alongside boolean inputs.

Column types

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.

Truth table with don't-care rows shown in italics with a ? in the output column.
Don't-care rows are italicised. The simplifier is free to assign either output to these 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.

Note
For expressions with many predicate atoms, the truth table can grow very large. Use the Coverage or Decision Table tabs for a more compact view of predicate-heavy expressions.

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.