l3lab/ntp-mathlib huggingface dataset:
theorem measure_if {x : β} {t : Set β} {s : Set α} :
    μ (if x ∈ t then s else ∅) = indicator t (fun _ => μ s) x := by 

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
x : β
t : Set β
s : Set α
⊢ ↑↑μ (if x ∈ t then s else ∅) = indicator t (fun x => ↑↑μ s) x

Next tactic:
split_ifs with h
theorem measure_if {x : β} {t : Set β} {s : Set α} :
    μ (if x ∈ t then s else ∅) = indicator t (fun _ => μ s) x := by split_ifs with h <;> 

Proof state:
case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
x : β
t : Set β
s : Set α
h : x ∈ t
⊢ ↑↑μ s = indicator t (fun x => ↑↑μ s) x

Next tactic:
simp [h]
theorem measure_if {x : β} {t : Set β} {s : Set α} :
    μ (if x ∈ t then s else ∅) = indicator t (fun _ => μ s) x := by split_ifs with h <;> 

Proof state:
case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t✝ : Set α
x : β
t : Set β
s : Set α
h : x ∉ t
⊢ ↑↑μ ∅ = indicator t (fun x => ↑↑μ s) x

Next tactic:
simp [h]
theorem toMeasure_apply₀ (m : OuterMeasure α) (h : ms ≤ m.caratheodory) {s : Set α}
    (hs : NullMeasurableSet s (m.toMeasure h)) : m.toMeasure h s = m s := by
  

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
ms : MeasurableSpace α
s✝ t : Set α
m : OuterMeasure α
h : ms ≤ OuterMeasure.caratheodory m
s : Set α
hs : NullMeasurableSet s
⊢ ↑↑(OuterMeasure.toMeasure m h) s = ↑m s

Next tactic:
refine' le_antisymm _ (le_toMeasure_apply _ _ _)
theorem toMeasure_apply₀ (m : OuterMeasure α) (h : ms ≤ m.caratheodory) {s : Set α}
    (hs : NullMeasurableSet s (m.toMeasure h)) : m.toMeasure h s = m s := by
  refine' le_antisymm _ (le_toMeasure_apply _ _ _)
  

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
ms : MeasurableSpace α
s✝ t : Set α
m : OuterMeasure α
h : ms ≤ OuterMeasure.caratheodory m
s : Set α
hs : NullMeasurableSet s
⊢ ↑↑(OuterMeasure.toMeasure m h) s ≤ ↑m s

Next tactic:
rcases hs.exists_measurable_subset_ae_eq with ⟨t, hts, htm, heq⟩
theorem toMeasure_apply₀ (m : OuterMeasure α) (h : ms ≤ m.caratheodory) {s : Set α}
    (hs : NullMeasurableSet s (m.toMeasure h)) : m.toMeasure h s = m s := by
  refine' le_antisymm _ (le_toMeasure_apply _ _ _)
  rcases hs.exists_measurable_subset_ae_eq with ⟨t, hts, htm, heq⟩
  

Proof state:
case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
ms : MeasurableSpace α
s✝ t✝ : Set α
m : OuterMeasure α
h : ms ≤ OuterMeasure.caratheodory m
s : Set α
hs : NullMeasurableSet s
t : Set α
hts : t ⊆ s
htm : MeasurableSet t
heq : t =ᵐ[OuterMeasure.toMeasure m h] s
⊢ ↑↑(OuterMeasure.toMeasure m h) s ≤ ↑m s

Next tactic:
calc
    m.toMeasure h s = m.toMeasure h t := measure_congr heq.symm
    _ = m t := (toMeasure_apply m h htm)
    _ ≤ m s := m.mono hts
/-- If `u` is a superset of `t` with the same (finite) measure (both sets possibly non-measurable),
then for any measurable set `s` one also has `μ (t ∩ s) = μ (u ∩ s)`. -/
theorem measure_inter_eq_of_measure_eq {s t u : Set α} (hs : MeasurableSet s) (h : μ t = μ u)
    (htu : t ⊆ u) (ht_ne_top : μ t ≠ ∞) : μ (t ∩ s) = μ (u ∩ s) := by
  

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ t ≠ ⊤
⊢ ↑↑μ (t ∩ s) = ↑↑μ (u ∩ s)

