Margin criterion for Syracuse cycles at a general small-value threshold
Provedsyracuse_cycle_eq_one_of_margin_atLet be the Syracuse map, sending to the odd part of . This is the threshold-parametrised form of the margin criterion for excluding Syracuse cycles of a fixed period.
Fix a period and a threshold , and suppose two things are known about :
- (small values) every periodic point below is ; equivalently, no nontrivial cycle contains a value ;
- (margin) every power of two exceeding also exceeds , i.e. whenever .
Then every -periodic point of equals .
The mechanism is a comparison of two inequalities holding around any cycle. Writing for the cycle minimum and for the total number of halvings, one has and . A nontrivial cycle has by the first assumption, which gives the linear estimate ; raised to the -th power this contradicts the margin assumption.
Separating the threshold from the argument is what makes the criterion usable: improving the verified range of small values immediately widens the set of periods that can be excluded, with no change to the proof. With the margin condition holds exactly for ; with it holds exactly for . It never holds for all , since returns arbitrarily close to along the convergents of .
import Mathlib import Definitions.Def_syracuseStep
theorem syracuse_cycle_eq_one_of_margin_at (a m B : ℕ) (ha : 0 < a) (hm : 0 < m) (hB : 0 < B)
(hcyc : syracuseStep^[a] m = m)
(hsmall : ∀ z b : ℕ, 0 < z → 0 < b → z < B → syracuseStep^[b] z = z → z = 1)
(hbd : ∀ K : ℕ, 3 ^ a < 2 ^ K → (3 * B + 1) ^ a < 2 ^ K * B ^ a) :
m = 1 := by sorry