-
Notifications
You must be signed in to change notification settings - Fork 92
Eigenvalues, eigenvectors, and eigenspaces of linear endomaps #1765
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
Open
lowasser
wants to merge
47
commits into
UniMath:master
Choose a base branch
from
lowasser:eigenvectors
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 34 commits
Commits
Show all changes
47 commits
Select commit
Hold shift + click to select a range
c78eb29
Linear transformations
lowasser 524d30b
Eigenspaces
lowasser feee9d0
Fix duplicated Agda pointer in concept
lowasser 9c912c5
make pre-commit
lowasser b1b4bd7
Merge branch 'linear-transformations' into eigenvectors
lowasser c03a2b2
Fix links
lowasser dfc7491
Merge branch 'master' into linear-transformations
lowasser d309ab4
Merge branch 'master' into linear-transformations
lowasser 476ead8
Merge branch 'master' into linear-transformations
lowasser de3a82a
Merge branch 'linear-transformations' of github.com:lowasser/agda-uni…
lowasser bd1d8df
Merge branch 'master' into linear-transformations
lowasser 627eb1d
Progress
lowasser e74d635
Merge branch 'master' of github.com:UniMath/agda-unimath
lowasser ddc4a00
Merge branch 'master' into linear-transformations
lowasser b8b5a6f
Merge branch 'linear-transformations' of github.com:lowasser/agda-uni…
lowasser 265125b
Merge branch 'master' into linear-transformations
lowasser 7b2df6a
Back out
lowasser 8bf1a77
Merge branch 'master' into linear-transformations
lowasser f72cc5d
Merge branch 'master' into linear-transformations
lowasser 29170e5
Apply suggestions from code review
lowasser e75270e
Merge branch 'master' into linear-transformations
lowasser 2d91198
Update
lowasser 9609e14
make pre-commit
lowasser 38246bc
Merge branch 'linear-transformations' into eigenvectors
lowasser 0837bab
Merge
lowasser 112c5c6
Apply suggestions from code review
fredrik-bakke 78b1e42
Update
lowasser 55dd26a
Merge branch 'master' into linear-transformations
lowasser d5cbc48
Merge branch 'linear-transformations' of github.com:lowasser/agda-uni…
lowasser be7a802
Update comments
lowasser 8d6b293
Merge branch 'linear-transformations' into eigenvectors
lowasser ec34141
Merge branch 'master' into eigenvectors
lowasser 68f6892
Update
lowasser 2bf44d8
Merge branch 'master' into eigenvectors
lowasser a42bd55
Apply suggestions from code review
lowasser 59eb0bf
Add an introductory bit about spectral theory.
lowasser c61bf83
Merge branch 'master' into eigenvectors
lowasser 78604b0
Merge branch 'master' into eigenvectors
lowasser 9b2dc82
Merge branch 'eigenvectors' of github.com:lowasser/agda-unimath into …
lowasser dbbece2
Apply suggestions from code review
lowasser d54ca40
Merge branch 'master' into eigenvectors
lowasser 8f76dac
Progress
lowasser 955cd60
Progress
lowasser 56fd615
Merge branch 'master' into eigenvectors
lowasser 32311b0
Fix
lowasser 5821179
Progress
lowasser 084a53e
Fix
lowasser File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # Spectral theory | ||
|
|
||
| ```agda | ||
| module spectral-theory where | ||
|
|
||
| open import spectral-theory.eigenmodules-linear-endomaps-left-modules-commutative-rings public | ||
| open import spectral-theory.eigenspaces-linear-endomaps-vector-spaces public | ||
| open import spectral-theory.eigenvalues-eigenelements-linear-endomaps-left-modules-commutative-rings public | ||
| open import spectral-theory.eigenvalues-eigenelements-linear-endomaps-left-modules-rings public | ||
| open import spectral-theory.eigenvalues-eigenvectors-linear-endomaps-vector-spaces public | ||
| ``` |
204 changes: 204 additions & 0 deletions
204
...ral-theory/eigenmodules-linear-endomaps-left-modules-commutative-rings.lagda.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,204 @@ | ||
| # Eigenmodules of linear transformations of left modules over commutative rings | ||
|
|
||
| ```agda | ||
| module spectral-theory.eigenmodules-linear-endomaps-left-modules-commutative-rings where | ||
| ``` | ||
|
|
||
| <details><summary>Imports</summary> | ||
|
|
||
| ```agda | ||
| open import commutative-algebra.commutative-rings | ||
|
|
||
| open import foundation.action-on-identifications-binary-functions | ||
| open import foundation.action-on-identifications-functions | ||
| open import foundation.dependent-pair-types | ||
| open import foundation.identity-types | ||
| open import foundation.universe-levels | ||
|
|
||
| open import linear-algebra.left-modules-commutative-rings | ||
| open import linear-algebra.left-submodules-commutative-rings | ||
| open import linear-algebra.linear-endomaps-left-modules-commutative-rings | ||
| open import linear-algebra.subsets-left-modules-commutative-rings | ||
|
|
||
| open import spectral-theory.eigenvalues-eigenelements-linear-endomaps-left-modules-commutative-rings | ||
| ``` | ||
|
|
||
| </details> | ||
|
|
||
| ## Idea | ||
|
|
||
| Given a | ||
| [linear endomap](linear-algebra.linear-endomaps-left-modules-commutative-rings.md) | ||
| `f` of a [left module](linear-algebra.left-modules-commutative-rings.md) `M` | ||
| over a [commutative ring](commutative-algebra.commutative-rings.md) `R`, the | ||
| {{#concept "eigenmodule" Disambiguation="of a linear endomap of a left module over a commutative ring" Agda=eigenmodule-linear-endo-left-module-Commutative-Ring}} | ||
| of `r : R` is the | ||
| [subset](linear-algebra.subsets-left-modules-commutative-rings.md) of elements | ||
| of `M` with the | ||
| [eigenvalue](spectral-theory.eigenvalues-eigenelements-linear-endomaps-left-modules-commutative-rings.md) | ||
| `r`. This subset is a | ||
| [submodule](linear-algebra.left-submodules-commutative-rings.md) of `M`. | ||
|
|
||
| ## Definition | ||
|
|
||
| ```agda | ||
| module _ | ||
| {l1 l2 : Level} | ||
| (R : Commutative-Ring l1) | ||
| (M : left-module-Commutative-Ring l2 R) | ||
| (f : linear-endo-left-module-Commutative-Ring R M) | ||
| (r : type-Commutative-Ring R) | ||
| where | ||
|
|
||
| subset-eigenmodule-linear-endo-left-module-Commutative-Ring : | ||
| subset-left-module-Commutative-Ring l2 R M | ||
| subset-eigenmodule-linear-endo-left-module-Commutative-Ring = | ||
| is-eigenelement-eigenvalue-prop-linear-endo-left-module-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( f) | ||
| ( r) | ||
| ``` | ||
|
|
||
| ## Properties | ||
|
|
||
| ### The subset associated with an eigenmodule is closed under addition | ||
|
|
||
| ```agda | ||
| module _ | ||
| {l1 l2 : Level} | ||
| (R : Commutative-Ring l1) | ||
| (M : left-module-Commutative-Ring l2 R) | ||
| (f : linear-endo-left-module-Commutative-Ring R M) | ||
| (r : type-Commutative-Ring R) | ||
| where | ||
|
|
||
| abstract | ||
| is-closed-under-addition-subset-eigenmodule-linear-endo-left-module-Commutative-Ring : | ||
| is-closed-under-addition-subset-left-module-Commutative-Ring R M | ||
| ( subset-eigenmodule-linear-endo-left-module-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( f) | ||
| ( r)) | ||
| is-closed-under-addition-subset-eigenmodule-linear-endo-left-module-Commutative-Ring | ||
| x y fx=rx fy=ry = | ||
| equational-reasoning | ||
| map-linear-endo-left-module-Commutative-Ring R M f | ||
| ( add-left-module-Commutative-Ring R M x y) | ||
| = | ||
| add-left-module-Commutative-Ring R M | ||
| ( map-linear-endo-left-module-Commutative-Ring R M f x) | ||
| ( map-linear-endo-left-module-Commutative-Ring R M f y) | ||
| by | ||
| is-additive-map-linear-endo-left-module-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( f) | ||
| ( x) | ||
| ( y) | ||
| = | ||
| add-left-module-Commutative-Ring R M | ||
| ( mul-left-module-Commutative-Ring R M r x) | ||
| ( mul-left-module-Commutative-Ring R M r y) | ||
| by ap-binary (add-left-module-Commutative-Ring R M) fx=rx fy=ry | ||
| = | ||
| mul-left-module-Commutative-Ring R M | ||
| ( r) | ||
| ( add-left-module-Commutative-Ring R M x y) | ||
| by | ||
| inv (left-distributive-mul-add-left-module-Commutative-Ring R M r x y) | ||
| ``` | ||
|
|
||
| ### The subset associated with an eigenmodule is closed under scalar multiplication | ||
|
|
||
| ```agda | ||
| module _ | ||
| {l1 l2 : Level} | ||
| (R : Commutative-Ring l1) | ||
| (M : left-module-Commutative-Ring l2 R) | ||
| (f : linear-endo-left-module-Commutative-Ring R M) | ||
| (r : type-Commutative-Ring R) | ||
| where | ||
|
|
||
| abstract | ||
| is-closed-under-scalar-multiplication-subset-eigenmodule-linear-endo-left-module-Commutative-Ring : | ||
| is-closed-under-scalar-multiplication-subset-left-module-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( subset-eigenmodule-linear-endo-left-module-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( f) | ||
| ( r)) | ||
| is-closed-under-scalar-multiplication-subset-eigenmodule-linear-endo-left-module-Commutative-Ring | ||
| s x fx=rx = | ||
| equational-reasoning | ||
| map-linear-endo-left-module-Commutative-Ring R M f | ||
| ( mul-left-module-Commutative-Ring R M s x) | ||
| = | ||
| mul-left-module-Commutative-Ring R M | ||
| ( s) | ||
| ( map-linear-endo-left-module-Commutative-Ring R M f x) | ||
| by | ||
| is-homogeneous-map-linear-endo-left-module-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( f) | ||
| ( s) | ||
| ( _) | ||
| = | ||
| mul-left-module-Commutative-Ring R M | ||
| ( s) | ||
| ( mul-left-module-Commutative-Ring R M r x) | ||
| by ap (mul-left-module-Commutative-Ring R M s) fx=rx | ||
| = | ||
| mul-left-module-Commutative-Ring R M | ||
| ( r) | ||
| ( mul-left-module-Commutative-Ring R M s x) | ||
| by left-swap-mul-left-module-Commutative-Ring R M s r x | ||
| ``` | ||
|
|
||
| ### The subset of elements `x` with `f x = r * x` is a submodule | ||
|
|
||
| ```agda | ||
| module _ | ||
| {l1 l2 : Level} | ||
| (R : Commutative-Ring l1) | ||
| (M : left-module-Commutative-Ring l2 R) | ||
| (f : linear-endo-left-module-Commutative-Ring R M) | ||
| (r : type-Commutative-Ring R) | ||
| where | ||
|
|
||
| eigenmodule-linear-endo-left-module-Commutative-Ring : | ||
| left-submodule-Commutative-Ring l2 R M | ||
| eigenmodule-linear-endo-left-module-Commutative-Ring = | ||
| ( subset-eigenmodule-linear-endo-left-module-Commutative-Ring R M f r , | ||
| is-eigenelement-zero-linear-endo-left-module-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( f) | ||
| ( r) , | ||
| is-closed-under-addition-subset-eigenmodule-linear-endo-left-module-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( f) | ||
| ( r) , | ||
| is-closed-under-scalar-multiplication-subset-eigenmodule-linear-endo-left-module-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( f) | ||
| ( r)) | ||
|
|
||
| left-eigenmodule-linear-endo-left-module-Commutative-Ring : | ||
| left-module-Commutative-Ring l2 R | ||
| left-eigenmodule-linear-endo-left-module-Commutative-Ring = | ||
| left-module-left-submodule-Commutative-Ring | ||
| ( R) | ||
| ( M) | ||
| ( eigenmodule-linear-endo-left-module-Commutative-Ring) | ||
| ``` | ||
|
|
||
| ## See also | ||
|
|
||
| - [Eigenspaces of linear transformations of vector spaces](spectral-theory.eigenspaces-linear-endomaps-vector-spaces.md) | ||
65 changes: 65 additions & 0 deletions
65
src/spectral-theory/eigenspaces-linear-endomaps-vector-spaces.lagda.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| # Eigenspaces of linear transformations of vector spaces | ||
lowasser marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ```agda | ||
| module spectral-theory.eigenspaces-linear-endomaps-vector-spaces where | ||
| ``` | ||
|
|
||
| <details><summary>Imports</summary> | ||
|
|
||
| ```agda | ||
| open import commutative-algebra.heyting-fields | ||
|
|
||
| open import foundation.subtypes | ||
| open import foundation.universe-levels | ||
|
|
||
| open import linear-algebra.linear-endomaps-vector-spaces | ||
| open import linear-algebra.subspaces-vector-spaces | ||
| open import linear-algebra.vector-spaces | ||
|
|
||
| open import spectral-theory.eigenmodules-linear-endomaps-left-modules-commutative-rings | ||
| ``` | ||
|
|
||
| </details> | ||
|
|
||
| ## Idea | ||
|
|
||
| Given a [linear endomaps](linear-algebra.linear-endomaps-vector-spaces.md) `f` | ||
| of a [vector space](linear-algebra.vector-spaces.md) `V` over a | ||
| [Heyting field](commutative-algebra.heyting-fields.md) `F`, the | ||
| {{#concept "eigenspace" WDID=Q1303223 WD="eigenspace" Disambiguation="of a linear endomap on a vector space" Agda=eigenspace-linear-endo-Vector-Space}} | ||
| of `c : F` is the [subspace](linear-algebra.subspaces-vector-spaces.md) of `V` | ||
| of vectors with | ||
| [eigenvalue](spectral-theory.eigenvalues-eigenvectors-linear-endomaps-vector-spaces.md) | ||
| `c`. | ||
|
|
||
| ## Definition | ||
|
|
||
| ```agda | ||
| module _ | ||
| {l1 l2 : Level} | ||
| (F : Heyting-Field l1) | ||
| (V : Vector-Space l2 F) | ||
| (f : linear-endo-Vector-Space F V) | ||
| (c : type-Heyting-Field F) | ||
| where | ||
|
|
||
| eigenspace-linear-endo-Vector-Space : subspace-Vector-Space l2 F V | ||
| eigenspace-linear-endo-Vector-Space = | ||
| eigenmodule-linear-endo-left-module-Commutative-Ring | ||
| ( commutative-ring-Heyting-Field F) | ||
| ( V) | ||
| ( f) | ||
| ( c) | ||
|
|
||
| vector-space-eigenspace-linear-endo-Vector-Space : Vector-Space l2 F | ||
| vector-space-eigenspace-linear-endo-Vector-Space = | ||
| left-eigenmodule-linear-endo-left-module-Commutative-Ring | ||
| ( commutative-ring-Heyting-Field F) | ||
| ( V) | ||
| ( f) | ||
| ( c) | ||
| ``` | ||
|
|
||
| ## See also | ||
|
|
||
| - [Eigenmodules of linear transformations of left modules over commutative rings](spectral-theory.eigenmodules-linear-endomaps-left-modules-commutative-rings.md) | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.