{"id":28753227,"url":"https://github.com/google-deepmind/formal-conjectures","last_synced_at":"2025-06-17T00:39:14.532Z","repository":{"id":296057614,"uuid":"982001159","full_name":"google-deepmind/formal-conjectures","owner":"google-deepmind","description":"A collection of formalized statements of conjectures in Lean.","archived":false,"fork":false,"pushed_at":"2025-06-12T09:12:37.000Z","size":613,"stargazers_count":492,"open_issues_count":83,"forks_count":45,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-06-12T09:37:19.444Z","etag":null,"topics":["formal-mathematics","lean4"],"latest_commit_sha":null,"homepage":"https://google-deepmind.github.io/formal-conjectures/","language":"Lean","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google-deepmind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-12T08:22:05.000Z","updated_at":"2025-06-12T09:36:06.000Z","dependencies_parsed_at":"2025-06-12T09:26:20.704Z","dependency_job_id":"6bfc4b62-9b9e-4761-a5f2-a0bc54a84347","html_url":"https://github.com/google-deepmind/formal-conjectures","commit_stats":null,"previous_names":["google-deepmind/formal-conjectures"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/google-deepmind/formal-conjectures","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fformal-conjectures","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fformal-conjectures/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fformal-conjectures/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fformal-conjectures/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google-deepmind","download_url":"https://codeload.github.com/google-deepmind/formal-conjectures/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google-deepmind%2Fformal-conjectures/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260268635,"owners_count":22983601,"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":["formal-mathematics","lean4"],"created_at":"2025-06-17T00:39:13.460Z","updated_at":"2025-06-17T00:39:14.521Z","avatar_url":"https://github.com/google-deepmind.png","language":"Lean","funding_links":[],"categories":["Lean","A01_文本生成_文本对话"],"sub_categories":["大语言对话模型及数据"],"readme":"# Formal Conjectures\n\n[![.github/workflows/push_master.yml](https://github.com/google-deepmind/formal-conjectures/actions/workflows/build-and-docs.yml/badge.svg)](https://github.com/google-deepmind/formal-conjectures/actions/workflows/build-and-docs.yml)\n[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/google-deepmind/formal-conjectures)\n\nA collection of formalized statements of conjectures in\n[Lean](https://leanprover.github.io/lean4/doc/whatIsLean.html), using\n[mathlib](https://github.com/leanprover-community/mathlib4).\n\n\u003c!--TODO(firsching): insert link to autmatically generated documentation once docgen4 works--\u003e\n\n## Goals\n\nWhile there is a growing corpus of formalized theorems including proofs, there\nis a lack of open conjectures where only the statement has been formalized. This\nwould be useful for a few reasons. It could\n\n*   Become a great benchmark for automated theorem provers and automated\n    formalization tools.\n*   Help clarify the precise meaning of conjectures through formalization.\n*   Encourage the expansion of `mathlib` by highlighting needed definitions.\n\nIt is our hope that this initiative will form the seed of a much richer dataset of\nformalized conjectures.\n\n### Note on Formalisation Accuracy\n\nFormalizing mathematical statements without proofs is inherently challenging.\nSubtle inaccuracies can arise where the formal statement might not perfectly\ncapture the nuances of the original conjecture. To mitigate this issue, we will\nrely on careful human review of contributions, and plan to periodically leverage\nAlphaProof to help identify potential misformalisations.\n\n## Contributing\n\nContributions are most welcome, consider adding (or even just opening an issue\ndescribing) your favorite conjecture.\n\n### I'd like to contribute - what can I do?\n\nThere are various ways of contributing to this repository:\n\n1.  **Adding new problem formalisations**\n\n    Unlike other conjecture lists (the Millenium problems, Smale's list, Yau's\n    problems, ...) the problems in this repo can come from various places and we\n    encourage all sorts of contributions. For example, conjectures can be\n    sourced from various places, including:\n\n    *   Mathematical Textbooks\n    *   Research Papers (including preprints on the\n        [arxiv](https://arxiv.org/archive/math))\n    *   [MathOverflow](https://mathoverflow.net/) Questions\n    *   Dedicated Problem Lists (e.g.,\n        [Erdős Problems](https://www.erdosproblems.com/),\n        [Wikipedia's list of unsolved problems](https://en.wikipedia.org/wiki/List_of_unsolved_problems_in_mathematics),\n        [the Scottish Book](https://en.wikipedia.org/wiki/Scottish_Book), ...)\n    *   ...\n\n    We are also interested in the formalized statements of solved variants of\n    open conjectures and solved statements from dedicated problem lists.\n    While the main goal is to collect conjecture statements, we appreciate the\n    inclusion of very short proofs for solved items or counterexamples,\n    especially if they are illuminating and testing the definitions.\n    Lengthy proofs are outside the scope of this repository.\n\n2.  **Opening issues with problems that you would like to see formalised.** Such\n    an issue should contain links to suitable references, and ideally a precise\n    informal statement of the conjecture.\n\n3.  **Formalise a problem already proposed**. You can find a list of problems ready\n   to be worked on in our [list of unassigned new conjectures](https://github.com/google-deepmind/formal-conjectures/issues?q=is%3Aissue+is%3Aopen+no%3Aassignee+label%3A%22new+conjecture%22).\n   Just pick one and comment on the issue (e.g., \"I want to work on this\") to\n   have it assigned to you.\n\n4.  **Improving the referencing and tagging of problems.** For example, adding\n    pointers to references in already existing files, or adding additional\n    relevant `AMS` subject attributes to statements.\n\n5.  **Fixing misformalisations.** PRs fixing incorrect formalisations and issues\n    flagging problems are encouraged.\n\n### How to Contribute\n\nPlease see [CONTRIBUTING](./CONTRIBUTING.md) first.\n\n1.  Open an issue on GitHub specifying what you plan to contribute.\n2.  Fork the repository on GitHub.\n3.  Add your formalized conjecture(s) in the appropriate file/directory\n    structure to a branch in your fork.\n    *   Include comments linking to the source of the conjecture (paper,\n        website, book).\n    *   Use the `category` attribute to specify what category each of the\n        statements falls into (see below for more details on this.)\n    *   Use the `AMS` attribute to specify what mathematical areas each of the\n        statements are related to.\n4.  Ensure the code builds (`lake build`).\n5.  Submit a Pull Request to the main repository.\n\n## Usage, Structure \u0026 Features\n\nThis is a Lean 4 project managed with `lake` and a dependency `mathlib`. You\nfirst need to\n[install elan, lake, lean and if you want vscode](https://leanprover-community.github.io/get_started.html)\nand then run\n\n```bash\nlake exe cache get\nlake build\n```\n\n### Directory structure\n\nThe directory structure is organized by the type of sources of the conjectures.\nThere are two special directories:\n\n-   `Util` contains utilities like the\n    [`category` attribute](./FormalConjectures/Util/Attributes.lean), the\n    [`answer( )` elaborator](./FormalConjectures/Util/Answer.lean) and some\n    linters.\n-   `ForMathlib` contains code potentially suitable to be upstreamed to\n    [mathlib](https://github.com/leanprover-community/mathlib4). Here we follow\n    mathlib's directory structure.\n\n### Some features\n\n#### The `category` attribute\n\nA tag to mark the category of a problem statement. In this repository, we allow\nfor the following categories:\n\n-   Open research problem: a mathematical problem for which there is no solution\n    accepted by the community.\n-   Solved research problem: a mathematical problem that has an accepted\n    solution (in the sense that it is widely accepted by experts in the field).\n    In particular this does *not* mean that the statement has been proven in the\n    formal setting.\n-   Graduate level problem.\n-   Undergraduate level problem.\n-   High school level problem.\n-   API statement: a statement that constructs basic theory around a new\n    definition.\n-   Test statement: a statement that serves as a \"unit test\". These are useful\n    to check e.g new definitions or theorem statements.\n\nThis repository targets research level problems. As such, graduate/\nundergraduate/high school level problems should only be contributed if they\nare directly related to a research level problem (e.g. as a special case,\netc.).\n\nThe tags should be used as follows:\n\n```lean\n@[category research open]\ntheorem foo : Transcendental ℚ (rexp 1 + π) := by\n  sorry\n\n@[category research solved]\ntheorem bar : FermatLastTheorem := by\n  sorry\n\n```\n\n#### The `AMS` attribute\n\nThe `AMS` tag is intended to provide some information about the mathematical\nsubjects a given statement is related to. For simplicity, we use the main\nsubjects listed in the\n[AMS MSC2020](https://mathscinet.ams.org/mathscinet/msc/pdfs/classifications2020.pdf).\n\nThe tag can be used as follows:\n\n```lean\n@[AMS 11] -- `11` means \"Number Theory\"\ntheorem flt : FermatLastTheorem := by\n  sorry\n```\n\nWithin a Lean file, you can use the `#AMS` command to list all the possible\nvalues.\n\nTo determine the subject associated to the tag `AMS foo` in VS Code, you can hover\nover `foo`.\n\nThe attribute allows multiple parameters, e.g. `@[AMS foo bar]` is valid.\n\n#### The `answer( )` elaborator\n\nSome open questions are formulated in a way that require a user provided answer,\nfor instance the\n[Hadwiger–Nelson problem](https://en.wikipedia.org/wiki/Hadwiger%E2%80%93Nelson_problem)\nasks for the minimum number of colors needed to color the plane such that no two\npoints exactly one unit distance apart have the same color. The `answer( )`\nelaborator allows us to formulate the problem without deciding for an answer.\n\n```lean\n@[category research open]\ntheorem HadwigerNelsonProblem :\n    IsLeast {n : ℕ | ExistsColoring n} answer(sorry) := by\n  sorry\n```\n\n## Problems that require answers\n\nNote that providing a term inside the `answer( )` elaborator together with a proof that\nthe statement is true *does not* by itself mean that the problem has been solved. For example, a question\nof the form \"Which natural numbers satisfy the predicate $P$?\" might be formalised as\n```lean\ntheorem myOpenProblem : {n : ℕ | P n} = answer(sorry) := by\n  sorry\n```\nand one can provide trivial answers that aren't mathemetically interesting, e.g. the set\n`{n : ℕ | P n}` itself.\n\nIn particular, the question of whether the answer provided corresponds to a mathematically\nmeaningful solution of the problem is outside of the scope of this repository.\n\n## Style Guidelines\n\n1.  Generally speaking, every problem should have its own file, though there is\n    some flexibility here (e.g. variants and special cases should go in the same\n    file).\n2.  Bespoke definitions are allowed, as long as they help clarify problem\n    statements. We also encourage contributors to provide some very basic API\n    for such definitions as a way to test whether these behave as expected.\n3.  Benchmark problems should be stated with the `theorem` keyword, while for\n    test statements `example` is usually prefered.\n4.  Every statement should have at least one `AMS` subject tag.\n5.  Every file should come with a reference to where the problem was sourced\n    from, and be put in the corresponding directory of the repository, e.g. a\n    problem sourced from wikipedia should live in `FormalConjectures/Wikipedia`.\n6.  When a problem is stated as a question in English, the preferred style is to\n    use `answer(sorry)` in the following way:\n    ```lean\n    /-- English version: \"Does P hold ?\" -/\n    theorem myConjecture : P ↔ answer(sorry) := by\n      sorry\n    ```\n    If the problem has been solved, `answer(sorry)` should be replaced by\n    `answer(True)` or `answer(False)` accordingly.\n    If the problem is not stated as a question, the following style is preferred:\n    ```lean\n    /-- English version: \"P holds\" -/\n    theorem myConjecture : P := by\n      sorry\n    ```\n    If the problem has been solved to the negative, then `P` should be replaced with\n    `¬ P`.\n7.  Every file should start with the following copyright header:\n    ```lean\n    /-\n    Copyright 2025 The Formal Conjectures Authors.\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n        https://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n    -/\n    ```\n    Also consider adding yourself to the list of authors in the AUTHORS file.\n\n\n## Versioning\n\nThis repo will track the monthly tagged releases of mathlib (which correspond to\nLean releases), rather than tracking mathlib master.\n\nTo minimize friction when adding problem statements that need definitions that\nare not yet in mathlib, such definitions can be added to the `ForMathlib`\ndirectory. This ensures that the addition of these problems to\nformal-conjectures is not locked to the mathlib release cadence.\n\n## Licensing\n\nCopyright 2025 The Formal Conjectures Authors. All software is licensed under the Apache License,\nVersion 2.0 (Apache 2.0); you may not use this file except in compliance with\nthe Apache 2.0 license. You may obtain a copy of the Apache 2.0 license at:\nhttps://www.apache.org/licenses/LICENSE-2.0\n\nAll other materials are licensed under the Creative Commons Attribution 4.0\nInternational License (CC-BY). You may obtain a copy of the CC-BY license at:\nhttps://creativecommons.org/licenses/by/4.0/legalcode.\n\nThe content may be based on third party sources and may in some cases include\nthird party content. The original source for each conjecture is indicated by a\nURL within the source file. Third party content may be subject to different\nlicensing requirements. In particular:\n\n-   Material from Wikipedia articles and MathOverflow is released under the\n    Creative Commons Attribution-Share-Alike License 4.0.\n-   Material from bbchallenge.org is used under the Creative Commons Attribution\n    4.0 International License.\n-   Material from the Equational Theories Project is used under Apache-2.0.\n-   Material from arXiv is used under the licence applicable to the relevant\n    paper, as indicated at the URL within the source file.\n\nUnless required by applicable law or agreed to in writing, all software and\nmaterials distributed here under the Apache 2.0 or CC-BY license are distributed\non an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either\nexpress or implied. See the licenses for the specific language governing\npermissions and limitations under those licenses.\n\nThis is not an official Google product.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle-deepmind%2Fformal-conjectures","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle-deepmind%2Fformal-conjectures","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle-deepmind%2Fformal-conjectures/lists"}