Relabelling linear equivalences #
i. Overview #
This module provides linear equivalences obtained by relabelling the index type of a finite
function space d ā R or of EuclideanSpace š d along an index equivalence e : d ā dā,
together with lemmas relating them to Matrix.reindex.
ii. Key results #
LinearEquiv.ofRelabel: theR-linear equivalence(dā ā R) āā[R] (d ā R)induced by an index equivalencee : d ā dā.LinearEquiv.euclideanOfRelabel: theEuclideanSpaceanalogue ofofRelabel.Matrix.reindex_toLin'andMatrix.reindex_toEuclideanLin: reindexing a matrix conjugates its associated linear map by these relabelling equivalences.
iii. Table of contents #
- A. Relabelling linear equivalences
- B. Reindexing matrices and their linear maps
iv. References #
A. Relabelling linear equivalences #
def
LinearEquiv.ofRelabel
{d : Type u_1}
{dā : Type u_3}
(R : Type u_7)
[Semiring R]
(e : d ā dā)
:
The R-linear equivalence (dā ā R) āā[R] (d ā R) that relabels the coordinates of a
function along an index equivalence e : d ā dā. This is the linear-equivalence packaging of
Equiv.piCongrLeft.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
LinearEquiv.euclideanOfRelabel
{d : Type u_1}
{dā : Type u_3}
(š : Type u_6)
[RCLike š]
(e : d ā dā)
:
The š-linear equivalence EuclideanSpace š dā āā[š] EuclideanSpace š d that relabels the
coordinates of a vector along an index equivalence e : d ā dā. This is the EuclideanSpace
analogue of LinearEquiv.ofRelabel, obtained by transporting it across the WithLp
identifications.
Equations
- LinearEquiv.euclideanOfRelabel š e = (WithLp.linearEquiv 2 š ((i : dā) ā (fun (x : dā) => š) i)).trans ((LinearEquiv.ofRelabel š e).trans (WithLp.linearEquiv 2 š (d ā š)).symm)
Instances For
@[simp]
theorem
LinearEquiv.euclideanOfRelabel_symm_apply_ofLp
{d : Type u_1}
{dā : Type u_3}
(š : Type u_6)
[RCLike š]
(e : d ā dā)
(aā : EuclideanSpace š d)
(i : dā)
:
@[simp]
theorem
LinearEquiv.euclideanOfRelabel_apply_ofLp
{d : Type u_1}
{dā : Type u_3}
(š : Type u_6)
[RCLike š]
(e : d ā dā)
(x : WithLp 2 ((i : dā) ā (fun (x : dā) => š) i))
(aā : d)
:
((euclideanOfRelabel š e) x).ofLp aā = (Equiv.piCongrLeft (fun (x : d) => š) e.symm) x.ofLp aā
@[simp]
@[simp]
B. Reindexing matrices and their linear maps #
theorem
Matrix.reindex_toLin'
{d : Type u_1}
{dā : Type u_2}
{dā : Type u_3}
{dā : Type u_4}
{R : Type u_7}
[CommSemiring R]
[Fintype d]
[DecidableEq d]
[Fintype dā]
[DecidableEq dā]
(e : dā ā dā)
(f : dā ā d)
(M : Matrix dā dā R)
:
toLin' ((reindex e f) M) = ā(LinearEquiv.ofRelabel R e.symm) āā toLin' M āā ā(LinearEquiv.ofRelabel R f)
theorem
Matrix.reindex_toEuclideanLin
{d : Type u_1}
{dā : Type u_2}
{dā : Type u_3}
{dā : Type u_4}
{š : Type u_6}
[RCLike š]
[Fintype d]
[DecidableEq d]
[Fintype dā]
[DecidableEq dā]
(e : dā ā dā)
(f : dā ā d)
(M : Matrix dā dā š)
:
toEuclideanLin ((reindex e f) M) = ā(LinearEquiv.euclideanOfRelabel š e.symm) āā toEuclideanLin M āā ā(LinearEquiv.euclideanOfRelabel š f)
theorem
Matrix.reindex_right_toLin'
{d : Type u_1}
{dā : Type u_3}
{dā : Type u_4}
{R : Type u_7}
[CommSemiring R]
[Fintype d]
[DecidableEq d]
[Fintype dā]
[DecidableEq dā]
(e : d ā dā)
(M : Matrix dā d R)
:
theorem
Matrix.reindex_right_toEuclideanLin
{d : Type u_1}
{dā : Type u_3}
{dā : Type u_4}
{š : Type u_6}
[RCLike š]
[Fintype d]
[DecidableEq d]
[Fintype dā]
[DecidableEq dā]
(e : d ā dā)
(M : Matrix dā d š)
:
toEuclideanLin ((reindex (Equiv.refl dā) e) M) = toEuclideanLin M āā ā(LinearEquiv.euclideanOfRelabel š e)
theorem
Matrix.reindex_left_toLin'
{dā : Type u_2}
{dā : Type u_3}
{dā : Type u_4}
{R : Type u_7}
[CommSemiring R]
[Fintype dā]
[DecidableEq dā]
(e : dā ā dā)
(M : Matrix dā dā R)
:
ā(toLin' ((reindex e (Equiv.refl dā)) M)) = ā(LinearEquiv.ofRelabel R e.symm) ā ā(toLin' M)
theorem
Matrix.reindex_left_toEuclideanLin
{dā : Type u_2}
{dā : Type u_3}
{dā : Type u_4}
{š : Type u_6}
[RCLike š]
[Fintype dā]
[DecidableEq dā]
(e : dā ā dā)
(M : Matrix dā dā š)
:
ā(toEuclideanLin ((reindex e (Equiv.refl dā)) M)) = ā(LinearEquiv.euclideanOfRelabel š e.symm) ā ā(toEuclideanLin M)