Skip to content

instead of lspace_master #1624

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

affeldt-aist
Copy link
Member

@affeldt-aist affeldt-aist commented May 15, 2025

Motivation for this change

Closes #1506

I wasn't able to rebase, hence the new PR closing the old one. @hoheinzollern @CohenCyril @proux01 @t6s

Checklist
  • added corresponding entries in CHANGELOG_UNRELEASED.md
  • added corresponding documentation in the headers

Reference: How to document

Merge policy

As a rule of thumb:

  • PRs with several commits that make sense individually and that
    all compile are preferentially merged into master.
  • PRs with disorganized commits are very likely to be squash-rebased.
Reminder to reviewers

@affeldt-aist affeldt-aist added this to the 1.12.0 milestone May 15, 2025
@affeldt-aist affeldt-aist added the enhancement ✨ This issue/PR is about adding new features enhancing the library label May 15, 2025
@affeldt-aist
Copy link
Member Author

The last commit renames the HB structure Lfun to Lfunction. There is no impact
on scripts but lets us write \in Lfun instead of \in lfun as we did so far.
The type remains LfunType (this is similar to the contraction of zmodType for Zmodule).

@affeldt-aist affeldt-aist force-pushed the lspace_master2 branch 2 times, most recently from a7dcd80 to 7a253c7 Compare May 29, 2025 10:40
Copy link
Member

@CohenCyril CohenCyril left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the issues about the conjugate should be solved before merging.


Local Notation "'N_ p [ f ]" := (Lnorm mu p f).

Lemma Lnorm1 f : 'N_1[f] = \int[mu]_x `|f x|%:E.
Lemma Lnorm0 p : 1 <= p -> 'N_p[cst 0] = 0.
Copy link
Member

@CohenCyril CohenCyril May 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect this would be better, and perhaps

Suggested change
Lemma Lnorm0 p : 1 <= p -> 'N_p[cst 0] = 0.
Lemma Lnorm0 p : p != 0 -> 'N_p[cst 0] = 0.

Or even without condition when we enable (mu (f @^-1` (setT `\ 0%R))) when p = 0 (which looks like a saner convention than the current one)?
No need to fix this right away, but maybe open an issue.

Comment on lines 198 to 206
match p with
| r%:E => [get q : R | r^-1 + q^-1 = 1]%:E
| +oo => 1
| -oo => 0
end.

Lemma conjugateE :
conjugate = if p is r%:E then (r * (r-1)^-1)%:E
else if p == +oo then 1 else 0.
Copy link
Member

@CohenCyril CohenCyril May 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those two look a bit awkward, I would posit the other way around, without match and making it a bijection of extended reals relating $-\infty$ and $0$ (both ways):

Suggested change
match p with
| r%:E => [get q : R | r^-1 + q^-1 = 1]%:E
| +oo => 1
| -oo => 0
end.
Lemma conjugateE :
conjugate = if p is r%:E then (r * (r-1)^-1)%:E
else if p == +oo then 1 else 0.
if p == +oo then 1 else if p == 0 then -oo else p / (p - 1).
Local Notation "p^*" := holder_conjugate.
Lemma hoelder_conjugate_eq1 : p > -oo -> p^-1 + p^*^-1 = 1.

and add lemmas:

Lemma hoelder_conjugate1 : 1^* = +oo.
Lemma hoelder_conjugate2 : 2^* = 2.
Lemma hoelder_conjugatey : +oo^* = 1.

Lemma hoelder_conjugateP p q : p > -oo -> p^-1 + q^-1 = 1 <-> q = p^*.

Lemma hoelder_conjugate0 : 0^* = -oo.
Lemma hoelder_conjugateNy : -oo^* = 0.

Lemma hoelder_conjugateK : involutive hoelder_conjugate.

Lemma hoelder_Mconjugate : p > -oo -> p != 0 -> p * p^* = p + p^*.
Lemma hoelder_div_conjugate : p > -oo -> p != 0 -> p / p^* = p - 1.
Lemma hoelder_conjugate_div : p > -oo -> p != 0 -> p^* / p = p^* - 1.

Local Open Scope classical_set_scope.
Local Open Scope ereal_scope.

Definition conjugate :=
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Definition conjugate :=
Definition hoelder_conjugate :=

Comment on lines +650 to +697
#[deprecated(since="mathcomp-analysis 1.10.0",
note="use `minkowski_EFin` or `eminkowski` instead")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure there are already users... is it worth doing a two-stage deprecation notice?

Comment on lines +650 to +697
#[deprecated(since="mathcomp-analysis 1.10.0",
note="use `minkowski_EFin` or `eminkowski` instead")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#[deprecated(since="mathcomp-analysis 1.10.0",
note="use `minkowski_EFin` or `eminkowski` instead")]
#[deprecated(since="mathcomp-analysis 1.10.0",
note="use `minkowski_EFin` or `minkowski` instead")]

Qed.

(* TODO: rename to minkowski after version 1.12.0 *)
Lemma eminkowski f g (p : \bar R) :
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Lemma eminkowski f g (p : \bar R) :
Lemma minkowski f g (p : \bar R) :

Indeed the functions f anf g are still with values in R while they could be in \bar R.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure there are already users... is it worth doing a two-stage deprecation notice?

@@ -122,7 +229,7 @@ Let measurableT_comp_powR f p :
measurable_fun [set: T] f -> measurable_fun setT (fun x => f x `^ p)%R.
Proof. exact: (@measurableT_comp _ _ _ _ _ _ (@powR R ^~ p)). Qed.

Local Notation "'N_ p [ f ]" := (Lnorm mu p f).
Local Notation "'N_ p [ f ]" := (Lnorm mu p (EFin \o f)).
Copy link
Member

@CohenCyril CohenCyril May 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lemmas relying on this specialization should be future proof for when the restriction on the argument of the norm is lifted. i.e. when this become Local Notation "'N_ p [ f ]" := (Lnorm mu p f)., in particular eminkowski might be a misnommer (see comment below).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ✨ This issue/PR is about adding new features enhancing the library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants