Documentation

Mathlib.Analysis.RCLike.Extend

Extending an -linear functional to a 𝕜-linear functional #

In this file we provide a way to extend a (optionally, continuous) -linear map to a (continuous) 𝕜-linear map in a way that bounds the norm by the norm of the original map, when 𝕜 is either (the extension is trivial) or . We formulate the extension uniformly, by assuming RCLike 𝕜.

We motivate the form of the extension as follows. Note that fc : F →ₗ[𝕜] 𝕜 is determined fully by re fc: for all x : F, fc (I • x) = I * fc x, so im (fc x) = -re (fc (I • x)). Therefore, given an fr : F →ₗ[ℝ] ℝ, we define fc x = fr x - fr (I • x) * I.

In Mathlib/Analysis/Normed/Module/RCLike/Extend.lean we show that this extension is isometric. This is separate to avoid importing material about the operator norm into files about more elementary properties, like locally convex spaces.

Main definitions #

noncomputable def Module.Dual.extendRCLike {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Dual F) :
Dual 𝕜 F

Extend fr : Dual ℝ F to Dual 𝕜 F in a way that will also be continuous and have its norm (as a continuous linear map) equal to ‖fr‖ when fr is itself continuous on a normed space.

Equations
Instances For
    theorem Module.Dual.extendRCLike_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Dual F) (x : F) :
    fr.extendRCLike x = (fr x) - RCLike.I * (fr (RCLike.I x))
    @[simp]
    theorem Module.Dual.re_extendRCLike_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Dual F) (x : F) :
    @[simp]
    theorem Module.Dual.im_extendRCLike_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (g : Dual F) (x : F) :
    theorem Module.Dual.norm_extendRCLike_apply_sq {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Dual F) (x : F) :
    fr.extendRCLike x ^ 2 = fr ((starRingEnd 𝕜) (fr.extendRCLike x) x)
    noncomputable def Module.Dual.extendRCLikeₗ {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] :

    The extension Module.Dual.extendRCLike as a linear equivalence between the algebraic duals.

    Equations
    Instances For
      theorem Module.Dual.extendRCLikeₗ_symm_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (f : Dual 𝕜 F) :
      theorem Module.Dual.extendRCLikeₗ_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Dual F) :
      noncomputable def StrongDual.extendRCLike {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] (fr : StrongDual F) :
      StrongDual 𝕜 F

      Extend fr : StrongDual ℝ F to StrongDual 𝕜 F.

      It would be possible to use LinearMap.mkContinuous here, but we would need to know that the continuity of fr implies it has bounded norm and we want to avoid that dependency here.

      Norm properties of this extension can be found in Mathlib/Analysis/Normed/Module/RCLike/Extend.lean.

      Equations
      Instances For
        theorem StrongDual.extendRCLike_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] (fr : StrongDual F) (x : F) :
        fr.extendRCLike x = (fr x) - RCLike.I * (fr (RCLike.I x))
        @[simp]
        theorem StrongDual.re_extendRCLike_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] (g : StrongDual F) (x : F) :
        @[deprecated StrongDual.re_extendRCLike_apply (since := "2026-02-24")]
        theorem RCLike.re_extendTo𝕜ₗ {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] (g : StrongDual F) (x : F) :
        re (g.extendRCLike x) = g x

        Alias of StrongDual.re_extendRCLike_apply.

        @[simp]
        theorem StrongDual.im_extendRCLike_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] (g : StrongDual F) (x : F) :
        noncomputable def StrongDual.extendRCLikeₗ {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] :

        The extension StrongDual.extendRCLike as a linear equivalence between the algebraic duals.

        When F is a normed space, this can be upgraded to an isometric linear equivalence, see StrondDual.extendRCLikeₗᵢ.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[deprecated StrongDual.extendRCLikeₗ (since := "2026-02-24")]

          Alias of StrongDual.extendRCLikeₗ.


          The extension StrongDual.extendRCLike as a linear equivalence between the algebraic duals.

          When F is a normed space, this can be upgraded to an isometric linear equivalence, see StrondDual.extendRCLikeₗᵢ.

          Equations
          Instances For
            @[deprecated Module.Dual.extendRCLike (since := "2026-02-24")]
            def LinearMap.extendTo𝕜' {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Module.Dual F) :

            Alias of Module.Dual.extendRCLike.


            Extend fr : Dual ℝ F to Dual 𝕜 F in a way that will also be continuous and have its norm (as a continuous linear map) equal to ‖fr‖ when fr is itself continuous on a normed space.

            Equations
            Instances For
              @[deprecated Module.Dual.extendRCLike_apply (since := "2026-02-24")]
              theorem LinearMap.extendTo𝕜'_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Module.Dual F) (x : F) :
              fr.extendRCLike x = (fr x) - RCLike.I * (fr (RCLike.I x))

              Alias of Module.Dual.extendRCLike_apply.

              @[deprecated Module.Dual.re_extendRCLike_apply (since := "2026-02-24")]
              theorem LinearMap.extendTo𝕜'_apply_re {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Module.Dual F) (x : F) :

              Alias of Module.Dual.re_extendRCLike_apply.

              @[deprecated Module.Dual.norm_extendRCLike_apply_sq (since := "2026-02-24")]
              theorem LinearMap.norm_extendTo𝕜'_apply_sq {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Module.Dual F) (x : F) :
              fr.extendRCLike x ^ 2 = fr ((starRingEnd 𝕜) (fr.extendRCLike x) x)

              Alias of Module.Dual.norm_extendRCLike_apply_sq.

              @[deprecated Module.Dual.extendRCLike (since := "2026-02-24")]
              def LinearMap.extendTo𝕜 {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Module.Dual F) :

              Alias of Module.Dual.extendRCLike.


              Extend fr : Dual ℝ F to Dual 𝕜 F in a way that will also be continuous and have its norm (as a continuous linear map) equal to ‖fr‖ when fr is itself continuous on a normed space.

              Equations
              Instances For
                @[deprecated Module.Dual.extendRCLike_apply (since := "2026-02-24")]
                theorem LinearMap.extendTo𝕜_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [AddCommGroup F] [Module F] [Module 𝕜 F] [IsScalarTower 𝕜 F] (fr : Module.Dual F) (x : F) :
                fr.extendRCLike x = (fr x) - RCLike.I * (fr (RCLike.I x))

                Alias of Module.Dual.extendRCLike_apply.

                @[deprecated StrongDual.extendRCLike (since := "2026-02-24")]
                def ContinuousLinearMap.extendTo𝕜' {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] (fr : StrongDual F) :
                StrongDual 𝕜 F

                Alias of StrongDual.extendRCLike.


                Extend fr : StrongDual ℝ F to StrongDual 𝕜 F.

                It would be possible to use LinearMap.mkContinuous here, but we would need to know that the continuity of fr implies it has bounded norm and we want to avoid that dependency here.

                Norm properties of this extension can be found in Mathlib/Analysis/Normed/Module/RCLike/Extend.lean.

                Equations
                Instances For
                  @[deprecated StrongDual.extendRCLike_apply (since := "2026-02-24")]
                  theorem ContinuousLinearMap.extendTo𝕜'_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] (fr : StrongDual F) (x : F) :
                  fr.extendRCLike x = (fr x) - RCLike.I * (fr (RCLike.I x))

                  Alias of StrongDual.extendRCLike_apply.

                  @[deprecated StrongDual.extendRCLike (since := "2026-02-24")]
                  def ContinuousLinearMap.extendTo𝕜 {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] (fr : StrongDual F) :
                  StrongDual 𝕜 F

                  Alias of StrongDual.extendRCLike.


                  Extend fr : StrongDual ℝ F to StrongDual 𝕜 F.

                  It would be possible to use LinearMap.mkContinuous here, but we would need to know that the continuity of fr implies it has bounded norm and we want to avoid that dependency here.

                  Norm properties of this extension can be found in Mathlib/Analysis/Normed/Module/RCLike/Extend.lean.

                  Equations
                  Instances For
                    @[deprecated StrongDual.extendRCLike_apply (since := "2026-02-24")]
                    theorem ContinuousLinearMap.extendTo𝕜_apply {𝕜 : Type u_1} [RCLike 𝕜] {F : Type u_2} [TopologicalSpace F] [AddCommGroup F] [Module 𝕜 F] [ContinuousConstSMul 𝕜 F] [Module F] [IsScalarTower 𝕜 F] (fr : StrongDual F) (x : F) :
                    fr.extendRCLike x = (fr x) - RCLike.I * (fr (RCLike.I x))

                    Alias of StrongDual.extendRCLike_apply.