# Partially defined linear operators over topological vector spaces #

We define basic notions of partially defined linear operators, which we call unbounded operators for short. In this file we prove all elementary properties of unbounded operators that do not assume that the underlying spaces are normed.

## Main definitions #

• LinearPMap.IsClosed: An unbounded operator is closed iff its graph is closed.
• LinearPMap.IsClosable: An unbounded operator is closable iff the closure of its graph is a graph.
• LinearPMap.closure: For a closable unbounded operator f : LinearPMap R E F the closure is the smallest closed extension of f. If f is not closable, then f.closure is defined as f.
• LinearPMap.HasCore: a submodule contained in the domain is a core if restricting to the core does not lose information about the unbounded operator.

## Main statements #

• LinearPMap.closable_iff_exists_closed_extension: an unbounded operator is closable iff it has a closed extension.
• LinearPMap.closable.exists_unique: there exists a unique closure
• LinearPMap.closureHasCore: the domain of f is a core of its closure

## References #

• [J. Weidmann, Linear Operators in Hilbert Spaces][weidmann_linear]

## Tags #

Unbounded operators, closed operators

### Closed and closable operators #

def LinearPMap.IsClosed {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] (f : E →ₗ.[R] F) :

An unbounded operator is closed iff its graph is closed.

Equations
Instances For
def LinearPMap.IsClosable {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] (f : E →ₗ.[R] F) :

An unbounded operator is closable iff the closure of its graph is a graph.

Equations
Instances For
theorem LinearPMap.IsClosed.isClosable {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : ) :

A closed operator is trivially closable.

theorem LinearPMap.IsClosable.leIsClosable {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} {g : E →ₗ.[R] F} (hf : ) (hfg : g f) :

If g has a closable extension f, then g itself is closable.

theorem LinearPMap.IsClosable.existsUnique {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : ) :
∃! (f' : E →ₗ.[R] F),

The closure is unique.

noncomputable def LinearPMap.closure {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] (f : E →ₗ.[R] F) :

If f is closable, then f.closure is the closure. Otherwise it is defined as f.closure = f.

Equations
• = if hf : then else f
Instances For
theorem LinearPMap.closure_def {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : ) :
theorem LinearPMap.closure_def' {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : ) :
theorem LinearPMap.IsClosable.graph_closure_eq_closure_graph {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : ) :

The closure (as a submodule) of the graph is equal to the graph of the closure (as a LinearPMap).

theorem LinearPMap.le_closure {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] (f : E →ₗ.[R] F) :

A LinearPMap is contained in its closure.

theorem LinearPMap.IsClosable.closure_mono {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} {g : E →ₗ.[R] F} (hg : ) (h : f g) :
theorem LinearPMap.IsClosable.closure_isClosed {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : ) :

If f is closable, then the closure is closed.

theorem LinearPMap.IsClosable.closureIsClosable {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : ) :

If f is closable, then the closure is closable.

theorem LinearPMap.isClosable_iff_exists_closed_extension {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} :
∃ (g : E →ₗ.[R] F), f g

### The core of a linear operator #

structure LinearPMap.HasCore {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] (f : E →ₗ.[R] F) (S : ) :

A submodule S is a core of f if the closure of the restriction of f to S is f.

• le_domain : S f.domain
• closure_eq :
Instances For
theorem LinearPMap.hasCore_def {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} {S : } (h : ) :
theorem LinearPMap.closureHasCore {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] (f : E →ₗ.[R] F) :

For every unbounded operator f the submodule f.domain is a core of its closure.

Note that we don't require that f is closable, due to the definition of the closure.

### Topological properties of the inverse #

theorem LinearPMap.closure_inverse_graph {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : LinearMap.ker f.toFun = ) (hf' : ) (hcf : LinearMap.ker .toFun = ) :

If f is invertible and closable as well as its closure being invertible, then the graph of the inverse of the closure is given by the closure of the graph of the inverse.

theorem LinearPMap.inverse_isClosable_iff {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : LinearMap.ker f.toFun = ) (hf' : ) :

Assuming that f is invertible and closable, then the closure is invertible if and only if the inverse of f is closable.

theorem LinearPMap.inverse_closure {R : Type u_1} {E : Type u_2} {F : Type u_3} [] [] [] [Module R E] [Module R F] [] [] [] [] [] [] [] {f : E →ₗ.[R] F} (hf : LinearMap.ker f.toFun = ) (hf' : ) (hcf : LinearMap.ker .toFun = ) :

If f is invertible and closable, then taking the closure and the inverse commute.