-- Lean 4 proof step from Mathlib.Analysis.AbsoluteValue.Equivalence (goal)
Goal:
R : Type u_1
S : Type u_2
inst : Field R
inst_1 : Field S
inst_2 : LinearOrder S
inst_3 : TopologicalSpace S
inst_4 : IsStrictOrderedRing S
inst_5 : Archimedean S
inst_6 : OrderTopology S
ι : Type u_3
inst_7 : Finite ι
v : ι → AbsoluteValue R S
w : AbsoluteValue R S
a b : R
i : ι
ha : LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) a : S)
haj : ∀ (j : ι), j ≠ i → LT.lt.{u_2} (α := S) ((v j : (a : R) → S) a : S) (1 : S)
haw : LT.lt.{u_2} (α := S) (1 : S) ((w : (a : R) → S) a : S)
hb : LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) b : S)
hbw : LT.lt.{u_2} (α := S) ((w : (a : R) → S) b : S) (1 : S)
let let₁ let₂ :
  ∃ (k : R),
    LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) k : S) ∧
      (∀ (j : ι), j ≠ i → LT.lt.{u_2} (α := S) ((v j : (a : R) → S) k : S) (1 : S)) ∧
        LT.lt.{u_2} (α := S) ((w : (a : R) → S) k : S) (1 : S)
let₃ :
  let c : ℕ → R := fun (n : ℕ) ↦ 1 / (1 + a⁻¹ ^ n) * b;
  ∀
    (hcᵢ :
      Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((v i : (a : R) → S) (c n) : S)) atTop
        (𝓝 ((v i : (a : R) → S) b) : Filter S)),
    ∃ (k : R),
      LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) k : S) ∧
        (∀ (j : ι), j ≠ i → LT.lt.{u_2} (α := S) ((v j : (a : R) → S) k : S) (1 : S)) ∧
          LT.lt.{u_2} (α := S) ((w : (a : R) → S) k : S) (1 : S)
let₄ :
  let c : ℕ → R := fun (n : ℕ) ↦ 1 / (1 + a⁻¹ ^ n) * b;
  ∀
    (hcᵢ :
      Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((v i : (a : R) → S) (c n) : S)) atTop
        (𝓝 ((v i : (a : R) → S) b) : Filter S))
    (hcⱼ : ∀ (j : ι) (hj : j ≠ i), Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ (v j : (a : R) → S) (c n)) atTop (𝓝 0)),
    ∃ (k : R),
      LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) k : S) ∧
        (∀ (j : ι), j ≠ i → LT.lt.{u_2} (α := S) ((v j : (a : R) → S) k : S) (1 : S)) ∧
          LT.lt.{u_2} (α := S) ((w : (a : R) → S) k : S) (1 : S)
let₅ :
  let c : ℕ → R := fun (n : ℕ) ↦ 1 / (1 + a⁻¹ ^ n) * b;
  ∀
    (hcᵢ :
      Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((v i : (a : R) → S) (c n) : S)) atTop
        (𝓝 ((v i : (a : R) → S) b) : Filter S))
    (hcⱼ : ∀ (j : ι) (hj : j ≠ i), Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ (v j : (a : R) → S) (c n)) atTop (𝓝 0))
    (hcₙ :
      Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((w : (a : R) → S) (c n) : S)) atTop
        (𝓝 ((w : (a : R) → S) b) : Filter S)),
    ∃ (k : R),
      LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) k : S) ∧
        (∀ (j : ι), j ≠ i → LT.lt.{u_2} (α := S) ((v j : (a : R) → S) k : S) (1 : S)) ∧
          LT.lt.{u_2} (α := S) ((w : (a : R) → S) k : S) (1 : S)
let₆ :
  let c : ℕ → R := fun (n : ℕ) ↦ 1 / (1 + a⁻¹ ^ n) * b;
  ∀
    (hcᵢ :
      Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((v i : (a : R) → S) (c n) : S)) atTop
        (𝓝 ((v i : (a : R) → S) b) : Filter S))
    (hcₙ :
      Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((w : (a : R) → S) (c n) : S)) atTop
        (𝓝 ((w : (a : R) → S) b) : Filter S))
    (hcⱼ :
      ∀ (j : ι) (hj : j ≠ i) (s : Set S),
        Membership.mem (γ := Set (Set S)) {s : Set S | ∃ (a : S), s = Set.Ioi a ∨ s = Set.Iio a} s →
          0 ∈ s → ∃ (a : ℕ), ∀ b ≥ a, Membership.mem (α := S) s ((v j : (a : R) → S) (c b) : S)),
    ∃ (k : R),
      LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) k : S) ∧
        (∀ (j : ι), j ≠ i → LT.lt.{u_2} (α := S) ((v j : (a : R) → S) k : S) (1 : S)) ∧
          LT.lt.{u_2} (α := S) ((w : (a : R) → S) k : S) (1 : S)
