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

recognition_cost

definition
show as:
view math explainer →
module
IndisputableMonolith.Foundation.RecognitionForcing
domain
Foundation
line
21 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Foundation.RecognitionForcing on GitHub at line 21.

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

  18/-! ## Part 0: Recognition-Cost Bridge -/
  19
  20/-- The J-cost of a recognition event. -/
  21noncomputable def recognition_cost (e : LedgerForcing.RecognitionEvent) : ℝ :=
  22  LedgerForcing.J e.ratio
  23
  24/-- Recognition events with ratio = 1 are cost-free. -/
  25theorem self_recognition_zero_cost (e : LedgerForcing.RecognitionEvent) :
  26    e.ratio = 1 → recognition_cost e = 0 := by
  27  intro h
  28  simp only [recognition_cost, h, LedgerForcing.J]
  29  norm_num
  30
  31/-- Non-trivial recognition has positive cost.
  32    Uses the fact that J(x) = (x + 1/x)/2 - 1 ≥ 0, with = 0 iff x = 1. -/
  33theorem nontrivial_recognition_positive_cost (e : LedgerForcing.RecognitionEvent)
  34    (h : e.ratio ≠ 1) : recognition_cost e > 0 := by
  35  simp only [recognition_cost, LedgerForcing.J]
  36  have hpos := e.ratio_pos
  37  have h0 : e.ratio ≠ 0 := hpos.ne'
  38  -- (x - 1)² > 0 when x ≠ 1
  39  have hne : (e.ratio - 1)^2 > 0 := by
  40    have hsq : (e.ratio - 1)^2 ≥ 0 := sq_nonneg _
  41    have hne2 : (e.ratio - 1)^2 ≠ 0 := by
  42      intro heq
  43      have heq2 : e.ratio - 1 = 0 := sq_eq_zero_iff.mp heq
  44      have : e.ratio = 1 := by linarith
  45      exact h this
  46    exact lt_of_le_of_ne hsq (Ne.symm hne2)
  47  -- Expand: x² - 2x + 1 > 0
  48  -- So: x² + 1 > 2x
  49  -- So: (x² + 1)/x > 2 (since x > 0)
  50  -- So: x + 1/x > 2
  51  have h2 : e.ratio^2 + 1 > 2*e.ratio := by nlinarith [sq_nonneg (e.ratio - 1)]