internlm/Lean-Github huggingface dataset:
Theorem: ERealSion.C_subset_or
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 : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : b < f a ↑y ⊔ f a ↑y'
z : ↑(segment ℝ ↑y ↑y')
⊢ ERealSion.C X f b ↑{ val := ↑z, property := ⋯ } ∩ (ERealSion.C X f b ↑y ∩ ERealSion.C X f b ↑y') = ∅
Tactic:
rw [Set.disjoint_iff_inter_eq_empty.mp (disjoint_C X Y f a b y y' ha hb),
  Set.inter_empty]
Proof state after:
no goals
Theorem: ERealSion.C_subset_or'
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 : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : b < f a ↑y ⊔ f a ↑y'
z : ↑Y
hz : ↑z ∈ segment ℝ ↑y ↑y'
⊢ ERealSion.C X f b ↑z ⊆ ERealSion.C X f b ↑y ∨ ERealSion.C X f b ↑z ⊆ ERealSion.C X f b ↑y'
Tactic:
apply isPreconnected_iff_subset_of_disjoint_closed.mp
  (isPreconnected_C X Y f hfy' b ⟨z, cY.segment_subset y.prop y'.prop hz⟩)
  _ _ (isClosed_C X Y f hfy b y) (isClosed_C X Y f hfy b y')
  (C_subset_union X Y f hfx' b y y' ⟨z, hz⟩)
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, 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 : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : b < f a ↑y ⊔ f a ↑y'
z : ↑Y
hz : ↑z ∈ segment ℝ ↑y ↑y'
⊢ ERealSion.C X f b ↑{ val := ↑z, property := ⋯ } ∩ (ERealSion.C X f b ↑y ∩ ERealSion.C X f b ↑y') = ∅
Theorem: ERealSion.C_subset_or'
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 : β
y y' : ↑Y
ha : ∀ x ∈ X, f a ↑y ⊔ f a ↑y' ≤ f x ↑y ⊔ f x ↑y'
hb : b < f a ↑y ⊔ f a ↑y'
z : ↑Y
hz : ↑z ∈ segment ℝ ↑y ↑y'
⊢ ERealSion.C X f b ↑{ val := ↑z, property := ⋯ } ∩ (ERealSion.C X f b ↑y ∩ ERealSion.C X f b ↑y') = ∅
Tactic:
rw [Set.disjoint_iff_inter_eq_empty.mp (disjoint_C X Y f a b y y' ha hb),
  Set.inter_empty]
Proof state after:
no goals
Theorem: ERealSion.mem_J_iff
Proof state before:
β : Type u_2
E : Type u_3
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
b b' : β
y y' : ↑Y
z : ↑(segment ℝ ↑y ↑y')
⊢ z ∈ ERealSion.J X Y f b b' y y' ↔ ERealSion.C X f b ↑z ⊆ ERealSion.C X f b' ↑y
Tactic:
simp only [mem_setOf_eq, J]
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'
⊢ IsClosed (ERealSion.J X Y f b b' y y')
Tactic:
rw [isClosed_iff_clusterPt]
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, 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'
⊢ ∀ (a : ↑(segment ℝ ↑y ↑y')),
    ClusterPt a (Filter.principal (ERealSion.J X Y f b b' y y')) → a ∈ 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, 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'
⊢ ∀ (a : ↑(segment ℝ ↑y ↑y')),
    ClusterPt a (Filter.principal (ERealSion.J X Y f b b' y y')) → a ∈ ERealSion.J X Y f b b' y y'
Tactic:
intro z hz x hx
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, 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
⊢ x ∈ ERealSion.C X f b' ↑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, 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
⊢ x ∈ ERealSion.C X f b' ↑y
Tactic:
have hzY :=(convex_iff_segment_subset.mp cY) y.prop y'.prop z.prop
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, 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
⊢ x ∈ ERealSion.C X f b' ↑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, 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
⊢ x ∈ ERealSion.C X f b' ↑y
Tactic:
suffices ∃ z' ∈ J X Y f b b' y y', x ∈ C X f b' (z' : F) by
  obtain ⟨z', hz', hxz'⟩ := this
  suffices C X f b' z' ⊆ C X f b' y by
    exact this hxz'
  apply Or.resolve_right (C_subset_or X Y cY f hfx' hfy hfy' a b' y y' ha hb' z')
  intro hz'2
  have hz'Y :=(convex_iff_segment_subset.mp cY) y.prop y'.prop z'.prop
  apply (nonempty_C X ne_X kX Y f hfy ⟨z', hz'Y⟩ hb).not_subset_empty
  simp only [← disjoint_iff_inter_eq_empty.mp (disjoint_C X Y f a b' y y' ha hb')]
  apply Set.subset_inter hz'
  apply subset_trans (monotone_C X Y f b b' ⟨z', hz'Y⟩ hbb'.le) hz'2
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, 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' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
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' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
Tactic:
simp only [UpperSemicontinuousOn, UpperSemicontinuousWithinAt] at 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, ∀ x_1 ∈ Y, ∀ (y : β), f x x_1 < y → ∀ᶠ (x' : F) in nhdsWithin x_1 Y, f x x' < 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' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
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, ∀ x_1 ∈ Y, ∀ (y : β), f x x_1 < y → ∀ᶠ (x' : F) in nhdsWithin x_1 Y, f x x' < 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' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
Tactic:
have := lt_of_le_of_lt hx hbb'
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, ∀ x_1 ∈ Y, ∀ (y : β), f x x_1 < y → ∀ᶠ (x' : F) in nhdsWithin x_1 Y, f x x' < 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
this : ((fun x => f x ↑z) ∘ fun x => ↑x) x < b'
⊢ ∃ z' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
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, ∀ x_1 ∈ Y, ∀ (y : β), f x x_1 < y → ∀ᶠ (x' : F) in nhdsWithin x_1 Y, f x x' < 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
this : ((fun x => f x ↑z) ∘ fun x => ↑x) x < b'
⊢ ∃ z' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
Tactic:
dsimp only [Function.comp_apply] at this
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, ∀ x_1 ∈ Y, ∀ (y : β), f x x_1 < y → ∀ᶠ (x' : F) in nhdsWithin x_1 Y, f x x' < 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
this : f ↑x ↑z < b'
⊢ ∃ z' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
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, ∀ x_1 ∈ Y, ∀ (y : β), f x x_1 < y → ∀ᶠ (x' : F) in nhdsWithin x_1 Y, f x x' < 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
this : f ↑x ↑z < b'
⊢ ∃ z' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'
Tactic:
specialize hfx x.val x.prop z (cY.segment_subset y.prop y'.prop z.prop) b'
  (lt_of_le_of_lt hx hbb')
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 : 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
this : f ↑x ↑z < b'
hfx : ∀ᶠ (x' : F) in nhdsWithin (↑z) Y, f (↑x) x' < b'
⊢ ∃ z' ∈ ERealSion.J X Y f b b' y y', x ∈ ERealSion.C X f b' ↑z'