Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions .github/workflows/comparator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Comparator

on:
push:
pull_request:
workflow_dispatch:

permissions:
contents: read

jobs:
comparator:
runs-on: ubuntu-24.04
# The solution imports the complete Apery formalisation, whose first
# clean build on a GitHub runner takes longer than the default 45 minutes.
timeout-minutes: 120

steps:
- uses: actions/checkout@v4

- uses: actions/checkout@v4
with:
repository: leanprover/comparator
ref: 777e7f56119efc0fac34003db4efe831e0b53723
path: .ci/comparator

- uses: actions/checkout@v4
with:
repository: Zouuup/landrun
ref: 811cfff51ceaf3d9843708aa6d22e9b84ccac8b4
path: .ci/landrun

- uses: actions/setup-go@v5
with:
go-version: stable

- name: Build Landrun
working-directory: .ci/landrun
run: go build -o landrun cmd/landrun/main.go

- name: Set up Lean and fetch the Mathlib cache
uses: leanprover/lean-action@v1
with:
auto-config: false
use-mathlib-cache: true

- name: Build Comparator
uses: leanprover/lean-action@v1
with:
lake-package-directory: .ci/comparator
auto-config: false
build: true
build-args: lean4export comparator
use-mathlib-cache: false

- name: Run Comparator
env:
COMPARATOR_LANDRUN: ${{ github.workspace }}/.ci/landrun/landrun
COMPARATOR_LEAN4EXPORT: ${{ github.workspace }}/.ci/comparator/.lake/packages/lean4export/.lake/build/bin/lean4export
run: >-
systemd-run --property=RestrictAddressFamilies=~AF_UNIX --user --pty --pipe
-E PATH="$PATH"
-E COMPARATOR_LANDRUN="$COMPARATOR_LANDRUN"
-E COMPARATOR_LEAN4EXPORT="$COMPARATOR_LEAN4EXPORT"
--working-directory "$PWD" --
bash -c 'lake env .ci/comparator/.lake/build/bin/comparator config.json'
36 changes: 36 additions & 0 deletions Challenge.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/-
Copyright 2025 The Formal Conjectures Authors.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-/

import Mathlib

/-!
# Irrationality of ζ(5)

This challenge statement is copied verbatim from the Formal Conjectures
repository, `FormalConjectures/Wikipedia/RiemannZetaValues.lean`, theorem
`RiemannZetaValues.irrational_five`, at commit
[`2db01438fda960163f58ff2c2385b52e53f56dd2`](https://github.com/google-deepmind/formal-conjectures/blob/2db01438fda960163f58ff2c2385b52e53f56dd2/FormalConjectures/Wikipedia/RiemannZetaValues.lean).
-/

namespace RiemannZetaValues

/--
$\zeta(5)$ is irrational.
-/
theorem irrational_five : ∃ x, Irrational x ∧ riemannZeta 5 = x := by
sorry

end RiemannZetaValues
153 changes: 20 additions & 133 deletions README.md

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions Solution.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import Apery.Main

namespace RiemannZetaValues

theorem irrational_five : ∃ x, Irrational x ∧ riemannZeta 5 = x := by
exact Apery.irrational_five

end RiemannZetaValues
7 changes: 7 additions & 0 deletions config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"challenge_module": "Challenge",
"solution_module": "Solution",
"theorem_names": ["RiemannZetaValues.irrational_five"],
"permitted_axioms": ["propext", "Quot.sound", "Classical.choice"],
"enable_nanoda": false
}
87 changes: 87 additions & 0 deletions formalization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/mathlib-initiative/formalization.yaml/main/schema/formalization.schema.json
version: "v0.4"

project:
name: "Irrationality of ζ(5)"
description: >-
A Lean formalization of the irrationality of the Riemann zeta value ζ(5),
following A. Fauzan's preprint and the corresponding Formal Conjectures
statement. The proof supplies the Comparator challenge theorem
RiemannZetaValues.irrational_five.
authors: ["Moritz Firsching"]
responsible_maintainers: ["Moritz Firsching"]
license: "Apache-2.0"

repository:
role: "substantive-development"

sources:
- title: "Formal Conjectures: Particular values of the Riemann zeta function"
authors: ["The Formal Conjectures Authors"]
id: "https://github.com/google-deepmind/formal-conjectures/blob/2db01438fda960163f58ff2c2385b52e53f56dd2/FormalConjectures/Wikipedia/RiemannZetaValues.lean"
type: "formalization repository"
location: "RiemannZetaValues.irrational_five"
relationship: "formalizes"
note: >-
Challenge.lean copies this theorem statement verbatim from the pinned
Formal Conjectures revision.
- title: "ζ(5) is irrational"
authors: ["A. Fauzan"]
type: "preprint"
location: "Theorem 1.1"
relationship: "formalizes"
note: "The proof development follows the preprint dated 17 September 2026."
- title: "Particular values of the Riemann zeta function"
authors: ["Wikipedia contributors"]
id: "https://en.wikipedia.org/wiki/Particular_values_of_the_Riemann_zeta_function"
type: "encyclopedia article"
relationship: "background"

