Skip to content
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

Introduce convex function on real numbers #794

Closed

Conversation

yoshihiro503
Copy link
Contributor

Co-authored-by: Reynald Affeldt reynald.affeldt@aist.go.jp

Motivation for this change
Things done/to do
  • added corresponding entries in CHANGELOG_UNRELEASED.md
    (do not edit former entries, only append new ones, be careful:
    merge and rebase have a tendency to mess up CHANGELOG_UNRELEASED.md)
  • added corresponding documentation in the headers
Automatic note to reviewers

Read this Checklist and put a milestone if possible.

@yoshihiro503 yoshihiro503 changed the title Draft: Introduce conves Draft: Introduce convex Nov 4, 2022
@yoshihiro503 yoshihiro503 changed the title Draft: Introduce convex Draft: Introduce convex function on real numbers Nov 4, 2022
@yoshihiro503 yoshihiro503 force-pushed the yoshihirot503@convex branch 2 times, most recently from 2343aae to 3889af7 Compare November 18, 2022 02:44
@affeldt-aist affeldt-aist marked this pull request as draft November 22, 2022 02:07
@yoshihiro503 yoshihiro503 changed the title Draft: Introduce convex function on real numbers Introduce convex function on real numbers Dec 2, 2022
@yoshihiro503 yoshihiro503 reopened this Dec 2, 2022
@yoshihiro503 yoshihiro503 marked this pull request as ready for review December 2, 2022 08:38
Copy link
Contributor

@zstone1 zstone1 left a comment

Choose a reason for hiding this comment

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

Nice results. I've made comments about a couple generalizations, one regarding annoying endpoint issues, the other regarding generalizing to vector space ranges. I care more about the endpoints one mostly because it's much harder to fix later. Happy to work with you on that if that'd be helpful.

(* ^^^ probability ^^^ *)

Definition derivable_interval {R : numFieldType}(f : R -> R) (a b: R) :=
forall x, x \in `[a, b] -> derivable f x 1.
Copy link
Contributor

Choose a reason for hiding this comment

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

This definition misbehaves at the endpoints. In particular, it requires f to be be "differentiable from the left at a". That makes this definition rely on values of f outside [a,b]. One big consequence is characteristic functions like if x \in `[a,b] then 1 else 0 fails this definition, as its not derivable at a or b. For what it's worth, I had an analogous issue with realfun.v, see #752 for how I addressed it there. You'll need something slightly different here, though.

I've seen textbooks take these approaches:

  1. Demanding "continuity up the endpoints" is one approach
forall x, x \in `]a, b[ -> derivable f x 1.
/\
cvg (at_right a f^`()) /\ cvg (at_right b f^`())

or some variation of this. However, this implies some continuity of the derivative, which is maybe not ideal.
2. We could change the derivative to use a different topology. One way to do that is add an analog to the {within `[a,b], continuous f} notation of {within `[a,b], derivable f}. This would take limits only on the subspace topology.
3. Similarly, but specialized to working in R, it should be fine to define it like

forall x, x \in `]a, b[ -> derivable f x 1
/\
"differentiable from the right at b" /\ "differentiable from the left at a"

For some sensible notion of "left" and "right" derivative.

Section twice_derivable_convex.

Variable R : realType.
Variables (f : R -> R) (a b : R).
Copy link
Contributor

Choose a reason for hiding this comment

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

Where do we need the assumption that the range of f is R? If it's painless, generalizing to a vector space would be quite helpful for me. I'll need some stuff about convexity in both R and R^n for my work on space-filling curves, so I'm happy to have these results either way.

@affeldt-aist affeldt-aist mentioned this pull request Mar 13, 2023
2 tasks
@affeldt-aist affeldt-aist marked this pull request as draft March 13, 2023 17:17
@affeldt-aist
Copy link
Member

I opened PR #873 and moved the comments by @zstone1 there because it looked like maintainers do not have write access (not 100% sure though). I hope you don't mind moving the conversation there.

@affeldt-aist affeldt-aist added kind: duplicate wontfix/merge 🚫 We wont fix this issue/merge this PR, we will close it soon and removed kind: duplicate labels Mar 15, 2023
@CohenCyril CohenCyril mentioned this pull request Oct 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix/merge 🚫 We wont fix this issue/merge this PR, we will close it soon
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants