На языке Пролог получаю ошибку о неизвестной процедуре

Написал код на языке Prolog, сохранил в файл my_program.pl и обратился к нему из корректной директории [my_program].

Получил предупреждение:

Warning: f:/program_training/функциональное и логическое программирование/interpreter/my_program.pl:9: Warning: Singleton variables: [T1]

Попробовал сделать запрос к предикату: ?- предшествует(apple, banana). и получил ошибку:

ERROR: Unknown procedure: предшествует/2 (DWIM could not correct goal) ^ Exception: (4) setup_call_cleanup('$toplevel':notrace(call_repl_loop_hook(begin, 0)), '$toplevel':'$query_loop'(0), '$toplevel':notrace(call_repl_loop_hook(end, 0))) ?

Вот код:

% Определяем предикат "предшествует/2"
предшествует(A, B) :-
    name(A, CodesA),      % Преобразуем атом A в список кодов символов
    name(B, CodesB),      % Преобразуем атом B в список кодов символов
    lexicographic_order(CodesA, CodesB).

% Вспомогательный предикат для проверки лексикографического порядка
lexicographic_order([], _).                    % Пустой список предшествует любому непустому списку
lexicographic_order([H1|T1], [H2|_]) :-        % Если первый элемент первого списка меньше первого элемента второго
    H1 < H2.                                    % То A предшествует B
lexicographic_order([H1|T1], [H2|T2]) :-        % Если равны, продолжаем сравнение
    H1 = H2,                                    % Сравниваем оставшиеся символы
    lexicographic_order(T1, T2).

Вроде, и T1 используется (хотя предупреждение говорило о неиспользуемой переменной), и девятая строка, соответственно, с Т1 корректна. Не знаю, в чем проблема и почему цель некорректна (предполагаю, что виной все та же самая Т1).

Буду благодарен за идеи, что не так


Ответы (0 шт):