classification:
arxiv: ["math.NT"]
msc2020: ["11M06", "11J72"]

status:
scope: >-
Proves the Formal Conjectures statement that ζ(5) is irrational and
verifies the proof independently through Lean's kernel and Comparator.
sorry_count: 0
sorry_in_definitions: 0
axioms: ["propext", "Quot.sound", "Classical.choice"]
main_results:
- declaration: "RiemannZetaValues.irrational_five"
file: "Solution.lean"
sorry_count: 0
axioms: ["propext", "Quot.sound", "Classical.choice"]
comparator_config: "config.json"
literature_dependencies: []

automation:
methods:
- method: "manual"
framework: "Lean 4 and Mathlib"
tool_setup: >-
The proof development uses the pinned Lean v4.34.0-rc1 toolchain,
the pinned Mathlib revision, and the pinned PrimeNumberTheoremAnd
dependency. Comparator and Landrun are pinned in
.github/workflows/comparator.yml.
notes: >-
The Comparator wrapper and metadata are maintained alongside the proof
development; the challenge deliberately contains one sorry placeholder.

fidelity:
divergences: >-
The challenge theorem is the same proposition as the Formal Conjectures
declaration, but omits Formal Conjectures-only category and answer
attributes because the standalone challenge imports Mathlib directly.

review:
status: "self-assessed"
reviewers: ["Moritz Firsching"]
notes: >-
The proof is checked by the existing Lean build and the Comparator CI
workflow against the standard permitted axiom whitelist.

