Imports
/- Copyright (c) 2025 Florian Wiesner. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Florian Wiesner -/ module public import Physlib.SpaceAndTime.Space.Derivatives.Div

Matrix divergence on Space

i. Overview

In this module we define the matrix divergence operator on matrix-valued functions from Space d.

For a field T : Space d → Matrix (Fin d) (Fin d) ℝ, the matrix divergence is the vector field whose ith component is

∑ j, ∂[j] (fun x => T x i j) x.

ii. Key results

    matrixDiv : The divergence of a matrix-valued function on Space d.

iii. Table of contents

    A. The matrix divergence on functions

      A.1. Basic equalities

      A.2. The matrix divergence on the zero function

      A.3. The matrix divergence on a constant function

      A.4. The matrix divergence distributes over addition

      A.5. The matrix divergence distributes over scalar multiplication

iv. References

@[expose] public section

A. The matrix divergence on functions

A.1. Basic equalities

@[simp] lemma matrixDiv_apply (d : ℕ) (T : Space d → Matrix (Fin d) (Fin d) ℝ) (x : Space d) (i : Fin d) : matrixDiv d T x i = ∑ j, ∂[j] (fun x => T x i j) x := d:ℕT:Space d → Matrix (Fin d) (Fin d) ℝx:Space di:Fin d⊢ (matrixDiv d T x).ofLp i = ∑ j, deriv j (fun x => T x i j) x All goals completed! 🐙

A.2. The matrix divergence on the zero function

@[simp] lemma matrixDiv_zero (d : ℕ) : matrixDiv d (0 : Space d → Matrix (Fin d) (Fin d) ℝ) = 0 := d:ℕ⊢ matrixDiv d 0 = 0 d:ℕx:Space di:Fin d⊢ (matrixDiv d 0 x).ofLp i = (0 x).ofLp i d:ℕx:Space di:Fin d⊢ ∑ j, deriv j (fun x => 0) x = 0 All goals completed! 🐙

A.3. The matrix divergence on a constant function

@[simp] lemma matrixDiv_const (d : ℕ) (T : Matrix (Fin d) (Fin d) ℝ) : matrixDiv d (fun _ : Space d => T) = 0 := d:ℕT:Matrix (Fin d) (Fin d) ℝ⊢ (matrixDiv d fun x => T) = 0 d:ℕT:Matrix (Fin d) (Fin d) ℝx:Space di:Fin d⊢ (matrixDiv d (fun x => T) x).ofLp i = (0 x).ofLp i d:ℕT:Matrix (Fin d) (Fin d) ℝx:Space di:Fin d⊢ ∑ j, deriv j (fun x => T i j) x = 0 All goals completed! 🐙

A.4. The matrix divergence distributes over addition

d:ℕT1:Space d → Matrix (Fin d) (Fin d) ℝT2:Space d → Matrix (Fin d) (Fin d) ℝhT1:Differentiable ℝ T1hT2:Differentiable ℝ T2x:Space di:Fin dj:Fin d⊢ ((deriv j fun x => T1 x i j) + deriv j fun x => T2 x i j) x = deriv j (fun x => T1 x i j) x + deriv j (fun x => T2 x i j) xd:ℕT1:Space d → Matrix (Fin d) (Fin d) ℝT2:Space d → Matrix (Fin d) (Fin d) ℝhT1:Differentiable ℝ T1hT2:Differentiable ℝ T2x:Space di:Fin dj:Fin d⊢ Differentiable ℝ fun x => T1 x i jd:ℕT1:Space d → Matrix (Fin d) (Fin d) ℝT2:Space d → Matrix (Fin d) (Fin d) ℝhT1:Differentiable ℝ T1hT2:Differentiable ℝ T2x:Space di:Fin dj:Fin d⊢ Differentiable ℝ fun x => T2 x i j d:ℕT1:Space d → Matrix (Fin d) (Fin d) ℝT2:Space d → Matrix (Fin d) (Fin d) ℝhT1:Differentiable ℝ T1hT2:Differentiable ℝ T2x:Space di:Fin dj:Fin d⊢ ((deriv j fun x => T1 x i j) + deriv j fun x => T2 x i j) x = deriv j (fun x => T1 x i j) x + deriv j (fun x => T2 x i j) x All goals completed! 🐙 d:ℕT1:Space d → Matrix (Fin d) (Fin d) ℝT2:Space d → Matrix (Fin d) (Fin d) ℝhT1:Differentiable ℝ T1hT2:Differentiable ℝ T2x:Space di:Fin dj:Fin d⊢ Differentiable ℝ fun x => T1 x i j All goals completed! 🐙 d:ℕT1:Space d → Matrix (Fin d) (Fin d) ℝT2:Space d → Matrix (Fin d) (Fin d) ℝhT1:Differentiable ℝ T1hT2:Differentiable ℝ T2x:Space di:Fin dj:Fin d⊢ Differentiable ℝ fun x => T2 x i j All goals completed! 🐙

A.5. The matrix divergence distributes over scalar multiplication

d:ℕT:Space d → Matrix (Fin d) (Fin d) ℝk:ℝhT:Differentiable ℝ Tx:Space di:Fin dj:Fin d⊢ (k • deriv j fun x => T x i j) x = k • deriv j (fun x => T x i j) xd:ℕT:Space d → Matrix (Fin d) (Fin d) ℝk:ℝhT:Differentiable ℝ Tx:Space di:Fin dj:Fin d⊢ Differentiable ℝ fun x => T x i j d:ℕT:Space d → Matrix (Fin d) (Fin d) ℝk:ℝhT:Differentiable ℝ Tx:Space di:Fin dj:Fin d⊢ (k • deriv j fun x => T x i j) x = k • deriv j (fun x => T x i j) x All goals completed! 🐙 d:ℕT:Space d → Matrix (Fin d) (Fin d) ℝk:ℝhT:Differentiable ℝ Tx:Space di:Fin dj:Fin d⊢ Differentiable ℝ fun x => T x i j All goals completed! 🐙