Theorem: MeasureTheory.Content.innerContent_exists_compact
File: Mathlib/MeasureTheory/Measure/Content.lean

tactic: have h'ε := ENNReal.coe_ne_zero.2 hε
state_before: G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U : Opens G
hU : innerContent μ U ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
⊢ ∃ K, ↑K ⊆ ↑U ∧ innerContent μ U ≤ (fun s => ↑(toFun μ s)) K + ↑ε

tactic: cases' le_or_lt (μ.innerContent U) ε with h h
state_before: G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U : Opens G
hU : innerContent μ U ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
h'ε : ↑ε ≠ 0
⊢ ∃ K, ↑K ⊆ ↑U ∧ innerContent μ U ≤ (fun s => ↑(toFun μ s)) K + ↑ε

tactic: have h₂ := ENNReal.sub_lt_self hU h.ne_bot h'ε
state_before: case inr
G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U : Opens G
hU : innerContent μ U ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
h'ε : ↑ε ≠ 0
h : ↑ε < innerContent μ U
⊢ ∃ K, ↑K ⊆ ↑U ∧ innerContent μ U ≤ (fun s => ↑(toFun μ s)) K + ↑ε

tactic: conv at h₂ => rhs; rw [innerContent]
state_before: case inr
G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U : Opens G
hU : innerContent μ U ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
h'ε : ↑ε ≠ 0
h : ↑ε < innerContent μ U
h₂ : innerContent μ U - ↑ε < innerContent μ U
⊢ ∃ K, ↑K ⊆ ↑U ∧ innerContent μ U ≤ (fun s => ↑(toFun μ s)) K + ↑ε

tactic: simp only [lt_iSup_iff] at h₂
state_before: case inr
G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U : Opens G
hU : innerContent μ U ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
h'ε : ↑ε ≠ 0
h : ↑ε < innerContent μ U
h₂ : innerContent μ U - ↑ε < ⨆ (K : Compacts G) (_ : ↑K ⊆ ↑U), (fun s => ↑(toFun μ s)) K
⊢ ∃ K, ↑K ⊆ ↑U ∧ innerContent μ U ≤ (fun s => ↑(toFun μ s)) K + ↑ε

tactic: rcases h₂ with ⟨U, h1U, h2U⟩
state_before: case inr
G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U : Opens G
hU : innerContent μ U ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
h'ε : ↑ε ≠ 0
h : ↑ε < innerContent μ U
h₂ : ∃ i i_1, innerContent μ U - ↑ε < ↑(toFun μ i)
⊢ ∃ K, ↑K ⊆ ↑U ∧ innerContent μ U ≤ (fun s => ↑(toFun μ s)) K + ↑ε

tactic: refine' ⟨U, h1U, _⟩
state_before: case inr.intro.intro
G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U✝ : Opens G
hU : innerContent μ U✝ ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
h'ε : ↑ε ≠ 0
h : ↑ε < innerContent μ U✝
U : Compacts G
h1U : ↑U ⊆ ↑U✝
h2U : innerContent μ U✝ - ↑ε < ↑(toFun μ U)
⊢ ∃ K, ↑K ⊆ ↑U✝ ∧ innerContent μ U✝ ≤ (fun s => ↑(toFun μ s)) K + ↑ε

tactic: rw [← tsub_le_iff_right]
state_before: case inr.intro.intro
G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U✝ : Opens G
hU : innerContent μ U✝ ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
h'ε : ↑ε ≠ 0
h : ↑ε < innerContent μ U✝
U : Compacts G
h1U : ↑U ⊆ ↑U✝
h2U : innerContent μ U✝ - ↑ε < ↑(toFun μ U)
⊢ innerContent μ U✝ ≤ (fun s => ↑(toFun μ s)) U + ↑ε

tactic: exact le_of_lt h2U
state_before: case inr.intro.intro
G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U✝ : Opens G
hU : innerContent μ U✝ ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
h'ε : ↑ε ≠ 0
h : ↑ε < innerContent μ U✝
U : Compacts G
h1U : ↑U ⊆ ↑U✝
h2U : innerContent μ U✝ - ↑ε < ↑(toFun μ U)
⊢ innerContent μ U✝ - ↑ε ≤ (fun s => ↑(toFun μ s)) U

tactic: exact ⟨⊥, empty_subset _, le_add_left h⟩
state_before: case inl
G : Type w
inst✝ : TopologicalSpace G
μ : Content G
U : Opens G
hU : innerContent μ U ≠ ⊤
ε : ℝ≥0
hε : ε ≠ 0
h'ε : ↑ε ≠ 0
h : innerContent μ U ≤ ↑ε
⊢ ∃ K, ↑K ⊆ ↑U ∧ innerContent μ U ≤ (fun s => ↑(toFun μ s)) K + ↑ε