Theorem: isPathConnected_compl_of_isPathConnected_compl_zero
File: Mathlib/Analysis/Convex/Topology.lean

tactic: rw [isPathConnected_iff] at hpc ⊢
state_before: ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : IsPathConnected {0}ᶜ
⊢ IsPathConnected (↑q)ᶜ
state_after: ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
⊢ (↑q)ᶜ.Nonempty ∧ ∀ x ∈ (↑q)ᶜ, ∀ y ∈ (↑q)ᶜ, JoinedIn (↑q)ᶜ x y

tactic: constructor
state_before: ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
⊢ (↑q)ᶜ.Nonempty ∧ ∀ x ∈ (↑q)ᶜ, ∀ y ∈ (↑q)ᶜ, JoinedIn (↑q)ᶜ x y
state_after: case left
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
⊢ (↑q)ᶜ.Nonempty

case right
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
⊢ ∀ x ∈ (↑q)ᶜ, ∀ y ∈ (↑q)ᶜ, JoinedIn (↑q)ᶜ x y

tactic: rcases hpc.1 with ⟨a, ha⟩
state_before: case left
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
⊢ (↑q)ᶜ.Nonempty
state_after: case left.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
a : ↥p
ha : a ∈ {0}ᶜ
⊢ (↑q)ᶜ.Nonempty

tactic: exact ⟨a, mt (Submodule.eq_zero_of_coe_mem_of_disjoint hpq.disjoint) ha⟩
state_before: case left.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
a : ↥p
ha : a ∈ {0}ᶜ
⊢ (↑q)ᶜ.Nonempty
state_after: no goals

tactic: intro x hx y hy
state_before: case right
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
⊢ ∀ x ∈ (↑q)ᶜ, ∀ y ∈ (↑q)ᶜ, JoinedIn (↑q)ᶜ x y
state_after: case right
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
⊢ JoinedIn (↑q)ᶜ x y

tactic: have : π hpq x ≠ 0 ∧ π hpq y ≠ 0 := by
  constructor <;> intro h <;> rw [Submodule.linearProjOfIsCompl_apply_eq_zero_iff hpq] at h <;>
    [exact hx h; exact hy h]
state_before: case right
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
⊢ JoinedIn (↑q)ᶜ x y
state_after: case right
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
⊢ JoinedIn (↑q)ᶜ x y

tactic: rcases hpc.2 (π hpq x) this.1 (π hpq y) this.2 with ⟨γ₁, hγ₁⟩
state_before: case right
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
⊢ JoinedIn (↑q)ᶜ x y
state_after: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
⊢ JoinedIn (↑q)ᶜ x y

tactic: let γ₂ := PathConnectedSpace.somePath (π hpq.symm x) (π hpq.symm y)
state_before: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
⊢ JoinedIn (↑q)ᶜ x y
state_after: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
⊢ JoinedIn (↑q)ᶜ x y

tactic: let γ₁' : Path (_ : E) _ := γ₁.map continuous_subtype_val
state_before: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
⊢ JoinedIn (↑q)ᶜ x y
state_after: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
⊢ JoinedIn (↑q)ᶜ x y

tactic: let γ₂' : Path (_ : E) _ := γ₂.map continuous_subtype_val
state_before: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
⊢ JoinedIn (↑q)ᶜ x y
state_after: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
⊢ JoinedIn (↑q)ᶜ x y

tactic: refine ⟨(γ₁'.add γ₂').cast (Submodule.linear_proj_add_linearProjOfIsCompl_eq_self hpq x).symm
  (Submodule.linear_proj_add_linearProjOfIsCompl_eq_self hpq y).symm, fun t ↦ ?_⟩
state_before: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
⊢ JoinedIn (↑q)ᶜ x y
state_after: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
t : ↑unitInterval
⊢ ((γ₁'.add γ₂').cast ⋯ ⋯) t ∈ (↑q)ᶜ

tactic: rw [Path.cast_coe, Path.add_apply]
state_before: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
t : ↑unitInterval
⊢ ((γ₁'.add γ₂').cast ⋯ ⋯) t ∈ (↑q)ᶜ
state_after: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
t : ↑unitInterval
⊢ γ₁' t + γ₂' t ∈ (↑q)ᶜ

tactic: change γ₁ t + (γ₂ t : E) ∉ q
state_before: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
t : ↑unitInterval
⊢ γ₁' t + γ₂' t ∈ (↑q)ᶜ
state_after: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
t : ↑unitInterval
⊢ ↑(γ₁ t) + ↑(γ₂ t) ∉ q

tactic: rw [← Submodule.linearProjOfIsCompl_apply_eq_zero_iff hpq, LinearMap.map_add,
  Submodule.linearProjOfIsCompl_apply_right, add_zero,
  Submodule.linearProjOfIsCompl_apply_eq_zero_iff]
state_before: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
t : ↑unitInterval
⊢ ↑(γ₁ t) + ↑(γ₂ t) ∉ q
state_after: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
t : ↑unitInterval
⊢ ↑(γ₁ t) ∉ q

tactic: exact mt (Submodule.eq_zero_of_coe_mem_of_disjoint hpq.disjoint) (hγ₁ t)
state_before: case right.intro
ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
this : (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
γ₁ : Path ((p.linearProjOfIsCompl q hpq) x) ((p.linearProjOfIsCompl q hpq) y)
hγ₁ : ∀ (t : ↑unitInterval), γ₁ t ∈ {0}ᶜ
γ₂ : Path ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y) :=
  PathConnectedSpace.somePath ((q.linearProjOfIsCompl p ⋯) x) ((q.linearProjOfIsCompl p ⋯) y)
γ₁' : Path ↑((p.linearProjOfIsCompl q hpq) x) ↑((p.linearProjOfIsCompl q hpq) y) := γ₁.map ⋯
γ₂' : Path ↑((q.linearProjOfIsCompl p ⋯) x) ↑((q.linearProjOfIsCompl p ⋯) y) := γ₂.map ⋯
t : ↑unitInterval
⊢ ↑(γ₁ t) ∉ q
state_after: no goals

tactic: constructor <;> intro h <;> rw [Submodule.linearProjOfIsCompl_apply_eq_zero_iff hpq] at h <;>
  [exact hx h; exact hy h]
state_before: ι : Type u_1
𝕜 : Type u_2
E✝ : Type u_3
E : Type u_4
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousSMul ℝ E
p q : Submodule ℝ E
hpq : IsCompl p q
hpc : {0}ᶜ.Nonempty ∧ ∀ x ∈ {0}ᶜ, ∀ y ∈ {0}ᶜ, JoinedIn {0}ᶜ x y
x : E
hx : x ∈ (↑q)ᶜ
y : E
hy : y ∈ (↑q)ᶜ
⊢ (p.linearProjOfIsCompl q hpq) x ≠ 0 ∧ (p.linearProjOfIsCompl q hpq) y ≠ 0
state_after: no goals