Encyclopedia Cosmology Cosmology Refine Trigger
ARTICLE 4 claims 4 theorems
Cosmology Refine Trigger
A rule for when to add detail to a simulation that has no tunable tolerance, because any positive threshold can miss a forced distinction.
The refinement trigger
In numerical simulation, refinement is the act of adding detail where the model needs it. A naive refiner descends into finer detail wherever some scalar exceeds a tuned tolerance ε. That ε is a free parameter: someone must choose it, and a bad choice either wastes computation or misses important structure. The cosmology refine trigger in Recognition Science is a theorem-backed rule that removes that choice entirely. It states that the only safe threshold is zero: refine a block exactly when a distinction is forced inside it, and never because some measured quantity crossed an arbitrary line.
The framework's model of a simulation cell is a discrete record of events, each event being a posting between two sites. A block is a coarse grouping of sites. Refining a block means expanding its internal postings; leaving it coarse means those postings stay hidden. The central question is which blocks to refine so that reconstructing the fine cell from the coarse one loses nothing. The answer, proved as a theorem in the framework's machine-checked library of formal theorems, is that a decision is lossless if and only if it covers every block that carries an internal posting. There is no slack: to preserve all information, you must descend exactly the active blocks, and no others.
Why not use a small positive threshold instead of zero? The reason is that a forced posting can have arbitrarily small positive cost. The recognition cost of a distinction with ratio x is J(x) = (x + 1/x)/2 - 1, which is positive whenever x is not 1, but approaches zero as x approaches 1. For every ε > 0 there exists a cell with an active block whose demand is positive but below ε. A rule that descends only when demand exceeds ε will skip that block, and the reconstruction becomes lossy. Zero is therefore the unique law-given threshold, read off the ledger rather than chosen by hand.
The module proves three things together: lossless reconstruction forces the descent set to be exactly the active blocks; the rule "descend iff a posting is forced" is itself lossless and minimal; and no positive tolerance is safe. These are collected in a single theorem, lawGivenTrigger, which holds for every cell and block map. The practical consequence is that a refiner built on this rule needs no tuning parameter and no calibration step. It descends precisely where the data demands it, and nowhere else.
This result matters because it turns refinement from an engineering heuristic into a derived law. In the Recognition Science account, the structure of the simulation is not a convenient approximation but a consequence of the forced cost function. The refinement trigger is one more place where a would-be free parameter disappears, because the underlying mathematics leaves no room for it.
THEOREM lossless_iff · IndisputableMonolith/Cosmology/RefineTrigger.lean
/-- **The descent set is forced.** Refining only the blocks in `D` is lossless if and
only if `D` covers every block that carries an internal posting. There is no tunable
slack: lossless reconstruction requires descending exactly the active blocks. -/
theorem lossless_iff (block : ℕ → ℕ) (D : ℕ → Prop) [DecidablePred D] (m : Multiset Event) :
reconstructUnder block D m = m ↔ ∀ e ∈ internalOf block m, D (block e.source) := by
unfold reconstructUnder
rw [← Multiset.filter_eq_self]
constructor
· intro h
have h2 : crossOf block m + (internalOf block m).filter (fun e => D (block e.source))
= crossOf block m + internalOf block m := by
rw [h]; exact (cross_add_internal block m).symm
exact add_left_cancel h2
· intro h
rw [h]
exact cross_add_internal block m
THEOREM lossless_law · descendLaw_necessary · IndisputableMonolith/Cosmology/RefineTrigger.lean
/-- **The law-given rule is lossless.** Descending exactly the active blocks
reconstructs the cell with zero loss. -/
theorem lossless_law (block : ℕ → ℕ) (m : Multiset Event) :
reconstructUnder block (descendLaw block m) m = m := by
rw [lossless_iff]
intro e he
exact Multiset.mem_map.mpr ⟨e, he, rfl⟩
/-- **The law-given rule is minimal.** Any lossless decision must descend every active
block; you cannot skip a block that carries a posting. -/
theorem descendLaw_necessary (block : ℕ → ℕ) (D : ℕ → Prop) [DecidablePred D]
(m : Multiset Event) (h : reconstructUnder block D m = m) :
∀ b, descendLaw block m b → D b := by
intro b hb
obtain ⟨e, he, hbe⟩ := Multiset.mem_map.mp hb
have hD := (lossless_iff block D m).mp h e he
rwa [hbe] at hD
THEOREM jcost_arbitrarily_small_positive · IndisputableMonolith/Cosmology/RefineTrigger.lean
/-- **Forced postings have arbitrarily small positive cost.** For every `ε > 0` there is
a ratio above one whose recognition cost is positive but below `ε`. This is why no
positive threshold is safe: a forced distinction can sit just under any `ε`. -/
theorem jcost_arbitrarily_small_positive (ε : ℝ) (hε : 0 < ε) :
∃ x : ℝ, 1 < x ∧ 0 < Jcost x ∧ Jcost x < ε := by
have hδpos : 0 < min 1 ε := lt_min (by norm_num) hε
have hδ1 : min 1 ε ≤ 1 := min_le_left _ _
have hδε : min 1 ε ≤ ε := min_le_right _ _
have hx1 : (1 : ℝ) < 1 + min 1 ε := by linarith
have hpos : (0 : ℝ) < 1 + min 1 ε := by linarith
have hne0 : (1 + min 1 ε) ≠ 0 := hpos.ne'
refine ⟨1 + min 1 ε, hx1, jcost_pos hpos hx1.ne', ?_⟩
have key : Jcost (1 + min 1 ε) = (min 1 ε) ^ 2 / (2 * (1 + min 1 ε)) := by
unfold Jcost; field_simp; ring
rw [key, div_lt_iff₀ (by nlinarith : (0 : ℝ) < 2 * (1 + min 1 ε))]
nlinarith [hδpos, hδ1, hδε, hε,
mul_nonneg hδpos.le (by linarith : (0 : ℝ) ≤ 1 - min 1 ε), mul_pos hε hδpos]
THEOREM epsilon_unsafe · IndisputableMonolith/Cosmology/RefineTrigger.lean
/-- **No positive threshold is safe.** For every `ε > 0` there is a cell with a single
internal posting whose demand is positive but below `ε`. The threshold rule "descend
iff demand exceeds `ε`" therefore skips that active block, and the reconstruction is
lossy. Only the zero threshold (descend iff a distinction is forced) is law-given. -/
theorem epsilon_unsafe (ε : ℝ) (hε : 0 < ε) :
∃ (m : Multiset Event) (b : ℕ),
0 < demand b01 m b ∧ demand b01 m b < ε
∧ reconstructUnder b01 (fun c => ε < demand b01 m c) m ≠ m := by
obtain ⟨r, hr1, hrpos, hrlt⟩ := jcost_arbitrarily_small_positive ε hε
refine ⟨{(⟨0, 1, r⟩ : Event)}, 0, ?_, ?_, ?_⟩
· -- demand b01 {⟨0,1,r⟩} 0 = Jcost r
have hd : demand b01 {(⟨0, 1, r⟩ : Event)} 0 = Jcost r := by
unfold demand internalOf
simp [sameBlock, b01, Multiset.filter_singleton, cost_singleton]
rw [hd]; exact hrpos
· have hd : demand b01 {(⟨0, 1, r⟩ : Event)} 0 = Jcost r := by
unfold demand internalOf
simp [sameBlock, b01, Multiset.filter_singleton, cost_singleton]
rw [hd]; exact hrlt
· -- the epsilon-rule skips block 0, so reconstruction drops the only posting
have hd : demand b01 {(⟨0, 1, r⟩ : Event)} 0 = Jcost r := by
unfold demand internalOf
simp [sameBlock, b01, Multiset.filter_singleton, cost_singleton]
have hnotsel : ¬ (ε < demand b01 {(⟨0, 1, r⟩ : Event)} 0) := by rw [hd]; linarith
-- reconstructUnder = crossOf (empty) + internal filtered by a false predicate = 0
have hrecon : reconstructUnder b01 (fun c => ε < demand b01 {(⟨0, 1, r⟩ : Event)} c)
{(⟨0, 1, r⟩ : Event)} = 0 := by
unfold reconstructUnder crossOf internalOf
simp [sameBlock, b01, Multiset.filter_singleton, hnotsel]
rw [hrecon]
-- 0 ≠ {⟨0,1,r⟩}
intro hcontra
have : Multiset.card (0 : Multiset Event) = Multiset.card {(⟨0, 1, r⟩ : Event)} :=
congrArg Multiset.card hcontra
simp at this
What this page does not claim
This module does not specify the order in which blocks are refined, only which blocks must be refined. This module does not prove that the recognition cost J is the unique cost function; that is a separate theorem. This module does not claim that the refinement trigger is the only mechanism driving structure formation in the framework.
Verify this page
Every tagged claim above names its theorem. To check one yourself rather than trust this page, elaborate the source module with Lean 4 and audit its axiom basis:
$ lake env lean IndisputableMonolith/Cosmology/RefineTrigger.lean
expected axiom basis: [propext, Classical.choice, Quot.sound] (the Lean kernel's standard three; no RS-specific axioms)
A page whose claims cannot be reproduced this way does not ship. In production, every anchor links to the exact declaration in the public source release, and this block carries the build receipt for the page itself.
Derived articles
This page is generated by a question-recursion engine: the questions its answers raise become the next pages. The current agenda, with open targets marked red:
- How does the refinement trigger interact with the T-1 cell model's construction of events and blocks?
- What does the framework say about the order in which active blocks should be refined?
- How does this threshold-zero rule scale to a full cosmological simulation with many nested levels of blocks?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM lossless_iff · IndisputableMonolith/Cosmology/RefineTrigger.lean
/-- **The descent set is forced.** Refining only the blocks in `D` is lossless if and only if `D` covers every block that carries an internal posting. There is no tunable slack: lossless reconstruction requires descending exactly the active blocks. -/ theorem lossless_iff (block : ℕ → ℕ) (D : ℕ → Prop) [DecidablePred D] (m : Multiset Event) : reconstructUnder block D m = m ↔ ∀ e ∈ internalOf block m, D (block e.source) := by unfold reconstructUnder rw [← Multiset.filter_eq_self] constructor · intro h have h2 : crossOf block m + (internalOf block m).filter (fun e => D (block e.source)) = crossOf block m + internalOf block m := by rw [h]; exact (cross_add_internal block m).symm exact add_left_cancel h2 · intro h rw [h] exact cross_add_internal block mA decision is lossless if and only if it covers every block that carries an internal posting. lossless_iff · IndisputableMonolith/Cosmology/RefineTrigger.leanTHEOREM lossless_law · descendLaw_necessary · IndisputableMonolith/Cosmology/RefineTrigger.lean
/-- **The law-given rule is lossless.** Descending exactly the active blocks reconstructs the cell with zero loss. -/ theorem lossless_law (block : ℕ → ℕ) (m : Multiset Event) : reconstructUnder block (descendLaw block m) m = m := by rw [lossless_iff] intro e he exact Multiset.mem_map.mpr ⟨e, he, rfl⟩/-- **The law-given rule is minimal.** Any lossless decision must descend every active block; you cannot skip a block that carries a posting. -/ theorem descendLaw_necessary (block : ℕ → ℕ) (D : ℕ → Prop) [DecidablePred D] (m : Multiset Event) (h : reconstructUnder block D m = m) : ∀ b, descendLaw block m b → D b := by intro b hb obtain ⟨e, he, hbe⟩ := Multiset.mem_map.mp hb have hD := (lossless_iff block D m).mp h e he rwa [hbe] at hDThe rule "descend iff a posting is forced" is itself lossless and minimal. lossless_law · descendLaw_necessary · IndisputableMonolith/Cosmology/RefineTrigger.leanTHEOREM jcost_arbitrarily_small_positive · IndisputableMonolith/Cosmology/RefineTrigger.lean
/-- **Forced postings have arbitrarily small positive cost.** For every `ε > 0` there is a ratio above one whose recognition cost is positive but below `ε`. This is why no positive threshold is safe: a forced distinction can sit just under any `ε`. -/ theorem jcost_arbitrarily_small_positive (ε : ℝ) (hε : 0 < ε) : ∃ x : ℝ, 1 < x ∧ 0 < Jcost x ∧ Jcost x < ε := by have hδpos : 0 < min 1 ε := lt_min (by norm_num) hε have hδ1 : min 1 ε ≤ 1 := min_le_left _ _ have hδε : min 1 ε ≤ ε := min_le_right _ _ have hx1 : (1 : ℝ) < 1 + min 1 ε := by linarith have hpos : (0 : ℝ) < 1 + min 1 ε := by linarith have hne0 : (1 + min 1 ε) ≠ 0 := hpos.ne' refine ⟨1 + min 1 ε, hx1, jcost_pos hpos hx1.ne', ?_⟩ have key : Jcost (1 + min 1 ε) = (min 1 ε) ^ 2 / (2 * (1 + min 1 ε)) := by unfold Jcost; field_simp; ring rw [key, div_lt_iff₀ (by nlinarith : (0 : ℝ) < 2 * (1 + min 1 ε))] nlinarith [hδpos, hδ1, hδε, hε, mul_nonneg hδpos.le (by linarith : (0 : ℝ) ≤ 1 - min 1 ε), mul_pos hε hδpos]For every ε > 0 there exists a cell with an active block whose demand is positive but below ε. jcost_arbitrarily_small_positive · IndisputableMonolith/Cosmology/RefineTrigger.leanTHEOREM epsilon_unsafe · IndisputableMonolith/Cosmology/RefineTrigger.lean
/-- **No positive threshold is safe.** For every `ε > 0` there is a cell with a single internal posting whose demand is positive but below `ε`. The threshold rule "descend iff demand exceeds `ε`" therefore skips that active block, and the reconstruction is lossy. Only the zero threshold (descend iff a distinction is forced) is law-given. -/ theorem epsilon_unsafe (ε : ℝ) (hε : 0 < ε) : ∃ (m : Multiset Event) (b : ℕ), 0 < demand b01 m b ∧ demand b01 m b < ε ∧ reconstructUnder b01 (fun c => ε < demand b01 m c) m ≠ m := by obtain ⟨r, hr1, hrpos, hrlt⟩ := jcost_arbitrarily_small_positive ε hε refine ⟨{(⟨0, 1, r⟩ : Event)}, 0, ?_, ?_, ?_⟩ · -- demand b01 {⟨0,1,r⟩} 0 = Jcost r have hd : demand b01 {(⟨0, 1, r⟩ : Event)} 0 = Jcost r := by unfold demand internalOf simp [sameBlock, b01, Multiset.filter_singleton, cost_singleton] rw [hd]; exact hrpos · have hd : demand b01 {(⟨0, 1, r⟩ : Event)} 0 = Jcost r := by unfold demand internalOf simp [sameBlock, b01, Multiset.filter_singleton, cost_singleton] rw [hd]; exact hrlt · -- the epsilon-rule skips block 0, so reconstruction drops the only posting have hd : demand b01 {(⟨0, 1, r⟩ : Event)} 0 = Jcost r := by unfold demand internalOf simp [sameBlock, b01, Multiset.filter_singleton, cost_singleton] have hnotsel : ¬ (ε < demand b01 {(⟨0, 1, r⟩ : Event)} 0) := by rw [hd]; linarith -- reconstructUnder = crossOf (empty) + internal filtered by a false predicate = 0 have hrecon : reconstructUnder b01 (fun c => ε < demand b01 {(⟨0, 1, r⟩ : Event)} c) {(⟨0, 1, r⟩ : Event)} = 0 := by unfold reconstructUnder crossOf internalOf simp [sameBlock, b01, Multiset.filter_singleton, hnotsel] rw [hrecon] -- 0 ≠ {⟨0,1,r⟩} intro hcontra have : Multiset.card (0 : Multiset Event) = Multiset.card {(⟨0, 1, r⟩ : Event)} := congrArg Multiset.card hcontra simp at thisNo positive tolerance is safe. epsilon_unsafe · IndisputableMonolith/Cosmology/RefineTrigger.lean