Theorem: ERealSion.exists_lt_iInf_of_lt_iInf_of_sup (Sion/Sion.lean)

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
⊢ ∃ y0 ∈ Y, ∀ x ∈ X, t < f x y0
Tactic:
by_contra hinfi_le
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ¬∃ y0 ∈ Y, ∀ x ∈ X, t < f x y0
⊢ False

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ¬∃ y0 ∈ Y, ∀ x ∈ X, t < f x y0
⊢ False
Tactic:
push_neg at hinfi_le
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
⊢ False

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
⊢ False
Tactic:
obtain ⟨a, ha, ha'⟩ := LowerSemicontinuousOn.exists_forall_le_of_isCompact
  ne_X kX (f := fun x ↦ f x y1 ⊔ f x y2) (by
    apply LowerSemicontinuousOn.sup
    exact hfy y1 hy1
    exact hfy y2 hy2)
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
⊢ False

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
⊢ False
Tactic:
obtain ⟨t', htt', ht'⟩ := exists_between (ht a ha)
State after:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
⊢ False

State before:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
⊢ False
Tactic:
let J1 := J X Y f t t' ⟨y1, hy1⟩ ⟨y2, hy2⟩
State after:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
⊢ False

State before:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
⊢ False
Tactic:
have mem_J1_iff : ∀ (z : F) (hz : z ∈ segment ℝ y1 y2),
    ⟨z, hz⟩ ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1 :=
  fun z _ ↦ by simp [J1, J]
State after:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
⊢ False

State before:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
⊢ False
Tactic:
let φ : segment ℝ y1 y2 ≃ₜ segment ℝ y2 y1 := by
  apply Homeomorph.subtype (Homeomorph.refl F)
  intro x
  rw [segment_symm ℝ y2 y1]
  simp only [Homeomorph.refl_apply, id_eq]
State after:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
⊢ False

State before:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
⊢ False
Tactic:
let J2 := φ ⁻¹' (J X Y f t t' ⟨y2, hy2⟩ ⟨y1, hy1⟩)
State after:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
⊢ False

State before:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
⊢ False
Tactic:
have mem_J2_iff : ∀ (z : F) (hz : z ∈ segment ℝ y1 y2),
    ⟨z, hz⟩ ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2 :=
  fun z hz ↦ by simp [J2, J, φ, segment_symm ℝ y2 y1, hz]
State after:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
⊢ False

