internlm/Lean-Github huggingface dataset:
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
⊢ c ∈ f ⁻¹' Set.Ico (f c) b
Tactic:
aesop
Proof state after:
no goals
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
⊢ Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
Tactic:
intro x hx
Proof state after:
case h.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hx : x ∈ Set.Ico c b'
⊢ x ∈ f ⁻¹' Set.Ico (f c) b
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hx : x ∈ Set.Ico c b'
h7 : x ∈ Set.Ico c' b'
⊢ x ∈ f ⁻¹' Set.Ico (f c) b
Tactic:
rw [hcb'] at h7
Proof state after:
case h.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hx : x ∈ Set.Ico c b'
h7 : x ∈ t
⊢ x ∈ f ⁻¹' Set.Ico (f c) b
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hx : x ∈ Set.Ico c b'
h7 : x ∈ t
⊢ x ∈ f ⁻¹' Set.Ico (f c) b
Tactic:
exact ht h7
Proof state after:
no goals
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hx : x ∈ Set.Ico c b'
⊢ x ∈ Set.Ico c' b'
Tactic:
cases' hx with hxl hxr
Proof state after:
case intro
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hxl : c ≤ x
hxr : x < b'
⊢ x ∈ Set.Ico c' b'
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case intro
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hxl : c ≤ x
hxr : x < b'
⊢ x ∈ Set.Ico c' b'
Tactic:
constructor
Proof state after:
case intro.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hxl : c ≤ x
hxr : x < b'
⊢ c' ≤ x

case intro.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hxl : c ≤ x
hxr : x < b'
⊢ x < b'
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case intro.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hxl : c ≤ x
hxr : x < b'
⊢ c' ≤ x
Tactic:
exact htc.1.trans hxl
Proof state after:
no goals
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case intro.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
x : ℝ
hxl : c ≤ x
hxr : x < b'
⊢ x < b'
Tactic:
exact hxr
Proof state after:
no goals
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
c : ℝ
hc : c ∈ f ⁻¹' ab
h2 : IsOpen (Set.Ico (f c) b)
h3 : IsOpen (f ⁻¹' Set.Ico (f c) b)
h4 : c ∈ f ⁻¹' Set.Ico (f c) b
t : Set ℝ
c' b' : ℝ
hcb' : Set.Ico c' b' = t
htc : c ∈ Set.Ico c' b'
ht : t ⊆ f ⁻¹' Set.Ico (f c) b
⊢ c < b' ∧ f c < b
Tactic:
exact ⟨htc.2, h4.2⟩
Proof state after:
no goals
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
⊢ ∀ c ∈ f ⁻¹' ab, ∃ t ∈ open_intervals, c ∈ t ∧ t ⊆ f ⁻¹' ab
Tactic:
intro c hc
Proof state after:
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
⊢ ∃ t ∈ open_intervals, c ∈ t ∧ t ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
⊢ ∃ t ∈ open_intervals, c ∈ t ∧ t ⊆ f ⁻¹' ab
Tactic:
obtain ⟨ a', ha', ⟨ ineq1a, ineq1b⟩ ⟩ := h6oc c hc
Proof state after:
case intro.intro.intro
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
⊢ ∃ t ∈ open_intervals, c ∈ t ∧ t ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case intro.intro.intro
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
⊢ ∃ t ∈ open_intervals, c ∈ t ∧ t ⊆ f ⁻¹' ab
Tactic:
obtain ⟨ b', hb', ⟨ ineq2a, ineq2b⟩ ⟩ := h6co c hc
Proof state after:
case intro.intro.intro.intro.intro.intro
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ ∃ t ∈ open_intervals, c ∈ t ∧ t ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case intro.intro.intro.intro.intro.intro
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ ∃ t ∈ open_intervals, c ∈ t ∧ t ⊆ f ⁻¹' ab
Tactic:
use Set.Ioo a' b'
Proof state after:
case h
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ Set.Ioo a' b' ∈ open_intervals ∧ c ∈ Set.Ioo a' b' ∧ Set.Ioo a' b' ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ Set.Ioo a' b' ∈ open_intervals ∧ c ∈ Set.Ioo a' b' ∧ Set.Ioo a' b' ⊆ f ⁻¹' ab
Tactic:
constructor
Proof state after:
case h.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ Set.Ioo a' b' ∈ open_intervals

case h.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ c ∈ Set.Ioo a' b' ∧ Set.Ioo a' b' ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ Set.Ioo a' b' ∈ open_intervals
Tactic:
exact ⟨a', b', rfl⟩
Proof state after:
no goals
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ c ∈ Set.Ioo a' b' ∧ Set.Ioo a' b' ⊆ f ⁻¹' ab
Tactic:
constructor
Proof state after:
case h.right.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ c ∈ Set.Ioo a' b'

case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.right.left
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ c ∈ Set.Ioo a' b'
Tactic:
exact ⟨ineq1a, ineq2a⟩
Proof state after:
no goals
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Tactic:
have ilem1 := Set.Ioc_union_Ico_eq_Ioo ineq1a ineq2a
Proof state after:
case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
ilem1 : Set.Ioc a' c ∪ Set.Ico c b' = Set.Ioo a' b'
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
ilem1 : Set.Ioc a' c ∪ Set.Ico c b' = Set.Ioo a' b'
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Tactic:
have ilem2 := Set.Ioc_union_Ico_eq_Ioo ineq1b ineq2b
Proof state after:
case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
ilem1 : Set.Ioc a' c ∪ Set.Ico c b' = Set.Ioo a' b'
ilem2 : Set.Ioc a (f c) ∪ Set.Ico (f c) b = Set.Ioo a b
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
ilem1 : Set.Ioc a' c ∪ Set.Ico c b' = Set.Ioo a' b'
ilem2 : Set.Ioc a (f c) ∪ Set.Ico (f c) b = Set.Ioo a b
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Tactic:
have subeq :
  Set.Ioc a' c ∪ Set.Ico c b' ⊆ f ⁻¹' Set.Ioc a (f c) ∪ f ⁻¹' Set.Ico (f c) b
  := Set.union_subset_union ha' hb'
Proof state after:
case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
ilem1 : Set.Ioc a' c ∪ Set.Ico c b' = Set.Ioo a' b'
ilem2 : Set.Ioc a (f c) ∪ Set.Ico (f c) b = Set.Ioo a b
subeq : Set.Ioc a' c ∪ Set.Ico c b' ⊆ f ⁻¹' Set.Ioc a (f c) ∪ f ⁻¹' Set.Ico (f c) b
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
ilem1 : Set.Ioc a' c ∪ Set.Ico c b' = Set.Ioo a' b'
ilem2 : Set.Ioc a (f c) ∪ Set.Ico (f c) b = Set.Ioo a b
subeq : Set.Ioc a' c ∪ Set.Ico c b' ⊆ f ⁻¹' Set.Ioc a (f c) ∪ f ⁻¹' Set.Ico (f c) b
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Tactic:
rw [ilem1, ←Set.preimage_union, ilem2, hab] at subeq
Proof state after:
case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
ilem1 : Set.Ioc a' c ∪ Set.Ico c b' = Set.Ioo a' b'
ilem2 : Set.Ioc a (f c) ∪ Set.Ico (f c) b = Set.Ioo a b
subeq : Set.Ioo a' b' ⊆ f ⁻¹' ab
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Theorem: UpperLowerContinuous.continuous_of_upper_lower_continuous
Proof state before:
case h.right.right
f : ℝ → ℝ
huc : Continuous f
hlc : Continuous f
ab : Set ℝ
a b : ℝ
hab : Set.Ioo a b = ab
h6oc : ∀ c ∈ f ⁻¹' ab, ∃ a', Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c) ∧ a' < c ∧ a < f c
h6co : ∀ c ∈ f ⁻¹' ab, ∃ b', Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b ∧ c < b' ∧ f c < b
c : ℝ
hc : c ∈ f ⁻¹' ab
a' : ℝ
ha' : Set.Ioc a' c ⊆ f ⁻¹' Set.Ioc a (f c)
ineq1a : a' < c
ineq1b : a < f c
b' : ℝ
hb' : Set.Ico c b' ⊆ f ⁻¹' Set.Ico (f c) b
ineq2a : c < b'
ineq2b : f c < b
ilem1 : Set.Ioc a' c ∪ Set.Ico c b' = Set.Ioo a' b'
ilem2 : Set.Ioc a (f c) ∪ Set.Ico (f c) b = Set.Ioo a b
subeq : Set.Ioo a' b' ⊆ f ⁻¹' ab
⊢ Set.Ioo a' b' ⊆ f ⁻¹' ab
Tactic:
exact subeq
Proof state after:
no goals
Theorem: UpperLowerContinuous.infinite_interval_lower_open
Proof state before:
x : ℝ
⊢ IsOpen (Set.Ici x)
Tactic:
rw [@TopologicalSpace.IsTopologicalBasis.isOpen_iff
        ℝ tₗ _ lower_intervals lower_basis]
Proof state after:
x : ℝ
⊢ ∀ a ∈ Set.Ici x, ∃ t ∈ lower_intervals, a ∈ t ∧ t ⊆ Set.Ici x
Theorem: UpperLowerContinuous.infinite_interval_lower_open
Proof state before:
x : ℝ
⊢ ∀ a ∈ Set.Ici x, ∃ t ∈ lower_intervals, a ∈ t ∧ t ⊆ Set.Ici x
Tactic:
intro a ha
Proof state after:
x a : ℝ
ha : a ∈ Set.Ici x
⊢ ∃ t ∈ lower_intervals, a ∈ t ∧ t ⊆ Set.Ici x
Theorem: UpperLowerContinuous.infinite_interval_lower_open
Proof state before:
x a : ℝ
ha : a ∈ Set.Ici x
⊢ ∃ t ∈ lower_intervals, a ∈ t ∧ t ⊆ Set.Ici x
Tactic:
use Set.Ico a (a + 1)
Proof state after:
case h
x a : ℝ
ha : a ∈ Set.Ici x
⊢ Set.Ico a (a + 1) ∈ lower_intervals ∧ a ∈ Set.Ico a (a + 1) ∧ Set.Ico a (a + 1) ⊆ Set.Ici x
Theorem: UpperLowerContinuous.infinite_interval_lower_open
Proof state before:
case h
x a : ℝ
ha : a ∈ Set.Ici x
⊢ Set.Ico a (a + 1) ∈ lower_intervals ∧ a ∈ Set.Ico a (a + 1) ∧ Set.Ico a (a + 1) ⊆ Set.Ici x
Tactic:
constructor
Proof state after:
case h.left
x a : ℝ
ha : a ∈ Set.Ici x
⊢ Set.Ico a (a + 1) ∈ lower_intervals

case h.right
x a : ℝ
ha : a ∈ Set.Ici x
⊢ a ∈ Set.Ico a (a + 1) ∧ Set.Ico a (a + 1) ⊆ Set.Ici x
Theorem: UpperLowerContinuous.infinite_interval_lower_open
Proof state before:
case h.left
x a : ℝ
ha : a ∈ Set.Ici x
⊢ Set.Ico a (a + 1) ∈ lower_intervals
Tactic:
exact ⟨a, a + 1, rfl⟩
Proof state after:
no goals
Theorem: UpperLowerContinuous.infinite_interval_lower_open
Proof state before:
case h.right
x a : ℝ
ha : a ∈ Set.Ici x
⊢ a ∈ Set.Ico a (a + 1) ∧ Set.Ico a (a + 1) ⊆ Set.Ici x
Tactic:
constructor
Proof state after:
case h.right.left
x a : ℝ
ha : a ∈ Set.Ici x
⊢ a ∈ Set.Ico a (a + 1)

case h.right.right
x a : ℝ
ha : a ∈ Set.Ici x
⊢ Set.Ico a (a + 1) ⊆ Set.Ici x