Let M be a Turing machine that takes input from an alphabet Σ. M is said to be brickable if there exists an input string w ∈ Σ* such that:
1. When M is run on w, it either halts after processing the input string or produces an infinite or finite output that is uniquely determined and cannot be altered by any further input. 2. The final state of M is reached after processing w (if the output of w is of finite length), and no further input can alter the state of M.
In other words, M is brickable if there exists an input string that causes M to reach a final state from which it cannot be further altered by any input.
Am I being coherent here? If so, is this a non-trivial concept?
A perhaps slightly more readable definition (that I think is equivalent):
A Turing machine is brickable if there exists a valid input string such that the machine, when run on that input, satisfies the following conditions:
1. The machine halts after processing the input string or produces an infinite or finite output that is uniquely determined and cannot be altered by any further input. 2. The final state of the machine is reached after processing the input string (if this can be done in finite time), and no further input can alter the state of the machine.
Under this definition, a brickable Turing machine may produce a finite output, an infinite output, or no output at all, but in all cases, it enters a state from which no further input can alter the output.
Thinking back on https://www.lesswrong.com/posts/eMYNNXndBqm26WH9m/infohazards-hacking-and-bricking-how-to-formalize-these—how’s this for a definition?
Am I being coherent here? If so, is this a non-trivial concept?
A perhaps slightly more readable definition (that I think is equivalent):