A=B
Turing Complete?
3 条留言
jgj233 2024 年 9 月 13 日 下午 11:30 
i have same qusstion
Bethan 2022 年 9 月 10 日 下午 7:11 
Basically without keywords a problem is only possible if no "possible inputs" is a substring of any "required ouput" (allowing the only exception that a word can map to itself). If the maximum size of the input is known in advance (which is the case for all A=B problems that you can create in the level editor) then this condition is also sufficient to know if a problem is possible. For unbounded input size you can get into additional issues due to the fact that the alphabet is finite and can be exhausted (say a problem of the kind "no input may contain the symbol 'a', any input string must be transformed into a string of length one more that contains only 'a' " (so "bb" must translate to "aaa", "cde" to "aaaa", etc...))
Bethan 2022 年 9 月 10 日 下午 7:10 
Turing complete bascially means that any problem that can be solved by a turing machine can be "translated" into a problem in A=B (typically using the transformation described in the paper, although I didn't double-checked it), not that any problem in A=B is possible.This means that if you had the description of a turing machine and you wanted to know for a given input what its output would be, you could write the A=B program describing the given turing machine and input, and you'd have the guarantee that if the turing machine ends then the derived A=B program will also end (assuming no restriction on the intermediate string length size) and you'd be able to extract the output of the turing machine from the ouput of the A=B program.

Without keyword no pure rewriting system can solve your A=B problem as you would need at least a rule that matches "a", but have no rules that maches "aa". but any rules that matches "a" will obviously match "aa" and so "aa" can't be a normal form.