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] - refactor(linear_algebra/eigenspace): refactor exists_eigenvalue #7345

Closed
wants to merge 12 commits into from

Conversation

semorrison
Copy link
Collaborator

@semorrison semorrison commented Apr 23, 2021

We replace the proof of exists_eigenvalue with the more general fact:

/--
Every element `f` in a nontrivial finite-dimensional algebra `A`
over an algebraically closed field `K`
has non-empty spectrum:
that is, there is some `c : K` so `f - c β€’ 1` is not invertible.
-/
lemma exists_spectrum_of_is_alg_closed_of_finite_dimensional (π•œ : Type*) [field π•œ] [is_alg_closed π•œ]
  {A : Type*} [nontrivial A] [ring A] [algebra π•œ A] [I : finite_dimensional π•œ A] (f : A) :
  βˆƒ c : π•œ, Β¬ is_unit (f - algebra_map π•œ A c) := ...

We can then use this fact to prove Schur's lemma.


Open in Gitpod

@github-actions github-actions bot added the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Apr 23, 2021
@github-actions github-actions bot added the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Apr 23, 2021
@github-actions github-actions bot removed the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Apr 24, 2021
@Vierkantor Vierkantor self-requested a review April 26, 2021 09:13
@github-actions github-actions bot added the merge-conflict Please `git merge origin/master` then a bot will remove this label. label May 1, 2021
@semorrison semorrison removed the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label May 1, 2021
@github-actions
Copy link

github-actions bot commented May 1, 2021

πŸŽ‰ Great news! Looks like all the dependencies have been resolved:

πŸ’‘ To add or remove a dependency please update this issue/PR description.

Brought to you by Dependent Issues (:robot: ). Happy coding!

@github-actions github-actions bot removed the merge-conflict Please `git merge origin/master` then a bot will remove this label. label May 1, 2021
@semorrison semorrison added the awaiting-review The author would like community review of the PR label May 1, 2021
@bors
Copy link

bors bot commented May 2, 2021

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

Copy link
Collaborator

@Vierkantor Vierkantor 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 d+

src/data/multiset/basic.lean Outdated Show resolved Hide resolved
@@ -56,13 +56,20 @@ def eigenspace (f : End R M) (ΞΌ : R) : submodule R M :=

/-- A nonzero element of an eigenspace is an eigenvector. (Def 5.7 of [axler2015]) -/
def has_eigenvector (f : End R M) (ΞΌ : R) (x : M) : Prop :=
x β‰  0 ∧ x ∈ eigenspace f ΞΌ
x ∈ eigenspace f ΞΌ ∧ x β‰  0
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm curious about the decision to switch this around. (Not that I have a reason to prefer it the old way.)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

It ... appears to be solely so that I can write
exact has_eigenvalue_of_has_eigenvector (exists_mem_ne_zero_of_ne_bot nu).some_spec
below, without having to flip over what I pull out of exists_mem_ne_zero_of_ne_bot.

One the one hand: why bother making this small change that affects several files? On the other hand: the changes required are all neutral, so why not?

@Vierkantor Vierkantor 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 May 2, 2021
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@semorrison
Copy link
Collaborator Author

bors merge

bors bot pushed a commit that referenced this pull request May 2, 2021
We replace the proof of `exists_eigenvalue` with the more general fact:
```
/--
Every element `f` in a nontrivial finite-dimensional algebra `A`
over an algebraically closed field `K`
has non-empty spectrum:
that is, there is some `c : K` so `f - c β€’ 1` is not invertible.
-/
lemma exists_spectrum_of_is_alg_closed_of_finite_dimensional (π•œ : Type*) [field π•œ] [is_alg_closed π•œ]
  {A : Type*} [nontrivial A] [ring A] [algebra π•œ A] [I : finite_dimensional π•œ A] (f : A) :
  βˆƒ c : π•œ, Β¬ is_unit (f - algebra_map π•œ A c) := ...
```

We can then use this fact to prove Schur's lemma.



Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@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 May 2, 2021
@bors
Copy link

bors bot commented May 2, 2021

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title refactor(linear_algebra/eigenspace): refactor exists_eigenvalue [Merged by Bors] - refactor(linear_algebra/eigenspace): refactor exists_eigenvalue May 2, 2021
@bors bors bot closed this May 2, 2021
@bors bors bot deleted the exists_spectrum branch May 2, 2021 18:59
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

2 participants