awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Topology.Sion (goal)
Goal:
E : Type u_1
F : Type u_2
β : Type u_3
inst : LinearOrder β
X : Set E
Y : Set F
f : E → F → β
inst_1 : TopologicalSpace E
inst_2 : AddCommGroup E
inst_3 : Module ℝ E
inst_4 : IsTopologicalAddGroup E
inst_5 : ContinuousSMul ℝ E
ne_X : X.Nonempty
kX : IsCompact X
hfy : ∀ y ∈ Y, LowerSemicontinuousOn.{u_1, u_3} (β := β) (fun (x : E) ↦ f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn.{0, u_1, u_3} ℝ (β := β) X fun (x : E) ↦ f x y
inst_6 : TopologicalSpace F
inst_7 : AddCommGroup F
inst_8 : Module ℝ F
cY : Convex ℝ Y
hfx : ∀ x ∈ X, UpperSemicontinuousOn.{u_2, u_3} (β := β) (fun (y : F) ↦ f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn.{0, u_2, u_3} ℝ (β := β) Y fun (y : F) ↦ f x y
inst_9 : DenselyOrdered β
inst_10 : IsTopologicalAddGroup F
inst_11 : ContinuousSMul ℝ F
t : β
hinfi_le : ∀ (y0 : F) (_ : y0 ∈ Y), ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
t' : β
htt' : t < t'
y1 y2 : { x : F // x ∈ Y }
ht : ∀ x ∈ X, t < max (f x (↑y1 : F)) (f x (↑y2 : F))
ha' : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y1 : F)) (f x (↑y2 : F))) X a
ht' : t' < max (f a (↑y1 : F)) (f a (↑y2 : F))
J1 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) := setOf_sublevelLeft_subset X Y f t t' y1 y2
mem_J1_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J1 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y1 : F)
φ : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) ≃ₜ (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2) :=
  Homeomorph.setCongr (s := segment ℝ (↑y1 : F) (↑y2 : F)) (t := segment ℝ (↑y2 : F) (↑y1 : F)) ⋯
