pith. machine review for the scientific record. sign in
theorem

weightSum_uniform

proved
show as:
view math explainer →
module
IndisputableMonolith.Cost.Ndim.Calibration
domain
Cost
line
19 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Cost.Ndim.Calibration on GitHub at line 19.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

formal source

  16
  17def UniformWeights {n : ℕ} (α : Vec n) : Prop := ∃ a : ℝ, ∀ i : Fin n, α i = a
  18
  19theorem weightSum_uniform {n : ℕ} {α : Vec n}
  20    (hU : UniformWeights α) :
  21    ∃ a : ℝ, weightSum α = (n : ℝ) * a := by
  22  rcases hU with ⟨a, ha⟩
  23  refine ⟨a, ?_⟩
  24  unfold weightSum
  25  simp [ha, Finset.card_univ]
  26
  27theorem sqNorm_uniform {n : ℕ} {α : Vec n}
  28    (hU : UniformWeights α) :
  29    ∃ a : ℝ, sqNorm α = (n : ℝ) * a ^ 2 := by
  30  rcases hU with ⟨a, ha⟩
  31  refine ⟨a, ?_⟩
  32  unfold sqNorm dot
  33  simp [ha, pow_two, Finset.card_univ]
  34
  35/-- If weights are uniform and sum to one, each weight is `1/n` (for `n > 0`). -/
  36theorem uniform_weight_of_sum_one {n : ℕ} {α : Vec n}
  37    (hn : 0 < n) (hU : UniformWeights α) (hsum : weightSum α = 1) :
  38    ∃ a : ℝ, (∀ i : Fin n, α i = a) ∧ a = 1 / (n : ℝ) := by
  39  rcases hU with ⟨a, ha⟩
  40  have hna : (n : ℝ) ≠ 0 := by
  41    exact_mod_cast (Nat.ne_of_gt hn)
  42  have hsum' : (n : ℝ) * a = 1 := by
  43    simpa [weightSum, ha, Finset.card_univ] using hsum
  44  have ha_val : a = 1 / (n : ℝ) := by
  45    apply (eq_div_iff hna).2
  46    linarith [hsum']
  47  exact ⟨a, ha, ha_val⟩
  48
  49/-- Under uniform weights, unit squared norm gives `a² = 1/n` (for `n > 0`). -/