[Merged by Bors] - feat(LinearAlgebra/Matrix/Nondegenerate): more API and generalize to non-domains#39634
Conversation
…generate` to non-domains with `det ∈ nonZeroDivisors`
PR summary d991d28488Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
det ≠ 0 → Nondegenerate… square matrices in domains
Co-authored-by: Monica Omar <23701951+themathqueen@users.noreply.github.com>
Co-authored-by: Monica Omar <23701951+themathqueen@users.noreply.github.com>
themathqueen
left a comment
There was a problem hiding this comment.
Thanks!
maintainer merge
|
🚀 Pull request has been placed on the maintainer queue by themathqueen. |
|
Thanks! bors merge |
…non-domains (#39634) - Syntactically generalize the bilinear form identities to non-square matrices - Prove iff and transpose theorems for `SeparatingLeft`/`SeparatingRight`/`Nondegenerate` - Prove `M *ᵥ v = 0 → v = 0` and `v ᵥ* M = 0 → v = 0` given `Nondegenerate` (extracted from the existing `eq_zero_of_*_eq_zero`) - Generalize `M.det ≠ 0 → M.Nondegenerate` to `M.det ∈ R⁰ → M.Nondegenerate` (over any `CommRing`) - Add `M *ᵥ v = 0 → v = 0` and `v ᵥ* M = 0 → v = 0` theorems given `M.det ∈ R⁰` - Allow `NonUnitalNonAssocSemiring`s in the `def`s
|
Pull request successfully merged into master. Build succeeded: |
…emiring (#41271) This PR generalizes the `SeparatingLeft`/`SeparatingRight`/`Nondegenerate` lemmas from `CommRing` to `CommSemiring` (the determinant section keeps `CommRing`), and golfs `nondegenerate_def` using the `@[mk_iff]`-generated `nondegenerate_iff`. Follow-up to #39634, which generalized the definitions but left the lemmas at `CommRing`. 🤖 Prepared with Claude Code
…non-domains (leanprover-community#39634) - Syntactically generalize the bilinear form identities to non-square matrices - Prove iff and transpose theorems for `SeparatingLeft`/`SeparatingRight`/`Nondegenerate` - Prove `M *ᵥ v = 0 → v = 0` and `v ᵥ* M = 0 → v = 0` given `Nondegenerate` (extracted from the existing `eq_zero_of_*_eq_zero`) - Generalize `M.det ≠ 0 → M.Nondegenerate` to `M.det ∈ R⁰ → M.Nondegenerate` (over any `CommRing`) - Add `M *ᵥ v = 0 → v = 0` and `v ᵥ* M = 0 → v = 0` theorems given `M.det ∈ R⁰` - Allow `NonUnitalNonAssocSemiring`s in the `def`s
…emiring (leanprover-community#41271) This PR generalizes the `SeparatingLeft`/`SeparatingRight`/`Nondegenerate` lemmas from `CommRing` to `CommSemiring` (the determinant section keeps `CommRing`), and golfs `nondegenerate_def` using the `@[mk_iff]`-generated `nondegenerate_iff`. Follow-up to leanprover-community#39634, which generalized the definitions but left the lemmas at `CommRing`. 🤖 Prepared with Claude Code
…non-domains (leanprover-community#39634) - Syntactically generalize the bilinear form identities to non-square matrices - Prove iff and transpose theorems for `SeparatingLeft`/`SeparatingRight`/`Nondegenerate` - Prove `M *ᵥ v = 0 → v = 0` and `v ᵥ* M = 0 → v = 0` given `Nondegenerate` (extracted from the existing `eq_zero_of_*_eq_zero`) - Generalize `M.det ≠ 0 → M.Nondegenerate` to `M.det ∈ R⁰ → M.Nondegenerate` (over any `CommRing`) - Add `M *ᵥ v = 0 → v = 0` and `v ᵥ* M = 0 → v = 0` theorems given `M.det ∈ R⁰` - Allow `NonUnitalNonAssocSemiring`s in the `def`s
…emiring (leanprover-community#41271) This PR generalizes the `SeparatingLeft`/`SeparatingRight`/`Nondegenerate` lemmas from `CommRing` to `CommSemiring` (the determinant section keeps `CommRing`), and golfs `nondegenerate_def` using the `@[mk_iff]`-generated `nondegenerate_iff`. Follow-up to leanprover-community#39634, which generalized the definitions but left the lemmas at `CommRing`. 🤖 Prepared with Claude Code
SeparatingLeft/SeparatingRight/NondegenerateM *ᵥ v = 0 → v = 0andv ᵥ* M = 0 → v = 0givenNondegenerate(extracted from the existing
eq_zero_of_*_eq_zero)M.det ≠ 0 → M.NondegeneratetoM.det ∈ R⁰ → M.Nondegenerate(over anyCommRing)M *ᵥ v = 0 → v = 0andv ᵥ* M = 0 → v = 0theorems givenM.det ∈ R⁰NonUnitalNonAssocSemirings in thedefs