Skip to content

Commit a712cd7

Browse files
Proof of Polishchuk-Spielman (#292)
* feat: add Polishchuk-Spielman algorithm * build: update ArkLib.lean imports * style: fix mathlib style guide violations * style: refactor Polishchuk-Spielman names and fix citations * style: rename variables to snake_case * fix build issues + style guide adherence * edit docstrings
1 parent 85b86c2 commit a712cd7

File tree

7 files changed

+2603
-29
lines changed

7 files changed

+2603
-29
lines changed

ArkLib.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ import ArkLib.Data.CodingTheory.JohnsonBound.Expectations
3838
import ArkLib.Data.CodingTheory.JohnsonBound.Lemmas
3939
import ArkLib.Data.CodingTheory.ListDecodability
4040
import ArkLib.Data.CodingTheory.PolishchukSpielman
41+
import ArkLib.Data.CodingTheory.PolishchukSpielman.Degrees
42+
import ArkLib.Data.CodingTheory.PolishchukSpielman.Existence
43+
import ArkLib.Data.CodingTheory.PolishchukSpielman.PolishchukSpielman
44+
import ArkLib.Data.CodingTheory.PolishchukSpielman.Resultant
4145
import ArkLib.Data.CodingTheory.Prelims
4246
import ArkLib.Data.CodingTheory.ProximityGap.AHIV22
4347
import ArkLib.Data.CodingTheory.ProximityGap.BCIKS20

ArkLib/Data/CodingTheory/PolishchukSpielman.lean

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,4 @@ Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Katerina Hristova, František Silváši, Julian Sutherland
55
-/
66

7-
import ArkLib.Data.Polynomial.Bivariate
8-
9-
open Polynomial.Bivariate Polynomial
10-
11-
/--
12-
Polishchuk-Spielman Lemma variant from Ben-Sasson et Al. Proximity Gaps for Reed-Solomon Codes
13-
-/
14-
lemma Polishchuk_Spielman {F : Type} [Field F]
15-
(a_x a_y b_x b_y : ℕ) (n_x n_y : ℕ+)
16-
(h_bx_ge_ax : b_x ≥ a_x) (h_by_ge_ay : b_y ≥ a_y)
17-
(A B : F[X][Y])
18-
(h_f_degX : a_x ≥ Bivariate.degreeX A) (h_g_degX : b_x ≥ Bivariate.degreeX B)
19-
(h_f_degY : a_y ≥ natDegreeY A) (h_g_degY : b_y ≥ natDegreeY B)
20-
(P_x P_y : Finset F) [Nonempty P_x] [Nonempty P_y]
21-
(quot_X : F → F[X]) (quot_Y : F → F[X])
22-
(h_card_Px : n_x ≤ P_x.card) (h_card_Py : n_y ≤ P_y.card)
23-
(h_quot_X : ∀ y ∈ P_y,
24-
(quot_X y).natDegree ≤ (b_x - a_x) ∧ Bivariate.evalY y B = (quot_X y) * (Bivariate.evalY y A))
25-
(h_quot_Y : ∀ x ∈ P_x,
26-
(quot_Y x).natDegree ≤ (b_y - a_y) ∧ Bivariate.evalX x B = (quot_Y x) * (Bivariate.evalX x A))
27-
(h_le_1 : 1 > (b_x : ℚ) / (n_x : ℚ) + (b_y : ℚ) / (n_y : ℚ))
28-
: ∃ P : F[X][Y], B = P * A
29-
∧ Bivariate.degreeX P ≤ b_x - a_x ∧ natDegreeY P ≤ b_y - a_y
30-
∧ (∃ Q_x : Finset F, Q_x.card ≥ n_x - a_x ∧ Q_x ⊆ P_x ∧
31-
∀ x ∈ Q_x, Bivariate.evalX x P = quot_Y x)
32-
∧ (∃ Q_y : Finset F, Q_y.card ≥ n_y - a_y ∧ Q_y ⊆ P_y ∧
33-
∀ y ∈ Q_y, Bivariate.evalX y P = quot_X y)
34-
:= sorry
7+
import ArkLib.Data.CodingTheory.PolishchukSpielman.PolishchukSpielman

ArkLib/Data/CodingTheory/PolishchukSpielman/Degrees.lean

Lines changed: 841 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)