Documentation

TauCeti.Topology.Algebra.Module.LinearPMap.Resolvent

Continuous inverses of shifts of partial linear maps #

For a partial linear map A on a module over a ring, LinearPMap.IsResolventAt says that a continuous linear map inverts lambda โ€ข I - A on the domain of A. The inverse is unique, and its existence defines LinearPMap.resolventSet and the chosen map LinearPMap.resolvent. These notions require only a topology on the module, with no norm or continuity assumptions on addition or scalar multiplication.

Over a noncommutative ring, the scalar expression x โ†ฆ lambda โ€ข x - A x need not be linear. The predicate still requires its inverse to be linear over the full scalar ring; a parameter whose shift is not linear therefore does not belong to the resolvent set.

This file gives the graph characterization, the two inverse identities, and the fact that an operator has no proper extension sharing a resolvent point. On normed spaces the continuous linear inverse is bounded; the normed resolvent theory and its bridge to Mathlib's Banach-algebra resolvent are developed in TauCeti.Analysis.Normed.Operator.Resolvent.Unbounded.

References #

Engel--Nagel, One-Parameter Semigroups for Linear Evolution Equations, Section IV.1; Pazy, Semigroups of Linear Operators and Applications to Partial Differential Equations, Chapter 1.

Inverting lambda โ€ข I - A #

structure LinearPMap.IsResolventAt {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] (A : X โ†’โ‚—.[๐•œ] X) (lambda : ๐•œ) (R : X โ†’L[๐•œ] X) :

IsResolventAt A lambda R says that the continuous operator R : X โ†’L[๐•œ] X inverts lambda โ€ข I - A : D(A) โ†’ X: it takes its values in D(A), is a right inverse of lambda โ€ข I - A on all of X, and is a left inverse of it on D(A).

For an unbounded A this replaces the Banach-algebra condition IsUnit (algebraMap ๐•œ (X โ†’L[๐•œ] X) lambda - A) behind Mathlib's resolventSet, which cannot be formed because A is not an element of X โ†’L[๐•œ] X. The two conditions agree when A is a bounded operator read as an everywhere defined LinearPMap; the bridge is developed in TauCeti.Analysis.Normed.Operator.Resolvent.Unbounded.

  • mem_domain (y : X) : R y โˆˆ A.domain

    The inverse takes its values in the domain of A.

  • smul_sub_apply (y : X) : lambda โ€ข R y - โ†‘A โŸจR y, โ‹ฏโŸฉ = y

    R is a right inverse: (lambda โ€ข I - A) (R y) = y for every y : X.

  • apply_smul_sub (x : โ†ฅA.domain) : R (lambda โ€ข โ†‘x - โ†‘A x) = โ†‘x

    R is a left inverse: R ((lambda โ€ข I - A) x) = x for every x โˆˆ D(A).

