Theorem: Measurable.measurableSet_preimage_iff_of_surjective
File: Mathlib/MeasureTheory/Constructions/Polish.lean

tactic: refine ⟨fun h => ?_, fun h => hf h⟩
state_before: α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
⊢ MeasurableSet (f ⁻¹' s) ↔ MeasurableSet s
state_after: α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
⊢ MeasurableSet s

tactic: rcases exists_opensMeasurableSpace_of_countablySeparated Z with ⟨τ, _, _, _⟩
state_before: α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
⊢ MeasurableSet s
state_after: case intro.intro.intro
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ MeasurableSet s

tactic: apply AnalyticSet.measurableSet_of_compl
state_before: case intro.intro.intro
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ MeasurableSet s
state_after: case intro.intro.intro.hs
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ AnalyticSet s

case intro.intro.intro.hsc
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ AnalyticSet sᶜ

tactic: rw [← image_preimage_eq s hsurj]
state_before: case intro.intro.intro.hs
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ AnalyticSet s
state_after: case intro.intro.intro.hs
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ AnalyticSet (f '' (f ⁻¹' s))

tactic: exact h.analyticSet_image hf
state_before: case intro.intro.intro.hs
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ AnalyticSet (f '' (f ⁻¹' s))
state_after: no goals

tactic: rw [← image_preimage_eq sᶜ hsurj]
state_before: case intro.intro.intro.hsc
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ AnalyticSet sᶜ
state_after: case intro.intro.intro.hsc
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ AnalyticSet (f '' (f ⁻¹' sᶜ))

tactic: exact h.compl.analyticSet_image hf
state_before: case intro.intro.intro.hsc
α : Type u_1
ι : Type u_2
X : Type u_3
Y : Type u_4
Z : Type u_5
β : Type u_6
inst✝⁸ : MeasurableSpace X
inst✝⁷ : StandardBorelSpace X
inst✝⁶ : TopologicalSpace Y
inst✝⁵ : T0Space Y
inst✝⁴ : MeasurableSpace Y
inst✝³ : OpensMeasurableSpace Y
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace Z
inst✝ : CountablySeparated Z
f : X → Z
hf : Measurable f
hsurj : Surjective f
s : Set Z
h : MeasurableSet (f ⁻¹' s)
τ : TopologicalSpace Z
left✝¹ : SecondCountableTopology Z
left✝ : T4Space Z
right✝ : OpensMeasurableSpace Z
⊢ AnalyticSet (f '' (f ⁻¹' sᶜ))
state_after: no goals