Skip to content

feat: Schoenberg helpers + ConvolutionSemigroup structure#3

Merged
slink merged 2 commits intomainfrom
worktree-agent-a8662512
Mar 1, 2026
Merged

feat: Schoenberg helpers + ConvolutionSemigroup structure#3
slink merged 2 commits intomainfrom
worktree-agent-a8662512

Conversation

@slink
Copy link
Owner

@slink slink commented Mar 1, 2026

Summary

Commit 1 (Unit C): Fix sign convention in schoenberg_exp_of_cnd and add 5 helper lemmas

  • Fix: exp(t*ψ) is PD (not exp(-t*ψ)) matching project's CND convention
  • Add: isPositiveDefinite_one, _smul, _pow, _add, _exp_mul_sub_one (all fully proved)

Commit 2 (Unit E): Add ConvolutionSemigroup structure

  • Define ConvolutionSemigroup capturing {μ_t} with charFun(μ_t)(ξ) = exp(t·ψ(ξ))
  • Prove semigroup law (charFun_mul)
  • Construct from CND exponent via Schoenberg + Bochner (convolutionSemigroupOfCND)
  • Refactor levyKhintchine_of_cnd to use semigroup, isolating sorry to measure differentiation

Sorry audit

  • schoenberg_exp_of_cnd (line 647) — needs PSD matrix characterization
  • levyKhintchine_of_cnd (line 737) — measure differentiation (research-level)

Test plan

  • lake build succeeds (full project, 6148 jobs)
  • No new sorries introduced
  • ConvolutionSemigroup compiles and is used in proof

slink added 2 commits March 1, 2026 12:19
Fix sign error in schoenberg_exp_of_cnd to match the project's CND
convention (form >= 0 for zero-sum weights). With this convention,
exp(t*psi) is PD, not exp(-t*psi).

Add five fully proved helper lemmas for positive definite functions:
- isPositiveDefinite_one (constant 1 is PD)
- isPositiveDefinite_smul (nonneg scalar * PD is PD)
- isPositiveDefinite_pow (PD^k is PD via Schur product)
- isPositiveDefinite_add (sum of PD is PD)
- isPositiveDefinite_exp_mul_sub_one (exp(t(phi-1)) is PD)

Update downstream levyKhintchine_of_cnd for corrected sign.
Define ConvolutionSemigroup structure capturing the family {μ_t} of
probability measures with charFun(μ_t)(ξ) = exp(t·ψ(ξ)). Prove the
semigroup law (charFun_mul) and construct the semigroup from a CND
exponent via Schoenberg + Bochner (convolutionSemigroupOfCND).

Refactor levyKhintchine_of_cnd to use the semigroup structure,
isolating the remaining sorry to the measure differentiation step
(extracting the Lévy triple from the semigroup at t→0).
@slink slink changed the title feat: add Schoenberg helper lemmas and fix CND sign convention feat: Schoenberg helpers + ConvolutionSemigroup structure Mar 1, 2026
@slink slink merged commit af69339 into main Mar 1, 2026
2 checks passed
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.

1 participant