Mathlib theorem ยท Existing formal mathematics

Existing in Mathlib ยท Functional analysis

Banach Open Mapping Theorem

A surjective continuous semilinear map between complete normed spaces cannot crush every neighborhood into a thin set: it sends every open set to an open set.

Exact theorem

Exact Mathlib statement

protected theorem ContinuousLinearMap.isOpenMap {๐•œ ๐•œ' : Type*} [NontriviallyNormedField ๐•œ] [NontriviallyNormedField ๐•œ'] {ฯƒ : ๐•œ โ†’+* ๐•œ'} {E : Type*} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type*} [NormedAddCommGroup F] [NormedSpace ๐•œ' F] (f : E โ†’SL[ฯƒ] F) {ฯƒ' : ๐•œ' โ†’+* ๐•œ} [RingHomInvPair ฯƒ ฯƒ'] [RingHomIsometric ฯƒ] [RingHomIsometric ฯƒ'] [CompleteSpace F] [CompleteSpace E] (surj : Function.Surjective f) : IsOpenMap f

The theorem at a glance

Banach Open Mapping Theorem at a glance

A visual guide to the theorem's hypotheses, structure, and conclusion; the exact statement gives the formal detail.

A surjective continuous semilinear map between Banach spaces is open. Explanatory diagram.
Detailed visual description

The poster distinguishes the two complete normed spaces, the onto map, the Baire-category interior step, the controlled-preimage estimate, and the conclusion that every image point from an open source set lies inside an open target neighborhood. Multiple source points may share an image, so no injectivity is implied.

Statement structure

From hypotheses to conclusion

Statement map for Banach Open Mapping TheoremA surjective continuous semilinear map between complete normed spaces over compatible normed fields is an open map. The pinned upstream declaration is ContinuousLinearMap.isOpenMap. The exact checked statement is protected theorem ContinuousLinearMap.isOpenMap {๐•œ ๐•œ' : Type*} [NontriviallyNormedField ๐•œ] [NontriviallyNormedField ๐•œ'] {ฯƒ : ๐•œ โ†’+* ๐•œ'} {E : Type*} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type*} [NormedAddCommGroup F] [NormedSpace ๐•œ' F] (f : E โ†’SL[ฯƒ] F) {ฯƒ' : ๐•œ' โ†’+* ๐•œ} [RingHomInvPair ฯƒ ฯƒ'] [RingHomIsometric ฯƒ] [RingHomIsometric ฯƒ'] [CompleteSpace F] [CompleteSpace E] (surj : Function.Surjective f) : IsOpenMap f.Mathematical readingA surjective continuoussemilinear map betweencomplete normed spacesover compatible normedfields is an open map.Pinned declarationmathlib ยทContinuousLinearMap.isOpenMapExact checked formprotected theoremContinuousLinearMap.isOpenMap{๐•œ ๐•œ' : Type*}[NontriviallyNormedField๐•œ][NontriviallyNormedField๐•œ'] {ฯƒ : ๐•œ โ†’+* ๐•œ'} {E :Type*}[NormedAddCommGroup E][NormedSpace ๐•œ E] {F :Type*}[NormedAddCommGroup F][NormedSpace ๐•œ' F] (f :E โ†’SL[ฯƒ] F) {ฯƒ' : ๐•œ' โ†’+*๐•œ} [RingHomInvPair ฯƒ ฯƒ'][RingHomIsometric ฯƒ][RingHomIsometric ฯƒ'][CompleteSpace F][CompleteSpace E] (surj: Function.Surjective f): IsOpenMap fStatement map for Banach Open Mapping TheoremA surjective continuous semilinear map between complete normed spaces over compatible normed fields is an open map. The pinned upstream declaration is ContinuousLinearMap.isOpenMap. The exact checked statement is protected theorem ContinuousLinearMap.isOpenMap {๐•œ ๐•œ' : Type*} [NontriviallyNormedField ๐•œ] [NontriviallyNormedField ๐•œ'] {ฯƒ : ๐•œ โ†’+* ๐•œ'} {E : Type*} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {F : Type*} [NormedAddCommGroup F] [NormedSpace ๐•œ' F] (f : E โ†’SL[ฯƒ] F) {ฯƒ' : ๐•œ' โ†’+* ๐•œ} [RingHomInvPair ฯƒ ฯƒ'] [RingHomIsometric ฯƒ] [RingHomIsometric ฯƒ'] [CompleteSpace F] [CompleteSpace E] (surj : Function.Surjective f) : IsOpenMap f.Mathematical readingA surjective continuoussemilinear map betweencomplete normed spacesover compatible normedfields is an open map.Pinned declarationmathlib ยทContinuousLinearMap.isOpenMapExact checked formprotected theoremContinuousLinearMap.isOpenMap{๐•œ ๐•œ' : Type*}[NontriviallyNormedField๐•œ][NontriviallyNormedField๐•œ'] {ฯƒ : ๐•œ โ†’+* ๐•œ'} {E :Type*}[NormedAddCommGroup E][NormedSpace ๐•œ E] {F :Type*}[NormedAddCommGroup F][NormedSpace ๐•œ' F] (f :E โ†’SL[ฯƒ] F) {ฯƒ' : ๐•œ' โ†’+*๐•œ} [RingHomInvPair ฯƒ ฯƒ'][RingHomIsometric ฯƒ][RingHomIsometric ฯƒ'][CompleteSpace F][CompleteSpace E] (surj: Function.Surjective f): IsOpenMap f

This map summarizes the statement's structure; the exact Mathlib declaration remains authoritative.

Completeness and surjectivity prevent a continuous semilinear map from flattening open neighborhoods. Explanatory diagram.
Detailed visual description

Two complete normed-space fields face one another. A warm open source region enters a linear mapping plane and its image visibly contains a cobalt target ball. Overlapping source fibers indicate that the map need not be injective.

Why it matters

A mathematical landmark

The open mapping theorem is one of functional analysis's three foundational Banach-space principles. It converts algebraic surjectivity and analytic completeness into robust topological control.

ProofAtlas record

What has been checked

Upstream indexedPinned source bytes verified locally
Locally reproducedExact upstream declaration replayed
Reviewed pageCurrent public presentation reviewed
Accepted Atlas resultNot recorded for the preferred artifact

Mathlib is the source of the theorem; the local Lean replay and page review are separate.

Claim boundary

No new theorem is claimed

This page indexes Mathlib's open-mapping result for a surjective continuous semilinear map between complete normed spaces over isometrically equivalent nontrivially normed fields. It concludes that the map is open. It does not assume or conclude injectivity, construct a continuous linear inverse, or state the closed graph theorem.

Source and local evidence

Where the theorem comes from

Existing declaration
ContinuousLinearMap.isOpenMap in mathlib
Relationship
The checked artifact is the upstream declaration itself
Local Lean evidence
artifact.library.mathlib.banach-open-mapping-theorem.v001
Source
Open the pinned upstream reference