Theorem: ProperCone.hyperplane_separation
File: Mathlib/Analysis/Convex/Cone/Proper.lean

tactic: simp_rw [mem_map, PointedCone.mem_closure, PointedCone.coe_map, coe_coe,
  mem_closure_iff_seq_limit, mem_image, SetLike.mem_coe, mem_coe, mem_dual,
  adjoint_inner_right, forall_exists_index, and_imp]
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
⊢ b ∈ map f K → ∀ (y : F), (adjoint f) y ∈ K.dual → 0 ≤ ⟪y, b⟫_ℝ
state_after: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
⊢ ∀ (x : ℕ → F),
    (∀ (n : ℕ), ∃ x_1 ∈ K, f x_1 = x n) →
      Tendsto x atTop (nhds b) → ∀ (y : F), (∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ) → 0 ≤ ⟪y, b⟫_ℝ

tactic: rintro seq hmem htends y hinner
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
⊢ ∀ (x : ℕ → F),
    (∀ (n : ℕ), ∃ x_1 ∈ K, f x_1 = x n) →
      Tendsto x atTop (nhds b) → ∀ (y : F), (∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ) → 0 ≤ ⟪y, b⟫_ℝ
state_after: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
seq : ℕ → F
hmem : ∀ (n : ℕ), ∃ x ∈ K, f x = seq n
htends : Tendsto seq atTop (nhds b)
y : F
hinner : ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ
⊢ 0 ≤ ⟪y, b⟫_ℝ

tactic: suffices h : ∀ n, 0 ≤ ⟪y, seq n⟫_ℝ from
  ge_of_tendsto'
    (Continuous.seqContinuous (Continuous.inner (@continuous_const _ _ _ _ y) continuous_id)
      htends)
    h
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
seq : ℕ → F
hmem : ∀ (n : ℕ), ∃ x ∈ K, f x = seq n
htends : Tendsto seq atTop (nhds b)
y : F
hinner : ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ
⊢ 0 ≤ ⟪y, b⟫_ℝ
state_after: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
seq : ℕ → F
hmem : ∀ (n : ℕ), ∃ x ∈ K, f x = seq n
htends : Tendsto seq atTop (nhds b)
y : F
hinner : ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ
⊢ ∀ (n : ℕ), 0 ≤ ⟪y, seq n⟫_ℝ

tactic: intro n
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
seq : ℕ → F
hmem : ∀ (n : ℕ), ∃ x ∈ K, f x = seq n
htends : Tendsto seq atTop (nhds b)
y : F
hinner : ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ
⊢ ∀ (n : ℕ), 0 ≤ ⟪y, seq n⟫_ℝ
state_after: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
seq : ℕ → F
hmem : ∀ (n : ℕ), ∃ x ∈ K, f x = seq n
htends : Tendsto seq atTop (nhds b)
y : F
hinner : ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ
n : ℕ
⊢ 0 ≤ ⟪y, seq n⟫_ℝ

tactic: obtain ⟨_, h, hseq⟩ := hmem n
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
seq : ℕ → F
hmem : ∀ (n : ℕ), ∃ x ∈ K, f x = seq n
htends : Tendsto seq atTop (nhds b)
y : F
hinner : ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ
n : ℕ
⊢ 0 ≤ ⟪y, seq n⟫_ℝ
state_after: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
seq : ℕ → F
hmem : ∀ (n : ℕ), ∃ x ∈ K, f x = seq n
htends : Tendsto seq atTop (nhds b)
y : F
hinner : ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ
n : ℕ
w✝ : E
h : w✝ ∈ K
hseq : f w✝ = seq n
⊢ 0 ≤ ⟪y, seq n⟫_ℝ

tactic: simpa only [← hseq, real_inner_comm] using hinner h
state_before: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
seq : ℕ → F
hmem : ∀ (n : ℕ), ∃ x ∈ K, f x = seq n
htends : Tendsto seq atTop (nhds b)
y : F
hinner : ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ
n : ℕ
w✝ : E
h : w✝ ∈ K
hseq : f w✝ = seq n
⊢ 0 ≤ ⟪y, seq n⟫_ℝ
state_after: no goals

