awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : c < (g : (a : Y) → ℝ) y
h : a ∉ range (ι := X) (⇑f : (a : X) → ℝ)
⊢ c - (b - c) < HSub.hSub (α := ℝ) ((g : (a : Y) → ℝ) y : ℝ) (b - c)

Tactic:
sub_lt_sub_right hc _

Premises used: sub_lt_sub_right
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : c < (g : (a : Y) → ℝ) y
h : a ∉ range (ι := X) (⇑f : (a : X) → ℝ)
⊢ HSub.hSub (α := ℝ) ((g : (a : Y) → ℝ) y : ℝ) (b - c) ≤
    HSub.hSub (α := ℝ) (β := ℝ) ((g : (a : Y) → ℝ) y : ℝ) ((dg : (a : Y) → ℝ) y : ℝ)

Tactic:
sub_le_sub_left (dgmem _).2 _

Premises used: And.right, sub_le_sub_left
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : c < (g : (a : Y) → ℝ) y
h : a ∉ range (ι := X) (⇑f : (a : X) → ℝ)
a₁ : a = c - (b - c)
⊢ a < (g - dg : (a : Y) → ℝ) y

Tactic:
calc
          a = c - (b - c) := by rw [← hsub, sub_sub_cancel]
          _ < g y - (b - c) := sub_lt_sub_right hc _
          _ ≤ g y - dg y := sub_le_sub_left (dgmem _).2 _

Premises used: HSub.hSub, And.right, sub_le_sub_left, sub_lt_sub_right, DFunLike.coe
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : c < (g : (a : Y) → ℝ) y
h : a ∉ range (ι := X) (⇑f : (a : X) → ℝ)
⊢ a < (g - dg : (a : Y) → ℝ) y

Tactic:
have hay : a < (g - dg) y := by
        calc
          a = c - (b - c) := by rw [← hsub, sub_sub_cancel]
          _ < g y - (b - c) := sub_lt_sub_right hc _
          _ ≤ g y - dg y := sub_le_sub_left (dgmem _).2 _
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : c < (g : (a : Y) → ℝ) y
h : a ∉ range (ι := X) (⇑f : (a : X) → ℝ)
hay : a < (g - dg : (a : Y) → ℝ) y
inr :
  ∀ (x : X),
    a ≤ (f : (a : X) → ℝ) x →
      ∀ (hxy : LT.lt (α := ℝ) ((f : (a : X) → ℝ) x : ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ)),
        ∃ (x₁ : X) (x₂ : X),
          Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
            ((g - dg : (a : Y) → ℝ) y : ℝ)
⊢ ∃ (x₁ : X) (x₂ : X),
    Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
      ((g - dg : (a : Y) → ℝ) y : ℝ)

Tactic:
rcases ha.exists_between hay with ⟨_, ⟨x, rfl⟩, _, hxy⟩

Premises used: IsGLB.exists_between, rfl
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : c < (g : (a : Y) → ℝ) y
h : a ∉ range (ι := X) (⇑f : (a : X) → ℝ)
hay : a < (g - dg : (a : Y) → ℝ) y
x : X
left : a ≤ (f : (a : X) → ℝ) x
hxy : LT.lt (α := ℝ) ((f : (a : X) → ℝ) x : ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ)
⊢ ∃ (x₁ : X) (x₂ : X),
    Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
      ((g - dg : (a : Y) → ℝ) y : ℝ)

Tactic:
⟨x, xu, hxy.le, hyxu.le⟩

Premises used: LT.lt.le, And.intro, Exists.intro
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : c < (g : (a : Y) → ℝ) y
h : a ∉ range (ι := X) (⇑f : (a : X) → ℝ)
hay : a < (g - dg : (a : Y) → ℝ) y
x : X
left : a ≤ (f : (a : X) → ℝ) x
hxy : LT.lt (α := ℝ) ((f : (a : X) → ℝ) x : ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ)
⊢ ∃ (x₁ : X) (x₂ : X),
    Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
      ((g - dg : (a : Y) → ℝ) y : ℝ)

Tactic:
exact ⟨x, xu, hxy.le, hyxu.le⟩
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : (g : (a : Y) → ℝ) y ≤ c
⊢ ∃ (x₁ : X) (x₂ : X),
    Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
      ((g - dg : (a : Y) → ℝ) y : ℝ)

Tactic:
⟨xl y, xu, ?_, hyxu.le⟩

Premises used: LT.lt.le, And.intro, Exists.intro
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : (g : (a : Y) → ℝ) y ≤ c
inr : LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ)
⊢ ∃ (x₁ : X) (x₂ : X),
    Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
      ((g - dg : (a : Y) → ℝ) y : ℝ)

