Skip to content

Add zero varifold API#2

Merged
Xinze-Li-Moqian merged 1 commit into
MathNetwork:mainfrom
dxww123:codex/varifold-zero-api
May 9, 2026
Merged

Add zero varifold API#2
Xinze-Li-Moqian merged 1 commit into
MathNetwork:mainfrom
dxww123:codex/varifold-zero-api

Conversation

@dxww123
Copy link
Copy Markdown
Collaborator

@dxww123 dxww123 commented May 9, 2026

No description provided.

@Xinze-Li-Moqian Xinze-Li-Moqian merged commit 5b0b78f into MathNetwork:main May 9, 2026
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
`mfderiv_chart_compose_apply`: chart-pullback chain rule for
`g ∘ extChartAt I x` at base point. Closure path documented;
~30-40 line bounded follow-up. SORRY_CATALOG updated.
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
`mfderiv_chart_compose_apply` 0-sorry: for flat `g : E_M → F`
DifferentiableWithinAt `range I` at `phi x`, manifold mfderiv of
`g ∘ extChartAt I x` at x equals flat `fderivWithin g (range I) (phi x)`.

Proof: composition MDifferentiableAt via `DifferentiableWithinAt.comp_
mdifferentiableWithinAt` + `MDifferentiableWithinAt.mdifferentiableAt`,
then `MDifferentiableAt.mfderiv` chart-unfold, then `writtenInExtChartAt`
= g on phi.target, then `fderivWithin` congruence on `nhdsWithin range I`.

Riemannian package: 5 → 4 sorrys. Catalog updated.
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
Document concrete remaining steps after Helpers #1, #2 + locality bridges:
1. Smoothness of g_chart from f C² + V/W C¹
2. Apply Helper #2 to LHS terms
3. Substitute V/W base-point identities
4. Apply flat_hessianLieWithin_apply
5. RHS bridge via Helper #2 + mlieBracketWithin_apply + Helper #1

Each step bounded mechanical follow-up. File: 1 sorry, build clean.
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
…cker

`change` tactic to inline `extChartAt I x` for `rw [Helper #2]` fails due
to `TangentSpace 𝓘(ℝ,F) (g_chart_W (...))` basepoint def-eq under HSub
instance synthesis. Workaround requires explicit `@HSub.hSub` ascription
or `show`-based goal restructuring (~30-40 lines).

State: 1 sorry remaining (main body), Helpers #1, #2 + locality bridges
+ base-point identities all closed.
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
Multiple attempts to apply Helper #2 via rw/simp_only/show all blocked by
Lean's `set phi := extChartAt I x` interaction with pattern matching.
Architectural path documented; ~30-50 lines of careful term-mode work
remains.

State: 1 sorry, build clean. Helpers #1, #2 + locality + base-point
identities all closed (~150 lines real proof in this file).
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
Added mDirDeriv-form Helper #2 (`mDirDeriv_chart_compose_apply`) — F-typed
wrapper that sidesteps the basepoint HSub elaboration issue.

Main theorem proof body now substantially fleshed out:
* Re-fold to mDirDeriv form via show
* Apply mDirDeriv-form Helper #2 to LHS terms (works on F-typed mDirDeriv)
* Substitute V/W base-point identities
* Apply flat_hessianLieWithin_apply
* RHS: rewrite mDirDeriv f x via Filter.EventuallyEq.mfderiv_eq + Helper #2
* mlieBracketWithin_apply expansion via Helper #1 (chart mfderiv = id)

Remaining gaps:
* Smoothness premises sorry'd (5 sub-sorrys for f_loc C², V/W_loc, g_chart_W/V)
* `mpullbackWithin V (range I)` vs `V ∘ phi.symm` identification
  (needs chart-inverse mfderiv = id helper)
* `ContinuousLinearMap.id.inverse` simplification

Architectural path complete; closure is substantive Lean engineering.
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
…lans

5 remaining sorrys in main theorem (4 smoothness + 1 mpullbackWithin bridge).
All have concrete repair paths via:
* hV.coordSmoothAt + IsLocallyConstantChartedSpace + extChartAt_symm pull
* fderivWithin smoothness + clm_apply chain rule
* chart-inverse mfderiv = id helper (analog of Helper #1)

Bianchi I, flat Hessian-Lie, Helpers #1+#2, locality bridges, base-point
identities, RHS bridge structure all in place (~250 lines real proof).
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
After substantial closure in HessianLie.lean:
- Helpers #1, #2: 0 sorry
- Flat Hessian-Lie (univ + Within): 0 sorry
- Inner/outer locality bridges: closed inline
- Base-point V/W identities: closed
- f_loc, V_loc, W_loc, g_chart_W, g_chart_V smoothness: all closed
- Only h_lieBr_eq's mpullbackWithin bridge remaining

Riemannian package: 8 → 4 sorrys this session.
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
…-sorry)

