Zulip Chat Archive
Stream: mathlib4
Topic: Scope of mathlib
Bolton Bailey (Sep 19 2023 at 14:53):
My collaborator Pratyush has formalized the univariate sumcheck lemma as a part of our work on formalization of cryptographic proof systems. It's a lemma that ultimately only references elementary concepts:
lemma univariate_sumcheck {F : Type} [Field F] [Fintype F] {G : Subgroup Fˣ} {p : Polynomial F}
{h_card_G : Fintype.card G ≥ 2} (σ : F) :
∑ x : G, Polynomial.eval (x.val.val) p = σ ↔
∃ h g,
p = h * vanishingPoly G + ↑Polynomial.C (σ / ↑(Fintype.card G)) + Polynomial.X * g ∧
Polynomial.natDegree g + 2 ≤ Fintype.card G ∧
Polynomial.natDegree h ≤ Polynomial.natDegree p - Fintype.card G
In words, "The sum of a polynomial p
over a multiplicative subgroup G
of a field equals σ
if and only if p
is of the form h * V + σ/|G| + X * g
, where V
is the vanishing polynomial on the subgroup, g
is a polynomial of degree at most |G|-2
and h
is of degree a polynomial of degree at most |G|
less than that of p
".
You can see this theorem all around the SNARK literature (for example, as Fact 2 here), but I'm not sure where else I might expect to see it. I have been PRing prerequisites to mathlib over the past weeks. Does this theorem itself seem in scope for mathlib?
Riccardo Brasca (Sep 19 2023 at 14:55):
I don't see any problem in having it. And as you said you probable needed a few small missing lemmas that are very welcome to mathlib.
Last updated: Dec 20 2023 at 11:08 UTC