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

cumulativeRelease_zero

proved
show as:
view math explainer →
module
IndisputableMonolith.Engineering.MarsAtmosphereJCostSchedule
domain
Engineering
line
67 · github
papers citing
none yet

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.Engineering.MarsAtmosphereJCostSchedule on GitHub at line 67.

browse module

All declarations in this module, on Recognition.

explainer page

A cached Ask Recognition explainer exists for this declaration.

open explainer

depends on

used by

formal source

  64def cumulativeRelease (n : ℕ) : ℝ :=
  65  (Finset.range n).sum (fun k => releaseRate k)
  66
  67theorem cumulativeRelease_zero : cumulativeRelease 0 = 0 := by
  68  unfold cumulativeRelease; simp
  69
  70theorem cumulativeRelease_succ (n : ℕ) :
  71    cumulativeRelease (n + 1) = cumulativeRelease n + releaseRate n := by
  72  unfold cumulativeRelease
  73  rw [Finset.sum_range_succ]
  74
  75theorem cumulativeRelease_nonneg (n : ℕ) : 0 ≤ cumulativeRelease n := by
  76  unfold cumulativeRelease
  77  apply Finset.sum_nonneg
  78  intros k _
  79  exact le_of_lt (releaseRate_pos k)
  80
  81/-- Cumulative release is strictly monotonic in `n`. -/
  82theorem cumulativeRelease_strict_mono {n m : ℕ} (h : n < m) :
  83    cumulativeRelease n < cumulativeRelease m := by
  84  -- Induction on m - n.
  85  induction m, h using Nat.le_induction with
  86  | base =>
  87      rw [cumulativeRelease_succ]
  88      have := releaseRate_pos n; linarith
  89  | succ k _ ih =>
  90      rw [cumulativeRelease_succ]
  91      have := releaseRate_pos k; linarith
  92
  93/-! ## §3. Master certificate -/
  94
  95structure MarsAtmosphereJCostScheduleCert where
  96  rate_zero : releaseRate 0 = r_0
  97  rate_pos : ∀ n, 0 < releaseRate n