Theorem: Convex.strictConvex'
File: Mathlib/Analysis/Convex/Topology.lean

tactic: refine' strictConvex_iff_openSegment_subset.2 _
state_before: ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
⊢ StrictConvex 𝕜 s

tactic: intro x hx y hy hne
state_before: ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
⊢ Set.Pairwise s fun x y => openSegment 𝕜 x y ⊆ interior s

tactic: by_cases hx' : x ∈ interior s
state_before: ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
x : E
hx : x ∈ s
y : E
hy : y ∈ s
hne : x ≠ y
⊢ openSegment 𝕜 x y ⊆ interior s

tactic: by_cases hy' : y ∈ interior s
state_before: case neg
ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
x : E
hx : x ∈ s
y : E
hy : y ∈ s
hne : x ≠ y
hx' : ¬x ∈ interior s
⊢ openSegment 𝕜 x y ⊆ interior s

tactic: rcases h ⟨hx, hx'⟩ ⟨hy, hy'⟩ hne with ⟨c, hc⟩
state_before: case neg
ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
x : E
hx : x ∈ s
y : E
hy : y ∈ s
hne : x ≠ y
hx' : ¬x ∈ interior s
hy' : ¬y ∈ interior s
⊢ openSegment 𝕜 x y ⊆ interior s

tactic: refine' (openSegment_subset_union x y ⟨c, rfl⟩).trans (insert_subset.2 ⟨hc, union_subset _ _⟩)
state_before: case neg.intro
ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
x : E
hx : x ∈ s
y : E
hy : y ∈ s
hne : x ≠ y
hx' : ¬x ∈ interior s
hy' : ¬y ∈ interior s
c : 𝕜
hc : ↑(lineMap x y) c ∈ interior s
⊢ openSegment 𝕜 x y ⊆ interior s

tactic: exacts [hs.openSegment_self_interior_subset_interior hx hc,
  hs.openSegment_interior_self_subset_interior hc hy]
state_before: case neg.intro.refine'_1
ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
x : E
hx : x ∈ s
y : E
hy : y ∈ s
hne : x ≠ y
hx' : ¬x ∈ interior s
hy' : ¬y ∈ interior s
c : 𝕜
hc : ↑(lineMap x y) c ∈ interior s
⊢ openSegment 𝕜 x (↑(lineMap x y) c) ⊆ interior s

case neg.intro.refine'_2
ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
x : E
hx : x ∈ s
y : E
hy : y ∈ s
hne : x ≠ y
hx' : ¬x ∈ interior s
hy' : ¬y ∈ interior s
c : 𝕜
hc : ↑(lineMap x y) c ∈ interior s
⊢ openSegment 𝕜 (↑(lineMap x y) c) y ⊆ interior s

tactic: exact hs.openSegment_interior_self_subset_interior hx' hy
state_before: case pos
ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
x : E
hx : x ∈ s
y : E
hy : y ∈ s
hne : x ≠ y
hx' : x ∈ interior s
⊢ openSegment 𝕜 x y ⊆ interior s

tactic: exact hs.openSegment_self_interior_subset_interior hx hy'
state_before: case pos
ι : Type ?u.145602
𝕜 : Type u_2
E : Type u_1
inst✝⁵ : LinearOrderedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : Module 𝕜 E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
s : Set E
hs : Convex 𝕜 s
h : Set.Pairwise (s \ interior s) fun x y => ∃ c, ↑(lineMap x y) c ∈ interior s
x : E
hx : x ∈ s
y : E
hy : y ∈ s
hne : x ≠ y
hx' : ¬x ∈ interior s
hy' : y ∈ interior s
⊢ openSegment 𝕜 x y ⊆ interior s