def
definition
ConfigSpace
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Modal.Possibility on GitHub at line 71.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
ConfigSpace -
CostFunction -
inconsistent_of_join_indep_right -
RecognitionWorkConstraintCert -
config_exists -
ConfigSpace -
ConfigSpace -
core_status -
RecognitionTriple -
discrete_singleton_cells -
finConfigSpace -
fundamental_theorem -
fundamental_theorem_composite -
pillar1_quotient_determines_observables -
pillar2_composite_refines -
pillar2_distinguish_monotone -
pillar2_information_monotonicity -
pillar3_finite_resolution_obstruction -
quotient_uniqueness -
universal_property -
complete_summary -
RecognitionGeometry -
LocalConfigSpace -
quotientMk_respects_event -
RSConfigSpace
formal source
68 log_bound : |Real.log value| ≤ 16
69
70/-- The set of all well-formed configurations (value > 0) -/
71def ConfigSpace : Set Config := {c | 0 < c.value}
72
73/-- The identity configuration (value = 1, minimal cost) -/
74def identity_config (t : ℕ) : Config := ⟨1, one_pos, t, by simp [Real.log_one]⟩
75
76/-! ## Cost Functions for Modal Logic -/
77
78/-- The fundamental cost J(x) = ½(x + 1/x) - 1.
79
80 This is the unique cost satisfying d'Alembert + normalization + calibration (T5). -/
81noncomputable def J (x : ℝ) : ℝ := (1/2) * (x + x⁻¹) - 1
82
83/-- J is non-negative for positive arguments. -/
84lemma J_nonneg {x : ℝ} (hx : 0 < x) : 0 ≤ J x := by
85 unfold J
86 have hx_ne : x ≠ 0 := hx.ne'
87 have h_rewrite : (1:ℝ)/2 * (x + x⁻¹) - 1 = (x - 1)^2 / (2 * x) := by field_simp; ring
88 rw [h_rewrite]
89 apply div_nonneg (sq_nonneg _) (by linarith : 0 ≤ 2 * x)
90
91/-- J(1) = 0 (the identity has zero cost). -/
92lemma J_at_one : J 1 = 0 := by unfold J; norm_num
93
94/-- J(x) = 0 iff x = 1 (for positive x). -/
95lemma J_zero_iff_one {x : ℝ} (hx : 0 < x) : J x = 0 ↔ x = 1 := by
96 constructor
97 · intro h
98 unfold J at h
99 have hx_ne : x ≠ 0 := hx.ne'
100 have h1 : x + x⁻¹ = 2 := by linarith
101 have h2 : x * (x + x⁻¹) = x * 2 := by rw [h1]