/- Copyright 2025 The Formal Conjectures Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -/ import FormalConjecturesUtil

Equidistributed Sequences

Corollary 4.2 of Chapter 1 states that the sequence $(x^n), n = 1, 2, ... ,$ is equidistributed modulo 1 for almost all x > 1. And a little bit further down: "one does not know whether sequences such as $(e^n)$, $(π^n)$, or even $((\frac 3 2)^n)$" are equidistributed modulo 1 or not.

References:

namespace Equidistribution open scoped Topology

A point x is an accumulation point of a sequence s_0, s_1, ... if any neighbourhood of x contains a point of the sequence distinct from x.

def IsAccumulationPoint (x : ) (s : ) : Prop := x closure (Set.range s \ {x})

If a point x is an accumulation point of a sequence s_0, s_1, ... then there is a subsequence of s that tends to x

def declaration uses 'sorry'isAccumulationPoint_iff_exists_subsequence_tendsto (x : ) (s : ) (hx : IsAccumulationPoint x s) : (u : ), StrictMono u Filter.atTop.Tendsto (s u) (𝓝 x) := x:s: hx:IsAccumulationPoint x s u, StrictMono u Filter.Tendsto (s u) Filter.atTop (𝓝 x) All goals completed! 🐙

The sequence (3/2)^n is equidistributed modulo 1.

@[category research open, AMS 11] theorem declaration uses 'sorry'isEquidistributedModuloOne_three_halves_pow : IsEquidistributedModuloOne (fun n => (3 / 2 : )^n) := IsEquidistributedModuloOne fun n => (3 / 2) ^ n All goals completed! 🐙

For any transcendental number x, the sequence x * (3 / 2) ^ n is equidistributed modulo 1.

@[category research open, AMS 11] theorem declaration uses 'sorry'isEquidistributedModuloOne_transcendental_three_halves_pow (x : ) (hx : Transcendental x) : IsEquidistributedModuloOne (fun n x * (3 / 2 : ) ^ n) := x:hx:Transcendental xIsEquidistributedModuloOne fun n => x * (3 / 2) ^ n All goals completed! 🐙

The sequence (3/2)^n has infinitely many accumulation points modulo 1.

@[category research solved, AMS 11] theorem declaration uses 'sorry'isAccumulationPoint_three_halves_pow_infinite : {x | IsAccumulationPoint x (fun n => Int.fract <| (3 / 2 : )^n)}.Infinite := {x | IsAccumulationPoint x fun n => Int.fract ((3 / 2) ^ n)}.Infinite All goals completed! 🐙

Find an accumulation point of the sequence (3/2)^n modulo 1.

@[category research open, AMS 11] theorem declaration uses 'sorry'isAccumulationPoint_three_halves_pow : IsAccumulationPoint answer(sorry) (fun n => Int.fract <| (3 / 2 : )^n) := IsAccumulationPoint sorry fun n => Int.fract ((3 / 2) ^ n) All goals completed! 🐙

There is an accumulation point of the sequence (3/2)^n modulo 1.

@[category test, AMS 11] theorem declaration uses 'sorry'isAccumulationPoint_three_halves_pow_exists : p, (IsAccumulationPoint p (fun n => Int.fract <| (3 / 2 : )^n)) := p, IsAccumulationPoint p fun n => Int.fract ((3 / 2) ^ n) All goals completed! 🐙 end Equidistribution