State before:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
⊢ False
Tactic:
have hJ1J2 : J1 ∩ J2 = ∅ := by
  rw [Set.eq_empty_iff_forall_not_mem]
  simp only [mem_inter_iff, not_and]
  rintro ⟨z, hz⟩ hz1 hz2
  simp only [mem_J1_iff] at hz1
  simp only [mem_J2_iff] at hz2
  have hz_mem_Y : z ∈ Y := cY.segment_subset hy1 hy2 hz
  apply Set.Nonempty.not_subset_empty (nonempty_C X ne_X kX Y f hfy ⟨z, hz_mem_Y⟩ hinfi_le)
  rw [Set.subset_empty_iff, ← bot_eq_empty, ← disjoint_self]
  exact Set.disjoint_of_subset hz1 hz2 (disjoint_C X Y f a t' ⟨y1, hy1⟩ ⟨y2, hy2⟩ ha' ht')
State after:
case intro.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, 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
⊢ False

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
⊢ LowerSemicontinuousOn (fun x => f x y1 ⊔ f x y2) X
Tactic:
apply LowerSemicontinuousOn.sup
State after:
case hf
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
⊢ LowerSemicontinuousOn (fun x => f x y1) X

case hg
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
⊢ LowerSemicontinuousOn (fun x => f x y2) X

State before:
case hf
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
⊢ LowerSemicontinuousOn (fun x => f x y1) X

case hg
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
⊢ LowerSemicontinuousOn (fun x => f x y2) X
Tactic:
exact hfy y1 hy1
State after:
case hg
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
⊢ LowerSemicontinuousOn (fun x => f x y2) X

State before:
case hg
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
⊢ LowerSemicontinuousOn (fun x => f x y2) X
Tactic:
exact hfy y2 hy2
State after:
no goals

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
z : F
x✝ : z ∈ segment ℝ y1 y2
⊢ { val := z, property := x✝ } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
Tactic:
simp [J1, J]
State after:
no goals

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
⊢ ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1)
Tactic:
apply Homeomorph.subtype (Homeomorph.refl F)
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
⊢ ∀ (x : F), x ∈ segment ℝ y1 y2 ↔ (Homeomorph.refl F) x ∈ segment ℝ y2 y1

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
⊢ ∀ (x : F), x ∈ segment ℝ y1 y2 ↔ (Homeomorph.refl F) x ∈ segment ℝ y2 y1
Tactic:
intro x
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
x : F
⊢ x ∈ segment ℝ y1 y2 ↔ (Homeomorph.refl F) x ∈ segment ℝ y2 y1

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
x : F
⊢ x ∈ segment ℝ y1 y2 ↔ (Homeomorph.refl F) x ∈ segment ℝ y2 y1
Tactic:
rw [segment_symm ℝ y2 y1]
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
x : F
⊢ x ∈ segment ℝ y1 y2 ↔ (Homeomorph.refl F) x ∈ segment ℝ y1 y2

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
x : F
⊢ x ∈ segment ℝ y1 y2 ↔ (Homeomorph.refl F) x ∈ segment ℝ y1 y2
Tactic:
simp only [Homeomorph.refl_apply, id_eq]
State after:
no goals

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
z : F
hz : z ∈ segment ℝ y1 y2
⊢ { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
Tactic:
simp [J2, J, φ, segment_symm ℝ y2 y1, hz]
State after:
no goals

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
⊢ J1 ∩ J2 = ∅
Tactic:
rw [Set.eq_empty_iff_forall_not_mem]
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
⊢ ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
⊢ ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
Tactic:
simp only [mem_inter_iff, not_and]
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
⊢ ∀ x ∈ J1, x ∉ J2

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
⊢ ∀ x ∈ J1, x ∉ J2
Tactic:
rintro ⟨z, hz⟩ hz1 hz2
State after:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : { val := z, property := hz } ∈ J1
hz2 : { val := z, property := hz } ∈ J2
⊢ False

State before:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : { val := z, property := hz } ∈ J1
hz2 : { val := z, property := hz } ∈ J2
⊢ False
Tactic:
simp only [mem_J1_iff] at hz1
State after:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz2 : { val := z, property := hz } ∈ J2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
⊢ False

State before:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz2 : { val := z, property := hz } ∈ J2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
⊢ False
Tactic:
simp only [mem_J2_iff] at hz2
State after:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
hz2 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
⊢ False

State before:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
hz2 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
⊢ False
Tactic:
have hz_mem_Y : z ∈ Y := cY.segment_subset hy1 hy2 hz
State after:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
hz2 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hz_mem_Y : z ∈ Y
⊢ False

State before:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
hz2 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hz_mem_Y : z ∈ Y
⊢ False
Tactic:
apply Set.Nonempty.not_subset_empty (nonempty_C X ne_X kX Y f hfy ⟨z, hz_mem_Y⟩ hinfi_le)
State after:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
hz2 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hz_mem_Y : z ∈ Y
⊢ ERealSion.C X f t ↑{ val := z, property := hz_mem_Y } ⊆ ∅

State before:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
hz2 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hz_mem_Y : z ∈ Y
⊢ ERealSion.C X f t ↑{ val := z, property := hz_mem_Y } ⊆ ∅
Tactic:
rw [Set.subset_empty_iff, ← bot_eq_empty, ← disjoint_self]
State after:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
hz2 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hz_mem_Y : z ∈ Y
⊢ Disjoint (ERealSion.C X f t ↑{ val := z, property := hz_mem_Y })
    (ERealSion.C X f t ↑{ val := z, property := hz_mem_Y })

State before:
case mk
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
z : F
hz : z ∈ segment ℝ y1 y2
hz1 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
hz2 : ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hz_mem_Y : z ∈ Y
⊢ Disjoint (ERealSion.C X f t ↑{ val := z, property := hz_mem_Y })
    (ERealSion.C X f t ↑{ val := z, property := hz_mem_Y })
Tactic:
exact Set.disjoint_of_subset hz1 hz2 (disjoint_C X Y f a t' ⟨y1, hy1⟩ ⟨y2, hy2⟩ ha' ht')
State after:
no goals

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
⊢ Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
Tactic:
ext z
State after:
case h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
⊢ z ∈ Subtype.val '' (J1 ∪ J2) ↔ z ∈ segment ℝ y1 y2

State before:
case h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
⊢ z ∈ Subtype.val '' (J1 ∪ J2) ↔ z ∈ segment ℝ y1 y2
Tactic:
constructor
State after:
case h.mp
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
⊢ z ∈ Subtype.val '' (J1 ∪ J2) → z ∈ segment ℝ y1 y2

case h.mpr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
⊢ z ∈ segment ℝ y1 y2 → z ∈ Subtype.val '' (J1 ∪ J2)

State before:
case h.mp
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
⊢ z ∈ Subtype.val '' (J1 ∪ J2) → z ∈ segment ℝ y1 y2
Tactic:
rintro ⟨⟨z, hz⟩, _, rfl⟩
State after:
case h.mp.intro.mk.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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }
left✝ : { val := z, property := hz } ∈ J1 ∪ J2
⊢ ↑{ val := z, property := hz } ∈ segment ℝ y1 y2

State before:
case h.mp.intro.mk.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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }
left✝ : { val := z, property := hz } ∈ J1 ∪ J2
⊢ ↑{ val := z, property := hz } ∈ segment ℝ y1 y2
Tactic:
exact hz
State after:
no goals

