SWI-Prolog 8.2.1 Reference Manual: Section B.2

## B.2 Ancestral cuts

prolog_cut_to(+Choice)
  Prunes all choice points created since Choice. Can be used together with prolog_current_choice/1 to implement ancestral cuts. This predicate is in the hackers corner because it should not be used in normal Prolog code. It may be used to create new high level control structures, particularly for compatibility purposes.

  Note that in the current implementation, the pruned choice points and environment frames are not reclaimed. As a consequence, where predicates that are deterministic due to clause indexing, normal cuts or `(if->then;else)` and and tail recursive run in bounded local stack space, predicates using prolog_cut_to/1 will run out of stack.