Reindexing the allowed patterns of the crossing state `T(a,b;c,h)` by their data `(d, rt, rx)` and the off-boundary pattern of weight `d - rt - rx`.
ProvedTypeDensity.sum_allowedPatterns_crossingtype-density
The allowed patterns of the crossing state T(a,b;c,h) are reindexed by their data (d, rt, rx) and the off-boundary pattern of weight d - rt - rx.
Preamble
import Definitions.Def_TypeDensity_Basic import Definitions.Def_TypeDensity_Reciprocity_Defs import Theorems.Thm_TypeDensity_sum_allowedPatterns_reindex import Mathlib.FieldTheory.RatFunc.Basic import Mathlib.MeasureTheory.Measure.Haar.Unique import Mathlib.NumberTheory.ArithmeticFunction.Moebius import Mathlib.NumberTheory.Padics.PadicIntegers import Mathlib.RingTheory.IntegralClosure.IntegralRestrict import Mathlib.RingTheory.MvPowerSeries.Basic import Mathlib.RingTheory.RamificationInertia.Basic import Mathlib.Topology.Algebra.Nonarchimedean.AdicTopology import Mathlib.FieldTheory.RatFunc.AsPolynomial import Mathlib.RingTheory.PowerSeries.Expand import Mathlib.RingTheory.PowerSeries.Log set_option autoImplicit false open TypeDensity
Formal statement
theorem TypeDensity.sum_allowedPatterns_crossing (a b c h : ℕ) (ha : 0 < a) (hb : 0 < b)
(hh : 0 < h) (F : ℕ → ℕ → ℕ → Pattern (State.crossing a b c h).degree → Coef) :
∑ P ∈ allowedPatterns (State.crossing a b c h), F P.d.val P.rt.val P.rx.val P.other =
∑ d ∈ Finset.Icc 1 (min c h), ∑ rt ∈ Finset.range (d + 1), ∑ rx ∈ Finset.range (d + 1),
(if ((0 < rt ↔ d < c) ∧ (0 < rx ↔ d < h) ∧ rt + rx ≤ d) then
∑ m ∈ (Finset.univ : Finset (Pattern (State.crossing a b c h).degree)).filter
(fun m ↦ patternWeight m = d - rt - rx), F d rt rx m
else 0) := by sorrySource
TypeDensity/Reciprocity/Defs.lean#L603-L619