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

tactic: rwa [mem_preimage, hef g x]
state_before: G : Type u_2
H : Type u_4
α : Type u_3
β : Type u_1
E : Type ?u.43941
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
ν : Measure β
h : IsFundamentalDomain G s
f : β → α
hf : QuasiMeasurePreserving f
e : G → H
he : Bijective e
hef : ∀ (g : G), Semiconj f (fun x => e g • x) fun x => g • x
x : β
x✝ : ∃ g, g • f x ∈ s
g : G
hg : g • f x ∈ s
⊢ e g • x ∈ f ⁻¹' s

tactic: lift e to G ≃ H using he
state_before: G : Type u_2
H : Type u_4
α : Type u_3
β : Type u_1
E : Type ?u.43941
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
ν : Measure β
h : IsFundamentalDomain G s
f : β → α
hf : QuasiMeasurePreserving f
e : G → H
he : Bijective e
hef : ∀ (g : G), Semiconj f (fun x => e g • x) fun x => g • x
a b : H
hab : a ≠ b
⊢ (AEDisjoint ν on fun g => g • f ⁻¹' s) a b

tactic: have : (e.symm a⁻¹)⁻¹ ≠ (e.symm b⁻¹)⁻¹ := by simp [hab]
state_before: case intro
G : Type u_2
H : Type u_4
α : Type u_3
β : Type u_1
E : Type ?u.43941
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
ν : Measure β
h : IsFundamentalDomain G s
f : β → α
hf : QuasiMeasurePreserving f
a b : H
hab : a ≠ b
e : G ≃ H
hef : ∀ (g : G), Semiconj f (fun x => ↑e g • x) fun x => g • x
⊢ (AEDisjoint ν on fun g => g • f ⁻¹' s) a b

tactic: have := (h.aedisjoint this).preimage hf
state_before: case intro
G : Type u_2
H : Type u_4
α : Type u_3
β : Type u_1
E : Type ?u.43941
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
ν : Measure β
h : IsFundamentalDomain G s
f : β → α
hf : QuasiMeasurePreserving f
a b : H
hab : a ≠ b
e : G ≃ H
hef : ∀ (g : G), Semiconj f (fun x => ↑e g • x) fun x => g • x
this : (↑e.symm a⁻¹)⁻¹ ≠ (↑e.symm b⁻¹)⁻¹
⊢ (AEDisjoint ν on fun g => g • f ⁻¹' s) a b

tactic: simp only [Semiconj] at hef
state_before: case intro
G : Type u_2
H : Type u_4
α : Type u_3
β : Type u_1
E : Type ?u.43941
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
ν : Measure β
h : IsFundamentalDomain G s
f : β → α
hf : QuasiMeasurePreserving f
a b : H
hab : a ≠ b
e : G ≃ H
hef : ∀ (g : G), Semiconj f (fun x => ↑e g • x) fun x => g • x
this✝ : (↑e.symm a⁻¹)⁻¹ ≠ (↑e.symm b⁻¹)⁻¹
this : AEDisjoint ν (f ⁻¹' (fun g => g • s) (↑e.symm a⁻¹)⁻¹) (f ⁻¹' (fun g => g • s) (↑e.symm b⁻¹)⁻¹)
⊢ (AEDisjoint ν on fun g => g • f ⁻¹' s) a b

tactic: simpa only [onFun, ← preimage_smul_inv, preimage_preimage, ← hef, e.apply_symm_apply, inv_inv]
  using this
state_before: case intro
G : Type u_2
H : Type u_4
α : Type u_3
β : Type u_1
E : Type ?u.43941
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
ν : Measure β
h : IsFundamentalDomain G s
f : β → α
hf : QuasiMeasurePreserving f
a b : H
hab : a ≠ b
e : G ≃ H
hef : ∀ (g : G) (x : β), f (↑e g • x) = g • f x
this✝ : (↑e.symm a⁻¹)⁻¹ ≠ (↑e.symm b⁻¹)⁻¹
this : AEDisjoint ν (f ⁻¹' (fun g => g • s) (↑e.symm a⁻¹)⁻¹) (f ⁻¹' (fun g => g • s) (↑e.symm b⁻¹)⁻¹)
⊢ (AEDisjoint ν on fun g => g • f ⁻¹' s) a b

tactic: simp [hab]
state_before: G : Type u_2
H : Type u_4
α : Type u_3
β : Type u_1
E : Type ?u.43941
inst✝⁶ : Group G
inst✝⁵ : Group H
inst✝⁴ : MulAction G α
inst✝³ : MeasurableSpace α
inst✝² : MulAction H β
inst✝¹ : MeasurableSpace β
inst✝ : NormedAddCommGroup E
s t : Set α
μ : Measure α
ν : Measure β
h : IsFundamentalDomain G s
f : β → α
hf : QuasiMeasurePreserving f
a b : H
hab : a ≠ b
e : G ≃ H
hef : ∀ (g : G), Semiconj f (fun x => ↑e g • x) fun x => g • x
⊢ (↑e.symm a⁻¹)⁻¹ ≠ (↑e.symm b⁻¹)⁻¹