Second-order cellular automaton

A second-order cellular automaton is a type of reversible cellular automaton (CA) invented by Edward Fredkin where the state of a cell at time depends not only on its neighborhood at time , but also on its state at time .
General technique.
In general, the evolution rule for a second-order automaton may be described as a function that maps the neighborhood of a cell to a permutation on the states of the automaton. In each time step , for each cell of the automaton, this function is applied to the neighborhood of to give a permutation . Then, this permutation is applied to the state of cell at time , and the result is the state of the cell at time 
. In this way, the configuration of the automaton at each time step is computed from two previous time steps: the immediately previous step determines the permutations that are applied to the cells, and the time step before that one gives the states on which these permutations operate.
The reversed time dynamics of a second-order automaton may be described by another second-order automaton with the same neighborhood, in which the function mapping neighborhoods to permutations gives the inverse permutation to . That is, on each possible neighborhood , and should be inverse permutations. With this reverse rule, the automaton described by function correctly computes the configuration at time from the configurations at time and . Because every second-order automaton can be reversed in this way, it follows that they are all reversible cellular automata, regardless of which function is chosen to determine the automaton rule.
For two-state automata.
If a cellular automaton has only two states, then there are also only two possible permutations of states: the identity permutation that maps each state to itself, and the permutation that maps each state to the other state. We may identify these two permutations with the two states of the automaton.
In this way, every second-order cellular automaton (defined by a function from neighborhoods to permutations) corresponds uniquely to an ordinary (first-order) cellular automaton, defined by a function directly from neighborhoods to states. Two-state second-order automata are symmetric under time reversals: the time-reversed dynamics of the automaton can be simulated with the same rule as the original dynamics.
If we view the two states as Boolean values, this correspondence between ordinary and second-order automaton can be described simply: the state of a cell of the second-order automaton at time is the exclusive or of its state at time with the state that the ordinary cellular automaton rule would compute for it. In fact, all two-state second-order rules may be produced in this way. The resulting second-order automaton, however, will generally bear little resemblance to the ordinary CA it was constructed from. Second-order rules constructed in this way are named by Stephen Wolfram by appending an "R" to the number or Wolfram code of the base rule.
Applications.
Second-order automata may be used to simulate billiard-ball computers and the Ising model of ferromagnetism in statistical mechanics. They may also be used for cryptography.