{"id":22390639,"url":"https://github.com/jjaassoonn/twist","last_synced_at":"2026-03-19T22:40:56.058Z","repository":{"id":101612891,"uuid":"498070744","full_name":"jjaassoonn/twist","owner":"jjaassoonn","description":"Definition of Serre's twisting sheaf (work in progress)","archived":false,"fork":false,"pushed_at":"2022-07-23T21:22:03.000Z","size":64,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"lean-3.42.1","last_synced_at":"2025-06-16T04:33:04.916Z","etag":null,"topics":["arithmetic-geometry","formalization","mathematics"],"latest_commit_sha":null,"homepage":"","language":"Lean","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/jjaassoonn.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":"2022-05-30T19:21:36.000Z","updated_at":"2023-03-02T09:32:22.000Z","dependencies_parsed_at":"2023-06-06T13:15:17.984Z","dependency_job_id":null,"html_url":"https://github.com/jjaassoonn/twist","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jjaassoonn/twist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjaassoonn%2Ftwist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjaassoonn%2Ftwist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjaassoonn%2Ftwist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjaassoonn%2Ftwist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jjaassoonn","download_url":"https://codeload.github.com/jjaassoonn/twist/tar.gz/refs/heads/lean-3.42.1","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjaassoonn%2Ftwist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28907380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T06:42:00.998Z","status":"ssl_error","status_checked_at":"2026-01-30T06:41:58.659Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["arithmetic-geometry","formalization","mathematics"],"created_at":"2024-12-05T03:41:35.779Z","updated_at":"2026-01-30T07:12:25.405Z","avatar_url":"https://github.com/jjaassoonn.png","language":"Lean","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Serre's Twisting Sheaf\n\nThis repo is aimed to formalise the concept of [Serre's Twisting Sheaf](https://en.wikipedia.org/wiki/Proj_construction#The_twisting_sheaf_of_Serre). But before this, we need to build some missing pieces.\n\n## Localized Module\nWe need localized module, because we want the definition of quasicoherent sheaves which can be defined as locally $\\tilde{M_i}$ over $\\mathrm{Spec} R_i$.\n\nSo for a commutative ring $R$, a multiplicative subset $S\\subseteq R$ and $R$-module $M$. We can defined the localized module $M_S$ (an $R_S$-module) to be\n$$ \\left\\{[m, s]|[m, s]\\sim[n, t]\\iff\\exists u\\in S,u\\cdot t\\cdot m = u\\cdot s\\cdot n\\right\\} $$\n\nSee [src/module_localisation/bsaic.lean](src/module_localisation/basic.lean)\n\n## Integer grading from natural number grading\nSometimes it is convinient to trade a natrual number graded algebra as an integer graded algebra by taking negative grade to be $\\{0\\}$. This is implemented at [src/grading/nat_to_int.lean](src/module_localisation/nat_to_int.lean). We want this because we want to shift a grading by an arbitrary $m\\in\\mathbb Z$.\n\n## Graded modules and twisting\n\nGiven a graded ring $A\\cong\\bigoplus_i A_i$, an $A$-module $M\\cong\\bigoplus_j M_j$ is said to be graded if $a_i\\cdot m_j\\in M_{i+j}$ for all $a_i\\in A_i$ and $m_j\\in M_j$. Given a graded $A$-module $M$, we can twist $M$ by $j$ to give another graded $A$-module where the $i$-th grade component $M'_j$ is defined as $M_{i+j}$ . To verify this is a graded module with respect to this new grading, one needs to verify that $M\\cong\\bigoplus_i M'_i$ and this grading respects scalar multiplication. These are defined in [src/grading/graded_module.lean](src/grading/graded_module.lean).\n\n## $\\tilde{M}$\n\nSo given a commutative ring $R$ and $R$-module $M$, we can define a sheaf of abelian group $\\tilde{M}$ on $\\mathrm{Spec} R$ by asking\n$$\nU\\mapsto \\prod_{p\\in U}M_p.\n$$\n\nThen this is a $\\mathrm{Spec} R$-module. This is defined in [src/MSpec/basic.lean](src/MSpec/basic.lean). I called this `MSpec` for **module on spec**.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjaassoonn%2Ftwist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjaassoonn%2Ftwist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjaassoonn%2Ftwist/lists"}