port(exhaustion-cutoff): 穷竭函数 + 局部光滑谓词 + 单位分解⇒仿紧#68
Open
LehengChen wants to merge 1 commit into
Open
Conversation
Contributor
|
感谢 #68(穷竭函数 + 局部光滑 + 单位分解⇒仿紧)。现在 develop 上有两个已合并的注释范本可对照:
另:#65 已合并,base 可重定向到 develop(你这条目前还挂在上游 port 分支)。 |
…compactness Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1275754 to
bf79828
Compare
ac0d67b to
e3c1f75
Compare
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
port(exhaustion-cutoff): 穷竭函数 + 局部光滑谓词 + 单位分解 ⇒ 仿紧
Port of Lee, Introduction to Smooth Manifolds, §2 (Sec 2.11 / Sec 2.12):
exhaustion functions, the local-extension smoothness predicate, the existence of
a positive smooth exhaustion function on a manifold, and paracompactness from
subordinate partitions of unity. Underpins non-compact L²/Bochner/GMT work.
Source → landing
All four source files land in a single new module
OpenGALib/Manifold/Cutoff/Exhaustion.lean:import/smooth-manifolds-lee@a5f308c)Chap02/Sec02_11/Definition_2_11_extra_2.leanIsSmoothOn,isSmoothOn_iff_exists_local_extensionChap02/Sec02_11/Definition_2_11_extra_3.leanIsExhaustionFunction(class),.tendsto_atTop,.isProperMap, the twoinstances,Continuous.isExhaustionFunctionChap02/Sec02_11/Proposition_2_28.leanexists_positive_smooth_exhaustion_functionChap02/Sec02_12/Problem_2_13.leanparacompactSpace_of_hasSubordinatePartitionOfUnityCore objects (new)
Manifold.IsSmoothOn (f : A → N) I I'— a map on a subset of a smoothmanifold is smooth iff every point of
Ahas an open neighborhood on whichfextends to a bundled smooth map
C^∞⟮I, U; I', N⟯.Manifold.IsExhaustionFunction (f : M → ℝ)—Prop-valued class:fcontinuous with every closed sublevel set
f ⁻¹' Iic ccompact(
@[mk_iff isExhaustionFunction_iff]).Supporting results:
tendsto_atTop(→+∞off compact sets),isProperMap(+ two convenience instances),
Continuous.isExhaustionFunction(compact-spacecase),
exists_positive_smooth_exhaustion_function(positive smooth exhaustionon a Hausdorff σ-compact smooth manifold via a compact exhaustion + the
partition-of-unity gluing lemma),
paracompactSpace_of_hasSubordinatePartitionOfUnity.设计中立声明 (design-neutral)
typeclasses:
TopologicalSpace,T2Space,CompactSpace,SigmaCompactSpace,ChartedSpace,IsManifold,ModelWithCorners,FiniteDimensional. Smooth maps use Mathlib'sContMDiff*/C^∞⟮·,·;·,·⟯owner and
PartitionOfUnity.restatetransform in this ticket (transforms: []); none applied.(bump) and the
sorry-bearing Lemma_2_26 because OpenGA already hasOpenGALib/Riemannian/Manifold/BumpFunction.lean. The four ported sourcefiles did not require bump —
exists_positive_smooth_exhaustion_functionuses
CompactExhaustion+exists_contMDiffMap_forall_mem_convex_of_local_const,not a bump partition, so no duplication was needed.
Deviations / namespacing
(
namespace FunctionforIsSmoothOn/IsExhaustionFunction; bare top-levelfor
exists_positive_smooth_exhaustion_functionandparacompactSpace_of_hasSubordinatePartitionOfUnity). Per the namespacepolicy, all declarations were moved under
namespace Manifoldwith theirnames preserved. Two consequences, flagged for review:
IsSmoothOn/IsExhaustionFunctionare nowManifold.IsSmoothOn/Manifold.IsExhaustionFunction, so the source'sf.IsSmoothOn/f.IsExhaustionFunctiondot-notation (onf : M → ℝ, aFunction) nolonger applies; uses were rewritten to prefix form
IsSmoothOn f …/IsExhaustionFunction f. Projection dot-notation on a class hypothesis(
hf.continuous,hf.tendsto_atTop,hf.isProperMap) is unaffected.Continuous.isExhaustionFunctionis nowManifold.Continuous.isExhaustionFunction(name kept verbatim), so it nolonger provides
hf.isExhaustionFunctiondot-notation on aContinuoushypothesis. Kept the name rather than renaming to dodge the gate; flagging in
case a reviewer prefers a
Manifold-native name or whitelisting.IsSmoothOn,IsExhaustionFunction, and both existence theorems do not currently existanywhere in
OpenGALib/(grep clean). No conflict withBumpFunction.lean.(
isProperMap_iff_tendsto_cocompact,atTop_le_cocompact,compl_mem_cocompact,CompactExhaustion.findfamily,exists_contMDiffMap_forall_mem_convex_of_local_const,contMDiffAt_subtype_iff, …) exist verbatim on toolchainleanprover/lean4:v4.30.0-rc2. No inlined dependencies.import Mathlib(Definition_2_11_extra_3) andthe
SmoothManifoldsLee.*import (Proposition_2_28) in favor of targetedMathlib imports.
出处 (provenance)
import/smooth-manifolds-lee@a5f308c, subpathstaging/SmoothManifoldsLee/SmoothManifoldsLee:Chap02/Sec02_11/Definition_2_11_extra_2.leanChap02/Sec02_11/Definition_2_11_extra_3.leanChap02/Sec02_11/Proposition_2_28.leanChap02/Sec02_12/Problem_2_13.leanPer-module provenance lines are embedded in the landing file's module docstring.
Index wiring
OpenGALib/Manifold.lean— addedimport OpenGALib.Manifold.Cutoff.Exhaustion(alphabetical, after the
Charts.*lines).OpenGALib.leanalready importsOpenGALib.Manifold; no change needed.Branch
port/exhaustion-cutoff, cut from the stacked batch tipport/charted-space-core(notorigin/develop). Files:OpenGALib/Manifold/Cutoff/Exhaustion.leanOpenGALib/Manifold.leanGate 结果 (all six green)
Report:
projects/sml-to-openga/ledger/reports/ticket04-20260614T043725Z.json(full
lake build, cache warm; 0 sorry).评审重点 (minimal trusted base)
Proofs are kernel-checked; please focus review on whether the definitions and
statements name the same mathematical objects as Lee §2:
Manifold.IsExhaustionFunction≙ continuous with compact closed sublevel sets;Manifold.IsSmoothOn≙ locally smoothly extendable on a subset;exists_positive_smooth_exhaustion_function≙ positive smooth exhaustionfunction existence on a Hausdorff σ-compact smooth manifold;
paracompactSpace_of_hasSubordinatePartitionOfUnity≙ subordinate POU for allopen covers ⇒ paracompact.