Row multinomials under a conditional-entropy comparison
Provedmme_stothers_general_mode_row_multinomial_leRow multinomials are dominated by those of a maximum-entropy competitor.
Fix an integral ten-class profile , a scale , a mode , and a second integral profile with the same nine-grade marginals. Let be any -cell histogram whose three marginals are the prescribed , and suppose the conditional entropies satisfy
where is the exact histogram of and denotes the restriction to the supported triples whose -th coordinate is . Then the row multinomials obey
with the address length.
This is the passage from an entropy inequality to a counting inequality. Each side is a product of nine multinomial coefficients, and a multinomial coefficient is bounded above by the exponential of the corresponding entropy and below by that exponential divided by a polynomial in the row total; the nine polynomial factors combine into because the numbers of supported triples over the nine grades sum to and each row total is at most .
Together with the regrouping of the nine row multinomials into a single quotient , this is what turns the entropy comparison of Lemma 5.2 into the star-degree bound driving the outer hash.
import Definitions.Def_mme_stothers_general_outer_profile import Mathlib.Data.Nat.Choose.Multinomial import Definitions.Def_mme_modern_entropy_data open MME BigOperators set_option autoImplicit false
theorem mme_stothers_general_mode_row_multinomial_le
(base bstar : Fin 10 → ℕ) (m : ℕ) (hm : 0 < m)
(hbase : ∀ r, 0 < base r)
(hsame : ∀ j, MME.StothersFourth.genMarginalBaseCount bstar j =
MME.StothersFourth.genMarginalBaseCount base j)
(i : Fin 3)
(k : MME.StothersFourth.GenHashJointMultiplicityTable)
(hkMarginal : ∀ l : Fin 3, ∀ j : Fin 9,
(∑ sigma : {sigma : MME.StothersFourth.GenHashSupportTriple //
sigma.1 l = j}, k sigma.1) =
MME.StothersFourth.genMarginalCount base m j)
(hcond :
(∑ j : Fin 9, (MME.StothersFourth.genMarginalCount base m j : ℝ) *
mme_modern_entropyBits
(fun sigma : {sigma : MME.StothersFourth.GenHashSupportTriple //
sigma.1 i = j} ↦
(k sigma.1 : ℝ) /
(MME.StothersFourth.genMarginalCount base m j : ℝ))) ≤
∑ j : Fin 9, (MME.StothersFourth.genMarginalCount base m j : ℝ) *
mme_modern_entropyBits
(fun sigma : {sigma : MME.StothersFourth.GenHashSupportTriple //
sigma.1 i = j} ↦
(MME.StothersFourth.genHashTargetJointTable bstar m sigma.1 : ℝ) /
(MME.StothersFourth.genMarginalCount base m j : ℝ))) :
(∏ j : Fin 9,
(Nat.multinomial Finset.univ
(fun sigma : {sigma : MME.StothersFourth.GenHashSupportTriple //
sigma.1 i = j} ↦ k sigma.1) : ℝ)) ≤
(6 * (((MME.StothersFourth.genOuterLength base m + 1 : ℕ) : ℝ))) ^ 45 *
∏ j : Fin 9,
(Nat.multinomial Finset.univ
(fun sigma : {sigma : MME.StothersFourth.GenHashSupportTriple //
sigma.1 i = j} ↦
MME.StothersFourth.genHashTargetJointTable bstar m sigma.1) : ℝ) := by
sorry