J2 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) :=
  preimage (β := (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (⇑φ : (a : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) → (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (setOf_sublevelLeft_subset X Y f t t' y2 y1)
mem_J2_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J2 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
h_mem_Y : ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)), (↑z : F) ∈ Y
hJ1J2 : J1 ∩ J2 = ∅
z : { x : F // x ∈ segment ℝ (↑y1 : F) (↑y2 : F) }
h2 : sublevelLeft X f t' (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
grw : sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
grw₁ : sublevelLeft X f t' (↑(Subtype.mk (p := fun (x : F) ↦ x ∈ Y) (↑z : F) ⋯) : F) ⊆ sublevelLeft X f t' (↑y2 : F)
⊢ z ∈ J2
have grw₂ : sublevelLeft X f t' (↑y2 : F) ⊆ sublevelLeft X f t' (↑y2 : F)
Tactic: grw [mem_J2_iff, (monotone_sublevelLeft ⟨(z : F), h_mem_Y z⟩ htt'.le), h2]
-- Lean 4 proof step from Mathlib.Topology.Sion (hypothesis)
Goal:
E : Type u_1
F : Type u_2
β : Type u_3
inst : LinearOrder β
X : Set E
Y : Set F
f : E → F → β
inst_1 : TopologicalSpace E
inst_2 : AddCommGroup E
inst_3 : Module ℝ E
inst_4 : IsTopologicalAddGroup E
inst_5 : ContinuousSMul ℝ E
ne_X : X.Nonempty
kX : IsCompact X
hfy : ∀ y ∈ Y, LowerSemicontinuousOn.{u_1, u_3} (β := β) (fun (x : E) ↦ f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn.{0, u_1, u_3} ℝ (β := β) X fun (x : E) ↦ f x y
inst_6 : TopologicalSpace F
inst_7 : AddCommGroup F
inst_8 : Module ℝ F
cY : Convex ℝ Y
hfx : ∀ x ∈ X, UpperSemicontinuousOn.{u_2, u_3} (β := β) (fun (y : F) ↦ f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn.{0, u_2, u_3} ℝ (β := β) Y fun (y : F) ↦ f x y
inst_9 : DenselyOrdered β
inst_10 : IsTopologicalAddGroup F
inst_11 : ContinuousSMul ℝ F
t : β
hinfi_le : ∀ (y0 : F) (_ : y0 ∈ Y), ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
t' : β
htt' : t < t'
y1 y2 : { x : F // x ∈ Y }
ht : ∀ x ∈ X, t < max (f x (↑y1 : F)) (f x (↑y2 : F))
ha' : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y1 : F)) (f x (↑y2 : F))) X a
ht' : t' < max (f a (↑y1 : F)) (f a (↑y2 : F))
J1 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) := setOf_sublevelLeft_subset X Y f t t' y1 y2
mem_J1_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J1 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y1 : F)
φ : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) ≃ₜ (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2) :=
  Homeomorph.setCongr (s := segment ℝ (↑y1 : F) (↑y2 : F)) (t := segment ℝ (↑y2 : F) (↑y1 : F)) ⋯
J2 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) :=
  preimage (β := (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (⇑φ : (a : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) → (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (setOf_sublevelLeft_subset X Y f t t' y2 y1)
mem_J2_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J2 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
h_mem_Y : ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)), (↑z : F) ∈ Y
hJ1J2 : J1 ∩ J2 = ∅
⊢ False
have hJ1_union_J2 : Subtype.val (p := fun (x : F) ↦ x ∈ segment ℝ (↑y1 : F) (↑y2 : F)) '' (J1 ∪ J2) = segment ℝ (↑y1 : F) (↑y2 : F)
Tactic: have hJ1_union_J2 : J1 ∪ J2 = segment ℝ (y1 : F) y2 := by
    refine subset_antisymm (by simp) fun z hz ↦ ?_
    lift z to segment ℝ (y1 : F) y2 using hz
    refine ⟨z, ?_, rfl⟩
    apply sublevelLeft_subset_or hfx' hfy hfy' cY a t' y1 y2 ha' ht' z |>.imp
      (fun h1 ↦ ?_) (fun h2 ↦ ?_)
    · grw [mem_J1_iff, (monotone_sublevelLeft ⟨(z : F), h_mem_Y z⟩ htt'.le), h1]
    · grw [mem_J2_iff, (monotone_sublevelLeft ⟨(z : F), h_mem_Y z⟩ htt'.le), h2]
-- Lean 4 proof step from Mathlib.Topology.Sion (hypothesis)
Goal:
E : Type u_1
F : Type u_2
β : Type u_3
inst : LinearOrder β
X : Set E
Y : Set F
f : E → F → β
inst_1 : TopologicalSpace E
inst_2 : AddCommGroup E
inst_3 : Module ℝ E
inst_4 : IsTopologicalAddGroup E
inst_5 : ContinuousSMul ℝ E
ne_X : X.Nonempty
kX : IsCompact X
hfy : ∀ y ∈ Y, LowerSemicontinuousOn.{u_1, u_3} (β := β) (fun (x : E) ↦ f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn.{0, u_1, u_3} ℝ (β := β) X fun (x : E) ↦ f x y
inst_6 : TopologicalSpace F
inst_7 : AddCommGroup F
inst_8 : Module ℝ F
cY : Convex ℝ Y
hfx : ∀ x ∈ X, UpperSemicontinuousOn.{u_2, u_3} (β := β) (fun (y : F) ↦ f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn.{0, u_2, u_3} ℝ (β := β) Y fun (y : F) ↦ f x y
inst_9 : DenselyOrdered β
inst_10 : IsTopologicalAddGroup F
inst_11 : ContinuousSMul ℝ F
t : β
hinfi_le : ∀ (y0 : F) (_ : y0 ∈ Y), ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
t' : β
htt' : t < t'
y1 y2 : { x : F // x ∈ Y }
ht : ∀ x ∈ X, t < max (f x (↑y1 : F)) (f x (↑y2 : F))
ha' : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y1 : F)) (f x (↑y2 : F))) X a
ht' : t' < max (f a (↑y1 : F)) (f a (↑y2 : F))
J1 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) := setOf_sublevelLeft_subset X Y f t t' y1 y2
mem_J1_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J1 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y1 : F)
φ : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) ≃ₜ (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2) :=
  Homeomorph.setCongr (s := segment ℝ (↑y1 : F) (↑y2 : F)) (t := segment ℝ (↑y2 : F) (↑y1 : F)) ⋯
J2 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) :=
  preimage (β := (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (⇑φ : (a : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) → (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (setOf_sublevelLeft_subset X Y f t t' y2 y1)
mem_J2_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J2 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
h_mem_Y : ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)), (↑z : F) ∈ Y
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 :
  Subtype.val (p := fun (x : F) ↦ x ∈ segment ℝ (↑y1 : F) (↑y2 : F)) '' (J1 ∪ J2) = segment ℝ (↑y1 : F) (↑y2 : F)
this : IsPreconnected.{u_2} (α := (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) univ
⊢ False
have hJ1 : IsClosed J1
Tactic: have hJ1 : IsClosed J1 := isClosed_setOf_sublevelLeft_subset ne_X kX hfy hfy'
    cY hfx hfx' a t t' y1 y2 ha' hinfi_le ht' htt'
-- Lean 4 proof step from Mathlib.Topology.Sion (hypothesis)
Goal:
E : Type u_1
F : Type u_2
β : Type u_3
inst : LinearOrder β
X : Set E
Y : Set F
f : E → F → β
inst_1 : TopologicalSpace E
inst_2 : AddCommGroup E
inst_3 : Module ℝ E
inst_4 : IsTopologicalAddGroup E
inst_5 : ContinuousSMul ℝ E
ne_X : X.Nonempty
kX : IsCompact X
hfy : ∀ y ∈ Y, LowerSemicontinuousOn.{u_1, u_3} (β := β) (fun (x : E) ↦ f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn.{0, u_1, u_3} ℝ (β := β) X fun (x : E) ↦ f x y
inst_6 : TopologicalSpace F
inst_7 : AddCommGroup F
inst_8 : Module ℝ F
cY : Convex ℝ Y
hfx : ∀ x ∈ X, UpperSemicontinuousOn.{u_2, u_3} (β := β) (fun (y : F) ↦ f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn.{0, u_2, u_3} ℝ (β := β) Y fun (y : F) ↦ f x y
inst_9 : DenselyOrdered β
inst_10 : IsTopologicalAddGroup F
inst_11 : ContinuousSMul ℝ F
t : β
hinfi_le : ∀ (y0 : F) (_ : y0 ∈ Y), ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
t' : β
htt' : t < t'
y1 y2 : { x : F // x ∈ Y }
ht : ∀ x ∈ X, t < max (f x (↑y1 : F)) (f x (↑y2 : F))
ha' : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y1 : F)) (f x (↑y2 : F))) X a
ht' : t' < max (f a (↑y1 : F)) (f a (↑y2 : F))
J1 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) := setOf_sublevelLeft_subset X Y f t t' y1 y2
mem_J1_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J1 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y1 : F)
φ : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) ≃ₜ (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2) :=
  Homeomorph.setCongr (s := segment ℝ (↑y1 : F) (↑y2 : F)) (t := segment ℝ (↑y2 : F) (↑y1 : F)) ⋯
J2 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) :=
  preimage (β := (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (⇑φ : (a : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) → (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (setOf_sublevelLeft_subset X Y f t t' y2 y1)
mem_J2_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J2 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
h_mem_Y : ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)), (↑z : F) ∈ Y
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 :
  Subtype.val (p := fun (x : F) ↦ x ∈ segment ℝ (↑y1 : F) (↑y2 : F)) '' (J1 ∪ J2) = segment ℝ (↑y1 : F) (↑y2 : F)
this : IsPreconnected.{u_2} (α := (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) univ
hJ1 : IsClosed J1
⊢ IsClosed J2
have ha'₁ : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y2 : F)) (f x (↑y1 : F))) X a
Tactic: simp only [sup_comm (f _ y1)] at ha' ht'
Cleared hypotheses: ha', ht'
-- Lean 4 proof step from Mathlib.Topology.Sion (hypothesis)
Goal:
E : Type u_1
F : Type u_2
β : Type u_3
inst : LinearOrder β
X : Set E
Y : Set F
f : E → F → β
inst_1 : TopologicalSpace E
inst_2 : AddCommGroup E
inst_3 : Module ℝ E
inst_4 : IsTopologicalAddGroup E
inst_5 : ContinuousSMul ℝ E
ne_X : X.Nonempty
kX : IsCompact X
hfy : ∀ y ∈ Y, LowerSemicontinuousOn.{u_1, u_3} (β := β) (fun (x : E) ↦ f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn.{0, u_1, u_3} ℝ (β := β) X fun (x : E) ↦ f x y
inst_6 : TopologicalSpace F
inst_7 : AddCommGroup F
inst_8 : Module ℝ F
cY : Convex ℝ Y
hfx : ∀ x ∈ X, UpperSemicontinuousOn.{u_2, u_3} (β := β) (fun (y : F) ↦ f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn.{0, u_2, u_3} ℝ (β := β) Y fun (y : F) ↦ f x y
inst_9 : DenselyOrdered β
inst_10 : IsTopologicalAddGroup F
inst_11 : ContinuousSMul ℝ F
t : β
hinfi_le : ∀ (y0 : F) (_ : y0 ∈ Y), ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
t' : β
htt' : t < t'
y1 y2 : { x : F // x ∈ Y }
ht : ∀ x ∈ X, t < max (f x (↑y1 : F)) (f x (↑y2 : F))
ha' : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y1 : F)) (f x (↑y2 : F))) X a
ht' : t' < max (f a (↑y1 : F)) (f a (↑y2 : F))
J1 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) := setOf_sublevelLeft_subset X Y f t t' y1 y2
mem_J1_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J1 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y1 : F)
φ : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) ≃ₜ (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2) :=
  Homeomorph.setCongr (s := segment ℝ (↑y1 : F) (↑y2 : F)) (t := segment ℝ (↑y2 : F) (↑y1 : F)) ⋯
J2 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) :=
  preimage (β := (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (⇑φ : (a : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) → (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (setOf_sublevelLeft_subset X Y f t t' y2 y1)
mem_J2_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J2 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
h_mem_Y : ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)), (↑z : F) ∈ Y
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 :
  Subtype.val (p := fun (x : F) ↦ x ∈ segment ℝ (↑y1 : F) (↑y2 : F)) '' (J1 ∪ J2) = segment ℝ (↑y1 : F) (↑y2 : F)
this : IsPreconnected.{u_2} (α := (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) univ
hJ1 : IsClosed J1
ha'₁ : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y2 : F)) (f x (↑y1 : F))) X a
⊢ IsClosed J2
have ht'₁ : t' < max (f a (↑y2 : F)) (f a (↑y1 : F))
Tactic: simp only [sup_comm (f _ y1)] at ha' ht'
Cleared hypotheses: ha', ht'
-- Lean 4 proof step from Mathlib.Topology.Sion (hypothesis)
Goal:
E : Type u_1
F : Type u_2
β : Type u_3
inst : LinearOrder β
X : Set E
Y : Set F
f : E → F → β
inst_1 : TopologicalSpace E
inst_2 : AddCommGroup E
inst_3 : Module ℝ E
inst_4 : IsTopologicalAddGroup E
inst_5 : ContinuousSMul ℝ E
ne_X : X.Nonempty
kX : IsCompact X
hfy : ∀ y ∈ Y, LowerSemicontinuousOn.{u_1, u_3} (β := β) (fun (x : E) ↦ f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn.{0, u_1, u_3} ℝ (β := β) X fun (x : E) ↦ f x y
inst_6 : TopologicalSpace F
inst_7 : AddCommGroup F
inst_8 : Module ℝ F
cY : Convex ℝ Y
hfx : ∀ x ∈ X, UpperSemicontinuousOn.{u_2, u_3} (β := β) (fun (y : F) ↦ f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn.{0, u_2, u_3} ℝ (β := β) Y fun (y : F) ↦ f x y
inst_9 : DenselyOrdered β
inst_10 : IsTopologicalAddGroup F
inst_11 : ContinuousSMul ℝ F
t : β
hinfi_le : ∀ (y0 : F) (_ : y0 ∈ Y), ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
t' : β
htt' : t < t'
y1 y2 : { x : F // x ∈ Y }
ht : ∀ x ∈ X, t < max (f x (↑y1 : F)) (f x (↑y2 : F))
ha' : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y1 : F)) (f x (↑y2 : F))) X a
ht' : t' < max (f a (↑y1 : F)) (f a (↑y2 : F))
J1 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) := setOf_sublevelLeft_subset X Y f t t' y1 y2
mem_J1_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J1 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y1 : F)
φ : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) ≃ₜ (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2) :=
  Homeomorph.setCongr (s := segment ℝ (↑y1 : F) (↑y2 : F)) (t := segment ℝ (↑y2 : F) (↑y1 : F)) ⋯
J2 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) :=
  preimage (β := (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (⇑φ : (a : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) → (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (setOf_sublevelLeft_subset X Y f t t' y2 y1)
mem_J2_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J2 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
h_mem_Y : ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)), (↑z : F) ∈ Y
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 :
  Subtype.val (p := fun (x : F) ↦ x ∈ segment ℝ (↑y1 : F) (↑y2 : F)) '' (J1 ∪ J2) = segment ℝ (↑y1 : F) (↑y2 : F)
this : IsPreconnected.{u_2} (α := (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) univ
hJ1 : IsClosed J1
⊢ False
have hJ2 : IsClosed J2
Tactic: have hJ2 : IsClosed J2 := by
    simp only [sup_comm (f _ y1)] at ha' ht'
    simpa [J2, sup_comm] using isClosed_setOf_sublevelLeft_subset ne_X kX hfy hfy'
      cY hfx hfx' a t t' y2 y1 ha' hinfi_le ht' htt'
-- Lean 4 proof step from Mathlib.Topology.Sion (hypothesis)
Goal:
E : Type u_1
F : Type u_2
β : Type u_3
inst : LinearOrder β
X : Set E
Y : Set F
f : E → F → β
inst_1 : TopologicalSpace E
inst_2 : AddCommGroup E
inst_3 : Module ℝ E
inst_4 : IsTopologicalAddGroup E
inst_5 : ContinuousSMul ℝ E
ne_X : X.Nonempty
kX : IsCompact X
hfy : ∀ y ∈ Y, LowerSemicontinuousOn.{u_1, u_3} (β := β) (fun (x : E) ↦ f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn.{0, u_1, u_3} ℝ (β := β) X fun (x : E) ↦ f x y
inst_6 : TopologicalSpace F
inst_7 : AddCommGroup F
inst_8 : Module ℝ F
cY : Convex ℝ Y
hfx : ∀ x ∈ X, UpperSemicontinuousOn.{u_2, u_3} (β := β) (fun (y : F) ↦ f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn.{0, u_2, u_3} ℝ (β := β) Y fun (y : F) ↦ f x y
inst_9 : DenselyOrdered β
inst_10 : IsTopologicalAddGroup F
inst_11 : ContinuousSMul ℝ F
t : β
hinfi_le : ∀ (y0 : F) (_ : y0 ∈ Y), ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
t' : β
htt' : t < t'
y1 y2 : { x : F // x ∈ Y }
ht : ∀ x ∈ X, t < max (f x (↑y1 : F)) (f x (↑y2 : F))
ha' : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y1 : F)) (f x (↑y2 : F))) X a
ht' : t' < max (f a (↑y1 : F)) (f a (↑y2 : F))
J1 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) := setOf_sublevelLeft_subset X Y f t t' y1 y2
mem_J1_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J1 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y1 : F)
φ : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) ≃ₜ (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2) :=
  Homeomorph.setCongr (s := segment ℝ (↑y1 : F) (↑y2 : F)) (t := segment ℝ (↑y2 : F) (↑y1 : F)) ⋯
J2 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) :=
  preimage (β := (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (⇑φ : (a : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) → (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (setOf_sublevelLeft_subset X Y f t t' y2 y1)
mem_J2_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J2 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
h_mem_Y : ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)), (↑z : F) ∈ Y
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 :
  Subtype.val (p := fun (x : F) ↦ x ∈ segment ℝ (↑y1 : F) (↑y2 : F)) '' (J1 ∪ J2) = segment ℝ (↑y1 : F) (↑y2 : F)
this : IsPreconnected.{u_2} (α := (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) univ
hJ1 : IsClosed J1
hJ2 : IsClosed J2
⊢ False
have h_univ : univ ⊆ J1 ∪ J2
Tactic: have h_univ : univ ⊆ J1 ∪ J2 :=
    image_subset_image_iff Subtype.val_injective |>.mp <| by simp [hJ1_union_J2]
-- Lean 4 proof step from Mathlib.Topology.Sion (hypothesis)
Goal:
E : Type u_1
F : Type u_2
β : Type u_3
inst : LinearOrder β
X : Set E
Y : Set F
f : E → F → β
inst_1 : TopologicalSpace E
inst_2 : AddCommGroup E
inst_3 : Module ℝ E
inst_4 : IsTopologicalAddGroup E
inst_5 : ContinuousSMul ℝ E
ne_X : X.Nonempty
kX : IsCompact X
hfy : ∀ y ∈ Y, LowerSemicontinuousOn.{u_1, u_3} (β := β) (fun (x : E) ↦ f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn.{0, u_1, u_3} ℝ (β := β) X fun (x : E) ↦ f x y
inst_6 : TopologicalSpace F
inst_7 : AddCommGroup F
inst_8 : Module ℝ F
cY : Convex ℝ Y
hfx : ∀ x ∈ X, UpperSemicontinuousOn.{u_2, u_3} (β := β) (fun (y : F) ↦ f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn.{0, u_2, u_3} ℝ (β := β) Y fun (y : F) ↦ f x y
inst_9 : DenselyOrdered β
inst_10 : IsTopologicalAddGroup F
inst_11 : ContinuousSMul ℝ F
t : β
hinfi_le : ∀ (y0 : F) (_ : y0 ∈ Y), ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
t' : β
htt' : t < t'
y1 y2 : { x : F // x ∈ Y }
ht : ∀ x ∈ X, t < max (f x (↑y1 : F)) (f x (↑y2 : F))
ha' : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y1 : F)) (f x (↑y2 : F))) X a
ht' : t' < max (f a (↑y1 : F)) (f a (↑y2 : F))
J1 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) := setOf_sublevelLeft_subset X Y f t t' y1 y2
mem_J1_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J1 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y1 : F)
φ : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) ≃ₜ (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2) :=
  Homeomorph.setCongr (s := segment ℝ (↑y1 : F) (↑y2 : F)) (t := segment ℝ (↑y2 : F) (↑y1 : F)) ⋯
J2 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) :=
  preimage (β := (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (⇑φ : (a : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) → (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (setOf_sublevelLeft_subset X Y f t t' y2 y1)
mem_J2_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J2 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
h_mem_Y : ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)), (↑z : F) ∈ Y
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 :
  Subtype.val (p := fun (x : F) ↦ x ∈ segment ℝ (↑y1 : F) (↑y2 : F)) '' (J1 ∪ J2) = segment ℝ (↑y1 : F) (↑y2 : F)
this : IsPreconnected.{u_2} (α := (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) univ
hJ1 : IsClosed J1
hJ2 : IsClosed J2
h_univ : univ ⊆ J1 ∪ J2
⊢ False
have h_inter : univ ∩ (J1 ∩ J2) = ∅
Tactic: have h_inter : univ ∩ (J1 ∩ J2) = ∅ := by simp [hJ1J2]
-- Lean 4 proof step from Mathlib.Topology.Sion (hypothesis)
Goal:
E : Type u_1
F : Type u_2
β : Type u_3
inst : LinearOrder β
X : Set E
Y : Set F
f : E → F → β
inst_1 : TopologicalSpace E
inst_2 : AddCommGroup E
inst_3 : Module ℝ E
inst_4 : IsTopologicalAddGroup E
inst_5 : ContinuousSMul ℝ E
ne_X : X.Nonempty
kX : IsCompact X
hfy : ∀ y ∈ Y, LowerSemicontinuousOn.{u_1, u_3} (β := β) (fun (x : E) ↦ f x y) X
hfy' : ∀ y ∈ Y, QuasiconvexOn.{0, u_1, u_3} ℝ (β := β) X fun (x : E) ↦ f x y
inst_6 : TopologicalSpace F
inst_7 : AddCommGroup F
inst_8 : Module ℝ F
cY : Convex ℝ Y
hfx : ∀ x ∈ X, UpperSemicontinuousOn.{u_2, u_3} (β := β) (fun (y : F) ↦ f x y) Y
hfx' : ∀ x ∈ X, QuasiconcaveOn.{0, u_2, u_3} ℝ (β := β) Y fun (y : F) ↦ f x y
inst_9 : DenselyOrdered β
inst_10 : IsTopologicalAddGroup F
inst_11 : ContinuousSMul ℝ F
t : β
hinfi_le : ∀ (y0 : F) (_ : y0 ∈ Y), ∃ x ∈ X, f x y0 ≤ t
a : E
ha : a ∈ X
t' : β
htt' : t < t'
y1 y2 : { x : F // x ∈ Y }
ht : ∀ x ∈ X, t < max (f x (↑y1 : F)) (f x (↑y2 : F))
ha' : IsMinOn.{u_1, u_3} (β := β) (fun (x : E) ↦ max (f x (↑y1 : F)) (f x (↑y2 : F))) X a
ht' : t' < max (f a (↑y1 : F)) (f a (↑y2 : F))
J1 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) := setOf_sublevelLeft_subset X Y f t t' y1 y2
mem_J1_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J1 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y1 : F)
φ : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) ≃ₜ (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2) :=
  Homeomorph.setCongr (s := segment ℝ (↑y1 : F) (↑y2 : F)) (t := segment ℝ (↑y2 : F) (↑y1 : F)) ⋯
J2 : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2) :=
  preimage (β := (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (⇑φ : (a : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) → (↑(segment ℝ (↑y2 : F) (↑y1 : F)) : Type u_2))
    (setOf_sublevelLeft_subset X Y f t t' y2 y1)
mem_J2_iff :
  ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
    z ∈ J2 ↔ sublevelLeft X f t (↑z : F) ⊆ sublevelLeft X f t' (↑y2 : F)
h_mem_Y : ∀ (z : (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)), (↑z : F) ∈ Y
hJ1J2 : J1 ∩ J2 = ∅
hJ1_union_J2 :
  Subtype.val (p := fun (x : F) ↦ x ∈ segment ℝ (↑y1 : F) (↑y2 : F)) '' (J1 ∪ J2) = segment ℝ (↑y1 : F) (↑y2 : F)
this : IsPreconnected.{u_2} (α := (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)) univ
hJ1 : IsClosed J1
hJ2 : IsClosed J2
h_univ : univ ⊆ J1 ∪ J2
h_inter : univ ∩ (J1 ∩ J2) = ∅
⊢ False
have this₁ : ∀ (u v : Set (↑(segment ℝ (↑y1 : F) (↑y2 : F)) : Type u_2)),
  IsClosed u → IsClosed v → univ ⊆ u ∪ v → univ ∩ (u ∩ v) = ∅ → univ ⊆ u ∨ univ ⊆ v
Tactic: rw [isPreconnected_iff_subset_of_disjoint_closed] at this
Cleared hypotheses: this, hJ1, hJ2, h_univ, h_inter