State before:
case h.mpr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
⊢ z ∈ segment ℝ y1 y2 → z ∈ Subtype.val '' (J1 ∪ J2)
Tactic:
intro hz
State after:
case h.mpr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
⊢ z ∈ Subtype.val '' (J1 ∪ J2)

State before:
case h.mpr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
⊢ z ∈ Subtype.val '' (J1 ∪ J2)
Tactic:
have hz_mem_Y : z ∈ Y := cY.segment_subset hy1 hy2 hz
State after:
case h.mpr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
⊢ z ∈ Subtype.val '' (J1 ∪ J2)

State before:
case h.mpr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
⊢ z ∈ Subtype.val '' (J1 ∪ J2)
Tactic:
use ⟨z, hz⟩
State after:
case h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
⊢ { val := z, property := hz } ∈ J1 ∪ J2 ∧ ↑{ val := z, property := hz } = z

State before:
case h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
⊢ { val := z, property := hz } ∈ J1 ∪ J2 ∧ ↑{ val := z, property := hz } = z
Tactic:
refine ⟨?_, rfl⟩
State after:
case h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
⊢ { val := z, property := hz } ∈ J1 ∪ J2

State before:
case h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
⊢ { val := z, property := hz } ∈ J1 ∪ J2
Tactic:
rcases C_subset_or X Y cY f hfx' hfy hfy' a t' ⟨y1, hy1⟩ ⟨y2, hy2⟩ ha' ht' ⟨z, hz⟩ with (h1 | h2)
State after:
case h.inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h1 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y1, property := hy1 }
⊢ { val := z, property := hz } ∈ J1 ∪ J2

case h.inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h2 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y2, property := hy2 }
⊢ { val := z, property := hz } ∈ J1 ∪ J2

State before:
case h.inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h1 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y1, property := hy1 }
⊢ { val := z, property := hz } ∈ J1 ∪ J2
Tactic:
left
State after:
case h.inl.h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h1 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y1, property := hy1 }
⊢ { val := z, property := hz } ∈ J1

