Theorem: map_inv_nat_cast_smul
File: Mathlib/Algebra/Module/Basic.lean

tactic: by_cases hR : (n : R) = 0 <;> by_cases hS : (n : S) = 0
state_before: α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
x : M
⊢ ↑f ((↑n)⁻¹ • x) = (↑n)⁻¹ • ↑f x

tactic: simp [hR, hS, map_zero f]
state_before: case pos
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
x : M
hR : ↑n = 0
hS : ↑n = 0
⊢ ↑f ((↑n)⁻¹ • x) = (↑n)⁻¹ • ↑f x

tactic: suffices ∀ y, f y = 0 by rw [this, this, smul_zero]
state_before: case neg
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
x : M
hR : ↑n = 0
hS : ¬↑n = 0
⊢ ↑f ((↑n)⁻¹ • x) = (↑n)⁻¹ • ↑f x

tactic: clear x
state_before: case neg
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
x : M
hR : ↑n = 0
hS : ¬↑n = 0
⊢ ∀ (y : M), ↑f y = 0

tactic: intro x
state_before: case neg
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
hR : ↑n = 0
hS : ¬↑n = 0
⊢ ∀ (y : M), ↑f y = 0

tactic: rw [← inv_smul_smul₀ hS (f x), ← map_nat_cast_smul f R S]
state_before: case neg
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
hR : ↑n = 0
hS : ¬↑n = 0
x : M
⊢ ↑f x = 0

tactic: simp [hR, map_zero f]
state_before: case neg
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
hR : ↑n = 0
hS : ¬↑n = 0
x : M
⊢ (↑n)⁻¹ • ↑f (↑n • x) = 0

tactic: rw [this, this, smul_zero]
state_before: α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
x : M
hR : ↑n = 0
hS : ¬↑n = 0
this : ∀ (y : M), ↑f y = 0
⊢ ↑f ((↑n)⁻¹ • x) = (↑n)⁻¹ • ↑f x

tactic: suffices ∀ y, f y = 0 by simp [this]
state_before: case pos
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
x : M
hR : ¬↑n = 0
hS : ↑n = 0
⊢ ↑f ((↑n)⁻¹ • x) = (↑n)⁻¹ • ↑f x

tactic: clear x
state_before: case pos
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
x : M
hR : ¬↑n = 0
hS : ↑n = 0
⊢ ∀ (y : M), ↑f y = 0

tactic: intro x
state_before: case pos
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
hR : ¬↑n = 0
hS : ↑n = 0
⊢ ∀ (y : M), ↑f y = 0

tactic: rw [← smul_inv_smul₀ hR x, map_nat_cast_smul f R S, hS, zero_smul]
state_before: case pos
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
hR : ¬↑n = 0
hS : ↑n = 0
x : M
⊢ ↑f x = 0

tactic: simp [this]
state_before: α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
x : M
hR : ¬↑n = 0
hS : ↑n = 0
this : ∀ (y : M), ↑f y = 0
⊢ ↑f ((↑n)⁻¹ • x) = (↑n)⁻¹ • ↑f x

tactic: rw [← inv_smul_smul₀ hS (f _), ← map_nat_cast_smul f R S, smul_inv_smul₀ hR]
state_before: case neg
α : Type ?u.178772
R✝ : Type ?u.178775
k : Type ?u.178778
S✝ : Type ?u.178781
M : Type u_1
M₂ : Type u_2
M₃ : Type ?u.178790
ι : Type ?u.178793
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M₂
F : Type u_3
inst✝⁴ : AddMonoidHomClass F M M₂
f : F
R : Type u_4
S : Type u_5
inst✝³ : DivisionSemiring R
inst✝² : DivisionSemiring S
inst✝¹ : Module R M
inst✝ : Module S M₂
n : ℕ
x : M
hR : ¬↑n = 0
hS : ¬↑n = 0
⊢ ↑f ((↑n)⁻¹ • x) = (↑n)⁻¹ • ↑f x