{"id":18376570,"url":"https://github.com/yiyunliu/takahashi-factorization","last_synced_at":"2025-10-27T14:12:18.822Z","repository":{"id":245344101,"uuid":"817974834","full_name":"yiyunliu/takahashi-factorization","owner":"yiyunliu","description":"A proof of factorization using Takahashi's method","archived":false,"fork":false,"pushed_at":"2024-06-24T00:27:31.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-15T22:28:33.729Z","etag":null,"topics":["coq-formalization","lambda-calculus"],"latest_commit_sha":null,"homepage":"","language":"Coq","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/yiyunliu.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":"2024-06-20T20:57:48.000Z","updated_at":"2024-10-18T23:52:57.000Z","dependencies_parsed_at":"2024-11-06T00:27:09.238Z","dependency_job_id":"c5df143f-5dc4-46f8-b246-5cc2e6b9f943","html_url":"https://github.com/yiyunliu/takahashi-factorization","commit_stats":null,"previous_names":["yiyunliu/takahashi-factorization"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yiyunliu%2Ftakahashi-factorization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yiyunliu%2Ftakahashi-factorization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yiyunliu%2Ftakahashi-factorization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yiyunliu%2Ftakahashi-factorization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yiyunliu","download_url":"https://codeload.github.com/yiyunliu/takahashi-factorization/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248345408,"owners_count":21088272,"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":["coq-formalization","lambda-calculus"],"created_at":"2024-11-06T00:23:56.373Z","updated_at":"2025-10-27T14:12:18.724Z","avatar_url":"https://github.com/yiyunliu.png","language":"Coq","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Coq mechanization of the factorization theorem for the untyped lambda calculus\nThis repository contains mechanized proofs Hindley's postponement\ntheorem for the weak head reduction\n([normalization_h.v](theories/normalization_h.v))\nand leftmost-outermost reduction\n([normalization_lo.v](theories/normalization_lo.v)) strategies.\n\nNote that [normalization_h.v](theories/normalization_h.v) also\nincludes a proof that recovers the standardization theorem from\nfactorization theorem for weak head reduction.\n\nThe proof is based on\n[Takahashi's\nproof](https://www.sciencedirect.com/science/article/pii/S0890540185710577)\nand structured in a way similar to [Accattoli et\nal. 2019](https://link.springer.com/chapter/10.1007/978-3-030-34175-6_9).\n\nI managed to prove\npostponement for leftmost-outermost reduction directly without indexed\nparallel reduction, a proof device introduced by Accattoli to work\naround the limitation of Takahashi's method.\n\nIndexed parallel reduction is nice on paper, but is painful to\nmechanize, especially when the development relies on simultaneous\nsubstitution for its metatheory; the generalized substitution property\n(morphing lemma) would require adding up the number reductions for\neach pair of reductions to substitute. The development avoids indexing\naltogether and instead uses Takahashi's * operator to bound the\nreduction steps.\n\nDespite Accattoli's observation that Takahashi's method fails to work\non leftmost-outermost reduction, it's possible to revise her statement\nof Lemma 2.4 to a more generous statement (`ipar_starseq_morphing` in\nthe development) to remove the dependency on the left-substitutivity\nof the essential reduction relation. This revised statement not only\nholds for both head and lo reductions, but is also much easier to\nprove.\n\nStill, I find it more intuitive to recover leftmost-outermost\nstandardization from the factorization theorem for weak head\nreduction, a useful result on its own.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyiyunliu%2Ftakahashi-factorization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyiyunliu%2Ftakahashi-factorization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyiyunliu%2Ftakahashi-factorization/lists"}