Skip to content

Commit 9b79523

Browse files
lalaluneEliza
andcommitted
feat(Verified-zkEVM#138/Verified-zkEVM#139): discharge B_coeff_weight_le axiom — prove the BCIKS20 B_coeff weight bound
Replace `axiom B_coeff_weight_le` with a kernel-clean `theorem`, assembled from the existing proven ingredients via the degree-decomposition route: B_coeff_weight_le_hasse ▸ weight_Λ_over_𝒪_le_of_mk_eq ▸ weight_Λ_le_natDegreeY_mul_add_degreeX ▸ hasseCoeffRepr𝒪_natDegreeY_le. Verified `#print axioms` ⊆ {propext, Classical.choice, Quot.sound} (no sorryAx, no custom axiom); the full file recompiles clean. Remove its scripts/residual_axioms.txt entry. Co-authored-by: Eliza <elizamakesmagic@gmail.com>
1 parent 8669184 commit 9b79523

2 files changed

Lines changed: 18 additions & 4 deletions

File tree

ArkLib/Data/CodingTheory/ProximityGap/BCIKS20/HenselNumerator.lean

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -953,10 +953,16 @@ lemma weight_Λ_le_natDegreeY_mul_add_degreeX (f : F[X][Y]) (D : ℕ) :
953953
≤ Bivariate.natDegreeY f * (D + 1 - Bivariate.natDegreeY H) + Bivariate.degreeX f :=
954954
Nat.add_le_add (Nat.mul_le_mul_right _ hn_le) hcoeff_le
955955

956-
/-- **(STEP a, the full `B_coeff` weight bound) — PROVEN, axiom-clean, P2-INDEPENDENT.**
956+
/-- **(STEP a, the full `B_coeff` weight bound) — PROVEN as a `theorem`, kernel-clean, P2-INDEPENDENT.**
957957
`weight_Λ_over_𝒪 hH (B_coeff … i1 λ) D ≤ (natDegreeY R − Σλ)·(D+1−natDegreeY H) + degreeX p`, where
958958
`p = evalX (C x₀) (Δ_X^{i1} Δ_Y^{Σλ} R)` is the iterated-Hasse representative polynomial.
959959
960+
Discharged from the named in-tree ingredients via the degree-decomposition route (#138/#139):
961+
`B_coeff_weight_le_hasse` (prefactor + `mk`-representative) ▸ `weight_Λ_over_𝒪_le_of_mk_eq`
962+
(descend `𝒪`-weight to the polynomial weight of `p`) ▸ `weight_Λ_le_natDegreeY_mul_add_degreeX`
963+
(split into `natDegreeY p · c + degreeX p`) ▸ `hasseCoeffRepr𝒪_natDegreeY_le` (the `Y`-degree drop
964+
`natDegreeY p ≤ natDegreeY R − Σλ`). `#print axioms` ⊆ {propext, Classical.choice, Quot.sound}.
965+
960966
This is the genuine `B_coeff` weight bound assembled from the two P2-independent components:
961967
* the **`Y`-degree drop** `natDegreeY p ≤ natDegreeY R − Σλ` (`hasseCoeffRepr𝒪_natDegreeY_le`,
962968
wave 4) — the `−Σλ` of the paper's `(D−Σλ)+(d−δ−Σλ)·Λ(W)`; and
@@ -969,15 +975,24 @@ The integer `prefactor` scalar is absorbed by `B_coeff_weight_le_hasse`; the `mk
969975
weight is bounded by the polynomial weight via `weight_Λ_over_𝒪_le_of_mk_eq`; the polynomial weight
970976
splits into the `Y`/`X` components via `weight_Λ_le_natDegreeY_mul_add_degreeX`. No `sorry`, no
971977
hypothesis beyond `totalDegree H ≤ D` (the standard `weight_Λ` premise). -/
972-
axiom B_coeff_weight_le (x₀ : F) (R : F[X][X][Y]) (i1 : ℕ) {m : ℕ}
978+
theorem B_coeff_weight_le (x₀ : F) (R : F[X][X][Y]) (i1 : ℕ) {m : ℕ}
973979
(lam : Nat.Partition m) (hH : 0 < H.natDegree) {D : ℕ}
974980
(hDH : Bivariate.totalDegree H ≤ D) :
975981
weight_Λ_over_𝒪 hH (B_coeff H x₀ R i1 lam) D
976982
≤ WithBot.some
977983
((Bivariate.natDegreeY R - sigmaLambda lam) * (D + 1 - Bivariate.natDegreeY H)
978984
+ Bivariate.degreeX
979985
(Bivariate.evalX (Polynomial.C x₀)
980-
(hasseDerivX i1 (hasseDerivY (sigmaLambda lam) R))))
986+
(hasseDerivX i1 (hasseDerivY (sigmaLambda lam) R)))) := by
987+
refine (B_coeff_weight_le_hasse H x₀ R i1 lam hH hDH).trans ?_
988+
refine (weight_Λ_over_𝒪_le_of_mk_eq hDH hH
989+
(r := Bivariate.evalX (Polynomial.C x₀)
990+
(hasseDerivX i1 (hasseDerivY (sigmaLambda lam) R))) rfl).trans ?_
991+
refine (weight_Λ_le_natDegreeY_mul_add_degreeX H _ D).trans ?_
992+
refine WithBot.coe_le_coe.mpr ?_
993+
exact Nat.add_le_add
994+
(Nat.mul_le_mul_right _
995+
(hasseCoeffRepr𝒪_natDegreeY_le x₀ R i1 (sigmaLambda lam))) (le_refl _)
981996

982997
/-! ### 4b″. The `Z`-degree (`degreeX`) sharpening to the paper's literal `(D−Σλ)` (WAVE 1 ext)
983998

scripts/residual_axioms.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,3 @@ gg25_frs_epsMCA_capacity # #86 external GG25 folded-RS capacity MCA bound
3030
fiatShamir_soundness_of_stateRestoration_coupled # #116 scratch coupled FS/SR soundness transfer
3131
fenziSanso_upperBound_attack_concrete_residual # #106 concrete KoalaBear winning-set residual
3232
embeddingOf_hasseCoeffReprO_cleared_uniform_residual # #138/#139 Hensel W-clearing uniform degree frontier
33-
B_coeff_weight_le # #138/#139 BCIKS20 B_coeff weight bridge

0 commit comments

Comments
 (0)