  In the 1960's Gisbert Hasenjaeger built Turing Machines from
electromechanical relays and uniselectors. Recently, Glaschick reverse
engineered the program of one of these machines and found that it is a
universal Turing machine. In fact, its program uses only four states and two
symbols, making it a very small universal Turing machine. (The machine has
three tapes and a number of other features that are important to keep in mind
when comparing it to other small universal machines.) Hasenjaeger's machine
simulates Hao Wang's B machines, which were proved universal by Wang.
Unfortunately, Wang's original simulation algorithm suffers from an exponential
slowdown when simulating Turing machines. Hence, via this simulation,
Hasenjaeger's machine also has an exponential slowdown when simulating Turing
machines. In this work, we give a new efficient simulation algorithm for Wang's
B machines by showing that they simulate Turing machines with only a polynomial
slowdown. As a second result, we find that Hasenjaeger's machine also
efficiently simulates Turing machines in polynomial time. Thus, Hasenjaeger's
machine is both small and fast. In another application of our result, we show
that Hooper's small universal Turing machine simulates Turing machines in
polynomial time, an exponential improvement.
