Theorem: AmpleSet.of_one_lt_codim
File: Mathlib/Analysis/Convex/AmpleSet.lean

tactic: rw [E.connectedComponentIn_eq_self_of_one_lt_codim hcodim hx, eq_univ_iff_forall]
state_before: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
⊢ (convexHull ℝ) (connectedComponentIn (↑E)ᶜ x) = univ
state_after: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
⊢ ∀ (x : F), x ∈ (convexHull ℝ) (↑E)ᶜ

tactic: intro y
state_before: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
⊢ ∀ (x : F), x ∈ (convexHull ℝ) (↑E)ᶜ
state_after: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
⊢ y ∈ (convexHull ℝ) (↑E)ᶜ

tactic: by_cases h : y ∈ E
state_before: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
⊢ y ∈ (convexHull ℝ) (↑E)ᶜ
state_after: case pos
F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
h : y ∈ E
⊢ y ∈ (convexHull ℝ) (↑E)ᶜ

case neg
F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
h : y ∉ E
⊢ y ∈ (convexHull ℝ) (↑E)ᶜ

tactic: obtain ⟨z, hz⟩ : ∃ z, z ∉ E := by
  rw [← not_forall, ← Submodule.eq_top_iff']
  rintro rfl
  simp [rank_zero_iff.2 inferInstance] at hcodim
state_before: case pos
F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
h : y ∈ E
⊢ y ∈ (convexHull ℝ) (↑E)ᶜ
state_after: case pos.intro
F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
h : y ∈ E
z : F
hz : z ∉ E
⊢ y ∈ (convexHull ℝ) (↑E)ᶜ

tactic: refine segment_subset_convexHull ?_ ?_ (mem_segment_sub_add y z) <;>
  simpa [sub_eq_add_neg, Submodule.add_mem_iff_right _ h]
state_before: case pos.intro
F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
h : y ∈ E
z : F
hz : z ∉ E
⊢ y ∈ (convexHull ℝ) (↑E)ᶜ
state_after: no goals

tactic: rw [← not_forall, ← Submodule.eq_top_iff']
state_before: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
h : y ∈ E
⊢ ∃ z, z ∉ E
state_after: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
h : y ∈ E
⊢ ¬E = ⊤

tactic: rintro rfl
state_before: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
h : y ∈ E
⊢ ¬E = ⊤
state_after: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E : Type u_2
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
x y : F
hcodim : 1 < Module.rank ℝ (F ⧸ ⊤)
hx : x ∈ (↑⊤)ᶜ
h : y ∈ ⊤
⊢ False

tactic: simp [rank_zero_iff.2 inferInstance] at hcodim
state_before: F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E : Type u_2
inst✝⁴ : AddCommGroup E
inst✝³ : Module ℝ E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
x y : F
hcodim : 1 < Module.rank ℝ (F ⧸ ⊤)
hx : x ∈ (↑⊤)ᶜ
h : y ∈ ⊤
⊢ False
state_after: no goals

tactic: exact subset_convexHull ℝ (Eᶜ : Set F) h
state_before: case neg
F : Type u_1
inst✝⁷ : AddCommGroup F
inst✝⁶ : Module ℝ F
inst✝⁵ : TopologicalSpace F
E✝ : Type u_2
inst✝⁴ : AddCommGroup E✝
inst✝³ : Module ℝ E✝
inst✝² : TopologicalSpace E✝
inst✝¹ : TopologicalAddGroup F
inst✝ : ContinuousSMul ℝ F
E : Submodule ℝ F
hcodim : 1 < Module.rank ℝ (F ⧸ E)
x : F
hx : x ∈ (↑E)ᶜ
y : F
h : y ∉ E
⊢ y ∈ (convexHull ℝ) (↑E)ᶜ
state_after: no goals