Theorem: MeasureTheory.Subsingleton.stronglyMeasurable
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: let f_sf : α →ₛ β := ⟨f, fun x => ?_, Set.Subsingleton.finite Set.subsingleton_of_subsingleton⟩
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
⊢ StronglyMeasurable f
state_after: case refine_2
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
f_sf : α →ₛ β := { toFun := f, measurableSet_fiber' := ⋯, finite_range' := ⋯ }
⊢ StronglyMeasurable f

case refine_1
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
x : β
⊢ MeasurableSet (f ⁻¹' {x})

tactic: exact ⟨fun _ => f_sf, fun x => tendsto_const_nhds⟩
state_before: case refine_2
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
f_sf : α →ₛ β := { toFun := f, measurableSet_fiber' := ⋯, finite_range' := ⋯ }
⊢ StronglyMeasurable f
state_after: no goals

tactic: have h_univ : f ⁻¹' {x} = Set.univ := by
  ext1 y
  simp [eq_iff_true_of_subsingleton]
state_before: case refine_1
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
x : β
⊢ MeasurableSet (f ⁻¹' {x})
state_after: case refine_1
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
x : β
h_univ : f ⁻¹' {x} = univ
⊢ MeasurableSet (f ⁻¹' {x})

tactic: rw [h_univ]
state_before: case refine_1
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
x : β
h_univ : f ⁻¹' {x} = univ
⊢ MeasurableSet (f ⁻¹' {x})
state_after: case refine_1
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
x : β
h_univ : f ⁻¹' {x} = univ
⊢ MeasurableSet univ

tactic: exact MeasurableSet.univ
state_before: case refine_1
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
x : β
h_univ : f ⁻¹' {x} = univ
⊢ MeasurableSet univ
state_after: no goals

tactic: ext1 y
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
x : β
⊢ f ⁻¹' {x} = univ
state_after: case h
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
x : β
y : α
⊢ y ∈ f ⁻¹' {x} ↔ y ∈ univ

tactic: simp [eq_iff_true_of_subsingleton]
state_before: case h
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι : Type u_4
inst✝³ : Countable ι
α : Type u_5
β : Type u_6
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace β
inst✝ : Subsingleton β
f : α → β
x : β
y : α
⊢ y ∈ f ⁻¹' {x} ↔ y ∈ univ
state_after: no goals