Documentation

QuantumInfo.ForMathlib.LinearEquiv

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 #

iii. Table of contents #

This can be filled in later.

iv. References #

def LinearEquiv.of_relabel {d : Type u_1} {dā‚‚ : Type u_3} (R : Type u_7) [Semiring R] (e : d ā‰ƒ dā‚‚) :
(dā‚‚ → R) ā‰ƒā‚—[R] d → R

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
    @[simp]
    theorem LinearEquiv.of_relabel_apply {d : Type u_1} {dā‚‚ : Type u_3} (R : Type u_7) [Semiring R] (e : d ā‰ƒ dā‚‚) (aāœ : dā‚‚ → R) (b : d) :
    (of_relabel R e) aāœ b = (Equiv.piCongrLeft (fun (x : d) => R) e.symm).toFun aāœ b
    @[simp]
    theorem LinearEquiv.of_relabel_symm_apply {d : Type u_1} {dā‚‚ : Type u_3} (R : Type u_7) [Semiring R] (e : d ā‰ƒ dā‚‚) (aāœ : d → R) (a : dā‚‚) :
    (of_relabel R e).symm aāœ a = (Equiv.piCongrLeft (fun (x : d) => R) e.symm).invFun aāœ a
    def LinearEquiv.euclidean_of_relabel {d : Type u_1} {dā‚‚ : Type u_3} (š•œ : Type u_6) [RCLike š•œ] (e : d ā‰ƒ dā‚‚) :
    EuclideanSpace š•œ dā‚‚ ā‰ƒā‚—[š•œ] EuclideanSpace š•œ 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.of_relabel, obtained by transporting it across the WithLp identifications.

    Equations
    Instances For
      @[simp]
      theorem LinearEquiv.euclidean_of_relabel_symm_apply_ofLp {d : Type u_1} {dā‚‚ : Type u_3} (š•œ : Type u_6) [RCLike š•œ] (e : d ā‰ƒ dā‚‚) (aāœ : EuclideanSpace š•œ d) (i : dā‚‚) :
      ((euclidean_of_relabel š•œ e).symm aāœ).ofLp i = aāœ.ofLp (e.symm i)
      @[simp]
      theorem LinearEquiv.euclidean_of_relabel_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) :
      ((euclidean_of_relabel š•œ e) x).ofLp aāœ = (Equiv.piCongrLeft (fun (x : d) => š•œ) e.symm) x.ofLp aāœ
      @[simp]
      theorem LinearEquiv.of_relabel_refl {d : Type u_1} {R : Type u_7} [Semiring R] :
      of_relabel R (Equiv.refl d) = refl R (d → R)
      @[simp]
      theorem LinearEquiv.euclidean_of_relabel_refl {d : Type u_1} {š•œ : Type u_6} [RCLike š•œ] :
      euclidean_of_relabel š•œ (Equiv.refl d) = refl š•œ (EuclideanSpace š•œ d)
      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) :
      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ā‚‚ š•œ) :
      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 š•œ) :
      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.of_relabel 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.euclidean_of_relabel š•œ e.symm) ∘ ⇑(toEuclideanLin M)