Theorem: MeasureTheory.Measure.pi_eval_preimage_null
File: Mathlib/MeasureTheory/Constructions/Pi.lean

tactic: rcases exists_measurable_superset_of_null hs with ⟨t, hst, _, hμt⟩
state_before: ι : Type u_2
ι' : Type ?u.3165675
α : ι → Type u_1
inst✝² : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝¹ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
i : ι
s : Set (α i)
hs : ↑↑(μ i) s = 0
⊢ ↑↑(Measure.pi μ) (eval i ⁻¹' s) = 0

tactic: suffices : Measure.pi μ (eval i ⁻¹' t) = 0
state_before: case intro.intro.intro
ι : Type u_2
ι' : Type ?u.3165675
α : ι → Type u_1
inst✝² : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝¹ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
i : ι
s : Set (α i)
hs : ↑↑(μ i) s = 0
t : Set (α i)
hst : s ⊆ t
left✝ : MeasurableSet t
hμt : ↑↑(μ i) t = 0
⊢ ↑↑(Measure.pi μ) (eval i ⁻¹' s) = 0

tactic: exact measure_mono_null (preimage_mono hst) this
state_before: case intro.intro.intro
ι : Type u_2
ι' : Type ?u.3165675
α : ι → Type u_1
inst✝² : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝¹ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
i : ι
s : Set (α i)
hs : ↑↑(μ i) s = 0
t : Set (α i)
hst : s ⊆ t
left✝ : MeasurableSet t
hμt : ↑↑(μ i) t = 0
this : ↑↑(Measure.pi μ) (eval i ⁻¹' t) = 0
⊢ ↑↑(Measure.pi μ) (eval i ⁻¹' s) = 0

case this
ι : Type u_2
ι' : Type ?u.3165675
α : ι → Type u_1
inst✝² : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝¹ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
i : ι
s : Set (α i)
hs : ↑↑(μ i) s = 0
t : Set (α i)
hst : s ⊆ t
left✝ : MeasurableSet t
hμt : ↑↑(μ i) t = 0
⊢ ↑↑(Measure.pi μ) (eval i ⁻¹' t) = 0

tactic: clear! s
state_before: case this
ι : Type u_2
ι' : Type ?u.3165675
α : ι → Type u_1
inst✝² : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝¹ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
i : ι
s : Set (α i)
hs : ↑↑(μ i) s = 0
t : Set (α i)
hst : s ⊆ t
left✝ : MeasurableSet t
hμt : ↑↑(μ i) t = 0
⊢ ↑↑(Measure.pi μ) (eval i ⁻¹' t) = 0

tactic: rw [← univ_pi_update_univ, pi_pi]
state_before: case this
ι : Type u_2
ι' : Type ?u.3165675
α : ι → Type u_1
inst✝² : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝¹ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
i : ι
t : Set (α i)
left✝ : MeasurableSet t
hμt : ↑↑(μ i) t = 0
⊢ ↑↑(Measure.pi μ) (eval i ⁻¹' t) = 0

tactic: apply Finset.prod_eq_zero (Finset.mem_univ i)
state_before: case this
ι : Type u_2
ι' : Type ?u.3165675
α : ι → Type u_1
inst✝² : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝¹ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
i : ι
t : Set (α i)
left✝ : MeasurableSet t
hμt : ↑↑(μ i) t = 0
⊢ ∏ i_1 : ι, ↑↑(μ i_1) (update (fun j => univ) i t i_1) = 0

tactic: simp [hμt]
state_before: case this
ι : Type u_2
ι' : Type ?u.3165675
α : ι → Type u_1
inst✝² : Fintype ι
m : (i : ι) → OuterMeasure (α i)
inst✝¹ : (i : ι) → MeasurableSpace (α i)
μ : (i : ι) → Measure (α i)
inst✝ : ∀ (i : ι), SigmaFinite (μ i)
i : ι
t : Set (α i)
left✝ : MeasurableSet t
hμt : ↑↑(μ i) t = 0
⊢ ↑↑(μ i) (update (fun j => univ) i t i) = 0