Next tactic:
rw [h] at ht_ne_top
/-- If `u` is a superset of `t` with the same (finite) measure (both sets possibly non-measurable),
then for any measurable set `s` one also has `μ (t ∩ s) = μ (u ∩ s)`. -/
theorem measure_inter_eq_of_measure_eq {s t u : Set α} (hs : MeasurableSet s) (h : μ t = μ u)
    (htu : t ⊆ u) (ht_ne_top : μ t ≠ ∞) : μ (t ∩ s) = μ (u ∩ s) := by
  rw [h] at ht_ne_top
  

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ u ≠ ⊤
⊢ ↑↑μ (t ∩ s) = ↑↑μ (u ∩ s)

Next tactic:
refine' le_antisymm (measure_mono (inter_subset_inter_left _ htu)) _
/-- If `u` is a superset of `t` with the same (finite) measure (both sets possibly non-measurable),
then for any measurable set `s` one also has `μ (t ∩ s) = μ (u ∩ s)`. -/
theorem measure_inter_eq_of_measure_eq {s t u : Set α} (hs : MeasurableSet s) (h : μ t = μ u)
    (htu : t ⊆ u) (ht_ne_top : μ t ≠ ∞) : μ (t ∩ s) = μ (u ∩ s) := by
  rw [h] at ht_ne_top
  refine' le_antisymm (measure_mono (inter_subset_inter_left _ htu)) _
  

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ u ≠ ⊤
⊢ ↑↑μ (u ∩ s) ≤ ↑↑μ (t ∩ s)

Next tactic:
have A : μ (u ∩ s) + μ (u \ s) ≤ μ (t ∩ s) + μ (u \ s) :=
    calc
      μ (u ∩ s) + μ (u \ s) = μ u := measure_inter_add_diff _ hs
      _ = μ t := h.symm
      _ = μ (t ∩ s) + μ (t \ s) := (measure_inter_add_diff _ hs).symm
      _ ≤ μ (t ∩ s) + μ (u \ s) :=
        add_le_add le_rfl (measure_mono (diff_subset_diff htu Subset.rfl))
/-- If `u` is a superset of `t` with the same (finite) measure (both sets possibly non-measurable),
then for any measurable set `s` one also has `μ (t ∩ s) = μ (u ∩ s)`. -/
theorem measure_inter_eq_of_measure_eq {s t u : Set α} (hs : MeasurableSet s) (h : μ t = μ u)
    (htu : t ⊆ u) (ht_ne_top : μ t ≠ ∞) : μ (t ∩ s) = μ (u ∩ s) := by
  rw [h] at ht_ne_top
  refine' le_antisymm (measure_mono (inter_subset_inter_left _ htu)) _
  have A : μ (u ∩ s) + μ (u \ s) ≤ μ (t ∩ s) + μ (u \ s) :=
    calc
      μ (u ∩ s) + μ (u \ s) = μ u := measure_inter_add_diff _ hs
      _ = μ t := h.symm
      _ = μ (t ∩ s) + μ (t \ s) := (measure_inter_add_diff _ hs).symm
      _ ≤ μ (t ∩ s) + μ (u \ s) :=
        add_le_add le_rfl (measure_mono (diff_subset_diff htu Subset.rfl))

  

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ u ≠ ⊤
A : ↑↑μ (u ∩ s) + ↑↑μ (u \ s) ≤ ↑↑μ (t ∩ s) + ↑↑μ (u \ s)
⊢ ↑↑μ (u ∩ s) ≤ ↑↑μ (t ∩ s)

