Skip to content

feat(Mathematics): the Cauchy–Riemann criterion for Wirtinger derivatives - #1726

Open
pariandrea wants to merge 2 commits into
leanprover-community:masterfrom
pariandrea:pr08-holomorphy-criterion
Open

pariandrea wants to merge 2 commits into
leanprover-community:masterfrom
pariandrea:pr08-holomorphy-criterion

Conversation

@pariandrea

Copy link
Copy Markdown
Contributor

Adds the Cauchy–Riemann characterisation of holomorphy for the Wirtinger operators: a complex-valued
function on a complex normed space is ℂ-differentiable exactly when it is real-differentiable and
its anti-holomorphic Wirtinger derivatives vanish, in directional and in coordinate form.

The key step is that an ℝ-linear map commuting with multiplication by i is ℂ-linear.
Mathlib has this only for maps out of ℂ (ContinuousLinearMap.complexOfReal, used for its
one-variable differentiableAt_complex_iff_differentiableAt_real); ComplexLinear.lean gives the
arbitrary-domain form, which a many-variable Cauchy–Riemann argument needs.

The real-differentiability conjunct cannot be dropped: fderiv is 0 off the differentiability
locus, so the vanishing condition alone holds vacuously for a nowhere-differentiable function.

Added

Physlib/Mathematics/ForMathlib/ComplexLinear.lean (new)

  • LinearMap.map_smul_of_commutesI: an ℝ-linear map pulls a complex scalar out of any direction
    along which it commutes with i.
  • LinearMap.commutesI_of_basis: an ℝ-linear map commuting with i on a finite ℂ-basis commutes
    with it on every vector.
  • ContinuousLinearMap.complexOfCommutesI: a continuous ℝ-linear map commuting with i in every
    direction, as a →L[ℂ] map.
  • ContinuousLinearMap.complexOfCommutesI_apply (simp): complexOfCommutesI L h v = L v.

Physlib/Mathematics/Calculus/Wirtinger/Basic.lean

  • clinear_of_dWirtingerAntiDir_eq_zero: converse of dWirtingerAntiDir_eq_zero_of_clinear.
  • differentiableAt_complex_iff_dWirtingerAntiDir_eq_zero: Cauchy–Riemann, directional form.
  • The section overview's paragraph on the real/complex derivative bridge now cites this criterion.

Physlib/Mathematics/Calculus/Wirtinger/Coordinate.lean

  • differentiableAt_complex_iff_dWirtingerAntiCoord_eq_zero: Cauchy–Riemann in coordinates on
    ι → ℂ, the form ∂̄_Ī W = 0 takes in physics.

Removed: none. Wirtinger/Basic.lean drops its import of Mathlib.Analysis.Complex.Basic, now
implied by ComplexLinear.

Reviewer map

  1. ComplexLinear.lean: the scalar law, the basis lemma, the bundled map.
  2. Wirtinger/Basic.lean: the converse lemma, then the Cauchy–Riemann section.
  3. Wirtinger/Coordinate.lean: the coordinate corollary.

pariandrea and others added 2 commits October 3, 2026 13:16
…risation of holomorphy

Adds `Physlib.Mathematics.ForMathlib.ComplexLinear`: an ℝ-linear map between complex vector spaces
that commutes with multiplication by `i` is ℂ-linear. `LinearMap.map_smul_of_commutesI` is the
law along one direction, `LinearMap.commutesI_of_basis` extends commuting with `i` from a ℂ-basis
to every vector, and `ContinuousLinearMap.complexOfCommutesI` bundles the result as a continuous
ℂ-linear map. Mathlib has this only for maps out of `ℂ` (`real_linearMap_map_smul_complex`,
`ContinuousLinearMap.complexOfReal`); this is the arbitrary-domain form.

With it, `clinear_of_dWirtingerAntiDir_eq_zero` (the converse of
`dWirtingerAntiDir_eq_zero_of_clinear`) and the Cauchy–Riemann characterisations
`differentiableAt_complex_iff_dWirtingerAntiDir_eq_zero` and
`differentiableAt_complex_iff_dWirtingerAntiCoord_eq_zero`: ℂ-differentiability is real
differentiability together with the vanishing of the anti-holomorphic Wirtinger derivatives.

Co-authored-by: Claude Opus 5.5 <no-reply+claude-opus-5-5@anthropic.com>
… redundant by ComplexLinear

Co-authored-by: Claude Opus 5.5 <no-reply+claude-opus-5-5@anthropic.com>
@github-actions github-actions Bot added the medium label Oct 3, 2026
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Thank you for this pull-request (PR). If this is your first PR, welcome to the community!

Below is what will happen next. Please read carefully if you are not familiar with the process. You may open other PRs while this one is being reviewed, and can stack PRs on top of each other, so don't let these steps slow you down.

  1. Some automated checks will be run on your PR. You can see the results of these checks at the buttom of your PR page. If any of these checks fail, you will need to fix the issues before your PR can be merged. You can learn more about these here, including how to run them locally, which is sometimes quicker than relying on the GitHub Actions. If you have never had a PR merged before, you may have to wait for a reviewer to manually start these checks (this is for security).

  2. A reviewer will look at your PR and may ask you to make changes. This may happen a couple of days after you submit your PR, so you may need to be patient. But it should not be longer than that - if it is please bring it to the attention of the community on the Zulip. The level of review will depend on where your PR is submitted. If it is submitted to ./Physlib or ./QuantumInfo, the review will be more thorough than if it is submitted to ./PhyslibAlpha. You can find out more about what the review process is looking for in our review guidelines. If a reviewer adds an awaiting-author label to your PR, address the review comments, then please remove that label by adding a comment with -awaiting-author. This helps us keep track of reviews.

  3. The reviewer will either approve your PR, or request more changes (in which case we return to step 2). Once your PR is approved, it will be merged by a maintainer, this should happen shortly after approval, though you may get more comments at this stage.

Tip: The easiest way to get have a fast review is to submit a PR that is small and self-contained, and has clear documentation explaining why things are the way they are in your chages.

If you have any problems or questions, please reach out to the community on the Zulip.

@github-actions github-actions Bot added the t-mathematics Mathematics label Oct 3, 2026
@nateabr

nateabr commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator

claim

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

@nateabr has claimed this PR for review until 2026-10-05 15:27 UTC (2 days).

I will remind them here 24h before that runs out.
If no review lands in time the claim is released automatically and this PR returns to
the review queue.

Comment claim to extend, claim 5 days / claim 2026-08-01 for a specific window, or
disclaim to release it early. A claim is cooperative, not a lock: it signals intent so
that others can steer around it, and anyone is still free to review this PR.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants