Split and list: 8 clauses on 6 variables become 16 vectors
Split and list: 8 clauses on 6 variables become 16 vectors
Each row is one assignment to half the variables, written as the clauses it fails to satisfy: one column per clause, a filled square where that half leaves the clause unsatisfied. A pair of rows is orthogonal — no clause filled in both — exactly when the two halves together satisfy every clause, so the formula is satisfiable if and only if the two lists contain an orthogonal pair. This one is satisfiable, and the scan found a pair after 3 comparisons. The lists hold 8 and 8 vectors and 8 times 8 is 64, which is every assignment there is.
Drawn at 700 × 538, wide on the page.
Everything above is what reduction returns with no arguments; the caption is the
generator's own, computed from the numbers in the drawing rather than written beside it.
1 essay calls
reduction. The drawing above is what it returns with no arguments at all; every
call below passes it something, because a placement that passes nothing draws whichever
member of the family the generator happens to default to rather than the one its essay
argues about — which is what optcheck and figfill exist to catch.
Where it is called
Changing this generator changes every one of these figures.