Theorem: MulAction.smul_orbit_eq_orbit_smul
File: Mathlib/GroupTheory/GroupAction/Blocks.lean

tactic: simp only [orbit, Set.image_smul, Set.smul_set_range]
state_before: G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
⊢ g • orbit (↥N) a = orbit (↥N) (g • a)
state_after: G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
⊢ (Set.range fun i => g • i • a) = Set.range fun m => m • g • a

tactic: ext
state_before: G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
⊢ (Set.range fun i => g • i • a) = Set.range fun m => m • g • a
state_after: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
x✝ : X
⊢ (x✝ ∈ Set.range fun i => g • i • a) ↔ x✝ ∈ Set.range fun m => m • g • a

tactic: simp only [Set.mem_range]
state_before: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
x✝ : X
⊢ (x✝ ∈ Set.range fun i => g • i • a) ↔ x✝ ∈ Set.range fun m => m • g • a
state_after: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
x✝ : X
⊢ (∃ y, g • y • a = x✝) ↔ ∃ y, y • g • a = x✝

tactic: constructor
state_before: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
x✝ : X
⊢ (∃ y, g • y • a = x✝) ↔ ∃ y, y • g • a = x✝
state_after: case h.mp
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
x✝ : X
⊢ (∃ y, g • y • a = x✝) → ∃ y, y • g • a = x✝

case h.mpr
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
x✝ : X
⊢ (∃ y, y • g • a = x✝) → ∃ y, g • y • a = x✝

tactic: rintro ⟨⟨k, hk⟩, rfl⟩
state_before: case h.mp
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
x✝ : X
⊢ (∃ y, g • y • a = x✝) → ∃ y, y • g • a = x✝
state_after: case h.mp.intro.mk
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ ∃ y, y • g • a = g • ⟨k, hk⟩ • a

tactic: use ⟨g * k * g⁻¹, nN.conj_mem k hk g⟩
state_before: case h.mp.intro.mk
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ ∃ y, y • g • a = g • ⟨k, hk⟩ • a
state_after: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ ⟨g * k * g⁻¹, ⋯⟩ • g • a = g • ⟨k, hk⟩ • a

tactic: simp only [Submonoid.mk_smul]
state_before: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ ⟨g * k * g⁻¹, ⋯⟩ • g • a = g • ⟨k, hk⟩ • a
state_after: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ (g * k * g⁻¹) • g • a = g • k • a

tactic: rw [smul_smul, inv_mul_cancel_right, ← smul_smul]
state_before: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ (g * k * g⁻¹) • g • a = g • k • a
state_after: no goals

tactic: rintro ⟨⟨k, hk⟩, rfl⟩
state_before: case h.mpr
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g : G
x✝ : X
⊢ (∃ y, y • g • a = x✝) → ∃ y, g • y • a = x✝
state_after: case h.mpr.intro.mk
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ ∃ y, g • y • a = ⟨k, hk⟩ • g • a

tactic: use ⟨g⁻¹ * k * g, nN.conj_mem' k hk g⟩
state_before: case h.mpr.intro.mk
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ ∃ y, g • y • a = ⟨k, hk⟩ • g • a
state_after: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ g • ⟨g⁻¹ * k * g, ⋯⟩ • a = ⟨k, hk⟩ • g • a

tactic: simp only [Submonoid.mk_smul]
state_before: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ g • ⟨g⁻¹ * k * g, ⋯⟩ • a = ⟨k, hk⟩ • g • a
state_after: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ g • (g⁻¹ * k * g) • a = k • g • a

tactic: simp only [← mul_assoc, ← smul_smul, smul_inv_smul, inv_inv]
state_before: case h
G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
N : Subgroup G
nN : N.Normal
a : X
g k : G
hk : k ∈ N
⊢ g • (g⁻¹ * k * g) • a = k • g • a
state_after: no goals