Theorem: MeasureTheory.IsFundamentalDomain.mk_of_measure_univ_le
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: replace h_meas : ∀ g : G, NullMeasurableSet (g • s) μ := fun g => by
  rw [← inv_inv g, ← preimage_smul]; exact h_meas.preimage (h_qmp g⁻¹)
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_meas : NullMeasurableSet s
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
⊢ ∀ᵐ (x : α) ∂μ, ∃ g, g • x ∈ s

tactic: have h_meas' : NullMeasurableSet {a | ∃ g : G, g • a ∈ s} μ := by
  rw [← iUnion_smul_eq_setOf_exists]; exact .iUnion h_meas
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
h_meas : ∀ (g : G), NullMeasurableSet (g • s)
⊢ ∀ᵐ (x : α) ∂μ, ∃ g, g • x ∈ s

tactic: rw [ae_iff_measure_eq h_meas', ← iUnion_smul_eq_setOf_exists]
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
h_meas : ∀ (g : G), NullMeasurableSet (g • s)
h_meas' : NullMeasurableSet {a | ∃ g, g • a ∈ s}
⊢ ∀ᵐ (x : α) ∂μ, ∃ g, g • x ∈ s

tactic: refine' le_antisymm (measure_mono <| subset_univ _) _
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
h_meas : ∀ (g : G), NullMeasurableSet (g • s)
h_meas' : NullMeasurableSet {a | ∃ g, g • a ∈ s}
⊢ ↑↑μ (⋃ (g : G), g • s) = ↑↑μ univ

tactic: rw [measure_iUnion₀ aedisjoint h_meas]
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
h_meas : ∀ (g : G), NullMeasurableSet (g • s)
h_meas' : NullMeasurableSet {a | ∃ g, g • a ∈ s}
⊢ ↑↑μ univ ≤ ↑↑μ (⋃ (g : G), g • s)

tactic: exact h_measure_univ_le
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
h_meas : ∀ (g : G), NullMeasurableSet (g • s)
h_meas' : NullMeasurableSet {a | ∃ g, g • a ∈ s}
⊢ ↑↑μ univ ≤ ∑' (i : G), ↑↑μ (i • s)

tactic: rw [← inv_inv g, ← preimage_smul]
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_meas : NullMeasurableSet s
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
g : G
⊢ NullMeasurableSet (g • s)

tactic: exact h_meas.preimage (h_qmp g⁻¹)
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_meas : NullMeasurableSet s
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
g : G
⊢ NullMeasurableSet ((fun x => g⁻¹ • x) ⁻¹' s)

tactic: rw [← iUnion_smul_eq_setOf_exists]
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
h_meas : ∀ (g : G), NullMeasurableSet (g • s)
⊢ NullMeasurableSet {a | ∃ g, g • a ∈ s}

tactic: exact .iUnion h_meas
state_before: G : Type u_2
H : Type ?u.17508
α : Type u_1
β : Type ?u.17514
E : Type ?u.17517
inst✝⁸ : Group G
inst✝⁷ : Group H
inst✝⁶ : MulAction G α
inst✝⁵ : MeasurableSpace α
inst✝⁴ : MulAction H β
inst✝³ : MeasurableSpace β
inst✝² : NormedAddCommGroup E
s t : Set α
μ : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : Countable G
h_ae_disjoint : ∀ (g : G), g ≠ 1 → AEDisjoint μ (g • s) s
h_qmp : ∀ (g : G), QuasiMeasurePreserving ((fun x x_1 => x • x_1) g)
h_measure_univ_le : ↑↑μ univ ≤ ∑' (g : G), ↑↑μ (g • s)
aedisjoint : Pairwise (AEDisjoint μ on fun g => g • s)
h_meas : ∀ (g : G), NullMeasurableSet (g • s)
⊢ NullMeasurableSet (⋃ (g : G), g • s)