title: Making "deterministic success" of Prolog goals explicit
body: <p>The matter of deterministic success of some Prolog goal has turned up time and again in&mdash;at least&mdash;the following questions:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/13664870/reification-of-term-equality-inequality">Reification of term equality/inequality</a></li>
  <li><a href="https://stackoverflow.com/questions/9615002/intersection-and-union-of-2-lists">Intersection and union of 2 lists</a></li>
  <li><a href="https://stackoverflow.com/questions/2260792/remove-duplicates-in-list-prolog">Remove duplicates in list (Prolog)</a></li>
  <li><a href="https://stackoverflow.com/questions/29613789/prolog-how-can-i-implement-the-sum-of-squares-of-two-largest-numbers-out-of-thr">Prolog: How can I implement the sum of squares of two largest numbers out of three?</a></li>
  <li><a href="https://stackoverflow.com/questions/6214266/ordering-lists-with-constraint-logic-programming">Ordering lists with constraint logic programming</a>)</li>
  </ul>
  
  <p>Different methods were used (e.g., provoking certain resource errors, or looking closely at the exact answers given by the Prolog toplevel), but they all appear somewhat ad-hack to me.</p>
  
  <p>I'm looking for a generic, portable, and ISO-conformant way to find out if the execution of some Prolog goal (which succeeded) left some choice-point(s) behind. Some meta predicate, maybe?</p>
  
  <p>Could you please hint me in the right direction? Thank you in advance!</p>