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:
| Pattern | X-Chain Length | Strong Links |
|---|---|---|
| Strong link | 2 cells | 1 |
| Turbot Fish | 4 cells | 2 |
| X-Chain (odd) | 6+ cells | 3+ (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:
- R1C8 ═══ R1C3 (row 1)
- R4C3 ═══ R4C6 (row 4)
- 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:
- Find strong links for a digit
- Connect via weak links
- Build alternating chain
- 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