α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
⊢ MeasurablySeparable (range f) (range g)
by_contra hfg
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
⊢ False
have I : ∀ n x y, ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
    ∃ x' y', x' ∈ cylinder x n ∧ y' ∈ cylinder y n ∧
    ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1)) := by
  intro n x y
  contrapose!
  intro H
  rw [← iUnion_cylinder_update x n, ← iUnion_cylinder_update y n, image_iUnion, image_iUnion]
  refine' MeasurablySeparable.iUnion fun i j => _
  exact H _ _ (update_mem_cylinder _ _ _) (update_mem_cylinder _ _ _)
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
⊢ False
let A :=
  { p : ℕ × (ℕ → ℕ) × (ℕ → ℕ) //
    ¬MeasurablySeparable (f '' cylinder p.2.1 p.1) (g '' cylinder p.2.2 p.1) }
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
this :
  ∀ (p : A),
    ∃ q,
      (↑q).fst = (↑p).fst + 1 ∧
        (↑q).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst ∧ (↑q).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
⊢ False
have : ∀ p : A, ∃ q : A,
    q.1.1 = p.1.1 + 1 ∧ q.1.2.1 ∈ cylinder p.1.2.1 p.1.1 ∧ q.1.2.2 ∈ cylinder p.1.2.2 p.1.1 := by
  rintro ⟨⟨n, x, y⟩, hp⟩
  rcases I n x y hp with ⟨x', y', hx', hy', h'⟩
  exact ⟨⟨⟨n + 1, x', y'⟩, h'⟩, rfl, hx', hy'⟩
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
this :
  ∀ (p : A),
    ∃ q,
      (↑q).fst = (↑p).fst + 1 ∧
        (↑q).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst ∧ (↑q).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
