Tôi biết rằng có thể chứng minh PRITAL là Turing-Complete bằng cách xây dựng một chương trình mô phỏng máy Turing như thế này:
turing(Tape0, Tape) :-
perform(q0, [], Ls, Tape0, Rs),
reverse(Ls, Ls1),
append(Ls1, Rs, Tape).
perform(qf, Ls, Ls, Rs, Rs) :- !.
perform(Q0, Ls0, Ls, Rs0, Rs) :-
symbol(Rs0, Sym, RsRest),
once(rule(Q0, Sym, Q1, NewSym, Action)),
action(Action, Ls0, Ls1, [NewSym|RsRest], Rs1),
perform(Q1, Ls1, Ls, Rs1, Rs).
symbol([], b, []).
symbol([Sym|Rs], Sym, Rs).
action(left, Ls0, Ls, Rs0, Rs) :- left(Ls0, Ls, Rs0, Rs).
action(stay, Ls, Ls, Rs, Rs).
action(right, Ls0, [Sym|Ls0], [Sym|Rs], Rs).
left([], [], Rs0, [b|Rs0]).
left([L|Ls], Ls, Rs, [L|Rs]).
Tuy nhiên, tôi đang tự hỏi những phần nào của ngôn ngữ PRITAL người ta có thể loại bỏ (đặc biệt là các ký hiệu hàm, quá tải mệnh đề, đệ quy, thống nhất) mà không làm mất tính hoàn chỉnh của Turing. Là biểu tượng chức năng Turing hoàn thành?