Skip to content

[Merged by Bors] - feat(LinearAlgebra/Matrix/Adjugate): M.det = 0 if M *ᵥ v = 0 where v contains a non-zero-divisor#39642

Closed
SnirBroshi wants to merge 1 commit into
leanprover-community:masterfrom
SnirBroshi:feature/matrix/det-eq-zero-of-mulvec-nonzerodivisor
Closed

[Merged by Bors] - feat(LinearAlgebra/Matrix/Adjugate): M.det = 0 if M *ᵥ v = 0 where v contains a non-zero-divisor#39642
SnirBroshi wants to merge 1 commit into
leanprover-community:masterfrom
SnirBroshi:feature/matrix/det-eq-zero-of-mulvec-nonzerodivisor

Conversation

@SnirBroshi

Copy link
Copy Markdown
Collaborator

The non-zero-divisor requirement is necessary since otherwise we could take any a * b = 0 with a ≠ 0 ∧ b ≠ 0 and consider the 1x1 matrix formed by a and the single-entry vector formed by b. Then M.det = a ≠ 0 and M *ᵥ v = a * b = 0.


The natural language proof is by ChatGPT 5.5; the rest is entirely human-made: the code, the counterexample, and also the idea for the statement.

Open in Gitpod

@github-actions

Copy link
Copy Markdown

PR summary a7cb828610

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ det_eq_zero_of_mulVec_eq_zero_of_mem_nonZeroDivisors

You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci

## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.


No changes to strong technical debt.
No changes to weak technical debt.

@github-actions github-actions Bot added the t-algebra Algebra (groups, rings, fields, etc) label May 21, 2026

@b-mehta b-mehta left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks!

bors merge

@mathlib-triage mathlib-triage Bot added the ready-to-merge This PR has been sent to bors. label May 21, 2026
mathlib-bors Bot pushed a commit that referenced this pull request May 21, 2026
…e `v` contains a non-zero-divisor (#39642)

The non-zero-divisor requirement is necessary since otherwise we could take any `a * b = 0` with `a ≠ 0 ∧ b ≠ 0` and consider the 1x1 matrix formed by `a` and the single-entry vector formed by `b`. Then `M.det = a ≠ 0` and `M *ᵥ v = a * b = 0`.
@mathlib-bors

mathlib-bors Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors Bot changed the title feat(LinearAlgebra/Matrix/Adjugate): M.det = 0 if M *ᵥ v = 0 where v contains a non-zero-divisor [Merged by Bors] - feat(LinearAlgebra/Matrix/Adjugate): M.det = 0 if M *ᵥ v = 0 where v contains a non-zero-divisor May 21, 2026
@mathlib-bors mathlib-bors Bot closed this May 21, 2026
RaggedR pushed a commit to RaggedR/mathlib4 that referenced this pull request May 22, 2026
…e `v` contains a non-zero-divisor (leanprover-community#39642)

The non-zero-divisor requirement is necessary since otherwise we could take any `a * b = 0` with `a ≠ 0 ∧ b ≠ 0` and consider the 1x1 matrix formed by `a` and the single-entry vector formed by `b`. Then `M.det = a ≠ 0` and `M *ᵥ v = a * b = 0`.
b-mehta pushed a commit to b-mehta/mathlib4 that referenced this pull request Jun 2, 2026
…e `v` contains a non-zero-divisor (leanprover-community#39642)

The non-zero-divisor requirement is necessary since otherwise we could take any `a * b = 0` with `a ≠ 0 ∧ b ≠ 0` and consider the 1x1 matrix formed by `a` and the single-entry vector formed by `b`. Then `M.det = a ≠ 0` and `M *ᵥ v = a * b = 0`.
Bergschaf pushed a commit to Bergschaf/mathlib4 that referenced this pull request Jun 3, 2026
…e `v` contains a non-zero-divisor (leanprover-community#39642)

The non-zero-divisor requirement is necessary since otherwise we could take any `a * b = 0` with `a ≠ 0 ∧ b ≠ 0` and consider the 1x1 matrix formed by `a` and the single-entry vector formed by `b`. Then `M.det = a ≠ 0` and `M *ᵥ v = a * b = 0`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge This PR has been sent to bors. t-algebra Algebra (groups, rings, fields, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants