Theorem: MeasureTheory.addContent_union'
File: Mathlib/MeasureTheory/Measure/AddContent.lean

tactic: by_cases hs_empty : s = ∅
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
⊢ m (s ∪ t) = m s + m t
state_after: case pos
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : s = ∅
⊢ m (s ∪ t) = m s + m t

case neg
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ m (s ∪ t) = m s + m t

tactic: simp only [hs_empty, Set.empty_union, addContent_empty, zero_add]
state_before: case pos
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : s = ∅
⊢ m (s ∪ t) = m s + m t
state_after: no goals

tactic: have h := addContent_sUnion (m := m) (I := {s, t}) ?_ ?_ ?_
state_before: case neg
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ m (s ∪ t) = m s + m t
state_after: case neg.refine_4
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ m (s ∪ t) = m s + m t

case neg.refine_1
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ↑{s, t} ⊆ C

case neg.refine_2
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ (↑{s, t}).PairwiseDisjoint id

case neg.refine_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ⋃₀ ↑{s, t} ∈ C

tactic: rotate_left
state_before: case neg.refine_4
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ m (s ∪ t) = m s + m t

case neg.refine_1
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ↑{s, t} ⊆ C

case neg.refine_2
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ (↑{s, t}).PairwiseDisjoint id

case neg.refine_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ⋃₀ ↑{s, t} ∈ C
state_after: case neg.refine_1
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ↑{s, t} ⊆ C

case neg.refine_2
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ (↑{s, t}).PairwiseDisjoint id

case neg.refine_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ⋃₀ ↑{s, t} ∈ C

case neg.refine_4
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ m (s ∪ t) = m s + m t

tactic: convert h
state_before: case neg.refine_4
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ m (s ∪ t) = m s + m t
state_after: case h.e'_2.h.e'_6
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ s ∪ t = ⋃₀ ↑{s, t}

case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ m s + m t = ∑ u ∈ {s, t}, m u

tactic: simp only [coe_pair, Set.insert_subset_iff, hs, ht, Set.singleton_subset_iff, and_self_iff]
state_before: case neg.refine_1
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ↑{s, t} ⊆ C
state_after: no goals

tactic: simp only [coe_pair, Set.pairwiseDisjoint_insert, pairwiseDisjoint_singleton,
  mem_singleton_iff, Ne, id, forall_eq, true_and_iff]
state_before: case neg.refine_2
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ (↑{s, t}).PairwiseDisjoint id
state_after: case neg.refine_2
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ¬s = t → Disjoint s t

tactic: exact fun _ => h_dis
state_before: case neg.refine_2
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ¬s = t → Disjoint s t
state_after: no goals

tactic: simp only [coe_pair, sUnion_insert, sUnion_singleton]
state_before: case neg.refine_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ ⋃₀ ↑{s, t} ∈ C
state_after: case neg.refine_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ s ∪ t ∈ C

tactic: exact hst
state_before: case neg.refine_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
⊢ s ∪ t ∈ C
state_after: no goals

tactic: simp only [coe_pair, sUnion_insert, sUnion_singleton]
state_before: case h.e'_2.h.e'_6
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ s ∪ t = ⋃₀ ↑{s, t}
state_after: no goals

tactic: rw [sum_insert, sum_singleton]
state_before: case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ m s + m t = ∑ u ∈ {s, t}, m u
state_after: case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ s ∉ {t}

tactic: simp only [Finset.mem_singleton]
state_before: case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ s ∉ {t}
state_after: case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ ¬s = t

tactic: refine fun hs_eq_t => hs_empty ?_
state_before: case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
⊢ ¬s = t
state_after: case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
hs_eq_t : s = t
⊢ s = ∅

tactic: rw [← hs_eq_t] at h_dis
state_before: case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s t
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
hs_eq_t : s = t
⊢ s = ∅
state_after: case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s s
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
hs_eq_t : s = t
⊢ s = ∅

tactic: exact Disjoint.eq_bot_of_self h_dis
state_before: case h.e'_3
α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
m m' : AddContent C
hs : s ∈ C
ht : t ∈ C
hst : s ∪ t ∈ C
h_dis : Disjoint s s
hs_empty : ¬s = ∅
h : m (⋃₀ ↑{s, t}) = ∑ u ∈ {s, t}, m u
hs_eq_t : s = t
⊢ s = ∅
state_after: no goals