Theorem: MeasureTheory.Measure.haar.index_union_le
File: Mathlib/MeasureTheory/Measure/Haar/Basic.lean

tactic: rcases index_elim K₁.2 hV with ⟨s, h1s, h2s⟩
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₁ K₂ : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
⊢ index (K₁.carrier ∪ K₂.carrier) V ≤ index K₁.carrier V + index K₂.carrier V

tactic: rcases index_elim K₂.2 hV with ⟨t, h1t, h2t⟩
state_before: case intro.intro
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₁ K₂ : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : K₁.carrier ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' V
h2s : Finset.card s = index K₁.carrier V
⊢ index (K₁.carrier ∪ K₂.carrier) V ≤ index K₁.carrier V + index K₂.carrier V

tactic: rw [← h2s, ← h2t]
state_before: case intro.intro.intro.intro
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₁ K₂ : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : K₁.carrier ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' V
h2s : Finset.card s = index K₁.carrier V
t : Finset G
h1t : K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index K₂.carrier V
⊢ index (K₁.carrier ∪ K₂.carrier) V ≤ index K₁.carrier V + index K₂.carrier V

tactic: refine' le_trans _ (Finset.card_union_le _ _)
state_before: case intro.intro.intro.intro
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₁ K₂ : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : K₁.carrier ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' V
h2s : Finset.card s = index K₁.carrier V
t : Finset G
h1t : K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index K₂.carrier V
⊢ index (K₁.carrier ∪ K₂.carrier) V ≤ Finset.card s + Finset.card t

tactic: apply Nat.sInf_le
state_before: case intro.intro.intro.intro
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₁ K₂ : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : K₁.carrier ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' V
h2s : Finset.card s = index K₁.carrier V
t : Finset G
h1t : K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index K₂.carrier V
⊢ index (K₁.carrier ∪ K₂.carrier) V ≤ Finset.card (s ∪ t)

tactic: refine' ⟨_, _, rfl⟩
state_before: case intro.intro.intro.intro.hm
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₁ K₂ : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : K₁.carrier ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' V
h2s : Finset.card s = index K₁.carrier V
t : Finset G
h1t : K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index K₂.carrier V
⊢ Finset.card (s ∪ t) ∈ Finset.card '' {t | K₁.carrier ∪ K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V}

tactic: rw [mem_setOf_eq]
state_before: case intro.intro.intro.intro.hm
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₁ K₂ : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : K₁.carrier ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' V
h2s : Finset.card s = index K₁.carrier V
t : Finset G
h1t : K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index K₂.carrier V
⊢ s ∪ t ∈ {t | K₁.carrier ∪ K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V}

tactic: apply union_subset <;> refine' Subset.trans (by assumption) _ <;>
  apply biUnion_subset_biUnion_left <;> intro g hg <;> simp only [mem_def] at hg <;>
  simp only [mem_def, Multiset.mem_union, Finset.union_val, hg, or_true_iff, true_or_iff]
state_before: case intro.intro.intro.intro.hm
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₁ K₂ : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : K₁.carrier ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' V
h2s : Finset.card s = index K₁.carrier V
t : Finset G
h1t : K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index K₂.carrier V
⊢ K₁.carrier ∪ K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ s ∪ t), (fun h => g * h) ⁻¹' V

tactic: assumption
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₁ K₂ : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : K₁.carrier ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' V
h2s : Finset.card s = index K₁.carrier V
t : Finset G
h1t : K₂.carrier ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index K₂.carrier V
⊢ K₂.carrier ⊆ ?m.44697