predicate int_sol(var int: x, var int: xi); function int: sol(var int: x) = if is_fixed(x) then fix(x) else let { var dom(x): xi; constraint int_sol(x,xi); } in xi; endif;