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 dDifferentiable 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 dDifferentiable 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 dDifferentiable 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 dDifferentiable 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 dDifferentiable 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 dDifferentiable fun x => T x i j All goals completed! 🐙