[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"l4yaZEBLp0":3},"# SphericalCompleteness\n\n[![CI](https://github.com/YijunYuan/SphericalCompleteness/actions/workflows/lean_action_ci.yml/badge.svg)](https://github.com/YijunYuan/SphericalCompleteness/actions/workflows/lean_action_ci.yml)\n[![Lean](https://img.shields.io/badge/Lean-4.31.0-5C2D91)](https://github.com/leanprover/lean4)\n[![mathlib](https://img.shields.io/badge/mathlib-v4.31.0-5C2D91)](https://github.com/leanprover-community/mathlib4)\n[![License](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE)\n\n[![Graph](https://img.shields.io/badge/Dependency_graph-100000?style=for-the-badge&logo=GitHub&logoColor=white&labelColor=black&color=black)](https://yijunyuan.github.io/lean-graph/?url=https://raw.githubusercontent.com/YijunYuan/SphericalCompleteness/refs/heads/master/SphericallyCompleteSpace.json#dark)\n\nThis repository is a Lean 4 / mathlib formalization of **spherical completeness** in ultrametric spaces and its consequences in **non-Archimedean normed vector spaces**.\n\n## What the project does\n\nAt a high level, the library provides:\n\n- The core typeclass `SphericallyCompleteSpace` and foundational consequences (including completeness).\n- Multiple equivalent formulations of spherical completeness in ultrametric settings.\n- Structural results for normed spaces: orthogonality, orthogonal complements, quotient stability.\n- A non-Archimedean Hahn-Banach theorem with norm-preserving extension.\n- A construction and characterization of `SphericalCompletion` via maximal immediate extensions.\n\nThe main umbrella import is:\n\n- `SphericalCompleteness.lean`\n\n## Main mathematical results\n\nThe central conclusions formalized in this project include:\n\n1. Equivalent characterizations of spherical completeness (`SphericalCompleteness/Basic.lean`):\n   - Nested closed balls with nonempty intersection (definition form).\n   - Equivalent formulations with antitone or strictly antitone radii.\n   - Equivalence with the pairwise-intersection criterion for closed balls (TFAE in ultrametric spaces).\n2. Spherical completeness implies completeness (`SphericalCompleteness/Defs.lean`).\n3. A non-spherical-completeness mechanism (`SphericalCompleteness/Dense.lean`):\n   - Separable + ultrametric + spherically dense implies not spherically complete.\n   - Applied to show that `ℂ_[p]` is not spherically complete.\n4. Non-Archimedean Hahn-Banach (`SphericalCompleteness/NormedVectorSpace/ContinuousLinearMap/HahnBanach.lean`):\n   - Continuous linear maps extend from subspaces while preserving operator norm.\n5. Orthogonal complements and projections (`SphericalCompleteness/NormedVectorSpace/Orthogonal/OrthComp.lean`):\n   - Construction of orthogonal projection and complement with `IsCompl` decomposition.\n6. Closure properties:\n   - Finite-dimensional spaces over a spherically complete base are spherically complete (`.../NormedVectorSpace/Basic.lean`).\n   - Quotients preserve spherical completeness (`.../NormedVectorSpace/Quotient.lean`).\n7. Spherical completion theory (`.../NormedVectorSpace/SphericalCompletion/*`):\n   - Construction of `SphericalCompletion` and its embedding.\n   - Minimality, uniqueness, and universal property.\n   - Characterizations:\n     - `SphericallyCompleteSpace E ↔ MaximallyComplete 𝕜 E`\n     - `SphericallyCompleteSpace E ↔` surjectivity of `SphericalCompletionEmbedding`.\n\n## Why the project is useful\n\nSpherical completeness is a key notion in non-Archimedean analysis (for example, in $p$-adic and ultrametric geometry). This library is designed to make it easier to:\n\n- Reuse a coherent `SphericallyCompleteSpace` API across downstream developments.\n- Access standard nested-ball and pairwise-intersection formulations in one place.\n- Use typeclass-friendly closure results and functional-analytic consequences.\n- Build and reason about spherical completions with universal properties.\n\n## Repository structure\n\nThe library is organized in layers.\n\n### Entry points and utilities\n\n- `SphericalCompleteness.lean`\n  - Umbrella import of the main library modules.\n- `DependencyExtractor.lean`\n  - Utility script to extract dependency graphs of declarations to JSON.\n\n### Core spherical-completeness theory\n\n- `SphericalCompleteness/Defs.lean`\n  - Definition of `SphericallyCompleteSpace` and fundamental transfer/instance lemmas.\n- `SphericalCompleteness/Basic.lean`\n  - Equivalent formulations (TFAE) and basic constructions (products, finite `Pi`, standard instances).\n- `SphericalCompleteness/Dense.lean`\n  - Definition of spherical density and non-spherical-completeness criteria.\n\n### External support layer (`SphericalCompleteness/External/*`)\n\n- `Complete.lean`: completeness vs nested balls with radii tending to zero.\n- `ContinuityOfRoots.lean`: continuity-of-roots estimates in non-Archimedean settings.\n- `DenselyNormedField.lean`: persistence of densely normed field structure under completion.\n- `NNReal.lean`: helper lemmas on `NNReal`.\n- `PadicAlgCl.lean`: separability and density results for `PadicAlgCl`.\n- `PadicComplex.lean`: transfer of these structures to `ℂ_[p]`.\n- `Sequence.lean`: sequence/subsequence selection lemmas used in core arguments.\n- `Submodule.lean`: algebraic submodule lemmas used in decomposition arguments.\n- `Ultrametric.lean`: ultrametric lemmas and lifted ultrametric instances.\n\n### Normed vector space layer (`SphericalCompleteness/NormedVectorSpace/*`)\n\n- `Basic.lean`\n  - Spherical completeness for finite-dimensional spaces over spherically complete fields.\n- `Immediate.lean`\n  - `IsImmediate`, `MaximallyComplete`, and immediate-extension machinery.\n- `Quotient.lean`\n  - Spherical completeness for quotient spaces.\n\n### Continuous linear maps and Hahn-Banach\n\n- `ContinuousLinearMap/Basic.lean`\n  - Spherical completeness of `E →L[𝕜] F` when codomain hypotheses hold.\n- `ContinuousLinearMap/SupportingResults.lean`\n  - Technical extension machinery (van Rooij-style supporting lemmas).\n- `ContinuousLinearMap/HahnBanach.lean`\n  - Main non-Archimedean Hahn-Banach theorems.\n\n### Orthogonality theory\n\n- `Orthogonal/Defs.lean`\n  - Definitions of `MOrth`, `Orth`, `SOrth`.\n- `Orthogonal/Basic.lean`\n  - Fundamental properties and equivalent formulations of orthogonality.\n- `Orthogonal/MOrth.lean`\n  - Existence and decomposition statements involving `MOrth`.\n- `Orthogonal/OrthComp.lean`\n  - Construction of `OrthComp` and `OrthProj`; complement decomposition results.\n\n### Spherical completion construction\n\n- `SphericalCompletion/SphericallyCompleteExtension.lean`\n  - Construction of a large spherically complete ambient extension (via an `lp/c₀` quotient).\n- `SphericalCompletion/Defs.lean`\n  - Definition of `SphericalCompletion` via maximal immediate subspaces (Zorn-style existence).\n- `SphericalCompletion/Basic.lean`\n  - Minimality, uniqueness, universal property, and completion criteria.\n\n## How users can get started\n\n### Prerequisites\n\n- Lean toolchain: `leanprover/lean4:v4.28.0` (see `lean-toolchain`).\n- mathlib revision: `v4.28.0` (see `lakefile.toml`).\n- Recommended editor: VS Code + the Lean 4 extension.\n\n### Build\n\n```bash\nlake update\n# Optional but recommended: download precompiled `.olean` caches (mathlib + deps)\nlake exe cache get\nlake build\n```\n\nIf `lake exe cache get` fails in your environment (e.g. network restrictions), you can still build from source using just `lake build`.\n\n### Using the library in Lean\n\nTo import everything:\n\n```lean\nimport SphericalCompleteness\n```\n\nTo import only the core definition of spherical completeness:\n\n```lean\nimport SphericalCompleteness.Defs\n```\n\nExample (sketch): once you have `[SphericallyCompleteSpace α]`, you can use the defining intersection principle.\n\n```lean\nimport SphericalCompleteness.Defs\n\nopen Metric\n\nvariable {α : Type} [PseudoMetricSpace α] [SphericallyCompleteSpace α]\n\n-- Given a nested sequence of closed balls, the intersection is nonempty.\nexample (ci : ℕ → α) (ri : ℕ → NNReal)\n    (hanti : Antitone (fun i => closedBall (ci i) (ri i))) :\n    (⋂ i, closedBall (ci i) (ri i)).Nonempty :=\n  SphericallyCompleteSpace.isSphericallyComplete (ci := ci) (ri := ri) hanti\n```\n\n## Where users can get help\n\n- If something in this repo fails to compile: open a GitHub issue in this repository.\n- For Lean / mathlib questions:\n  - Lean community Zulip: \u003Chttps://leanprover.zulipchat.com/>\n  - mathlib documentation: \u003Chttps://leanprover-community.github.io/mathlib4_docs/>\n  - Lean 4 manual: \u003Chttps://lean-lang.org/lean4/doc/>\n\n## Who maintains and contributes\n\nMaintainers: Yijun Yuan\n\n## License\n\nLicensed under the Apache License, Version 2.0. See [LICENSE](LICENSE).",1782661970461]