Encyclopedia Cosmology Cosmology Recognition Unit Step Preservation Chain3 Resolved Second Gap
ARTICLE 3 claims 3 theorems
Cosmology Recognition Unit Step Preservation Chain3 Resolved Second Gap
A three-site chain shows why a natural averaging rule cannot guarantee a stability condition, and what the rule must check instead.
The honest limit of a preservation claim
In the Recognition Science framework, a ledger (a discrete record of events) carries a real number at each of its sites, and an edge connects two sites whose values must stay close. The unit-step condition demands that every edge connects values differing by at most 1. A natural question is whether a simple averaging move, which replaces two connected values by their mean, preserves this condition automatically. The answer is no, and the three-site chain 0 -- 1 -- 2 is the minimal counterexample.
Start with levels 0, 1, 2 on the three sites. Both edges have gap exactly 1, so the unit-step condition holds. Now resolve the first edge (0,1) by replacing both endpoints with their mean, 1/2. The levels become 1/2, 1/2, 2. The second edge (1,2) now has gap 3/2, which exceeds 1. The condition fails. This is not a numerical observation; it is a proved theorem in the framework's machine-checked library of formal theorems, with no gaps in the proof.
The failure is precise and instructive. The correct statement is a local criterion: a single averaging move preserves the unit-step condition on the whole ledger if and only if every edge touching the resolved pair still satisfies the condition after the move. Edges far from the move are untouched and remain safe automatically. The three-site chain shows the local condition is not cosmetic; without it, the global preservation claim is simply false.
What this means in practice: the framework's live engine may apply the unit-step cost law only after auditing the local condition for the specific update being performed. A blind global rule would be wrong. The honest theorem layer records both the true local preservation theorem and the counterexample that blocks the false global one.
THEOREM chain3_resolved_second_gap · chain3_unitStep · IndisputableMonolith/Cosmology/RecognitionUnitStepPreservation.lean
/-- After resolving the first edge `(0,1)`, the second edge `(1,2)` has gap `3/2`. -/
lemma chain3_resolved_second_gap :
|pairResolve chain3Levels f0 f1 f1 - pairResolve chain3Levels f0 f1 f2| = (3 / 2 : ℝ) := by
have hf2_ne_f0 : f2 ≠ f0 := by decide
have hf2_ne_f1 : f2 ≠ f1 := by decide
rw [pairResolve_at_j, pairResolve_other chain3Levels hf2_ne_f0 hf2_ne_f1]
norm_num
/-- The chain `0,1,2` is unit-step before any resolution. -/
theorem chain3_unitStep : UnitStepReal chain3Levels chain3Edges := by
intro e he
simp [chain3Edges] at he
rcases he with rfl | he
· norm_num
· rcases he with rfl
norm_num
THEOREM pairResolve_unitStep_of_local · IndisputableMonolith/Cosmology/RecognitionUnitStepPreservation.lean
/-- **Local preservation criterion.** A `pairResolve` move preserves the unit-step
invariant on the whole edge list if every edge touching the resolved pair remains
unit-step after the move. Disjoint edges are unchanged by `pairResolve_other`, so the
old unit-step invariant carries them automatically.
This is the exact condition the runtime must audit, or a later theorem must prove, before
applying the Phase-56 cost law to an actively updated field. -/
theorem pairResolve_unitStep_of_local {n : ℕ} (x : Fin n → ℝ) (E : List (Fin n × Fin n))
(i j : Fin n) (hunit : UnitStepReal x E)
(hlocal : ∀ e ∈ E, EdgeTouches i j e →
|pairResolve x i j e.1 - pairResolve x i j e.2| ≤ 1) :
UnitStepReal (pairResolve x i j) E := by
intro e he
by_cases ht : EdgeTouches i j e
· exact hlocal e he ht
· have h1i : e.1 ≠ i := by
intro h; exact ht (Or.inl h)
have h1j : e.1 ≠ j := by
intro h; exact ht (Or.inr (Or.inl h))
have h2i : e.2 ≠ i := by
intro h; exact ht (Or.inr (Or.inr (Or.inl h)))
have h2j : e.2 ≠ j := by
intro h; exact ht (Or.inr (Or.inr (Or.inr h)))
rw [pairResolve_other x h1i h1j, pairResolve_other x h2i h2j]
exact hunit e he
THEOREM chain3_pairResolve_breaks_unitStep · IndisputableMonolith/Cosmology/RecognitionUnitStepPreservation.lean
/-- **Counterexample.** A unit-step field need not remain unit-step after a mean-move
resolution. The three-site chain `0 -- 1 -- 2` starts with gaps `1` and `1`; resolving
the first edge gives levels `1/2, 1/2, 2`, so the second edge has gap `3/2 > 1`.
This blocks the false global theorem "mean-move preserves UnitStep". The correct theorem
is the local criterion `pairResolve_unitStep_of_local` above. -/
theorem chain3_pairResolve_breaks_unitStep :
¬ UnitStepReal (pairResolve chain3Levels f0 f1) chain3Edges := by
intro h
have hedge : (f1, f2) ∈ chain3Edges := by
simp [chain3Edges]
have hstep := h (f1, f2) hedge
rw [chain3_resolved_second_gap] at hstep
norm_num at hstep
What this page does not claim
The unit-step condition is preserved by every averaging move. The three-site chain is the only configuration where the condition fails. The framework claims that this counterexample disproves the unit-step invariant itself.
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/RecognitionUnitStepPreservation.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:
- What is the Phase-56 graded-rung cost law that the unit-step invariant supports?
- How does the local preservation criterion generalize to simultaneous updates of multiple pairs?
- What conditions on the ledger's edge structure make the local criterion automatically satisfied?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM chain3_resolved_second_gap · chain3_unitStep · IndisputableMonolith/Cosmology/RecognitionUnitStepPreservation.lean
/-- After resolving the first edge `(0,1)`, the second edge `(1,2)` has gap `3/2`. -/ lemma chain3_resolved_second_gap : |pairResolve chain3Levels f0 f1 f1 - pairResolve chain3Levels f0 f1 f2| = (3 / 2 : ℝ) := by have hf2_ne_f0 : f2 ≠ f0 := by decide have hf2_ne_f1 : f2 ≠ f1 := by decide rw [pairResolve_at_j, pairResolve_other chain3Levels hf2_ne_f0 hf2_ne_f1] norm_num/-- The chain `0,1,2` is unit-step before any resolution. -/ theorem chain3_unitStep : UnitStepReal chain3Levels chain3Edges := by intro e he simp [chain3Edges] at he rcases he with rfl | he · norm_num · rcases he with rfl norm_numThe three-site chain 0 -- 1 -- 2 starts with gaps 1 and 1, and resolving the first edge gives levels 1/2, 1/2, 2, so the second edge has gap 3/2. chain3_resolved_second_gap · chain3_unitStep · IndisputableMonolith/Cosmology/RecognitionUnitStepPreservation.leanTHEOREM pairResolve_unitStep_of_local · IndisputableMonolith/Cosmology/RecognitionUnitStepPreservation.lean
/-- **Local preservation criterion.** A `pairResolve` move preserves the unit-step invariant on the whole edge list if every edge touching the resolved pair remains unit-step after the move. Disjoint edges are unchanged by `pairResolve_other`, so the old unit-step invariant carries them automatically. This is the exact condition the runtime must audit, or a later theorem must prove, before applying the Phase-56 cost law to an actively updated field. -/ theorem pairResolve_unitStep_of_local {n : ℕ} (x : Fin n → ℝ) (E : List (Fin n × Fin n)) (i j : Fin n) (hunit : UnitStepReal x E) (hlocal : ∀ e ∈ E, EdgeTouches i j e → |pairResolve x i j e.1 - pairResolve x i j e.2| ≤ 1) : UnitStepReal (pairResolve x i j) E := by intro e he by_cases ht : EdgeTouches i j e · exact hlocal e he ht · have h1i : e.1 ≠ i := by intro h; exact ht (Or.inl h) have h1j : e.1 ≠ j := by intro h; exact ht (Or.inr (Or.inl h)) have h2i : e.2 ≠ i := by intro h; exact ht (Or.inr (Or.inr (Or.inl h))) have h2j : e.2 ≠ j := by intro h; exact ht (Or.inr (Or.inr (Or.inr h))) rw [pairResolve_other x h1i h1j, pairResolve_other x h2i h2j] exact hunit e heA single averaging move preserves the unit-step condition on the whole ledger if every edge touching the resolved pair satisfies the condition after the move. pairResolve_unitStep_of_local · IndisputableMonolith/Cosmology/RecognitionUnitStepPreservation.leanTHEOREM chain3_pairResolve_breaks_unitStep · IndisputableMonolith/Cosmology/RecognitionUnitStepPreservation.lean
/-- **Counterexample.** A unit-step field need not remain unit-step after a mean-move resolution. The three-site chain `0 -- 1 -- 2` starts with gaps `1` and `1`; resolving the first edge gives levels `1/2, 1/2, 2`, so the second edge has gap `3/2 > 1`. This blocks the false global theorem "mean-move preserves UnitStep". The correct theorem is the local criterion `pairResolve_unitStep_of_local` above. -/ theorem chain3_pairResolve_breaks_unitStep : ¬ UnitStepReal (pairResolve chain3Levels f0 f1) chain3Edges := by intro h have hedge : (f1, f2) ∈ chain3Edges := by simp [chain3Edges] have hstep := h (f1, f2) hedge rw [chain3_resolved_second_gap] at hstep norm_num at hstepThe three-site chain shows the global preservation claim is false. chain3_pairResolve_breaks_unitStep · IndisputableMonolith/Cosmology/RecognitionUnitStepPreservation.lean