Splitting a sum over into on-line points and off-line pairs
ProvedZeta23.ZeroSide.ZeroBlockData.sum_splitLet be abstract zero-side data (ZeroBlockData on a finite index type , with involution modelling ), and let be a choice of pair representatives (PairReps): a finite set containing exactly one member of each off-line pair — formally, and for , and every with has or .
Statement. For every function into an additive commutative monoid,
i.e. the full sum over splits into the on-line points (those fixed by ) and the off-line pairs, each pair contributing both of its members.
Role. This combinatorial identity underlies the whole block decomposition of the module Zeta23.ZeroSide: it is used in posIndex_blockA_le and posIndex_blockQ_le (splitting the matrix into on-line and pair parts), in card_offLine_eq_mk (), and in the packaging theorem blockInputsAt.
import Mathlib.Algebra.BigOperators.Finprod
import Mathlib.Algebra.Order.Chebyshev
import Mathlib.Algebra.Order.Rearrangement
import Mathlib.Analysis.CStarAlgebra.Classes
import Mathlib.Analysis.Calculus.ContDiff.Defs
import Mathlib.Analysis.Convex.Birkhoff
import Mathlib.Analysis.Matrix.PosDef
import Mathlib.Analysis.SpecialFunctions.ExpDeriv
import Mathlib.Analysis.SpecialFunctions.Gamma.Digamma
import Mathlib.Analysis.SpecialFunctions.Log.Basic
import Mathlib.Analysis.SpecialFunctions.Pow.Complex
import Mathlib.Data.Matrix.Basic
import Mathlib.Data.Set.Card
import Mathlib.LinearAlgebra.FiniteDimensional.Lemmas
import Mathlib.MeasureTheory.Integral.Bochner.Basic
import Mathlib.MeasureTheory.Integral.Bochner.ContinuousLinearMap
import Mathlib.MeasureTheory.Integral.IntervalIntegral.Basic
import Mathlib.MeasureTheory.Measure.Haar.NormedSpace
import Mathlib.MeasureTheory.Measure.Lebesgue.Basic
import Mathlib.NumberTheory.ArithmeticFunction.VonMangoldt
import Mathlib.Topology.Algebra.InfiniteSum.Order
import Definitions.Def_Zeta23_Assembly_Inputs
import Definitions.Def_Zeta23_Defs
import Definitions.Def_Zeta23_Hypotheses
import Definitions.Def_Zeta23_LinAlg_HermitianPosPart
import Definitions.Def_Zeta23_LinAlg_PosIndex
import Definitions.Def_Zeta23_LinAlg_Sylvester
import Definitions.Def_Zeta23_LinAlg_VonNeumann
import Definitions.Def_Zeta23_ZeroSide
set_option linter.unusedSectionVars false
open Matrix Finset RHLinalg
open scoped ComplexOrder BigOperators
open Zeta23
open Zeta23.ZeroSide
variable {ι d : Type*} [Fintype ι] [DecidableEq ι] [Fintype d] [DecidableEq d]
open ZeroBlockData
variable (D : ZeroBlockData ι d)
variable {D}
variable (D) (P : D.PairReps)
theorem Zeta23.ZeroSide.ZeroBlockData.sum_split {M : Type*} [AddCommMonoid M] (f : ι → M) :
∑ z, f z = ∑ z ∈ D.onLine, f z + ∑ z ∈ P.R, (f z + f (D.σ z)) := by sorry