The constraints are passed to add_con, which adds them to both the fd and linear solvers. The cost is declared to be an integer. All the finite domain variables in the term Tasks are associated with a demon which forwards their bounds to the linear solver. (The priority of this demon is one higher than that of the probe.)
lp_demon_setup is then invoked to set up the linear solver, with the priority specified in the Options parameter. Solutions returned by the linear solver are automatically used to update the tentative values of all the variables.
?- Options = options{granularity:3,priority:5}, Cost=X1, set_up_probe([X1,X2,X3],[X1>X2,X2>X3],Cost,Options,H).