Using a wing that does not see the pivot, has an extra candidate, or does not form the exact XZ and YZ digit roles.
Sudoku technique · Candidate elimination
XY-Wing
An XY-Wing uses a two-candidate XY pivot and two distinct two-candidate wings, XZ and YZ, that each see the pivot; Z can be removed from other cells that see both wings.
Learning order
Topic relationships
These links express the same learning and proof relationships used throughout the library.
- Uses candidate language fromCandidate Notes
Verified example
Work through the example
R1C1: empty; Pivot; Before 4, 6 | R1C2: empty | R1C3: empty | R1C4: given 99 | R1C5: empty | R1C6: given 55 | R1C7: given 22 | R1C8: empty; XZ wing; Before 3, 6 | R1C9: empty |
R2C1: empty | R2C2: empty | R2C3: empty | R2C4: given 33 | R2C5: empty | R2C6: given 11 | R2C7: empty | R2C8: empty | R2C9: given 44 |
R3C1: empty | R3C2: given 77 | R3C3: given 33 | R3C4: given 66 | R3C5: empty | R3C6: empty | R3C7: empty | R3C8: empty | R3C9: empty |
R4C1: given 77 | R4C2: given 66 | R4C3: given 99 | R4C4: given 44 | R4C5: given 33 | R4C6: given 22 | R4C7: given 55 | R4C8: given 88 | R4C9: given 11 |
R5C1: empty | R5C2: empty | R5C3: empty | R5C4: given 88 | R5C5: given 99 | R5C6: given 66 | R5C7: given 44 | R5C8: given 77 | R5C9: given 22 |
R6C1: given 88 | R6C2: given 22 | R6C3: given 44 | R6C4: given 11 | R6C5: given 55 | R6C6: given 77 | R6C7: empty | R6C8: empty | R6C9: empty |
R7C1: empty | R7C2: given 55 | R7C3: empty | R7C4: empty | R7C5: given 11 | R7C6: empty | R7C7: empty | R7C8: empty | R7C9: empty |
R8C1: empty; YZ wing; Before 3, 4 | R8C2: empty | R8C3: empty | R8C4: empty | R8C5: given 66 | R8C6: given 99 | R8C7: empty | R8C8: empty; candidate deletion 3; Before 1, 2, 3, 4; After 1, 2, 4 | R8C9: given 55 |
R9C1: given 11 | R9C2: empty | R9C3: given 22 | R9C4: given 55 | R9C5: empty | R9C6: empty | R9C7: empty | R9C8: empty | R9C9: empty |
- Pivot: X=6, Y=4
- XZ wing: X=6, Z=3
- YZ wing: Y=4, Z=3
Pattern cells: R1C1, R1C8, R8C1. Remove 3 from R8C8.
- Pattern cells
- R1C1, R1C8, R8C1
- Pattern digits
- 6, 4, 3
- Pivot
- R1C1
- XZ wing
- R1C8
- YZ wing
- R8C1
- Digit roles
- X=6, Y=4, Z=3
Exact candidate changes
- Remove 3 from R8C8Before: 1, 2, 3, 4 → After: 1, 2, 4
- Find a two-candidate pivot and label its candidates X and Y.
- Find an XZ wing and a YZ wing that each see the pivot.
- Reason that whichever value enters the pivot, at least one wing must contain Z.
- Remove only Z from other cells that see both wings.
Fixed practice
Start with a two-candidate pivot, label X and Y, then verify both peer relationships before looking for cells that see the two wings together.
Fixed practice · R5C8
R1C1: given 44 | R1C2: given 11 | R1C3: given 66 | R1C4: given 99 | R1C5: given 77 | R1C6: given 55 | R1C7: given 22 | R1C8: given 33 | R1C9: given 88 |
R2C1: given 99 | R2C2: given 88 | R2C3: empty | R2C4: given 33 | R2C5: given 22 | R2C6: given 11 | R2C7: empty | R2C8: empty | R2C9: given 44 |
R3C1: given 22 | R3C2: empty | R3C3: empty | R3C4: given 66 | R3C5: given 44 | R3C6: given 88 | R3C7: given 11 | R3C8: empty | R3C9: given 99 |
R4C1: given 77 | R4C2: empty | R4C3: empty | R4C4: given 44 | R4C5: given 33 | R4C6: empty; candidate deletion 6; Before 2, 6; After 2 | R4C7: given 55 | R4C8: given 88 | R4C9: empty; XZ wing; Before 1, 6 |
R5C1: given 55 | R5C2: empty | R5C3: empty | R5C4: given 88 | R5C5: given 99 | R5C6: empty; YZ wing; Before 6, 7 | R5C7: given 44 | R5C8: empty; Pivot; Before 1, 7 | R5C9: given 22 |
R6C1: given 88 | R6C2: empty | R6C3: given 44 | R6C4: empty | R6C5: empty | R6C6: empty | R6C7: empty | R6C8: empty | R6C9: empty |
R7C1: given 66 | R7C2: empty | R7C3: given 88 | R7C4: empty | R7C5: empty | R7C6: given 44 | R7C7: empty | R7C8: empty | R7C9: empty |
R8C1: given 33 | R8C2: empty | R8C3: empty | R8C4: empty | R8C5: given 66 | R8C6: given 99 | R8C7: given 88 | R8C8: empty | R8C9: given 55 |
R9C1: given 11 | R9C2: empty | R9C3: empty | R9C4: empty | R9C5: given 88 | R9C6: given 33 | R9C7: empty | R9C8: empty | R9C9: given 77 |
- Pivot: X=1, Y=7
- XZ wing: X=1, Z=6
- YZ wing: Y=7, Z=6
Pattern cells: R5C8, R4C9, R5C6. Remove 6 from R4C6.
- Pattern cells
- R5C8, R4C9, R5C6
- Pattern digits
- 1, 7, 6
- Pivot
- R5C8
- XZ wing
- R4C9
- YZ wing
- R5C6
- Digit roles
- X=1, Y=7, Z=6
Exact candidate changes
- Remove 6 from R4C6Before: 2, 6 → After: 2
Common mistakes
Common mistakes
Removing Z from a cell that sees only one wing, or deleting a candidate from the pivot or either wing.
Review information
What is verified here
The independent verifier recomputes the pivot and both wings, their exact X/Y/Z candidate roles and peer relationships, and every Z deletion from the shared peers of the wings.
- Fixture ID
- p3d-xy-wing-row-column-01 / p3d-xy-wing-box-row-01
- Engine version
- legen-sudoku-engine/1.3.0
- Verification status
- Independent candidate-elimination verifier passed
- Facts reviewed
- 2026-07-18