{"id":26596997,"url":"https://github.com/lengyijun/collatz_function","last_synced_at":"2025-03-23T17:30:09.619Z","repository":{"id":279321316,"uuid":"936967140","full_name":"lengyijun/collatz_function","owner":"lengyijun","description":"The best 2-symbol turing machine for collatz 3x+1 function","archived":false,"fork":false,"pushed_at":"2025-03-13T01:31:56.000Z","size":234,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T02:28:13.639Z","etag":null,"topics":["collatz-problem","turing-machine"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lengyijun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-02-22T02:59:49.000Z","updated_at":"2025-02-27T03:49:53.000Z","dependencies_parsed_at":"2025-02-25T01:33:08.930Z","dependency_job_id":null,"html_url":"https://github.com/lengyijun/collatz_function","commit_stats":null,"previous_names":["lengyijun/collatz_function"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lengyijun%2Fcollatz_function","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lengyijun%2Fcollatz_function/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lengyijun%2Fcollatz_function/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lengyijun%2Fcollatz_function/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lengyijun","download_url":"https://codeload.github.com/lengyijun/collatz_function/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245140561,"owners_count":20567397,"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","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":["collatz-problem","turing-machine"],"created_at":"2025-03-23T17:30:08.752Z","updated_at":"2025-03-23T17:30:09.554Z","avatar_url":"https://github.com/lengyijun.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# collatz_function\n\nThis repo propose two non-halting turing machines which simulates the iteration of the Collatz 3x + 1 function.\n\nBoth of them are better than preivous results.\n\n9-state, 2-symbol turing machine in branch [9](https://github.com/lengyijun/collatz_function/tree/9_10) \n- Not maintained any more\n- The tape is cleaner: useless 1 will be zeroed again\n- calculate collatz n, n \u003e= 1\n\n8-state, 2-symbol turing machine in branch [8](https://github.com/lengyijun/collatz_function/tree/8_9) \n- Optimized based on preivous one\n- The tape is dirty: useless 1 will not be zeroed\n- calculate collatz n, n \u003e= 0\n\nWe verify their behaviour in lean4.\n\n## Motivation\n\nWhen reading [^Mi2014], I notice [^Bai1998] is lost. So I want to reproduce the lost `10*2` and `2*8` turing machine.\n\nI spent one morning to design and got a better turing machine (9*2).\n\nI know noboby will ever verify the behaviour by hand, so I spend 24 hours to verify everything in lean4.\n\nSeveral days later, when research `2*8` turing machine, I find some techiques and apply it to `9*2`, got `8*2` turing machine.\n\n## Design\n\nThis `8*2` turing machine is bases on `9*2` turing machine in branch `9_10`\n\nIn `9*2` turing machine, we notice that the input is always cut into two halves: the left half is always abandoned.\n\nIf input is even, the left half is abandoned directly.\n\nIf input is odd, the left half is appended to both ends of right half.\n\nIn `9*2` turing machine, state E and F are used to zeroing the left half.\n\nActually, we don't need to zero the left half: write one zero is enough to make the boundary.\n\n\n## Open question\n\n- Reproduce the 2-state, 8-symbol machine in [^Bai1998].\n- Is 7 states enough ?\n\n\n[^Bai1998]: C. Baiocchi, 3N+1, UTM e Tag-systems (Italian), Dipartimento di Matematica dell’Università “La Sapienza” di Roma 98/38, 1998.\n[^Mi2014]: https://arxiv.org/abs/1409.7322\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flengyijun%2Fcollatz_function","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flengyijun%2Fcollatz_function","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flengyijun%2Fcollatz_function/lists"}