State before:
case h.inl.h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h1 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y1, property := hy1 }
⊢ { val := z, property := hz } ∈ J1
Tactic:
simp only [mem_J1_iff]
State after:
case h.inl.h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h1 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y1, property := hy1 }
⊢ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1

State before:
case h.inl.h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h1 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y1, property := hy1 }
⊢ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
Tactic:
exact subset_trans (monotone_C X Y f t t' ⟨z, hz_mem_Y⟩ htt'.le) h1
State after:
no goals

State before:
case h.inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h2 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y2, property := hy2 }
⊢ { val := z, property := hz } ∈ J1 ∪ J2
Tactic:
right
State after:
case h.inr.h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h2 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y2, property := hy2 }
⊢ { val := z, property := hz } ∈ J2

State before:
case h.inr.h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h2 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y2, property := hy2 }
⊢ { val := z, property := hz } ∈ J2
Tactic:
simp only [mem_J2_iff]
State after:
case h.inr.h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h2 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y2, property := hy2 }
⊢ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2

State before:
case h.inr.h
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
z : F
hz : z ∈ segment ℝ y1 y2
hz_mem_Y : z ∈ Y
h2 : ERealSion.C X f t' ↑{ val := z, property := hz } ⊆ ERealSion.C X f t' ↑{ val := y2, property := hy2 }
⊢ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
Tactic:
exact subset_trans (monotone_C X Y f t t' ⟨z, hz_mem_Y⟩ htt'.le) h2
State after:
no goals

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this : IsPreconnected univ
⊢ False
Tactic:
rw [isPreconnected_iff_subset_of_disjoint_closed] at this
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ False

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ False
Tactic:
rw [Set.eq_empty_iff_forall_not_mem] at hJ1J2
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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ False

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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ False
Tactic:
rcases this J1 J2 ?_ ?_ ?_ ?_ with (h1 | h2)
State after:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ False

case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ False

State before:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ False
Tactic:
apply hJ1J2 ⟨y2, right_mem_segment ℝ y1 y2⟩
State after:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ { val := y2, property := ⋯ } ∈ J1 ∩ J2

State before:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ { val := y2, property := ⋯ } ∈ J1 ∩ J2
Tactic:
rw [Set.mem_inter_iff]
State after:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ { val := y2, property := ⋯ } ∈ J1 ∧ { val := y2, property := ⋯ } ∈ J2

State before:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ { val := y2, property := ⋯ } ∈ J1 ∧ { val := y2, property := ⋯ } ∈ J2
Tactic:
refine ⟨h1 (Set.mem_univ _), ?_⟩
State after:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ { val := y2, property := ⋯ } ∈ J2

State before:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ { val := y2, property := ⋯ } ∈ J2
Tactic:
rw [mem_J2_iff]
State after:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ ERealSion.C X f t y2 ⊆ ERealSion.C X f t' y2

State before:
case inl
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h1 : univ ⊆ J1
⊢ ERealSion.C X f t y2 ⊆ ERealSion.C X f t' y2
Tactic:
apply monotone_C X Y f t t' ⟨y2, hy2⟩ htt'.le
State after:
no goals

State before:
case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ False
Tactic:
apply hJ1J2 ⟨y1, left_mem_segment ℝ y1 y2⟩
State after:
case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ { val := y1, property := ⋯ } ∈ J1 ∩ J2

State before:
case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ { val := y1, property := ⋯ } ∈ J1 ∩ J2
Tactic:
rw [Set.mem_inter_iff]
State after:
case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ { val := y1, property := ⋯ } ∈ J1 ∧ { val := y1, property := ⋯ } ∈ J2

State before:
case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ { val := y1, property := ⋯ } ∈ J1 ∧ { val := y1, property := ⋯ } ∈ J2
Tactic:
refine ⟨?_, h2 (Set.mem_univ _)⟩
State after:
case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ { val := y1, property := ⋯ } ∈ J1