Final closure step: extended Helper #3 to chart-target nbhd via
`Filter.Tendsto.mono_left` of phi.symm continuity + chart-coherence
pull-back. Then `Filter.EventuallyEq.lieBracketWithin_vectorField_eq_of_mem`
bridges `mpullbackWithin V (range I)` to `V_loc` (and same for W).

The complete proof chain now:
* Bianchi I (Connection/Bianchi.lean): 0-sorry ✓
* Flat scalar Hessian-Lie (univ + Within): 0-sorry ✓
* Helper #1 (chart mfderiv = id eventually): 0-sorry ✓
* Helper #2 (chart-compose mfderiv → fderivWithin): 0-sorry ✓
* mDirDeriv-form Helper #2: 0-sorry ✓
* Helper #3 (chart-inverse mfderivWithin = id at base): 0-sorry ✓
* Helper #3 extended (eventually within range I): 0-sorry ✓
* mfderiv_iterate_sub_eq_mlieBracket_apply (manifold scalar Hessian-Lie):
  0-sorry ✓ (~250 lines real proof)

Riemannian package: 4 → 3 sorrys (only Curvature.lean's 3 remaining,
which are unblocked by this closure).
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
Restructure 726-line monolithic `Foundations/HessianLie.lean` into
single-responsibility modules:

* `HessianLie/Flat.lean` (105 lines) — flat fderiv versions
* `HessianLie/ChartHelpers.lean` (175 lines) — Helper #1, #2, #3
* `HessianLie/Manifold.lean` (315 lines) — manifold version + mDirDeriv

`HessianLie.lean` becomes a 30-line facade re-exporting the three.

Engineering improvements:
* Extracted 4 named helper lemmas in Manifold.lean
  (`MDifferentiableAt_of_tangent_bundle_section`,
   `DifferentiableWithinAt_chart_pullback_of_section`,
   `mfderiv_inner_eq_fderivWithin_eventually`,
   `mpullbackWithin_extChartAt_symm_eq_eventually`,
   `mlieBracket_eq_lieBracketWithin_chart_pullback`)
  — eliminates V/W code duplication in main proof body
* Tightened docstrings (concise + structured)
* Removed dev-comment noise; kept algorithmic 1-2 line annotations
* `omit` clauses for unused typeclass instances
* Total: 726 → 595 lines (-18%) with cleaner separation

All 3 modules + facade build clean, 0-sorry. Riemannian package: 3 sorrys
remaining (all in Curvature.lean).
Xinze-Li-Moqian added a commit that referenced this pull request May 10, 2026
Polish on top of dxww123's PR #2 ("Add zero varifold API"). Their
original proof used `ext + constructor + case-split + cases hp`
(8 lines mechanical). One-line term-mode using
`Set.eq_empty_iff_forall_notMem` is cleaner and avoids the redundant
backward direction (vacuous from `p ∈ ∅`).

Inspired by review of qinz1yang/differential-geometry codebase
patterns; standard Mathlib idiom for "this set is empty" proofs.
Xinze-Li-Moqian added a commit that referenced this pull request May 13, 2026
Add `riemannCurvature_eq_of_Z_eventuallyEq`: if Z =ᶠ[𝓝 x] Z' then
R(X, Y) Z x = R(X, Y) Z' x. Each of the three terms in
`riemannCurvature_def` is treated via the new public
`covDeriv_congr_eventuallyEq_field` (locality of covDeriv in the
differentiated field), which is a direct application of Mathlib's
`IsCovariantDerivativeOn.congr_of_eventuallyEq` evaluated at X(x) —
no direction-smoothness required.

Warm-up step (item #2 in the Bochner closure plan) for the Z-slot
vanishing → X/Y-slot mirror → pointwise-eq bundling chain.
Xinze-Li-Moqian added a commit that referenced this pull request May 13, 2026
Port external `riemannSec_eq_zero_of_Z_eq_zero` to OpenGALib's
SmoothVectorField interface. Strategy: local frame `e.localFrame basisF`
at `x` + smooth bump `χ` with `tsupport χ ⊆ e.baseSet` produces a
finite-sum decomposition `Z =ᶠ ∑ gᵢ • s'ᵢ` near `x` where each
`gᵢ x = 0` (since `Z x = 0` and `localFrame_coeff` is linear). Apply
Z-slot scalar Leibniz (`riemannCurvature_smul_third_scalar_field`)
and additivity (`riemannCurvature_add_third`) inductively to each
summand; the empty case reduces via the zero-section identity for
`leviCivitaConnection.isCovariantDerivativeOnUniv`.

Item #2 in the Bochner closure plan (#1 = Z-slot locality landed).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants