К сожалению, вертикальная черта ('|') не классифицируется как графическая в ISO Prolog. Это скорее классифицируется как соло, как запятая (','). Этот выбор для вертикальной черты, возможно, был сделан, потому что он используется вместе с запятой в качестве разделителя в списках с хвостами, например, [X, Y | Z].
В результате вертикальная черта не объединяется и не образует токен с другими графическими символами. Так, например, вы можете написать графические символы минус ('-') и больше, чем ('>') вместе, чтобы сформировать -> который читается как один токен. Это не работает для вертикальной черты.
Но пара систем Prolog пока поддерживают Юникод . Таким образом, одним из выходов было бы прямое использование турникета Unicode ⊢ (U + 22A2). Вот что работает в двух системах Prolog:
SWI-Пролог:
?- op(1100,xfx,⊢).
true.
?- X = (F ⊢ G).
X = (F⊢G).
Jekejeke Пролог:
?- op(1100,xfx,⊢).
Yes
?- X = (F ⊢ G).
X = (F⊢G)