Skip to content

[Merged by Bors] - feat(RingTheory/Polynomial/ContentIdeal): the content ideal of a polynomial.#25333

Closed
fbarroero wants to merge 9 commits intomasterfrom
fbarroero_IsPrimitive
Closed

[Merged by Bors] - feat(RingTheory/Polynomial/ContentIdeal): the content ideal of a polynomial.#25333
fbarroero wants to merge 9 commits intomasterfrom
fbarroero_IsPrimitive

Conversation

@fbarroero
Copy link
Copy Markdown
Collaborator

@fbarroero fbarroero commented May 31, 2025

We define the content ideal of a polynomial as

def contentIdeal (p : R[X]) := span p.coeffs.toSet

and prove some basic results in connection with the concept of content and primitivitiy.

Zulip discussion here


Open in Gitpod

---
<!-- The text above the `---` will become the commit message when your
PR is merged. Please leave a blank newline before the `---`, otherwise
GitHub will format the text above it as a title.

For details on the "pull request lifecycle" in mathlib, please see:
https://leanprover-community.github.io/contribute/index.html

In particular, note that most reviewers will only notice your PR
if it passes the continuous integration checks.
Please ask for help on https://leanprover.zulipchat.com if needed.

To indicate co-authors, include lines at the bottom of the commit message
(that is, before the `---`) using the following format:

Co-authored-by: Author Name <author@email.com>

If you are moving or deleting declarations, please include these lines at the bottom of the commit message
(that is, before the `---`) using the following format:

Moves:
- Vector.* -> List.Vector.*
- ...

Deletions:
- Nat.bit1_add_bit1
- ...

Any other comments you want to keep out of the PR commit should go
below the `---`, and placed outside this HTML comment, or else they
will be invisible to reviewers.

If this PR depends on other PRs, please list them below this comment,
using the following format:
- [ ] depends on: #abc [optional extra text]
- [ ] depends on: #xyz [optional extra text]

-->

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/)
@github-actions github-actions bot added the t-algebra Algebra (groups, rings, fields, etc) label May 31, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented May 31, 2025

PR summary 8024e6939a

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.RingTheory.Polynomial.ContentIdeal (new file) 1196

Declarations diff

+ _root_.Submodule.IsPrincipal.contentIdeal_eq_span_content_of_isPrincipal
+ _root_.Submodule.IsPrincipal.contentIdeal_generator_dvd
+ _root_.Submodule.IsPrincipal.contentIdeal_generator_dvd_coeff
+ _root_.Submodule.IsPrincipal.contentIdeal_le_span_iff_dvd
+ _root_.Submodule.IsPrincipal.isPrimitive_iff_contentIdeal_eq_top
+ coeff_mem_contentIdeal
+ coeffs_empty_iff
+ contenIdeal_zero
+ contentIdeal
+ contentIdeal_C
+ contentIdeal_FG
+ contentIdeal_def
+ contentIdeal_eq_bot_iff
+ contentIdeal_le_contentIdeal_of_dvd
+ contentIdeal_le_span_content
+ contentIdeal_monomial
+ isPrimitive_iff_contentIdeal_eq_top
+ isPrimitive_of_contentIdeal_eq_top

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@fbarroero fbarroero added the WIP Work in progress label May 31, 2025
@fbarroero fbarroero changed the title WIP Primitivity and Ideal.span (p.coeffs.toSet) Jun 3, 2025
@fbarroero fbarroero changed the title Primitivity and Ideal.span (p.coeffs.toSet) feat(RingTheory/Polynomial/ContentIdeal): the content ideal of a polynomial. Jun 11, 2025
@fbarroero fbarroero removed the WIP Work in progress label Jun 11, 2025
@fbarroero fbarroero requested a review from jcommelin June 11, 2025 14:31
principal, `p` is primitive if and only if its content ideal is the whole ring.
- `Submodule.IsPrincipal.contentIdeal_eq_span_content_of_isPrincipal`: if the content ideal of `p`
is principal, then it is equal to the ideal generated by the content of `p`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@_Antoine Chambert-Loir|130609 said:

@**Fabrizio Barroero** , can you add as a TODO the statement of the Dedekind-Mertens lemma with a link to Coquand's paper ? (Does Mathlib have Prüfer rings?)

