Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit e3be70d

Browse files
jlpacaChrisHughes24
authored andcommitted
lemmas about powers of elements (#1688)
* feat(algebra/archimedean): add alternative version of exists_int_pow_near - also add docstrings * feat(analysis/normed_space/basic): additional inequality lemmas - that there exists elements with large and small norms in a nondiscrete normed field. * doc(algebra/archimedean): edit docstrings * Apply suggestions from code review Co-Authored-By: Chris Hughes <33847686+ChrisHughes24@users.noreply.github.com>
1 parent b0520a3 commit e3be70d

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

src/algebra/archimedean.lean

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ let ⟨n, h⟩ := archimedean.arch x hy0 in
3232
... < 1 + n • (y - 1) : by rw add_comm; exact lt_add_one _
3333
... ≤ y ^ n : one_add_sub_mul_le_pow (le_of_lt hy1) _⟩
3434

35+
/-- Every x greater than 1 is between two successive natural-number
36+
powers of another y greater than one. -/
3537
lemma exists_nat_pow_near {x : α} {y : α} (hx : 1 < x) (hy : 1 < y) :
3638
∃ n : ℕ, y ^ n ≤ x ∧ x < y ^ (n + 1) :=
3739
have h : ∃ n : ℕ, x < y ^ n, from pow_unbounded_of_one_lt _ hy,
@@ -67,6 +69,9 @@ end linear_ordered_ring
6769

6870
section linear_ordered_field
6971

72+
/-- Every positive x is between two successive integer powers of
73+
another y greater than one. This is the same as `exists_int_pow_near'`,
74+
but with ≤ and < the other way around. -/
7075
lemma exists_int_pow_near [discrete_linear_ordered_field α] [archimedean α]
7176
{x : α} {y : α} (hx : 0 < x) (hy : 1 < y) :
7277
∃ n : ℤ, y ^ n ≤ x ∧ x < y ^ (n + 1) :=
@@ -82,6 +87,19 @@ let ⟨M, hM⟩ := pow_unbounded_of_one_lt x hy in
8287
let ⟨n, hn₁, hn₂⟩ := int.exists_greatest_of_bdd hb he in
8388
⟨n, hn₁, lt_of_not_ge (λ hge, not_le_of_gt (int.lt_succ _) (hn₂ _ hge))⟩
8489

90+
/-- Every positive x is between two successive integer powers of
91+
another y greater than one. This is the same as `exists_int_pow_near`,
92+
but with ≤ and < the other way around. -/
93+
lemma exists_int_pow_near' [discrete_linear_ordered_field α] [archimedean α]
94+
{x : α} {y : α} (hx : 0 < x) (hy : 1 < y) :
95+
∃ n : ℤ, y ^ n < x ∧ x ≤ y ^ (n + 1) :=
96+
let ⟨m, hle, hlt⟩ := exists_int_pow_near (inv_pos hx) hy in
97+
have hyp : 0 < y, from lt_trans (discrete_linear_ordered_field.zero_lt_one α) hy,
98+
⟨-(m+1),
99+
by rwa [fpow_neg, one_div_eq_inv, inv_lt (fpow_pos_of_pos hyp _) hx],
100+
by rwa [neg_add, neg_add_cancel_right, fpow_neg, one_div_eq_inv,
101+
le_inv hx (fpow_pos_of_pos hyp _)]⟩
102+
85103
variables [linear_ordered_field α] [floor_ring α]
86104

87105
lemma sub_floor_div_mul_nonneg (x : α) {y : α} (hy : 0 < y) :

src/analysis/normed_space/basic.lean

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,20 @@ begin
398398
{ simp [inv_lt_one hy] }
399399
end
400400

401+
lemma exists_lt_norm (α : Type*) [nondiscrete_normed_field α]
402+
(r : ℝ) : ∃ x : α, r < ∥x∥ :=
403+
let ⟨w, hw⟩ := exists_one_lt_norm α in
404+
let ⟨n, hn⟩ := pow_unbounded_of_one_lt r hw in
405+
⟨w^n, by rwa norm_pow⟩
406+
407+
lemma exists_norm_lt (α : Type*) [nondiscrete_normed_field α]
408+
{r : ℝ} (hr : 0 < r) : ∃ x : α, 0 < ∥x∥ ∧ ∥x∥ < r :=
409+
let ⟨w, hw⟩ := exists_one_lt_norm α in
410+
let ⟨n, hle, hlt⟩ := exists_int_pow_near' hr hw in
411+
⟨w^n, by { rw norm_fpow; exact fpow_pos_of_pos (lt_trans zero_lt_one hw) _},
412+
by rwa norm_fpow⟩
413+
414+
401415
instance : normed_field ℝ :=
402416
{ norm := λ x, abs x,
403417
dist_eq := assume x y, rfl,

0 commit comments

Comments
 (0)