Documentation

TauCeti.Analysis.Normed.Operator.Bilinear

Pulling back continuous bilinear maps, and their quadratic maps #

A continuous linear map u : W โ†’L[๐•œ] V pulls a continuous bilinear map B on V back to the bilinear map B (u ยท) (u ยท) on W. This operation is itself continuous and linear in B (ContinuousLinearMap.pullbackBilinL), so that it commutes with derivatives of families of bilinear maps, such as the coordinate expressions of metrics. In particular, pulling back each value of a continuous family of multilinear maps valued in bilinear maps, along u in every argument, gives a continuous family (Continuous.pullbackBilinL_compContinuousMultilinearMap). Pulling back along a bijection preserves nondegeneracy (ContinuousLinearMap.injective_bilinearComp).

The quadratic map x โ†ฆ B x x of a continuous bilinear map is Lipschitz on every ball, with a constant proportional to the radius: โ€–B x x - B y yโ€– โ‰ค โ€–Bโ€– (โ€–xโ€– + โ€–yโ€–) โ€–x - yโ€– (ContinuousLinearMap.norm_apply_apply_sub_apply_apply_le). This is the quadratic estimate on the nonlinear terms of an equation that is quadratic in its unknown.

Pulling back along continuous linear equivalences keeps a bilinear map Bโ‚€ : V โ†’L V' โ†’L G invertible as a map to the dual (ContinuousLinearMap.IsInvertible.bilinearComp), and it conjugates the comparison operator Bโ‚€โปยน โˆ˜ B of two such maps by the equivalence in the first slot (ContinuousLinearMap.inverse_bilinearComp_comp_bilinearComp). This is how operators built from a pair of bilinear forms, such as the Morse congruence of a form with a reference form, transform under a linear change of coordinates.

An invertible bilinear map Bโ‚€ : V โ†’L V โ†’L G determines adjoints of operators on V: the adjoint ContinuousLinearMap.pairingAdjoint Bโ‚€ X is characterized by Bโ‚€ (adj X w) w' = Bโ‚€ w (X w') (ContinuousLinearMap.IsInvertible.pairingAdjoint_apply). It reverses products, fixes the identity, and tends to the identity as Bโ‚€ stays near an invertible map and X tends to the identity. On Banach spaces the comparison operator Bโ‚€โปยน โˆ˜ B also tends to the identity as both maps tend to the same invertible map (ContinuousLinearMap.IsInvertible.tendsto_inverse_comp).

noncomputable def ContinuousLinearMap.pullbackBilinL {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {W : Type u_3} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup W] [NormedSpace ๐•œ W] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] (u : W โ†’L[๐•œ] V) :
(V โ†’L[๐•œ] V โ†’L[๐•œ] G) โ†’L[๐•œ] W โ†’L[๐•œ] W โ†’L[๐•œ] G

Pulling a continuous bilinear map back along a continuous linear map u, B โ†ฆ B (u ยท) (u ยท), as a continuous linear map in B.