@jcommelin
Copy link
Copy Markdown
Member

Thanks 🎉

bors merge

@ghost ghost added the ready-to-merge This PR has been sent to bors. label Jun 12, 2025
mathlib-bors bot pushed a commit that referenced this pull request Jun 12, 2025
…nomial. (#25333)

We define the content ideal of a polynomial as
```
def contentIdeal (p : R[X]) := span p.coeffs.toSet
```
and prove some basic results in connection with the concept of content and primitivitiy.

Zulip discussion [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/contentIdeal/with/522432790)
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Jun 12, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(RingTheory/Polynomial/ContentIdeal): the content ideal of a polynomial. [Merged by Bors] - feat(RingTheory/Polynomial/ContentIdeal): the content ideal of a polynomial. Jun 12, 2025
@mathlib-bors mathlib-bors bot closed this Jun 12, 2025
@mathlib-bors mathlib-bors bot deleted the fbarroero_IsPrimitive branch June 12, 2025 08:08
vlad902 added a commit to vlad902/mathlib4 that referenced this pull request Jun 12, 2025
* master: (447 commits)
  chore(Data/Set): move very basic lemmas earlier (leanprover-community#25707)
  feat: preserve draft status when migrating PRs to fork (leanprover-community#25777)
  chore(Data/Set/Basic): deprecate lemmas that abuse the `Set α := α → Prop` defeq (leanprover-community#25669)
  refactor: redefine `ProperCone` as an `abbrev` for `ClosedSubmodule` (leanprover-community#25204)
  feat: interaction between ContinuousLinearMap.coprod and ContinuousLinearEquiv.prodComm (leanprover-community#25564)
  fix: outdated docstring (leanprover-community#25717)
  feat(MeasureTheory): convolution of measures with densities  (leanprover-community#25718)
  feat: make sure that the simp normal form of equiv-like classes pushes `symm` and `trans` to the right (leanprover-community#25604)
  feat(ModelTheory): Formula.iSup and iInf (leanprover-community#21948)
  feat(RingTheory/Polynomial/ContentIdeal): the content ideal of a polynomial. (leanprover-community#25333)
  fix: typo in labels_from_comment.yml (leanprover-community#25727)
  feat: is{Inducing,Embedding}_prodMkLeft (leanprover-community#25705)
  feat: check that the mathlib options exist (leanprover-community#25687)
  feat(Algebra/Group/Even): Add missing lemmas (leanprover-community#20818)
  refactor: make `Matrix.kroneckerTMulAlgEquiv` heterogeneous (leanprover-community#25693)
  feat: allow contributors to remove labels with comments (leanprover-community#25723)
  chore: disable build.yml and bors.yml on forks (leanprover-community#25722)
  feat: improvements to user_activity_report.py (leanprover-community#25721)
  chore: update the migration script to check for necessary permissions and prefer ssh if possible (leanprover-community#25701)
  chore: update the migration script to check for necessary permissions and prefer ssh if possible (leanprover-community#25701)
  ...
pfaffelh pushed a commit to pfaffelh/mathlib4 that referenced this pull request Jun 15, 2025
…nomial. (leanprover-community#25333)

We define the content ideal of a polynomial as
```
def contentIdeal (p : R[X]) := span p.coeffs.toSet
```
and prove some basic results in connection with the concept of content and primitivitiy.

Zulip discussion [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/contentIdeal/with/522432790)
pfaffelh pushed a commit to pfaffelh/mathlib4 that referenced this pull request Jun 15, 2025
…nomial. (leanprover-community#25333)

We define the content ideal of a polynomial as
```
def contentIdeal (p : R[X]) := span p.coeffs.toSet
```
and prove some basic results in connection with the concept of content and primitivitiy.

Zulip discussion [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/contentIdeal/with/522432790)
callesonne pushed a commit to callesonne/mathlib4 that referenced this pull request Jul 24, 2025
…nomial. (leanprover-community#25333)

We define the content ideal of a polynomial as
```
def contentIdeal (p : R[X]) := span p.coeffs.toSet
```
and prove some basic results in connection with the concept of content and primitivitiy.

Zulip discussion [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/contentIdeal/with/522432790)
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