Theorem: MulAction.isPretransitive_compHom
File: Mathlib/Algebra/Group/Action/Defs.lean

tactic: let _ : MulAction E G := MulAction.compHom _ f
state_before: M : Type u_1
N : Type u_2
G✝ : Type u_3
A : Type u_4
B : Type u_5
α : Type u_6
β : Type u_7
γ : Type u_8
δ : Type u_9
inst✝⁵ : Monoid M
inst✝⁴ : MulAction M α
E : Type u_10
F : Type u_11
G : Type u_12
inst✝³ : Monoid E
inst✝² : Monoid F
inst✝¹ : MulAction F G
inst✝ : IsPretransitive F G
f : E →* F
hf : Surjective ⇑f
⊢ IsPretransitive E G
state_after: M : Type u_1
N : Type u_2
G✝ : Type u_3
A : Type u_4
B : Type u_5
α : Type u_6
β : Type u_7
γ : Type u_8
δ : Type u_9
inst✝⁵ : Monoid M
inst✝⁴ : MulAction M α
E : Type u_10
F : Type u_11
G : Type u_12
inst✝³ : Monoid E
inst✝² : Monoid F
inst✝¹ : MulAction F G
inst✝ : IsPretransitive F G
f : E →* F
hf : Surjective ⇑f
x✝ : MulAction E G := compHom G f
⊢ IsPretransitive E G

tactic: refine ⟨fun x y ↦ ?_⟩
state_before: M : Type u_1
N : Type u_2
G✝ : Type u_3
A : Type u_4
B : Type u_5
α : Type u_6
β : Type u_7
γ : Type u_8
δ : Type u_9
inst✝⁵ : Monoid M
inst✝⁴ : MulAction M α
E : Type u_10
F : Type u_11
G : Type u_12
inst✝³ : Monoid E
inst✝² : Monoid F
inst✝¹ : MulAction F G
inst✝ : IsPretransitive F G
f : E →* F
hf : Surjective ⇑f
x✝ : MulAction E G := compHom G f
⊢ IsPretransitive E G
state_after: M : Type u_1
N : Type u_2
G✝ : Type u_3
A : Type u_4
B : Type u_5
α : Type u_6
β : Type u_7
γ : Type u_8
δ : Type u_9
inst✝⁵ : Monoid M
inst✝⁴ : MulAction M α
E : Type u_10
F : Type u_11
G : Type u_12
inst✝³ : Monoid E
inst✝² : Monoid F
inst✝¹ : MulAction F G
inst✝ : IsPretransitive F G
f : E →* F
hf : Surjective ⇑f
x✝ : MulAction E G := compHom G f
x y : G
⊢ ∃ g, g • x = y

tactic: obtain ⟨m, rfl⟩ : ∃ m : F, m • x = y := exists_smul_eq F x y
state_before: M : Type u_1
N : Type u_2
G✝ : Type u_3
A : Type u_4
B : Type u_5
α : Type u_6
β : Type u_7
γ : Type u_8
δ : Type u_9
inst✝⁵ : Monoid M
inst✝⁴ : MulAction M α
E : Type u_10
F : Type u_11
G : Type u_12
inst✝³ : Monoid E
inst✝² : Monoid F
inst✝¹ : MulAction F G
inst✝ : IsPretransitive F G
f : E →* F
hf : Surjective ⇑f
x✝ : MulAction E G := compHom G f
x y : G
⊢ ∃ g, g • x = y
state_after: case intro
M : Type u_1
N : Type u_2
G✝ : Type u_3
A : Type u_4
B : Type u_5
α : Type u_6
β : Type u_7
γ : Type u_8
δ : Type u_9
inst✝⁵ : Monoid M
inst✝⁴ : MulAction M α
E : Type u_10
F : Type u_11
G : Type u_12
inst✝³ : Monoid E
inst✝² : Monoid F
inst✝¹ : MulAction F G
inst✝ : IsPretransitive F G
f : E →* F
hf : Surjective ⇑f
x✝ : MulAction E G := compHom G f
x : G
m : F
⊢ ∃ g, g • x = m • x

tactic: obtain ⟨e, rfl⟩ : ∃ e, f e = m := hf m
state_before: case intro
M : Type u_1
N : Type u_2
G✝ : Type u_3
A : Type u_4
B : Type u_5
α : Type u_6
β : Type u_7
γ : Type u_8
δ : Type u_9
inst✝⁵ : Monoid M
inst✝⁴ : MulAction M α
E : Type u_10
F : Type u_11
G : Type u_12
inst✝³ : Monoid E
inst✝² : Monoid F
inst✝¹ : MulAction F G
inst✝ : IsPretransitive F G
f : E →* F
hf : Surjective ⇑f
x✝ : MulAction E G := compHom G f
x : G
m : F
⊢ ∃ g, g • x = m • x
state_after: case intro.intro
M : Type u_1
N : Type u_2
G✝ : Type u_3
A : Type u_4
B : Type u_5
α : Type u_6
β : Type u_7
γ : Type u_8
δ : Type u_9
inst✝⁵ : Monoid M
inst✝⁴ : MulAction M α
E : Type u_10
F : Type u_11
G : Type u_12
inst✝³ : Monoid E
inst✝² : Monoid F
inst✝¹ : MulAction F G
inst✝ : IsPretransitive F G
f : E →* F
hf : Surjective ⇑f
x✝ : MulAction E G := compHom G f
x : G
e : E
⊢ ∃ g, g • x = f e • x

tactic: exact ⟨e, rfl⟩
state_before: case intro.intro
M : Type u_1
N : Type u_2
G✝ : Type u_3
A : Type u_4
B : Type u_5
α : Type u_6
β : Type u_7
γ : Type u_8
δ : Type u_9
inst✝⁵ : Monoid M
inst✝⁴ : MulAction M α
E : Type u_10
F : Type u_11
G : Type u_12
inst✝³ : Monoid E
inst✝² : Monoid F
inst✝¹ : MulAction F G
inst✝ : IsPretransitive F G
f : E →* F
hf : Surjective ⇑f
x✝ : MulAction E G := compHom G f
x : G
e : E
⊢ ∃ g, g • x = f e • x
state_after: no goals