Theorem: ModuleCat.ExtendScalars.map'_comp
File: Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean

tactic: dsimp only [map']
state_before: R : Type u₁
S : Type u₂
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
M M₁ M₂ M₃ : ModuleCat R
l₁₂ : M₁ ⟶ M₂
l₂₃ : M₂ ⟶ M₃
x : ↑(obj' f M₁)
⊢ (map' f (l₁₂ ≫ l₂₃)) x = (map' f l₁₂ ≫ map' f l₂₃) x
state_after: R : Type u₁
S : Type u₂
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
M M₁ M₂ M₃ : ModuleCat R
l₁₂ : M₁ ⟶ M₂
l₂₃ : M₂ ⟶ M₃
x : ↑(obj' f M₁)
⊢ (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) x = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) x

tactic: induction' x using TensorProduct.induction_on with _ _ x y ihx ihy
state_before: R : Type u₁
S : Type u₂
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
M M₁ M₂ M₃ : ModuleCat R
l₁₂ : M₁ ⟶ M₂
l₂₃ : M₂ ⟶ M₃
x : ↑(obj' f M₁)
⊢ (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) x = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) x
state_after: case zero
R : Type u₁
S : Type u₂
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
M M₁ M₂ M₃ : ModuleCat R
l₁₂ : M₁ ⟶ M₂
l₂₃ : M₂ ⟶ M₃
⊢ (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) 0 = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) 0

case tmul
R : Type u₁
S : Type u₂
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
M M₁ M₂ M₃ : ModuleCat R
l₁₂ : M₁ ⟶ M₂
l₂₃ : M₂ ⟶ M₃
x✝ : ↑((restrictScalars f).obj (mk S))
y✝ : ↑M₁
⊢ (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) (x✝ ⊗ₜ[R] y✝) =
    (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) (x✝ ⊗ₜ[R] y✝)

case add
R : Type u₁
S : Type u₂
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
M M₁ M₂ M₃ : ModuleCat R
l₁₂ : M₁ ⟶ M₂
l₂₃ : M₂ ⟶ M₃
x y : ↑((restrictScalars f).obj (mk S)) ⊗[R] ↑M₁
ihx : (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) x = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) x
ihy : (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) y = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) y
⊢ (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) (x + y) = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) (x + y)

tactic: rfl
state_before: case zero
R : Type u₁
S : Type u₂
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
M M₁ M₂ M₃ : ModuleCat R
l₁₂ : M₁ ⟶ M₂
l₂₃ : M₂ ⟶ M₃
⊢ (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) 0 = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) 0
state_after: no goals

tactic: rfl
state_before: case tmul
R : Type u₁
S : Type u₂
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
M M₁ M₂ M₃ : ModuleCat R
l₁₂ : M₁ ⟶ M₂
l₂₃ : M₂ ⟶ M₃
x✝ : ↑((restrictScalars f).obj (mk S))
y✝ : ↑M₁
⊢ (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) (x✝ ⊗ₜ[R] y✝) =
    (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) (x✝ ⊗ₜ[R] y✝)
state_after: no goals

tactic: rw [map_add, map_add, ihx, ihy]
state_before: case add
R : Type u₁
S : Type u₂
inst✝¹ : CommRing R
inst✝ : CommRing S
f : R →+* S
M M₁ M₂ M₃ : ModuleCat R
l₁₂ : M₁ ⟶ M₂
l₂₃ : M₂ ⟶ M₃
x y : ↑((restrictScalars f).obj (mk S)) ⊗[R] ↑M₁
ihx : (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) x = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) x
ihy : (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) y = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) y
⊢ (LinearMap.baseChange S (l₁₂ ≫ l₂₃)) (x + y) = (LinearMap.baseChange S l₁₂ ≫ LinearMap.baseChange S l₂₃) (x + y)
state_after: no goals