Theorem: MeasureTheory.Measure.add_haar_eq_zero_of_disjoint_translates_aux
File: Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean

tactic: by_contra h
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace E
inst✝² : BorelSpace E
inst✝¹ : FiniteDimensional ℝ E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
s : Set E
u : ℕ → E
sb : Metric.Bounded s
hu : Metric.Bounded (range u)
hs : Pairwise (Disjoint on fun n => {u n} + s)
h's : MeasurableSet s
⊢ ↑↑μ s = 0

tactic: apply lt_irrefl ∞
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace E
inst✝² : BorelSpace E
inst✝¹ : FiniteDimensional ℝ E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
s : Set E
u : ℕ → E
sb : Metric.Bounded s
hu : Metric.Bounded (range u)
hs : Pairwise (Disjoint on fun n => {u n} + s)
h's : MeasurableSet s
h : ¬↑↑μ s = 0
⊢ False

tactic: calc
  ∞ = ∑' _ : ℕ, μ s := (ENNReal.tsum_const_eq_top_of_ne_zero h).symm
  _ = ∑' n : ℕ, μ ({u n} + s) := by
    congr 1; ext1 n; simp only [image_add_left, measure_preimage_add, singleton_add]
  _ = μ (⋃ n, {u n} + s) := Eq.symm <| measure_iUnion hs fun n => by
    simpa only [image_add_left, singleton_add] using measurable_id.const_add _ h's
  _ = μ (range u + s) := by rw [← iUnion_add, iUnion_singleton_eq_range]
  _ < ∞ := Bounded.measure_lt_top (hu.add sb)
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace E
inst✝² : BorelSpace E
inst✝¹ : FiniteDimensional ℝ E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
s : Set E
u : ℕ → E
sb : Metric.Bounded s
hu : Metric.Bounded (range u)
hs : Pairwise (Disjoint on fun n => {u n} + s)
h's : MeasurableSet s
h : ¬↑↑μ s = 0
⊢ ⊤ < ⊤

tactic: congr 1
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace E
inst✝² : BorelSpace E
inst✝¹ : FiniteDimensional ℝ E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
s : Set E
u : ℕ → E
sb : Metric.Bounded s
hu : Metric.Bounded (range u)
hs : Pairwise (Disjoint on fun n => {u n} + s)
h's : MeasurableSet s
h : ¬↑↑μ s = 0
⊢ (∑' (x : ℕ), ↑↑μ s) = ∑' (n : ℕ), ↑↑μ ({u n} + s)

tactic: ext1 n
state_before: case e_f
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace E
inst✝² : BorelSpace E
inst✝¹ : FiniteDimensional ℝ E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
s : Set E
u : ℕ → E
sb : Metric.Bounded s
hu : Metric.Bounded (range u)
hs : Pairwise (Disjoint on fun n => {u n} + s)
h's : MeasurableSet s
h : ¬↑↑μ s = 0
⊢ (fun x => ↑↑μ s) = fun n => ↑↑μ ({u n} + s)

tactic: simp only [image_add_left, measure_preimage_add, singleton_add]
state_before: case e_f.h
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace E
inst✝² : BorelSpace E
inst✝¹ : FiniteDimensional ℝ E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
s : Set E
u : ℕ → E
sb : Metric.Bounded s
hu : Metric.Bounded (range u)
hs : Pairwise (Disjoint on fun n => {u n} + s)
h's : MeasurableSet s
h : ¬↑↑μ s = 0
n : ℕ
⊢ ↑↑μ s = ↑↑μ ({u n} + s)

tactic: simpa only [image_add_left, singleton_add] using measurable_id.const_add _ h's
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace E
inst✝² : BorelSpace E
inst✝¹ : FiniteDimensional ℝ E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
s : Set E
u : ℕ → E
sb : Metric.Bounded s
hu : Metric.Bounded (range u)
hs : Pairwise (Disjoint on fun n => {u n} + s)
h's : MeasurableSet s
h : ¬↑↑μ s = 0
n : ℕ
⊢ MeasurableSet ({u n} + s)

tactic: rw [← iUnion_add, iUnion_singleton_eq_range]
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace E
inst✝² : BorelSpace E
inst✝¹ : FiniteDimensional ℝ E
μ : Measure E
inst✝ : IsAddHaarMeasure μ
s : Set E
u : ℕ → E
sb : Metric.Bounded s
hu : Metric.Bounded (range u)
hs : Pairwise (Disjoint on fun n => {u n} + s)
h's : MeasurableSet s
h : ¬↑↑μ s = 0
⊢ ↑↑μ (⋃ (n : ℕ), {u n} + s) = ↑↑μ (range u + s)