Documentation

LeanAPAP.Prereqs.Bohr.Basic

structure BohrSet (G : Type u_1) [AddCommGroup G] :
Type u_1

A Bohr set B on an additive group G is a finite set of characters of G, called the frequencies, along with an extended non-negative real number for each frequency ψ, called the width of B at ψ.

A Bohr set B is thought of as the set {x | ∀ ψ ∈ B.frequencies, ‖1 - ψ x‖ ≤ B.width ψ}. This is the chord-length convention. The arc-length convention would instead be {x | ∀ ψ ∈ B.frequencies, |arg (ψ x)| ≤ B.width ψ}.

Note that this set does not uniquely determine B (in particular, it does not uniquely determine either B.frequencies or B.width).

Instances For
    theorem BohrSet.ext {G : Type u_1} {inst✝ : AddCommGroup G} {x y : BohrSet G} (frequencies : x.frequencies = y.frequencies) (ewidth : x.ewidth = y.ewidth) :
    x = y
    theorem BohrSet.ext_iff {G : Type u_1} {inst✝ : AddCommGroup G} {x y : BohrSet G} :
    def BohrSet.width {G : Type u_1} [AddCommGroup G] (B : BohrSet G) (ψ : AddChar G ) :
    Equations
    Instances For
      theorem BohrSet.width_def {G : Type u_1} [AddCommGroup G] {B : BohrSet G} {ψ : AddChar G } :
      B.width ψ = (B.ewidth ψ).toNNReal
      theorem BohrSet.coe_width {G : Type u_1} [AddCommGroup G] {B : BohrSet G} {ψ : AddChar G } ( : ψ B.frequencies) :
      (B.width ψ) = B.ewidth ψ
      theorem BohrSet.ewidth_eq_top_iff {G : Type u_1} [AddCommGroup G] {B : BohrSet G} {ψ : AddChar G } :
      ψB.frequencies B.ewidth ψ =
      theorem BohrSet.ewidth_eq_top_of_not_mem_frequencies {G : Type u_1} [AddCommGroup G] {B : BohrSet G} {ψ : AddChar G } :
      ψB.frequenciesB.ewidth ψ =

      Alias of the forward direction of BohrSet.ewidth_eq_top_iff.

      theorem BohrSet.width_eq_zero_of_not_mem_frequencies {G : Type u_1} [AddCommGroup G] {B : BohrSet G} {ψ : AddChar G } ( : ψB.frequencies) :
      B.width ψ = 0
      noncomputable def BohrSet.ofEwidth {G : Type u_1} [AddCommGroup G] [Finite G] (ewidth : AddChar G ENNReal) :

      Construct a Bohr set on a finite group given an extended width function.

      Equations
      Instances For
        noncomputable def BohrSet.ofWidth {G : Type u_1} [AddCommGroup G] (width : AddChar G NNReal) (freq : Finset (AddChar G )) :

        Construct a Bohr set on a finite group given a width function and a frequency set.

        Equations
        Instances For
          theorem BohrSet.ext_width {G : Type u_1} [AddCommGroup G] {B B' : BohrSet G} (freq : B.frequencies = B'.frequencies) (width : ψB.frequencies, B.width ψ = B'.width ψ) :
          B = B'
          theorem BohrSet.ext_width_iff {G : Type u_1} [AddCommGroup G] {B B' : BohrSet G} :
          B = B' B.frequencies = B'.frequencies ψB.frequencies, B.width ψ = B'.width ψ

          Coercion, membership #

          def BohrSet.chordSet {G : Type u_1} [AddCommGroup G] (B : BohrSet G) :
          Set G

          The set corresponding to a Bohr set B is {x | ∀ ψ ∈ B.frequencies, ‖1 - ψ x‖ ≤ B.width ψ}. This is the chord-length convention. The arc-length convention would instead be {x | ∀ ψ ∈ B.frequencies, |arg (ψ x)| ≤ B.width ψ}.

          Note that this set does not uniquely determine B.

          Equations
          Instances For
            @[reducible]
            def BohrSet.Elem {G : Type u_1} [AddCommGroup G] (B : BohrSet G) :
            Type u_1

            Given the Bohr set B, B.Elem is the Type of elements of B.

            Equations
            • B = B
            Instances For
              instance BohrSet.instCoe {G : Type u_1} [AddCommGroup G] :
              Coe (BohrSet G) (Set G)
              Equations
              theorem BohrSet.mem_chordSet_iff_nnnorm_ewidth {G : Type u_1} [AddCommGroup G] {B : BohrSet G} {x : G} :
              x B ∀ (ψ : AddChar G ), 1 - ψ x‖₊ B.ewidth ψ
              theorem BohrSet.mem_chordSet_iff_nnnorm_width {G : Type u_1} [AddCommGroup G] {B : BohrSet G} {x : G} :
              x B ∀ ⦃ψ : AddChar G ⦄, ψ B.frequencies1 - ψ x‖₊ B.width ψ
              theorem BohrSet.mem_chordSet_iff_norm_width {G : Type u_1} [AddCommGroup G] {B : BohrSet G} {x : G} :
              x B ∀ ⦃ψ : AddChar G ⦄, ψ B.frequencies1 - ψ x (B.width ψ)
              @[simp]
              theorem BohrSet.coeSort_coe {G : Type u_1} [AddCommGroup G] (B : BohrSet G) :
              B = B
              @[simp]
              theorem BohrSet.zero_mem {G : Type u_1} [AddCommGroup G] {B : BohrSet G} :
              0 B
              @[simp]
              theorem BohrSet.neg_mem {G : Type u_1} [AddCommGroup G] {B : BohrSet G} {x : G} [Finite G] :
              -x B x B

              Lattice structure #

              noncomputable instance BohrSet.instMax {G : Type u_1} [AddCommGroup G] :
              Equations
              • One or more equations did not get rendered due to their size.
              noncomputable instance BohrSet.instMin {G : Type u_1} [AddCommGroup G] :
              Equations
              • One or more equations did not get rendered due to their size.
              noncomputable instance BohrSet.instBotOfFinite {G : Type u_1} [AddCommGroup G] [Finite G] :
              Equations
              noncomputable instance BohrSet.instTop {G : Type u_1} [AddCommGroup G] :
              Equations
              theorem BohrSet.le_iff_ewidth {G : Type u_1} [AddCommGroup G] {B₁ B₂ : BohrSet G} :
              B₁ B₂ ∀ ⦃ψ : AddChar G ⦄, B₁.ewidth ψ B₂.ewidth ψ
              theorem BohrSet.frequencies_anti {G : Type u_1} [AddCommGroup G] {B₁ B₂ : BohrSet G} (h : B₁ B₂) :
              theorem BohrSet.le_iff_width {G : Type u_1} [AddCommGroup G] {B₁ B₂ : BohrSet G} :
              B₁ B₂ B₂.frequencies B₁.frequencies ∀ ⦃ψ : AddChar G ⦄, ψ B₂.frequenciesB₁.width ψ B₂.width ψ
              theorem BohrSet.width_le_width {G : Type u_1} [AddCommGroup G] {B₁ B₂ : BohrSet G} (h : B₁ B₂) {ψ : AddChar G } ( : ψ B₂.frequencies) :
              B₁.width ψ B₂.width ψ
              noncomputable instance BohrSet.instSupSetOfFinite {G : Type u_1} [AddCommGroup G] [Finite G] :
              Equations
              • One or more equations did not get rendered due to their size.
              theorem BohrSet.iInf_lt_top {α : Type u_2} {β : Type u_3} [CompleteLattice β] {S : Set α} {f : αβ} :
              iS, f i < iS, f i <
              noncomputable instance BohrSet.instInfSetOfFinite {G : Type u_1} [AddCommGroup G] [Finite G] :
              Equations
              • One or more equations did not get rendered due to their size.

              Width, frequencies, rank #

              def BohrSet.rank {G : Type u_1} [AddCommGroup G] (B : BohrSet G) :

              The rank of a Bohr set is the number of characters which have finite width.

              Equations
              Instances For
                @[simp]

                Dilation #

                theorem BohrSet.nnreal_smul_lt_top {x : NNReal} {y : ENNReal} (hy : y < ) :
                x y <
                theorem BohrSet.nnreal_smul_lt_top_iff {x : NNReal} {y : ENNReal} (hx : x 0) :
                x y < y <
                theorem BohrSet.nnreal_smul_ne_top {x : NNReal} {y : ENNReal} (hy : y ) :
                x y
                theorem BohrSet.nnreal_smul_ne_top_iff {x : NNReal} {y : ENNReal} (hx : x 0) :
                noncomputable instance BohrSet.instSMul {G : Type u_1} [AddCommGroup G] :
                Equations
                • One or more equations did not get rendered due to their size.
                @[simp]
                theorem BohrSet.frequencies_smul {G : Type u_1} [AddCommGroup G] (ρ : ) (B : BohrSet G) :
                @[simp]
                theorem BohrSet.rank_smul {G : Type u_1} [AddCommGroup G] (ρ : ) (B : BohrSet G) :
                (ρ B).rank = B.rank
                @[simp]
                theorem BohrSet.ewidth_smul {G : Type u_1} [AddCommGroup G] (ρ : ) (B : BohrSet G) (ψ : AddChar G ) :
                (ρ B).ewidth ψ = if ψ B.frequencies then (Real.nnabs ρ) * B.ewidth ψ else
                @[simp]
                theorem BohrSet.width_smul_apply {G : Type u_1} [AddCommGroup G] (ρ : ) (B : BohrSet G) (ψ : AddChar G ) :
                (ρ B).width ψ = Real.nnabs ρ * B.width ψ
                theorem BohrSet.width_smul {G : Type u_1} [AddCommGroup G] (ρ : ) (B : BohrSet G) :
                noncomputable instance BohrSet.instMulAction {G : Type u_1} [AddCommGroup G] :
                Equations
                theorem BohrSet.eq_zero_of_ewidth_eq_zero {G : Type u_1} [AddCommGroup G] {B : BohrSet G} [Finite G] (h : B.ewidth = 0) :
                B = {0}
                @[simp]
                theorem BohrSet.AddChar.nnnorm_apply {α : Type u_2} {G : Type u_3} [NormedDivisionRing α] [AddLeftCancelMonoid G] [Finite G] (ψ : AddChar G α) (x : G) :
                ψ x‖₊ = 1
                theorem BohrSet.eq_top_of_two_le_width {G : Type u_1} [AddCommGroup G] {B : BohrSet G} [Finite G] (h : ∀ (ψ : AddChar G ), 2 B.width ψ) :
                B = Set.univ
                theorem BohrSet.chordSet_mono {G : Type u_1} [AddCommGroup G] {B₁ B₂ : BohrSet G} (h : B₁ B₂) :
                B₁ B₂
                theorem BohrSet.add_subset_of_ewidth {G : Type u_1} [AddCommGroup G] [Finite G] {B₁ B₂ B₃ : BohrSet G} (h : B₁.ewidth + B₂.ewidth B₃.ewidth) :
                B₁ + B₂ B₃
                theorem BohrSet.smul_add_smul_subset {G : Type u_1} [AddCommGroup G] [Finite G] {B : BohrSet G} {ρ₁ ρ₂ : } (hρ₁ : 0 ρ₁) (hρ₂ : 0 ρ₂) :
                ↑(ρ₁ B) + ↑(ρ₂ B) ↑((ρ₁ + ρ₂) B)