Napkin

Chapter 11

Problem 11B†#

Lean

/--
# Problem 11B† (Product of traces)
Let T : V → V and S : W → W be linear maps of finite-dimensional vector spaces V
and W. Define T ⊗ S : V ⊗ W → V ⊗ W by λv ⊗ w.T(v) ⊗ S(w). Prove that:

    Tr(T ⊗ S) = Tr(T) Tr(S).
-/
theorem trace_tensor_product_eq_mul_trace
  -- kField
  {𝕜 : Type} [Field 𝕜]
  -- V, W ∈ FDVect_k
  {V : Type} [AddCommGroup V] [Module 𝕜 V] [FiniteDimensional 𝕜 V]
  {W : Type} [AddCommGroup W] [Module 𝕜 W] [FiniteDimensional 𝕜 W]
  -- T : V → V
  (T : V →ₗ[𝕜] V)
  -- S : W → W
  (S : W →ₗ[𝕜] W)
: -- Tr(T ⊗ S) = Tr(T) Tr(S)
  LinearMap.trace 𝕜 (TensorProduct 𝕜 V W) (TensorProduct.map T S) = LinearMap.trace 𝕜 V T * LinearMap.trace 𝕜 W S
:= LinearMap.trace_tensorProduct' T S
/-
V의 기저를 B_V라 하자
B_V = {v₁, ..., v_n}
n = dim(V)

W의 기저를 B_W라 하자
B_W = {w₁, ..., w_m}
m = dim(W)

V ⊗ W의 기저는 B_V ⊗ B_W이다.
B_{V ⊗ W} = {vᵢ ⊗ wⱼ | 1 ≤ i ≤ n, 1 ≤ j ≤ m}
nm = dim(V ⊗ W)

T와 S를 행렬로 A = [aᵢⱼ] (n x n), B = [bₖₗ] (m x m)라 하자.
T(vₖ) = Σᵢ aᵢₖ vᵢ
S(wₗ) = Σⱼ bⱼₗ wⱼ

Trace의 정의에 따라:
Tr(T) = Σᵢ aᵢᵢ
Tr(S) = Σⱼ bⱼⱼ

선형변환의 텐서곱 정의에 따라:
(T ⊗ S)(vₖ ⊗ wₗ) = T(vₖ) ⊗ S(wₗ)

이를 행렬 표현으로 바꾸면:
(T ⊗ S)(vₖ ⊗ wₗ) = (Σᵢ aᵢₖ vᵢ) ⊗ (Σⱼ bⱼₗ wⱼ)
                = ΣᵢΣⱼ aᵢₖ bⱼₗ (vᵢ ⊗ wⱼ)

여기에 Trace를 씌우면, 대각성분만 살아남는다:
Tr(T ⊗ S) = ΣᵢΣⱼ aᵢᵢ bⱼⱼ
          = (Σᵢ aᵢᵢ)(Σⱼ bⱼⱼ)
          = Tr(T) Tr(S)
-/