Skip to content

[Merged by Bors] - feat(Combinatorics/Nullstellensatz): Alon's combinatorial Nullstellensatz#20495

Closed
AntoineChambert-Loir wants to merge 168 commits intomasterfrom
ACL/CombNS-2
Closed

[Merged by Bors] - feat(Combinatorics/Nullstellensatz): Alon's combinatorial Nullstellensatz#20495
AntoineChambert-Loir wants to merge 168 commits intomasterfrom
ACL/CombNS-2

Conversation

@AntoineChambert-Loir
Copy link
Copy Markdown
Collaborator

@AntoineChambert-Loir AntoineChambert-Loir commented Jan 5, 2025

This is a formalization of Alon's Combinatorial Nullstellensatz.

Meanwhile, prove several results

  • a multivariate polynomial that vanishes on a too large product set vanishes identically

Probably, this file should belong to the RingTheory.MvPolynomial hierarchy.


Open in Gitpod

AntoineChambert-Loir and others added 2 commits February 21, 2025 18:07
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
Copy link
Copy Markdown
Contributor

@YaelDillies YaelDillies left a comment

Choose a reason for hiding this comment

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

Looks all good to me. I'll let @b-mehta do the final call.

@YaelDillies YaelDillies requested a review from b-mehta March 20, 2025 09:19
@Parcly-Taxel Parcly-Taxel changed the title feat(Combinatorics/Nullstellensatz): formalize Alon's Combinatorial Nullstellensatz feat(Combinatorics/Nullstellensatz): Alon's combinatorial Nullstellensatz Mar 22, 2025
@YaelDillies
Copy link
Copy Markdown
Contributor

LGTM since Bhavik is seemingly unavailable

maintainer merge

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 6, 2025

🚀 Pull request has been placed on the maintainer queue by YaelDillies.

@github-actions github-actions bot added the maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. label Apr 6, 2025
Copy link
Copy Markdown
Contributor

@b-mehta b-mehta left a comment

Choose a reason for hiding this comment

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

This looks very nice, thank you! And my sincerest apologies for the delay.

bors d+

f.sum_option_index _ (fun _ => zero_smul _ _) fun _ _ _ => add_smul _ _ _

theorem eq_option_embedding_update_none_iff [Zero M] {n : Option α →₀ M} {m : α →₀ M} {i : M} :
(n = (embDomain Embedding.some m).update none i) ↔
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.

Suggested change
(n = (embDomain Embedding.some m).update none i)
n = (embDomain Embedding.some m).update none i ↔

ext m
simp only [coeff_zero, optionEquivLeft_coeff_coeff]
set n := (embDomain Function.Embedding.some m).update none d with hn
-- set n := embDomain Function.Embedding.some m + Finsupp.single none d with hn
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.

Suggested change
-- set n := embDomain Function.Embedding.some m + Finsupp.single none d with hn

Comment on lines +209 to +211
∃ (h : σ →₀ MvPolynomial σ R)
(_ : ∀ i, ((∏ s ∈ S i, (X i - C s)) * h i).totalDegree ≤ f.totalDegree),
f = linearCombination (MvPolynomial σ R) (fun i ↦ ∏ r ∈ S i, (X i - C r)) h := by
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.

Perhaps I'm missing something, but it looks like this should be written as ∃ (h : σ →₀ MvPolynomial σ R), then the conjunction of the two statements, rather than a double-exists? That is, the rhs of exists_prop rather than the lhs.

Comment on lines +229 to +230
· rw [← hj]
exact h'
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.

Suggested change
· rw [← hj]
exact h'
· rwa [← hj]

optional and untested, but it appears cleaner here!

(f : MvPolynomial σ R)
(t : σ →₀ ℕ) (ht : f.coeff t ≠ 0) (ht' : f.totalDegree = t.degree)
(S : σ → Finset R) (htS : ∀ i, t i < #(S i)) :
∃ (s : σ → R) (_ : ∀ i, s i ∈ S i), eval s f ≠ 0 := by
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.

as before

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Apr 6, 2025

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

@ghost ghost added delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). and removed maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. labels Apr 6, 2025
@AntoineChambert-Loir
Copy link
Copy Markdown
Collaborator Author

AntoineChambert-Loir commented Apr 6, 2025 via email

mathlib-bors bot pushed a commit that referenced this pull request Apr 6, 2025
…satz (#20495)

This is a formalization of Alon's Combinatorial Nullstellensatz.

Meanwhile, prove several results
* a multivariate polynomial that vanishes on a too large product set vanishes identically

Probably, this  file should belong to the `RingTheory.MvPolynomial` hierarchy.
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Apr 6, 2025

Build failed (retrying...):

mathlib-bors bot pushed a commit that referenced this pull request Apr 6, 2025
…satz (#20495)

This is a formalization of Alon's Combinatorial Nullstellensatz.

Meanwhile, prove several results
* a multivariate polynomial that vanishes on a too large product set vanishes identically

Probably, this  file should belong to the `RingTheory.MvPolynomial` hierarchy.
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Apr 6, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(Combinatorics/Nullstellensatz): Alon's combinatorial Nullstellensatz [Merged by Bors] - feat(Combinatorics/Nullstellensatz): Alon's combinatorial Nullstellensatz Apr 6, 2025
@mathlib-bors mathlib-bors bot closed this Apr 6, 2025
@mathlib-bors mathlib-bors bot deleted the ACL/CombNS-2 branch April 6, 2025 21:36
tannerduve pushed a commit that referenced this pull request May 13, 2025
…satz (#20495)

This is a formalization of Alon's Combinatorial Nullstellensatz.

Meanwhile, prove several results
* a multivariate polynomial that vanishes on a too large product set vanishes identically

Probably, this  file should belong to the `RingTheory.MvPolynomial` hierarchy.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). t-combinatorics Combinatorics

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants