Select a node to show details

Rules
{assign((1,1),1); assign((1,1),2); assign((1,1),3); assign((1,1),4)} = 1 :- 1 = 1..4; 1 = 1..4.
:- given((2,4), 2), not assign((2,4), 2).
:- given((1,1), 3), not assign((1,1), 3).
:- block((row,2), (2,4)); block((row,2), (2,2)), (2,4) != (2,2); assign((2,4), 2), assign((2,2), 2).
:- block((row,2), (2,4)); block((row,2), (2,1)), (2,4) != (2,1); assign((2,4), 2), assign((2,1), 2).
:- block((sub,0,0), (2,2)); 2 = 1..4; not assign((2,2),2); not assign((2,1),2); not assign((1,2),2); not assign((1,1),2).

Facts
given((1,1),3)
given((2,4),2)
block((row,2),(2,1))
block((row,2),(2,2))
block((row,2),(2,4))
block((sub,0,0),(2,2))