PX0077

prime_field_polynomial_convolution_equivalent_congruent_left

Formal coefficient equivalence of the left factor preserves two actual products at arbitrary representation lengths, including empty factors; actual leading padding is recovered in the appropriate direction.

Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.

Coefficients are highest-degree-first. The divisor has a nonzero decoded head; primality supplies its actual inverse. Empty quotients and remainders are included. Functionality compares the constructed execution lengths and decoded coefficients, never arbitrary beta codes. Formal polynomial equivalence compares every coefficient, not evaluations on a finite field. The formal identity and remainder-degree bound are proved separately, not assumed by the execution graph. Arbitrary quotient/remainder-pair uniqueness from a formal identity, multiplication associativity, gcd/Bezout, irreducible-polynomial existence, and the full G091 prime-power-field goal remain open. The seven displayed new names are conservative first-order notation, not new kernel primitives.

Exact theorem in conservative defined notation

∀ p. ∀ ab. ∀ ac. ∀ L. ∀ bb. ∀ bc. ∀ M. ∀ cb. ∀ cc. ∀ N. ∀ AB. ∀ AC. ∀ H. ∀ CB. ∀ CC. ∀ K. ¬p = 0 → PolynomialEquivalent(ab,ac,L,AB,AC,H)FpPolyProduct(p,ab,ac,L,bb,bc,M,cb,cc,N)FpPolyProduct(p,AB,AC,H,bb,bc,M,CB,CC,K)PolynomialEquivalent(cb,cc,N,CB,CC,K)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall p ab ac L bb bc M cb cc N AB AC H CB CC K. (~(p=0)) -> (forall pfrep_power_congruent_factor_left pfrep_left_congruent_factor_left pfrep_right_congruent_factor_left. ((exists pfrep_position_congruent_factor_leftfirst. ((pfrep_position_congruent_factor_leftfirst+S (pfrep_power_congruent_factor_left)=(L)) /\ ((((exists ff_h_pfp_congruent_factor_leftfirstentry. ff_h_pfp_congruent_factor_leftfirstentry + S (pfrep_left_congruent_factor_left) = S ((S (pfrep_position_congruent_factor_leftfirst)) * ac)) /\ exists ff_q_pfp_congruent_factor_leftfirstentry. ab = ff_q_pfp_congruent_factor_leftfirstentry * S ((S (pfrep_position_congruent_factor_leftfirst)) * ac) + (pfrep_left_congruent_factor_left)))))) \/ (((exists pfrep_gap_congruent_factor_leftfirstoutside. pfrep_gap_congruent_factor_leftfirstoutside+(L)=(pfrep_power_congruent_factor_left)) /\ (((pfrep_left_congruent_factor_left)=0))))) -> ((exists pfrep_position_congruent_factor_leftsecond. ((pfrep_position_congruent_factor_leftsecond+S (pfrep_power_congruent_factor_left)=(H)) /\ ((((exists ff_h_pfp_congruent_factor_leftsecondentry. ff_h_pfp_congruent_factor_leftsecondentry + S (pfrep_right_congruent_factor_left) = S ((S (pfrep_position_congruent_factor_leftsecond)) * AC)) /\ exists ff_q_pfp_congruent_factor_leftsecondentry. AB = ff_q_pfp_congruent_factor_leftsecondentry * S ((S (pfrep_position_congruent_factor_leftsecond)) * AC) + (pfrep_right_congruent_factor_left)))))) \/ (((exists pfrep_gap_congruent_factor_leftsecondoutside. pfrep_gap_congruent_factor_leftsecondoutside+(H)=(pfrep_power_congruent_factor_left)) /\ (((pfrep_right_congruent_factor_left)=0))))) -> pfrep_left_congruent_factor_left=pfrep_right_congruent_factor_left) -> (((forall fom_index_pfp_congruent_original_leftleft. (exists fom_gap_pfp_congruent_original_leftleft_index_bound. fom_gap_pfp_congruent_original_leftleft_index_bound + S (fom_index_pfp_congruent_original_leftleft) = L) -> exists fom_value_pfp_congruent_original_leftleft. ((((exists fom_beta_height_pfp_congruent_original_leftleft_entry. fom_beta_height_pfp_congruent_original_leftleft_entry + S (fom_value_pfp_congruent_original_leftleft) = S ((S (fom_index_pfp_congruent_original_leftleft)) * ac)) /\ exists fom_beta_quotient_pfp_congruent_original_leftleft_entry. ab = fom_beta_quotient_pfp_congruent_original_leftleft_entry * S ((S (fom_index_pfp_congruent_original_leftleft)) * ac) + (fom_value_pfp_congruent_original_leftleft))) /\ (exists fom_gap_pfp_congruent_original_leftleft_value_bound. fom_gap_pfp_congruent_original_leftleft_value_bound + S (fom_value_pfp_congruent_original_leftleft) = p))) /\ (((forall fom_index_pfp_congruent_original_leftright. (exists fom_gap_pfp_congruent_original_leftright_index_bound. fom_gap_pfp_congruent_original_leftright_index_bound + S (fom_index_pfp_congruent_original_leftright) = M) -> exists fom_value_pfp_congruent_original_leftright. ((((exists fom_beta_height_pfp_congruent_original_leftright_entry. fom_beta_height_pfp_congruent_original_leftright_entry + S (fom_value_pfp_congruent_original_leftright) = S ((S (fom_index_pfp_congruent_original_leftright)) * bc)) /\ exists fom_beta_quotient_pfp_congruent_original_leftright_entry. bb = fom_beta_quotient_pfp_congruent_original_leftright_entry * S ((S (fom_index_pfp_congruent_original_leftright)) * bc) + (fom_value_pfp_congruent_original_leftright))) /\ (exists fom_gap_pfp_congruent_original_leftright_value_bound. fom_gap_pfp_congruent_original_leftright_value_bound + S (fom_value_pfp_congruent_original_leftright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_congruent_original_leftcoefficients. (exists pfa_gap_congruent_original_leftcoefficientsbound. pfa_gap_congruent_original_leftcoefficientsbound + S (pfc_index_congruent_original_leftcoefficients) = (N)) -> exists pfc_value_congruent_original_leftcoefficients. ((((exists ff_h_pfp_congruent_original_leftcoefficientsentry. ff_h_pfp_congruent_original_leftcoefficientsentry + S (pfc_value_congruent_original_leftcoefficients) = S ((S (pfc_index_congruent_original_leftcoefficients)) * cc)) /\ exists ff_q_pfp_congruent_original_leftcoefficientsentry. cb = ff_q_pfp_congruent_original_leftcoefficientsentry * S ((S (pfc_index_congruent_original_leftcoefficients)) * cc) + (pfc_value_congruent_original_leftcoefficients))) /\ ((exists pfc_terms_code_congruent_original_leftcoefficientscoefficient pfc_terms_scale_congruent_original_leftcoefficientscoefficient pfc_natural_sum_congruent_original_leftcoefficientscoefficient. ((forall pfc_index_congruent_original_leftcoefficientscoefficientdiagonal. (exists pfa_gap_congruent_original_leftcoefficientscoefficientdiagonalbound. pfa_gap_congruent_original_leftcoefficientscoefficientdiagonalbound + S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal) = (S (pfc_index_congruent_original_leftcoefficients))) -> exists pfc_value_congruent_original_leftcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonalentry. ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonalentry + S (pfc_value_congruent_original_leftcoefficientscoefficientdiagonal) = S ((S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_original_leftcoefficientscoefficient)) /\ exists ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonalentry. pfc_terms_code_congruent_original_leftcoefficientscoefficient = ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonalentry * S ((S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_original_leftcoefficientscoefficient) + (pfc_value_congruent_original_leftcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm. (((pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)+pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm=(pfc_index_congruent_original_leftcoefficients)) /\ ((((((exists pfa_gap_congruent_original_leftcoefficientscoefficientdiagonaltermleftinside. pfa_gap_congruent_original_leftcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) * ac) + (pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_original_leftcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_congruent_original_leftcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_congruent_original_leftcoefficientscoefficientdiagonal)) /\ (((pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_congruent_original_leftcoefficientscoefficientdiagonaltermrightinside. pfa_gap_congruent_original_leftcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_congruent_original_leftcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_original_leftcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_congruent_original_leftcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_congruent_original_leftcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_congruent_original_leftcoefficientscoefficientdiagonal)=pfc_left_congruent_original_leftcoefficientscoefficientdiagonalterm*pfc_right_congruent_original_leftcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_congruent_original_leftcoefficientscoefficientsum fs_v_pfc_congruent_original_leftcoefficientscoefficientsum. ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_start. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_start. fs_u_pfc_congruent_original_leftcoefficientscoefficientsum = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_terminal. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_congruent_original_leftcoefficientscoefficient) = S ((S (S (pfc_index_congruent_original_leftcoefficients))) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_terminal. fs_u_pfc_congruent_original_leftcoefficientscoefficientsum = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_congruent_original_leftcoefficients))) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum) + (pfc_natural_sum_congruent_original_leftcoefficientscoefficient))) /\ forall fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps = S (pfc_index_congruent_original_leftcoefficients)) -> exists fs_a_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps fs_r_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps fs_s_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_original_leftcoefficientscoefficient)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_congruent_original_leftcoefficientscoefficient = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_original_leftcoefficientscoefficient) + (fs_a_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_congruent_original_leftcoefficientscoefficientsum = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum) + (fs_r_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_congruent_original_leftcoefficientscoefficientsum = fs_q_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_original_leftcoefficientscoefficientsum) + (fs_s_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps = fs_r_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps + fs_a_pfc_congruent_original_leftcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_congruent_original_leftcoefficientscoefficientresiduebound. pfa_gap_congruent_original_leftcoefficientscoefficientresiduebound + S (pfc_value_congruent_original_leftcoefficients) = (p)) /\ ((exists pfa_offset_left_congruent_original_leftcoefficientscoefficientresiduecongruence pfa_offset_right_congruent_original_leftcoefficientscoefficientresiduecongruence. (pfc_natural_sum_congruent_original_leftcoefficientscoefficient) + (p) * pfa_offset_left_congruent_original_leftcoefficientscoefficientresiduecongruence = (pfc_value_congruent_original_leftcoefficients) + (p) * pfa_offset_right_congruent_original_leftcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_congruent_other_leftleft. (exists fom_gap_pfp_congruent_other_leftleft_index_bound. fom_gap_pfp_congruent_other_leftleft_index_bound + S (fom_index_pfp_congruent_other_leftleft) = H) -> exists fom_value_pfp_congruent_other_leftleft. ((((exists fom_beta_height_pfp_congruent_other_leftleft_entry. fom_beta_height_pfp_congruent_other_leftleft_entry + S (fom_value_pfp_congruent_other_leftleft) = S ((S (fom_index_pfp_congruent_other_leftleft)) * AC)) /\ exists fom_beta_quotient_pfp_congruent_other_leftleft_entry. AB = fom_beta_quotient_pfp_congruent_other_leftleft_entry * S ((S (fom_index_pfp_congruent_other_leftleft)) * AC) + (fom_value_pfp_congruent_other_leftleft))) /\ (exists fom_gap_pfp_congruent_other_leftleft_value_bound. fom_gap_pfp_congruent_other_leftleft_value_bound + S (fom_value_pfp_congruent_other_leftleft) = p))) /\ (((forall fom_index_pfp_congruent_other_leftright. (exists fom_gap_pfp_congruent_other_leftright_index_bound. fom_gap_pfp_congruent_other_leftright_index_bound + S (fom_index_pfp_congruent_other_leftright) = M) -> exists fom_value_pfp_congruent_other_leftright. ((((exists fom_beta_height_pfp_congruent_other_leftright_entry. fom_beta_height_pfp_congruent_other_leftright_entry + S (fom_value_pfp_congruent_other_leftright) = S ((S (fom_index_pfp_congruent_other_leftright)) * bc)) /\ exists fom_beta_quotient_pfp_congruent_other_leftright_entry. bb = fom_beta_quotient_pfp_congruent_other_leftright_entry * S ((S (fom_index_pfp_congruent_other_leftright)) * bc) + (fom_value_pfp_congruent_other_leftright))) /\ (exists fom_gap_pfp_congruent_other_leftright_value_bound. fom_gap_pfp_congruent_other_leftright_value_bound + S (fom_value_pfp_congruent_other_leftright) = p))) /\ (((((((H)=0 \/ (M)=0) /\ (((K)=0)))) \/ (((~((H)=0)) /\ (((~((M)=0)) /\ (((H)+(M)=S (K)))))))) /\ ((forall pfc_index_congruent_other_leftcoefficients. (exists pfa_gap_congruent_other_leftcoefficientsbound. pfa_gap_congruent_other_leftcoefficientsbound + S (pfc_index_congruent_other_leftcoefficients) = (K)) -> exists pfc_value_congruent_other_leftcoefficients. ((((exists ff_h_pfp_congruent_other_leftcoefficientsentry. ff_h_pfp_congruent_other_leftcoefficientsentry + S (pfc_value_congruent_other_leftcoefficients) = S ((S (pfc_index_congruent_other_leftcoefficients)) * CC)) /\ exists ff_q_pfp_congruent_other_leftcoefficientsentry. CB = ff_q_pfp_congruent_other_leftcoefficientsentry * S ((S (pfc_index_congruent_other_leftcoefficients)) * CC) + (pfc_value_congruent_other_leftcoefficients))) /\ ((exists pfc_terms_code_congruent_other_leftcoefficientscoefficient pfc_terms_scale_congruent_other_leftcoefficientscoefficient pfc_natural_sum_congruent_other_leftcoefficientscoefficient. ((forall pfc_index_congruent_other_leftcoefficientscoefficientdiagonal. (exists pfa_gap_congruent_other_leftcoefficientscoefficientdiagonalbound. pfa_gap_congruent_other_leftcoefficientscoefficientdiagonalbound + S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal) = (S (pfc_index_congruent_other_leftcoefficients))) -> exists pfc_value_congruent_other_leftcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonalentry. ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonalentry + S (pfc_value_congruent_other_leftcoefficientscoefficientdiagonal) = S ((S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_other_leftcoefficientscoefficient)) /\ exists ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonalentry. pfc_terms_code_congruent_other_leftcoefficientscoefficient = ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonalentry * S ((S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) * pfc_terms_scale_congruent_other_leftcoefficientscoefficient) + (pfc_value_congruent_other_leftcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm. (((pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)+pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm=(pfc_index_congruent_other_leftcoefficients)) /\ ((((((exists pfa_gap_congruent_other_leftcoefficientscoefficientdiagonaltermleftinside. pfa_gap_congruent_other_leftcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal) = (H)) /\ ((((exists ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) * AC)) /\ exists ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermleftentry. AB = ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) * AC) + (pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_other_leftcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_congruent_other_leftcoefficientscoefficientdiagonaltermleftoutside+(H)=(pfc_index_congruent_other_leftcoefficientscoefficientdiagonal)) /\ (((pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_congruent_other_leftcoefficientscoefficientdiagonaltermrightinside. pfa_gap_congruent_other_leftcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_congruent_other_leftcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_congruent_other_leftcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_congruent_other_leftcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_congruent_other_leftcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_congruent_other_leftcoefficientscoefficientdiagonal)=pfc_left_congruent_other_leftcoefficientscoefficientdiagonalterm*pfc_right_congruent_other_leftcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_congruent_other_leftcoefficientscoefficientsum fs_v_pfc_congruent_other_leftcoefficientscoefficientsum. ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_start. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_start. fs_u_pfc_congruent_other_leftcoefficientscoefficientsum = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_terminal. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_congruent_other_leftcoefficientscoefficient) = S ((S (S (pfc_index_congruent_other_leftcoefficients))) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_terminal. fs_u_pfc_congruent_other_leftcoefficientscoefficientsum = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_congruent_other_leftcoefficients))) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum) + (pfc_natural_sum_congruent_other_leftcoefficientscoefficient))) /\ forall fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps = S (pfc_index_congruent_other_leftcoefficients)) -> exists fs_a_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps fs_r_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps fs_s_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_other_leftcoefficientscoefficient)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_congruent_other_leftcoefficientscoefficient = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_congruent_other_leftcoefficientscoefficient) + (fs_a_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_congruent_other_leftcoefficientscoefficientsum = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum) + (fs_r_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum)) /\ exists fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_congruent_other_leftcoefficientscoefficientsum = fs_q_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)) * fs_v_pfc_congruent_other_leftcoefficientscoefficientsum) + (fs_s_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps = fs_r_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps + fs_a_pfc_congruent_other_leftcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_congruent_other_leftcoefficientscoefficientresiduebound. pfa_gap_congruent_other_leftcoefficientscoefficientresiduebound + S (pfc_value_congruent_other_leftcoefficients) = (p)) /\ ((exists pfa_offset_left_congruent_other_leftcoefficientscoefficientresiduecongruence pfa_offset_right_congruent_other_leftcoefficientscoefficientresiduecongruence. (pfc_natural_sum_congruent_other_leftcoefficientscoefficient) + (p) * pfa_offset_left_congruent_other_leftcoefficientscoefficientresiduecongruence = (pfc_value_congruent_other_leftcoefficients) + (p) * pfa_offset_right_congruent_other_leftcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfrep_power_congruent_output_left pfrep_left_congruent_output_left pfrep_right_congruent_output_left. ((exists pfrep_position_congruent_output_leftfirst. ((pfrep_position_congruent_output_leftfirst+S (pfrep_power_congruent_output_left)=(N)) /\ ((((exists ff_h_pfp_congruent_output_leftfirstentry. ff_h_pfp_congruent_output_leftfirstentry + S (pfrep_left_congruent_output_left) = S ((S (pfrep_position_congruent_output_leftfirst)) * cc)) /\ exists ff_q_pfp_congruent_output_leftfirstentry. cb = ff_q_pfp_congruent_output_leftfirstentry * S ((S (pfrep_position_congruent_output_leftfirst)) * cc) + (pfrep_left_congruent_output_left)))))) \/ (((exists pfrep_gap_congruent_output_leftfirstoutside. pfrep_gap_congruent_output_leftfirstoutside+(N)=(pfrep_power_congruent_output_left)) /\ (((pfrep_left_congruent_output_left)=0))))) -> ((exists pfrep_position_congruent_output_leftsecond. ((pfrep_position_congruent_output_leftsecond+S (pfrep_power_congruent_output_left)=(K)) /\ ((((exists ff_h_pfp_congruent_output_leftsecondentry. ff_h_pfp_congruent_output_leftsecondentry + S (pfrep_right_congruent_output_left) = S ((S (pfrep_position_congruent_output_leftsecond)) * CC)) /\ exists ff_q_pfp_congruent_output_leftsecondentry. CB = ff_q_pfp_congruent_output_leftsecondentry * S ((S (pfrep_position_congruent_output_leftsecond)) * CC) + (pfrep_right_congruent_output_left)))))) \/ (((exists pfrep_gap_congruent_output_leftsecondoutside. pfrep_gap_congruent_output_leftsecondoutside+(K)=(pfrep_power_congruent_output_left)) /\ (((pfrep_right_congruent_output_left)=0))))) -> pfrep_left_congruent_output_left=pfrep_right_congruent_output_left)

Complete tactic proof in conservative notation

All 117 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

117 script commands · 18 reading checkpoints · 3 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (3)
01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro p
  2. L2
    intro ab
  3. L3
    intro ac
  4. L4
    intro L
  5. L5
    intro bb
  6. L6
    intro bc
  7. L7
    intro M
  8. L8
    intro cb
  9. L9
    intro cc
  10. L10
    intro N
02Fix variables and assumptionsL11–20

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro AB
  2. L12
    intro AC
  3. L13
    intro H
  4. L14
    intro CB
  5. L15
    intro CC
  6. L16
    intro K
  7. L17
    intro hp
  8. L18
    intro he
  9. L19
    intro hc
  10. L20
    intro hd
03Establish horderL21–24

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le total.

  1. L21
    have horder : Le(L,H) ∨ Le(H,L)Definitions: Le(L,H)Le(H,L)Original native command in the exact edition
  2. L22
    specialize le_total (L)
  3. L23
    specialize le_total (H)
  4. L24
    apply le_total
04Separate the logical casesL25–26

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L25
    cases horder
  2. L26
    cases horder_left
05Establish hpaddingL27–36

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial equivalent implies left pad.

  1. L27
    have hpadding : PolynomialLeftPad(ab,ac,L,x,AB,AC)Definitions: PolynomialLeftPad(ab,ac,L,x,AB,AC)Original native command in the exact edition
  2. L28
    specialize prime_field_polynomial_equivalent_implies_left_pad (ab)
  3. L29
    specialize prime_field_polynomial_equivalent_implies_left_pad (ac)
  4. L30
    specialize prime_field_polynomial_equivalent_implies_left_pad (L)
  5. L31
    specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  6. L32
    specialize prime_field_polynomial_equivalent_implies_left_pad (AB)
  7. L33
    specialize prime_field_polynomial_equivalent_implies_left_pad (AC)
  8. L34
    apply prime_field_polynomial_equivalent_implies_left_pad
  9. L35
    rewrite horder_left_witness
  10. L36
    rewrite horder_left_witness
06Use earlier factsL37–46

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L37
    exact he
  2. L38
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (p)
  3. L39
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ab)
  4. L40
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ac)
  5. L41
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (L)
  6. L42
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bb)
  7. L43
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bc)
  8. L44
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (M)
  9. L45
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cb)
  10. L46
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cc)
07Use earlier factsL47–56

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L47
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (N)
  2. L48
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AB)
  3. L49
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AC)
  4. L50
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (x)
  5. L51
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CB)
  6. L52
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CC)
  7. L53
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (K)
  8. L54
    apply prime_field_polynomial_convolution_left_padding_equivalent_left
  9. L55
    exact hp
  10. L56
    exact hpadding
08Use earlier factsL57–57

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L57
    exact hc
09Calculate and transport equalitiesL58–63

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L58
    rewrite horder_left_witness
  2. L59
    rewrite horder_left_witness
  3. L60
    rewrite horder_left_witness
  4. L61
    rewrite horder_left_witness
  5. L62
    rewrite horder_left_witness
  6. L63
    rewrite horder_left_witness
10Use earlier factsL64–64

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L64
    exact hd
11Separate the logical casesL65–65

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L65
    cases horder_right
12Establish hpaddingL66–75

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial equivalent implies left pad.

  1. L66
    have hpadding : PolynomialLeftPad(AB,AC,H,x,ab,ac)Definitions: PolynomialLeftPad(AB,AC,H,x,ab,ac)Original native command in the exact edition
  2. L67
    specialize prime_field_polynomial_equivalent_implies_left_pad (AB)
  3. L68
    specialize prime_field_polynomial_equivalent_implies_left_pad (AC)
  4. L69
    specialize prime_field_polynomial_equivalent_implies_left_pad (H)
  5. L70
    specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  6. L71
    specialize prime_field_polynomial_equivalent_implies_left_pad (ab)
  7. L72
    specialize prime_field_polynomial_equivalent_implies_left_pad (ac)
  8. L73
    apply prime_field_polynomial_equivalent_implies_left_pad
  9. L74
    rewrite horder_right_witness
  10. L75
    rewrite horder_right_witness
13Use earlier factsL76–85

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L76
    specialize prime_field_polynomial_equivalent_symmetric (ab)
  2. L77
    specialize prime_field_polynomial_equivalent_symmetric (ac)
  3. L78
    specialize prime_field_polynomial_equivalent_symmetric (L)
  4. L79
    specialize prime_field_polynomial_equivalent_symmetric (AB)
  5. L80
    specialize prime_field_polynomial_equivalent_symmetric (AC)
  6. L81
    specialize prime_field_polynomial_equivalent_symmetric (H)
  7. L82
    apply prime_field_polynomial_equivalent_symmetric
  8. L83
    exact he
  9. L84
    specialize prime_field_polynomial_equivalent_symmetric (CB)
  10. L85
    specialize prime_field_polynomial_equivalent_symmetric (CC)
14Use earlier factsL86–95

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L86
    specialize prime_field_polynomial_equivalent_symmetric (K)
  2. L87
    specialize prime_field_polynomial_equivalent_symmetric (cb)
  3. L88
    specialize prime_field_polynomial_equivalent_symmetric (cc)
  4. L89
    specialize prime_field_polynomial_equivalent_symmetric (N)
  5. L90
    apply prime_field_polynomial_equivalent_symmetric
  6. L91
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (p)
  7. L92
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AB)
  8. L93
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AC)
  9. L94
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (H)
  10. L95
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bb)
15Use earlier factsL96–105

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L96
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bc)
  2. L97
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (M)
  3. L98
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CB)
  4. L99
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CC)
  5. L100
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (K)
  6. L101
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ab)
  7. L102
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ac)
  8. L103
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (x)
  9. L104
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cb)
  10. L105
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cc)
16Use earlier factsL106–110

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L106
    specialize prime_field_polynomial_convolution_left_padding_equivalent_left (N)
  2. L107
    apply prime_field_polynomial_convolution_left_padding_equivalent_left
  3. L108
    exact hp
  4. L109
    exact hpadding
  5. L110
    exact hd