Tactic:
refine ⟨xl y, xu, ?_, hyxu.le⟩
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
inst_3 : Nonempty X
f : X →ᵇ ℝ
e : X → Y
he : IsClosedEmbedding e
inhabited_h : Inhabited X
a : ℝ
ha : IsGLB (range (ι := X) (⇑f : (a : X) → ℝ)) a
b : ℝ
hb : IsLUB (range (ι := X) (⇑f : (a : X) → ℝ)) b
hmem : ∀ (x : X), Membership.mem (α := ℝ) (Icc a b) ((f : (a : X) → ℝ) x : ℝ)
hle : a ≤ b
hlt : a < b
c : ℝ := (a + b) / 2
hac : a < c
hcb : c < b
hsub : c - a = b - c
g : Y →ᵇ ℝ
xl : (y : Y) → X
hxl : ∀ (y : Y), LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g : (a : Y) → ℝ) y : ℝ)
hgb : ∀ (y : Y), (g : (a : Y) → ℝ) y ≤ b
hb' : ¬∃ (x : X), (f : (a : X) → ℝ) x = b
hd : Disjoint (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dg : Y →ᵇ ℝ
dg0 : EqOn (β := ℝ) (⇑dg : (a : Y) → ℝ) (Function.const Y 0) (range e ∪ (⇑g : (a : Y) → ℝ) ⁻¹' Iic c)
dgb : EqOn (⇑dg : (a : Y) → ℝ) (Function.const Y (b - c)) (preimage (β := ℝ) (⇑g : (a : Y) → ℝ) {b})
dgmem : ∀ (x : Y), Membership.mem (α := ℝ) (Icc 0 (b - c)) ((dg : (a : Y) → ℝ) x : ℝ)
hgf : ∀ (x : X), Eq (α := ℝ) ((g - dg : (a : Y) → ℝ) (e x) : ℝ) ((f : (a : X) → ℝ) x : ℝ)
y : Y
hyb : (g - dg : (a : Y) → ℝ) y < b
xu : X
hyxu : LT.lt (α := ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ) ((f : (a : X) → ℝ) xu : ℝ)
right : (f : (a : X) → ℝ) xu ≤ b
hc : (g : (a : Y) → ℝ) y ≤ c
⊢ LE.le (α := ℝ) ((f : (a : X) → ℝ) (xl y) : ℝ) ((g - dg : (a : Y) → ℝ) y : ℝ)

Tactic:
simp [dg0 (Or.inr hc), hxl]

Premises used: Or.inr
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
f : X →ᵇ ℝ
t : Set ℝ
e : X → Y
hs : t.OrdConnected
hf : ∀ (x : X), Membership.mem (α := ℝ) t ((f : (a : X) → ℝ) x : ℝ)
hne : t.Nonempty
he : IsClosedEmbedding e
inl :
  IsEmpty X →
    ∃ (g : Y →ᵇ ℝ),
      (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
        Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)
inr :
  Nonempty X →
    ∃ (g : Y →ᵇ ℝ),
      (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
        Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)
⊢ ∃ (g : Y →ᵇ ℝ),
    (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
      Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)

Tactic:
cases isEmpty_or_nonempty X

Premises used: isEmpty_or_nonempty
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
f : X →ᵇ ℝ
t : Set ℝ
e : X → Y
hs : t.OrdConnected
hf : ∀ (x : X), Membership.mem (α := ℝ) t ((f : (a : X) → ℝ) x : ℝ)
hne : t.Nonempty
he : IsClosedEmbedding e
h : IsEmpty X
inl :
  ∀ (c : ℝ) (hc : c ∈ t),
    ∃ (g : Y →ᵇ ℝ),
      (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
        Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)
⊢ ∃ (g : Y →ᵇ ℝ),
    (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
      Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)

Tactic:
rcases hne with ⟨c, hc⟩
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
f : X →ᵇ ℝ
t : Set ℝ
e : X → Y
hs : t.OrdConnected
hf : ∀ (x : X), Membership.mem (α := ℝ) t ((f : (a : X) → ℝ) x : ℝ)
he : IsClosedEmbedding e
h : IsEmpty X
c : ℝ
hc : c ∈ t
⊢ ∃ (g : Y →ᵇ ℝ),
    (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
      Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)

Tactic:
⟨const Y c, fun _ => hc, funext fun x => isEmptyElim x⟩

Premises used: isEmptyElim, funext, BoundedContinuousFunction.const, And.intro, Exists.intro
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
f : X →ᵇ ℝ
t : Set ℝ
e : X → Y
hs : t.OrdConnected
hf : ∀ (x : X), Membership.mem (α := ℝ) t ((f : (a : X) → ℝ) x : ℝ)
he : IsClosedEmbedding e
h : IsEmpty X
c : ℝ
hc : c ∈ t
⊢ ∃ (g : Y →ᵇ ℝ),
    (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
      Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)

Tactic:
exact ⟨const Y c, fun _ => hc, funext fun x => isEmptyElim x⟩
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
f : X →ᵇ ℝ
t : Set ℝ
e : X → Y
hs : t.OrdConnected
hf : ∀ (x : X), Membership.mem (α := ℝ) t ((f : (a : X) → ℝ) x : ℝ)
hne : t.Nonempty
he : IsClosedEmbedding e
h : Nonempty X
inr :
  ∀ (g : Y →ᵇ ℝ)
    (hg :
      ∀ (y : Y),
        ∃ (x₁ : X) (x₂ : X),
          Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
            ((g : (a : Y) → ℝ) y : ℝ))
    (hgf : Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)),
    ∃ (g : Y →ᵇ ℝ),
      (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
        Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)
⊢ ∃ (g : Y →ᵇ ℝ),
    (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
      Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)

Tactic:
rcases exists_extension_forall_exists_le_ge_of_isClosedEmbedding f he with ⟨g, hg, hgf⟩

Premises used: BoundedContinuousFunction.exists_extension_forall_exists_le_ge_of_isClosedEmbedding
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
f : X →ᵇ ℝ
t : Set ℝ
e : X → Y
hs : t.OrdConnected
hf : ∀ (x : X), Membership.mem (α := ℝ) t ((f : (a : X) → ℝ) x : ℝ)
hne : t.Nonempty
he : IsClosedEmbedding e
h : Nonempty X
g : Y →ᵇ ℝ
hg :
  ∀ (y : Y),
    ∃ (x₁ : X) (x₂ : X),
      Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
        ((g : (a : Y) → ℝ) y : ℝ)
hgf : Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)
⊢ ∃ (g : Y →ᵇ ℝ),
    (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
      Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)

