internlm/Lean-Github huggingface dataset:
Theorem: ERealSion.isClosed_J
Proof state before:
case intro.intro
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx : ∀ x ∈ X, UpperSemicontinuousOn (fun y => f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz : ClusterPt z (Filter.principal (ERealSion.J X Y f b b' y y'))
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
z' : ↑(segment ℝ ↑y ↑y')
hz' : z' ∈ ERealSion.J X Y f b b' y y'
hxz' : x ∈ ERealSion.C X f b' ↑z'
hz'2 : ERealSion.C X f b' ↑z' ⊆ ERealSion.C X f b' ↑y'
hz'Y : ↑z' ∈ Y
⊢ ERealSion.C X f b ↑z' ⊆ ERealSion.C X f b' ↑y ∩ ERealSion.C X f b' ↑y'
Tactic:
apply Set.subset_inter hz'
Proof state after:
case intro.intro
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx : ∀ x ∈ X, UpperSemicontinuousOn (fun y => f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz : ClusterPt z (Filter.principal (ERealSion.J X Y f b b' y y'))
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
z' : ↑(segment ℝ ↑y ↑y')
hz' : z' ∈ ERealSion.J X Y f b b' y y'
hxz' : x ∈ ERealSion.C X f b' ↑z'
hz'2 : ERealSion.C X f b' ↑z' ⊆ ERealSion.C X f b' ↑y'
hz'Y : ↑z' ∈ Y
⊢ ERealSion.C X f b ↑z' ⊆ ERealSion.C X f b' ↑y'
Theorem: ERealSion.isClosed_J
Proof state before:
case intro.intro
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx : ∀ x ∈ X, UpperSemicontinuousOn (fun y => f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz : ClusterPt z (Filter.principal (ERealSion.J X Y f b b' y y'))
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
z' : ↑(segment ℝ ↑y ↑y')
hz' : z' ∈ ERealSion.J X Y f b b' y y'
hxz' : x ∈ ERealSion.C X f b' ↑z'
hz'2 : ERealSion.C X f b' ↑z' ⊆ ERealSion.C X f b' ↑y'
hz'Y : ↑z' ∈ Y
⊢ ERealSion.C X f b ↑z' ⊆ ERealSion.C X f b' ↑y'
Tactic:
apply subset_trans (monotone_C X Y f b b' ⟨z', hz'Y⟩ hbb'.le) hz'2
Proof state after:
no goals
Theorem: ERealSion.isClosed_J
Proof state before:
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx : ∀ x ∈ X, UpperSemicontinuousOn (fun y => f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz : ClusterPt z (Filter.principal (ERealSion.J X Y f b b' y y'))
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
z' : ↑(segment ℝ ↑y ↑y')
hz' : z' ∈ ERealSion.J X Y f b b' y y'
hxz' : x ∈ ERealSion.C X f b' ↑z'
this : ERealSion.C X f b' ↑z' ⊆ ERealSion.C X f b' ↑y
⊢ x ∈ ERealSion.C X f b' ↑y
Tactic:
exact this hxz'
Proof state after:
no goals
Theorem: ERealSion.isClosed_J
Proof state before:
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
this✝ : f ↑x ↑z < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z) Y, f (↑x) x' < b'
this :
  ∀ᶠ (z' : F) in nhdsWithin (↑z) Y,
    (∃ (hz' : z' ∈ segment ℝ ↑y ↑y'), { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y') →
      ∃ (hz' : z' ∈ segment ℝ ↑y ↑y'),
        x ∈ ERealSion.C X f b' z' ∧ { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y'
⊢ ∃ z' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
Tactic:
obtain ⟨z', hz', hxz'1, hxz'2⟩ := Filter.Frequently.exists (Filter.Frequently.mp hz this)
Proof state after:
case intro.intro.intro
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
this✝ : f ↑x ↑z < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z) Y, f (↑x) x' < b'
this :
  ∀ᶠ (z' : F) in nhdsWithin (↑z) Y,
    (∃ (hz' : z' ∈ segment ℝ ↑y ↑y'), { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y') →
      ∃ (hz' : z' ∈ segment ℝ ↑y ↑y'),
        x ∈ ERealSion.C X f b' z' ∧ { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y'
z' : F
hz' : z' ∈ segment ℝ ↑y ↑y'
hxz'1 : x ∈ ERealSion.C X f b' z'
hxz'2 : { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y'
⊢ ∃ z' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
Theorem: ERealSion.isClosed_J
Proof state before:
case intro.intro.intro
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
this✝ : f ↑x ↑z < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z) Y, f (↑x) x' < b'
this :
  ∀ᶠ (z' : F) in nhdsWithin (↑z) Y,
    (∃ (hz' : z' ∈ segment ℝ ↑y ↑y'), { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y') →
      ∃ (hz' : z' ∈ segment ℝ ↑y ↑y'),
        x ∈ ERealSion.C X f b' z' ∧ { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y'
z' : F
hz' : z' ∈ segment ℝ ↑y ↑y'
hxz'1 : x ∈ ERealSion.C X f b' z'
hxz'2 : { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y'
⊢ ∃ z' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
Tactic:
exact ⟨⟨z', hz'⟩, ⟨hxz'2, hxz'1⟩⟩
Proof state after:
no goals
Theorem: ERealSion.isClosed_J
Proof state before:
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
this : f ↑x ↑z < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z) Y, f (↑x) x' < b'
⊢ ∀ᶠ (z' : F) in nhdsWithin (↑z) Y,
    (∃ (hz' : z' ∈ segment ℝ ↑y ↑y'), { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y') →
      ∃ (hz' : z' ∈ segment ℝ ↑y ↑y'),
        x ∈ ERealSion.C X f b' z' ∧ { val := z', property := hz' } ∈ ERealSion.J X Y f b b' y y'
Tactic:
apply Filter.Eventually.mp hfx
Proof state after:
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
this : f ↑x ↑z < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z) Y, f (↑x) x' < b'
⊢ ∀ᶠ (x_1 : F) in nhdsWithin (↑z) Y,
    f (↑x) x_1 < b' →
      (∃ (hz' : x_1 ∈ segment ℝ ↑y ↑y'), { val := x_1, property := hz' } ∈ ERealSion.J X Y f b b' y y') →
        ∃ (hz' : x_1 ∈ segment ℝ ↑y ↑y'),
          x ∈ ERealSion.C X f b' x_1 ∧ { val := x_1, property := hz' } ∈ ERealSion.J X Y f b b' y y'
Theorem: ERealSion.isClosed_J
Proof state before:
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
this : f ↑x ↑z < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z) Y, f (↑x) x' < b'
⊢ ∀ᶠ (x_1 : F) in nhdsWithin (↑z) Y,
    f (↑x) x_1 < b' →
      (∃ (hz' : x_1 ∈ segment ℝ ↑y ↑y'), { val := x_1, property := hz' } ∈ ERealSion.J X Y f b b' y y') →
        ∃ (hz' : x_1 ∈ segment ℝ ↑y ↑y'),
          x ∈ ERealSion.C X f b' x_1 ∧ { val := x_1, property := hz' } ∈ ERealSion.J X Y f b b' y y'
Tactic:
apply Filter.eventually_of_forall
Proof state after:
case hp
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
this : f ↑x ↑z < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z) Y, f (↑x) x' < b'
⊢ ∀ (x_1 : F),
    f (↑x) x_1 < b' →
      (∃ (hz' : x_1 ∈ segment ℝ ↑y ↑y'), { val := x_1, property := hz' } ∈ ERealSion.J X Y f b b' y y') →
        ∃ (hz' : x_1 ∈ segment ℝ ↑y ↑y'),
          x ∈ ERealSion.C X f b' x_1 ∧ { val := x_1, property := hz' } ∈ ERealSion.J X Y f b b' y y'
Theorem: ERealSion.isClosed_J
Proof state before:
case hp
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z
hzY : ↑z ∈ Y
this : f ↑x ↑z < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z) Y, f (↑x) x' < b'
⊢ ∀ (x_1 : F),
    f (↑x) x_1 < b' →
      (∃ (hz' : x_1 ∈ segment ℝ ↑y ↑y'), { val := x_1, property := hz' } ∈ ERealSion.J X Y f b b' y y') →
        ∃ (hz' : x_1 ∈ segment ℝ ↑y ↑y'),
          x ∈ ERealSion.C X f b' x_1 ∧ { val := x_1, property := hz' } ∈ ERealSion.J X Y f b b' y y'
Tactic:
intro z hzt'
Proof state after:
case hp
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z✝ : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z✝) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z✝
hzY : ↑z✝ ∈ Y
this : f ↑x ↑z✝ < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z✝) Y, f (↑x) x' < b'
z : F
hzt' : f (↑x) z < b'
⊢ (∃ (hz' : z ∈ segment ℝ ↑y ↑y'), { val := z, property := hz' } ∈ ERealSion.J X Y f b b' y y') →
    ∃ (hz' : z ∈ segment ℝ ↑y ↑y'),
      x ∈ ERealSion.C X f b' z ∧ { val := z, property := hz' } ∈ ERealSion.J X Y f b b' y y'
Theorem: ERealSion.isClosed_J
Proof state before:
case hp
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z✝ : ↑(segment ℝ ↑y ↑y')
hz :
  ∃ᶠ (x : F) in nhdsWithin (↑z✝) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z✝
hzY : ↑z✝ ∈ Y
this : f ↑x ↑z✝ < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z✝) Y, f (↑x) x' < b'
z : F
hzt' : f (↑x) z < b'
⊢ (∃ (hz' : z ∈ segment ℝ ↑y ↑y'), { val := z, property := hz' } ∈ ERealSion.J X Y f b b' y y') →
    ∃ (hz' : z ∈ segment ℝ ↑y ↑y'),
      x ∈ ERealSion.C X f b' z ∧ { val := z, property := hz' } ∈ ERealSion.J X Y f b b' y y'
Tactic:
rintro ⟨hz, hz'⟩
Proof state after:
case hp.intro
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z✝ : ↑(segment ℝ ↑y ↑y')
hz✝ :
  ∃ᶠ (x : F) in nhdsWithin (↑z✝) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z✝
hzY : ↑z✝ ∈ Y
this : f ↑x ↑z✝ < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z✝) Y, f (↑x) x' < b'
z : F
hzt' : f (↑x) z < b'
hz : z ∈ segment ℝ ↑y ↑y'
hz' : { val := z, property := hz } ∈ ERealSion.J X Y f b b' y y'
⊢ ∃ (hz' : z ∈ segment ℝ ↑y ↑y'), x ∈ ERealSion.C X f b' z ∧ { val := z, property := hz' } ∈ ERealSion.J X Y f b b' y y'
Theorem: ERealSion.isClosed_J
Proof state before:
case hp.intro
β : Type u_3
E : Type u_2
inst✝¹¹ : AddCommGroup E
inst✝¹⁰ : Module ℝ E
inst✝⁹ : TopologicalSpace E
inst✝⁸ : TopologicalAddGroup E
inst✝⁷ : ContinuousSMul ℝ E
F : Type u_1
inst✝⁶ : AddCommGroup F
inst✝⁵ : Module ℝ F
inst✝⁴ : TopologicalSpace F
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousSMul ℝ F
X : Set E
ne_X : Set.Nonempty X
cX : Convex ℝ X
kX : IsCompact X
Y : Set F
ne_Y : Set.Nonempty Y
cY : Convex ℝ Y
kY : IsCompact Y
f : E → F → β
inst✝¹ : LinearOrder β
inst✝ : DenselyOrdered β
hfx' : ∀ x ∈ X, QuasiconcaveOn ℝ Y fun y => f x y
hfy : ∀ y ∈ Y, LowerSemicontinuousOn (fun x => f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn ℝ X fun x => f x y
a : E
b b' : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : ∀ y ∈ Y, ∃ x ∈ X, f x y ≤ b
hb' : b' < f a ↑y ⊔ f a ↑y'
hbb' : b < b'
z✝ : ↑(segment ℝ ↑y ↑y')
hz✝ :
  ∃ᶠ (x : F) in nhdsWithin (↑z✝) Y,
    ∃ (h : x ∈ segment ℝ ↑y ↑y'), { val := x, property := h } ∈ ERealSion.J X Y f b b' y y'
x : ↑X
hx : x ∈ ERealSion.C X f b ↑z✝
hzY : ↑z✝ ∈ Y
this : f ↑x ↑z✝ < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z✝) Y, f (↑x) x' < b'
z : F
hzt' : f (↑x) z < b'
hz : z ∈ segment ℝ ↑y ↑y'
hz' : { val := z, property := hz } ∈ ERealSion.J X Y f b b' y y'
⊢ ∃ (hz' : z ∈ segment ℝ ↑y ↑y'), x ∈ ERealSion.C X f b' z ∧ { val := z, property := hz' } ∈ ERealSion.J X Y f b b' y y'
Tactic:
exact ⟨hz, ⟨le_of_lt hzt', hz'⟩⟩
Proof state after:
no goals