let₇ :
  let c : ℕ → R := fun (n : ℕ) ↦ 1 / (1 + a⁻¹ ^ n) * b;
  ∀
    (hcᵢ :
      Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((v i : (a : R) → S) (c n) : S)) atTop
        (𝓝 ((v i : (a : R) → S) b) : Filter S))
    (hcₙ :
      Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((w : (a : R) → S) (c n) : S)) atTop
        (𝓝 ((w : (a : R) → S) b) : Filter S))
    (hcⱼ :
      ∀ (j : ι) (hj : j ≠ i) (s : Set S),
        Membership.mem (γ := Set (Set S)) {s : Set S | ∃ (a : S), s = Set.Ioi a ∨ s = Set.Iio a} s →
          0 ∈ s → ∃ (a : ℕ), ∀ b ≥ a, Membership.mem (α := S) s ((v j : (a : R) → S) (c b) : S))
    (r₁ : ℕ) (hr₁ : ∀ b ≥ r₁, LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) (c b) : S)),
    ∃ (k : R),
      LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) k : S) ∧
        (∀ (j : ι), j ≠ i → LT.lt.{u_2} (α := S) ((v j : (a : R) → S) k : S) (1 : S)) ∧
          LT.lt.{u_2} (α := S) ((w : (a : R) → S) k : S) (1 : S)
⊢ ∃ (k : R),
    LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) k : S) ∧
      (∀ (j : ι), j ≠ i → LT.lt.{u_2} (α := S) ((v j : (a : R) → S) k : S) (1 : S)) ∧
        LT.lt.{u_2} (α := S) ((w : (a : R) → S) k : S) (1 : S)
have let₈ : let c : ℕ → R := fun (n : ℕ) ↦ 1 / (1 + a⁻¹ ^ n) * b;
∀
  (hcᵢ :
    Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((v i : (a : R) → S) (c n) : S)) atTop
      (𝓝 ((v i : (a : R) → S) b) : Filter S))
  (hcₙ :
    Tendsto.{0, u_2} (β := S) (fun (n : ℕ) ↦ ((w : (a : R) → S) (c n) : S)) atTop (𝓝 ((w : (a : R) → S) b) : Filter S))
  (hcⱼ :
    ∀ (j : ι) (hj : j ≠ i) (s : Set S),
      Membership.mem (γ := Set (Set S)) {s : Set S | ∃ (a : S), s = Set.Ioi a ∨ s = Set.Iio a} s →
        0 ∈ s → ∃ (a : ℕ), ∀ b ≥ a, Membership.mem (α := S) s ((v j : (a : R) → S) (c b) : S))
  (r₁ : ℕ) (hr₁ : ∀ b ≥ r₁, LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) (c b) : S))
  (rₙ : (j : ι) → (hj : j ≠ i) → ℕ)
  (hrₙ :
    ∀ (j : ι) (hj : j ≠ i),
      ∀ b ≥ rₙ j hj, Membership.mem.{u_2, u_2} (α := S) (γ := Set S) (Set.Iio 1) ((v j : (a : R) → S) (c b) : S)),
  ∃ (k : R),
    LT.lt.{u_2} (α := S) (1 : S) ((v i : (a : R) → S) k : S) ∧
      (∀ (j : ι), j ≠ i → LT.lt.{u_2} (α := S) ((v j : (a : R) → S) k : S) (1 : S)) ∧
        LT.lt.{u_2} (α := S) ((w : (a : R) → S) k : S) (1 : S)
Tactic: classical
  let c : ℕ → R := fun n ↦ 1 / (1 + a⁻¹ ^ n) * b
  have hcᵢ : Tendsto (fun n ↦ v i (c n)) atTop (𝓝 (v i b)) := by
    have : v i a⁻¹ < 1 := map_inv₀ (v i) a ▸ inv_lt_one_of_one_lt₀ ha
    simpa [c] using (tendsto_div_one_add_pow_nhds_one this).mul_const (v i b)
  have hcⱼ (j : ι) (hj : j ≠ i) : atTop.Tendsto (fun n ↦ v j (c n)) (𝓝 0) := by
    have : 1 < v j a⁻¹ := map_inv₀ (v j) _ ▸
      (one_lt_inv₀ <| (v j).pos fun h ↦ by linarith [map_zero (v _) ▸ h ▸ ha]).2 (haj j hj)
    simpa [c] using (tendsto_div_one_add_pow_nhds_zero this).mul_const _
  have hcₙ : atTop.Tendsto (fun n ↦ w (c n)) (𝓝 (w b)) := by
    have : w a⁻¹ < 1 := map_inv₀ w _ ▸ inv_lt_one_of_one_lt₀ haw
    simpa [c] using (tendsto_div_one_add_pow_nhds_one this).mul_const (w b)
  simp_rw +instances [OrderTopology.topology_eq_generate_intervals,
    TopologicalSpace.tendsto_nhds_generateFrom_iff, mem_atTop_sets, Set.mem_preimage] at hcⱼ
  choose r₁ hr₁ using Filter.eventually_atTop.1 <| Filter.Tendsto.eventually_const_lt hb hcᵢ
  choose rₙ hrₙ using fun j hj ↦ hcⱼ j hj (.Iio 1) (by simpa using ⟨1, .inr rfl⟩) (by simp)
  choose rN hrN using Filter.eventually_atTop.1 <| Filter.Tendsto.eventually_lt_const hbw hcₙ
  have := Fintype.ofFinite ι
  let r := max (Finset.univ.sup fun j ↦ if h : j = i then r₁ else rₙ j h) rN
  refine ⟨c r, hr₁ r ?_, fun j hj ↦ ?_, ?_⟩
  · exact le_max_iff.2 <| .inl <|
      Finset.le_sup_dite_pos (p := fun j ↦ j = i) (f := fun _ _ ↦ r₁) (Finset.mem_univ _) rfl
  · exact hrₙ j hj _ <| le_max_iff.2 <| .inl <|
      Finset.le_sup_dite_neg (fun j ↦ j = i) (Finset.mem_univ j) _
  · exact hrN _ <| le_max_iff.2 (.inr le_rfl)