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/normed_space/operator_norm): add 2 new versions of op_norm_le_* #15417

Closed
wants to merge 3 commits into from

Conversation

urkud
Copy link
Member

@urkud urkud commented Jul 16, 2022

  • continuous_linear_map.op_norm_le_bound' requires an estimate on
    ∥f x∥ for any x, ∥x∥ ≠ 0;
  • continuous_linear_map.op_norm_le_of_unit_norm works only for real
    linear map and requires that ∥f x∥ ≤ C for all x, ∥x∥ = 1.

Open in Gitpod

…norm_le_*`

* `continuous_linear_map.op_norm_le_bound'` requires an estimate on
  `∥f x∥` for any `x`, `∥x∥ ≠ 0`;
* `continuous_linear_map.op_norm_le_of_unit_norm` works only for real
  linear map and requires that `∥f x∥ ≤ C` for all `x`, `∥x∥ = 1`.
@urkud urkud 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. labels Jul 16, 2022
Copy link
Member

@eric-wieser eric-wieser left a comment

Choose a reason for hiding this comment

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

Can you add the nnnorm versions too?

@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 Jul 16, 2022
@urkud
Copy link
Member Author

urkud commented Jul 18, 2022

@eric-wieser Done.

Copy link
Member

@hrmacbeth hrmacbeth left a comment

Choose a reason for hiding this comment

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

bors d+

/-- For a continuous real linear map `f`, if one controls the norm of every `f x`, `∥x∥ = 1`, then
one controls the norm of `f`. -/
lemma op_norm_le_of_unit_norm [normed_space ℝ E] [normed_space ℝ F] {f : E →L[ℝ] F} {C : ℝ}
(hC : 0 ≤ C) (hf : ∀ x, ∥x∥ = 1 → ∥f x∥ ≤ C) : ∥f∥ ≤ C :=
Copy link
Member

Choose a reason for hiding this comment

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

I think that the file normed_space.is_R_or_C precisely exists for the purpose of having is_R_or_C-scalars-specific facts about normed spaces. Can you move to there, generalize to scalars is_R_or_C, and rewrite to use the lemma norm_smul_inv_norm already existing there? Here's a first version, you can probably golf it further :)

lemma op_norm_le_of_unit_norm  {f : E →L[𝕜] F} {C : ℝ}
  (hC : 0 ≤ C) (hf : ∀ x, ∥x∥ = 1 → ∥f x∥ ≤ C) : ∥f∥ ≤ C :=
begin
  refine f.op_norm_le_bound' hC (λ x hx, _),
  have H₁ : ∥((∥x∥⁻¹ : 𝕜) • x)∥ = 1 := norm_smul_inv_norm (by simpa using hx),
  have H₂ := hf _ H₁,
  rwa [map_smul, norm_smul, norm_inv, is_R_or_C.norm_coe_norm, ← div_eq_inv_mul, div_le_iff] at H₂,
  exact (norm_nonneg x).lt_of_ne' hx,
end

Same for the nnnorm version.

(I just noticed that actually, over in that file, there is a lemma op_norm_bound_of_ball_bound which looks like it should work for a nondiscrete normed field, but that's a discussion for another day ...)

Copy link
Member Author

@urkud urkud Jul 19, 2022

Choose a reason for hiding this comment

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

A normed space over an is_R_or_C is a normed space over reals, isn't it? Or it needs a letI? Also, your proof needs a normed_group while my proof works for a semi_normed_group.

If I generalize it to is_R_or_C, then the field should be an explicit argument in the lemma. Am I right?

@bors
Copy link

bors bot commented Jul 19, 2022

✌️ urkud can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@leanprover-community-bot-assistant leanprover-community-bot-assistant added delegated The PR author may merge after reviewing final suggestions. and removed awaiting-review The author would like community review of the PR labels Jul 19, 2022
@urkud
Copy link
Member Author

urkud commented Jul 19, 2022

@hrmacbeth I'm going to merge this PR as is. The first time we'll need it for is_R_or_C, we can add a version taking an explicit (k : Type) [is_R_or_C k].

@urkud
Copy link
Member Author

urkud commented Jul 19, 2022

bors merge

@github-actions github-actions bot added the ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) label Jul 19, 2022
bors bot pushed a commit that referenced this pull request Jul 19, 2022
…norm_le_*` (#15417)

* `continuous_linear_map.op_norm_le_bound'` requires an estimate on
  `∥f x∥` for any `x`, `∥x∥ ≠ 0`;
* `continuous_linear_map.op_norm_le_of_unit_norm` works only for real
  linear map and requires that `∥f x∥ ≤ C` for all `x`, `∥x∥ = 1`.
@bors
Copy link

bors bot commented Jul 19, 2022

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(analysis/normed_space/operator_norm): add 2 new versions of op_norm_le_* [Merged by Bors] - feat(analysis/normed_space/operator_norm): add 2 new versions of op_norm_le_* Jul 19, 2022
@bors bors bot closed this Jul 19, 2022
@bors bors bot deleted the YK-op-norm-le branch July 19, 2022 21:08
joelriou pushed a commit that referenced this pull request Jul 23, 2022
…norm_le_*` (#15417)

* `continuous_linear_map.op_norm_le_bound'` requires an estimate on
  `∥f x∥` for any `x`, `∥x∥ ≠ 0`;
* `continuous_linear_map.op_norm_le_of_unit_norm` works only for real
  linear map and requires that `∥f x∥ ≤ C` for all `x`, `∥x∥ = 1`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated The PR author may merge after reviewing final suggestions. ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants