Skip to content

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

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

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

Conversation

@AntoineChambert-Loir

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

Copy link
Copy Markdown
Collaborator

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>
Comment thread Mathlib/Algebra/MvPolynomial/Equiv.lean Outdated

@YaelDillies YaelDillies 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.

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

Comment thread Mathlib/Combinatorics/Nullstellensatz.lean Outdated
Comment thread Mathlib/Data/Finsupp/Basic.lean Outdated
Comment thread Mathlib/Data/Finsupp/Basic.lean Outdated
@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

github-actions Bot commented Apr 6, 2025

Copy link
Copy Markdown

🚀 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

@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.

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

mathlib-bors Bot commented Apr 6, 2025

Copy link
Copy Markdown
Contributor

✌️ 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

AntoineChambert-Loir commented Apr 6, 2025 via email

Copy link
Copy Markdown
Collaborator Author

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

mathlib-bors Bot commented Apr 6, 2025

Copy link
Copy Markdown
Contributor

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

mathlib-bors Bot commented Apr 6, 2025

Copy link
Copy Markdown
Contributor

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