17Calculate and transport equalitiesL111–116

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L111
    rewrite horder_right_witness
  2. L112
    rewrite horder_right_witness
  3. L113
    rewrite horder_right_witness
  4. L114
    rewrite horder_right_witness
  5. L115
    rewrite horder_right_witness
  6. L116
    rewrite horder_right_witness
18Use earlier factsL117–117

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L117
    exact hc

Library-wide reading audit

Original defined command ledger · 117 lines
  1. 0001intro p
  2. 0002intro ab
  3. 0003intro ac
  4. 0004intro L
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro M
  8. 0008intro cb
  9. 0009intro cc
  10. 0010intro N
  11. 0011intro AB
  12. 0012intro AC
  13. 0013intro H
  14. 0014intro CB
  15. 0015intro CC
  16. 0016intro K
  17. 0017intro hp
  18. 0018intro he
  19. 0019intro hc
  20. 0020intro hd
  21. 0021have horder : Le(L,H)Le(H,L)
  22. 0022specialize le_total (L)
  23. 0023specialize le_total (H)
  24. 0024apply le_total
  25. 0025cases horder
  26. 0026cases horder_left
  27. 0027have hpadding : PolynomialLeftPad(ab,ac,L,x,AB,AC)
  28. 0028specialize prime_field_polynomial_equivalent_implies_left_pad (ab)
  29. 0029specialize prime_field_polynomial_equivalent_implies_left_pad (ac)
  30. 0030specialize prime_field_polynomial_equivalent_implies_left_pad (L)
  31. 0031specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  32. 0032specialize prime_field_polynomial_equivalent_implies_left_pad (AB)
  33. 0033specialize prime_field_polynomial_equivalent_implies_left_pad (AC)
  34. 0034apply prime_field_polynomial_equivalent_implies_left_pad
  35. 0035rewrite horder_left_witness
  36. 0036rewrite horder_left_witness
  37. 0037exact he
  38. 0038specialize prime_field_polynomial_convolution_left_padding_equivalent_left (p)
  39. 0039specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ab)
  40. 0040specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ac)
  41. 0041specialize prime_field_polynomial_convolution_left_padding_equivalent_left (L)
  42. 0042specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bb)
  43. 0043specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bc)
  44. 0044specialize prime_field_polynomial_convolution_left_padding_equivalent_left (M)
  45. 0045specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cb)
  46. 0046specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cc)
  47. 0047specialize prime_field_polynomial_convolution_left_padding_equivalent_left (N)
  48. 0048specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AB)
  49. 0049specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AC)
  50. 0050specialize prime_field_polynomial_convolution_left_padding_equivalent_left (x)
  51. 0051specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CB)
  52. 0052specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CC)
  53. 0053specialize prime_field_polynomial_convolution_left_padding_equivalent_left (K)
  54. 0054apply prime_field_polynomial_convolution_left_padding_equivalent_left
  55. 0055exact hp
  56. 0056exact hpadding
  57. 0057exact hc
  58. 0058rewrite horder_left_witness
  59. 0059rewrite horder_left_witness
  60. 0060rewrite horder_left_witness
  61. 0061rewrite horder_left_witness
  62. 0062rewrite horder_left_witness
  63. 0063rewrite horder_left_witness
  64. 0064exact hd
  65. 0065cases horder_right
  66. 0066have hpadding : PolynomialLeftPad(AB,AC,H,x,ab,ac)
  67. 0067specialize prime_field_polynomial_equivalent_implies_left_pad (AB)
  68. 0068specialize prime_field_polynomial_equivalent_implies_left_pad (AC)
  69. 0069specialize prime_field_polynomial_equivalent_implies_left_pad (H)
  70. 0070specialize prime_field_polynomial_equivalent_implies_left_pad (x)
  71. 0071specialize prime_field_polynomial_equivalent_implies_left_pad (ab)
  72. 0072specialize prime_field_polynomial_equivalent_implies_left_pad (ac)
  73. 0073apply prime_field_polynomial_equivalent_implies_left_pad
  74. 0074rewrite horder_right_witness
  75. 0075rewrite horder_right_witness
  76. 0076specialize prime_field_polynomial_equivalent_symmetric (ab)
  77. 0077specialize prime_field_polynomial_equivalent_symmetric (ac)
  78. 0078specialize prime_field_polynomial_equivalent_symmetric (L)
  79. 0079specialize prime_field_polynomial_equivalent_symmetric (AB)
  80. 0080specialize prime_field_polynomial_equivalent_symmetric (AC)
  81. 0081specialize prime_field_polynomial_equivalent_symmetric (H)
  82. 0082apply prime_field_polynomial_equivalent_symmetric
  83. 0083exact he
  84. 0084specialize prime_field_polynomial_equivalent_symmetric (CB)
  85. 0085specialize prime_field_polynomial_equivalent_symmetric (CC)
  86. 0086specialize prime_field_polynomial_equivalent_symmetric (K)
  87. 0087specialize prime_field_polynomial_equivalent_symmetric (cb)
  88. 0088specialize prime_field_polynomial_equivalent_symmetric (cc)
  89. 0089specialize prime_field_polynomial_equivalent_symmetric (N)
  90. 0090apply prime_field_polynomial_equivalent_symmetric
  91. 0091specialize prime_field_polynomial_convolution_left_padding_equivalent_left (p)
  92. 0092specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AB)
  93. 0093specialize prime_field_polynomial_convolution_left_padding_equivalent_left (AC)
  94. 0094specialize prime_field_polynomial_convolution_left_padding_equivalent_left (H)
  95. 0095specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bb)
  96. 0096specialize prime_field_polynomial_convolution_left_padding_equivalent_left (bc)
  97. 0097specialize prime_field_polynomial_convolution_left_padding_equivalent_left (M)
  98. 0098specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CB)
  99. 0099specialize prime_field_polynomial_convolution_left_padding_equivalent_left (CC)
  100. 0100specialize prime_field_polynomial_convolution_left_padding_equivalent_left (K)
  101. 0101specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ab)
  102. 0102specialize prime_field_polynomial_convolution_left_padding_equivalent_left (ac)
  103. 0103specialize prime_field_polynomial_convolution_left_padding_equivalent_left (x)
  104. 0104specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cb)
  105. 0105specialize prime_field_polynomial_convolution_left_padding_equivalent_left (cc)
  106. 0106specialize prime_field_polynomial_convolution_left_padding_equivalent_left (N)
  107. 0107apply prime_field_polynomial_convolution_left_padding_equivalent_left
  108. 0108exact hp
  109. 0109exact hpadding
  110. 0110exact hd
  111. 0111rewrite horder_right_witness
  112. 0112rewrite horder_right_witness
  113. 0113rewrite horder_right_witness
  114. 0114rewrite horder_right_witness
  115. 0115rewrite horder_right_witness
  116. 0116rewrite horder_right_witness
  117. 0117exact hc