Instances For
    @[simp]
    theorem ContinuousLinearMap.pullbackBilinL_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {W : Type u_3} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup W] [NormedSpace ๐•œ W] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] (u : W โ†’L[๐•œ] V) (B : V โ†’L[๐•œ] V โ†’L[๐•œ] G) (v w : W) :
    ((u.pullbackBilinL B) v) w = (B (u v)) (u w)
    theorem ContinuousLinearMap.pullbackBilinL_eq_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {W : Type u_3} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup W] [NormedSpace ๐•œ W] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] (u : W โ†’L[๐•œ] V) :
    u.pullbackBilinL = (compL ๐•œ W (V โ†’L[๐•œ] G) (W โ†’L[๐•œ] G)) ((compL ๐•œ W V G).flip u) โˆ˜SL (compL ๐•œ W V (V โ†’L[๐•œ] G)).flip u

    pullbackBilinL u precomposes a bilinear map with u, and then each of its values with u. In this form it is visibly built from u by continuous linear operations, so that, for instance, its regularity in u follows from that of the precomposition maps compL.

    theorem ContinuousLinearMap.norm_apply_apply_sub_apply_apply_le {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] (B : V โ†’L[๐•œ] V โ†’L[๐•œ] G) (x y : V) :

    The quadratic map x โ†ฆ B x x of a continuous bilinear map B satisfies โ€–B x x - B y yโ€– โ‰ค โ€–Bโ€– (โ€–xโ€– + โ€–yโ€–) โ€–x - yโ€–.

    theorem ContinuousLinearMap.injective_bilinearComp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {W : Type u_3} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup W] [NormedSpace ๐•œ W] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] {B : V โ†’L[๐•œ] V โ†’L[๐•œ] G} (hB : Function.Injective โ‡‘B) {u : W โ†’L[๐•œ] V} (hu : Function.Bijective โ‡‘u) :

    Pulling a nondegenerate bilinear map back along a bijective continuous linear map keeps it nondegenerate.

    theorem ContinuousLinearMap.IsInvertible.bilinearComp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {W : Type u_3} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup W] [NormedSpace ๐•œ W] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] {V' : Type u_5} {W' : Type u_6} [SeminormedAddCommGroup V'] [NormedSpace ๐•œ V'] [SeminormedAddCommGroup W'] [NormedSpace ๐•œ W'] {Bโ‚€ : V โ†’L[๐•œ] V' โ†’L[๐•œ] G} (hBโ‚€ : Bโ‚€.IsInvertible) (eโ‚ : W โ‰ƒL[๐•œ] V) (eโ‚‚ : W' โ‰ƒL[๐•œ] V') :
    (Bโ‚€.bilinearComp โ†‘eโ‚ โ†‘eโ‚‚).IsInvertible

    Pulling a bilinear map that is invertible, as a map to the space of linear maps on its second argument, back along continuous linear equivalences in both arguments keeps it invertible.

    theorem ContinuousLinearMap.inverse_bilinearComp_comp_bilinearComp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {W : Type u_3} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup W] [NormedSpace ๐•œ W] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] {V' : Type u_5} {W' : Type u_6} [SeminormedAddCommGroup V'] [NormedSpace ๐•œ V'] [SeminormedAddCommGroup W'] [NormedSpace ๐•œ W'] {Bโ‚€ : V โ†’L[๐•œ] V' โ†’L[๐•œ] G} (hBโ‚€ : Bโ‚€.IsInvertible) (B : V โ†’L[๐•œ] V' โ†’L[๐•œ] G) (eโ‚ : W โ‰ƒL[๐•œ] V) (eโ‚‚ : W' โ‰ƒL[๐•œ] V') :
    (Bโ‚€.bilinearComp โ†‘eโ‚ โ†‘eโ‚‚).inverse โˆ˜SL B.bilinearComp โ†‘eโ‚ โ†‘eโ‚‚ = โ†‘eโ‚.symm โˆ˜SL (Bโ‚€.inverse โˆ˜SL B) โˆ˜SL โ†‘eโ‚

    Pulling two bilinear maps back along continuous linear equivalences conjugates their comparison operator Bโ‚€โปยน โˆ˜ B by the equivalence eโ‚ in the first argument.

    noncomputable def ContinuousLinearMap.pairingAdjoint {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] (Bโ‚€ : V โ†’L[๐•œ] V โ†’L[๐•œ] G) (X : V โ†’L[๐•œ] V) :
    V โ†’L[๐•œ] V

    The adjoint of an operator X on V for the pairing Bโ‚€, Bโ‚€โปยน โˆ˜ (ยท โˆ˜ X) โˆ˜ Bโ‚€. When Bโ‚€ is invertible it is characterized by Bโ‚€ (adj X w) w' = Bโ‚€ w (X w') (ContinuousLinearMap.IsInvertible.pairingAdjoint_apply).

    Instances For
      theorem ContinuousLinearMap.pairingAdjoint_def {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] (Bโ‚€ : V โ†’L[๐•œ] V โ†’L[๐•œ] G) (X : V โ†’L[๐•œ] V) :
      Bโ‚€.pairingAdjoint X = Bโ‚€.inverse โˆ˜SL (compL ๐•œ V V G).flip X โˆ˜SL Bโ‚€

      The adjoint for the pairing Bโ‚€ is Bโ‚€โปยน โˆ˜ (ยท โˆ˜ X) โˆ˜ Bโ‚€.

      @[simp]
      theorem ContinuousLinearMap.IsInvertible.pairingAdjoint_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] {Bโ‚€ : V โ†’L[๐•œ] V โ†’L[๐•œ] G} (hBโ‚€ : Bโ‚€.IsInvertible) (X : V โ†’L[๐•œ] V) (w w' : V) :
      (Bโ‚€ ((Bโ‚€.pairingAdjoint X) w)) w' = (Bโ‚€ w) (X w')

      The defining property of the adjoint for an invertible pairing.

      theorem ContinuousLinearMap.IsInvertible.ext_of_pairing {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] {Bโ‚€ : V โ†’L[๐•œ] V โ†’L[๐•œ] G} (hBโ‚€ : Bโ‚€.IsInvertible) {X Y : V โ†’L[๐•œ] V} (h : โˆ€ (w w' : V), (Bโ‚€ (X w)) w' = (Bโ‚€ (Y w)) w') :
      X = Y

      Operators are determined by their pairings against an invertible bilinear map.

      theorem ContinuousLinearMap.IsInvertible.pairingAdjoint_mul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] {Bโ‚€ : V โ†’L[๐•œ] V โ†’L[๐•œ] G} (hBโ‚€ : Bโ‚€.IsInvertible) (X Y : V โ†’L[๐•œ] V) :
      Bโ‚€.pairingAdjoint (X * Y) = Bโ‚€.pairingAdjoint Y * Bโ‚€.pairingAdjoint X

      The adjoint for an invertible pairing reverses products.

      @[simp]
      theorem ContinuousLinearMap.IsInvertible.pairingAdjoint_one {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] {Bโ‚€ : V โ†’L[๐•œ] V โ†’L[๐•œ] G} (hBโ‚€ : Bโ‚€.IsInvertible) :
      Bโ‚€.pairingAdjoint 1 = 1

      The adjoint of the identity for an invertible pairing is the identity.

      theorem ContinuousLinearMap.IsInvertible.tendsto_inverse_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_5} {F : Type u_6} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [CompleteSpace E] [NormedAddCommGroup F] [NormedSpace ๐•œ F] {e : E โ†’L[๐•œ] F} (he : e.IsInvertible) :
      Filter.Tendsto (fun (p : (E โ†’L[๐•œ] F) ร— (E โ†’L[๐•œ] F)) => p.1.inverse โˆ˜SL p.2) (nhds (e, e)) (nhds 1)

      The comparison operator eโ‚€โปยน โˆ˜ e tends to the identity as both maps tend to the same invertible map.

      theorem ContinuousLinearMap.IsInvertible.tendsto_pairingAdjoint {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_5} {H : Type u_7} [NormedAddCommGroup E] [NormedSpace ๐•œ E] [CompleteSpace E] [NormedAddCommGroup H] [NormedSpace ๐•œ H] {Bโ‚€ : E โ†’L[๐•œ] E โ†’L[๐•œ] H} (hBโ‚€ : Bโ‚€.IsInvertible) :
      Filter.Tendsto (fun (q : (E โ†’L[๐•œ] E โ†’L[๐•œ] H) ร— (E โ†’L[๐•œ] E)) => q.1.pairingAdjoint q.2) (nhds (Bโ‚€, 1)) (nhds 1)

      The adjoint of X for the pairing Bโ‚€ tends to the identity as Bโ‚€ tends to an invertible pairing and X tends to the identity.

      theorem Continuous.pullbackBilinL_compContinuousMultilinearMap {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {V : Type u_2} {W : Type u_3} {G : Type u_4} [SeminormedAddCommGroup V] [NormedSpace ๐•œ V] [SeminormedAddCommGroup W] [NormedSpace ๐•œ W] [SeminormedAddCommGroup G] [NormedSpace ๐•œ G] {X : Type u_5} {ฮน : Type u_6} [TopologicalSpace X] {f : X โ†’ ContinuousMultilinearMap ๐•œ (fun (x : ฮน) => V) (V โ†’L[๐•œ] V โ†’L[๐•œ] G)} (hf : Continuous f) (u : W โ†’L[๐•œ] V) :
      Continuous fun (x : X) => u.pullbackBilinL.compContinuousMultilinearMap ((f x).compContinuousLinearMap fun (x : ฮน) => u)

      Pulling back each value of a continuous family f of multilinear maps valued in bilinear maps, both in its arguments and in its values, along a continuous linear map u gives a continuous family. Applied to iterated derivatives of a family of bilinear forms, this is the pullback of all their coordinate derivatives along u.