intelligent backtracking
An improved backtracking algorithm for Prolog interpreters, which records the point at which each logic variable becomes bound and, when a given set of bindings leads to failure, ignores any choice point which does not bind any of those variables. No choice from such a choice point can succeed since it does not change the bindings which caused the failure.