Encyclopedia Cosmology Cosmology Rung Descent Unit Step Shift Down Unit Step Of Cut
ARTICLE 3 claims 3 theorems
Cosmology Rung Descent Unit Step Shift Down Unit Step Of Cut
A machine-checked theorem shows when lowering one level of a discrete system keeps its internal differences small, and when it breaks them.
The cut condition
In a discrete system where every object carries an integer level, the unit-step invariant says that any two connected objects differ by at most one level. The Recognition Science declaration shiftDown_unitStep_of_cut establishes a precise condition for when lowering a chosen set of objects by one level preserves this invariant. The condition concerns cut edges: connections with exactly one endpoint in the lowered set. If every such cut edge still has a level difference of at most one after the move, then the whole system remains unit-step. Edges with both endpoints lowered, or neither, are preserved automatically, since their level difference is unchanged.
The theorem is a machine-checked result in the framework's library of formal theorems. It is the integer analogue of an earlier real-valued result, and it closes a gap in the framework's account of how its recognition dynamics evolves. The statement is local: it does not claim that any descent preserves the invariant, only that a descent meeting the cut condition does. The proof is complete, with no unfinished parts and no new axioms beyond the standard three of the underlying logic.
The necessity of the condition is shown by a concrete counterexample. On a three-site chain with levels 0, 1, 2, lowering the bottom cell (level 0) to -1 creates a gap of 2 with its level-1 neighbour, breaking the invariant. This demonstrates that the top-rung restriction in a related theorem is essential, not a technical convenience. The framework also proves that a preserving descent always exists for any nonempty edge set with a unit-step field, by taking the maximum level as the set to lower.
In Recognition Science, this result supports the claim that the framework's cost law applies cycle to cycle along the specific update it names. The framework models its dynamics as a series of such descents, and this theorem is the piece that keeps the unit-step invariant intact for the natural top-rung move. It does not claim that the invariant holds for arbitrary updates, and it does not address the real-valued mean move, which is treated separately.
THEOREM shiftDown_unitStep_of_cut · IndisputableMonolith/Cosmology/RungDescentUnitStep.lean
/-- **Local preservation criterion.** Descending a set `S` by one rung preserves `UnitStep` on the
whole edge set provided every *cut* edge (exactly one endpoint in `S`) remains within one rung
after the move. Edges with both endpoints in `S` keep their gap (both shift by `1`); edges with
neither endpoint in `S` are unchanged. So only the cut edges can break the invariant, and the
hypothesis controls exactly those. -/
theorem shiftDown_unitStep_of_cut (S : V → Prop) [DecidablePred S] (k : V → ℤ)
(E : Finset (V × V)) (hunit : UnitStep k E)
(hcut : ∀ p ∈ E, ((S p.1 ∧ ¬ S p.2) ∨ (¬ S p.1 ∧ S p.2)) →
(shiftDown S k p.1 - shiftDown S k p.2 = 0
∨ shiftDown S k p.1 - shiftDown S k p.2 = 1
∨ shiftDown S k p.1 - shiftDown S k p.2 = -1)) :
UnitStep (shiftDown S k) E := by
intro p hp
by_cases h1 : S p.1 <;> by_cases h2 : S p.2
· -- both endpoints descend: the gap is unchanged
rw [shiftDown_pos S k h1, shiftDown_pos S k h2]
have hsame : (k p.1 - 1) - (k p.2 - 1) = k p.1 - k p.2 := by ring
rw [hsame]; exact hunit p hp
· -- cut edge: p.1 descends, p.2 stays
exact hcut p hp (Or.inl ⟨h1, h2⟩)
· -- cut edge: p.1 stays, p.2 descends
exact hcut p hp (Or.inr ⟨h1, h2⟩)
· -- neither endpoint descends: unchanged
rw [shiftDown_neg S k h1, shiftDown_neg S k h2]; exact hunit p hp
THEOREM exists_top_descent_unitStep · IndisputableMonolith/Cosmology/RungDescentUnitStep.lean
/-- **A preserving descent always exists.** For any nonempty edge set carrying a unit-step rung
field, take `M` to be the realised maximum rung; descending the top-rung cells preserves
`UnitStep`, and the descent is nontrivial because the maximum is attained. No external parameter
is supplied: `M` is read off the field. -/
theorem exists_top_descent_unitStep [DecidableEq V] (k : V → ℤ) (E : Finset (V × V))
(hne : E.Nonempty) (hunit : UnitStep k E) :
∃ M : ℤ, (∃ v ∈ edgeVerts E, k v = M)
∧ UnitStep (shiftDown (fun v => k v = M) k) E := by
have hVne : (edgeVerts E).Nonempty := by
obtain ⟨p, hp⟩ := hne
exact ⟨p.1, fst_mem_edgeVerts hp⟩
have hImgNe : ((edgeVerts E).image k).Nonempty := hVne.image k
set M : ℤ := ((edgeVerts E).image k).max' hImgNe with hM
have hMmem : M ∈ (edgeVerts E).image k := Finset.max'_mem _ hImgNe
obtain ⟨v, hv, hvk⟩ := Finset.mem_image.mp hMmem
refine ⟨M, ⟨v, hv, hvk⟩, ?_⟩
apply shiftDown_top_unitStep k E M hunit
intro p hp
refine ⟨?_, ?_⟩
· exact Finset.le_max' _ (k p.1) (Finset.mem_image.mpr ⟨p.1, fst_mem_edgeVerts hp, rfl⟩)
· exact Finset.le_max' _ (k p.2) (Finset.mem_image.mpr ⟨p.2, snd_mem_edgeVerts hp, rfl⟩)
THEOREM ckLevels_descend_min_breaks · IndisputableMonolith/Cosmology/RungDescentUnitStep.lean
/-- **Necessity counterexample.** Descending the *bottom* cell (rung `0`) of the chain `0, 1, 2`
sends it to `-1`, so the edge to the rung-`1` neighbour has gap `2` and `UnitStep` fails. Only
descending the top rung is safe; the top-rung hypothesis of `shiftDown_top_unitStep` is necessary,
not cosmetic. -/
theorem ckLevels_descend_min_breaks :
¬ UnitStep (shiftDown (fun v => v = (0 : Fin 3)) ckLevels) ckEdges := by
unfold UnitStep; decide
What this page does not claim
The theorem does not claim that any descent preserves the unit-step invariant, only those meeting the cut condition. The theorem does not address the real-valued mean move, which is treated separately and does not preserve the invariant globally. The theorem does not claim anything about the framework's physical cosmology, only about its formal discrete dynamics.
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/RungDescentUnitStep.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 top-rung descent theorem connect to the framework's cost law in the next recognition cycle?
- What does the earlier real-valued result say about the mean move, and why does it fail to preserve the invariant globally?
- What is the role of the unit-step invariant in the framework's account of recognition dynamics?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM shiftDown_unitStep_of_cut · IndisputableMonolith/Cosmology/RungDescentUnitStep.lean
/-- **Local preservation criterion.** Descending a set `S` by one rung preserves `UnitStep` on the whole edge set provided every *cut* edge (exactly one endpoint in `S`) remains within one rung after the move. Edges with both endpoints in `S` keep their gap (both shift by `1`); edges with neither endpoint in `S` are unchanged. So only the cut edges can break the invariant, and the hypothesis controls exactly those. -/ theorem shiftDown_unitStep_of_cut (S : V → Prop) [DecidablePred S] (k : V → ℤ) (E : Finset (V × V)) (hunit : UnitStep k E) (hcut : ∀ p ∈ E, ((S p.1 ∧ ¬ S p.2) ∨ (¬ S p.1 ∧ S p.2)) → (shiftDown S k p.1 - shiftDown S k p.2 = 0 ∨ shiftDown S k p.1 - shiftDown S k p.2 = 1 ∨ shiftDown S k p.1 - shiftDown S k p.2 = -1)) : UnitStep (shiftDown S k) E := by intro p hp by_cases h1 : S p.1 <;> by_cases h2 : S p.2 · -- both endpoints descend: the gap is unchanged rw [shiftDown_pos S k h1, shiftDown_pos S k h2] have hsame : (k p.1 - 1) - (k p.2 - 1) = k p.1 - k p.2 := by ring rw [hsame]; exact hunit p hp · -- cut edge: p.1 descends, p.2 stays exact hcut p hp (Or.inl ⟨h1, h2⟩) · -- cut edge: p.1 stays, p.2 descends exact hcut p hp (Or.inr ⟨h1, h2⟩) · -- neither endpoint descends: unchanged rw [shiftDown_neg S k h1, shiftDown_neg S k h2]; exact hunit p hpThe theorem shiftDown_unitStep_of_cut establishes that descending a set S by one rung preserves UnitStep exactly when every cut edge stays within one rung after the move. shiftDown_unitStep_of_cut · IndisputableMonolith/Cosmology/RungDescentUnitStep.leanTHEOREM exists_top_descent_unitStep · IndisputableMonolith/Cosmology/RungDescentUnitStep.lean
/-- **A preserving descent always exists.** For any nonempty edge set carrying a unit-step rung field, take `M` to be the realised maximum rung; descending the top-rung cells preserves `UnitStep`, and the descent is nontrivial because the maximum is attained. No external parameter is supplied: `M` is read off the field. -/ theorem exists_top_descent_unitStep [DecidableEq V] (k : V → ℤ) (E : Finset (V × V)) (hne : E.Nonempty) (hunit : UnitStep k E) : ∃ M : ℤ, (∃ v ∈ edgeVerts E, k v = M) ∧ UnitStep (shiftDown (fun v => k v = M) k) E := by have hVne : (edgeVerts E).Nonempty := by obtain ⟨p, hp⟩ := hne exact ⟨p.1, fst_mem_edgeVerts hp⟩ have hImgNe : ((edgeVerts E).image k).Nonempty := hVne.image k set M : ℤ := ((edgeVerts E).image k).max' hImgNe with hM have hMmem : M ∈ (edgeVerts E).image k := Finset.max'_mem _ hImgNe obtain ⟨v, hv, hvk⟩ := Finset.mem_image.mp hMmem refine ⟨M, ⟨v, hv, hvk⟩, ?_⟩ apply shiftDown_top_unitStep k E M hunit intro p hp refine ⟨?_, ?_⟩ · exact Finset.le_max' _ (k p.1) (Finset.mem_image.mpr ⟨p.1, fst_mem_edgeVerts hp, rfl⟩) · exact Finset.le_max' _ (k p.2) (Finset.mem_image.mpr ⟨p.2, snd_mem_edgeVerts hp, rfl⟩)The framework also proves that a preserving descent always exists for any nonempty edge set with a unit-step field, by taking the maximum level as the set to lower. exists_top_descent_unitStep · IndisputableMonolith/Cosmology/RungDescentUnitStep.leanTHEOREM ckLevels_descend_min_breaks · IndisputableMonolith/Cosmology/RungDescentUnitStep.lean
/-- **Necessity counterexample.** Descending the *bottom* cell (rung `0`) of the chain `0, 1, 2` sends it to `-1`, so the edge to the rung-`1` neighbour has gap `2` and `UnitStep` fails. Only descending the top rung is safe; the top-rung hypothesis of `shiftDown_top_unitStep` is necessary, not cosmetic. -/ theorem ckLevels_descend_min_breaks : ¬ UnitStep (shiftDown (fun v => v = (0 : Fin 3)) ckLevels) ckEdges := by unfold UnitStep; decideOn a three-site chain with levels 0, 1, 2, lowering the bottom cell to -1 creates a gap of 2 with its level-1 neighbour, breaking the invariant. ckLevels_descend_min_breaks · IndisputableMonolith/Cosmology/RungDescentUnitStep.lean