Theorem: MeasureTheory.addContent_biUnion_le
File: Mathlib/MeasureTheory/Measure/AddContent.lean

tactic: induction' S using Finset.induction with i S hiS h hs
state_before: α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
S : Finset ι
hs : ∀ n ∈ S, s n ∈ C
⊢ m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
state_after: case empty
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
hs : ∀ n ∈ ∅, s n ∈ C
⊢ m (⋃ i ∈ ∅, s i) ≤ ∑ i ∈ ∅, m (s i)

case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : ∀ n ∈ insert i S, s n ∈ C
⊢ m (⋃ i_1 ∈ insert i S, s i_1) ≤ ∑ i ∈ insert i S, m (s i)

tactic: simp
state_before: case empty
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
hs : ∀ n ∈ ∅, s n ∈ C
⊢ m (⋃ i ∈ ∅, s i) ≤ ∑ i ∈ ∅, m (s i)
state_after: no goals

tactic: rw [Finset.sum_insert hiS]
state_before: case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : ∀ n ∈ insert i S, s n ∈ C
⊢ m (⋃ i_1 ∈ insert i S, s i_1) ≤ ∑ i ∈ insert i S, m (s i)
state_after: case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : ∀ n ∈ insert i S, s n ∈ C
⊢ m (⋃ i_1 ∈ insert i S, s i_1) ≤ m (s i) + ∑ x ∈ S, m (s x)

tactic: simp_rw [← Finset.mem_coe, Finset.coe_insert, Set.biUnion_insert]
state_before: case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : ∀ n ∈ insert i S, s n ∈ C
⊢ m (⋃ i_1 ∈ insert i S, s i_1) ≤ m (s i) + ∑ x ∈ S, m (s x)
state_after: case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : ∀ n ∈ insert i S, s n ∈ C
⊢ m (s i ∪ ⋃ x ∈ ↑S, s x) ≤ m (s i) + ∑ x ∈ S, m (s x)

tactic: simp only [Finset.mem_insert, forall_eq_or_imp] at hs
state_before: case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : ∀ n ∈ insert i S, s n ∈ C
⊢ m (s i ∪ ⋃ x ∈ ↑S, s x) ≤ m (s i) + ∑ x ∈ S, m (s x)
state_after: case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : s i ∈ C ∧ ∀ a ∈ S, s a ∈ C
⊢ m (s i ∪ ⋃ x ∈ ↑S, s x) ≤ m (s i) + ∑ x ∈ S, m (s x)

tactic: refine (addContent_union_le hC hs.1 (hC.biUnion_mem S hs.2)).trans ?_
state_before: case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : s i ∈ C ∧ ∀ a ∈ S, s a ∈ C
⊢ m (s i ∪ ⋃ x ∈ ↑S, s x) ≤ m (s i) + ∑ x ∈ S, m (s x)
state_after: case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : s i ∈ C ∧ ∀ a ∈ S, s a ∈ C
⊢ m (s i) + m (⋃ i ∈ S, s i) ≤ m (s i) + ∑ x ∈ S, m (s x)

tactic: exact add_le_add le_rfl (h hs.2)
state_before: case insert
α : Type u_1
C : Set (Set α)
s✝ t : Set α
I : Finset (Set α)
m m' : AddContent C
ι : Type u_2
hC : IsSetRing C
s : ι → Set α
i : ι
S : Finset ι
hiS : i ∉ S
h : (∀ n ∈ S, s n ∈ C) → m (⋃ i ∈ S, s i) ≤ ∑ i ∈ S, m (s i)
hs : s i ∈ C ∧ ∀ a ∈ S, s a ∈ C
⊢ m (s i) + m (⋃ i ∈ S, s i) ≤ m (s i) + ∑ x ∈ S, m (s x)
state_after: no goals