Skip to content
VEYRAPLAY
English
Sudoku
TechniquesExpert

Contradiction Reasoning

Learn how to test one controlled Nonogram assumption, propagate only valid consequences, and reject that assumption when it makes a row, column, or clue set impossible.

Contradiction reasoning tests a controlled assumption and follows only valid deductions until either the branch remains possible or it becomes impossible. If an assumption inevitably violates the Nonogram constraints, the opposite state is forced.

This is advanced logic. It should come after ordinary line solving and constraint propagation have been exhausted.

Concept diagram

The core rule

Suppose an unresolved cell can only be filled or empty.

Temporarily assume it is empty.

If that assumption eventually causes a row or column to have no valid line pattern, the assumption cannot be part of any valid solution. Therefore the cell must be filled.

The same works in reverse.

The proof is the contradiction, not the fact that one branch “looks worse.”

Example: one wrong assumption destroys a clue

Consider this partially solved 5×5 puzzle state:

Rows:

  • 1 2
  • 1
  • 2
  • 4
  • 1 1

Columns:

  • 1 1
  • 1 1
  • 1 2
  • 1 2
  • 1 1

After ordinary propagation, the grid is:

???■?

???.?

.. ?■?

?■■■?

?.?.?

For the worked branch, assume R1C1 is empty.

Grid example
Given
1111121211
1212411
Result
1111121211
1212411

That assumption forces row 1 into its only remaining pattern, which then changes several columns. Continuing with ordinary line logic eventually makes row 2 contain two separated filled cells even though its clue is only 1.

Row 2 then has zero valid patterns. The branch is impossible.

Therefore the assumption R1C1 = empty is false, and R1C1 must be filled.

The important point is that every step after the assumption is an ordinary forced deduction. Only the initial branch choice is provisional.

Contradiction is different from blind guessing

Blind guessing means choosing a state because it seems plausible and continuing as though it were true.

Contradiction reasoning keeps the assumption explicitly provisional:

  1. choose one precise candidate state;
  2. propagate only logically forced consequences;
  3. look for a definite impossibility;
  4. if contradiction appears, undo the branch and commit to the opposite state;
  5. if no contradiction appears, do not claim the assumption is proven merely because it survived a short test.

A branch that remains possible is not automatically correct.

What counts as a contradiction?

Examples include:

  • a line has no arrangement matching its clues and known states;
  • a continuous filled run becomes longer than every compatible clue;
  • required clue blocks no longer have enough space to fit;
  • a confirmed filled cell cannot be covered by any clue block;
  • clue order becomes impossible;
  • a cell would need to be both filled and empty.

Aesthetic mismatch with the emerging picture is not a contradiction.

Use the smallest useful assumption

A good contradiction test usually begins with one cell or one tightly constrained block placement, not a long speculative chain of unrelated choices.

Prefer candidates where both branches have strong immediate consequences. That makes contradictions easier to detect and keeps the reasoning auditable.

Propagate deeply enough, but keep the branch controlled

After making the assumption, use the same tools as normal:

  • valid line patterns;
  • block bounds;
  • segment assignment;
  • completed blocks;
  • cross-referencing;
  • constraint propagation.

Do not introduce a second unsupported assumption inside the first branch. If the branch stalls without contradiction, return to the original state unless you are deliberately moving into search/backtracking territory.

Choose branches that are informative, not merely uncertain

Every unknown cell has two states, but most are poor contradiction candidates.

A useful branch tends to sit where either state would immediately change a tightly constrained line. Good candidates include:

  • a cell shared by only two remaining line patterns;
  • the endpoint of a block with two possible placements;
  • a clue-to-segment assignment with exactly two surviving alternatives;
  • a cell whose fill/empty state would complete or break a nearly fixed block.

Avoid branching on a loose cell in an open region where both states leave dozens of possibilities. That creates a long speculative tree without giving the constraints much leverage.

A contradiction proof can be very small:

assume X → one crossing line loses its last valid pattern → reject X.

Or it can require a longer cascade through several rows and columns before the impossibility appears.

The logical status is the same as long as:

  1. there is one clearly identified provisional assumption;
  2. every later mark is forced under that assumption;
  3. the final contradiction is explicit;
  4. no second unsupported guess is hidden inside the branch.

Once you begin adding additional arbitrary choices because the first branch stalled, you have moved from a clean contradiction proof toward general search/backtracking.

Keep a branch ledger

For difficult manual puzzles, mentally or physically separate three kinds of information:

  • root facts — permanent states proven before the assumption;
  • branch consequences — states forced only while the assumption is active;
  • branch conclusion — either an explicit contradiction or no conclusion yet.

When the branch fails, discard every branch consequence together. The only new permanent fact is the negation of the failed assumption.

When the branch merely stalls, discard the branch consequences and return to the root unchanged.

This discipline prevents hypothetical states from leaking into the real puzzle.

Shared consequences belong to multi-line case analysis

If both exhaustive states of a proposition remain possible but both force the same downstream cell, that downstream state is still valid.

That is a useful advanced technique, but its proof is not “one branch contradicted.” VeyraPlay treats it as multi-line/two-way shared-consequence reasoning and covers the broader method in G-040.

Step-by-step contradiction method

  1. exhaust normal propagation first;
  2. choose one unresolved cell or tightly constrained block case;
  3. copy or mentally isolate the current state;
  4. assume one candidate state;
  5. propagate only forced consequences;
  6. stop immediately if a line has no valid pattern or another hard contradiction appears;
  7. reject the failed assumption and mark the opposite state in the real puzzle;
  8. restart normal propagation from that proven state.

Common mistakes

Treating “I got stuck” as a contradiction

A branch that stops producing deductions may still be valid.

Making several guesses inside one branch

Then you no longer know which assumption caused the contradiction.

Using the image as a reason to reject a branch

Only clue constraints can prove impossibility.

Using contradiction too early

Many apparent dead ends disappear after a careful scan of ordinary line patterns, X marks, segment assignments, and changed crossing lines.

Keeping a surviving assumption as fact

Failure to find a contradiction is not proof unless you have exhaustively established that the alternative is impossible.

Where this sits in the solving hierarchy

A useful order is:

  1. direct line logic;
  2. segment and block-range logic;
  3. valid line-pattern deductions;
  4. cross-referencing and propagation;
  5. multi-line/shared-consequence reasoning;
  6. controlled contradiction/lookahead;
  7. full search or backtracking only when the puzzle or solver requires it.

Well-designed human puzzles often aim to make most progress before the final search stage.

What to learn next

Contradiction reasoning connects human solving with the ideas used by computer solvers: probing candidate states, detecting impossible branches, and eventually using search when pure propagation is insufficient.

FAQ

Is contradiction reasoning guessing?

It uses a temporary assumption, but the conclusion is deductive only when one branch is proven impossible. It is more disciplined than committing to a guess and hoping it works.

What if both assumptions remain possible?

Then that case does not yet prove the chosen cell. Return to the original state or look for a consequence shared by both branches.

Should beginners use contradiction reasoning?

Usually not first. Strong line logic and propagation solve a large share of normal puzzles and are easier to audit.