⊢ False
choose F hFn hFx hFy using this
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
⊢ False
let p0 : A := ⟨⟨0, fun _ => 0, fun _ => 0⟩, by simp [hfg]⟩
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
⊢ False
let p : ℕ → A := fun n => (F^[n]) p0
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
⊢ False
have prec : ∀ n, p (n + 1) = F (p n) := fun n => by simp only [iterate_succ', Function.comp]
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
⊢ False
set x : ℕ → ℕ := fun n => (p (n + 1)).1.2.1 n with hx
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
⊢ False
set y : ℕ → ℕ := fun n => (p (n + 1)).1.2.2 n with hy
case intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
⊢ False
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
⊢ False
obtain ⟨u, v, u_open, v_open, xu, yv, huv⟩ :
  ∃ u v : Set α, IsOpen u ∧ IsOpen v ∧ f x ∈ u ∧ g y ∈ v ∧ Disjoint u v := by
  apply t2_separation
  exact disjoint_iff_forall_ne.1 h (mem_range_self _) (mem_range_self _)
case intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
⊢ False
case intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
⊢ False
letI : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
⊢ False
case intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
⊢ False
obtain ⟨εx, εxpos, hεx⟩ : ∃ (εx : ℝ), εx > 0 ∧ Metric.ball x εx ⊆ f ⁻¹' u := by
  apply Metric.mem_nhds_iff.1
  exact hf.continuousAt.preimage_mem_nhds (u_open.mem_nhds xu)
case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
⊢ False
case intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
⊢ False
obtain ⟨εy, εypos, hεy⟩ : ∃ (εy : ℝ), εy > 0 ∧ Metric.ball y εy ⊆ g ⁻¹' v := by
  apply Metric.mem_nhds_iff.1
  exact hg.continuousAt.preimage_mem_nhds (v_open.mem_nhds yv)
case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ False
case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
⊢ False
obtain ⟨n, hn⟩ : ∃ n : ℕ, (1 / 2 : ℝ) ^ n < min εx εy :=
  exists_pow_lt_of_lt_one (lt_min εxpos εypos) (by norm_num)
no goals
case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
B : MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
⊢ False
exact M n B
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
⊢ ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
    ∃ x' y',
      x' ∈ cylinder x n ∧ y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
⊢ ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
intro n x y
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
⊢ (∀ (x' y' : ℕ → ℕ),
      x' ∈ cylinder x n →
        y' ∈ cylinder y n → MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))) →
    MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
⊢ ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
    ∃ x' y',
      x' ∈ cylinder x n ∧ y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
contrapose!
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
H :
  ∀ (x' y' : ℕ → ℕ),
    x' ∈ cylinder x n → y' ∈ cylinder y n → MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
⊢ MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
⊢ (∀ (x' y' : ℕ → ℕ),
      x' ∈ cylinder x n →
        y' ∈ cylinder y n → MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))) →
    MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
intro H
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
H :
  ∀ (x' y' : ℕ → ℕ),
    x' ∈ cylinder x n → y' ∈ cylinder y n → MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
⊢ MeasurablySeparable (⋃ (i : ℕ), f '' cylinder (update x n i) (n + 1))
    (⋃ (i : ℕ), g '' cylinder (update y n i) (n + 1))
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
H :
  ∀ (x' y' : ℕ → ℕ),
    x' ∈ cylinder x n → y' ∈ cylinder y n → MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
⊢ MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
rw [← iUnion_cylinder_update x n, ← iUnion_cylinder_update y n, image_iUnion, image_iUnion]
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
H :
  ∀ (x' y' : ℕ → ℕ),
    x' ∈ cylinder x n → y' ∈ cylinder y n → MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
i j : ℕ
⊢ MeasurablySeparable (f '' cylinder (update x n i) (n + 1)) (g '' cylinder (update y n j) (n + 1))
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
H :
  ∀ (x' y' : ℕ → ℕ),
    x' ∈ cylinder x n → y' ∈ cylinder y n → MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
⊢ MeasurablySeparable (⋃ (i : ℕ), f '' cylinder (update x n i) (n + 1))
    (⋃ (i : ℕ), g '' cylinder (update y n i) (n + 1))
refine' MeasurablySeparable.iUnion fun i j => _
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
n : ℕ
x y : ℕ → ℕ
H :
  ∀ (x' y' : ℕ → ℕ),
    x' ∈ cylinder x n → y' ∈ cylinder y n → MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
i j : ℕ
⊢ MeasurablySeparable (f '' cylinder (update x n i) (n + 1)) (g '' cylinder (update y n j) (n + 1))
exact H _ _ (update_mem_cylinder _ _ _) (update_mem_cylinder _ _ _)
case mk.mk.mk
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
n : ℕ
x y : ℕ → ℕ
hp :
  ¬MeasurablySeparable (f '' cylinder (n, x, y).snd.fst (n, x, y).fst) (g '' cylinder (n, x, y).snd.snd (n, x, y).fst)
⊢ ∃ q,
    (↑q).fst = (↑{ val := (n, x, y), property := hp }).fst + 1 ∧
      (↑q).snd.fst ∈
          cylinder (↑{ val := (n, x, y), property := hp }).snd.fst (↑{ val := (n, x, y), property := hp }).fst ∧
        (↑q).snd.snd ∈
          cylinder (↑{ val := (n, x, y), property := hp }).snd.snd (↑{ val := (n, x, y), property := hp }).fst
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
⊢ ∀ (p : A),
    ∃ q,
      (↑q).fst = (↑p).fst + 1 ∧
        (↑q).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst ∧ (↑q).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
rintro ⟨⟨n, x, y⟩, hp⟩
case mk.mk.mk.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
n : ℕ
x y : ℕ → ℕ
hp :
  ¬MeasurablySeparable (f '' cylinder (n, x, y).snd.fst (n, x, y).fst) (g '' cylinder (n, x, y).snd.snd (n, x, y).fst)
x' y' : ℕ → ℕ
hx' : x' ∈ cylinder x n
hy' : y' ∈ cylinder y n
h' : ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
⊢ ∃ q,
    (↑q).fst = (↑{ val := (n, x, y), property := hp }).fst + 1 ∧
      (↑q).snd.fst ∈
          cylinder (↑{ val := (n, x, y), property := hp }).snd.fst (↑{ val := (n, x, y), property := hp }).fst ∧
        (↑q).snd.snd ∈
          cylinder (↑{ val := (n, x, y), property := hp }).snd.snd (↑{ val := (n, x, y), property := hp }).fst
case mk.mk.mk
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
n : ℕ
x y : ℕ → ℕ
hp :
  ¬MeasurablySeparable (f '' cylinder (n, x, y).snd.fst (n, x, y).fst) (g '' cylinder (n, x, y).snd.snd (n, x, y).fst)
⊢ ∃ q,
    (↑q).fst = (↑{ val := (n, x, y), property := hp }).fst + 1 ∧
      (↑q).snd.fst ∈
          cylinder (↑{ val := (n, x, y), property := hp }).snd.fst (↑{ val := (n, x, y), property := hp }).fst ∧
        (↑q).snd.snd ∈
          cylinder (↑{ val := (n, x, y), property := hp }).snd.snd (↑{ val := (n, x, y), property := hp }).fst
rcases I n x y hp with ⟨x', y', hx', hy', h'⟩
no goals
case mk.mk.mk.intro.intro.intro.intro
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
n : ℕ
x y : ℕ → ℕ
hp :
  ¬MeasurablySeparable (f '' cylinder (n, x, y).snd.fst (n, x, y).fst) (g '' cylinder (n, x, y).snd.snd (n, x, y).fst)
x' y' : ℕ → ℕ
hx' : x' ∈ cylinder x n
hy' : y' ∈ cylinder y n
h' : ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
⊢ ∃ q,
    (↑q).fst = (↑{ val := (n, x, y), property := hp }).fst + 1 ∧
      (↑q).snd.fst ∈
          cylinder (↑{ val := (n, x, y), property := hp }).snd.fst (↑{ val := (n, x, y), property := hp }).fst ∧
        (↑q).snd.snd ∈
          cylinder (↑{ val := (n, x, y), property := hp }).snd.snd (↑{ val := (n, x, y), property := hp }).fst
exact ⟨⟨⟨n + 1, x', y'⟩, h'⟩, rfl, hx', hy'⟩
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
⊢ ¬MeasurablySeparable (f '' cylinder (0, fun x => 0, fun x => 0).snd.fst (0, fun x => 0, fun x => 0).fst)
      (g '' cylinder (0, fun x => 0, fun x => 0).snd.snd (0, fun x => 0, fun x => 0).fst)
simp [hfg]
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
n : ℕ
⊢ p (n + 1) = F (p n)
simp only [iterate_succ', Function.comp]
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
n : ℕ
⊢ (↑(p n)).fst = n
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
⊢ ∀ (n : ℕ), (↑(p n)).fst = n
intro n
case zero
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
⊢ (↑(p Nat.zero)).fst = Nat.zero

case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
n : ℕ
IH : (↑(p n)).fst = n
⊢ (↑(p (Nat.succ n))).fst = Nat.succ n
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
n : ℕ
⊢ (↑(p n)).fst = n
induction' n with n IH
no goals
case zero
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
⊢ (↑(p Nat.zero)).fst = Nat.zero
rfl
no goals
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
n : ℕ
IH : (↑(p n)).fst = n
⊢ (↑(p (Nat.succ n))).fst = Nat.succ n
simp only [prec, hFn, IH]
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m : ℕ
⊢ ∀ (n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
⊢ ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
intro m
case base
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m : ℕ
⊢ Prod.fst (↑(p (m + 1))).snd m = Prod.fst (↑(p (m + 1))).snd m

case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m : ℕ
⊢ ∀ (n : ℕ),
    m + 1 ≤ n →
      Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m →
        Prod.fst (↑(p (n + 1))).snd m = Prod.fst (↑(p (m + 1))).snd m
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m : ℕ
⊢ ∀ (n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
apply Nat.le_induction
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
⊢ Prod.fst (↑(p (n + 1))).snd m = Prod.fst (↑(p (m + 1))).snd m
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m : ℕ
⊢ ∀ (n : ℕ),
    m + 1 ≤ n →
      Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m →
        Prod.fst (↑(p (n + 1))).snd m = Prod.fst (↑(p (m + 1))).snd m
intro n hmn IH
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I✝ :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
I : Prod.fst (↑(F (p n))).snd m = Prod.fst (↑(p n)).snd m
⊢ Prod.fst (↑(p (n + 1))).snd m = Prod.fst (↑(p (m + 1))).snd m
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
⊢ Prod.fst (↑(p (n + 1))).snd m = Prod.fst (↑(p (m + 1))).snd m
have I : (F (p n)).val.snd.fst m = (p n).val.snd.fst m := by
  apply hFx (p n) m
  rw [pn_fst]
  exact hmn
no goals
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I✝ :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
I : Prod.fst (↑(F (p n))).snd m = Prod.fst (↑(p n)).snd m
⊢ Prod.fst (↑(p (n + 1))).snd m = Prod.fst (↑(p (m + 1))).snd m
rw [prec, I, IH]
no goals
case base
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m : ℕ
⊢ Prod.fst (↑(p (m + 1))).snd m = Prod.fst (↑(p (m + 1))).snd m
rfl
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
⊢ m < (↑(p n)).fst
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
⊢ Prod.fst (↑(F (p n))).snd m = Prod.fst (↑(p n)).snd m
apply hFx (p n) m
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
⊢ m < n
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
⊢ m < (↑(p n)).fst
rw [pn_fst]
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
⊢ m < n
exact hmn
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m : ℕ
⊢ ∀ (n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
⊢ ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
intro m
case base
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m : ℕ
⊢ Prod.snd (↑(p (m + 1))).snd m = Prod.snd (↑(p (m + 1))).snd m

case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m : ℕ
⊢ ∀ (n : ℕ),
    m + 1 ≤ n →
      Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m →
        Prod.snd (↑(p (n + 1))).snd m = Prod.snd (↑(p (m + 1))).snd m
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m : ℕ
⊢ ∀ (n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
apply Nat.le_induction
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
⊢ Prod.snd (↑(p (n + 1))).snd m = Prod.snd (↑(p (m + 1))).snd m
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m : ℕ
⊢ ∀ (n : ℕ),
    m + 1 ≤ n →
      Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m →
        Prod.snd (↑(p (n + 1))).snd m = Prod.snd (↑(p (m + 1))).snd m
intro n hmn IH
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I✝ :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
I : Prod.snd (↑(F (p n))).snd m = Prod.snd (↑(p n)).snd m
⊢ Prod.snd (↑(p (n + 1))).snd m = Prod.snd (↑(p (m + 1))).snd m
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
⊢ Prod.snd (↑(p (n + 1))).snd m = Prod.snd (↑(p (m + 1))).snd m
have I : (F (p n)).val.snd.snd m = (p n).val.snd.snd m := by
  apply hFy (p n) m
  rw [pn_fst]
  exact hmn
no goals
case succ
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I✝ :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
I : Prod.snd (↑(F (p n))).snd m = Prod.snd (↑(p n)).snd m
⊢ Prod.snd (↑(p (n + 1))).snd m = Prod.snd (↑(p (m + 1))).snd m
rw [prec, I, IH]
no goals
case base
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m : ℕ
⊢ Prod.snd (↑(p (m + 1))).snd m = Prod.snd (↑(p (m + 1))).snd m
rfl
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
⊢ m < (↑(p n)).fst
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
⊢ Prod.snd (↑(F (p n))).snd m = Prod.snd (↑(p n)).snd m
apply hFy (p n) m
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
⊢ m < n
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
⊢ m < (↑(p n)).fst
rw [pn_fst]
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
m n : ℕ
hmn : m + 1 ≤ n
IH : Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
⊢ m < n
exact hmn
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
⊢ ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
intro n
case h.e'_1.h.e'_3.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ cylinder x n = cylinder (↑(p n)).snd.fst (↑(p n)).fst

case h.e'_1.h.e'_4.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ cylinder y n = cylinder (↑(p n)).snd.snd (↑(p n)).fst
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
convert(p n).2 using 3
case h.e'_1.h.e'_3.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ ∀ (i : ℕ), i < n → x i = Prod.fst (↑(p n)).snd i
case h.e'_1.h.e'_3.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ cylinder x n = cylinder (↑(p n)).snd.fst (↑(p n)).fst
rw [pn_fst, ← mem_cylinder_iff_eq, mem_cylinder_iff]
case h.e'_1.h.e'_3.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n i : ℕ
hi : i < n
⊢ x i = Prod.fst (↑(p n)).snd i
case h.e'_1.h.e'_3.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ ∀ (i : ℕ), i < n → x i = Prod.fst (↑(p n)).snd i
intro i hi
case h.e'_1.h.e'_3.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n i : ℕ
hi : i < n
⊢ (fun n => Prod.fst (↑(p (n + 1))).snd n) i = Prod.fst (↑(p n)).snd i
case h.e'_1.h.e'_3.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n i : ℕ
hi : i < n
⊢ x i = Prod.fst (↑(p n)).snd i
rw [hx]
no goals
case h.e'_1.h.e'_3.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n i : ℕ
hi : i < n
⊢ (fun n => Prod.fst (↑(p (n + 1))).snd n) i = Prod.fst (↑(p n)).snd i
exact (Ix i n hi).symm
case h.e'_1.h.e'_4.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ ∀ (i : ℕ), i < n → y i = Prod.snd (↑(p n)).snd i
case h.e'_1.h.e'_4.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ cylinder y n = cylinder (↑(p n)).snd.snd (↑(p n)).fst
rw [pn_fst, ← mem_cylinder_iff_eq, mem_cylinder_iff]
case h.e'_1.h.e'_4.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n i : ℕ
hi : i < n
⊢ y i = Prod.snd (↑(p n)).snd i
case h.e'_1.h.e'_4.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n : ℕ
⊢ ∀ (i : ℕ), i < n → y i = Prod.snd (↑(p n)).snd i
intro i hi
case h.e'_1.h.e'_4.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n i : ℕ
hi : i < n
⊢ (fun n => Prod.snd (↑(p (n + 1))).snd n) i = Prod.snd (↑(p n)).snd i
case h.e'_1.h.e'_4.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n i : ℕ
hi : i < n
⊢ y i = Prod.snd (↑(p n)).snd i
rw [hy]
no goals
case h.e'_1.h.e'_4.h.e'_4
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
n i : ℕ
hi : i < n
⊢ (fun n => Prod.snd (↑(p (n + 1))).snd n) i = Prod.snd (↑(p n)).snd i
exact (Iy i n hi).symm
case h
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
⊢ f x ≠ g y
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
⊢ ∃ u v, IsOpen u ∧ IsOpen v ∧ f x ∈ u ∧ g y ∈ v ∧ Disjoint u v
apply t2_separation
no goals
case h
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
⊢ f x ≠ g y
exact disjoint_iff_forall_ne.1 h (mem_range_self _) (mem_range_self _)
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
⊢ f ⁻¹' u ∈ 𝓝 x
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
⊢ ∃ εx, εx > 0 ∧ ball x εx ⊆ f ⁻¹' u
apply Metric.mem_nhds_iff.1
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
⊢ f ⁻¹' u ∈ 𝓝 x
exact hf.continuousAt.preimage_mem_nhds (u_open.mem_nhds xu)
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
⊢ g ⁻¹' v ∈ 𝓝 y
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
⊢ ∃ εy, εy > 0 ∧ ball y εy ⊆ g ⁻¹' v
apply Metric.mem_nhds_iff.1
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
⊢ g ⁻¹' v ∈ 𝓝 y
exact hg.continuousAt.preimage_mem_nhds (v_open.mem_nhds yv)
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
⊢ 1 / 2 < 1
norm_num
case refine'_1
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ f '' cylinder x n ⊆ u

case refine'_2
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ Disjoint (g '' cylinder y n) u
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
refine' ⟨u, _, _, u_open.measurableSet⟩
case refine'_1
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ cylinder x n ⊆ f ⁻¹' u
case refine'_1
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ f '' cylinder x n ⊆ u
rw [image_subset_iff]
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ cylinder x n ⊆ ball x εx
case refine'_1
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ cylinder x n ⊆ f ⁻¹' u
apply Subset.trans _ hεx
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
z : ℕ → ℕ
hz : z ∈ cylinder x n
⊢ z ∈ ball x εx
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ cylinder x n ⊆ ball x εx
intro z hz
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
z : ℕ → ℕ
hz : dist z x ≤ (1 / 2) ^ n
⊢ z ∈ ball x εx
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
z : ℕ → ℕ
hz : z ∈ cylinder x n
⊢ z ∈ ball x εx
rw [mem_cylinder_iff_dist_le] at hz
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
z : ℕ → ℕ
hz : dist z x ≤ (1 / 2) ^ n
⊢ z ∈ ball x εx
exact hz.trans_lt (hn.trans_le (min_le_left _ _))
case refine'_2
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ g '' cylinder y n ≤ v
case refine'_2
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ Disjoint (g '' cylinder y n) u
refine' Disjoint.mono_left _ huv.symm
case refine'_2
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ g '' cylinder y n ⊆ v
case refine'_2
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ g '' cylinder y n ≤ v
change g '' cylinder y n ⊆ v
case refine'_2
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ cylinder y n ⊆ g ⁻¹' v
case refine'_2
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ g '' cylinder y n ⊆ v
rw [image_subset_iff]
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ cylinder y n ⊆ ball y εy
case refine'_2
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ cylinder y n ⊆ g ⁻¹' v
apply Subset.trans _ hεy
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
z : ℕ → ℕ
hz : z ∈ cylinder y n
⊢ z ∈ ball y εy
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
⊢ cylinder y n ⊆ ball y εy
intro z hz
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
z : ℕ → ℕ
hz : dist z y ≤ (1 / 2) ^ n
⊢ z ∈ ball y εy
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
z : ℕ → ℕ
hz : z ∈ cylinder y n
⊢ z ∈ ball y εy
rw [mem_cylinder_iff_dist_le] at hz
no goals
α : Type u_1
inst✝³ : TopologicalSpace α
ι : Type ?u.68523
inst✝² : T2Space α
inst✝¹ : MeasurableSpace α
inst✝ : BorelSpace α
f g : (ℕ → ℕ) → α
hf : Continuous f
hg : Continuous g
h : Disjoint (range f) (range g)
hfg : ¬MeasurablySeparable (range f) (range g)
I :
  ∀ (n : ℕ) (x y : ℕ → ℕ),
    ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n) →
      ∃ x' y',
        x' ∈ cylinder x n ∧
          y' ∈ cylinder y n ∧ ¬MeasurablySeparable (f '' cylinder x' (n + 1)) (g '' cylinder y' (n + 1))
A : Type := { p // ¬MeasurablySeparable (f '' cylinder p.snd.fst p.fst) (g '' cylinder p.snd.snd p.fst) }
F : A → A
hFn : ∀ (p : A), (↑(F p)).fst = (↑p).fst + 1
hFx : ∀ (p : A), (↑(F p)).snd.fst ∈ cylinder (↑p).snd.fst (↑p).fst
hFy : ∀ (p : A), (↑(F p)).snd.snd ∈ cylinder (↑p).snd.snd (↑p).fst
p0 : A :=
  { val := (0, fun x => 0, fun x => 0),
    property := (_ : ¬MeasurablySeparable (f '' cylinder (fun x => 0) 0) (g '' cylinder (fun x => 0) 0)) }
p : ℕ → A := fun n => (F^[n]) p0
prec : ∀ (n : ℕ), p (n + 1) = F (p n)
pn_fst : ∀ (n : ℕ), (↑(p n)).fst = n
Ix : ∀ (m n : ℕ), m + 1 ≤ n → Prod.fst (↑(p n)).snd m = Prod.fst (↑(p (m + 1))).snd m
Iy : ∀ (m n : ℕ), m + 1 ≤ n → Prod.snd (↑(p n)).snd m = Prod.snd (↑(p (m + 1))).snd m
x : ℕ → ℕ := fun n => Prod.fst (↑(p (n + 1))).snd n
hx : x = fun n => Prod.fst (↑(p (n + 1))).snd n
y : ℕ → ℕ := fun n => Prod.snd (↑(p (n + 1))).snd n
hy : y = fun n => Prod.snd (↑(p (n + 1))).snd n
M : ∀ (n : ℕ), ¬MeasurablySeparable (f '' cylinder x n) (g '' cylinder y n)
u v : Set α
u_open : IsOpen u
v_open : IsOpen v
xu : f x ∈ u
yv : g y ∈ v
huv : Disjoint u v
this : MetricSpace (ℕ → ℕ) := metricSpaceNatNat
εx : ℝ
εxpos : εx > 0
hεx : ball x εx ⊆ f ⁻¹' u
εy : ℝ
εypos : εy > 0
hεy : ball y εy ⊆ g ⁻¹' v
n : ℕ
hn : (1 / 2) ^ n < min εx εy
z : ℕ → ℕ
hz : dist z y ≤ (1 / 2) ^ n
⊢ z ∈ ball y εy
exact hz.trans_lt (hn.trans_le (min_le_right _ _))