Theorem: MeasureTheory.piPremeasure_pi'
File: Mathlib/MeasureTheory/Constructions/Pi.lean

tactic: cases isEmpty_or_nonempty ι
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)
state_after: case inl
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : IsEmpty ι
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)

case inr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)

tactic: rcases (pi univ s).eq_empty_or_nonempty with h | h
state_before: case inr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)
state_after: case inr.inl
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : univ.pi s = ∅
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)

case inr.inr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : (univ.pi s).Nonempty
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)

tactic: simp [piPremeasure]
state_before: case inl
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : IsEmpty ι
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)
state_after: no goals

tactic: rcases univ_pi_eq_empty_iff.mp h with ⟨i, hi⟩
state_before: case inr.inl
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : univ.pi s = ∅
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)
state_after: case inr.inl.intro
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : univ.pi s = ∅
i : ι
hi : s i = ∅
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)

tactic: have : ∃ i, m i (s i) = 0 := ⟨i, by simp [hi]⟩
state_before: case inr.inl.intro
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : univ.pi s = ∅
i : ι
hi : s i = ∅
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)
state_after: case inr.inl.intro
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : univ.pi s = ∅
i : ι
hi : s i = ∅
this : ∃ i, (m i) (s i) = 0
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)

tactic: simpa [h, Finset.card_univ, zero_pow Fintype.card_ne_zero, @eq_comm _ (0 : ℝ≥0∞),
  Finset.prod_eq_zero_iff, piPremeasure]
state_before: case inr.inl.intro
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : univ.pi s = ∅
i : ι
hi : s i = ∅
this : ∃ i, (m i) (s i) = 0
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)
state_after: no goals

tactic: simp [hi]
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : univ.pi s = ∅
i : ι
hi : s i = ∅
⊢ (m i) (s i) = 0
state_after: no goals

tactic: simp [h, piPremeasure]
state_before: case inr.inr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : (univ.pi s).Nonempty
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)
state_after: no goals