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
feat (analysis/normed_space): Define real inner product space #1248
Conversation
The original definition introduces an instance loop. See Zulip talks: https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/ring.20tactic.20works.20at.20one.20place.2C.20fails.20at.20another
Could you update to meet the new documentation requirements? (https://github.com/leanprover-community/mathlib/blob/master/docs/contribute/doc.md) |
Hi @robertylewis, I aimed to follow the new documentation requirements when I wrote the files. I think I must have did it incorrectly? The file |
Ah, I see. I think a header for |
I think we should have some discussion about a unified approach to real and complex normed/inner product/Hilbert spaces. Does something like this
get us off the ground? |
Prove the existence of orthogonal projections onto complete subspaces in an inner product space.
Update : orthogonal projections onto complete subspaces |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a good start on inner product spaces and projections!
src/algebra/ordered_field.lean
Outdated
@@ -181,12 +181,18 @@ namespace nat | |||
|
|||
variables {α : Type*} [linear_ordered_field α] | |||
|
|||
lemma inv_pos_of_nat [linear_ordered_field α] {n : ℕ} : 0 < ((n : α) + 1)⁻¹ := | |||
lemma inv_pos_of_nat {n : ℕ} : 0 < ((n : α) + 1)⁻¹ := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you get rid of the +1
and add the hypothesis n ≠ 0
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delay -- I was traveling for a few days. I am still not sure this is a great lemma to have in the library, and anyhow the name would be better as inv_of_nat_add_one_pos
, but I don't feel strongly about it. I'll merge now.
src/algebra/ordered_field.lean
Outdated
inv_pos $ add_pos_of_nonneg_of_pos n.cast_nonneg zero_lt_one | ||
|
||
lemma one_div_pos_of_nat [linear_ordered_field α] {n : ℕ} : 0 < 1 / ((n : α) + 1) := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same comment here and below
/--When b < Sup s, there is an element a in s with b < a, if s is nonempty and the order is | ||
a linear order.-/ | ||
/-- When b < Sup s, there is an element a in s with b < a, if s is nonempty and the order is | ||
a linear order. -/ | ||
lemma exists_lt_of_lt_cSup (_ : s ≠ ∅) (_ : b < Sup s) : ∃a∈s, b < a := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not give names to the hypotheses? That will guarantee that the theorem looks nice when users have to see it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More than fifty hypotheses in this file have no name. Maybe it's better to add names in another PR.
src/algebra/ordered_field.lean
Outdated
@@ -181,12 +181,18 @@ namespace nat | |||
|
|||
variables {α : Type*} [linear_ordered_field α] | |||
|
|||
lemma inv_pos_of_nat [linear_ordered_field α] {n : ℕ} : 0 < ((n : α) + 1)⁻¹ := | |||
lemma inv_pos_of_nat {n : ℕ} : 0 < ((n : α) + 1)⁻¹ := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delay -- I was traveling for a few days. I am still not sure this is a great lemma to have in the library, and anyhow the name would be better as inv_of_nat_add_one_pos
, but I don't feel strongly about it. I'll merge now.
…over-community#1248) * Inner product space * Change the definition of inner_product_space The original definition introduces an instance loop. See Zulip talks: https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/ring.20tactic.20works.20at.20one.20place.2C.20fails.20at.20another * Orthogonal Projection Prove the existence of orthogonal projections onto complete subspaces in an inner product space. * Fix names * small fixes
Define real inner product space and prove that it is a normed space. Next step is to define Hilbert space and prove the existence of orthogonal projection onto closed subspaces.
@amswerdlow defines complex inner product space in #840 . I think it may not be possible to treat the real and complex cases together, so I wrote a separate file.
The file
discriminant.lean
is the content of my previous PR #1245, and so it is temporary. People want me to do a bit more about solving quadratics, so I want to show the inner product space file for discussion while I work on quadratics.TO CONTRIBUTORS:
Make sure you have:
If this PR is related to a discussion on Zulip, please include a link in the discussion.
For reviewers: code review check list