-- Module: Mathlib.Topology.Algebra.IsUniformGroup.Basic
Goal:
G : Type u
inst : Group G
inst_1 : TopologicalSpace G
inst_2 : IsTopologicalGroup G
inst_3 : FirstCountableTopology G
N : Subgroup G
inst_4 : N.Normal
inst_5 : CompleteSpace G
this_1 : UniformSpace (G ⧸ N) := IsTopologicalGroup.rightUniformSpace (G ⧸ N)
this_2 : UniformSpace G := IsTopologicalGroup.rightUniformSpace G
this : IsCountablyGenerated.{u} (α := (G ⧸ N) × G ⧸ N) (𝓤 (G ⧸ N))
u : ℕ → Set G
hu : HasAntitoneBasis (𝓝 1) u
u_mul : ∀ (n : ℕ), u (n + 1) * u (n + 1) ⊆ u n
hv : HasBasis.{u, 1} (α := G ⧸ N) (𝓝 1) (fun (x : ℕ) ↦ True) fun (x : ℕ) ↦ mk '' u x
v_anti : Antitone.{0, u} (β := Set (G ⧸ N)) fun (x : ℕ) ↦ mk '' u x
x : ℕ → G ⧸ N
hx : CauchySeq x
key₀ :
  ∀ (i j : ℕ),
    ∃ (M : ℕ),
      j < M ∧
        ∀ (a b : ℕ), M ≤ a → M ≤ b → ∀ (g : G), x b = (↑g : G ⧸ N) → ∃ (g' : G), g / g' ∈ u i ∧ x a = (↑g' : G ⧸ N)
φ : ℕ → ℕ :=
  fun (n : ℕ) ↦
    Nat.recOn (motive := fun (x : ℕ) ↦ ℕ) n
      (Classical.choose (p := fun (x_1 : ℕ) ↦
        0 < x_1 ∧
          ∀ (a b : ℕ),
            x_1 ≤ a → x_1 ≤ b → ∀ (g : G), x b = (↑g : G ⧸ N) → ∃ (g' : G), g / g' ∈ u 0 ∧ x a = (↑g' : G ⧸ N))
        ⋯)
      fun (k yk : ℕ) ↦
      Classical.choose (p := fun (x_1 : ℕ) ↦
        yk < x_1 ∧
          ∀ (a b : ℕ),
            x_1 ≤ a → x_1 ≤ b → ∀ (g : G), x b = (↑g : G ⧸ N) → ∃ (g' : G), g / g' ∈ u (k + 1) ∧ x a = (↑g' : G ⧸ N))
        ⋯
hφ :
  ∀ (n : ℕ),
    φ n < φ (n + 1) ∧
      ∀ (a b : ℕ),
        φ (n + 1) ≤ a →
          φ (n + 1) ≤ b → ∀ (g : G), x b = (↑g : G ⧸ N) → ∃ (g' : G), g / g' ∈ u (n + 1) ∧ x a = (↑g' : G ⧸ N)
x' : (n : ℕ) → (g : G) ×' x (φ (n + 1)) = (↑g : G ⧸ N) :=
  fun (n : ℕ) ↦
    Nat.recOn (motive := fun (x_1 : ℕ) ↦ (g : G) ×' x (φ (x_1 + 1)) = (↑g : G ⧸ N)) n
      (PSigma.mk (β := fun (g : G) ↦ x (φ (Nat.zero + 1)) = (↑g : G ⧸ N))
        (Classical.choose (p := fun (x_1 : G) ↦ (↑x_1 : G ⧸ N) = x (φ 1)) ⋯) ⋯)
      fun (k : ℕ) (hk : (g : G) ×' x (φ (k + 1)) = (↑g : G ⧸ N)) ↦
      PSigma.mk (β := fun (g : G) ↦ x (φ (k.succ + 1)) = (↑g : G ⧸ N))
        (Classical.choose (p := fun (x_1 : G) ↦
          hk.fst (β := fun (g : G) ↦ x (φ (k + 1)) = (↑g : G ⧸ N)) / x_1 ∈ u (k + 1) ∧
            x (φ (k + 1 + 1)) = (↑x_1 : G ⧸ N))
          ⋯)
        ⋯
hx' :
  ∀ (n : ℕ),
    (x' n).fst (β := fun (g : G) ↦ x (φ (n + 1)) = (↑g : G ⧸ N)) /
        PSigma.fst (β := fun (g : G) ↦ x (φ (n + 1 + 1)) = (↑g : G ⧸ N))
          (x' (n + 1) : (g : G) ×' x (φ (n + 1 + 1)) = (↑g : G ⧸ N)) ∈
      u (n + 1)
h𝓤G : (𝓤 G).HasBasis (fun (x : ℕ) ↦ True) fun (i : ℕ) ↦ {x : G × G | x.2 / x.1 ∈ u i}
simp :
  ∀ (i : ℕ),
    ∃ (N_1 : ℕ),
      ∀ n ≥ N_1,
        (x' N_1).fst (β := fun (g : G) ↦ x (φ (N_1 + 1)) = (↑g : G ⧸ N)) /
            (x' n).fst (β := fun (g : G) ↦ x (φ (n + 1)) = (↑g : G ⧸ N)) ∈
          u i
⊢ ∀ (i : ℕ),
    True →
      ∃ (N_1 : ℕ),
        ∀ n ≥ N_1,
          Membership.mem (γ := SetRel G G) {x : G × G | x.2 / x.1 ∈ u i}
            ((x' n).fst (β := fun (g : G) ↦ x (φ (n + 1)) = (↑g : G ⧸ N)),
              (x' N_1).fst (β := fun (g : G) ↦ x (φ (N_1 + 1)) = (↑g : G ⧸ N)))

Tactic:
simp only [mem_setOf_eq, forall_true_left]

Premises used: forall_true_left, Set.mem_setOf_eq