-
Notifications
You must be signed in to change notification settings - Fork 380
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(Combinatorics/Nullstellensatz): formalize Alon's Combinatorial Nullstellensatz #20495
base: master
Are you sure you want to change the base?
Conversation
This PR/issue depends on: |
theorem eq_zero_of_eval_zero_at_prod_finset {σ : Type*} [Finite σ] [IsDomain R] | ||
(P : MvPolynomial σ R) (S : σ → Finset R) | ||
(Hdeg : ∀ i, P.degreeOf i < #(S i)) | ||
(Heval : ∀ (x : σ → R), (∀ i, x i ∈ S i) → eval x P = 0) : | ||
P = 0 := by |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suspect you would have a better time proving this one straight away using Finite.empty_option_induction
and the Option
version of MvPolynomial.finSuccEquiv
(which already exists, but I can't give you the name because my computer is dead)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see your point, but unfortunately, docs#MvPolynomial.eval_eq_eval_mv_eval' is only for Fin n.succ
. Let's see if I dare making the alternative version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please have a look.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not completely happy with the optionEquivLeft_coeff_coeff
, maybe it should incorporate what I do in the Nullstellensatz
file. The point is that one needs, given m : sigma to0 Nat
and d: Nat
to construct an n : Option sigma to0 Nat
, and the simplest way I found is adding single
and embDomain...
.
Co-authored-by: Yaël Dillies <[email protected]>
Co-authored-by: Yaël Dillies <[email protected]>
There was a problem hiding this 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.
This is a formalization of Alon's Combinatorial Nullstellensatz.
Meanwhile, prove several results
Probably, this file should belong to the
RingTheory.MvPolynomial
hierarchy.