I have three tactics for solving these puzzles but this 'very hard' one, from the sudoku program, seems to be demanding something special.
I've used the obvious checking for consistency in columns, rows, and boxes..
and then used pairs to remove from the same row or column
..eg r6c[6,8] implies r6c[2,4,5] can't be 6 or 8
and then used limited groups of three cells to remove impossible digits
..eg r8c[6,8,9] to remove digit 1 from r8c[1,2,5]
(I can't see 'x-wings' but then haven't used them before)
Any suggestions how to progress this with logic alone?.. that it's a sudoku program problem, I'm thinking suggests it can be solved with logic..