Title: Using an ATP to Prove a Turing Machines Destiny
1Using an ATP to Prove a Turing Machines Destiny
2Motivation
- Busy Beaver problem
- Algorithms exist to classify halters /
non-halters - Where are the proofs?
- Can ATPs be leveraged to produce these proofs?
- Of course, it is impossible in general
- Can a proof be found in certain cases?
- What cases?
3Outline
- Prior methods for detecting non-halters
- Non-halter detection goal
- Two approaches to encoding TMs in FOL
- A single goal that can detect whether a TM is a
halter or non-halter - Future directions
4Existing loop detection methods
- From code supplied by Joshua Taylor using Athena
- 1-transition simple loop
- read what's under the read head,
- write the same symbol,
- stay in the same place,
- transition to the same state.
5Existing loop detection methods
- General simple loop
- at two distinct times t1, t2,
- the machine is in state q reading cell c,
- The tape at t1 is identical to the tape at t2
- Generalization of 1-transition simple loop
- Came with comment seems logically correct, but
it wont yet work in automation could be
proved, but we're skeptical to whether theorem
provers can do it.
6Existing loop detection methods
- 1-transition uniform tape loop
- reads a symbol,
- writes the same symbol,
- moves in any direction,
- transitions to the same state,
- every cell on the tape contains the same symbol
- This can be generalized to the case where the
same state is reached at two different times with
a uniform tape
7Goal for non-halter detection
non-halters
1-transition uniform loop
1-transition simple loop
8Assumptions
- Two symbols (blank, one)
- Bidirectional infinite tape, initially blank
- Quadruple formalization of transitions (start
state, read symbol blank / one, action left /
right / write one / write blank, end state) - Each state has exactly 2 out-transitions
- Explicit halt state
9Explicit symbols
- Based on Prof. Bringsjords lecture slides
- Symbol on the tape is encoded in a predicate
argument - (s 5 0 1) means at time 5 there is a blank at
position 1 on the tape - Requires mutually exclusive conditions
- (assert '(implies (s ?integer 0 ?integer1)
- (not (s ?integer 1 ?integer1)))
- (assert '(implies (s ?integer 1 ?integer1)
- (not (s ?integer 0 ?integer1)))
10Explicit symbol transition rules
- (W ?state ?read-sym ?write-sym ?state1)
- (R ?state ?read-sym ?state1)
- (L ?state ?read-sym ?state1)
When at ?state reading a ?read-sym, write a
?write-sym and move to ?state1
When at ?state reading a ?read-sym, shift right
and move to ?state1
When at ?state reading a ?read-sym, shift left
and move to ?state1
11Explicit symbol transition rules
- (implies
- (and
- (R ?state ?sym ?state1)
- (q ?time ?state ?pos)
- (s ?time ?sym ?pos))
- (and
- (q (1 ?time) ?state1 (1 ?pos))
- (implies (s ?time 0 ?pos1)
- (s (1 ?time) 0 ?pos1))
- (implies (s ?time 1 ?pos1)
- (s (1 ?time) 1 ?pos1)))))
If there is a shift-right transition for a
certain state and symbol
and the TM is in that state, and the proper
symbol is on the tape
then we are in the corresponding state at the
next time step
and wherever there is a blank/one on the tape,
there is a blank/one at the next time step at the
corresponding position.
12Explicit symbol simple loops
- (implies
- (and
- (not ( ?integer ?integer1))
- (q ?integer ?integer3 ?integer4)
- (q ?integer1 ?integer3 ?integer4)
- (implies
- (s ?integer 0 ?integer2)
- (s ?integer1 0 ?integer2))
- (implies
- (s ?integer 1 ?integer2)
- (s ?integer1 1 ?integer2)))
- (not (q ?integer5 -1 ?integer6)))
If there are two distinct times
and the TM is in the same state, at the same
position at both times
and the tape is identical at both times
then we have a simple loop, and the halt state
is never reached.
13Implicit symbols
- Since there are just two symbols, treat blank as
true and 1 as false - (blank 5 1) means the same as (s 5 0 1)
- (not (blank 5 1)) means there is instead a 1 at
that time and position - Fewer arguments
- Implicitly contains logic that there cannot be a
blank and 1 at the same time and position
14Implicit symbol transition rules
- (B-B ?state ?state1)
- (B-1 ?state ?state1)
- (1-B ?state ?state1)
- (1-B ?state ?state1)
- (B-R ?state ?state1)
- (1-R ?state ?state1)
- (B-L ?state ?state1)
- (1-L ?state ?state1)
On blank write blank On blank write 1 On 1 write
blank On 1 write 1
On blank shift right On 1 shift right
On blank shift left On 1 shift left
15Implicit symbol transition rules
If there is a shift-right on blank transition for
a certain state
- (implies
- (and (B-R ?state ?state1)
- (blank ?time ?pos)
- (config ?time ?state ?pos))
- (and (config (1 ?time) ?state1 (1 ?pos))
- (iff (blank (1 ?time) ?pos1)
- (blank ?time ?pos1))))
- (implies
- (and (1-R ?state ?state1)
- (not (blank ?time ?pos))
- (config ?time ?state ?pos))
- (and (config (1 ?time) ?state1 (1 ?pos))
- (iff (blank (1 ?time) ?pos1)
- (blank ?time ?pos1))))
and the head is in that state and reading a
blank
then we are in the corresponding state at the
next time step
and there is a blank at the next time step iff
there was a blank in this time step
16Implicit symbol simple loops
If there are two distinct times
- (implies (exists ...
- (and (lt ?time ?time1)
- (config ?time ?state ?pos)
- (config ?time1 ?state ?pos)
- (forall (?pos1)
- (iff (blank ?time ?pos1)
- (blank ?time1 ?pos1)))))
- (halt-type nonhalter-simple-loop))
and the TM is in the same state, at the same
position at both times
and the tape is identical at both times
then we have a simple loop, and the halt state
is never reached.
17Implicit symbol uniform loops
If there are two distinct times
- (implies (exists ...
- (and (lt ?time ?time1)
- (config ?time ?state ?pos)
- (config ?time1 ?state ?pos1)
- (forall (?pos2) (blank ?time ?pos2))
- (forall (?pos3) (blank ?time1 ?pos3))))
- (halt-type nonhalter-uniform-loop))
and the TM is in the same state, maybe at
different positions at both times
and the tape is uniformly blank at both times
then we have a uniform tape loop, and the halt
state is never reached.
Note Since the tape starts as all blank, the
tape MUST be all blank for this rule to work
18Halt detection
If there is a time when the halt state is reached
- (assert '(implies
- (config ?time halt ?pos)
- (halt-type halter))
- name 'halter)
then we have a halting Turing Machine.
19Generic halt / non-halt query
-
- Other TM laws here
-
- Loop / halt laws
- (assert '(implies ... (halt-type
nonhalter-simple-loop))) - (assert '(implies ... (halt-type
nonhalter-uniform-loop))) - (assert '(implies ... (halt-type halter)))
-
- TM description here
-
- Single halt / non-halt query
- (prove '(halt-type ?type)
- answer '(ans ?type))
20Non-halting TM examples
Key (explicit time, implicit time)
Simple 4-Cycle (1.2s 0.4s)
Moving 4-Cycle (0.3s 0.4s)
Simplest Loop (0.3s 0.4s)
Write 1 Cycle (0.3s 2.1s)
Complex Uniform Tape (12s)
Simple Uniform Tape (0.4s)
21Halting TM examples
Halt 2 Steps (0.7s)
Halt 2 4-Cycles (257s)
22(too) Complex example
Embedded Loop (gt 1000s)
23Lessons learned
- It is possible to encode TMs in FOL
- ATPs do not think like people do
- SNARK is finicky
24To Do
- Paper from Selmer describes more loop detection
theory (uses string theory) - Implement at least one of these methods
- Mention that this is new work since proofs are
found - Construct my own proof of Embedded Loop, make
more detailed - Final paper due May 12
- Email URL with files needed
25Possible future directions
- Encode all this into a model-finder
- Visualization
- Encode all this in Athena
- Prove the non-halting laws more fundamentally
using induction - Better ways to encode TMs
- More types of halter / non-halter detection
- Meta-reasoning on failed attempts
26References
- Joshua Taylor. Personal communication, Athena
code for Turing Machine logic. April 2005. - Kyle Ross. Use of optimisation techniques in
determining values for the quadruplorum variants
of Rados Busy Beaver function. Thesis. 2002. - Kyle Ross, Owen Kellett, Bram van Heuveln, Selmer
Bringsjord. A new-millenium attack on the Busy
Beaver problem. Draft. 2003. - Selmber Bringsjord. Toward logicizing holdouts.
Presentation slides. March 2005. - Bram van Heuveln et al. Non-halters in the Busy
Beaver problem. Presentation slides. April 2003.