Theorem: MeasureTheory.isClopenable_iff_measurableSet
File: Mathlib/MeasureTheory/Constructions/Polish.lean

tactic: refine ⟨fun hs => ?_, fun hs => hs.isClopenable⟩
state_before: α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁵ : T2Space β
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝² : PolishSpace γ
inst✝¹ : MeasurableSpace γ
inst✝ : BorelSpace γ
⊢ IsClopenable s ↔ MeasurableSet s
state_after: α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁵ : T2Space β
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝² : PolishSpace γ
inst✝¹ : MeasurableSpace γ
inst✝ : BorelSpace γ
hs : IsClopenable s
⊢ MeasurableSet s

tactic: borelize γ
state_before: α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁵ : T2Space β
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝² : PolishSpace γ
inst✝¹ : MeasurableSpace γ
inst✝ : BorelSpace γ
hs : IsClopenable s
⊢ MeasurableSet s
state_after: α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁴ : T2Space β
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝¹ : PolishSpace γ
hs : IsClopenable s
inst✝ : BorelSpace γ
this✝ : MeasurableSpace γ := borel γ
⊢ MeasurableSet s

tactic: obtain ⟨t', t't, t'_polish, _, s_open⟩ :
  ∃ t' : TopologicalSpace γ, t' ≤ tγ ∧ @PolishSpace γ t' ∧ IsClosed[t'] s ∧ IsOpen[t'] s := hs
state_before: α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁴ : T2Space β
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝¹ : PolishSpace γ
hs : IsClopenable s
inst✝ : BorelSpace γ
this✝ : MeasurableSpace γ := borel γ
⊢ MeasurableSet s
state_after: case intro.intro.intro.intro
α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁴ : T2Space β
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝¹ : PolishSpace γ
inst✝ : BorelSpace γ
this✝ : MeasurableSpace γ := borel γ
t' : TopologicalSpace γ
t't : t' ≤ tγ
t'_polish : PolishSpace γ
left✝ : IsClosed s
s_open : IsOpen s
⊢ MeasurableSet s

tactic: rw [← borel_eq_borel_of_le t'_polish _ t't]
state_before: case intro.intro.intro.intro
α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁴ : T2Space β
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝¹ : PolishSpace γ
inst✝ : BorelSpace γ
this✝ : MeasurableSpace γ := borel γ
t' : TopologicalSpace γ
t't : t' ≤ tγ
t'_polish : PolishSpace γ
left✝ : IsClosed s
s_open : IsOpen s
⊢ MeasurableSet s
state_after: case intro.intro.intro.intro
α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁴ : T2Space β
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝¹ : PolishSpace γ
inst✝ : BorelSpace γ
this✝ : MeasurableSpace γ := borel γ
t' : TopologicalSpace γ
t't : t' ≤ tγ
t'_polish : PolishSpace γ
left✝ : IsClosed s
s_open : IsOpen s
⊢ MeasurableSet s

α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁴ : T2Space β
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝¹ : PolishSpace γ
inst✝ : BorelSpace γ
this✝ : MeasurableSpace γ := borel γ
t' : TopologicalSpace γ
t't : t' ≤ tγ
t'_polish : PolishSpace γ
left✝ : IsClosed s
s_open : IsOpen s
⊢ PolishSpace γ

tactic: infer_instance
state_before: α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁴ : T2Space β
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝¹ : PolishSpace γ
inst✝ : BorelSpace γ
this✝ : MeasurableSpace γ := borel γ
t' : TopologicalSpace γ
t't : t' ≤ tγ
t'_polish : PolishSpace γ
left✝ : IsClosed s
s_open : IsOpen s
⊢ PolishSpace γ
state_after: no goals

tactic: exact MeasurableSpace.measurableSet_generateFrom s_open
state_before: case intro.intro.intro.intro
α✝ : Type u_1
ι : Type u_2
γ : Type u_3
α : Type u_4
β : Type u_5
tβ : TopologicalSpace β
inst✝⁴ : T2Space β
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace α
s : Set γ
f : γ → β
tγ : TopologicalSpace γ
inst✝¹ : PolishSpace γ
inst✝ : BorelSpace γ
this✝ : MeasurableSpace γ := borel γ
t' : TopologicalSpace γ
t't : t' ≤ tγ
t'_polish : PolishSpace γ
left✝ : IsClosed s
s_open : IsOpen s
⊢ MeasurableSet s
state_after: no goals