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

tactic: obtain ⟨s, h1s, h2s⟩ := index_elim K.isCompact K₀.interior_nonempty
state_before: G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
⊢ index (↑K) V ≤ index ↑K ↑K₀ * index (↑K₀) V

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

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

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

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₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : ↑K ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' ↑K₀
h2s : Finset.card s = index ↑K ↑K₀
t : Finset G
h1t : ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index (↑K₀) V
⊢ index (↑K) V ≤ Finset.card (t * s)

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₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : ↑K ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' ↑K₀
h2s : Finset.card s = index ↑K ↑K₀
t : Finset G
h1t : ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index (↑K₀) V
⊢ Finset.card (t * s) ∈ Finset.card '' {t | ↑K ⊆ ⋃ (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₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : ↑K ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' ↑K₀
h2s : Finset.card s = index ↑K ↑K₀
t : Finset G
h1t : ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index (↑K₀) V
⊢ t * s ∈ {t | ↑K ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V}

tactic: refine' Subset.trans h1s _
state_before: case intro.intro.intro.intro.hm
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : ↑K ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' ↑K₀
h2s : Finset.card s = index ↑K ↑K₀
t : Finset G
h1t : ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index (↑K₀) V
⊢ ↑K ⊆ ⋃ (g : G) (_ : g ∈ t * s), (fun h => g * h) ⁻¹' V

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

tactic: intro g₁ hg₁
state_before: case intro.intro.intro.intro.hm.h
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : ↑K ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' ↑K₀
h2s : Finset.card s = index ↑K ↑K₀
t : Finset G
h1t : ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index (↑K₀) V
⊢ ∀ (i : G), i ∈ s → (fun h => i * h) ⁻¹' ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t * s), (fun h => g * h) ⁻¹' V

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

tactic: intro g₂ hg₂
state_before: case intro.intro.intro.intro.hm.h
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : ↑K ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' ↑K₀
h2s : Finset.card s = index ↑K ↑K₀
t : Finset G
h1t : ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index (↑K₀) V
g₁ : G
hg₁ : g₁ ∈ s
⊢ ∀ (a : G), g₁ * a ∈ ↑K₀ → a ∈ ⋃ (g : G) (_ : g ∈ t * s), (fun h => g * h) ⁻¹' V

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

tactic: rcases this with ⟨_, ⟨g₃, rfl⟩, A, ⟨hg₃, rfl⟩, h2V⟩
state_before: case intro.intro.intro.intro.hm.h
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : ↑K ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' ↑K₀
h2s : Finset.card s = index ↑K ↑K₀
t : Finset G
h1t : ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index (↑K₀) V
g₁ : G
hg₁ : g₁ ∈ s
g₂ : G
hg₂ : g₁ * g₂ ∈ ↑K₀
this : g₁ * g₂ ∈ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
⊢ g₂ ∈ ⋃ (g : G) (_ : g ∈ t * s), (fun h => g * h) ⁻¹' V

tactic: rw [mem_preimage, ← mul_assoc] at h2V
state_before: case intro.intro.intro.intro.hm.h.intro.intro.intro.intro.intro.intro
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : ↑K ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' ↑K₀
h2s : Finset.card s = index ↑K ↑K₀
t : Finset G
h1t : ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index (↑K₀) V
g₁ : G
hg₁ : g₁ ∈ s
g₂ : G
hg₂ : g₁ * g₂ ∈ ↑K₀
g₃ : G
hg₃ : g₃ ∈ t
h2V : g₁ * g₂ ∈ (fun h => (fun h => g₃ * h) ⁻¹' V) hg₃
⊢ g₂ ∈ ⋃ (g : G) (_ : g ∈ t * s), (fun h => g * h) ⁻¹' V

tactic: exact mem_biUnion (Finset.mul_mem_mul hg₃ hg₁) h2V
state_before: case intro.intro.intro.intro.hm.h.intro.intro.intro.intro.intro.intro
G : Type u_1
inst✝² : Group G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
K₀ : PositiveCompacts G
K : Compacts G
V : Set G
hV : Set.Nonempty (interior V)
s : Finset G
h1s : ↑K ⊆ ⋃ (g : G) (_ : g ∈ s), (fun h => g * h) ⁻¹' ↑K₀
h2s : Finset.card s = index ↑K ↑K₀
t : Finset G
h1t : ↑K₀ ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h => g * h) ⁻¹' V
h2t : Finset.card t = index (↑K₀) V
g₁ : G
hg₁ : g₁ ∈ s
g₂ : G
hg₂ : g₁ * g₂ ∈ ↑K₀
g₃ : G
hg₃ : g₃ ∈ t
h2V : g₃ * g₁ * g₂ ∈ V
⊢ g₂ ∈ ⋃ (g : G) (_ : g ∈ t * s), (fun h => g * h) ⁻¹' V