Freiman homomorphisms #
In this file, we define Freiman homomorphisms and isomorphism.
An n
-Freiman homomorphism from A
to B
is a function f : α → β
such that f '' A ⊆ B
and
f x₁ * ... * f xₙ = f y₁ * ... * f yₙ
for all x₁, ..., xₙ, y₁, ..., yₙ ∈ A
such that
x₁ * ... * xₙ = y₁ * ... * yₙ
. In particular, any MulHom
is a Freiman homomorphism.
Note a 0
- or 1
-Freiman homomorphism is simply a map, thus a 2
-Freiman homomorphism is the
first interesting case (and the most common). As n
increases further, the property of being
an n
-Freiman homomorphism between abelian groups becomes increasingly stronger.
An n
-Freiman isomorphism from A
to B
is a function f : α → β
bijective between A
and B
such that f x₁ * ... * f xₙ = f y₁ * ... * f yₙ ↔ x₁ * ... * xₙ = y₁ * ... * yₙ
for all
x₁, ..., xₙ, y₁, ..., yₙ ∈ A
. In particular, any MulEquiv
is a Freiman isomorphism.
They are of interest in additive combinatorics.
Main declarations #
IsMulFreimanHom
: Predicate for a function to be a multiplicative Freiman homomorphism.IsAddFreimanHom
: Predicate for a function to be an additive Freiman homomorphism.IsMulFreimanIso
: Predicate for a function to be a multiplicative Freiman isomorphism.IsAddFreimanIso
: Predicate for a function to be an additive Freiman isomorphism.
Main results #
isMulFreimanHom_two
: Characterisation of2
-Freiman homomorphisms.IsMulFreimanHom.mono
: Ifm ≤ n
andf
is ann
-Freiman homomorphism, then it is also anm
-Freiman homomorphism.
Implementation notes #
In the context of combinatorics, we are interested in Freiman homomorphisms over sets which are not
necessarily closed under addition/multiplication. This means we must parametrize them with a set in
an AddMonoid
/Monoid
instead of the AddMonoid
/Monoid
itself.
References #
Yufei Zhao, 18.225: Graph Theory and Additive Combinatorics
TODO #
MonoidHomClass.isMulFreimanHom
could be relaxed toMulHom.toFreimanHom
by proving(s.map f).prod = (t.map f).prod
directly by induction instead of going throughf s.prod
.- Affine maps are Freiman homs.
An additive n
-Freiman homomorphism from a set A
to a set B
is a map which preserves sums
of n
elements.
- mapsTo : Set.MapsTo f A B
- map_sum_eq_map_sum : ∀ ⦃s t : Multiset α⦄, (∀ ⦃x : α⦄, x ∈ s → x ∈ A) → (∀ ⦃x : α⦄, x ∈ t → x ∈ A) → Multiset.card s = n → Multiset.card t = n → s.sum = t.sum → (Multiset.map f s).sum = (Multiset.map f t).sum
An additive
n
-Freiman homomorphism preserves sums ofn
elements.
Instances For
An n
-Freiman homomorphism from a set A
to a set B
is a map which preserves products of n
elements.
- mapsTo : Set.MapsTo f A B
- map_prod_eq_map_prod : ∀ ⦃s t : Multiset α⦄, (∀ ⦃x : α⦄, x ∈ s → x ∈ A) → (∀ ⦃x : α⦄, x ∈ t → x ∈ A) → Multiset.card s = n → Multiset.card t = n → s.prod = t.prod → (Multiset.map f s).prod = (Multiset.map f t).prod
An
n
-Freiman homomorphism preserves products ofn
elements.
Instances For
An additive n
-Freiman homomorphism from a set A
to a set B
is a bijective map which
preserves sums of n
elements.
- bijOn : Set.BijOn f A B
- map_sum_eq_map_sum : ∀ ⦃s t : Multiset α⦄, (∀ ⦃x : α⦄, x ∈ s → x ∈ A) → (∀ ⦃x : α⦄, x ∈ t → x ∈ A) → Multiset.card s = n → Multiset.card t = n → ((Multiset.map f s).sum = (Multiset.map f t).sum ↔ s.sum = t.sum)
An additive
n
-Freiman homomorphism preserves sums ofn
elements.
Instances For
An n
-Freiman homomorphism from a set A
to a set B
is a map which preserves products of n
elements.
- bijOn : Set.BijOn f A B
- map_prod_eq_map_prod : ∀ ⦃s t : Multiset α⦄, (∀ ⦃x : α⦄, x ∈ s → x ∈ A) → (∀ ⦃x : α⦄, x ∈ t → x ∈ A) → Multiset.card s = n → Multiset.card t = n → ((Multiset.map f s).prod = (Multiset.map f t).prod ↔ s.prod = t.prod)
An
n
-Freiman homomorphism preserves products ofn
elements.
Instances For
Characterisation of 2
-Freiman homomorphisms.
Characterisation of 2
-Freiman homomorphisms.
Characterisation of 2
-Freiman homs.
Characterisation of 2
-Freiman isomorphisms.
No wrap-around principle.
The first k + 1
elements of Fin (n + 1)
are m
-Freiman isomorphic to the first k + 1
elements
of ℕ
assuming there is no wrap-around.
No wrap-around principle.
The first k
elements of Fin (n + 1)
are m
-Freiman isomorphic to the first k
elements of ℕ
assuming there is no wrap-around.