Theorem: nullMeasurableSet_eq_fun
File: Mathlib/MeasureTheory/Group/Arithmetic.lean

Proof steps:
state_before: α✝ : Type u_1
G : Type u_2
α : Type u_3
inst✝⁵ : MeasurableSpace G
inst✝⁴ : Div G
m : MeasurableSpace α
f✝ g✝ : α → G
μ : Measure α
E : Type u_4
inst✝³ : MeasurableSpace E
inst✝² : AddGroup E
inst✝¹ : MeasurableSingletonClass E
inst✝ : MeasurableSub₂ E
f g : α → E
hf : AEMeasurable f μ
hg : AEMeasurable g μ
⊢ NullMeasurableSet {x | f x = g x} μ
state_after: α✝ : Type u_1
G : Type u_2
α : Type u_3
inst✝⁵ : MeasurableSpace G
inst✝⁴ : Div G
m : MeasurableSpace α
f✝ g✝ : α → G
μ : Measure α
E : Type u_4
inst✝³ : MeasurableSpace E
inst✝² : AddGroup E
inst✝¹ : MeasurableSingletonClass E
inst✝ : MeasurableSub₂ E
f g : α → E
hf : AEMeasurable f μ
hg : AEMeasurable g μ
⊢ {x | AEMeasurable.mk f hf x = AEMeasurable.mk g hg x} =ᶠ[ae μ] {x | f x = g x}
tactic: apply (measurableSet_eq_fun hf.measurable_mk hg.measurable_mk).nullMeasurableSet.congr
state_before: α✝ : Type u_1
G : Type u_2
α : Type u_3
inst✝⁵ : MeasurableSpace G
inst✝⁴ : Div G
m : MeasurableSpace α
f✝ g✝ : α → G
μ : Measure α
E : Type u_4
inst✝³ : MeasurableSpace E
inst✝² : AddGroup E
inst✝¹ : MeasurableSingletonClass E
inst✝ : MeasurableSub₂ E
f g : α → E
hf : AEMeasurable f μ
hg : AEMeasurable g μ
⊢ {x | AEMeasurable.mk f hf x = AEMeasurable.mk g hg x} =ᶠ[ae μ] {x | f x = g x}
state_after: case h
α✝ : Type u_1
G : Type u_2
α : Type u_3
inst✝⁵ : MeasurableSpace G
inst✝⁴ : Div G
m : MeasurableSpace α
f✝ g✝ : α → G
μ : Measure α
E : Type u_4
inst✝³ : MeasurableSpace E
inst✝² : AddGroup E
inst✝¹ : MeasurableSingletonClass E
inst✝ : MeasurableSub₂ E
f g : α → E
hf : AEMeasurable f μ
hg : AEMeasurable g μ
x : α
hfx : f x = AEMeasurable.mk f hf x
hgx : g x = AEMeasurable.mk g hg x
⊢ {x | AEMeasurable.mk f hf x = AEMeasurable.mk g hg x} x = {x | f x = g x} x
tactic: filter_upwards [hf.ae_eq_mk, hg.ae_eq_mk] with x hfx hgx
state_before: case h
α✝ : Type u_1
G : Type u_2
α : Type u_3
inst✝⁵ : MeasurableSpace G
inst✝⁴ : Div G
m : MeasurableSpace α
f✝ g✝ : α → G
μ : Measure α
E : Type u_4
inst✝³ : MeasurableSpace E
inst✝² : AddGroup E
inst✝¹ : MeasurableSingletonClass E
inst✝ : MeasurableSub₂ E
f g : α → E
hf : AEMeasurable f μ
hg : AEMeasurable g μ
x : α
hfx : f x = AEMeasurable.mk f hf x
hgx : g x = AEMeasurable.mk g hg x
⊢ {x | AEMeasurable.mk f hf x = AEMeasurable.mk g hg x} x = {x | f x = g x} x
state_after: case h
α✝ : Type u_1
G : Type u_2
α : Type u_3
inst✝⁵ : MeasurableSpace G
inst✝⁴ : Div G
m : MeasurableSpace α
f✝ g✝ : α → G
μ : Measure α
E : Type u_4
inst✝³ : MeasurableSpace E
inst✝² : AddGroup E
inst✝¹ : MeasurableSingletonClass E
inst✝ : MeasurableSub₂ E
f g : α → E
hf : AEMeasurable f μ
hg : AEMeasurable g μ
x : α
hfx : f x = AEMeasurable.mk f hf x
hgx : g x = AEMeasurable.mk g hg x
⊢ (AEMeasurable.mk f hf x = AEMeasurable.mk g hg x) = (f x = g x)
tactic: change (hf.mk f x = hg.mk g x) = (f x = g x)
state_before: case h
α✝ : Type u_1
G : Type u_2
α : Type u_3
inst✝⁵ : MeasurableSpace G
inst✝⁴ : Div G
m : MeasurableSpace α
f✝ g✝ : α → G
μ : Measure α
E : Type u_4
inst✝³ : MeasurableSpace E
inst✝² : AddGroup E
inst✝¹ : MeasurableSingletonClass E
inst✝ : MeasurableSub₂ E
f g : α → E
hf : AEMeasurable f μ
hg : AEMeasurable g μ
x : α
hfx : f x = AEMeasurable.mk f hf x
hgx : g x = AEMeasurable.mk g hg x
⊢ (AEMeasurable.mk f hf x = AEMeasurable.mk g hg x) = (f x = g x)
state_after: no goals
tactic: simp only [hfx, hgx]