State before:
case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ { val := y1, property := ⋯ } ∈ J1
Tactic:
rw [mem_J1_iff]
State after:
case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ ERealSion.C X f t y1 ⊆ ERealSion.C X f t' y1

State before:
case inr
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
h2 : univ ⊆ J2
⊢ ERealSion.C X f t y1 ⊆ ERealSion.C X f t' y1
Tactic:
apply monotone_C X Y f t t' ⟨y1, hy1⟩ htt'.le
State after:
no goals

State before:
case intro.intro.intro.intro.refine_5
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ univ ∩ (J1 ∩ J2) = ∅
Tactic:
rw [← Set.eq_empty_iff_forall_not_mem] at hJ1J2
State after:
case intro.intro.intro.intro.refine_5
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ univ ∩ (J1 ∩ J2) = ∅

State before:
case intro.intro.intro.intro.refine_5
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ univ ∩ (J1 ∩ J2) = ∅
Tactic:
simp only [hJ1J2, inter_empty]
State after:
no goals

State before:
case intro.intro.intro.intro.refine_1
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
⊢ IsPreconnected univ
Tactic:
rw [← inducing_subtype_val.isPreconnected_image]
State after:
case intro.intro.intro.intro.refine_1
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
⊢ IsPreconnected (Subtype.val '' univ)

State before:
case intro.intro.intro.intro.refine_1
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
⊢ IsPreconnected (Subtype.val '' univ)
Tactic:
simp only [image_univ, Subtype.range_coe_subtype, setOf_mem_eq]
State after:
case intro.intro.intro.intro.refine_1
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
⊢ IsPreconnected (segment ℝ y1 y2)

State before:
case intro.intro.intro.intro.refine_1
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
⊢ IsPreconnected (segment ℝ y1 y2)
Tactic:
exact Convex.isPreconnected (convex_segment y1 y2)
State after:
no goals

State before:
case intro.intro.intro.intro.refine_2
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ IsClosed J1
Tactic:
exact isClosed_J X ne_X kX Y cY f hfx hfx' hfy hfy' a t t' ⟨y1, hy1⟩ ⟨y2, hy2⟩ ha' hinfi_le ht' htt'
State after:
no goals

State before:
case intro.intro.intro.intro.refine_3
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ IsClosed J2
Tactic:
rw [Homeomorph.isClosed_preimage]
State after:
case intro.intro.intro.intro.refine_3
β : 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
y1 : F
hy1 : y1 ∈ Y
y2 : F
hy2 : y2 ∈ Y
t : β
ht : ∀ x ∈ X, t < f x y1 ⊔ f x y2
hinfi_le : ∀ y0 ∈ Y, ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
ha' : ∀ x ∈ X, f a y1 ⊔ f a y2 ≤ f x y1 ⊔ f x y2
t' : β
htt' : t < t'
ht' : t' < f a y1 ⊔ f a y2
J1 : Set ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 }) :=
  ERealSion.J X Y f t t' { val := y1, property := hy1 } { val := y2, property := hy2 }
mem_J1_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J1 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y1
φ : ↑(segment ℝ y1 y2) ≃ₜ ↑(segment ℝ y2 y1) := Homeomorph.subtype (Homeomorph.refl F) ⋯
J2 : Set ↑(segment ℝ y1 y2) :=
  ⇑φ ⁻¹' ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 }
mem_J2_iff :
  ∀ (z : F) (hz : z ∈ segment ℝ y1 y2), { val := z, property := hz } ∈ J2 ↔ ERealSion.C X f t z ⊆ ERealSion.C X f t' y2
hJ1J2 : ∀ (x : ↑(segment ℝ ↑{ val := y1, property := hy1 } ↑{ val := y2, property := hy2 })), x ∉ J1 ∩ J2
hJ1_union_J2 : Subtype.val '' (J1 ∪ J2) = segment ℝ y1 y2
this :
  ∀ (u v : Set ↑(segment ℝ y1 y2)), IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
⊢ IsClosed (ERealSion.J X Y f t t' { val := y2, property := hy2 } { val := y1, property := hy1 })