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

uniform_weight_of_sum_one

proved
show as:
view math explainer →
module
IndisputableMonolith.Cost.Ndim.Calibration
domain
Cost
line
36 · 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 36.

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

  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`). -/
  50theorem uniform_sqNorm_one {n : ℕ} {α : Vec n}
  51    (hn : 0 < n) (hU : UniformWeights α) (hcurv : sqNorm α = 1) :
  52    ∃ a : ℝ, (∀ i : Fin n, α i = a) ∧ a ^ 2 = 1 / (n : ℝ) := by
  53  rcases hU with ⟨a, ha⟩
  54  have hna : (n : ℝ) ≠ 0 := by
  55    exact_mod_cast (Nat.ne_of_gt hn)
  56  have hnorm : (n : ℝ) * a ^ 2 = 1 := by
  57    simpa [sqNorm, dot, ha, pow_two, Finset.card_univ] using hcurv
  58  have hsquare : a ^ 2 = 1 / (n : ℝ) := by
  59    apply (eq_div_iff hna).2
  60    linarith [hnorm]
  61  exact ⟨a, ha, hsquare⟩
  62
  63end Ndim
  64end Cost
  65end IndisputableMonolith