Instances For
    theorem LinearPMap.IsResolventAt.unique {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} {R : X โ†’L[๐•œ] X} (h : A.IsResolventAt lambda R) {R' : X โ†’L[๐•œ] X} (h' : A.IsResolventAt lambda R') :
    R = R'

    An inverse of lambda โ€ข I - A is unique: a left inverse and a right inverse of the same map agree.

    theorem LinearPMap.IsResolventAt.smul_sub_injective {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} {R : X โ†’L[๐•œ] X} (h : A.IsResolventAt lambda R) :
    Function.Injective fun (x : โ†ฅA.domain) => lambda โ€ข โ†‘x - โ†‘A x

    lambda โ€ข I - A is injective on D(A) whenever it has a left inverse.

    theorem LinearPMap.IsResolventAt.smul_sub_surjective {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} {R : X โ†’L[๐•œ] X} (h : A.IsResolventAt lambda R) :
    Function.Surjective fun (x : โ†ฅA.domain) => lambda โ€ข โ†‘x - โ†‘A x

    lambda โ€ข I - A maps D(A) onto X whenever it has a right inverse.

    theorem LinearPMap.IsResolventAt.smul_sub_bijective {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} {R : X โ†’L[๐•œ] X} (h : A.IsResolventAt lambda R) :
    Function.Bijective fun (x : โ†ฅA.domain) => lambda โ€ข โ†‘x - โ†‘A x

    lambda โ€ข I - A : D(A) โ†’ X is a bijection at a point of the resolvent set.

    theorem LinearPMap.isResolventAt_iff_forall_mem_graph {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} {R : X โ†’L[๐•œ] X} :
    A.IsResolventAt lambda R โ†” (โˆ€ (y : X), (R y, lambda โ€ข R y - y) โˆˆ A.graph) โˆง โˆ€ p โˆˆ A.graph, R (lambda โ€ข p.1 - p.2) = p.1

    The graph form of IsResolventAt: R inverts lambda โ€ข I - A exactly when every (R y, lambda โ€ข R y - y) lies on the graph of A, and R (lambda โ€ข x - w) = x for every point (x, w) of that graph. This form transfers along any construction described by its graph.

    The resolvent set and the resolvent #

    def LinearPMap.resolventSet {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] (A : X โ†’โ‚—.[๐•œ] X) :
    Set ๐•œ

    The resolvent set of an unbounded operator A : X โ†’โ‚—.[๐•œ] X: those lambda : ๐•œ for which lambda โ€ข I - A : D(A) โ†’ X is a bijection with continuous linear inverse.

    Equations
    Instances For
      theorem LinearPMap.mem_resolventSet_iff {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} :
      lambda โˆˆ A.resolventSet โ†” โˆƒ (R : X โ†’L[๐•œ] X), A.IsResolventAt lambda R

      Membership in the resolvent set unfolds to the existence of a continuous linear inverse of lambda โ€ข I - A.

      theorem LinearPMap.IsResolventAt.mem_resolventSet {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} {R : X โ†’L[๐•œ] X} (h : A.IsResolventAt lambda R) :

      Exhibiting an inverse puts lambda in the resolvent set.

      noncomputable def LinearPMap.resolvent {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] (A : X โ†’โ‚—.[๐•œ] X) (lambda : ๐•œ) :
      X โ†’L[๐•œ] X

      The resolvent R(lambda, A) = (lambda โ€ข I - A)โปยน of an unbounded operator, as a continuous linear operator on X.

      Off the resolvent set the value is an unspecified junk value; every lemma below carries the hypothesis lambda โˆˆ resolventSet A. Uniqueness of the inverse (LinearPMap.IsResolventAt.unique) makes the choice immaterial on the resolvent set: LinearPMap.resolvent_eq_of_isResolventAt identifies it with any inverse one can exhibit.

      Equations
      Instances For
        theorem LinearPMap.isResolventAt_resolvent {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} (h : lambda โˆˆ A.resolventSet) :
        A.IsResolventAt lambda (A.resolvent lambda)

        On the resolvent set, resolvent A lambda really does invert lambda โ€ข I - A.

        theorem LinearPMap.resolvent_eq_of_isResolventAt {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} {R : X โ†’L[๐•œ] X} (h : A.IsResolventAt lambda R) :
        A.resolvent lambda = R

        Any exhibited inverse of lambda โ€ข I - A is the resolvent.

        theorem LinearPMap.resolvent_mem_domain {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} (h : lambda โˆˆ A.resolventSet) (y : X) :
        (A.resolvent lambda) y โˆˆ A.domain

        The resolvent takes its values in D(A).

        theorem LinearPMap.smul_sub_apply_resolvent {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} (h : lambda โˆˆ A.resolventSet) (y : X) :
        lambda โ€ข (A.resolvent lambda) y - โ†‘A โŸจ(A.resolvent lambda) y, โ‹ฏโŸฉ = y

        The right-inverse identity (lambda โ€ข I - A) R(lambda) y = y.

        @[simp]
        theorem LinearPMap.resolvent_smul_sub_apply {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} (h : lambda โˆˆ A.resolventSet) (x : โ†ฅA.domain) :
        (A.resolvent lambda) (lambda โ€ข โ†‘x - โ†‘A x) = โ†‘x

        The left-inverse identity R(lambda) (lambda โ€ข x - A x) = x on D(A).

        @[simp]
        theorem LinearPMap.apply_resolvent {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} (h : lambda โˆˆ A.resolventSet) (y : X) :
        โ†‘A โŸจ(A.resolvent lambda) y, โ‹ฏโŸฉ = lambda โ€ข (A.resolvent lambda) y - y

        The right-inverse identity solved for A: A R(lambda) y = lambda โ€ข R(lambda) y - y.

        theorem LinearPMap.smul_sub_bijective {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} (h : lambda โˆˆ A.resolventSet) :
        Function.Bijective fun (x : โ†ฅA.domain) => lambda โ€ข โ†‘x - โ†‘A x

        At a point of the resolvent set, lambda โ€ข I - A : D(A) โ†’ X is a bijection.

        theorem LinearPMap.eq_of_le_of_mem_resolventSet {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {lambda : ๐•œ} {A B : X โ†’โ‚—.[๐•œ] X} (hAB : A โ‰ค B) (hA : lambda โˆˆ A.resolventSet) (hB : lambda โˆˆ B.resolventSet) :
        A = B

        An operator has no proper extension sharing a resolvent point. If A โ‰ค B and some lambda lies in the resolvent set of both, then A = B.

        A vector y โˆˆ D(B) has lambda โ€ข y - B y = lambda โ€ข x - A x for a unique x โˆˆ D(A), by surjectivity for A; injectivity for B then forces y = x, so D(B) โІ D(A).

        This is the step that upgrades "A is a restriction of the generator" to "A is the generator" in the generation theorems.

        theorem LinearPMap.resolvent_apply_comm {๐•œ : Type u_1} {X : Type u_2} [Ring ๐•œ] [AddCommGroup X] [TopologicalSpace X] [Module ๐•œ X] {A : X โ†’โ‚—.[๐•œ] X} {lambda : ๐•œ} (h : lambda โˆˆ A.resolventSet) (x : โ†ฅA.domain) :
        (A.resolvent lambda) (โ†‘A x) = โ†‘A โŸจ(A.resolvent lambda) โ†‘x, โ‹ฏโŸฉ

        The resolvent commutes with A on D(A): R(lambda) (A x) = A (R(lambda) x).