Tactic:
⟨g, fun y => ?_, hgf⟩

Premises used: And.intro, Exists.intro
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
f : X →ᵇ ℝ
t : Set ℝ
e : X → Y
hs : t.OrdConnected
hf : ∀ (x : X), Membership.mem (α := ℝ) t ((f : (a : X) → ℝ) x : ℝ)
hne : t.Nonempty
he : IsClosedEmbedding e
h : Nonempty X
g : Y →ᵇ ℝ
hg :
  ∀ (y : Y),
    ∃ (x₁ : X) (x₂ : X),
      Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
        ((g : (a : Y) → ℝ) y : ℝ)
hgf : Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)
inr : ∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)
⊢ ∃ (g : Y →ᵇ ℝ),
    (∀ (y : Y), Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)) ∧
      Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)

Tactic:
refine ⟨g, fun y => ?_, hgf⟩
-- Module: Mathlib.Topology.TietzeExtension
Goal:
X : Type u_1
Y : Type u_2
inst : TopologicalSpace X
inst_1 : TopologicalSpace Y
inst_2 : NormalSpace Y
f : X →ᵇ ℝ
t : Set ℝ
e : X → Y
hs : t.OrdConnected
hf : ∀ (x : X), Membership.mem (α := ℝ) t ((f : (a : X) → ℝ) x : ℝ)
hne : t.Nonempty
he : IsClosedEmbedding e
h : Nonempty X
g : Y →ᵇ ℝ
hg :
  ∀ (y : Y),
    ∃ (x₁ : X) (x₂ : X),
      Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) x₁) ((f : (a : X) → ℝ) x₂) : Set ℝ)
        ((g : (a : Y) → ℝ) y : ℝ)
hgf : Eq (α := X → ℝ) ((⇑g : (a : Y) → ℝ) ∘ e) (⇑f : (a : X) → ℝ)
y : Y
inr :
  ∀ (xl xu : X)
    (h :
      Membership.mem (α := ℝ) (γ := Set ℝ) (Icc ((f : (a : X) → ℝ) xl) ((f : (a : X) → ℝ) xu) : Set ℝ)
        ((g : (a : Y) → ℝ) y : ℝ)),
    Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)
⊢ Membership.mem (α := ℝ) t ((g : (a : Y) → ℝ) y : ℝ)

Tactic:
rcases hg y with ⟨xl, xu, h⟩