Cyclic sum formula
DefinitionThe index of a list of positive integers#✓fully proved
A list \((l_1, \dots, l_r)\) of positive integers determines the multiple-zeta index whose entries are \(l_1, \dots, l_r\) in this order; its weight is \(l_1 + \cdots + l_r\).
noncomputable def toIndex (l : List ℕ) (hpos : ∀ x ∈ l, 0 < x) :
MultipleZeta.Index :=
⟨l.sum, ⟨l, fun {x} hx => hpos x hx, rfl⟩⟩
def Index : Type :=
Σ _n : Nat, Composition _n
MathlibExt/NumberTheory/MultipleZeta/Index.lean:45
Uses 1 · Used by 6
DefinitionLeft-hand indices of the cyclic sum formula#✓fully proved
Let \(k = (k_1, \dots, k_l)\) be a list of positive integers, with subscripts read modulo \(l\). For \(1 \le j \le l\) and a natural number \(i\), the left-hand index of \(k\) at \((j, i)\) is the index \((k_j - i + 1, k_{j+1}, \dots, k_{j+l-1}, i)\) when \(1 \le i \le k_j - 1\), and the index \((2)\) otherwise. The run \(k_{j+1}, \dots, k_{j+l-1}\) is empty when \(l = 1\).
MetaMathlibExt.CyclicSumFormula.leftIndex · 19 lines
noncomputable def leftIndex (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) (i : ℕ) : MultipleZeta.Index :=
if hmem : i ∈ Finset.Icc 1 (k.get j - 1) then
toIndex ((k.get j - i + 1) :: ((k.rotate j.1).tail ++ [i])) (by
have hi1 : 1 ≤ i := (Finset.mem_Icc.mp hmem).1
intro x hx
rw [List.mem_cons] at hx
rcases hx with rfl | hx
· omega
· rw [List.mem_append] at hx
rcases hx with hx | hx
· have hxR : x ∈ k.rotate j.1 := List.mem_of_mem_tail hx
rw [List.mem_rotate] at hxR
have h1 := hk_pos x hxR
omega
· rw [List.mem_singleton] at hx
omega)
else
toIndex [2] (fun x hx => by rw [List.mem_singleton] at hx; omega)
def Index : Type :=
Σ _n : Nat, Composition _n
MathlibExt/NumberTheory/MultipleZeta/Index.lean:45
noncomputable def toIndex (l : List ℕ) (hpos : ∀ x ∈ l, 0 < x) :
MultipleZeta.Index :=
⟨l.sum, ⟨l, fun {x} hx => hpos x hx, rfl⟩⟩
MathlibExt/NumberTheory/MultipleZeta/CyclicSumFormula.lean:45
DefinitionRight-hand indices of the cyclic sum formula#✓fully proved
Let \(k = (k_1, \dots, k_l)\) be a list of positive integers, with subscripts read modulo \(l\). For \(1 \le j \le l\), the right-hand index of \(k\) at \(j\) is the index \((k_j + 1, k_{j+1}, \dots, k_{j+l-1})\), where the run \(k_{j+1}, \dots, k_{j+l-1}\) is empty when \(l = 1\).
noncomputable def rightIndex (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) : MultipleZeta.Index :=
toIndex ((k.get j + 1) :: (k.rotate j.1).tail) (by
intro x hx
rw [List.mem_cons] at hx
rcases hx with rfl | hx
· omega
· have hxR : x ∈ k.rotate j.1 := List.mem_of_mem_tail hx
rw [List.mem_rotate] at hxR
have h1 := hk_pos x hxR
omega)
def Index : Type :=
Σ _n : Nat, Composition _n
MathlibExt/NumberTheory/MultipleZeta/Index.lean:45
noncomputable def toIndex (l : List ℕ) (hpos : ∀ x ∈ l, 0 < x) :
MultipleZeta.Index :=
⟨l.sum, ⟨l, fun {x} hx => hpos x hx, rfl⟩⟩
MathlibExt/NumberTheory/MultipleZeta/CyclicSumFormula.lean:45
TheoremLeft-hand indices of the cyclic sum formula are admissible or empty#✓fully proved
For every list \(k = (k_1, \dots, k_l)\) of positive integers, every \(1 \le j \le l\) and every natural number \(i\), the left-hand index of the cyclic sum formula of \(k\) at \((j, i)\) is admissible or empty.
theorem leftIndex_isAdmissibleOrEmpty (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) (i : ℕ) :
(leftIndex k hk_pos j i).IsAdmissibleOrEmpty
noncomputable def leftIndex (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) (i : ℕ) : MultipleZeta.Index :=
if hmem : i ∈ Finset.Icc 1 (k.get j - 1) then
toIndex ((k.get j - i + 1) :: ((k.rotate j.1).tail ++ [i])) (by
have hi1 : 1 ≤ i := (Finset.mem_Icc.mp hmem).1
intro x hx
rw [List.mem_cons] at hx
rcases hx with rfl | hx
· omega
· rw [List.mem_append] at hx
rcases hx with hx | hx
· have hxR : x ∈ k.rotate j.1 := List.mem_of_mem_tail hx
⋯
MathlibExt/NumberTheory/MultipleZeta/CyclicSumFormula.lean:112
Uses 9 · Used by 2
TheoremRight-hand indices of the cyclic sum formula are admissible or empty#✓fully proved
For every list \(k = (k_1, \dots, k_l)\) of positive integers and every \(1 \le j \le l\), the right-hand index of the cyclic sum formula of \(k\) at \(j\) is admissible or empty.
theorem rightIndex_isAdmissibleOrEmpty (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) :
(rightIndex k hk_pos j).IsAdmissibleOrEmpty
noncomputable def rightIndex (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) : MultipleZeta.Index :=
toIndex ((k.get j + 1) :: (k.rotate j.1).tail) (by
intro x hx
rw [List.mem_cons] at hx
rcases hx with rfl | hx
· omega
· have hxR : x ∈ k.rotate j.1 := List.mem_of_mem_tail hx
rw [List.mem_rotate] at hxR
have h1 := hk_pos x hxR
omega)
MathlibExt/NumberTheory/MultipleZeta/CyclicSumFormula.lean:134
Uses 8 · Used by 2
TheoremCyclic sum formula for strict multiple zeta values of indices#✓fully proved
Let \(k = (k_1, \dots, k_l)\) be a nonempty list of positive integers, not all equal to \(1\), with subscripts read modulo \(l\), and write \(\zeta\) for the strict multiple zeta value. For \(1 \le j \le l\) and \(1 \le i \le k_j - 1\) the left-hand index of the cyclic sum formula of \(k\) at \((j, i)\) is \((k_j - i + 1, k_{j+1}, \dots, k_{j+l-1}, i)\), and its right-hand index at \(j\) is \((k_j + 1, k_{j+1}, \dots, k_{j+l-1})\); the run \(k_{j+1}, \dots, k_{j+l-1}\) is empty when \(l = 1\). Then
where the inner sum is empty when \(k_j = 1\).
theorem hoffman_ohno_cyclic_sum_formula_strict
(k : List ℕ)
(hk_nonempty : k ≠ [])
(hk_pos : ∀ n ∈ k, 1 ≤ n)
(hk_not_all_one : ∃ n ∈ k, n ≠ 1) :
∑ j : Fin k.length,
∑ i ∈ Finset.Icc 1 (k.get j - 1),
MultipleZeta.strictValue (CyclicSumFormula.leftIndex k hk_pos j i)
(CyclicSumFormula.leftIndex_isAdmissibleOrEmpty k hk_pos j i) =
∑ j : Fin k.length,
MultipleZeta.strictValue (CyclicSumFormula.rightIndex k hk_pos j)
(CyclicSumFormula.rightIndex_isAdmissibleOrEmpty k hk_pos j)
@[nolint unusedArguments]
noncomputable def strictValue (index : Index) (_h : index.IsAdmissibleOrEmpty) : ℝ :=
∑' m : StrictDecreasingTuple index.depth, strictSummand index m
MathlibExt/NumberTheory/MultipleZeta/Series.lean:92
noncomputable def leftIndex (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) (i : ℕ) : MultipleZeta.Index :=
if hmem : i ∈ Finset.Icc 1 (k.get j - 1) then
toIndex ((k.get j - i + 1) :: ((k.rotate j.1).tail ++ [i])) (by
have hi1 : 1 ≤ i := (Finset.mem_Icc.mp hmem).1
intro x hx
rw [List.mem_cons] at hx
rcases hx with rfl | hx
· omega
· rw [List.mem_append] at hx
rcases hx with hx | hx
· have hxR : x ∈ k.rotate j.1 := List.mem_of_mem_tail hx
⋯
MathlibExt/NumberTheory/MultipleZeta/CyclicSumFormula.lean:112
theorem leftIndex_isAdmissibleOrEmpty (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) (i : ℕ) :
(leftIndex k hk_pos j i).IsAdmissibleOrEmpty
MathlibExt/NumberTheory/MultipleZeta/CyclicSumFormula.lean:147
noncomputable def rightIndex (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) : MultipleZeta.Index :=
toIndex ((k.get j + 1) :: (k.rotate j.1).tail) (by
intro x hx
rw [List.mem_cons] at hx
rcases hx with rfl | hx
· omega
· have hxR : x ∈ k.rotate j.1 := List.mem_of_mem_tail hx
rw [List.mem_rotate] at hxR
have h1 := hk_pos x hxR
omega)
MathlibExt/NumberTheory/MultipleZeta/CyclicSumFormula.lean:134
theorem rightIndex_isAdmissibleOrEmpty (k : List ℕ) (hk_pos : ∀ n ∈ k, 1 ≤ n)
(j : Fin k.length) :
(rightIndex k hk_pos j).IsAdmissibleOrEmpty
MathlibExt/NumberTheory/MultipleZeta/CyclicSumFormula.lean:163
Uses 14 · Used by 1
TheoremCyclic sum formula (Hoffman–Ohno)#✓fully proved
For a finite list \((n_1, \dots, n_r)\) of natural numbers let \(\zeta(n_1, \dots, n_r)\) be the sum of \((m_1^{n_1} \cdots m_r^{n_r})^{-1}\) over all integers \(m_1 > m_2 > \cdots > m_r > 0\), taken to be \(0\) when this family is not summable. Let \(k = (k_1, \dots, k_l)\) be a nonempty list of positive integers, not all equal to \(1\), with subscripts read modulo \(l\). Then
where the inner sum is empty when \(k_j = 1\) and the run \(k_{j+1}, \dots, k_{j+l-1}\) is empty when \(l = 1\).
theorem hoffman_ohno_cyclic_sum_formula
(k : List ℕ)
(hk_nonempty : k ≠ [])
(hk_pos : ∀ n ∈ k, 1 ≤ n)
(hk_not_all_one : ∃ n ∈ k, n ≠ 1) :
∑ j : Fin k.length,
∑ i ∈ Finset.Icc 1 (k.get j - 1),
multipleZetaValue
((k.get j - i + 1) :: ((k.rotate j.1).tail ++ [i])) =
∑ j : Fin k.length,
multipleZetaValue ((k.get j + 1) :: (k.rotate j.1).tail)
noncomputable def multipleZetaValue (k : List ℕ) : ℝ :=
∑' n : Fin k.length → ℕ,
if (∀ a b : Fin k.length, a < b → n b < n a) ∧
(∀ a : Fin k.length, 0 < n a) then
∏ a : Fin k.length, ((n a : ℝ) ^ k.get a)⁻¹
else 0
MathlibExt/NumberTheory/MultipleZeta/CyclicSumFormula.lean:35
Sources
- Shingo Saito, Tatsushi Tanaka, and Noriko Wakabayashi, "Combinatorial Remarks on the Cyclic Sum Formula for Multiple Zeta Values," Journal of Integer Sequences 14 (2011), Article 11.2.4, Theorem
thm:CSF("Cyclic sum formula," first proved by Hoffman-Ohno), lines 242–248; index setcheck{I}^1at lines 150–166, https://cs.uwaterloo.ca/journals/JIS/VOL14/Saito/saito22.tex.
Uses 13
TheoremCyclic sum formula for multiple zeta-star values#✓fully proved
Let \(l \ge 1\) and let \(k_0, \dots, k_{l-1}\) be positive integers, not all equal to \(1\), with subscripts read modulo \(l\), and put \(K = k_0 + \cdots + k_{l-1}\). Write \(\zeta^\star\) for the multiple zeta-star value and \(\zeta\) for the strict multiple zeta value. Suppose that for each \(0 \le j \le l - 1\) and each natural number \(i\) an index \(\mathbf{c}_{j,i}\) is given that is admissible or empty, and that for \(1 \le i \le k_j - 1\) its entries are \((k_j - i + 1, k_{j+1}, \dots, k_{j+l-1}, i)\), the run \(k_{j+1}, \dots, k_{j+l-1}\) being empty when \(l = 1\). Let \(\mathbf{t}\) be an index, admissible or empty, whose only entry is \(K + 1\). Then
MetaMathlibExt.cyclic_sum_formula_multiple_zeta_star_values · 19 lines
theorem cyclic_sum_formula_multiple_zeta_star_values
(l : ℕ) (hl : 0 < l)
(k : Fin l → ℕ)
(hk : ∀ j, 0 < k j)
(hne : ∃ j, k j ≠ 1)
(cyclicIndex : Fin l → ℕ → MultipleZeta.Index)
(hcyclicEntries : ∀ j i, i ∈ Finset.Icc 1 (k j - 1) →
(cyclicIndex j i).entries = List.ofFn (fun t : Fin (l + 1) =>
if t.val = 0 then k j - i + 1
else if t.val = l then i
else k ⟨(j.val + t.val) % l, Nat.mod_lt _ hl⟩))
(hcyclicAdmissible : ∀ j i, (cyclicIndex j i).IsAdmissibleOrEmpty)
(totalIndex : MultipleZeta.Index)
(htotalEntries : totalIndex.entries = [(∑ j : Fin l, k j) + 1])
(htotalAdmissible : totalIndex.IsAdmissibleOrEmpty) :
∑ j : Fin l, ∑ i ∈ Finset.Icc 1 (k j - 1),
MultipleZeta.starValue (cyclicIndex j i) (hcyclicAdmissible j i) =
((∑ j : Fin l, k j : ℕ) : ℝ) *
MultipleZeta.strictValue totalIndex htotalAdmissible
def Index : Type :=
Σ _n : Nat, Composition _n
MathlibExt/NumberTheory/MultipleZeta/Index.lean:45
@[nolint unusedArguments]
noncomputable def starValue (index : Index) (_h : index.IsAdmissibleOrEmpty) : ℝ :=
∑' m : WeaklyDecreasingTuple index.depth, starSummand index m
MathlibExt/NumberTheory/MultipleZeta/Series.lean:156
@[nolint unusedArguments]
noncomputable def strictValue (index : Index) (_h : index.IsAdmissibleOrEmpty) : ℝ :=
∑' m : StrictDecreasingTuple index.depth, strictSummand index m
MathlibExt/NumberTheory/MultipleZeta/Series.lean:92
Sources
- S. Saito, T. Tanaka, and N. Wakabayashi, "Combinatorial Remarks on the Cyclic Sum Formula for Multiple Zeta Values", Journal of Integer Sequences 14 (2011), Article 11.2.4, Theorem
thm:CSF_MZSVs, line 869, https://cs.uwaterloo.ca/journals/JIS/VOL14/Saito/saito22.tex.
Uses 11
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.