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

universalCost_zero

proved
show as:
view math explainer →
module
IndisputableMonolith.NumberTheory.UniversalCostSpectrum
domain
NumberTheory
line
101 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.NumberTheory.UniversalCostSpectrum on GitHub at line 101.

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

used by

formal source

  98def universalCost (f : P →₀ ℕ) : ℝ :=
  99  f.sum (fun p k => (k : ℝ) * primeJcost p)
 100
 101@[simp] theorem universalCost_zero : universalCost (0 : P →₀ ℕ) = 0 := by
 102  simp [universalCost]
 103
 104theorem universalCost_single (p : P) (k : ℕ) :
 105    universalCost (Finsupp.single p k) = (k : ℝ) * primeJcost p := by
 106  unfold universalCost
 107  simp [Finsupp.sum_single_index]
 108
 109@[simp] theorem universalCost_single_one (p : P) :
 110    universalCost (Finsupp.single p 1) = primeJcost p := by
 111  rw [universalCost_single]
 112  ring
 113
 114theorem universalCost_add (f g : P →₀ ℕ) :
 115    universalCost (f + g) = universalCost f + universalCost g := by
 116  unfold universalCost
 117  rw [Finsupp.sum_add_index']
 118  · intro p; simp
 119  · intro p i j; push_cast; ring
 120
 121theorem universalCost_nonneg (f : P →₀ ℕ) : 0 ≤ universalCost f := by
 122  apply Finsupp.sum_nonneg
 123  intro p _
 124  apply mul_nonneg
 125  · exact_mod_cast Nat.zero_le _
 126  · exact primeJcost_nonneg p
 127
 128theorem universalCost_pos {f : P →₀ ℕ} (hf : f ≠ 0) : 0 < universalCost f := by
 129  obtain ⟨p, hp_mem⟩ := Finsupp.support_nonempty_iff.mpr hf
 130  have hk_pos : 0 < f p := by
 131    have := Finsupp.mem_support_iff.mp hp_mem