Cut divides probleminto backtracking regions
foo := a, b, c, !, d, e, f.
Search may try various ways to prove a, b, and c, backtracking freely while solving those sub-goals
Once a, b, and c are proved, that sub-answer is frozen, and d, e, f must be proved without changing a, b, or c