Next tactic:
have B : μ (u \ s) ≠ ∞ := (lt_of_le_of_lt (measure_mono (diff_subset _ _)) ht_ne_top.lt_top).ne
/-- If `u` is a superset of `t` with the same (finite) measure (both sets possibly non-measurable),
then for any measurable set `s` one also has `μ (t ∩ s) = μ (u ∩ s)`. -/
theorem measure_inter_eq_of_measure_eq {s t u : Set α} (hs : MeasurableSet s) (h : μ t = μ u)
    (htu : t ⊆ u) (ht_ne_top : μ t ≠ ∞) : μ (t ∩ s) = μ (u ∩ s) := by
  rw [h] at ht_ne_top
  refine' le_antisymm (measure_mono (inter_subset_inter_left _ htu)) _
  have A : μ (u ∩ s) + μ (u \ s) ≤ μ (t ∩ s) + μ (u \ s) :=
    calc
      μ (u ∩ s) + μ (u \ s) = μ u := measure_inter_add_diff _ hs
      _ = μ t := h.symm
      _ = μ (t ∩ s) + μ (t \ s) := (measure_inter_add_diff _ hs).symm
      _ ≤ μ (t ∩ s) + μ (u \ s) :=
        add_le_add le_rfl (measure_mono (diff_subset_diff htu Subset.rfl))

  have B : μ (u \ s) ≠ ∞ := (lt_of_le_of_lt (measure_mono (diff_subset _ _)) ht_ne_top.lt_top).ne
  

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s t u : Set α
hs : MeasurableSet s
h : ↑↑μ t = ↑↑μ u
htu : t ⊆ u
ht_ne_top : ↑↑μ u ≠ ⊤
A : ↑↑μ (u ∩ s) + ↑↑μ (u \ s) ≤ ↑↑μ (t ∩ s) + ↑↑μ (u \ s)
B : ↑↑μ (u \ s) ≠ ⊤
⊢ ↑↑μ (u ∩ s) ≤ ↑↑μ (t ∩ s)

Next tactic:
exact ENNReal.le_of_add_le_add_right B A
@[nontriviality]
lemma apply_eq_zero_of_isEmpty [IsEmpty α] {_ : MeasurableSpace α} (μ : Measure α) (s : Set α) :
    μ s = 0 := by
  

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : IsEmpty α
x✝ : MeasurableSpace α
μ : Measure α
s : Set α
⊢ ↑↑μ s = 0

Next tactic:
rw [eq_empty_of_isEmpty s, measure_empty]
instance instSubsingleton [IsEmpty α] {m : MeasurableSpace α} : Subsingleton (Measure α) :=
  ⟨fun μ ν => by 

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : IsEmpty α
m : MeasurableSpace α
μ ν : Measure α
⊢ μ = ν

Next tactic:
ext1 s _
instance instSubsingleton [IsEmpty α] {m : MeasurableSpace α} : Subsingleton (Measure α) :=
  ⟨fun μ ν => by ext1 s _; 

Proof state:
case h
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : IsEmpty α
m : MeasurableSpace α
μ ν : Measure α
s : Set α
a✝ : MeasurableSet s
⊢ ↑↑μ s = ↑↑ν s

