Forcing Chains & Cycles: Advanced Sudoku Logic

A Forcing Chain is an advanced Sudoku solving technique that follows a single thread of “is / isn’t” (true / false) deductions across a mental, frozen copy of the grid. Nothing is ever permanently filled in or erased while building the chain—every link is purely an “if-then” inference, and the base Sudoku grid you read from never changes.

The Two Types of Links

Each step in a Forcing Chain relies on the simplest possible logical inferences:

  • When a candidate is placed (ON): The same digit immediately switches OFF in every cell that sees it (sharing the same row, column, or 3×3 box), and all other candidates in its own cell switch OFF too.
  • When a candidate is eliminated (OFF): It can force another candidate to switch ON. This happens when a cell has only one candidate left (a Naked Single), or a digit has only one place left in a row, column, or box (a Hidden Single).

Strung together, these deductions alternate in a strict ON-OFF-ON-OFF sequence. Because each link has exactly one cause, it forms a clean, single line of reasoning, never a tangled branching web.


Two Ways Forcing Chains Lead to Eliminations

Building this chain pays off in one of two major ways:

1. Self-Contradiction

A forcing chain can definitively settle a candidate. Start from one candidate and assume it is placed (ON). Follow the logical thread. If the chain loops around and forces that very same candidate to be removed (OFF), your initial assumption is self-contradictory. Therefore, the candidate is definitively false and can be eliminated. Note: The mirror image also applies—an assumption that a candidate is “removed” which forces it to be “placed” confirms that candidate as the correct solution.


2. The Bidirectional Cycle (Continuous Loop)

Sometimes, the chain bites its own tail and closes into a continuous loop. A loop like this can be filled in only two possible ways, and the two are exact mirror images: every spot that holds a digit in the first arrangement is empty in the second, and vice versa. One of the two ways is the real solution—you just don’t know which one yet.

But that’s all you need. Take any uncolored candidate outside the loop and ask:

  • In the first arrangement, does the loop put its digit in a cell that attacks this candidate?
  • In the second arrangement, does the loop do the same?

If the answer is yes both times, the candidate is dead either way and can be safely eliminated. If only one arrangement attacks it, it is safe, because it survives in the other scenario.


The Three Flavors of Cycles

When a Forcing Chain closes into a loop, it forms a cycle. These come in three flavors, named for the kind of links they are built from:

XY-Cycle (Bidirectional Cycle): The most general loop, which freely mixes both X and Y kinds of links at once.

X-Cycle (Fishy Cycle / Bilocation Cycle): The loop rides a single digit, hopping between cells where that digit has only two possible places in a row, column, or box. The smallest one, a four-cell loop, is exactly a Generalized X-Wing.

Y-Cycle (Bivalue Cycle / Forcing Loop): The loop passes only through two-candidate cells (bi-value cells), switching between a cell’s two digits as it goes.