feat(Mathematics/Calculus): coordinate Wirtinger calculus on ℂⁿ#1174
Conversation
|
Thank you for this PR, which will now be reviewed. Please If you want to bring attention to this PR, please write a message on this |
jstoobysmith
left a comment
There was a problem hiding this comment.
There is a lot of lemmas and definitions here that I don't think actually need making (i.e. they are simple rewrites of things already in Mathlib).
| variable {ι : Type*} | ||
|
|
||
| /-- The I-th coordinate `z^I = u I` as an ℝ-linear CLM on `ι → ℂ`. -/ | ||
| def coordProjCLM (I : ι) : (ι → ℂ) →L[ℝ] ℂ := ContinuousLinearMap.proj (R := ℝ) I |
There was a problem hiding this comment.
I don't think this should be needed here (can't we just use ContinuousLinearMap.proj )
There was a problem hiding this comment.
Likewise with the other results before section A. below.
| omit [Fintype ι] in | ||
| /-- `c • Pi.single I 1 = Pi.single I c`: in particular the imaginary coordinate | ||
| direction `Pi.single I i` is `i` times the real one. -/ | ||
| private lemma smul_single_one (I : ι) (c : ℂ) : |
| (I : ι) | ||
| (u : (ι → ℂ)) : |
| lemma differentiableAt_real_of_complex {f : (ι → ℂ) → ℂ} | ||
| {u : (ι → ℂ)} (hf : DifferentiableAt ℂ f u) : | ||
| DifferentiableAt ℝ f u := | ||
| (hf.hasFDerivAt.restrictScalars ℝ).differentiableAt |
There was a problem hiding this comment.
Is this needed as a new lemma?
| lemma fderivReal_apply_eq_complex {f : (ι → ℂ) → ℂ} | ||
| {u : (ι → ℂ)} (hf : DifferentiableAt ℂ f u) | ||
| (d : (ι → ℂ)) : | ||
| fderiv ℝ f u d = fderiv ℂ f u d := by |
Specialize the directional Wirtinger calculus of `Wirtinger.Basic` to the standard coordinate basis on `ℂ^n` (`ι → ℂ`, `ι` a `Fintype`), fixing the direction to the I-th basis vector `Pi.single I 1`. New file `Wirtinger/Coordinate.lean` (registered in `Physlib.lean`) provides: - `dWirtingerCoord` / `dWirtingerAntiCoord` (`∂_I` / `∂̄_I`): the partial Wirtinger derivatives w.r.t. coordinate `I`, definitionally the directional operators along `Pi.single I 1`, with real-Fréchet form `(1/2)(∂_x ∓ i ∂_y)`; - the coordinate CLMs `coordProjCLM`, `conjCoordCLM`, `conjCLM`, and the four Kronecker coordinate values `∂_I z^J = δ_IJ`, `∂̄_I z̄^J = δ_IJ`, `∂̄_I z^J = ∂_I z̄^J = 0`; - additivity, `ℂ`-linearity, the Leibniz rule, and the finite-sum rule; conjugation swapping the two operators; holomorphic collapse; and the two-term chain rule for an outer `g : ℂ → ℂ`; - the `ℝ`/`ℂ` `restrictScalars` bridge on the `ι → ℂ` domain (`differentiableAt_real_of_complex`, `fderivReal_apply_eq_complex`), stated with no `restrictScalars` in their types; - Schwarz's theorem for the coordinate operators, `∂_I ∂̄_J f = ∂̄_J ∂_I f` on `C²` `f`, yielding Kähler-metric hermiticity. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…review Collapse the post-review polish on the coordinate Wirtinger layer: - Drop helpers that duplicate Mathlib and inline the remaining trivial ones, shrinking the internal surface to what the public lemmas need. - Prove the coordinate-difference rules via fun_prop and restructure the sections (A–E) for a cleaner read. - Tighten the module and per-lemma docstrings; fix the dual-basis claim (the coordinate functionals z^J are the dual basis to Pi.single I 1), normalize anti-holomorphic hyphenation, and attribute the §B/§C holomorphic-collapse statements to the right sections.
19ddddc to
fc8ae95
Compare
Thanks you for the feedback. I agree on the bloat. I've cut the the code to the minimal set of lemmas needed to do computations.
Two things I kept, since they aren't Mathlib rewrites:
|
jstoobysmith
left a comment
There was a problem hiding this comment.
This now looks good to me - approved.
Contents
Coordinate.leanspecialises the directional Wirtinger calculus ofBasic.leanto the coordinate space
ℂⁿ(spelledι → ℂfor aFintype ι), fixing thedirection to the I-th basis vector
Pi.single I 1. It defines the coordinateoperators
∂_I f,∂̄_I fas the partial Wirtinger derivatives in coordinateI,and derives the computational rules that make the basis usable: the four Kronecker
coordinate values
∂_I z^J = δ_IJ,∂̄_I z̄^J = δ_IJ,∂̄_I z^J = ∂_I z̄^J = 0(so
zandz̄behave as independent variables), real-linearity, the Leibniz andfinite-sum rules, inner-field conjugation, the two-term chain rule for an outer
g : ℂ → ℂ, the holomorphic/anti-holomorphic collapse, and the coordinatespecialisation of Schwarz's theorem,
∂_I ∂̄_J f = ∂̄_J ∂_I fon aC²field.A real/complex
restrictScalarsbridge on theι → ℂdomain(
differentiableAt_real_of_complex,fderivReal_apply_eq_complex) lets thefderiv ℝ-based operators read off a holomorphic field's complex derivative,the input to the collapse, with no
restrictScalarsappearing in any statement.Motivation
Indexing the directional Wirtinger calculus by a coordinate
Icasts it in thelanguage of several complex variables: first derivatives
∂_I fassemble into agradient, mixed second derivatives
∂_I ∂̄_J finto a complex Hessian. By Schwarzthat Hessian is Hermitian, which is exactly Kähler-metric hermiticity for a real
potential
K:g_{IJ̄} = ∂_I ∂̄_J K = star (g_{JĪ}). This is the calculus the N=1SUSY formalisation runs on, with
ιthe chiral index.Scope
This is the second instalment of a layered development (after #1163). The module
overview forward-references the downstream
UpperHalfPlaneapplication and the N=1SUSY layer; both follow in subsequent PRs. The forward references are intentional.
AI disclosure
AI (Claude Code) was used extensively to draft lemma statements, proofs, and
documentation under my direction. I reviewed every declaration and take full
responsibility for the content.
Author responsibility
I am a PhD student in theoretical physics and am not an expert in complex calculus;
this development is needed for my current SUSY formalisation work. As with #1163, the
PR proves no novel mathematics: every result is the
d = Pi.single I 1specialisationof a foundation lemma already merged in #1163, or a direct
fderiv ℝcomputation of acoordinate projection. Correctness therefore rests on the machine-checked foundation
and Mathlib's Fréchet-derivative API, and the whole development compiles under the
kernel with no
sorryand no new axioms.References
Coordinate.leanadds no new external references; the notation and conventions areinherited from
Basic.lean(verified in #1163).Lemmas and definitions added
No declarations are removed. All additions live in the new file, plus a one-line
import in
Physlib.lean(the library aggregator).Coordinate maps as continuous linear maps
coordProjCLM,coordProjCLM_apply— the I-th coordinatez^I = u Ias anℝ-linear CLM.conjCoordCLM,conjCoordCLM_apply— the conjugated coordinatez̄^I = star (u I).conjConfig,conjConfig_apply— pointwise conjugation of a point ofι → ℂ.conjCLM,conjCLM_apply— pointwise conjugation bundled as anℝ-linear CLM.conjCLM_smul_I—conjCLMis conjugate-ℂ-linear,conj (i·d) = −(i · conj d).§A — the coordinate operators
dWirtingerCoord,dWirtingerAntiCoord(def) — the coordinate Wirtinger operators∂_I f,∂̄_I f, definitionally the directional operators alongPi.single I 1.dWirtingerCoord_eq_dWirtingerDir,dWirtingerAntiCoord_eq_dWirtingerAntiDir—the definitional identification with the foundation operators.
dWirtingerCoord_apply,dWirtingerAntiCoord_apply— the real-Fréchet form∂_I f = ½(∂_x ∓ i·∂_y) f, unconditional.§B — the Pi-domain
restrictScalarsbridgedifferentiableAt_real_of_complex— aℂ-differentiable field onι → ℂisℝ-differentiable.fderivReal_apply_eq_complex— its real and complex Fréchet derivatives agreepointwise,
fderiv ℝ f u d = fderiv ℂ f u d; norestrictScalarsin the type.§C — properties of
dWirtingerCoorddWirtingerCoord_congr_of_eventuallyEq_apply— locality at the base point.dWirtingerCoord_const,dWirtingerCoord_zero— vanish on constants (@[simp]).dWirtingerCoord_neg_apply— negation.dWirtingerCoord_coordProj—∂_I z^J = δ_IJ(@[simp]).dWirtingerCoord_add_apply,dWirtingerCoord_smul_apply,dWirtingerCoord_mul_apply,dWirtingerCoord_fun_sum_apply— additivity,ℂ-linearity, Leibniz, the finite-sum rule.dWirtingerCoord_eq_complex_fderiv_apply— holomorphic collapse,∂_I f = fderiv ℂ f u (Pi.single I 1).dWirtingerCoord_eq_zero_of_antiHolomorphic_apply—∂_Iannihilates anantiholomorphic field
g ∘ conjConfig.§D — properties of
dWirtingerAntiCoord, and the coordinate valuesdWirtingerAntiCoord_congr_of_eventuallyEq_apply,dWirtingerAntiCoord_const,dWirtingerAntiCoord_zero,dWirtingerAntiCoord_neg_apply,dWirtingerAntiCoord_add_apply,dWirtingerAntiCoord_smul_apply,dWirtingerAntiCoord_mul_apply,dWirtingerAntiCoord_fun_sum_apply— the §Cmirror.
dWirtingerAntiCoord_coordProj—∂̄_I z^J = 0(@[simp]).dWirtingerCoord_conjCoord—∂_I z̄^J = 0.dWirtingerAntiCoord_conjCoord—∂̄_I z̄^J = δ_IJ.dWirtingerAntiCoord_eq_complex_fderiv_apply— anti-holomorphic collapse for anantiholomorphic field.
dWirtingerAntiCoord_eq_zero_of_holomorphic_apply—∂̄_I f = 0for holomorphicf.differentiable_coordDiff,dWirtingerCoord_coordDiff,dWirtingerAntiCoord_coordDiff— Wirtinger derivatives of the coordinatedifference
z^J − z̄^J,∂_I = δ_IJand∂̄_I = −δ_IJ.§E — Wirtinger chain rules for an outer function
dWirtingerCoord_comp_apply,dWirtingerAntiCoord_comp_apply— the two-term chainrule for an outer
g : ℂ → ℂ,∂_I(g∘f) = (∂g/∂f)·∂_I f + (∂g/∂f̄)·∂_I f̄.dWirtingerCoord_comp_holomorphic_apply,dWirtingerAntiCoord_comp_holomorphic_apply— the single-term collapse
deriv g (f u) · ∂_I ffor holomorphicg.dWirtingerCoord_star_comp_apply,dWirtingerAntiCoord_star_comp_apply—conjugating the inner field swaps the operators,
∂_I f̄ = conj (∂̄_I f)and dual.§F — Schwarz's theorem for the coordinate operators
differentiableAt_dWirtingerCoord,differentiableAt_dWirtingerAntiCoord— on aC²field a first coordinate derivative is itself real-differentiable.dWirtingerCoord_dWirtingerAntiCoord_comm— Schwarz's theorem in coordinate form,∂_I ∂̄_J f = ∂̄_J ∂_I f, thePi.singlespecialisation of the foundationdWirtingerDir_dWirtingerAntiDir_comm.Private helpers (not exported)
smul_single_one,clinear_of_holomorphic,fderiv_coordProj,conjConfig_single_one,coordDiff_eq_add_neg,outerHolo_fderiv_restrictScalars,outerHolo_clinear,dWirtingerDir_one_eq_deriv,dWirtingerAntiDir_one_eq_zero.Reviewer map
Suggested reading order:
§i–§iii) — notation, the coordinate values, and the tableof contents.
restrictScalarsbridge feeding the holomorphic collapse.dWirtingerCoordrules, then thedWirtingerAntiCoordmirror andthe four Kronecker coordinate values.
theorem
dWirtingerCoord_dWirtingerAntiCoord_comm.Each holomorphic lemma is immediately followed by its anti-holomorphic dual, so the
two can be reviewed as a pair. Every rule is the
d = Pi.single I 1specialisation ofits
Basic.leananalogue from #1163.