{"id":22295846,"url":"https://github.com/meithecatte/busycoq","last_synced_at":"2025-10-06T22:31:58.056Z","repository":{"id":184057552,"uuid":"671237247","full_name":"meithecatte/busycoq","owner":"meithecatte","description":"Busy Beaver deciders backed by Coq proof","archived":false,"fork":false,"pushed_at":"2025-03-02T17:42:19.000Z","size":341,"stargazers_count":48,"open_issues_count":2,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-05T05:51:12.455Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Coq","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meithecatte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-26T21:30:12.000Z","updated_at":"2025-03-04T06:04:14.000Z","dependencies_parsed_at":"2023-11-21T23:24:41.362Z","dependency_job_id":"6c0df7fa-319d-4258-a2b4-1e53ccb0c7c8","html_url":"https://github.com/meithecatte/busycoq","commit_stats":null,"previous_names":["meithecatte/busycoq"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/meithecatte/busycoq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meithecatte%2Fbusycoq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meithecatte%2Fbusycoq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meithecatte%2Fbusycoq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meithecatte%2Fbusycoq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meithecatte","download_url":"https://codeload.github.com/meithecatte/busycoq/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meithecatte%2Fbusycoq/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267616577,"owners_count":24116154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-03T17:43:19.602Z","updated_at":"2025-10-06T22:31:57.983Z","avatar_url":"https://github.com/meithecatte.png","language":"Coq","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BusyCoq\n\nVerified implementations of [Busy Beaver deciders][decider]. The computation\nis split into two parts:\n\n - First, an untrusted decider, written in Rust, tries to decide whether\n   each machine halts. When it succeeds, it generates a *certificate*.\n - Then, a *verifier*, proven correct in Coq and extracted to OCaml,\n   checks each certificate and makes sure that it is correct.\n   A Coq theorem guarantees that if the verifier accepts a certificate, then\n   the corresponding machine doesn't halt.\n\n[decider]: https://bbchallenge.org/method#deciders\n\n## Implemented deciders\n\n - Cyclers\n - Translated Cyclers\n - Backwards Reasoning\n - Bouncers\n\n## Individual machines\n\nApart from deciders, the repository includes manual proofs for some machines\nconsidered hard to decide automatically. At the moment, these include:\n\n - [Skelet #1](https://www.sligocki.com/2023/03/13/skelet-1-infinite.html)\n    (due to the nature of the proof, the final computation is done by an\n    extracted OCaml program)\n - [Skelet #10](https://www.sligocki.com/2023/03/14/skelet-10.html)\n - [Skelet #15](https://www.sligocki.com/2023/02/05/shift-overflow.html)\n - Skelet #26 (proof contributed by Jason Yuen; I am not aware of\n   the informal argument being outlined anywhere)\n - [Skelet #33](https://discuss.bbchallenge.org/t/skelet-33-doesnt-halt-coq-proof/180)\n   (proof contributed by Jason Yuen)\n - [Skelet #34](https://www.sligocki.com/2023/02/02/skelet-34.html)\n - [Skelet #35](https://www.sligocki.com/2023/02/05/shift-overflow.html)\n - the five \"cubic-finned\" machines analyzed by Justin Blanchard\n   (bbchallenge indices 7763480, 8120967, 10756090, 11017998, and 11018487).\n\n## Running the deciders\n\nPlace the [seed database][seed] at `seed.dat` in the root of the repository.\nMake sure you have Rust, Coq and OCaml installed. Then,\n\n```bash\ncd beaver\ncargo build --release\ntime target/release/beaver decide ../seed.dat ../certs.dat\ncd ../verify\nmake\ntime ./verify ../seed.dat ../certs.dat ../decided.dat\n```\n\nA binary file listing the database indices of all successfully decided machines\nwill be generated at `decided.dat`.\n\n[seed]: https://bbchallenge.org/method#download\n\n## Results\n\n```\nCyclers:\n  11229238 Decided\n         0 OutOfSpace\n   3092791 OutOfTime\n         0 Halted\n  74342035 NotApplicable\nTranslated Cyclers:\n  73860624 Decided\n         0 OutOfSpace\n    481411 OutOfTime\n         0 Halted\n   3092791 NotApplicable\nBackwards Reasoning:\n   2035576 Decided\n    979028 OutOfSpace\n    559598 OutOfTime\nBouncers:\n   1406032 Decided\n     23433 OutOfSpace\n    109161 OutOfTime\n         0 Halted\n\n    132594 Undecided\n\nreal\t2m11.670s\nuser\t25m32.012s\nsys\t0m3.364s\n```\n\nHere are some results from an earlier run with higher limits (50M steps,\n64k tape cells) on the Translated Cyclers decider:\n\n```\nchikara:~/dev/busycoq/beaver$ \\time target/release/beaver decide\nCyclers:\n  11229238 Decided\n         0 OutOfSpace\n   3092791 OutOfTime\n         0 Halted\n  74342035 NotApplicable\nTranslated Cyclers:\n  73861173 Decided\n    138452 OutOfSpace\n    342410 OutOfTime\n         0 Halted\n   3092791 NotApplicable\n10784.09user 136.66system 15:12.51elapsed 1196%CPU (0avgtext+0avgdata 10180maxresident)k\n0inputs+2794536outputs (0major+2590minor)pagefaults 0swaps\nchikara:~/dev/busycoq/verify$ \\time ./verify\n79.89user 0.41system 1:20.32elapsed 99%CPU (0avgtext+0avgdata 124288maxresident)k\n0inputs+664776outputs (0major+30600minor)pagefaults 0swaps\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeithecatte%2Fbusycoq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeithecatte%2Fbusycoq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeithecatte%2Fbusycoq/lists"}