Documentation

Mathlib.Combinatorics.Additive.ApproximateSubgroup

Approximate subgroups #

This file defines approximate subgroups of a group, namely symmetric sets A such that A * A can be covered by a small number of translates of A.

Main results #

Approximate subgroups are a central concept in additive combinatorics, as a natural weakening and flexible substitute of genuine subgroups. As such, they share numerous properties with subgroups:

Approximate subgroups are close qualitatively and quantitatively to other concepts in additive combinatorics:

It can be readily confirmed that approximate subgroups are a weakening of subgroups:

structure IsApproximateAddSubgroup {G : Type u_2} [AddGroup G] (K : โ„) (A : Set G) :

An approximate subgroup in a group is a symmetric set A containing the identity and such that A + A can be covered by a small number of translates of A.

In practice, we will take K fixed and A large but finite.

Instances For
    structure IsApproximateSubgroup {G : Type u_1} [Group G] (K : โ„) (A : Set G) :

    An approximate subgroup in a group is a symmetric set A containing the identity and such that A * A can be covered by a small number of translates of A.

    In practice, we will take K fixed and A large but finite.

    Instances For
      theorem IsApproximateSubgroup.mono {G : Type u_1} [Group G] {A : Set G} {K L : โ„} (hKL : K โ‰ค L) (hA : IsApproximateSubgroup K A) :
      theorem IsApproximateSubgroup.card_pow_le {G : Type u_1} [Group G] {K : โ„} [DecidableEq G] {A : Finset G} (hA : IsApproximateSubgroup K โ†‘A) {n : โ„•} :
      โ†‘(A ^ n).card โ‰ค K ^ (n - 1) * โ†‘A.card
      theorem IsApproximateAddSubgroup.card_nsmul_le {G : Type u_1} [AddGroup G] {K : โ„} [DecidableEq G] {A : Finset G} (hA : IsApproximateAddSubgroup K โ†‘A) {n : โ„•} :
      โ†‘(n โ€ข A).card โ‰ค K ^ (n - 1) * โ†‘A.card
      theorem IsApproximateSubgroup.card_mul_self_le {G : Type u_1} [Group G] {K : โ„} [DecidableEq G] {A : Finset G} (hA : IsApproximateSubgroup K โ†‘A) :
      โ†‘(A * A).card โ‰ค K * โ†‘A.card
      theorem IsApproximateAddSubgroup.card_add_self_le {G : Type u_1} [AddGroup G] {K : โ„} [DecidableEq G] {A : Finset G} (hA : IsApproximateAddSubgroup K โ†‘A) :
      โ†‘(A + A).card โ‰ค K * โ†‘A.card
      theorem IsApproximateSubgroup.image {G : Type u_1} [Group G] {A : Set G} {K : โ„} {F : Type u_2} {H : Type u_3} [Group H] [FunLike F G H] [MonoidHomClass F G H] (f : F) (hA : IsApproximateSubgroup K A) :
      IsApproximateSubgroup K (โ‡‘f '' A)
      theorem IsApproximateAddSubgroup.image {G : Type u_1} [AddGroup G] {A : Set G} {K : โ„} {F : Type u_2} {H : Type u_3} [AddGroup H] [FunLike F G H] [AddMonoidHomClass F G H] (f : F) (hA : IsApproximateAddSubgroup K A) :
      theorem IsApproximateSubgroup.subgroup {G : Type u_1} [Group G] {S : Type u_2} [SetLike S G] [SubgroupClass S G] {H : S} :
      theorem IsApproximateSubgroup.of_small_tripling {G : Type u_1} [Group G] {K : โ„} [DecidableEq G] {A : Finset G} (hAโ‚ : 1 โˆˆ A) (hAsymm : Aโปยน = A) (hA : โ†‘(A ^ 3).card โ‰ค K * โ†‘A.card) :
      IsApproximateSubgroup (K ^ 3) (โ†‘A ^ 2)
      theorem IsApproximateAddSubgroup.of_small_tripling {G : Type u_1} [AddGroup G] {K : โ„} [DecidableEq G] {A : Finset G} (hAโ‚ : 0 โˆˆ A) (hAsymm : -A = A) (hA : โ†‘(3 โ€ข A).card โ‰ค K * โ†‘A.card) :
      theorem IsApproximateSubgroup.pow_inter_pow_covBySMul_sq_inter_sq {G : Type u_1} [Group G] {A B : Set G} {K L : โ„} {m n : โ„•} (hA : IsApproximateSubgroup K A) (hB : IsApproximateSubgroup L B) (hm : 2 โ‰ค m) (hn : 2 โ‰ค n) :
      CovBySMul G (K ^ (m - 1) * L ^ (n - 1)) (A ^ m โˆฉ B ^ n) (A ^ 2 โˆฉ B ^ 2)
      theorem IsApproximateSubgroup.pow_inter_pow {G : Type u_1} [Group G] {A B : Set G} {K L : โ„} {m n : โ„•} (hA : IsApproximateSubgroup K A) (hB : IsApproximateSubgroup L B) (hm : 2 โ‰ค m) (hn : 2 โ‰ค n) :
      IsApproximateSubgroup (K ^ (2 * m - 1) * L ^ (2 * n - 1)) (A ^ m โˆฉ B ^ n)
      theorem IsApproximateAddSubgroup.nsmul_inter_nsmul {G : Type u_1} [AddGroup G] {A B : Set G} {K L : โ„} {m n : โ„•} (hA : IsApproximateAddSubgroup K A) (hB : IsApproximateAddSubgroup L B) (hm : 2 โ‰ค m) (hn : 2 โ‰ค n) :
      IsApproximateAddSubgroup (K ^ (2 * m - 1) * L ^ (2 * n - 1)) (m โ€ข A โˆฉ n โ€ข B)
      @[simp]
      theorem isApproximateSubgroup_one {G : Type u_1} [Group G] {A : Set G} :
      IsApproximateSubgroup 1 A โ†” โˆƒ (H : Subgroup G), โ†‘H = A

      A 1-approximate subgroup is the same thing as a subgroup.

      @[simp]
      theorem isApproximateAddSubgroup_zero {G : Type u_1} [AddGroup G] {A : Set G} :
      IsApproximateAddSubgroup 1 A โ†” โˆƒ (H : AddSubgroup G), โ†‘H = A

      A 1-approximate subgroup is the same thing as a subgroup.