Realized Syracuse cycles need enough valuation-window labels for their states
ProvedCollatzFrontier.least_cycle_window_capacityLet be the Syracuse map and let denote the exponent of two. Suppose is odd, , and , so lies on a period- orbit. Suppose further that is the exact (least) period: for every . Suppose every state visited by the orbit lies in a known interval: for all .
For a start index , the length- orbit valuation window beginning at (Definitions.Def_collatzFrontierWordWindows, orbitValuationWindow) records the next dyadic valuations along the orbit,
Then
Equivalently: a realized Syracuse cycle of period must either visit a wide range of states, or exhibit many distinct length- valuation windows -- it cannot have both a narrow state range and highly repetitive windows while staying as long as .
This is the realized-orbit counterpart of the word-level theorem CollatzFrontier.primitive_word_nondivisibility_of_window_capacity, proved for an actual Syracuse-periodic point rather than for an abstract candidate word; the word-level theorem is obtained from this one by transporting the packing argument across the exact correspondence between a primitive word under the platform's canonical divisibility condition and its realized state. Taken alone it supplies no new numeric exclusion (it does not lower the mission's period floor); its value is as a general capacity inequality that can be applied directly to a conjectured or partially known cycle, without first assembling a formal word for it.
Formalization Note. hcyc together with hmin says is the exact least period of under , not merely some period; hbounds is a known interval for the orbit states, supplied as a hypothesis rather than derived.
import Mathlib import Definitions.Def_syracuseStep import Definitions.Def_collatzFrontierWordWindows
namespace CollatzFrontier
theorem least_cycle_window_capacity (m p k L U : ℕ) (hp : 0 < p) (hodd : Odd m)
(hcyc : syracuseStep^[p] m = m)
(hmin : ∀ d : ℕ, 0 < d → d < p → syracuseStep^[d] m ≠ m)
(hbounds : ∀ d : ℕ, d < p → L ≤ syracuseStep^[d] m ∧ syracuseStep^[d] m ≤ U) :
p ≤ ((Finset.univ : Finset (Fin p)).image
(fun i : Fin p => orbitValuationWindow m k i.val)).card * ((U - L) / (2 * 3 ^ k) + 1) := by sorry
end CollatzFrontier