Skip to content
This repository has been archived by the owner on Jul 24, 2024. It is now read-only.

[Merged by Bors] - feat(analysis/special_functions/exponential): derivative of u ↦ exp 𝕂 (u β€’ x) #19062

Closed
wants to merge 11 commits into from

Conversation

eric-wieser
Copy link
Member

Revived from an old branch of @ADedecker, golfed using new lemmas that I added in the meantime.


Open in Gitpod

@eric-wieser eric-wieser added awaiting-review The author would like community review of the PR awaiting-CI The author would like to see what CI has to say before doing more work. t-analysis Analysis (normed *, calculus) labels May 22, 2023
@eric-wieser eric-wieser requested a review from ADedecker May 22, 2023 22:05
@eric-wieser
Copy link
Member Author

eric-wieser commented May 22, 2023

@ADedecker said

I have a last question, did you check whether has_fderiv_at_exp_of_mem_ball could be made a consequence of this version? If you prefer not to change previous files because of the port that's fine of course, but it would be nice to at least give it a try.

I'm pretty sure it can be, and now they're in the same file. My only hesitation is that it feels like I should be deducing them in the other direction!

@ADedecker
Copy link
Member

@ADedecker said

I have a last question, did you check whether has_fderiv_at_exp_of_mem_ball could be made a consequence of this version? If you prefer not to change previous files because of the port that's fine of course, but it would be nice to at least give it a try.

I'm pretty sure it can be, and now they're in the same file. My only hesitation is that it feels like I should be deducing them in the other direction!

That's precisely why the algebra.adjoin approach feels morally better! I guess it's not that bad if you see u ↦ u β€’ x as some kind of inclusion map, but that's probably a bit far-fetched.

I think it's completely fine to leave it as is, but I'll leave a comment along the lines of:

We can't deduce this from `has_fderiv_at_exp_of_lt_radius` because we don't assume that `𝔹` is commutative.
We could actually go the other way around and deduce `has_fderiv_at_exp_of_lt_radius` from this,
but this would be a bit over-engineered so we just do both proofs separately.

@ADedecker
Copy link
Member

I'll have a closer look tomorrow, feel free to ping me on Zulip if I forget, it would be nice to stay ahead of the porting tide.

@github-actions github-actions bot removed the awaiting-CI The author would like to see what CI has to say before doing more work. label May 22, 2023
@eric-wieser
Copy link
Member Author

eric-wieser commented May 23, 2023

I attempted the adjoin version as follows:

instance subalgebra.normed_algebra' {R' : Type*} {R : Type*} {A : Type*} [comm_ring R]
  [semi_normed_ring A]
  [algebra R A] (S : subalgebra R A) [normed_field R'] [algebra R' R]
  [normed_algebra R' A] [is_scalar_tower R' R A] : normed_algebra R' β†₯S :=
@normed_algebra.induced _ R' S A _ (subring_class.to_ring S) S.algebra' _ _ _
  (S.val.restrict_scalars R')

instance elemental_algebra.normed_comm_ring (R) {A} [comm_ring R] [normed_ring A] [algebra R A] (a : A):
  normed_comm_ring (algebra.elemental_algebra R a) :=
{ ..algebra.elemental_algebra.comm_ring,
  ..subalgebra.normed_ring  (algebra.elemental_algebra R a) }

instance elemental_algebra.is_closed (R) {A} [comm_ring R] [ring A] [algebra R A]
  [uniform_space A] [topological_ring A] [complete_space A] (a : A):
  complete_space (algebra.elemental_algebra R a) :=
is_closed.complete_space_coe $ subalgebra.is_closed_topological_closure _

lemma has_fderiv_at_exp_smul_const_of_mem_ball
  (x : 𝔹) (t : 𝔸) (htx : t β€’ x ∈ emetric.ball (0 : 𝔹) (exp_series 𝕂 𝔹).radius) :
  has_fderiv_at (Ξ» u : 𝔸, exp 𝕂 (u β€’ x))
    (exp 𝕂 (t β€’ x) β€’ (1 : 𝔸 β†’L[𝕂] 𝔸).smul_right x) t :=
begin
  let 𝔹' := (algebra.elemental_algebra 𝔸 x),
  letI : normed_comm_ring 𝔹' := elemental_algebra.normed_comm_ring 𝔸 x,
  letI : normed_algebra 𝕂 𝔹' := subalgebra.normed_algebra' _,
  letI : is_closed ↑𝔹' := subalgebra.is_closed_topological_closure _,
  let x' : 𝔹' := t β€’ ⟨x, algebra.self_mem_elemental_algebra _ _⟩,
  let s := (exp_series 𝕂 𝔹'),
  have hx' : x' ∈ emetric.ball (0 : 𝔹') (exp_series 𝕂 𝔹').radius,
  { rw [mem_emetric_ball_zero_iff] at htx ⊒,
    refine htx.trans_le _,
    let coeL : 𝔹' β†’L[𝕂] 𝔹 := (𝔹'.to_submodule.subtypeL : _).restrict_scalars 𝕂,
    have := (exp_series 𝕂 𝔹').radius_le_radius_continuous_linear_map_comp coeL,
    sorry },
  have := has_fderiv_at_exp_of_mem_ball hx',
  sorry
end

I don't know if the first sorry is true. The second one probably is, but looks annoying.

@eric-wieser
Copy link
Member Author

It would be nice to stay ahead of the porting tide.

I've opted for leaving a TODO comment about the alternative proof strategy above, so as to not fall too far behind. A reasonable number of the things we'd need for the subalgebra proof are missing.

@ADedecker
Copy link
Member

A reasonable number of the things we'd need for the subalgebra proof are missing.

I was expecting that. Thanks for giving it a try anyway!

@kim-em kim-em added the wait-requested-on #port-comments requests that a port waits on this PR. label May 24, 2023
@eric-wieser
Copy link
Member Author

eric-wieser commented May 24, 2023

I think it's completely fine to leave it as is, but I'll leave a comment along the lines of:

Is the existing comment sufficient, or do you want something more prominent? Feel free to suggest something in the diff.

Co-authored-by: Anatole Dedecker <[email protected]>
Copy link
Member

@ADedecker ADedecker left a comment

Choose a reason for hiding this comment

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

Thanks!

maintainer merge

@github-actions
Copy link

πŸš€ Pull request has been placed on the maintainer queue by ADedecker.

Copy link
Collaborator

@dupuisf dupuisf left a comment

Choose a reason for hiding this comment

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

Thanks!

bors r+

@leanprover-community-bot-assistant leanprover-community-bot-assistant added ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) and removed awaiting-review The author would like community review of the PR labels May 25, 2023
bors bot pushed a commit that referenced this pull request May 25, 2023
…𝕂 (u β€’ x)` (#19062)

Revived from an old branch of @ADedecker, golfed using new lemmas that I added in the meantime.
@bors
Copy link

bors bot commented May 25, 2023

Pull request successfully merged into master.

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot changed the title feat(analysis/special_functions/exponential): derivative of u ↦ exp 𝕂 (u β€’ x) [Merged by Bors] - feat(analysis/special_functions/exponential): derivative of u ↦ exp 𝕂 (u β€’ x) May 25, 2023
@bors bors bot closed this May 25, 2023
@bors bors bot deleted the eric-wieser/deriv-exp-prework branch May 25, 2023 21:34
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) t-analysis Analysis (normed *, calculus) wait-requested-on #port-comments requests that a port waits on this PR.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants