[GOAL]
M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
F : Type u_5
inst✝ : Monoid F
c : F → M → M
h1 : c 1 = id
hmul : ∀ (f g : F), c (f * g) = c f ∘ c g
f : F
⊢ c (f ^ 0) = (c f)^[0]
[PROOFSTEP]
rw [pow_zero, h1]
[GOAL]
M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
F : Type u_5
inst✝ : Monoid F
c : F → M → M
h1 : c 1 = id
hmul : ∀ (f g : F), c (f * g) = c f ∘ c g
f : F
⊢ id = (c f)^[0]
[PROOFSTEP]
rfl
[GOAL]
M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
F : Type u_5
inst✝ : Monoid F
c : F → M → M
h1 : c 1 = id
hmul : ∀ (f g : F), c (f * g) = c f ∘ c g
f : F
n : ℕ
⊢ c (f ^ (n + 1)) = (c f)^[n + 1]
[PROOFSTEP]
rw [pow_succ, iterate_succ', hmul, hom_coe_pow c h1 hmul f n]
[GOAL]
M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
inst✝¹ : Monoid G
a : G
n : ℕ
inst✝ : MulAction G H
b : H
⊢ (fun x => a • x)^[Nat.zero] b = a ^ Nat.zero • b
[PROOFSTEP]
rw [iterate_zero, id.def, pow_zero, one_smul]
[GOAL]
M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
inst✝¹ : Monoid G
a : G
n✝ : ℕ
inst✝ : MulAction G H
b : H
n : ℕ
ih : (fun x => a • x)^[n] b = a ^ n • b
⊢ (fun x => a • x)^[Nat.succ n] b = a ^ Nat.succ n • b
[PROOFSTEP]
rw [iterate_succ', comp_apply, ih, pow_succ, mul_smul]
[GOAL]
M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
inst✝ : Monoid G
a : G
n : ℕ
⊢ (fun x => x * a)^[n] 1 = a ^ n
[PROOFSTEP]
simp [mul_right_iterate]
[GOAL]
M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
inst✝ : Semigroup G
a b c : G
h : SemiconjBy a b c
j : G
⊢ (fun x => a * x) ((fun x => b * x) j) = (fun x => c * x) ((fun x => a * x) j)
[PROOFSTEP]
dsimp only
[GOAL]
M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
inst✝ : Semigroup G
a b c : G
h : SemiconjBy a b c
j : G
⊢ a * (b * j) = c * (a * j)
[PROOFSTEP]
rw [← mul_assoc, h.eq, mul_assoc]
[GOAL]
M : Type u_1
N : Type u_2
G : Type u_3
H : Type u_4
inst✝ : Semigroup G
a b c : G
h : SemiconjBy a b c
j : G
⊢ (fun x => x * a) ((fun x => x * c) j) = (fun x => x * b) ((fun x => x * a) j)
[PROOFSTEP]
simp_rw [mul_assoc, ← h.eq]
