X-Chains

X-Chains are sequences of strong links for a single digit, connected by weak links. They generalize patterns like Skyscraper and Turbot Fish into an extensible framework for making eliminations.

What is an X-Chain?

An X-Chain is a chain of cells where:

  • All cells contain the same candidate
  • Adjacent cells alternate between strong and weak links
  • The chain starts and ends with a strong link

The naming: "X" refers to a single digit (like X-Wing). The chain tracks that one digit through the grid.

Link Review

Strong Link (═══)

The digit appears exactly twice in a unit. If one cell doesn't have it, the other MUST.

A ═══ B
If A ≠ X, then B = X
If B ≠ X, then A = X

Weak Link (───)

Two cells share a unit. If one has the digit, the other CANNOT.

A ─── B
If A = X, then B ≠ X
(But if A ≠ X, B could be anything)

X-Chain Structure

A valid X-Chain alternates: strong, weak, strong, weak, ..., strong.

Minimal X-Chain (3 cells):

A ═══ B ─── C

Longer X-Chain (5 cells):

A ═══ B ─── C ═══ D ─── E ═══ F

Key requirement: Start and end with strong links.

The Logic

Consider a 5-cell chain:

A ═══ B ─── C ═══ D ─── E

Follow the implications:

If A = X:

  • B ≠ X (strong link)
  • C could be anything (weak link from B)
  • But wait — we can't conclude further without more structure

If A ≠ X:

  • B = X (strong link)
  • C ≠ X (weak link)
  • D = X (strong link)
  • E ≠ X (weak link)

The insight:

  • If A is false, the chain propagates, and we know the state of each cell
  • Either A is true, or the chain tells us the endpoint's state

For elimination:

In a proper X-Chain:

  • Either the start is true
  • Or the end is true
  • (Or both, in some configurations)

Cells that see BOTH endpoints can be eliminated.

Odd-Length Chains

For X-Chains to produce eliminations, they need an odd number of strong links.

Why?

  • Odd strong links mean endpoints have opposite polarity
  • If start is true, end is false; if start is false, end is true
  • Either way, at least one endpoint is true

Even strong links: Both endpoints have the same polarity. Less useful for direct eliminations.

1 Strong Link (Chain of 2)

A ═══ B

This is just a strong link. Elimination: cells seeing both A and B can be eliminated.

2 Strong Links (Chain of 4)

A ═══ B ─── C ═══ D

This is a Turbot Fish / Skyscraper pattern. Elimination: cells seeing both A and D.

3 Strong Links (Chain of 6)

A ═══ B ─── C ═══ D ─── E ═══ F

Elimination: cells seeing both A and F.

Worked Example

Digit 6 in the grid:

Strong links:

  • Row 2: R2C1 ═══ R2C7
  • Column 1: R2C1 ═══ R8C1
  • Row 8: R8C1 ═══ R8C5
  • Column 5: R8C5 ═══ R3C5
  • Row 3: R3C5 ═══ R3C9

Building the chain:

Start at R2C7:

R2C7 ═══ R2C1 ─── R8C1 ═══ R8C5 ─── R3C5 ═══ R3C9
        (row 2)  (col 1)   (row 8)  (col 5)   (row 3)

Wait, let me verify the weak links:

  • R2C1 and R8C1: same column 1 — weak link? Actually, if column 1 has exactly 2 6s (R2C1 and R8C1), that's a STRONG link, not weak!

Let me rebuild:

If Col 1 has exactly two 6s (R2C1 and R8C1), that's a strong link.

Chain with proper link types:

R2C7 ═══ R2C1 ═══ R8C1 ═══ R8C5 ═══ R3C5 ═══ R3C9
        strong   strong   strong   strong   strong

This is all strong links! That's a different pattern (continuous strong link chain = Simple Coloring).

Proper X-Chain example:

Let's say:

  • Row 2: R2C1, R2C7 — strong link
  • Column 1: R2C1, R5C1, R8C1 — three cells, weak links between them
  • Row 8: R8C1, R8C5 — strong link
R2C7 ═══ R2C1 ─── R8C1 ═══ R8C5
        (row 2)  (col 1 has   (row 8)
                 3+ cells,
                 weak link)

3-cell X-Chain:

R2C7 ═══ R2C1 ─── R8C1 ═══ R8C5

This has 2 strong links (even), so endpoints R2C7 and R8C5 have same polarity.

To get eliminations with an odd count:

R2C7 ═══ R2C1 ─── R5C1 ═══ R5C4

