@@ -29,6 +29,7 @@ and constants `a, b, c : ℝ` such that
2929* for all `x : G`, `h (f x) ≥ b * h x - c`,
3030* for all `B : ℝ`, there are only finitely many `x : G` such that `h x ≤ B`, and
3131* `0 ≤ a < b`,
32+
3233 then `G` is finitely generated. See `Group.fg_of_descent` / `AddGroup.fg_of_descent`.
3334
3435We use this to deduce a more specific version when `G` is commutative and `f` is the `n`th power
@@ -94,13 +95,15 @@ If `G` is a commutative group and `n : ℕ`, `h : G → ℝ` satisfy
9495* for all `g x : G`, `h x ≤ a * h (g * x) + c g`,
9596* for all `x : G`, `h (x ^ n) ≥ b * h x - c₀`,
9697* for all `B : ℝ`, there are only finitely many `x : G` such that `h x ≤ B`,
98+
9799 where `0 ≤ a < b` and `c₀` are real numbers, `c : G → ℝ`, then `G` is finitely generated.
98100-/
99101@ [to_additive /-- If `G` is a commutative additive group and `n : ℕ`, `h : G → ℝ` satisfy
100102* `G / n • G` is finite,
101103* for all `g x : G`, `h x ≤ a * h (g + x) + c g`,
102104* for all `x : G`, `h (n • x) ≥ b * h x - c₀`,
103105* for all `B : ℝ`, there are only finitely many `x : G` such that `h x ≤ B`,
106+
104107 where `0 ≤ a < b` and `c₀` are real numbers, `c : G → ℝ`, then `G` is finitely generated. -/ ]
105108theorem CommGroup.fg_of_descent {G : Type *} [CommGroup G] {n : ℕ} {h : G → ℝ} {a b c₀ : ℝ}
106109 {c : G → ℝ} (ha : 0 ≤ a) (H₀ : a < b) (H₁ : (powMonoidHom (α := G) n).range.FiniteIndex)
@@ -129,13 +132,15 @@ If `G` is a commutative group and `n : ℕ`, `h : G → ℝ` satisfy
129132* `0 ≤ h x` for all `x : G`,
130133* there is `C : ℝ` such that for all `x y : G`, `|h (x * y) + h(x / y) - 2 * (h x + h y)| ≤ C`,
131134* for all `B : ℝ`, there are only finitely many `x : G` such that `h x ≤ B`,
135+
132136 then `G` is finitely generated.
133137-/
134138@ [to_additive /-- If `G` is a commutative additive group and `n : ℕ`, `h : G → ℝ` satisfy
135139* `G / 2 • G` is finite,
136140* `0 ≤ h x` for all `x : G`,
137141* there is `C : ℝ` such that for all `x y : G`, `|h (x + y) + h(x - y) - 2 * (h x + h y)| ≤ C`,
138142* for all `B : ℝ`, there are only finitely many `x : G` such that `h x ≤ B`,
143+
139144 then `G` is finitely generated. -/ ]
140145theorem CommGroup.fg_of_descent' {G : Type *} [CommGroup G] {h : G → ℝ} {C : ℝ}
141146 (H₁ : (powMonoidHom (α := G) 2 ).range.FiniteIndex) (H₂ : ∀ x, 0 ≤ h x)
0 commit comments