Theorem: PiTensorProduct.map_comp_reindex_symm
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

Proof steps:
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁹ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁸ : (i : ι) → AddCommMonoid (s i)
inst✝⁷ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
E : Type u_9
inst✝⁴ : AddCommMonoid E
inst✝³ : Module R E
F : Type u_10
inst✝² : AddCommMonoid F
t : ι → Type u_11
inst✝¹ : (i : ι) → AddCommMonoid (t i)
inst✝ : (i : ι) → Module R (t i)
f : (i : ι) → s i →ₗ[R] t i
e : ι ≃ ι₂
⊢ map f ∘ₗ ↑(reindex R s e).symm = ↑(reindex R t e).symm ∘ₗ map fun i => f (e.symm i)
state_after: case H.H
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁹ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁸ : (i : ι) → AddCommMonoid (s i)
inst✝⁷ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
E : Type u_9
inst✝⁴ : AddCommMonoid E
inst✝³ : Module R E
F : Type u_10
inst✝² : AddCommMonoid F
t : ι → Type u_11
inst✝¹ : (i : ι) → AddCommMonoid (t i)
inst✝ : (i : ι) → Module R (t i)
f : (i : ι) → s i →ₗ[R] t i
e : ι ≃ ι₂
m : (i : ι₂) → s (e.symm i)
⊢ ((map f ∘ₗ ↑(reindex R s e).symm).compMultilinearMap (tprod R)) m =
    ((↑(reindex R t e).symm ∘ₗ map fun i => f (e.symm i)).compMultilinearMap (tprod R)) m
tactic: ext m
state_before: case H.H
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁹ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁸ : (i : ι) → AddCommMonoid (s i)
inst✝⁷ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
E : Type u_9
inst✝⁴ : AddCommMonoid E
inst✝³ : Module R E
F : Type u_10
inst✝² : AddCommMonoid F
t : ι → Type u_11
inst✝¹ : (i : ι) → AddCommMonoid (t i)
inst✝ : (i : ι) → Module R (t i)
f : (i : ι) → s i →ₗ[R] t i
e : ι ≃ ι₂
m : (i : ι₂) → s (e.symm i)
⊢ ((map f ∘ₗ ↑(reindex R s e).symm).compMultilinearMap (tprod R)) m =
    ((↑(reindex R t e).symm ∘ₗ map fun i => f (e.symm i)).compMultilinearMap (tprod R)) m
state_after: case H.H.a
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁹ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁸ : (i : ι) → AddCommMonoid (s i)
inst✝⁷ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
E : Type u_9
inst✝⁴ : AddCommMonoid E
inst✝³ : Module R E
F : Type u_10
inst✝² : AddCommMonoid F
t : ι → Type u_11
inst✝¹ : (i : ι) → AddCommMonoid (t i)
inst✝ : (i : ι) → Module R (t i)
f : (i : ι) → s i →ₗ[R] t i
e : ι ≃ ι₂
m : (i : ι₂) → s (e.symm i)
⊢ (reindex R t e) (((map f ∘ₗ ↑(reindex R s e).symm).compMultilinearMap (tprod R)) m) =
    (reindex R t e) (((↑(reindex R t e).symm ∘ₗ map fun i => f (e.symm i)).compMultilinearMap (tprod R)) m)
tactic: apply LinearEquiv.injective (reindex R t e)
state_before: case H.H.a
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁹ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁸ : (i : ι) → AddCommMonoid (s i)
inst✝⁷ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
E : Type u_9
inst✝⁴ : AddCommMonoid E
inst✝³ : Module R E
F : Type u_10
inst✝² : AddCommMonoid F
t : ι → Type u_11
inst✝¹ : (i : ι) → AddCommMonoid (t i)
inst✝ : (i : ι) → Module R (t i)
f : (i : ι) → s i →ₗ[R] t i
e : ι ≃ ι₂
m : (i : ι₂) → s (e.symm i)
⊢ (reindex R t e) (((map f ∘ₗ ↑(reindex R s e).symm).compMultilinearMap (tprod R)) m) =
    (reindex R t e) (((↑(reindex R t e).symm ∘ₗ map fun i => f (e.symm i)).compMultilinearMap (tprod R)) m)
state_after: no goals
tactic: simp only [LinearMap.compMultilinearMap_apply, LinearMap.coe_comp, LinearEquiv.coe_coe,
    comp_apply, ← map_reindex, LinearEquiv.apply_symm_apply, map_tprod]