If:

  • Row 2 has 6 exactly in C1, C7 (strong)
  • Column 1 has 6 in R2, R5, plus others (weak between R2C1 and R5C1)
  • Row 5 has 6 exactly in C1, C4 (strong)

Chain: R2C7 ═══ R2C1 ─── R5C1 ═══ R5C4

2 strong links: Even. Endpoints same polarity.

Need an odd number for elimination. Extend:

If we can add another weak-strong pair:

R2C7 ═══ R2C1 ─── R5C1 ═══ R5C4 ─── R9C4 ═══ R9C8

Now 3 strong links. Endpoints R2C7 and R9C8 have opposite polarity.

Elimination: Cells seeing both R2C7 and R9C8 can have 6 eliminated.

How to Find X-Chains

Step 1: Map Strong Links

For a digit, find all units with exactly 2 candidates. These are your strong links.

Step 2: Identify Weak Link Connections

Where strong links share a cell or see each other through a unit with 3+ candidates.

Step 3: Build Chains

Connect strong links via weak links, alternating.

Step 4: Count Strong Links

  • Odd number: endpoints can eliminate
  • Even number: less direct utility

Step 5: Find Elimination Targets

Cells seeing both endpoints (through row, column, or box).

X-Chains and Named Patterns

Many named patterns are specific X-Chains:

PatternX-Chain LengthStrong Links
Strong link2 cells1
Turbot Fish4 cells2
X-Chain (odd)6+ cells3+ (odd)

X-Chains generalize these into a unified framework.

Practice Exercise

Build an X-Chain:

Digit 9:

  • Row 1: columns 3, 8 only (strong)
  • Column 3 has 9 in rows 1, 4, 7 (weak link R1C3─R4C3)
  • Row 4: columns 3, 6 only (strong)
  • Column 6 has 9 in rows 4, 9 (strong!)
  • Row 9: columns 6, 9 only (strong)
Answer

Chain:

R1C8 ═══ R1C3 ─── R4C3 ═══ R4C6 ═══ R9C6 ═══ R9C9
      row1   col3(weak)  row4   col6   row9

Wait, col 6 has only 2 9s (rows 4 and 9), so R4C6═══R9C6 is STRONG.

Let me recount strong links:

  1. R1C8 ═══ R1C3 (row 1)
  2. R4C3 ═══ R4C6 (row 4)
  3. R4C6 ═══ R9C6 (col 6) — but R4C6 is already used!

Actually, if col 6 is a strong link, R4C6 connects to R9C6 directly.

Simplified chain:

R1C8 ═══ R1C3 ─── R4C3 ═══ R4C6 ═══ R9C6 ═══ R9C9

That's: strong(row1) - weak(col3) - strong(row4) - strong(col6) - strong(row9)

Two consecutive strong links? That's not alternating.

The issue: R4C6 is in strong links with BOTH R4C3 (row 4) and R9C6 (col 6). At a junction, we continue with ONE of them.

Correct chain:

R1C8 ═══ R1C3 ─── R4C3 ═══ R4C6 ─── R9C6 ═══ R9C9

If col 6 has more than 2 9s, the link R4C6─R9C6 is weak. If col 6 has exactly 2 9s, it's strong, and we have a different chain.

Assuming col 6 is weak:

  • 3 strong links: row 1, row 4, row 9
  • Endpoints: R1C8, R9C9

Elimination: Cells seeing both R1C8 and R9C9 can have 9 eliminated.

  • R1C9: same row as R1C8, same column as R9C9 → eliminate 9!

Common Mistakes

Mistake 1: Not alternating links

Strong-strong or weak-weak breaks the logic. Must alternate.

Mistake 2: Using weak links where strong exist

If only 2 candidates exist in a unit, it's a strong link, even if you wanted weak.

Mistake 3: Wrong parity count

Odd strong links for elimination. Even strong links need different techniques.

Mistake 4: Missing the endpoints

Eliminations come from cells seeing BOTH endpoints, not intermediate cells.

Quick Reference

X-Chain definition:

  • Single digit chain
  • Alternating strong and weak links
  • Starts and ends with strong links

Elimination rule:

  • Count strong links
  • If odd: eliminate from cells seeing both endpoints
  • If even: consider extending or use for coloring

Finding X-Chains:

  1. Find strong links for a digit
  2. Connect via weak links
  3. Build alternating chain
  4. Find elimination targets at endpoints

Relationship to other techniques:

  • Turbot Fish = 2-strong-link X-Chain
  • Simple Coloring = all-strong-link network
  • X-Chain = generalized chain with mixed links