FormalConjectures/Books/BugeaudDistributionModuloOne/Problem10_61.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1
11 declarations, 6 contain sorry, 0 declared as axioms
Bugeaud Collection of Conjectures and Open Questions: Pisot orbits on the Cantor set
Problem 10.61, proposed by Mendès France [MF67, Problème 1, p. 41]. For a Pisot number $\alpha > 2$ put $$C(\alpha) = \left\{ (\alpha - 1) \sum_{k \ge 1} \varepsilon_k \alpha^{-k} : \varepsilon_k \in \{0, 1\} \right\}.$$ The problem asks to prove that $(\xi \alpha^n)_{n \ge 1}$ is not uniformly distributed modulo one for any $\xi \in C(\alpha)$. In the language of [MF67] this reads $C(\alpha) \cap B(\alpha) = \emptyset$, where $B(\alpha)$ is the set of $\xi$ for which $(\xi \alpha^n)$ is uniformly distributed modulo one.
The problem is open. It is easy for an integer base and settled for two quadratic $\alpha$; the general Pisot case is what remains. [Ste26] reduces it to a statement about shift-invariant measures of the full two-shift, and proves that every true instance admits a finite certificate, so the difficulty is uniformity in $\alpha$ rather than any single $\alpha$. The variants below state the criterion and the instances of [Ste26] that concern Problem 10.61 directly; the reduction itself is not stated here, since it needs the symbolic model.
Deleting the term $n = 0$ does not change uniform distribution modulo one, so the statements indexed from $n = 1$ agree with the ones of [Ste26], which are indexed from $n = 0$. Where an orbit is confined away from an interval the stronger form, for every $n \ge 0$, is stated.
References:
- [Bug12] Bugeaud, Yann. "Distribution modulo one and Diophantine approximation." Vol. 193. Cambridge University Press, 2012. Chapter 10, Problem 10.61, p. 222.
- [MF67] Mendès France, Michel. "Nombres normaux. Applications aux fonctions pseudo-aléatoires." Journal d'Analyse Mathématique 20 (1967): 1-56.
- [Kok35] Koksma, Jurjen F. "Ein mengentheoretischer Satz über die Gleichverteilung modulo Eins." Compositio Mathematica 2 (1935): 250-258.
- [Ste26] Stephan, Ralf. "Criteria for the non-equidistribution of $(\xi \alpha^n)$ on the Cantor set $C(\alpha)$." Preprint, 2026. https://doi.org/10.13140/RG.2.2.13923.52001
Imports (1)
- def
Bugeaud61.cantorPointThe point of $C(\alpha)$ with digit sequence $\varepsilon$, that is $(\alpha - 1) \sum_{k \ge 1} \varepsilon_k \alpha^{-k}$ line 65 sourceSource documentation
The point of $C(\alpha)$ with digit sequence $\varepsilon$, that is $(\alpha - 1) \sum_{k \ge 1} \varepsilon_k \alpha^{-k}$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Nat,BoolProof uses:
HMul.hMul,HSub.hSub,OfNat.ofNat,tsum,ite,Eq,Bool.true,HPow.hPow,Inv.inv,HAdd.hAdd,SummationFilter.unconditional21 instances, coercions and auxiliary constants left out.
noncomputable def cantorPoint (α : ℝ) (ε : ℕ → Bool) : ℝ := …
- def
Bugeaud61.pisotCantorSetThe set $C(\alpha)$ of Problem 10.61 line 73 sourceSource documentation
The set $C(\alpha)$ of Problem 10.61. For $\alpha > 2$ it is a Cantor set of Hausdorff dimension $\log 2 / \log \alpha < 1$, normalised so that $0$ is its least and $1$ its greatest element.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,SetProof uses:
Set.range,Nat,Bool, Bugeaud61.cantorPointnoncomputable def pisotCantorSet (α : ℝ) : Set ℝ := Set.range (cantorPoint α)
Mentions: Bugeaud61.cantorPoint
- def
Bugeaud61.routeAExponentThe Route A exponent line 81 sourceSource documentation
The Route A exponent $A(\alpha) = \log 2 / \log \alpha + \log 2 / \log(1 / \rho)$ of [Ste26], where $\rho$ is the largest modulus of a conjugate of $\alpha$ other than $\alpha$ itself. It is the sum of the box dimensions of $C(\alpha)$ and of the window in which the conjugate contributions live.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RealProof uses:
HAdd.hAdd,HDiv.hDiv,Real.log,OfNat.ofNat,Inv.inv9 instances, coercions and auxiliary constants left out.
noncomputable def routeAExponent (α ρ : ℝ) : ℝ := …
- theorem
Bugeaud61.problem_10_61Problem 10.61 sorry line 89 sourceSource documentation
Problem 10.61. Let $\alpha > 2$ be a Pisot number. For every $\xi \in C(\alpha)$ the sequence $(\xi \alpha^n)_{n \ge 1}$ is not uniformly distributed modulo one.
depends on sorry what this means
Statement uses:
Real, IsPisot,LT.lt,OfNat.ofNat,Nat,Membership.mem,Set, Bugeaud61.pisotCantorSet,Not, IsEquidistributedModuloOne,HMul.hMul,HPow.hPow,HAdd.hAddProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous30 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem problem_10_61 (α : ℝ) (hα : IsPisot α) (hα2 : 2 < α) : ∀ ξ ∈ pisotCantorSet α, ¬ IsEquidistributedModuloOne fun n : ℕ => ξ * α ^ (n + 1) := by …Mentions: IsPisot, Bugeaud61.pisotCantorSet, IsEquidistributedModuloOne
- theorem
Bugeaud61.problem_10_61.variants.almost_everyDocumented declaration: almost_every sorry line 100 sourceSource documentation
The hypothesis $\xi \in C(\alpha)$ cannot be dropped: by Koksma's metric theorem [Kok35], for a fixed $\alpha > 1$ the sequence $(\xi \alpha^n)_{n \ge 1}$ is uniformly distributed modulo one for Lebesgue-almost every $\xi$. Problem 10.61 asks a null set of starting points to defeat an almost-everywhere law.
depends on sorry what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Filter.Eventually, IsEquidistributedModuloOne,Nat,HMul.hMul,HPow.hPow,HAdd.hAdd,MeasureTheory.ae,MeasureTheory.Measure,MeasureTheory.MeasureSpace.volumeProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous32 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem problem_10_61.variants.almost_every (α : ℝ) (hα : 1 < α) : ∀ᵐ ξ ∂(MeasureTheory.volume : MeasureTheory.Measure ℝ), IsEquidistributedModuloOne fun n : ℕ => ξ * α ^ (n + 1) := by …Mentions: IsEquidistributedModuloOne
- theorem
Bugeaud61.problem_10_61.variants.covering_criterionsorry line 116 sourcedepends on sorry what this means
Statement uses:
Int,Real,Eq,HPow.hPow,Nat,OfNat.ofNat,HAdd.hAdd,HMul.hMul,LT.lt,Ne,HSub.hSub,abs, Bugeaud61.routeAExponent,Membership.mem,Set, Bugeaud61.pisotCantorSet,Not, IsEquidistributedModuloOneProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous44 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Bugeaud61.problem_10_61.variants.covering_criterion_rangesorry line 131 sourcedepends on sorry what this means
Statement uses:
Int,Real,Eq,HPow.hPow,Nat,OfNat.ofNat,HAdd.hAdd,HMul.hMul,LT.lt,abs,HSub.hSub,Ne,Iff, Bugeaud61.routeAExponent,Real.logbProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous46 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Bugeaud61.problem_10_61.variants.two_add_sqrt_fivesorry line 145 sourcedepends on sorry what this means
Statement uses:
Exists,Real,And,LT.lt,OfNat.ofNat,LE.le,Set,Set.Ioo,HSub.hSub,HAdd.hAdd,Membership.mem, Bugeaud61.pisotCantorSet,Nat,Real.sqrt,Not,Int.fract,HMul.hMul,HPow.hPowProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous52 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Bugeaud61.problem_10_61.variants.two_add_sqrt_threesorry line 158 sourcedepends on sorry what this means
Statement uses:
Real,Membership.mem,Set, Bugeaud61.pisotCantorSet,HAdd.hAdd,OfNat.ofNat,Nat,Real.sqrt,Not, IsEquidistributedModuloOne,HMul.hMul,HPow.hPowProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous30 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Bugeaud61.zero_mem_pisotCantorSetSanity check: $0 \in C(\alpha)$, the point with all digits zero line 167 sourceSource documentation
Sanity check: $0 \in C(\alpha)$, the point with all digits zero.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Membership.mem,Set, Bugeaud61.pisotCantorSet,OfNat.ofNatProof uses:
Exists.intro,Nat,Bool,Eq, Bugeaud61.cantorPoint,Bool.false,of_eq_true,Eq.trans,True,congrFun',congrArg,HMul.hMul,HSub.hSub,tsum,ite,Bool.true,HPow.hPow,Inv.inv,HAdd.hAdd,SummationFilter.unconditionaland 11 more41 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem zero_mem_pisotCantorSet (α : ℝ) : 0 ∈ pisotCantorSet α := …
Mentions: Bugeaud61.pisotCantorSet
- theorem
Bugeaud61.one_mem_pisotCantorSetSanity check: $1 \in C(\alpha)$ for $\alpha > 1$, the point with all digits one, since $\sum_{k \ge 1} \alpha^{-k} = 1 / (\alpha - 1)$ line 175 sourceSource documentation
Sanity check: $1 \in C(\alpha)$ for $\alpha > 1$, the point with all digits one, since $\sum_{k \ge 1} \alpha^{-k} = 1 / (\alpha - 1)$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Membership.mem,Set, Bugeaud61.pisotCantorSetProof uses:
LT.lt.trans,zero_lt_one,Inv.inv,inv_lt_one_of_one_lt₀,Exists.intro,Nat,Bool,Eq, Bugeaud61.cantorPoint,Bool.true,tsum,HMul.hMul,ite,HPow.hPow,HAdd.hAdd,SummationFilter.unconditional,HSub.hSub,Eq.mpr,id,congrFun'and 70 more103 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
theorem one_mem_pisotCantorSet {α : ℝ} (hα : 1 < α) : 1 ∈ pisotCantorSet α := by …Mentions: Bugeaud61.pisotCantorSet