OFFSET
1,1
COMMENTS
In general a tag as defined by Emil Leon Post, is given by a 4-tuple (Sigma,AF,n,w0), where Sigma is some (nonempty) set of symbols called the alphabet, AF is the associated function (sometimes also called set of production rules) AF: Sigma -> Sigma*, n is the deletion number and w0 the initial string.
From the starting sequence we obtain a new string in each step by adjoining the string associated to the prefix symbol of the string, where after the prefix n symbols are removed from the string.
The decision problem is: will the tag end up in an empty string, a(n) = 0 or not, a(n) <> 0?
a(n) is an even number. Proof: for each cycle the number of associations (productions) 0 -> 1 must equal the number of associations (productions) 1 -> 00110 applied within a cycle.
LINKS
Sean A. Irvine, Java program (github)
Emil L. Post, Formal reductions of the general combinatorial decision problem., American Journal of Mathematics, Vol. 65, No. 2 (Apr., 1943), pp. 197-215.
Eric Weisstein's World of Mathematics, Tag System
PROG
(Python)
def step(w):
i = 0
while w[0] != alfabet[i]:
i = i+1
w = w+suffix[i]
return w[n:len(w)]
alfabet, suffix, n, ws, w0, m = "01", ["1", "00110"], 3, "100", "", 0
while m >= 0:
w0, m = w0+ws, m+1
w, ww, i, a = w0, w0, 0, 0
while w != "" and a == 0:
w, i = step(w), i+1
if i%100000 == 0:
ww = w
else:
if w == ww or w == "":
if w != "":
a = i%100000
print(m, a)
CROSSREFS
KEYWORD
nonn
AUTHOR
A.H.M. Smeets, Jul 16 2020
STATUS
approved