Theorem: IsCompact.exists_isOpen_lt_of_lt
File: Mathlib/MeasureTheory/Measure/Regular.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝⁵ : MeasurableSpace α
inst✝⁴ : TopologicalSpace α
μ : Measure α
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure μ
inst✝¹ : R1Space α
inst✝ : BorelSpace α
K : Set α
hK : IsCompact K
r : ℝ≥0∞
hr : μ K < r
⊢ ∃ U, K ⊆ U ∧ IsOpen U ∧ μ U < r
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : MeasurableSpace α
inst✝⁴ : TopologicalSpace α
μ : Measure α
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure μ
inst✝¹ : R1Space α
inst✝ : BorelSpace α
K : Set α
hK : IsCompact K
r : ℝ≥0∞
hr : μ K < r
V : Set α
hKV : V ⊇ K
hVo : IsOpen V
hμV : μ V < ⊤
⊢ ∃ U, K ⊆ U ∧ IsOpen U ∧ μ U < r
tactic: rcases hK.exists_open_superset_measure_lt_top μ with ⟨V, hKV, hVo, hμV⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : MeasurableSpace α
inst✝⁴ : TopologicalSpace α
μ : Measure α
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure μ
inst✝¹ : R1Space α
inst✝ : BorelSpace α
K : Set α
hK : IsCompact K
r : ℝ≥0∞
hr : μ K < r
V : Set α
hKV : V ⊇ K
hVo : IsOpen V
hμV : μ V < ⊤
⊢ ∃ U, K ⊆ U ∧ IsOpen U ∧ μ U < r
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : MeasurableSpace α
inst✝⁴ : TopologicalSpace α
μ : Measure α
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure μ
inst✝¹ : R1Space α
inst✝ : BorelSpace α
K : Set α
hK : IsCompact K
r : ℝ≥0∞
hr : μ K < r
V : Set α
hKV : V ⊇ K
hVo : IsOpen V
hμV : μ V < ⊤
this : Fact (μ V < ⊤)
⊢ ∃ U, K ⊆ U ∧ IsOpen U ∧ μ U < r
tactic: have := Fact.mk hμV
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : MeasurableSpace α
inst✝⁴ : TopologicalSpace α
μ : Measure α
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure μ
inst✝¹ : R1Space α
inst✝ : BorelSpace α
K : Set α
hK : IsCompact K
r : ℝ≥0∞
hr : μ K < r
V : Set α
hKV : V ⊇ K
hVo : IsOpen V
hμV : μ V < ⊤
this : Fact (μ V < ⊤)
⊢ ∃ U, K ⊆ U ∧ IsOpen U ∧ μ U < r
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : MeasurableSpace α
inst✝⁴ : TopologicalSpace α
μ : Measure α
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure μ
inst✝¹ : R1Space α
inst✝ : BorelSpace α
K : Set α
hK : IsCompact K
r : ℝ≥0∞
hr : μ K < r
V : Set α
hKV : V ⊇ K
hVo : IsOpen V
hμV : μ V < ⊤
this : Fact (μ V < ⊤)
U : Set α
hKU : K ⊆ U
hUo : IsOpen U
hμU : (μ.restrict V) U < r
⊢ ∃ U, K ⊆ U ∧ IsOpen U ∧ μ U < r
tactic: obtain ⟨U, hKU, hUo, hμU⟩ : ∃ U, K ⊆ U ∧ IsOpen U ∧ μ.restrict V U < r :=
    exists_isOpen_lt_of_lt K r <| (restrict_apply_le _ _).trans_lt hr
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : MeasurableSpace α
inst✝⁴ : TopologicalSpace α
μ : Measure α
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure μ
inst✝¹ : R1Space α
inst✝ : BorelSpace α
K : Set α
hK : IsCompact K
r : ℝ≥0∞
hr : μ K < r
V : Set α
hKV : V ⊇ K
hVo : IsOpen V
hμV : μ V < ⊤
this : Fact (μ V < ⊤)
U : Set α
hKU : K ⊆ U
hUo : IsOpen U
hμU : (μ.restrict V) U < r
⊢ ∃ U, K ⊆ U ∧ IsOpen U ∧ μ U < r
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : MeasurableSpace α
inst✝⁴ : TopologicalSpace α
μ : Measure α
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure μ
inst✝¹ : R1Space α
inst✝ : BorelSpace α
K : Set α
hK : IsCompact K
r : ℝ≥0∞
hr : μ K < r
V : Set α
hKV : V ⊇ K
hVo : IsOpen V
hμV : μ V < ⊤
this : Fact (μ V < ⊤)
U : Set α
hKU : K ⊆ U
hUo : IsOpen U
hμU : (μ.restrict V) U < r
⊢ μ (U ∩ V) < r
tactic: refine ⟨U ∩ V, subset_inter hKU hKV, hUo.inter hVo, ?_⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
inst✝⁵ : MeasurableSpace α
inst✝⁴ : TopologicalSpace α
μ : Measure α
inst✝³ : μ.InnerRegularCompactLTTop
inst✝² : IsLocallyFiniteMeasure μ
inst✝¹ : R1Space α
inst✝ : BorelSpace α
K : Set α
hK : IsCompact K
r : ℝ≥0∞
hr : μ K < r
V : Set α
hKV : V ⊇ K
hVo : IsOpen V
hμV : μ V < ⊤
this : Fact (μ V < ⊤)
U : Set α
hKU : K ⊆ U
hUo : IsOpen U
hμU : (μ.restrict V) U < r
⊢ μ (U ∩ V) < r
state_after: no goals
tactic: rwa [restrict_apply hUo.measurableSet] at hμU