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

[Merged by Bors] - feat(Analysis/Calculus/{Iterated}Deriv/*): add lemmas on composition with negation #11173

Closed
wants to merge 3 commits into from

Conversation

MichaelStollBayreuth
Copy link
Collaborator

@MichaelStollBayreuth MichaelStollBayreuth commented Mar 5, 2024

This adds

lemma deriv_comp_neg (f : π•œ β†’ F) (a : π•œ) : deriv (fun x ↦ f (-x)) a = -deriv f (-a)

/-- A variant of `deriv_const_smul` without differentiability assumption when the scalar
multiplication is by field elements. -/
lemma deriv_const_smul' {f : π•œ β†’ F} {x : π•œ} {R : Type*} [Field R] [Module R F] [SMulCommClass π•œ R F]
    [ContinuousConstSMul R F] (c : R) :
    deriv (fun y ↦ c β€’ f y) x = c β€’ deriv f x

lemma iteratedDeriv_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ -(f x)) a = -(iteratedDeriv n f a)

lemma iteratedDeriv_comp_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ f (-x)) a = (-1 : π•œ) ^ n β€’ iteratedDeriv n f (-a)

which will come in handy in some future PRs on L-series.

See here on Zulip.


Open in Gitpod

@MichaelStollBayreuth MichaelStollBayreuth added awaiting-review The author would like community review of the PR awaiting-CI t-analysis Analysis (normed *, calculus) labels Mar 5, 2024
Mathlib/Analysis/Calculus/Deriv/Add.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/Calculus/Deriv/Add.lean Outdated Show resolved Hide resolved
@Ruben-VandeVelde Ruben-VandeVelde added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Mar 5, 2024
@MichaelStollBayreuth
Copy link
Collaborator Author

For the new lemmas on iterated derivatives to work, the file they are in needs to import deriv_comp_neg. So I have replaced the imports of ...Deriv.Add and ...Deriv.Comp by ...Deriv.Shift (which adds precisely three lemmas, one of which is the needed one). I hope this is OK.

@MichaelStollBayreuth MichaelStollBayreuth added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels Mar 5, 2024
@loefflerd
Copy link
Collaborator

LGTM

maintainer merge

Copy link

github-actions bot commented Mar 6, 2024

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

Copy link
Member

@jcommelin jcommelin 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 merge

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added ready-to-merge This PR has been sent to bors. and removed awaiting-review The author would like community review of the PR labels Mar 6, 2024
mathlib-bors bot pushed a commit that referenced this pull request Mar 6, 2024
…with negation (#11173)

This adds
```lean
lemma deriv_comp_neg (f : π•œ β†’ F) (a : π•œ) : deriv (fun x ↦ f (-x)) a = -deriv f (-a)

/-- A variant of `deriv_const_smul` without differentiability assumption when the scalar
multiplication is by field elements. -/
lemma deriv_const_smul' {f : π•œ β†’ F} {x : π•œ} {R : Type*} [Field R] [Module R F] [SMulCommClass π•œ R F]
    [ContinuousConstSMul R F] (c : R) :
    deriv (fun y ↦ c β€’ f y) x = c β€’ deriv f x

lemma iteratedDeriv_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ -(f x)) a = -(iteratedDeriv n f a)

lemma iteratedDeriv_comp_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ f (-x)) a = (-1 : π•œ) ^ n β€’ iteratedDeriv n f (-a)
```
which will come in handy in some future PRs on L-series.

See [here](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/424858837) on Zulip.
@mathlib-bors
Copy link

mathlib-bors bot commented Mar 6, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(Analysis/Calculus/{Iterated}Deriv/*): add lemmas on composition with negation [Merged by Bors] - feat(Analysis/Calculus/{Iterated}Deriv/*): add lemmas on composition with negation Mar 6, 2024
@mathlib-bors mathlib-bors bot closed this Mar 6, 2024
@mathlib-bors mathlib-bors bot deleted the MS_LSeries_deriv branch March 6, 2024 11:37
kbuzzard pushed a commit that referenced this pull request Mar 12, 2024
…with negation (#11173)

This adds
```lean
lemma deriv_comp_neg (f : π•œ β†’ F) (a : π•œ) : deriv (fun x ↦ f (-x)) a = -deriv f (-a)

/-- A variant of `deriv_const_smul` without differentiability assumption when the scalar
multiplication is by field elements. -/
lemma deriv_const_smul' {f : π•œ β†’ F} {x : π•œ} {R : Type*} [Field R] [Module R F] [SMulCommClass π•œ R F]
    [ContinuousConstSMul R F] (c : R) :
    deriv (fun y ↦ c β€’ f y) x = c β€’ deriv f x

lemma iteratedDeriv_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ -(f x)) a = -(iteratedDeriv n f a)

lemma iteratedDeriv_comp_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ f (-x)) a = (-1 : π•œ) ^ n β€’ iteratedDeriv n f (-a)
```
which will come in handy in some future PRs on L-series.

See [here](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/424858837) on Zulip.
dagurtomas pushed a commit that referenced this pull request Mar 22, 2024
…with negation (#11173)

This adds
```lean
lemma deriv_comp_neg (f : π•œ β†’ F) (a : π•œ) : deriv (fun x ↦ f (-x)) a = -deriv f (-a)

/-- A variant of `deriv_const_smul` without differentiability assumption when the scalar
multiplication is by field elements. -/
lemma deriv_const_smul' {f : π•œ β†’ F} {x : π•œ} {R : Type*} [Field R] [Module R F] [SMulCommClass π•œ R F]
    [ContinuousConstSMul R F] (c : R) :
    deriv (fun y ↦ c β€’ f y) x = c β€’ deriv f x

lemma iteratedDeriv_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ -(f x)) a = -(iteratedDeriv n f a)

lemma iteratedDeriv_comp_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ f (-x)) a = (-1 : π•œ) ^ n β€’ iteratedDeriv n f (-a)
```
which will come in handy in some future PRs on L-series.

See [here](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/424858837) on Zulip.
utensil pushed a commit that referenced this pull request Mar 26, 2024
…with negation (#11173)

This adds
```lean
lemma deriv_comp_neg (f : π•œ β†’ F) (a : π•œ) : deriv (fun x ↦ f (-x)) a = -deriv f (-a)

/-- A variant of `deriv_const_smul` without differentiability assumption when the scalar
multiplication is by field elements. -/
lemma deriv_const_smul' {f : π•œ β†’ F} {x : π•œ} {R : Type*} [Field R] [Module R F] [SMulCommClass π•œ R F]
    [ContinuousConstSMul R F] (c : R) :
    deriv (fun y ↦ c β€’ f y) x = c β€’ deriv f x

lemma iteratedDeriv_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ -(f x)) a = -(iteratedDeriv n f a)

lemma iteratedDeriv_comp_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ f (-x)) a = (-1 : π•œ) ^ n β€’ iteratedDeriv n f (-a)
```
which will come in handy in some future PRs on L-series.

See [here](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/424858837) on Zulip.
Louddy pushed a commit that referenced this pull request Apr 15, 2024
…with negation (#11173)

This adds
```lean
lemma deriv_comp_neg (f : π•œ β†’ F) (a : π•œ) : deriv (fun x ↦ f (-x)) a = -deriv f (-a)

/-- A variant of `deriv_const_smul` without differentiability assumption when the scalar
multiplication is by field elements. -/
lemma deriv_const_smul' {f : π•œ β†’ F} {x : π•œ} {R : Type*} [Field R] [Module R F] [SMulCommClass π•œ R F]
    [ContinuousConstSMul R F] (c : R) :
    deriv (fun y ↦ c β€’ f y) x = c β€’ deriv f x

lemma iteratedDeriv_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ -(f x)) a = -(iteratedDeriv n f a)

lemma iteratedDeriv_comp_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ f (-x)) a = (-1 : π•œ) ^ n β€’ iteratedDeriv n f (-a)
```
which will come in handy in some future PRs on L-series.

See [here](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/424858837) on Zulip.
callesonne pushed a commit that referenced this pull request Apr 22, 2024
…with negation (#11173)

This adds
```lean
lemma deriv_comp_neg (f : π•œ β†’ F) (a : π•œ) : deriv (fun x ↦ f (-x)) a = -deriv f (-a)

/-- A variant of `deriv_const_smul` without differentiability assumption when the scalar
multiplication is by field elements. -/
lemma deriv_const_smul' {f : π•œ β†’ F} {x : π•œ} {R : Type*} [Field R] [Module R F] [SMulCommClass π•œ R F]
    [ContinuousConstSMul R F] (c : R) :
    deriv (fun y ↦ c β€’ f y) x = c β€’ deriv f x

lemma iteratedDeriv_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ -(f x)) a = -(iteratedDeriv n f a)

lemma iteratedDeriv_comp_neg (n : β„•) (f : π•œ β†’ F) (a : π•œ) :
    iteratedDeriv n (fun x ↦ f (-x)) a = (-1 : π•œ) ^ n β€’ iteratedDeriv n f (-a)
```
which will come in handy in some future PRs on L-series.

See [here](https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews/topic/L-series/near/424858837) on Zulip.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintainer-merge ready-to-merge This PR has been sent to bors. t-analysis Analysis (normed *, calculus)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants