Skip to content

Commit 97d2e21

Browse files
committed
feat(Verified-zkEVM#138): isolate alpha zero case bridge
1 parent 5737f6f commit 97d2e21

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

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

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,40 @@ theorem W𝒪_dvd_βHensel_zero_of_alphaWeight (x₀ : F) (R : F[X][X][Y])
533533
rw [W𝒪_dvd_βHensel_zero_of_alpha H x₀ R hHyp hH ha_eq]
534534
exact mul_comm a (W𝒪 H)
535535

536+
/-- The base carved regularity case supplies the base divisibility-with-weight case without the
537+
all-orders P2 lift hypothesis. It uses only the already-proved base lift identity folded through
538+
`W𝒪_dvd_βHensel_zero_of_alpha`. -/
539+
theorem DivWeightLe_zero.of_alphaWeight_zero (x₀ : F) (R : F[X][X][Y])
540+
(hHyp : ClaimA2.Hypotheses x₀ R H) (hH : 0 < H.natDegree) (D : ℕ)
541+
(hα0 : AlphaGenuineRegularWeightLe_zero H x₀ R hHyp hH D) :
542+
DivWeightLe_zero H x₀ R hHyp hH D := by
543+
obtain ⟨a, ha_eq, ha_wt⟩ := hα0
544+
refine ⟨a, ?_, ha_wt⟩
545+
rw [W𝒪_dvd_βHensel_zero_of_alpha H x₀ R hHyp hH ha_eq]
546+
simp only [Nat.mul_zero, Nat.zero_sub, pow_zero, mul_one, zero_add, pow_one]
547+
548+
/-- The base divisibility-with-weight case supplies the base carved regularity case without the
549+
all-orders P2 lift hypothesis. -/
550+
theorem AlphaGenuineRegularWeightLe_zero.of_divWeight_zero
551+
(x₀ : F) (R : F[X][X][Y]) (hHyp : ClaimA2.Hypotheses x₀ R H)
552+
(hH : 0 < H.natDegree) (D : ℕ)
553+
(hdiv0 : DivWeightLe_zero H x₀ R hHyp hH D) :
554+
AlphaGenuineRegularWeightLe_zero H x₀ R hHyp hH D := by
555+
obtain ⟨a, hfact, ha_wt⟩ := hdiv0
556+
refine ⟨a, ?_, ha_wt⟩
557+
exact alpha_eq_embedding_of_fact H x₀ R hHyp 0 hfact
558+
(βHensel_lift_identity_zero H x₀ R hHyp)
559+
560+
/-- The `t = 0` alpha/divisibility equivalence needs only the proved base lift identity, not the
561+
full all-orders P2 lift identity used by `alphaWeight_zero_iff_divWeight_zero`. -/
562+
theorem alphaWeight_zero_iff_divWeight_zero_base (x₀ : F) (R : F[X][X][Y])
563+
(hHyp : ClaimA2.Hypotheses x₀ R H) (hH : 0 < H.natDegree) (D : ℕ) :
564+
AlphaGenuineRegularWeightLe_zero H x₀ R hHyp hH D ↔
565+
DivWeightLe_zero H x₀ R hHyp hH D := by
566+
constructor
567+
· exact DivWeightLe_zero.of_alphaWeight_zero H x₀ R hHyp hH D
568+
· exact AlphaGenuineRegularWeightLe_zero.of_divWeight_zero H x₀ R hHyp hH D
569+
536570
end AlphaWeight
537571

538572
end BCIKS20.HenselNumerator
@@ -568,3 +602,6 @@ end BCIKS20.HenselNumerator
568602
#print axioms BCIKS20.HenselNumerator.AlphaWeight.βHensel_weight_bound_of_alphaWeight'
569603
#print axioms BCIKS20.HenselNumerator.AlphaWeight.W𝒪_dvd_βHensel_zero_of_alpha
570604
#print axioms BCIKS20.HenselNumerator.AlphaWeight.W𝒪_dvd_βHensel_zero_of_alphaWeight
605+
#print axioms BCIKS20.HenselNumerator.AlphaWeight.DivWeightLe_zero.of_alphaWeight_zero
606+
#print axioms BCIKS20.HenselNumerator.AlphaWeight.AlphaGenuineRegularWeightLe_zero.of_divWeight_zero
607+
#print axioms BCIKS20.HenselNumerator.AlphaWeight.alphaWeight_zero_iff_divWeight_zero_base

0 commit comments

Comments
 (0)