Theorem: approxOrderOf.image_pow_subset_of_coprime
File: Mathlib/NumberTheory/WellApproximable.lean

tactic: rintro - ⟨a, ha, rfl⟩
state_before: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
⊢ (fun y => y ^ m) '' approxOrderOf A n δ ⊆ approxOrderOf A n (↑m * δ)
state_after: case intro.intro
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
⊢ (fun y => y ^ m) a ∈ approxOrderOf A n (↑m * δ)

tactic: obtain ⟨b, hb, hab⟩ := mem_approxOrderOf_iff.mp ha
state_before: case intro.intro
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
⊢ (fun y => y ^ m) a ∈ approxOrderOf A n (↑m * δ)
state_after: case intro.intro.intro.intro
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hb : orderOf b = n
hab : a ∈ ball b δ
⊢ (fun y => y ^ m) a ∈ approxOrderOf A n (↑m * δ)

tactic: replace hb : b ^ m ∈ {u : A | orderOf u = n} := by
  rw [← hb] at hmn ⊢; exact hmn.orderOf_pow
state_before: case intro.intro.intro.intro
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hb : orderOf b = n
hab : a ∈ ball b δ
⊢ (fun y => y ^ m) a ∈ approxOrderOf A n (↑m * δ)
state_after: case intro.intro.intro.intro
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hab : a ∈ ball b δ
hb : b ^ m ∈ {u | orderOf u = n}
⊢ (fun y => y ^ m) a ∈ approxOrderOf A n (↑m * δ)

tactic: apply ball_subset_thickening hb ((m : ℝ) • δ)
state_before: case intro.intro.intro.intro
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hab : a ∈ ball b δ
hb : b ^ m ∈ {u | orderOf u = n}
⊢ (fun y => y ^ m) a ∈ approxOrderOf A n (↑m * δ)
state_after: case intro.intro.intro.intro.a
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hab : a ∈ ball b δ
hb : b ^ m ∈ {u | orderOf u = n}
⊢ (fun y => y ^ m) a ∈ ball (b ^ m) (↑m • δ)

tactic: convert pow_mem_ball hm hab using 1
state_before: case intro.intro.intro.intro.a
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hab : a ∈ ball b δ
hb : b ^ m ∈ {u | orderOf u = n}
⊢ (fun y => y ^ m) a ∈ ball (b ^ m) (↑m • δ)
state_after: case h.e'_5
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hab : a ∈ ball b δ
hb : b ^ m ∈ {u | orderOf u = n}
⊢ ball (b ^ m) (↑m • δ) = ball (b ^ m) (m • δ)

tactic: simp only [nsmul_eq_mul, Algebra.id.smul_eq_mul]
state_before: case h.e'_5
A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hab : a ∈ ball b δ
hb : b ^ m ∈ {u | orderOf u = n}
⊢ ball (b ^ m) (↑m • δ) = ball (b ^ m) (m • δ)
state_after: no goals

tactic: rw [← hb] at hmn ⊢
state_before: A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
hmn : n.Coprime m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hb : orderOf b = n
hab : a ∈ ball b δ
⊢ b ^ m ∈ {u | orderOf u = n}
state_after: A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hmn : (orderOf b).Coprime m
hb : orderOf b = n
hab : a ∈ ball b δ
⊢ b ^ m ∈ {u | orderOf u = orderOf b}

tactic: exact hmn.orderOf_pow
state_before: A : Type u_1
inst✝ : SeminormedCommGroup A
a✝ : A
m n : ℕ
δ : ℝ
hm : 0 < m
a : A
ha : a ∈ approxOrderOf A n δ
b : A
hmn : (orderOf b).Coprime m
hb : orderOf b = n
hab : a ∈ ball b δ
⊢ b ^ m ∈ {u | orderOf u = orderOf b}
state_after: no goals