acknowledgements: >-
This project uses Lean, Mathlib, PrimeNumberTheoremAnd, Formal Conjectures,
and leanprover/comparator.
114 changes: 57 additions & 57 deletions lake-manifest.json
Original file line number Diff line number Diff line change
@@ -1,71 +1,31 @@
{"version": "1.2.0",
"packagesDir": ".lake/packages",
"packages":
[{"url": "https://github.com/mo271/PrimeNumberTheoremAnd",
"type": "git",
"subDir": null,
"scope": "",
"rev": "04d81b2a68ea3548b9990813fdc463c78511f412",
"name": "PrimeNumberTheoremAnd",
"manifestFile": "lake-manifest.json",
"inputRev": "04d81b2a68ea3548b9990813fdc463c78511f412",
"inherited": false,
"configFile": "lakefile.toml"},
{"url": "https://github.com/leanprover-community/mathlib4",
[{"url": "https://github.com/leanprover-community/mathlib4",
"type": "git",
"subDir": null,
"scope": "leanprover-community",
"rev": "0df444a360eaa60ab8c11dca51a86af692955474",
"rev": "f385f9fd18abed332ebcd3df239cb357e264aceb",
"name": "mathlib",
"manifestFile": "lake-manifest.json",
"inputRev": "v4.33.1",
"inputRev": "f385f9fd18abed332ebcd3df239cb357e264aceb",
"inherited": false,
"configFile": "lakefile.lean"},
{"url": "https://github.com/b-mehta/PrimeCert",
{"url": "https://github.com/mo271/PrimeNumberTheoremAnd",
"type": "git",
"subDir": null,
"scope": "",
"rev": "916ee9c35a57af128d5089a69172415051e700ca",
"name": "PrimeCert",
"manifestFile": "lake-manifest.json",
"inputRev": "v4.33.0",
"inherited": true,
"configFile": "lakefile.toml"},
{"url": "https://github.com/alerad/leancert.git",
"type": "git",
"subDir": null,
"scope": "",
"rev": "621a43d7cf21f87872392a01e874f2f1dbddc926",
"name": "leancert",
"rev": "04d81b2a68ea3548b9990813fdc463c78511f412",
"name": "PrimeNumberTheoremAnd",
"manifestFile": "lake-manifest.json",
"inputRev": "v4.33.1",
"inherited": true,
"inputRev": "04d81b2a68ea3548b9990813fdc463c78511f412",
"inherited": false,
"configFile": "lakefile.toml"},
{"url": "https://github.com/PatrickMassot/checkdecls.git",
"type": "git",
"subDir": null,
"scope": "",
"rev": "3d425859e73fcfbef85b9638c2a91708ef4a22d4",
"name": "checkdecls",
"manifestFile": "lake-manifest.json",
"inputRev": null,
"inherited": true,
"configFile": "lakefile.lean"},
{"url": "https://github.com/hanwenzhu/LeanArchitect.git",
"type": "git",
"subDir": null,
"scope": "",
"rev": "0f5bc0209ae02a7fb0cfe7d113d4094542cee221",
"name": "LeanArchitect",
"manifestFile": "lake-manifest.json",
"inputRev": "v4.33.0",
"inherited": true,
"configFile": "lakefile.lean"},
{"url": "https://github.com/leanprover-community/plausible",
"type": "git",
"subDir": null,
"scope": "leanprover-community",
"rev": "b7eb3304aeae834b12dda98993a37f6a41f6f0bb",
"rev": "38e9c3ce15cbb63c92e90bb9a92e4eb82131f669",
"name": "plausible",
"manifestFile": "lake-manifest.json",
"inputRev": "main",
Expand All @@ -75,7 +35,7 @@
"type": "git",
"subDir": null,
"scope": "leanprover-community",
"rev": "5f4d51b81cbd3f6b32b156bfad9056621a040404",
"rev": "2bc7cf064315b26bc38dac2e9612fb581be9b75f",
"name": "LeanSearchClient",
"manifestFile": "lake-manifest.json",
"inputRev": "main",
Expand All @@ -85,7 +45,7 @@
"type": "git",
"subDir": null,
"scope": "leanprover-community",
"rev": "16f02aa7642864af59f1ff0e384a015994db9118",
"rev": "978b7ec9fbbf9a535114f1de8fe5b3778b358870",
"name": "importGraph",
"manifestFile": "lake-manifest.json",
"inputRev": "main",
Expand All @@ -95,7 +55,7 @@
"type": "git",
"subDir": null,
"scope": "leanprover-community",
"rev": "4be2e3d5087eeb272cf5a8853b8f9dd025ef5957",
"rev": "99e8adeea3c3cd86b6b79ba01a1383bf2d31d055",
"name": "proofwidgets",
"manifestFile": "lake-manifest.json",
"inputRev": "main",
Expand All @@ -105,7 +65,7 @@
"type": "git",
"subDir": null,
"scope": "leanprover-community",
"rev": "3448c0bcc5ce01b2d1546e483ec3620e32df3d0e",
"rev": "c1c4362a130f12e632d252180a6c2a31d8fd4726",
"name": "aesop",
"manifestFile": "lake-manifest.json",
"inputRev": "master",
Expand All @@ -115,7 +75,7 @@
"type": "git",
"subDir": null,
"scope": "leanprover-community",
"rev": "92c15be17b7caf78c2ad767ec40f89052d908d81",
"rev": "3b55e9d00c6b0018e5d984eb011b6f93c09bd163",
"name": "Qq",
"manifestFile": "lake-manifest.json",
"inputRev": "master",
Expand All @@ -125,20 +85,60 @@
"type": "git",
"subDir": null,
"scope": "leanprover-community",
"rev": "4488d40d070b9700d4d5a6aa342f0d40c31b2a2d",
"rev": "9a86b38593ce6411eb26cc53e512392e12cd8939",
"name": "batteries",
"manifestFile": "lake-manifest.json",
"inputRev": "main",
"inherited": true,
"configFile": "lakefile.toml"},
{"url": "https://github.com/b-mehta/PrimeCert",
"type": "git",
"subDir": null,
"scope": "",
"rev": "916ee9c35a57af128d5089a69172415051e700ca",
"name": "PrimeCert",
"manifestFile": "lake-manifest.json",
"inputRev": "v4.33.0",
"inherited": true,
"configFile": "lakefile.toml"},
{"url": "https://github.com/alerad/leancert.git",
"type": "git",
"subDir": null,
"scope": "",
"rev": "621a43d7cf21f87872392a01e874f2f1dbddc926",
"name": "leancert",
"manifestFile": "lake-manifest.json",
"inputRev": "v4.33.1",
"inherited": true,
"configFile": "lakefile.toml"},
{"url": "https://github.com/PatrickMassot/checkdecls.git",
"type": "git",
"subDir": null,
"scope": "",
"rev": "3d425859e73fcfbef85b9638c2a91708ef4a22d4",
"name": "checkdecls",
"manifestFile": "lake-manifest.json",
"inputRev": null,
"inherited": true,
"configFile": "lakefile.lean"},
{"url": "https://github.com/hanwenzhu/LeanArchitect.git",
"type": "git",
"subDir": null,
"scope": "",
"rev": "0f5bc0209ae02a7fb0cfe7d113d4094542cee221",
"name": "LeanArchitect",
"manifestFile": "lake-manifest.json",
"inputRev": "v4.33.0",
"inherited": true,
"configFile": "lakefile.lean"},
{"url": "https://github.com/leanprover/lean4-cli",
"type": "git",
"subDir": null,
"scope": "leanprover",
"rev": "6130a47896ce867c6a4a55373441e59e565bad0f",
"rev": "af8bc067a4cc6c6df472a68909a3f40b1c76c43e",
"name": "Cli",
"manifestFile": "lake-manifest.json",
"inputRev": "v4.33.0",
"inputRev": "v4.34.0-rc1",
"inherited": true,
"configFile": "lakefile.toml"}],
"name": "Apery",
Expand Down
Loading