Theorem: measurable_of_is_closed'
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean

tactic: apply measurable_of_isClosed
state_before: α : Type ?u.150229
β : Type ?u.150232
γ : Type u_1
γ₂ : Type ?u.150238
δ : Type u_2
ι : Sort y
s t u : Set α
inst✝¹² : TopologicalSpace α
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : OpensMeasurableSpace α
inst✝⁹ : TopologicalSpace β
inst✝⁸ : MeasurableSpace β
inst✝⁷ : OpensMeasurableSpace β
inst✝⁶ : TopologicalSpace γ
inst✝⁵ : MeasurableSpace γ
inst✝⁴ : BorelSpace γ
inst✝³ : TopologicalSpace γ₂
inst✝² : MeasurableSpace γ₂
inst✝¹ : BorelSpace γ₂
inst✝ : MeasurableSpace δ
f : δ → γ
hf : ∀ (s : Set γ), IsClosed s → Set.Nonempty s → s ≠ univ → MeasurableSet (f ⁻¹' s)
⊢ Measurable f

tactic: intro s hs
state_before: case hf
α : Type ?u.150229
β : Type ?u.150232
γ : Type u_1
γ₂ : Type ?u.150238
δ : Type u_2
ι : Sort y
s t u : Set α
inst✝¹² : TopologicalSpace α
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : OpensMeasurableSpace α
inst✝⁹ : TopologicalSpace β
inst✝⁸ : MeasurableSpace β
inst✝⁷ : OpensMeasurableSpace β
inst✝⁶ : TopologicalSpace γ
inst✝⁵ : MeasurableSpace γ
inst✝⁴ : BorelSpace γ
inst✝³ : TopologicalSpace γ₂
inst✝² : MeasurableSpace γ₂
inst✝¹ : BorelSpace γ₂
inst✝ : MeasurableSpace δ
f : δ → γ
hf : ∀ (s : Set γ), IsClosed s → Set.Nonempty s → s ≠ univ → MeasurableSet (f ⁻¹' s)
⊢ ∀ (s : Set γ), IsClosed s → MeasurableSet (f ⁻¹' s)

tactic: cases' eq_empty_or_nonempty s with h1 h1
state_before: case hf
α : Type ?u.150229
β : Type ?u.150232
γ : Type u_1
γ₂ : Type ?u.150238
δ : Type u_2
ι : Sort y
s✝ t u : Set α
inst✝¹² : TopologicalSpace α
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : OpensMeasurableSpace α
inst✝⁹ : TopologicalSpace β
inst✝⁸ : MeasurableSpace β
inst✝⁷ : OpensMeasurableSpace β
inst✝⁶ : TopologicalSpace γ
inst✝⁵ : MeasurableSpace γ
inst✝⁴ : BorelSpace γ
inst✝³ : TopologicalSpace γ₂
inst✝² : MeasurableSpace γ₂
inst✝¹ : BorelSpace γ₂
inst✝ : MeasurableSpace δ
f : δ → γ
hf : ∀ (s : Set γ), IsClosed s → Set.Nonempty s → s ≠ univ → MeasurableSet (f ⁻¹' s)
s : Set γ
hs : IsClosed s
⊢ MeasurableSet (f ⁻¹' s)

tactic: by_cases h2 : s = univ
state_before: case hf.inr
α : Type ?u.150229
β : Type ?u.150232
γ : Type u_1
γ₂ : Type ?u.150238
δ : Type u_2
ι : Sort y
s✝ t u : Set α
inst✝¹² : TopologicalSpace α
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : OpensMeasurableSpace α
inst✝⁹ : TopologicalSpace β
inst✝⁸ : MeasurableSpace β
inst✝⁷ : OpensMeasurableSpace β
inst✝⁶ : TopologicalSpace γ
inst✝⁵ : MeasurableSpace γ
inst✝⁴ : BorelSpace γ
inst✝³ : TopologicalSpace γ₂
inst✝² : MeasurableSpace γ₂
inst✝¹ : BorelSpace γ₂
inst✝ : MeasurableSpace δ
f : δ → γ
hf : ∀ (s : Set γ), IsClosed s → Set.Nonempty s → s ≠ univ → MeasurableSet (f ⁻¹' s)
s : Set γ
hs : IsClosed s
h1 : Set.Nonempty s
⊢ MeasurableSet (f ⁻¹' s)

tactic: exact hf s hs h1 h2
state_before: case neg
α : Type ?u.150229
β : Type ?u.150232
γ : Type u_1
γ₂ : Type ?u.150238
δ : Type u_2
ι : Sort y
s✝ t u : Set α
inst✝¹² : TopologicalSpace α
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : OpensMeasurableSpace α
inst✝⁹ : TopologicalSpace β
inst✝⁸ : MeasurableSpace β
inst✝⁷ : OpensMeasurableSpace β
inst✝⁶ : TopologicalSpace γ
inst✝⁵ : MeasurableSpace γ
inst✝⁴ : BorelSpace γ
inst✝³ : TopologicalSpace γ₂
inst✝² : MeasurableSpace γ₂
inst✝¹ : BorelSpace γ₂
inst✝ : MeasurableSpace δ
f : δ → γ
hf : ∀ (s : Set γ), IsClosed s → Set.Nonempty s → s ≠ univ → MeasurableSet (f ⁻¹' s)
s : Set γ
hs : IsClosed s
h1 : Set.Nonempty s
h2 : ¬s = univ
⊢ MeasurableSet (f ⁻¹' s)

tactic: simp [h1]
state_before: case hf.inl
α : Type ?u.150229
β : Type ?u.150232
γ : Type u_1
γ₂ : Type ?u.150238
δ : Type u_2
ι : Sort y
s✝ t u : Set α
inst✝¹² : TopologicalSpace α
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : OpensMeasurableSpace α
inst✝⁹ : TopologicalSpace β
inst✝⁸ : MeasurableSpace β
inst✝⁷ : OpensMeasurableSpace β
inst✝⁶ : TopologicalSpace γ
inst✝⁵ : MeasurableSpace γ
inst✝⁴ : BorelSpace γ
inst✝³ : TopologicalSpace γ₂
inst✝² : MeasurableSpace γ₂
inst✝¹ : BorelSpace γ₂
inst✝ : MeasurableSpace δ
f : δ → γ
hf : ∀ (s : Set γ), IsClosed s → Set.Nonempty s → s ≠ univ → MeasurableSet (f ⁻¹' s)
s : Set γ
hs : IsClosed s
h1 : s = ∅
⊢ MeasurableSet (f ⁻¹' s)

tactic: simp [h2]
state_before: case pos
α : Type ?u.150229
β : Type ?u.150232
γ : Type u_1
γ₂ : Type ?u.150238
δ : Type u_2
ι : Sort y
s✝ t u : Set α
inst✝¹² : TopologicalSpace α
inst✝¹¹ : MeasurableSpace α
inst✝¹⁰ : OpensMeasurableSpace α
inst✝⁹ : TopologicalSpace β
inst✝⁸ : MeasurableSpace β
inst✝⁷ : OpensMeasurableSpace β
inst✝⁶ : TopologicalSpace γ
inst✝⁵ : MeasurableSpace γ
inst✝⁴ : BorelSpace γ
inst✝³ : TopologicalSpace γ₂
inst✝² : MeasurableSpace γ₂
inst✝¹ : BorelSpace γ₂
inst✝ : MeasurableSpace δ
f : δ → γ
hf : ∀ (s : Set γ), IsClosed s → Set.Nonempty s → s ≠ univ → MeasurableSet (f ⁻¹' s)
s : Set γ
hs : IsClosed s
h1 : Set.Nonempty s
h2 : s = univ
⊢ MeasurableSet (f ⁻¹' s)