FormalConjectures/Paper/ZagierMZV.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1
15 declarations, 2 contain sorry, 0 declared as axioms
Zagier's Conjecture on Multiple Zeta Values
References:
- [Za94] Zagier, Don. "Values of zeta functions and their applications." First European Congress of Mathematics Paris, July 6–10, 1992: Vol. II: Invited Lectures (Part 2). Basel: Birkhäuser Basel, 1994.
- [Co18] Combariza, Germán AG. "A few conjectures about the multiple zeta values." ACM Communications in Computer Algebra 52.1 (2018): 11-20.
- [Te02] T. Terasoma. Mixed Tate motives and multiple zeta values. Invent. Math., 149(2):339–369, 2002.
- [DG05] P. Deligne and A. Goncharov. Groupes fondamentaux motiviques de Tate mixte. Ann. Sci. Ecole Norm. Sup. (4), 38(1):1–56, 2005.
- OEIS A000931
Imports (1)
- def
ZagierMZV.multiZetaThe multiple zeta value line 50 sourceSource documentation
The multiple zeta value $\zeta(s_1, s_2, \ldots, s_k)$, defined as $$\zeta(s_1, \ldots, s_k) = \sum_{n_1 > n_2 > \cdots > n_k > 0} \frac{1}{n_1^{s_1} n_2^{s_2} \cdots n_k^{s_k}}.$$ The argument is a list of positive natural numbers. The value is well-defined (i.e. the series converges) when the first entry is at least 2, but we define it for all inputs. For the empty list,
multiZeta [] = 1(the empty product convention).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
List,Nat,RealProof uses:
ZagierMZV.multiZeta.match_1,Unit,OfNat.ofNat,tsum,HMul.hMul,HDiv.hDiv,HPow.hPow,HAdd.hAdd,ZagierMZV.multiZeta.aux,SummationFilter.unconditional19 instances, coercions and auxiliary constants left out.
noncomputable def multiZeta : List ℕ → ℝ | [] => 1 | s :: rest => ∑' n : ℕ, (1 / (n + 1 : ℝ) ^ s) * multiZeta.aux rest n where …
- def
ZagierMZV.weightThe weight of an MZV index $(s_1, \ldots, s_k)$ is $s_1 + \cdots + s_k$ line 61 sourceSource documentation
The weight of an MZV index $(s_1, \ldots, s_k)$ is $s_1 + \cdots + s_k$.
standard axioms: propext what this means
Statement uses:
List,NatProof uses:
List.sum3 instances, coercions and auxiliary constants left out.
def weight (s : List ℕ) : ℕ := s.sum
- def
ZagierMZV.AdmissibleIndexAn MZV index is admissible if it is either empty or if the first entry is at least 2 and all entries are positive line 67 sourceSource documentation
An MZV index is admissible if it is either empty or if the first entry is at least 2 and all entries are positive. The empty list convention ensures $\mathcal{Z}_0 = \mathbb{Q}$.
no axioms what this means
Statement uses:
List,NatProof uses:
ZagierMZV.multiZeta.match_1,Unit,True,And,LT.lt,OfNat.ofNat,Membership.mem3 instances, coercions and auxiliary constants left out.
def AdmissibleIndex : List ℕ → Prop | [] => True | s₁ :: rest => 1 < s₁ ∧ ∀ sᵢ ∈ rest, 0 < sᵢ /-- The set of all MZV values of weight $n$. -/
Mentions: ZagierMZV.weight
- def
ZagierMZV.mzvSetOfWeightThe set of all MZV values of weight $n$ line 72 sourceSource documentation
The set of all MZV values of weight $n$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Set,RealProof uses:
Set.image,List, ZagierMZV.multiZeta,Set.ofPred,And, ZagierMZV.AdmissibleIndex,Eq, ZagierMZV.weightdef mzvSetOfWeight (n : ℕ) : Set ℝ := …
- def
ZagierMZV.mzvSpanOfWeightThe $\mathbb{Q}$-submodule of $\mathbb{R}$ spanned by all MZVs of weight $n$ line 76 sourceSource documentation
The $\mathbb{Q}$-submodule of $\mathbb{R}$ spanned by all MZVs of weight $n$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Submodule,Rat,RealProof uses:
Submodule.span, ZagierMZV.mzvSetOfWeight42 instances, coercions and auxiliary constants left out.
noncomputable def mzvSpanOfWeight (n : ℕ) : Submodule ℚ ℝ := …
- def
ZagierMZV.zagierDimThe conjectured Zagier dimension sequence $d_n$, defined by $d_0 = 1$, $d_1 = 0$, $d_2 = 1$, and $d_n = d_{n-2} + d_{n-3}$ for $n \geq 3$ line 83 sourceSource documentation
The conjectured Zagier dimension sequence $d_n$, defined by $d_0 = 1$, $d_1 = 0$, $d_2 = 1$, and $d_n = d_{n-2} + d_{n-3}$ for $n \geq 3$.
no axioms what this means
Statement uses:
Nat2 instances, coercions and auxiliary constants left out.
def zagierDim : ℕ → ℕ | 0 => 1 | 1 => 0 | 2 => 1 | (n + 3) => zagierDim (n + 1) + zagierDim n /-- **Zagier's conjecture** The $\mathbb{Q}$-dimension of the vector space spanned by all multiple zeta values of weight $n$ equals $d_n$, where $d_n$ is the Zagier dimension sequence satisfying $d_0 = 1$, $d_1 = 0$, $d_2 = 1$, and $d_n = d_{n-2} + d_{n-3}$ for $n \geq 3$. …Mentions: ZagierMZV.weight
- theorem
ZagierMZV.zagier_conjectureDocumented declaration: zagier_conjecture sorry line 97 sourceSource documentation
Zagier's conjecture
The $\mathbb{Q}$-dimension of the vector space spanned by all multiple zeta values of weight $n$ equals $d_n$, where $d_n$ is the Zagier dimension sequence satisfying $d_0 = 1$, $d_1 = 0$, $d_2 = 1$, and $d_n = d_{n-2} + d_{n-3}$ for $n \geq 3$.
depends on sorry what this means
Statement uses:
Iff,True,Nat,Eq,Module.finrank,Rat,Subtype,Real,Membership.mem,Submodule, ZagierMZV.mzvSpanOfWeight, ZagierMZV.zagierDimProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat59 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem zagier_conjecture : answer(sorry) ↔ ∀ n : ℕ, Module.finrank ℚ (mzvSpanOfWeight n) = zagierDim n := by …Mentions: ZagierMZV.mzvSpanOfWeight, ZagierMZV.zagierDim
- theorem
ZagierMZV.zagier_upper_boundUpper bound [Te02, DG05] The dimension of the $\mathbb{Q}$-vector space of MZVs of weight $n$ is at most $d_n$ sorry line 107 sourceSource documentation
Upper bound [Te02, DG05]
The dimension of the $\mathbb{Q}$-vector space of MZVs of weight $n$ is at most $d_n$.
depends on sorry what this means
Statement uses:
Nat,LE.le,Module.finrank,Rat,Subtype,Real,Membership.mem,Submodule, ZagierMZV.mzvSpanOfWeight, ZagierMZV.zagierDimProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat61 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem zagier_upper_bound : ∀ n : ℕ, Module.finrank ℚ (mzvSpanOfWeight n) ≤ zagierDim n := by …Mentions: ZagierMZV.mzvSpanOfWeight, ZagierMZV.zagierDim
- theorem
ZagierMZV.zagierDim_first_valuesThe first few values of $d_n$ are $1, 0, 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, \ldots$ line 117 sourceSource documentation
The first few values of $d_n$ are $1, 0, 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, \ldots$
no axioms what this means
Statement uses:
Eq,List,Nat,List.cons, ZagierMZV.zagierDim,OfNat.ofNat,List.nilProof uses:
of_decide_eq_true,id,Bool,Decidable.decide,Bool.true,Eq.refl4 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem zagierDim_first_values : [zagierDim 0, zagierDim 1, zagierDim 2, zagierDim 3, zagierDim 4, zagierDim 5, zagierDim 6, zagierDim 7, zagierDim 8, zagierDim 9] = [1, 0, 1, 1, 1, 2, 2, 3, 4, 5] := by …Mentions: ZagierMZV.zagierDim
- theorem
ZagierMZV.no_admissible_weight_oneThere is no admissible index of weight 1 (since $s_1 \geq 2$ is required) line 125 sourceSource documentation
There is no admissible index of weight 1 (since $s_1 \geq 2$ is required).
standard axioms: Quot.sound, propext what this means
Statement uses:
List,Nat, ZagierMZV.AdmissibleIndex,Ne, ZagierMZV.weight,OfNat.ofNatProof uses:
Eq,List.nil,id,of_eq_true,Not,Eq.trans,False,True,congrArg,not_false_eq_true,Eq.symm,List.cons,List.sum,LT.lt,Membership.mem,ZagierMZV.multiZeta.match_1,Unit,And,HAdd.hAdd,Eq.refl16 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
theorem no_admissible_weight_one (s : List ℕ) (h : AdmissibleIndex s) : weight s ≠ 1 := by …
Mentions: ZagierMZV.AdmissibleIndex, ZagierMZV.weight
- theorem
ZagierMZV.dim_mzv_weight_zero$\mathcal{Z}_0 = \mathbb{Q}$, so $\dim_\mathbb{Q}(\mathcal{Z}_0) = 1$ line 139 sourceSource documentation
$\mathcal{Z}_0 = \mathbb{Q}$, so $\dim_\mathbb{Q}(\mathcal{Z}_0) = 1$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat,Module.finrank,Rat,Subtype,Real,Membership.mem,Submodule, ZagierMZV.mzvSpanOfWeight,OfNat.ofNatProof uses:
Set, ZagierMZV.mzvSetOfWeight,Singleton.singleton,Set.ext,Eq.mpr,Iff,Exists,List,And, ZagierMZV.AdmissibleIndex, ZagierMZV.weight, ZagierMZV.multiZeta,id,congr,congrArg,Set.ofPred,Iff.intro,List.nil,Eq.refl,Eq.symmand 19 more85 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
theorem dim_mzv_weight_zero : Module.finrank ℚ (mzvSpanOfWeight 0) = 1 := by …
Mentions: ZagierMZV.mzvSpanOfWeight
- theorem
ZagierMZV.dim_mzv_weight_one$\mathcal{Z}_1 = \emptyset$, so $\dim_\mathbb{Q}(\mathcal{Z}_1) = 0$ line 161 sourceSource documentation
$\mathcal{Z}_1 = \emptyset$, so $\dim_\mathbb{Q}(\mathcal{Z}_1) = 0$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat,Module.finrank,Rat,Subtype,Real,Membership.mem,Submodule, ZagierMZV.mzvSpanOfWeight,OfNat.ofNatProof uses:
Set, ZagierMZV.mzvSetOfWeight,EmptyCollection.emptyCollection,Set.ext,Eq.mpr,Iff,Exists,List,And, ZagierMZV.AdmissibleIndex, ZagierMZV.weight, ZagierMZV.multiZeta,False,id,congr,congrArg,Set.ofPred,Iff.intro, ZagierMZV.no_admissible_weight_one,False.elimand 6 more69 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
theorem dim_mzv_weight_one : Module.finrank ℚ (mzvSpanOfWeight 1) = 0 := by …
Mentions: ZagierMZV.mzvSpanOfWeight
- theorem
ZagierMZV.multiZeta_emptyline 173 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Real, ZagierMZV.multiZeta,List.nil,Nat,OfNat.ofNatProof uses:
of_eq_true,eq_self4 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
ZagierMZV.multiZeta_twoEuler's identity: $\zeta(2) = \pi^2/6$ line 178 sourceSource documentation
Euler's identity: $\zeta(2) = \pi^2/6$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Real, ZagierMZV.multiZeta,List.cons,Nat,OfNat.ofNat,List.nil,HDiv.hDiv,HPow.hPow,Real.piProof uses:
tsum,HAdd.hAdd,SummationFilter.unconditional,id,of_eq_true,ZagierMZV.multiZeta.match_1,List,Unit,HMul.hMul,ZagierMZV.multiZeta.aux,Eq.trans,True,congrFun',congrArg,SummationFilter,optParam,funext,mul_one,eq_self,Eq.mprand 20 more80 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
theorem multiZeta_two : multiZeta [2] = Real.pi ^ 2 / 6 := by …
Mentions: ZagierMZV.multiZeta
- theorem
ZagierMZV.multiZeta_fourEuler's identity for $\zeta(4) = \pi^4/90$ line 198 sourceSource documentation
Euler's identity for $\zeta(4) = \pi^4/90$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Real, ZagierMZV.multiZeta,List.cons,Nat,OfNat.ofNat,List.nil,HDiv.hDiv,HPow.hPow,Real.piProof uses:
tsum,HAdd.hAdd,SummationFilter.unconditional,id,of_eq_true,ZagierMZV.multiZeta.match_1,List,Unit,HMul.hMul,ZagierMZV.multiZeta.aux,Eq.trans,True,congrFun',congrArg,SummationFilter,optParam,funext,mul_one,eq_self,Eq.mprand 24 more81 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
theorem multiZeta_four : multiZeta [4] = Real.pi ^ 4 / 90 := by …
Mentions: ZagierMZV.multiZeta