Home

Awesome

BusyCoq

Verified implementations of Busy Beaver deciders. The computation is split into two parts:

Implemented deciders

Individual machines

Apart from deciders, the repository includes manual proofs for some machines considered hard to decide automatically. At the moment, these include:

Running the deciders

Place the seed database at seed.dat in the root of the repository. Make sure you have Rust, Coq and OCaml installed. Then,

cd beaver
cargo build --release
time target/release/beaver decide ../seed.dat ../certs.dat
cd ../verify
make
time ./verify ../seed.dat ../certs.dat ../decided.dat

A binary file listing the database indices of all successfully decided machines will be generated at decided.dat.

Results

Cyclers:
  11229238 Decided
         0 OutOfSpace
   3092791 OutOfTime
         0 Halted
  74342035 NotApplicable
Translated Cyclers:
  73860624 Decided
         0 OutOfSpace
    481411 OutOfTime
         0 Halted
   3092791 NotApplicable
Backwards Reasoning:
   2035576 Decided
    979028 OutOfSpace
    559598 OutOfTime
Bouncers:
   1406032 Decided
     23433 OutOfSpace
    109161 OutOfTime
         0 Halted

    132594 Undecided

real	2m11.670s
user	25m32.012s
sys	0m3.364s

Here are some results from an earlier run with higher limits (50M steps, 64k tape cells) on the Translated Cyclers decider:

chikara:~/dev/busycoq/beaver$ \time target/release/beaver decide
Cyclers:
  11229238 Decided
         0 OutOfSpace
   3092791 OutOfTime
         0 Halted
  74342035 NotApplicable
Translated Cyclers:
  73861173 Decided
    138452 OutOfSpace
    342410 OutOfTime
         0 Halted
   3092791 NotApplicable
10784.09user 136.66system 15:12.51elapsed 1196%CPU (0avgtext+0avgdata 10180maxresident)k
0inputs+2794536outputs (0major+2590minor)pagefaults 0swaps
chikara:~/dev/busycoq/verify$ \time ./verify
79.89user 0.41system 1:20.32elapsed 99%CPU (0avgtext+0avgdata 124288maxresident)k
0inputs+664776outputs (0major+30600minor)pagefaults 0swaps