PhysLean Documentation

PhysLean.Mathematics.InnerProductSpace.Adjoint

Adjoint of a linear map #

This module defines the adjoint of a linear map f : E β†’ F where E and F carry the instances of InnerProductSpace' over a field π•œ.

This is a generalization of the usual adjoint defined on InnerProductSpace for continuous linear maps.

structure HasAdjoint (π•œ : Type u_1) {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] (f : E β†’ F) (f' : F β†’ E) :

Adjoint of a linear map f such that βˆ€ x y, βŸͺadjoint π•œ f y, x⟫ = βŸͺy, f x⟫.

This computes adjoint of a liner map the same way as ContinuousLinearMap.adjoint but it is defined over InnerProductSpace', which is a generalization of InnerProductSpace that provides instances for products and function types. These instances make it easier to perform computations compared to using the standard InnerProductSpace class.

  • adjoint_inner_left (x : E) (y : F) : inner π•œ (f' y) x = inner π•œ y (f x)
Instances For
    noncomputable def adjoint (π•œ : Type u_1) {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] (f : E β†’ F) :
    F β†’ E

    Adjoint of a linear map f such that βˆ€ x y, βŸͺadjoint π•œ f y, x⟫ = βŸͺy, f x⟫.

    This computes adjoint of a liner map the same way as ContinuousLinearMap.adjoint but it is defined over InnerProductSpace', which is a generalization of InnerProductSpace that provides instances for products and function types. These instances make it easier to perform computations compared to using the standard InnerProductSpace class.

    Equations
    Instances For
      theorem ContinuousLinearMap.hasAdjoint {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] [CompleteSpace E] [CompleteSpace F] (f : E β†’L[π•œ] F) :
      HasAdjoint π•œ ⇑f fun (y : F) => (InnerProductSpace'.fromL2 π•œ) ((adjoint ((InnerProductSpace'.toL2 π•œ).comp (f.comp (InnerProductSpace'.fromL2 π•œ)))) ((InnerProductSpace'.toL2 π•œ) y))
      theorem adjoint_eq_clm_adjoint {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] [CompleteSpace E] [CompleteSpace F] (f : E β†’L[π•œ] F) :
      adjoint π•œ ⇑f = fun (y : F) => (InnerProductSpace'.fromL2 π•œ) ((ContinuousLinearMap.adjoint ((InnerProductSpace'.toL2 π•œ).comp (f.comp (InnerProductSpace'.fromL2 π•œ)))) ((InnerProductSpace'.toL2 π•œ) y))
      theorem HasAdjoint.adjoint_apply_zero {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] {f : E β†’ F} {f' : F β†’ E} (hf : HasAdjoint π•œ f f') :
      f' 0 = 0
      theorem HasAdjoint.adjoint {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] {f : E β†’ F} {f' : F β†’ E} (hf : HasAdjoint π•œ f f') :
      _root_.adjoint π•œ f = f'
      theorem HasAdjoint.congr_adj {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] (f : E β†’ F) (f' g' : F β†’ E) (adjoint : HasAdjoint π•œ f g') (eq : g' = f') :
      HasAdjoint π•œ f f'
      theorem hasAdjoint_id {π•œ : Type u_1} {E : Type u_2} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] :
      HasAdjoint π•œ (fun (x : E) => x) fun (x : E) => x
      theorem hasAdjoint_zero {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] :
      HasAdjoint π•œ (fun (x : E) => 0) fun (x : F) => 0
      theorem HasAdjoint.comp {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} {G : Type u_4} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] [NormedAddCommGroup G] [NormedSpace π•œ G] [InnerProductSpace' π•œ G] {f : F β†’ G} {g : E β†’ F} {f' : G β†’ F} {g' : F β†’ E} (hf : HasAdjoint π•œ f f') (hg : HasAdjoint π•œ g g') :
      HasAdjoint π•œ (fun (x : E) => f (g x)) fun (x : G) => g' (f' x)
      theorem HasAdjoint.prodMk {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} {G : Type u_4} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] [NormedAddCommGroup G] [NormedSpace π•œ G] [InnerProductSpace' π•œ G] {f : E β†’ F} {g : E β†’ G} {f' : F β†’ E} {g' : G β†’ E} (hf : HasAdjoint π•œ f f') (hg : HasAdjoint π•œ g g') :
      HasAdjoint π•œ (fun (x : E) => (f x, g x)) fun (yz : F Γ— G) => f' yz.1 + g' yz.2
      theorem HasAdjoint.fst {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} {G : Type u_4} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] [NormedAddCommGroup G] [NormedSpace π•œ G] [InnerProductSpace' π•œ G] {f : E β†’ F Γ— G} {f' : F Γ— G β†’ E} (hf : HasAdjoint π•œ f f') :
      HasAdjoint π•œ (fun (x : E) => (f x).1) fun (y : F) => f' (y, 0)
      theorem HasAdjoint.snd {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} {G : Type u_4} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] [NormedAddCommGroup G] [NormedSpace π•œ G] [InnerProductSpace' π•œ G] {f : E β†’ F Γ— G} {f' : F Γ— G β†’ E} (hf : HasAdjoint π•œ f f') :
      HasAdjoint π•œ (fun (x : E) => (f x).2) fun (z : G) => f' (0, z)
      theorem HasAdjoint.neg {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] {f : E β†’ F} {f' : F β†’ E} (hf : HasAdjoint π•œ f f') :
      HasAdjoint π•œ (fun (x : E) => -f x) fun (y : F) => -f' y
      theorem HasAdjoint.add {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] {f g : E β†’ F} {f' g' : F β†’ E} (hf : HasAdjoint π•œ f f') (hg : HasAdjoint π•œ g g') :
      HasAdjoint π•œ (fun (x : E) => f x + g x) fun (y : F) => f' y + g' y
      theorem HasAdjoint.sub {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] {f g : E β†’ F} {f' g' : F β†’ E} (hf : HasAdjoint π•œ f f') (hg : HasAdjoint π•œ g g') :
      HasAdjoint π•œ (fun (x : E) => f x - g x) fun (y : F) => f' y - g' y
      theorem HasAdjoint.smul_left {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] {f : E β†’ F} {f' : F β†’ E} (c : π•œ) (hf : HasAdjoint π•œ f f') :
      HasAdjoint π•œ (fun (x : E) => c β€’ f x) fun (y : F) => (starRingEnd π•œ) c β€’ f' y
      theorem HasAdjoint.smul_right {π•œ : Type u_1} {E : Type u_2} {F : Type u_3} [RCLike π•œ] [NormedAddCommGroup E] [NormedSpace π•œ E] [InnerProductSpace' π•œ E] [NormedAddCommGroup F] [NormedSpace π•œ F] [InnerProductSpace' π•œ F] {f : E β†’ π•œ} {f' : π•œ β†’ E} (v : F) (hf : HasAdjoint π•œ f f') :
      HasAdjoint π•œ (fun (x : E) => f x β€’ v) fun (y : F) => f' ((starRingEnd π•œ) (inner π•œ y v))