Skip to content

feat(Analysis/Calculus/AddTorsor/AffineMap): smoothness of AffineMap.lineMap#39206

Open
FordUniver wants to merge 1 commit into
leanprover-community:masterfrom
FordUniver:feat/lineMap-contDiff
Open

feat(Analysis/Calculus/AddTorsor/AffineMap): smoothness of AffineMap.lineMap#39206
FordUniver wants to merge 1 commit into
leanprover-community:masterfrom
FordUniver:feat/lineMap-contDiff

Conversation

@FordUniver
Copy link
Copy Markdown
Collaborator

@FordUniver FordUniver commented May 11, 2026

Add AffineMap.lineMap_contDiff_uncurry (joint smoothness in all three arguments), AffineMap.lineMap_contDiff (smoothness in the parameter with fixed endpoints), and the composition family ContDiff.lineMap, ContDiffOn.lineMap, ContDiffAt.lineMap, ContDiffWithinAt.lineMap, mirroring the corresponding Continuous family in Mathlib.Topology.Algebra.Affine. The uncurried and ContDiffWithinAt forms are tagged @[fun_prop] so the rest are automatically derivable. Closes the TODO at Mathlib.MeasureTheory.Integral.CurveIntegral.Poincare:333 where the proof now reduces to fun_prop.


Came up while formalizing the descent lemma for Lipschitz-smooth functions, where Path.segment a b being smooth on the unit interval is needed to apply FTC along the segment; AffineMap.lineMap_contDiff is the lemma directly used there. Two things I was genuinely not quite sure about:

  1. Should the three convenience variants ContDiffAt.lineMap, ContDiffOn.lineMap, and ContDiff.lineMap be included? They are not strictly necessary but they exist for users wanting to write h₁.lineMap h₂ hg in dot notation by hand, and they mirror the convention of the Continuous.lineMap family.

  2. Is Mathlib.Analysis.Calculus.AddTorsor.AffineMap the right home, and is adding public import Mathlib.Analysis.Calculus.AddTorsor.AffineMap to Poincare.lean to close the TODO reasonable? The placement mirrors the Continuous.lineMap family in Mathlib.Topology.Algebra.Affine, but hiding a @[fun_prop] in a file at the bottom of the hierarchy and needing to import it feels a bit off.

…lineMap

Add `AffineMap.lineMap_contDiff_uncurry` (joint smoothness in all three
arguments), `AffineMap.lineMap_contDiff` (smoothness in the parameter
with fixed endpoints), and the composition family `ContDiff.lineMap`,
`ContDiffOn.lineMap`, `ContDiffAt.lineMap`, `ContDiffWithinAt.lineMap`,
mirroring the corresponding `Continuous` family in
`Mathlib.Topology.Algebra.Affine`. The uncurried and `ContDiffWithinAt`
forms are tagged `@[fun_prop]`.

Closes the long-standing TODO at `MeasureTheory.Integral.CurveIntegral.Poincare:333`
(`-- TODO: add ContDiff.lineMap etc`), where the absence of this API
forced a manual `simp only [AffineMap.lineMap_apply_module]` unfold before
`fun_prop` could close the goal. The Poincare proof now closes with just
`fun_prop` once the new file is imported.
@github-actions
Copy link
Copy Markdown

PR summary d59f7b3264

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.MeasureTheory.Integral.CurveIntegral.Poincare 2440 2441 +1 (+0.04%)
Import changes for all files
Files Import difference
Mathlib.MeasureTheory.Integral.CurveIntegral.Poincare 1

Declarations diff

+ ContDiff.lineMap
+ ContDiffAt.lineMap
+ ContDiffOn.lineMap
+ ContDiffWithinAt.lineMap
+ lineMap_contDiff
+ lineMap_contDiff_uncurry

You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci

## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.


No changes to strong technical debt.
No changes to weak technical debt.

@FordUniver FordUniver requested a review from urkud May 11, 2026 15:41
@github-actions github-actions Bot added the t-measure-probability Measure theory / Probability theory label May 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-measure-probability Measure theory / Probability theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant