Через пункты выбора.Как только предикат имеет более одного предложения, создается примерно точка выбора:
length([], 0).
length([_|L], M) :- length(L, N), M is N+1.
Эти точки выбора дают различные интерпретации интерпретатором Пролога.Вот скриншот деривации в Tau Prolog песочница :
Подожди, я думаю, мне нужно поднять выпуск , этот скриншот деривации показывает слишком много.Синтетический (=) / 2 и контроль (,) / 2.