tactic: intro h
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
⊢ (∀ (y : F), (adjoint f) y ∈ K.dual → 0 ≤ ⟪y, b⟫_ℝ) → b ∈ map f K
state_after: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : ∀ (y : F), (adjoint f) y ∈ K.dual → 0 ≤ ⟪y, b⟫_ℝ
⊢ b ∈ map f K

tactic: contrapose! h
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : ∀ (y : F), (adjoint f) y ∈ K.dual → 0 ≤ ⟪y, b⟫_ℝ
⊢ b ∈ map f K
state_after: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
⊢ ∃ y, (adjoint f) y ∈ K.dual ∧ ⟪y, b⟫_ℝ < 0

tactic: let C := @PointedCone.toConvexCone ℝ F _ _ _ (K.map f)
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
⊢ ∃ y, (adjoint f) y ∈ K.dual ∧ ⟪y, b⟫_ℝ < 0
state_after: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
⊢ ∃ y, (adjoint f) y ∈ K.dual ∧ ⟪y, b⟫_ℝ < 0

tactic: obtain ⟨y, hxy, hyb⟩ :=
  @ConvexCone.hyperplane_separation_of_nonempty_of_isClosed_of_nmem
  _ _ _ _ C (K.map f).nonempty (K.map f).isClosed b h
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
⊢ ∃ y, (adjoint f) y ∈ K.dual ∧ ⟪y, b⟫_ℝ < 0
state_after: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
⊢ ∃ y, (adjoint f) y ∈ K.dual ∧ ⟪y, b⟫_ℝ < 0

tactic: refine ⟨y, ?_, hyb⟩
state_before: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
⊢ ∃ y, (adjoint f) y ∈ K.dual ∧ ⟪y, b⟫_ℝ < 0
state_after: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
⊢ (adjoint f) y ∈ K.dual

tactic: simp_rw [ProperCone.mem_dual, adjoint_inner_right]
state_before: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
⊢ (adjoint f) y ∈ K.dual
state_after: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
⊢ ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ

tactic: intro x hxK
state_before: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
⊢ ∀ ⦃x : E⦄, x ∈ K → 0 ≤ ⟪f x, y⟫_ℝ
state_after: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ 0 ≤ ⟪f x, y⟫_ℝ

tactic: apply hxy (f x)
state_before: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ 0 ≤ ⟪f x, y⟫_ℝ
state_after: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ f x ∈ C

tactic: simp_rw [C, coe_map]
state_before: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ f x ∈ C
state_after: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ f x ∈ ↑(PointedCone.map ↑f ↑K).closure

tactic: apply subset_closure
state_before: case intro.intro
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ f x ∈ ↑(PointedCone.map ↑f ↑K).closure
state_after: case intro.intro.a
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ f x ∈ ↑↑(PointedCone.map ↑f ↑K)

tactic: simp_rw [PointedCone.toConvexCone_map, ConvexCone.coe_map, coe_coe, mem_image,
  SetLike.mem_coe]
state_before: case intro.intro.a
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ f x ∈ ↑↑(PointedCone.map ↑f ↑K)
state_after: case intro.intro.a
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ ∃ x_1 ∈ ↑↑K, f x_1 = f x

tactic: exact ⟨x, hxK, rfl⟩
state_before: case intro.intro.a
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
F : Type u_2
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
K : ProperCone ℝ E
f : E →L[ℝ] F
b : F
h : b ∉ map f K
C : ConvexCone ℝ F := ↑↑(map f K)
y : F
hxy : ∀ x ∈ C, 0 ≤ ⟪x, y⟫_ℝ
hyb : ⟪y, b⟫_ℝ < 0
x : E
hxK : x ∈ K
⊢ ∃ x_1 ∈ ↑↑K, f x_1 = f x
state_after: no goals