Next tactic:
rw [apply_eq_zero_of_isEmpty, apply_eq_zero_of_isEmpty]
instance instAdd [MeasurableSpace α] : Add (Measure α) :=
  ⟨fun μ₁ μ₂ =>
    { toOuterMeasure := μ₁.toOuterMeasure + μ₂.toOuterMeasure
      m_iUnion := fun s hs hd =>
        show μ₁ (⋃ i, s i) + μ₂ (⋃ i, s i) = ∑' i, (μ₁ (s i) + μ₂ (s i)) by
          

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁✝ μ₂✝ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝ : MeasurableSpace α
μ₁ μ₂ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ ↑↑μ₁ (⋃ i, s i) + ↑↑μ₂ (⋃ i, s i) = ∑' (i : ℕ), (↑↑μ₁ (s i) + ↑↑μ₂ (s i))

Next tactic:
rw [ENNReal.tsum_add, measure_iUnion hd hs, measure_iUnion hd hs]
instance instAdd [MeasurableSpace α] : Add (Measure α) :=
  ⟨fun μ₁ μ₂ =>
    { toOuterMeasure := μ₁.toOuterMeasure + μ₂.toOuterMeasure
      m_iUnion := fun s hs hd =>
        show μ₁ (⋃ i, s i) + μ₂ (⋃ i, s i) = ∑' i, (μ₁ (s i) + μ₂ (s i)) by
          rw [ENNReal.tsum_add, measure_iUnion hd hs, measure_iUnion hd hs]
      trimmed := by 

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁✝ μ₂✝ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : MeasurableSpace α
μ₁ μ₂ : Measure α
⊢ OuterMeasure.trim (↑μ₁ + ↑μ₂) = ↑μ₁ + ↑μ₂

Next tactic:
rw [OuterMeasure.trim_add, μ₁.trimmed, μ₂.trimmed]
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ ↑(c • ↑μ) (⋃ i, s i) = ∑' (i : ℕ), ↑(c • ↑μ) (s i)

Next tactic:
rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ ↑((c • 1) • ↑μ) (⋃ i, s i) = ∑' (i : ℕ), ↑((c • 1) • ↑μ) (s i)

Next tactic:
conv_lhs =>
          change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
          change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        conv_lhs =>
          

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ↑((c • 1) • ↑μ) (⋃ i, s i)

Next tactic:
change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
          change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        conv_lhs =>
          

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ↑((c • 1) • ↑μ) (⋃ i, s i)

Next tactic:
change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        conv_lhs =>
          change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
          

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ↑((c • OfNat.ofNat 1) • ↑μ) (⋃ i, s i)

Next tactic:
change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        conv_lhs =>
          change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
          change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
        

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ c • OfNat.ofNat 1 * ↑↑μ (⋃ i, s i) = ∑' (i : ℕ), ↑((c • 1) • ↑μ) (s i)

Next tactic:
conv_rhs =>
          change ∑' i, OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
          change ∑' i, (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf (μ.toOuterMeasure) (s i)
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        conv_lhs =>
          change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
          change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
        conv_rhs =>
          

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ∑' (i : ℕ), ↑((c • 1) • ↑μ) (s i)

Next tactic:
change ∑' i, OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
          change ∑' i, (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf (μ.toOuterMeasure) (s i)
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        conv_lhs =>
          change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
          change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
        conv_rhs =>
          

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ∑' (i : ℕ), ↑((c • 1) • ↑μ) (s i)

Next tactic:
change ∑' i, OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        conv_lhs =>
          change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
          change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
        conv_rhs =>
          change ∑' i, OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
          

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
| ∑' (i : ℕ), ↑((c • OfNat.ofNat 1) • ↑μ) (s i)

Next tactic:
change ∑' i, (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf (μ.toOuterMeasure) (s i)
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        conv_lhs =>
          change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
          change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
        conv_rhs =>
          change ∑' i, OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
          change ∑' i, (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf (μ.toOuterMeasure) (s i)
        

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
s : ℕ → Set α
hs : ∀ (i : ℕ), MeasurableSet (s i)
hd : Pairwise (Disjoint on s)
⊢ c • OfNat.ofNat 1 * ↑↑μ (⋃ i, s i) = ∑' (i : ℕ), c • OfNat.ofNat 1 * ↑↑μ (s i)

Next tactic:
simp_rw [measure_iUnion hd hs, ENNReal.tsum_mul_left]
instance instSMul [MeasurableSpace α] : SMul R (Measure α) :=
  ⟨fun c μ =>
    { toOuterMeasure := c • μ.toOuterMeasure
      m_iUnion := fun s hs hd => by
        rw [← smul_one_smul ℝ≥0∞ c (_ : OuterMeasure α)]
        conv_lhs =>
          change OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (⋃ i, s i)
          change (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf μ.toOuterMeasure (⋃ i, s i)
        conv_rhs =>
          change ∑' i, OuterMeasure.measureOf
            ((c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) • μ.toOuterMeasure) (s i)
          change ∑' i, (c • @OfNat.ofNat _ 1 One.toOfNat1 : ℝ≥0∞) *
            OuterMeasure.measureOf (μ.toOuterMeasure) (s i)
        simp_rw [measure_iUnion hd hs, ENNReal.tsum_mul_left]
      trimmed := by 

Proof state:
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝⁶ : MeasurableSpace β
inst✝⁵ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : SMul R' ℝ≥0∞
inst✝¹ : IsScalarTower R' ℝ≥0∞ ℝ≥0∞
inst✝ : MeasurableSpace α
c : R
μ : Measure α
⊢ OuterMeasure.trim (c • ↑μ) = c • ↑μ

Next tactic:
rw [OuterMeasure.trim_smul, μ.trimmed]