Theorem: IsExposed.inter
File: Mathlib/Analysis/Convex/Exposed.lean

tactic: rintro ⟨w, hwB, hwC⟩
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B✝ C✝ : Set E
X : Finset E
x : E
inst✝ : ContinuousAdd 𝕜
A B C : Set E
hB : IsExposed 𝕜 A B
hC : IsExposed 𝕜 A C
⊢ IsExposed 𝕜 A (B ∩ C)

tactic: obtain ⟨l₁, rfl⟩ := hB ⟨w, hwB⟩
state_before: case intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B✝ C✝ : Set E
X : Finset E
x : E
inst✝ : ContinuousAdd 𝕜
A B C : Set E
hB : IsExposed 𝕜 A B
hC : IsExposed 𝕜 A C
w : E
hwB : w ∈ B
hwC : w ∈ C
⊢ ∃ l, B ∩ C = {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l y ≤ ↑l x}

tactic: obtain ⟨l₂, rfl⟩ := hC ⟨w, hwC⟩
state_before: case intro.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B C✝ : Set E
X : Finset E
x : E
inst✝ : ContinuousAdd 𝕜
A C : Set E
hC : IsExposed 𝕜 A C
w : E
hwC : w ∈ C
l₁ : E →L[𝕜] 𝕜
hB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
hwB : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
⊢ ∃ l, {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x} ∩ C = {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l y ≤ ↑l x}

tactic: refine' ⟨l₁ + l₂, Subset.antisymm _ _⟩
state_before: case intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B C : Set E
X : Finset E
x : E
inst✝ : ContinuousAdd 𝕜
A : Set E
w : E
l₁ : E →L[𝕜] 𝕜
hB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
hwB : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
l₂ : E →L[𝕜] 𝕜
hC : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
hwC : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
⊢ ∃ l,
    {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x} ∩ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x} =
      {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l y ≤ ↑l x}

tactic: rintro x ⟨hxA, hx⟩
state_before: case intro.intro.intro.intro.refine'_2
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B C : Set E
X : Finset E
x : E
inst✝ : ContinuousAdd 𝕜
A : Set E
w : E
l₁ : E →L[𝕜] 𝕜
hB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
hwB : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
l₂ : E →L[𝕜] 𝕜
hC : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
hwC : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
⊢ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑(l₁ + l₂) y ≤ ↑(l₁ + l₂) x} ⊆
    {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x} ∩ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}

tactic: refine' ⟨⟨hxA, fun y hy => _⟩, hxA, fun y hy => _⟩
state_before: case intro.intro.intro.intro.refine'_2.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B C : Set E
X : Finset E
x✝ : E
inst✝ : ContinuousAdd 𝕜
A : Set E
w : E
l₁ : E →L[𝕜] 𝕜
hB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
hwB : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
l₂ : E →L[𝕜] 𝕜
hC : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
hwC : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
x : E
hxA : x ∈ A
hx : ∀ (y : E), y ∈ A → ↑(l₁ + l₂) y ≤ ↑(l₁ + l₂) x
⊢ x ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x} ∩ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}

tactic: rintro x ⟨⟨hxA, hxB⟩, ⟨-, hxC⟩⟩
state_before: case intro.intro.intro.intro.refine'_1
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B C : Set E
X : Finset E
x : E
inst✝ : ContinuousAdd 𝕜
A : Set E
w : E
l₁ : E →L[𝕜] 𝕜
hB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
hwB : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
l₂ : E →L[𝕜] 𝕜
hC : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
hwC : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
⊢ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x} ∩ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x} ⊆
    {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑(l₁ + l₂) y ≤ ↑(l₁ + l₂) x}

tactic: exact ⟨hxA, fun z hz => add_le_add (hxB z hz) (hxC z hz)⟩
state_before: case intro.intro.intro.intro.refine'_1.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B C : Set E
X : Finset E
x✝ : E
inst✝ : ContinuousAdd 𝕜
A : Set E
w : E
l₁ : E →L[𝕜] 𝕜
hB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
hwB : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
l₂ : E →L[𝕜] 𝕜
hC : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
hwC : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
x : E
hxA : x ∈ A
hxB : ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x
hxC : ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x
⊢ x ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑(l₁ + l₂) y ≤ ↑(l₁ + l₂) x}

tactic: exact
  (add_le_add_iff_right (l₂ x)).1 ((add_le_add (hwB.2 y hy) (hwC.2 x hxA)).trans (hx w hwB.1))
state_before: case intro.intro.intro.intro.refine'_2.intro.refine'_1
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B C : Set E
X : Finset E
x✝ : E
inst✝ : ContinuousAdd 𝕜
A : Set E
w : E
l₁ : E →L[𝕜] 𝕜
hB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
hwB : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
l₂ : E →L[𝕜] 𝕜
hC : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
hwC : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
x : E
hxA : x ∈ A
hx : ∀ (y : E), y ∈ A → ↑(l₁ + l₂) y ≤ ↑(l₁ + l₂) x
y : E
hy : y ∈ A
⊢ ↑l₁ y ≤ ↑l₁ x

tactic: exact
  (add_le_add_iff_left (l₁ x)).1 (le_trans (add_le_add (hwB.2 x hxA) (hwC.2 y hy)) (hx w hwB.1))
state_before: case intro.intro.intro.intro.refine'_2.intro.refine'_2
𝕜 : Type u_1
E : Type u_2
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A✝ B C : Set E
X : Finset E
x✝ : E
inst✝ : ContinuousAdd 𝕜
A : Set E
w : E
l₁ : E →L[𝕜] 𝕜
hB : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
hwB : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₁ y ≤ ↑l₁ x}
l₂ : E →L[𝕜] 𝕜
hC : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
hwC : w ∈ {x | x ∈ A ∧ ∀ (y : E), y ∈ A → ↑l₂ y ≤ ↑l₂ x}
x : E
hxA : x ∈ A
hx : ∀ (y : E), y ∈ A → ↑(l₁ + l₂) y ≤ ↑(l₁ + l₂) x
y : E
hy : y ∈ A
⊢ ↑l₂ y ≤ ↑l₂ x