PG0025

prime_field_polynomial_convolution_associative_equivalent

Draft universal rightmost-length induction for formal equivalence of actual (A*B)*C and A*(B*C). The induction predicate quantifies all rightmost codes and proper-length output triples, the successor genuinely constructs three prefix products and decodes the actual endpoint, and the empty base retains arbitrary encodings. This statement is not a successful proof observation until its original body and its exact step dependency are genuinely checked.

Alpha v34 checked-use · first admitted v34 · 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.

All products and sums use actual beta-coded coefficients; equality is formal coefficient equivalence, not equality of evaluations or raw codes. The zero gcd is included. Uniqueness is up to formal equivalence, not unique Bézout coefficients. This proves the polynomial gcd component, not G091 irreducible-polynomial existence or arbitrary prime-power-field construction.

Exact theorem in conservative defined notation

∀ p. ∀ ab. ∀ ac. ∀ L. ∀ bb. ∀ bc. ∀ M. ∀ pb. ∀ pc. ∀ N. ∀ cb. ∀ cc. ∀ J. ∀ qb. ∀ qc. ∀ K. ∀ rb. ∀ rc. ∀ U. ∀ sb. ∀ sc. ∀ V. Prime(p)FpPolyProduct(p,ab,ac,L,bb,bc,M,pb,pc,N)FpPolyProduct(p,bb,bc,M,cb,cc,J,qb,qc,K)FpPolyProduct(p,pb,pc,N,cb,cc,J,rb,rc,U)FpPolyProduct(p,ab,ac,L,qb,qc,K,sb,sc,V)PolynomialEquivalent(rb,rc,U,sb,sc,V)

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 pb pc N cb cc J qb qc K rb rc U sb sc V. (~((p) = 1) /\ forall pfa_factor_left_associativity_prime pfa_factor_right_associativity_prime. (p) = pfa_factor_left_associativity_prime * pfa_factor_right_associativity_prime -> pfa_factor_left_associativity_prime = 1 \/ pfa_factor_right_associativity_prime = 1) -> (((forall fom_index_pfp_associativity_ABleft. (exists fom_gap_pfp_associativity_ABleft_index_bound. fom_gap_pfp_associativity_ABleft_index_bound + S (fom_index_pfp_associativity_ABleft) = L) -> exists fom_value_pfp_associativity_ABleft. ((((exists fom_beta_height_pfp_associativity_ABleft_entry. fom_beta_height_pfp_associativity_ABleft_entry + S (fom_value_pfp_associativity_ABleft) = S ((S (fom_index_pfp_associativity_ABleft)) * ac)) /\ exists fom_beta_quotient_pfp_associativity_ABleft_entry. ab = fom_beta_quotient_pfp_associativity_ABleft_entry * S ((S (fom_index_pfp_associativity_ABleft)) * ac) + (fom_value_pfp_associativity_ABleft))) /\ (exists fom_gap_pfp_associativity_ABleft_value_bound. fom_gap_pfp_associativity_ABleft_value_bound + S (fom_value_pfp_associativity_ABleft) = p))) /\ (((forall fom_index_pfp_associativity_ABright. (exists fom_gap_pfp_associativity_ABright_index_bound. fom_gap_pfp_associativity_ABright_index_bound + S (fom_index_pfp_associativity_ABright) = M) -> exists fom_value_pfp_associativity_ABright. ((((exists fom_beta_height_pfp_associativity_ABright_entry. fom_beta_height_pfp_associativity_ABright_entry + S (fom_value_pfp_associativity_ABright) = S ((S (fom_index_pfp_associativity_ABright)) * bc)) /\ exists fom_beta_quotient_pfp_associativity_ABright_entry. bb = fom_beta_quotient_pfp_associativity_ABright_entry * S ((S (fom_index_pfp_associativity_ABright)) * bc) + (fom_value_pfp_associativity_ABright))) /\ (exists fom_gap_pfp_associativity_ABright_value_bound. fom_gap_pfp_associativity_ABright_value_bound + S (fom_value_pfp_associativity_ABright) = p))) /\ (((((((L)=0 \/ (M)=0) /\ (((N)=0)))) \/ (((~((L)=0)) /\ (((~((M)=0)) /\ (((L)+(M)=S (N)))))))) /\ ((forall pfc_index_associativity_ABcoefficients. (exists pfa_gap_associativity_ABcoefficientsbound. pfa_gap_associativity_ABcoefficientsbound + S (pfc_index_associativity_ABcoefficients) = (N)) -> exists pfc_value_associativity_ABcoefficients. ((((exists ff_h_pfp_associativity_ABcoefficientsentry. ff_h_pfp_associativity_ABcoefficientsentry + S (pfc_value_associativity_ABcoefficients) = S ((S (pfc_index_associativity_ABcoefficients)) * pc)) /\ exists ff_q_pfp_associativity_ABcoefficientsentry. pb = ff_q_pfp_associativity_ABcoefficientsentry * S ((S (pfc_index_associativity_ABcoefficients)) * pc) + (pfc_value_associativity_ABcoefficients))) /\ ((exists pfc_terms_code_associativity_ABcoefficientscoefficient pfc_terms_scale_associativity_ABcoefficientscoefficient pfc_natural_sum_associativity_ABcoefficientscoefficient. ((forall pfc_index_associativity_ABcoefficientscoefficientdiagonal. (exists pfa_gap_associativity_ABcoefficientscoefficientdiagonalbound. pfa_gap_associativity_ABcoefficientscoefficientdiagonalbound + S (pfc_index_associativity_ABcoefficientscoefficientdiagonal) = (S (pfc_index_associativity_ABcoefficients))) -> exists pfc_value_associativity_ABcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_associativity_ABcoefficientscoefficientdiagonalentry. ff_h_pfp_associativity_ABcoefficientscoefficientdiagonalentry + S (pfc_value_associativity_ABcoefficientscoefficientdiagonal) = S ((S (pfc_index_associativity_ABcoefficientscoefficientdiagonal)) * pfc_terms_scale_associativity_ABcoefficientscoefficient)) /\ exists ff_q_pfp_associativity_ABcoefficientscoefficientdiagonalentry. pfc_terms_code_associativity_ABcoefficientscoefficient = ff_q_pfp_associativity_ABcoefficientscoefficientdiagonalentry * S ((S (pfc_index_associativity_ABcoefficientscoefficientdiagonal)) * pfc_terms_scale_associativity_ABcoefficientscoefficient) + (pfc_value_associativity_ABcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_associativity_ABcoefficientscoefficientdiagonalterm pfc_left_associativity_ABcoefficientscoefficientdiagonalterm pfc_right_associativity_ABcoefficientscoefficientdiagonalterm. (((pfc_index_associativity_ABcoefficientscoefficientdiagonal)+pfc_complement_associativity_ABcoefficientscoefficientdiagonalterm=(pfc_index_associativity_ABcoefficients)) /\ ((((((exists pfa_gap_associativity_ABcoefficientscoefficientdiagonaltermleftinside. pfa_gap_associativity_ABcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_associativity_ABcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_associativity_ABcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_associativity_ABcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_associativity_ABcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_associativity_ABcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_associativity_ABcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_associativity_ABcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_associativity_ABcoefficientscoefficientdiagonal)) * ac) + (pfc_left_associativity_ABcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_associativity_ABcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_associativity_ABcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_associativity_ABcoefficientscoefficientdiagonal)) /\ (((pfc_left_associativity_ABcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_associativity_ABcoefficientscoefficientdiagonaltermrightinside. pfa_gap_associativity_ABcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_associativity_ABcoefficientscoefficientdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_associativity_ABcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_associativity_ABcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_associativity_ABcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_associativity_ABcoefficientscoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_associativity_ABcoefficientscoefficientdiagonaltermrightentry. bb = ff_q_pfp_associativity_ABcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_associativity_ABcoefficientscoefficientdiagonalterm)) * bc) + (pfc_right_associativity_ABcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_associativity_ABcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_associativity_ABcoefficientscoefficientdiagonaltermrightoutside+(M)=(pfc_complement_associativity_ABcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_associativity_ABcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_associativity_ABcoefficientscoefficientdiagonal)=pfc_left_associativity_ABcoefficientscoefficientdiagonalterm*pfc_right_associativity_ABcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_associativity_ABcoefficientscoefficientsum fs_v_pfc_associativity_ABcoefficientscoefficientsum. ((((exists fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_start. fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_associativity_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_start. fs_u_pfc_associativity_ABcoefficientscoefficientsum = fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_associativity_ABcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_terminal. fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_associativity_ABcoefficientscoefficient) = S ((S (S (pfc_index_associativity_ABcoefficients))) * fs_v_pfc_associativity_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_terminal. fs_u_pfc_associativity_ABcoefficientscoefficientsum = fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_associativity_ABcoefficients))) * fs_v_pfc_associativity_ABcoefficientscoefficientsum) + (pfc_natural_sum_associativity_ABcoefficientscoefficient))) /\ forall fs_i_pfc_associativity_ABcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_associativity_ABcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_associativity_ABcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_associativity_ABcoefficientscoefficientsum_body_steps = S (pfc_index_associativity_ABcoefficients)) -> exists fs_a_pfc_associativity_ABcoefficientscoefficientsum_body_steps fs_r_pfc_associativity_ABcoefficientscoefficientsum_body_steps fs_s_pfc_associativity_ABcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_associativity_ABcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_associativity_ABcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_associativity_ABcoefficientscoefficient)) /\ exists fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_associativity_ABcoefficientscoefficient = fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_associativity_ABcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_associativity_ABcoefficientscoefficient) + (fs_a_pfc_associativity_ABcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_associativity_ABcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_associativity_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_associativity_ABcoefficientscoefficientsum = fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_associativity_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_ABcoefficientscoefficientsum) + (fs_r_pfc_associativity_ABcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_associativity_ABcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_associativity_ABcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_associativity_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_ABcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_associativity_ABcoefficientscoefficientsum = fs_q_pfc_associativity_ABcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_associativity_ABcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_ABcoefficientscoefficientsum) + (fs_s_pfc_associativity_ABcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_associativity_ABcoefficientscoefficientsum_body_steps = fs_r_pfc_associativity_ABcoefficientscoefficientsum_body_steps + fs_a_pfc_associativity_ABcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_associativity_ABcoefficientscoefficientresiduebound. pfa_gap_associativity_ABcoefficientscoefficientresiduebound + S (pfc_value_associativity_ABcoefficients) = (p)) /\ ((exists pfa_offset_left_associativity_ABcoefficientscoefficientresiduecongruence pfa_offset_right_associativity_ABcoefficientscoefficientresiduecongruence. (pfc_natural_sum_associativity_ABcoefficientscoefficient) + (p) * pfa_offset_left_associativity_ABcoefficientscoefficientresiduecongruence = (pfc_value_associativity_ABcoefficients) + (p) * pfa_offset_right_associativity_ABcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_associativity_BCleft. (exists fom_gap_pfp_associativity_BCleft_index_bound. fom_gap_pfp_associativity_BCleft_index_bound + S (fom_index_pfp_associativity_BCleft) = M) -> exists fom_value_pfp_associativity_BCleft. ((((exists fom_beta_height_pfp_associativity_BCleft_entry. fom_beta_height_pfp_associativity_BCleft_entry + S (fom_value_pfp_associativity_BCleft) = S ((S (fom_index_pfp_associativity_BCleft)) * bc)) /\ exists fom_beta_quotient_pfp_associativity_BCleft_entry. bb = fom_beta_quotient_pfp_associativity_BCleft_entry * S ((S (fom_index_pfp_associativity_BCleft)) * bc) + (fom_value_pfp_associativity_BCleft))) /\ (exists fom_gap_pfp_associativity_BCleft_value_bound. fom_gap_pfp_associativity_BCleft_value_bound + S (fom_value_pfp_associativity_BCleft) = p))) /\ (((forall fom_index_pfp_associativity_BCright. (exists fom_gap_pfp_associativity_BCright_index_bound. fom_gap_pfp_associativity_BCright_index_bound + S (fom_index_pfp_associativity_BCright) = J) -> exists fom_value_pfp_associativity_BCright. ((((exists fom_beta_height_pfp_associativity_BCright_entry. fom_beta_height_pfp_associativity_BCright_entry + S (fom_value_pfp_associativity_BCright) = S ((S (fom_index_pfp_associativity_BCright)) * cc)) /\ exists fom_beta_quotient_pfp_associativity_BCright_entry. cb = fom_beta_quotient_pfp_associativity_BCright_entry * S ((S (fom_index_pfp_associativity_BCright)) * cc) + (fom_value_pfp_associativity_BCright))) /\ (exists fom_gap_pfp_associativity_BCright_value_bound. fom_gap_pfp_associativity_BCright_value_bound + S (fom_value_pfp_associativity_BCright) = p))) /\ (((((((M)=0 \/ (J)=0) /\ (((K)=0)))) \/ (((~((M)=0)) /\ (((~((J)=0)) /\ (((M)+(J)=S (K)))))))) /\ ((forall pfc_index_associativity_BCcoefficients. (exists pfa_gap_associativity_BCcoefficientsbound. pfa_gap_associativity_BCcoefficientsbound + S (pfc_index_associativity_BCcoefficients) = (K)) -> exists pfc_value_associativity_BCcoefficients. ((((exists ff_h_pfp_associativity_BCcoefficientsentry. ff_h_pfp_associativity_BCcoefficientsentry + S (pfc_value_associativity_BCcoefficients) = S ((S (pfc_index_associativity_BCcoefficients)) * qc)) /\ exists ff_q_pfp_associativity_BCcoefficientsentry. qb = ff_q_pfp_associativity_BCcoefficientsentry * S ((S (pfc_index_associativity_BCcoefficients)) * qc) + (pfc_value_associativity_BCcoefficients))) /\ ((exists pfc_terms_code_associativity_BCcoefficientscoefficient pfc_terms_scale_associativity_BCcoefficientscoefficient pfc_natural_sum_associativity_BCcoefficientscoefficient. ((forall pfc_index_associativity_BCcoefficientscoefficientdiagonal. (exists pfa_gap_associativity_BCcoefficientscoefficientdiagonalbound. pfa_gap_associativity_BCcoefficientscoefficientdiagonalbound + S (pfc_index_associativity_BCcoefficientscoefficientdiagonal) = (S (pfc_index_associativity_BCcoefficients))) -> exists pfc_value_associativity_BCcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_associativity_BCcoefficientscoefficientdiagonalentry. ff_h_pfp_associativity_BCcoefficientscoefficientdiagonalentry + S (pfc_value_associativity_BCcoefficientscoefficientdiagonal) = S ((S (pfc_index_associativity_BCcoefficientscoefficientdiagonal)) * pfc_terms_scale_associativity_BCcoefficientscoefficient)) /\ exists ff_q_pfp_associativity_BCcoefficientscoefficientdiagonalentry. pfc_terms_code_associativity_BCcoefficientscoefficient = ff_q_pfp_associativity_BCcoefficientscoefficientdiagonalentry * S ((S (pfc_index_associativity_BCcoefficientscoefficientdiagonal)) * pfc_terms_scale_associativity_BCcoefficientscoefficient) + (pfc_value_associativity_BCcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_associativity_BCcoefficientscoefficientdiagonalterm pfc_left_associativity_BCcoefficientscoefficientdiagonalterm pfc_right_associativity_BCcoefficientscoefficientdiagonalterm. (((pfc_index_associativity_BCcoefficientscoefficientdiagonal)+pfc_complement_associativity_BCcoefficientscoefficientdiagonalterm=(pfc_index_associativity_BCcoefficients)) /\ ((((((exists pfa_gap_associativity_BCcoefficientscoefficientdiagonaltermleftinside. pfa_gap_associativity_BCcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_associativity_BCcoefficientscoefficientdiagonal) = (M)) /\ ((((exists ff_h_pfp_associativity_BCcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_associativity_BCcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_associativity_BCcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_associativity_BCcoefficientscoefficientdiagonal)) * bc)) /\ exists ff_q_pfp_associativity_BCcoefficientscoefficientdiagonaltermleftentry. bb = ff_q_pfp_associativity_BCcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_associativity_BCcoefficientscoefficientdiagonal)) * bc) + (pfc_left_associativity_BCcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_associativity_BCcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_associativity_BCcoefficientscoefficientdiagonaltermleftoutside+(M)=(pfc_index_associativity_BCcoefficientscoefficientdiagonal)) /\ (((pfc_left_associativity_BCcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_associativity_BCcoefficientscoefficientdiagonaltermrightinside. pfa_gap_associativity_BCcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_associativity_BCcoefficientscoefficientdiagonalterm) = (J)) /\ ((((exists ff_h_pfp_associativity_BCcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_associativity_BCcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_associativity_BCcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_associativity_BCcoefficientscoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_associativity_BCcoefficientscoefficientdiagonaltermrightentry. cb = ff_q_pfp_associativity_BCcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_associativity_BCcoefficientscoefficientdiagonalterm)) * cc) + (pfc_right_associativity_BCcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_associativity_BCcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_associativity_BCcoefficientscoefficientdiagonaltermrightoutside+(J)=(pfc_complement_associativity_BCcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_associativity_BCcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_associativity_BCcoefficientscoefficientdiagonal)=pfc_left_associativity_BCcoefficientscoefficientdiagonalterm*pfc_right_associativity_BCcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_associativity_BCcoefficientscoefficientsum fs_v_pfc_associativity_BCcoefficientscoefficientsum. ((((exists fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_start. fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_associativity_BCcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_start. fs_u_pfc_associativity_BCcoefficientscoefficientsum = fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_associativity_BCcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_terminal. fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_associativity_BCcoefficientscoefficient) = S ((S (S (pfc_index_associativity_BCcoefficients))) * fs_v_pfc_associativity_BCcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_terminal. fs_u_pfc_associativity_BCcoefficientscoefficientsum = fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_associativity_BCcoefficients))) * fs_v_pfc_associativity_BCcoefficientscoefficientsum) + (pfc_natural_sum_associativity_BCcoefficientscoefficient))) /\ forall fs_i_pfc_associativity_BCcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_associativity_BCcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_associativity_BCcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_associativity_BCcoefficientscoefficientsum_body_steps = S (pfc_index_associativity_BCcoefficients)) -> exists fs_a_pfc_associativity_BCcoefficientscoefficientsum_body_steps fs_r_pfc_associativity_BCcoefficientscoefficientsum_body_steps fs_s_pfc_associativity_BCcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_associativity_BCcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_associativity_BCcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_associativity_BCcoefficientscoefficient)) /\ exists fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_associativity_BCcoefficientscoefficient = fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_associativity_BCcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_associativity_BCcoefficientscoefficient) + (fs_a_pfc_associativity_BCcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_associativity_BCcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_associativity_BCcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_BCcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_associativity_BCcoefficientscoefficientsum = fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_associativity_BCcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_BCcoefficientscoefficientsum) + (fs_r_pfc_associativity_BCcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_associativity_BCcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_associativity_BCcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_associativity_BCcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_BCcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_associativity_BCcoefficientscoefficientsum = fs_q_pfc_associativity_BCcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_associativity_BCcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_BCcoefficientscoefficientsum) + (fs_s_pfc_associativity_BCcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_associativity_BCcoefficientscoefficientsum_body_steps = fs_r_pfc_associativity_BCcoefficientscoefficientsum_body_steps + fs_a_pfc_associativity_BCcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_associativity_BCcoefficientscoefficientresiduebound. pfa_gap_associativity_BCcoefficientscoefficientresiduebound + S (pfc_value_associativity_BCcoefficients) = (p)) /\ ((exists pfa_offset_left_associativity_BCcoefficientscoefficientresiduecongruence pfa_offset_right_associativity_BCcoefficientscoefficientresiduecongruence. (pfc_natural_sum_associativity_BCcoefficientscoefficient) + (p) * pfa_offset_left_associativity_BCcoefficientscoefficientresiduecongruence = (pfc_value_associativity_BCcoefficients) + (p) * pfa_offset_right_associativity_BCcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_associativity_PCleft. (exists fom_gap_pfp_associativity_PCleft_index_bound. fom_gap_pfp_associativity_PCleft_index_bound + S (fom_index_pfp_associativity_PCleft) = N) -> exists fom_value_pfp_associativity_PCleft. ((((exists fom_beta_height_pfp_associativity_PCleft_entry. fom_beta_height_pfp_associativity_PCleft_entry + S (fom_value_pfp_associativity_PCleft) = S ((S (fom_index_pfp_associativity_PCleft)) * pc)) /\ exists fom_beta_quotient_pfp_associativity_PCleft_entry. pb = fom_beta_quotient_pfp_associativity_PCleft_entry * S ((S (fom_index_pfp_associativity_PCleft)) * pc) + (fom_value_pfp_associativity_PCleft))) /\ (exists fom_gap_pfp_associativity_PCleft_value_bound. fom_gap_pfp_associativity_PCleft_value_bound + S (fom_value_pfp_associativity_PCleft) = p))) /\ (((forall fom_index_pfp_associativity_PCright. (exists fom_gap_pfp_associativity_PCright_index_bound. fom_gap_pfp_associativity_PCright_index_bound + S (fom_index_pfp_associativity_PCright) = J) -> exists fom_value_pfp_associativity_PCright. ((((exists fom_beta_height_pfp_associativity_PCright_entry. fom_beta_height_pfp_associativity_PCright_entry + S (fom_value_pfp_associativity_PCright) = S ((S (fom_index_pfp_associativity_PCright)) * cc)) /\ exists fom_beta_quotient_pfp_associativity_PCright_entry. cb = fom_beta_quotient_pfp_associativity_PCright_entry * S ((S (fom_index_pfp_associativity_PCright)) * cc) + (fom_value_pfp_associativity_PCright))) /\ (exists fom_gap_pfp_associativity_PCright_value_bound. fom_gap_pfp_associativity_PCright_value_bound + S (fom_value_pfp_associativity_PCright) = p))) /\ (((((((N)=0 \/ (J)=0) /\ (((U)=0)))) \/ (((~((N)=0)) /\ (((~((J)=0)) /\ (((N)+(J)=S (U)))))))) /\ ((forall pfc_index_associativity_PCcoefficients. (exists pfa_gap_associativity_PCcoefficientsbound. pfa_gap_associativity_PCcoefficientsbound + S (pfc_index_associativity_PCcoefficients) = (U)) -> exists pfc_value_associativity_PCcoefficients. ((((exists ff_h_pfp_associativity_PCcoefficientsentry. ff_h_pfp_associativity_PCcoefficientsentry + S (pfc_value_associativity_PCcoefficients) = S ((S (pfc_index_associativity_PCcoefficients)) * rc)) /\ exists ff_q_pfp_associativity_PCcoefficientsentry. rb = ff_q_pfp_associativity_PCcoefficientsentry * S ((S (pfc_index_associativity_PCcoefficients)) * rc) + (pfc_value_associativity_PCcoefficients))) /\ ((exists pfc_terms_code_associativity_PCcoefficientscoefficient pfc_terms_scale_associativity_PCcoefficientscoefficient pfc_natural_sum_associativity_PCcoefficientscoefficient. ((forall pfc_index_associativity_PCcoefficientscoefficientdiagonal. (exists pfa_gap_associativity_PCcoefficientscoefficientdiagonalbound. pfa_gap_associativity_PCcoefficientscoefficientdiagonalbound + S (pfc_index_associativity_PCcoefficientscoefficientdiagonal) = (S (pfc_index_associativity_PCcoefficients))) -> exists pfc_value_associativity_PCcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_associativity_PCcoefficientscoefficientdiagonalentry. ff_h_pfp_associativity_PCcoefficientscoefficientdiagonalentry + S (pfc_value_associativity_PCcoefficientscoefficientdiagonal) = S ((S (pfc_index_associativity_PCcoefficientscoefficientdiagonal)) * pfc_terms_scale_associativity_PCcoefficientscoefficient)) /\ exists ff_q_pfp_associativity_PCcoefficientscoefficientdiagonalentry. pfc_terms_code_associativity_PCcoefficientscoefficient = ff_q_pfp_associativity_PCcoefficientscoefficientdiagonalentry * S ((S (pfc_index_associativity_PCcoefficientscoefficientdiagonal)) * pfc_terms_scale_associativity_PCcoefficientscoefficient) + (pfc_value_associativity_PCcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_associativity_PCcoefficientscoefficientdiagonalterm pfc_left_associativity_PCcoefficientscoefficientdiagonalterm pfc_right_associativity_PCcoefficientscoefficientdiagonalterm. (((pfc_index_associativity_PCcoefficientscoefficientdiagonal)+pfc_complement_associativity_PCcoefficientscoefficientdiagonalterm=(pfc_index_associativity_PCcoefficients)) /\ ((((((exists pfa_gap_associativity_PCcoefficientscoefficientdiagonaltermleftinside. pfa_gap_associativity_PCcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_associativity_PCcoefficientscoefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_associativity_PCcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_associativity_PCcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_associativity_PCcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_associativity_PCcoefficientscoefficientdiagonal)) * pc)) /\ exists ff_q_pfp_associativity_PCcoefficientscoefficientdiagonaltermleftentry. pb = ff_q_pfp_associativity_PCcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_associativity_PCcoefficientscoefficientdiagonal)) * pc) + (pfc_left_associativity_PCcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_associativity_PCcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_associativity_PCcoefficientscoefficientdiagonaltermleftoutside+(N)=(pfc_index_associativity_PCcoefficientscoefficientdiagonal)) /\ (((pfc_left_associativity_PCcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_associativity_PCcoefficientscoefficientdiagonaltermrightinside. pfa_gap_associativity_PCcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_associativity_PCcoefficientscoefficientdiagonalterm) = (J)) /\ ((((exists ff_h_pfp_associativity_PCcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_associativity_PCcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_associativity_PCcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_associativity_PCcoefficientscoefficientdiagonalterm)) * cc)) /\ exists ff_q_pfp_associativity_PCcoefficientscoefficientdiagonaltermrightentry. cb = ff_q_pfp_associativity_PCcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_associativity_PCcoefficientscoefficientdiagonalterm)) * cc) + (pfc_right_associativity_PCcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_associativity_PCcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_associativity_PCcoefficientscoefficientdiagonaltermrightoutside+(J)=(pfc_complement_associativity_PCcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_associativity_PCcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_associativity_PCcoefficientscoefficientdiagonal)=pfc_left_associativity_PCcoefficientscoefficientdiagonalterm*pfc_right_associativity_PCcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_associativity_PCcoefficientscoefficientsum fs_v_pfc_associativity_PCcoefficientscoefficientsum. ((((exists fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_start. fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_associativity_PCcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_start. fs_u_pfc_associativity_PCcoefficientscoefficientsum = fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_associativity_PCcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_terminal. fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_associativity_PCcoefficientscoefficient) = S ((S (S (pfc_index_associativity_PCcoefficients))) * fs_v_pfc_associativity_PCcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_terminal. fs_u_pfc_associativity_PCcoefficientscoefficientsum = fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_associativity_PCcoefficients))) * fs_v_pfc_associativity_PCcoefficientscoefficientsum) + (pfc_natural_sum_associativity_PCcoefficientscoefficient))) /\ forall fs_i_pfc_associativity_PCcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_associativity_PCcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_associativity_PCcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_associativity_PCcoefficientscoefficientsum_body_steps = S (pfc_index_associativity_PCcoefficients)) -> exists fs_a_pfc_associativity_PCcoefficientscoefficientsum_body_steps fs_r_pfc_associativity_PCcoefficientscoefficientsum_body_steps fs_s_pfc_associativity_PCcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_associativity_PCcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_associativity_PCcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_associativity_PCcoefficientscoefficient)) /\ exists fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_associativity_PCcoefficientscoefficient = fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_associativity_PCcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_associativity_PCcoefficientscoefficient) + (fs_a_pfc_associativity_PCcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_associativity_PCcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_associativity_PCcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_PCcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_associativity_PCcoefficientscoefficientsum = fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_associativity_PCcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_PCcoefficientscoefficientsum) + (fs_r_pfc_associativity_PCcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_associativity_PCcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_associativity_PCcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_associativity_PCcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_PCcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_associativity_PCcoefficientscoefficientsum = fs_q_pfc_associativity_PCcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_associativity_PCcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_PCcoefficientscoefficientsum) + (fs_s_pfc_associativity_PCcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_associativity_PCcoefficientscoefficientsum_body_steps = fs_r_pfc_associativity_PCcoefficientscoefficientsum_body_steps + fs_a_pfc_associativity_PCcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_associativity_PCcoefficientscoefficientresiduebound. pfa_gap_associativity_PCcoefficientscoefficientresiduebound + S (pfc_value_associativity_PCcoefficients) = (p)) /\ ((exists pfa_offset_left_associativity_PCcoefficientscoefficientresiduecongruence pfa_offset_right_associativity_PCcoefficientscoefficientresiduecongruence. (pfc_natural_sum_associativity_PCcoefficientscoefficient) + (p) * pfa_offset_left_associativity_PCcoefficientscoefficientresiduecongruence = (pfc_value_associativity_PCcoefficients) + (p) * pfa_offset_right_associativity_PCcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (((forall fom_index_pfp_associativity_AQleft. (exists fom_gap_pfp_associativity_AQleft_index_bound. fom_gap_pfp_associativity_AQleft_index_bound + S (fom_index_pfp_associativity_AQleft) = L) -> exists fom_value_pfp_associativity_AQleft. ((((exists fom_beta_height_pfp_associativity_AQleft_entry. fom_beta_height_pfp_associativity_AQleft_entry + S (fom_value_pfp_associativity_AQleft) = S ((S (fom_index_pfp_associativity_AQleft)) * ac)) /\ exists fom_beta_quotient_pfp_associativity_AQleft_entry. ab = fom_beta_quotient_pfp_associativity_AQleft_entry * S ((S (fom_index_pfp_associativity_AQleft)) * ac) + (fom_value_pfp_associativity_AQleft))) /\ (exists fom_gap_pfp_associativity_AQleft_value_bound. fom_gap_pfp_associativity_AQleft_value_bound + S (fom_value_pfp_associativity_AQleft) = p))) /\ (((forall fom_index_pfp_associativity_AQright. (exists fom_gap_pfp_associativity_AQright_index_bound. fom_gap_pfp_associativity_AQright_index_bound + S (fom_index_pfp_associativity_AQright) = K) -> exists fom_value_pfp_associativity_AQright. ((((exists fom_beta_height_pfp_associativity_AQright_entry. fom_beta_height_pfp_associativity_AQright_entry + S (fom_value_pfp_associativity_AQright) = S ((S (fom_index_pfp_associativity_AQright)) * qc)) /\ exists fom_beta_quotient_pfp_associativity_AQright_entry. qb = fom_beta_quotient_pfp_associativity_AQright_entry * S ((S (fom_index_pfp_associativity_AQright)) * qc) + (fom_value_pfp_associativity_AQright))) /\ (exists fom_gap_pfp_associativity_AQright_value_bound. fom_gap_pfp_associativity_AQright_value_bound + S (fom_value_pfp_associativity_AQright) = p))) /\ (((((((L)=0 \/ (K)=0) /\ (((V)=0)))) \/ (((~((L)=0)) /\ (((~((K)=0)) /\ (((L)+(K)=S (V)))))))) /\ ((forall pfc_index_associativity_AQcoefficients. (exists pfa_gap_associativity_AQcoefficientsbound. pfa_gap_associativity_AQcoefficientsbound + S (pfc_index_associativity_AQcoefficients) = (V)) -> exists pfc_value_associativity_AQcoefficients. ((((exists ff_h_pfp_associativity_AQcoefficientsentry. ff_h_pfp_associativity_AQcoefficientsentry + S (pfc_value_associativity_AQcoefficients) = S ((S (pfc_index_associativity_AQcoefficients)) * sc)) /\ exists ff_q_pfp_associativity_AQcoefficientsentry. sb = ff_q_pfp_associativity_AQcoefficientsentry * S ((S (pfc_index_associativity_AQcoefficients)) * sc) + (pfc_value_associativity_AQcoefficients))) /\ ((exists pfc_terms_code_associativity_AQcoefficientscoefficient pfc_terms_scale_associativity_AQcoefficientscoefficient pfc_natural_sum_associativity_AQcoefficientscoefficient. ((forall pfc_index_associativity_AQcoefficientscoefficientdiagonal. (exists pfa_gap_associativity_AQcoefficientscoefficientdiagonalbound. pfa_gap_associativity_AQcoefficientscoefficientdiagonalbound + S (pfc_index_associativity_AQcoefficientscoefficientdiagonal) = (S (pfc_index_associativity_AQcoefficients))) -> exists pfc_value_associativity_AQcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_associativity_AQcoefficientscoefficientdiagonalentry. ff_h_pfp_associativity_AQcoefficientscoefficientdiagonalentry + S (pfc_value_associativity_AQcoefficientscoefficientdiagonal) = S ((S (pfc_index_associativity_AQcoefficientscoefficientdiagonal)) * pfc_terms_scale_associativity_AQcoefficientscoefficient)) /\ exists ff_q_pfp_associativity_AQcoefficientscoefficientdiagonalentry. pfc_terms_code_associativity_AQcoefficientscoefficient = ff_q_pfp_associativity_AQcoefficientscoefficientdiagonalentry * S ((S (pfc_index_associativity_AQcoefficientscoefficientdiagonal)) * pfc_terms_scale_associativity_AQcoefficientscoefficient) + (pfc_value_associativity_AQcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_associativity_AQcoefficientscoefficientdiagonalterm pfc_left_associativity_AQcoefficientscoefficientdiagonalterm pfc_right_associativity_AQcoefficientscoefficientdiagonalterm. (((pfc_index_associativity_AQcoefficientscoefficientdiagonal)+pfc_complement_associativity_AQcoefficientscoefficientdiagonalterm=(pfc_index_associativity_AQcoefficients)) /\ ((((((exists pfa_gap_associativity_AQcoefficientscoefficientdiagonaltermleftinside. pfa_gap_associativity_AQcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_associativity_AQcoefficientscoefficientdiagonal) = (L)) /\ ((((exists ff_h_pfp_associativity_AQcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_associativity_AQcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_associativity_AQcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_associativity_AQcoefficientscoefficientdiagonal)) * ac)) /\ exists ff_q_pfp_associativity_AQcoefficientscoefficientdiagonaltermleftentry. ab = ff_q_pfp_associativity_AQcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_associativity_AQcoefficientscoefficientdiagonal)) * ac) + (pfc_left_associativity_AQcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_associativity_AQcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_associativity_AQcoefficientscoefficientdiagonaltermleftoutside+(L)=(pfc_index_associativity_AQcoefficientscoefficientdiagonal)) /\ (((pfc_left_associativity_AQcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_associativity_AQcoefficientscoefficientdiagonaltermrightinside. pfa_gap_associativity_AQcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_associativity_AQcoefficientscoefficientdiagonalterm) = (K)) /\ ((((exists ff_h_pfp_associativity_AQcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_associativity_AQcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_associativity_AQcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_associativity_AQcoefficientscoefficientdiagonalterm)) * qc)) /\ exists ff_q_pfp_associativity_AQcoefficientscoefficientdiagonaltermrightentry. qb = ff_q_pfp_associativity_AQcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_associativity_AQcoefficientscoefficientdiagonalterm)) * qc) + (pfc_right_associativity_AQcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_associativity_AQcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_associativity_AQcoefficientscoefficientdiagonaltermrightoutside+(K)=(pfc_complement_associativity_AQcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_associativity_AQcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_associativity_AQcoefficientscoefficientdiagonal)=pfc_left_associativity_AQcoefficientscoefficientdiagonalterm*pfc_right_associativity_AQcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_associativity_AQcoefficientscoefficientsum fs_v_pfc_associativity_AQcoefficientscoefficientsum. ((((exists fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_start. fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_associativity_AQcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_start. fs_u_pfc_associativity_AQcoefficientscoefficientsum = fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_associativity_AQcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_terminal. fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_associativity_AQcoefficientscoefficient) = S ((S (S (pfc_index_associativity_AQcoefficients))) * fs_v_pfc_associativity_AQcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_terminal. fs_u_pfc_associativity_AQcoefficientscoefficientsum = fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_associativity_AQcoefficients))) * fs_v_pfc_associativity_AQcoefficientscoefficientsum) + (pfc_natural_sum_associativity_AQcoefficientscoefficient))) /\ forall fs_i_pfc_associativity_AQcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_associativity_AQcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_associativity_AQcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_associativity_AQcoefficientscoefficientsum_body_steps = S (pfc_index_associativity_AQcoefficients)) -> exists fs_a_pfc_associativity_AQcoefficientscoefficientsum_body_steps fs_r_pfc_associativity_AQcoefficientscoefficientsum_body_steps fs_s_pfc_associativity_AQcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_associativity_AQcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_associativity_AQcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_associativity_AQcoefficientscoefficient)) /\ exists fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_associativity_AQcoefficientscoefficient = fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_associativity_AQcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_associativity_AQcoefficientscoefficient) + (fs_a_pfc_associativity_AQcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_associativity_AQcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_associativity_AQcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_AQcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_associativity_AQcoefficientscoefficientsum = fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_associativity_AQcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_AQcoefficientscoefficientsum) + (fs_r_pfc_associativity_AQcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_associativity_AQcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_associativity_AQcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_associativity_AQcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_AQcoefficientscoefficientsum)) /\ exists fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_associativity_AQcoefficientscoefficientsum = fs_q_pfc_associativity_AQcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_associativity_AQcoefficientscoefficientsum_body_steps)) * fs_v_pfc_associativity_AQcoefficientscoefficientsum) + (fs_s_pfc_associativity_AQcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_associativity_AQcoefficientscoefficientsum_body_steps = fs_r_pfc_associativity_AQcoefficientscoefficientsum_body_steps + fs_a_pfc_associativity_AQcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_associativity_AQcoefficientscoefficientresiduebound. pfa_gap_associativity_AQcoefficientscoefficientresiduebound + S (pfc_value_associativity_AQcoefficients) = (p)) /\ ((exists pfa_offset_left_associativity_AQcoefficientscoefficientresiduecongruence pfa_offset_right_associativity_AQcoefficientscoefficientresiduecongruence. (pfc_natural_sum_associativity_AQcoefficientscoefficient) + (p) * pfa_offset_left_associativity_AQcoefficientscoefficientresiduecongruence = (pfc_value_associativity_AQcoefficients) + (p) * pfa_offset_right_associativity_AQcoefficientscoefficientresiduecongruence))))))))))))))))))) -> (forall pfrep_power_associativity_result pfrep_left_associativity_result pfrep_right_associativity_result. ((exists pfrep_position_associativity_resultfirst. ((pfrep_position_associativity_resultfirst+S (pfrep_power_associativity_result)=(U)) /\ ((((exists ff_h_pfp_associativity_resultfirstentry. ff_h_pfp_associativity_resultfirstentry + S (pfrep_left_associativity_result) = S ((S (pfrep_position_associativity_resultfirst)) * rc)) /\ exists ff_q_pfp_associativity_resultfirstentry. rb = ff_q_pfp_associativity_resultfirstentry * S ((S (pfrep_position_associativity_resultfirst)) * rc) + (pfrep_left_associativity_result)))))) \/ (((exists pfrep_gap_associativity_resultfirstoutside. pfrep_gap_associativity_resultfirstoutside+(U)=(pfrep_power_associativity_result)) /\ (((pfrep_left_associativity_result)=0))))) -> ((exists pfrep_position_associativity_resultsecond. ((pfrep_position_associativity_resultsecond+S (pfrep_power_associativity_result)=(V)) /\ ((((exists ff_h_pfp_associativity_resultsecondentry. ff_h_pfp_associativity_resultsecondentry + S (pfrep_right_associativity_result) = S ((S (pfrep_position_associativity_resultsecond)) * sc)) /\ exists ff_q_pfp_associativity_resultsecondentry. sb = ff_q_pfp_associativity_resultsecondentry * S ((S (pfrep_position_associativity_resultsecond)) * sc) + (pfrep_right_associativity_result)))))) \/ (((exists pfrep_gap_associativity_resultsecondoutside. pfrep_gap_associativity_resultsecondoutside+(V)=(pfrep_power_associativity_result)) /\ (((pfrep_right_associativity_result)=0))))) -> pfrep_left_associativity_result=pfrep_right_associativity_result)

Complete tactic proof in conservative notation

All 283 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

283 script commands · 48 reading checkpoints · 15 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 (2)
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 pb
  9. L9
    intro pc
  10. L10
    intro N
02Fix variables and assumptionsL11–20

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

  1. L11
    intro cb
  2. L12
    intro cc
  3. L13
    intro J
  4. L14
    intro qb
  5. L15
    intro qc
  6. L16
    intro K
  7. L17
    intro rb
  8. L18
    intro rc
  9. L19
    intro U
  10. L20
    intro sb
03Fix variables and assumptionsL21–27

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

  1. L21
    intro sc
  2. L22
    intro V
  3. L23
    intro hp
  4. L24
    intro hAB
  5. L25
    intro hBC
  6. L26
    intro hPC
  7. L27
    intro hAQ
04Establish hp0L28–33

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

  1. L28
    have hp0 : ~(p=0)
  2. L29
    intro hz
  3. L30
    specialize prime_nonzero (p)
  4. L31
    apply prime_nonzero
  5. L32
    exact hp
  6. L33
    exact hz
05Establish hABcopyL34–35

Establish this local claim before using it. It is not an additional assumption.

  1. L34
    have hABcopy : FpPolyProduct(p,ab,ac,L,bb,bc,M,pb,pc,N)Definitions: FpPolyProduct(p,ab,ac,L,bb,bc,M,pb,pc,N)Original native command in the exact edition
  2. L35
    exact hAB
06Separate the logical casesL36–38

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

  1. L36
    cases hABcopy
  2. L37
    cases hABcopy_right
  3. L38
    cases hABcopy_right_right
07Establish hPboundL39–48

Establish this local claim before using it. It is not an additional assumption.

  1. L39
    have hPbound : BetaPrefixInto(pb,pc,N,p)Definitions: BetaPrefixInto(pb,pc,N,p)Original native command in the exact edition
  2. L40
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L41
    specialize prime_field_polynomial_convolution_bounded (ab)
  4. L42
    specialize prime_field_polynomial_convolution_bounded (ac)
  5. L43
    specialize prime_field_polynomial_convolution_bounded (L)
  6. L44
    specialize prime_field_polynomial_convolution_bounded (bb)
  7. L45
    specialize prime_field_polynomial_convolution_bounded (bc)
  8. L46
    specialize prime_field_polynomial_convolution_bounded (M)
  9. L47
    specialize prime_field_polynomial_convolution_bounded (pb)
  10. L48
    specialize prime_field_polynomial_convolution_bounded (pc)
08Use earlier factsL49–51

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

  1. L49
    specialize prime_field_polynomial_convolution_bounded (N)
  2. L50
    apply prime_field_polynomial_convolution_bounded
  3. L51
    exact hAB
09Establish hallL52–52

Establish this local claim before using it. It is not an additional assumption.

  1. L52
    have hall : ∀ j. ∀ db. ∀ dc. ∀ qxb. ∀ qxc. ∀ k. ∀ rxb. ∀ rxc. ∀ u. ∀ sxb. ∀ sxc. ∀ v. FpPolyProduct(p,bb,bc,M,db,dc,j,qxb,qxc,k) → FpPolyProduct(p,pb,pc,N,db,dc,j,rxb,rxc,u) → FpPolyProduct(p,ab,ac,L,qxb,qxc,k,sxb,sxc,v) → PolynomialEquivalent(rxb,rxc,u,sxb,sxc,v)Definitions: FpPolyProduct(p,bb,bc,M,db,dc,j,qxb,qxc,k)FpPolyProduct(p,pb,pc,N,db,dc,j,rxb,rxc,u)FpPolyProduct(p,ab,ac,L,qxb,qxc,k,sxb,sxc,v)PolynomialEquivalent(rxb,rxc,u,sxb,sxc,v)Original native command in the exact edition
10Induction on jL53–62

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L53
    induction j
  2. L54
    intro db
  3. L55
    intro dc
  4. L56
    intro qxb
  5. L57
    intro qxc
  6. L58
    intro k
  7. L59
    intro rxb
  8. L60
    intro rxc
  9. L61
    intro u
  10. L62
    intro sxb
11Fix variables and assumptionsL63–67

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

  1. L63
    intro sxc
  2. L64
    intro v
  3. L65
    intro hQ
  4. L66
    intro hR
  5. L67
    intro hS
12Use earlier factsL68–77

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

  1. L68
    specialize prime_field_polynomial_nested_empty_right_equivalent (p)
  2. L69
    specialize prime_field_polynomial_nested_empty_right_equivalent (ab)
  3. L70
    specialize prime_field_polynomial_nested_empty_right_equivalent (ac)
  4. L71
    specialize prime_field_polynomial_nested_empty_right_equivalent (L)
  5. L72
    specialize prime_field_polynomial_nested_empty_right_equivalent (bb)
  6. L73
    specialize prime_field_polynomial_nested_empty_right_equivalent (bc)
  7. L74
    specialize prime_field_polynomial_nested_empty_right_equivalent (M)
  8. L75
    specialize prime_field_polynomial_nested_empty_right_equivalent (pb)
  9. L76
    specialize prime_field_polynomial_nested_empty_right_equivalent (pc)
  10. L77
    specialize prime_field_polynomial_nested_empty_right_equivalent (N)
13Use earlier factsL78–87

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

  1. L78
    specialize prime_field_polynomial_nested_empty_right_equivalent (db)
  2. L79
    specialize prime_field_polynomial_nested_empty_right_equivalent (dc)
  3. L80
    specialize prime_field_polynomial_nested_empty_right_equivalent (qxb)
  4. L81
    specialize prime_field_polynomial_nested_empty_right_equivalent (qxc)
  5. L82
    specialize prime_field_polynomial_nested_empty_right_equivalent (k)
  6. L83
    specialize prime_field_polynomial_nested_empty_right_equivalent (rxb)
  7. L84
    specialize prime_field_polynomial_nested_empty_right_equivalent (rxc)
  8. L85
    specialize prime_field_polynomial_nested_empty_right_equivalent (u)
  9. L86
    specialize prime_field_polynomial_nested_empty_right_equivalent (sxb)
  10. L87
    specialize prime_field_polynomial_nested_empty_right_equivalent (sxc)
14Use earlier factsL88–93

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

  1. L88
    specialize prime_field_polynomial_nested_empty_right_equivalent (v)
  2. L89
    apply prime_field_polynomial_nested_empty_right_equivalent
  3. L90
    exact hp0
  4. L91
    exact hQ
  5. L92
    exact hR
  6. L93
    exact hS
15Fix variables and assumptionsL94–103

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

  1. L94
    intro db
  2. L95
    intro dc
  3. L96
    intro qxb
  4. L97
    intro qxc
  5. L98
    intro k
  6. L99
    intro rxb
  7. L100
    intro rxc
  8. L101
    intro u
  9. L102
    intro sxb
  10. L103
    intro sxc
16Fix variables and assumptionsL104–107

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

  1. L104
    intro v
  2. L105
    intro hQ
  3. L106
    intro hR
  4. L107
    intro hS
17Establish hQcopyL108–109

Establish this local claim before using it. It is not an additional assumption.

  1. L108
    have hQcopy : FpPolyProduct(p,bb,bc,M,db,dc,S j,qxb,qxc,k)Definitions: FpPolyProduct(p,bb,bc,M,db,dc,S j,qxb,qxc,k)Original native command in the exact edition
  2. L109
    exact hQ
18Separate the logical casesL110–112

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

  1. L110
    cases hQcopy
  2. L111
    cases hQcopy_right
  3. L112
    cases hQcopy_right_right
19Establish hprefix_boundL113–119

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix rank bounded prefix drop last.

  1. L113
    have hprefix_bound : BetaPrefixInto(db,dc,j,p)Definitions: BetaPrefixInto(db,dc,j,p)Original native command in the exact edition
  2. L114
    specialize matrix_rank_bounded_prefix_drop_last (db)
  3. L115
    specialize matrix_rank_bounded_prefix_drop_last (dc)
  4. L116
    specialize matrix_rank_bounded_prefix_drop_last (j)
  5. L117
    specialize matrix_rank_bounded_prefix_drop_last (p)
  6. L118
    apply matrix_rank_bounded_prefix_drop_last
  7. L119
    exact hQcopy_right_left
20Establish hlastL120–124

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.

  1. L120
    have hlast : ∃ a. BetaAt(db,dc,j,a)Definitions: BetaAt(db,dc,j,a)Original native command in the exact edition
  2. L121
    specialize beta_at_exists (db)
  3. L122
    specialize beta_at_exists (dc)
  4. L123
    specialize beta_at_exists (j)
  5. L124
    apply beta_at_exists
21Separate the logical casesL125–125

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

  1. L125
    cases hlast
22Establish hQlengthL126–129

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial product length exists.

  1. L126
    have hQlength : ∃ k0. PolynomialProductLength(M,j,k0)Definitions: PolynomialProductLength(M,j,k0)Original native command in the exact edition
  2. L127
    specialize polynomial_product_length_exists (M)
  3. L128
    specialize polynomial_product_length_exists (j)
  4. L129
    apply polynomial_product_length_exists
23Separate the logical casesL130–130

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

  1. L130
    cases hQlength
24Establish hQ0L131–140

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial convolution at length exists.

  1. L131
    have hQ0 : ∃ q0b. ∃ q0c. FpPolyProduct(p,bb,bc,M,db,dc,j,q0b,q0c,x1)Definitions: FpPolyProduct(p,bb,bc,M,db,dc,j,q0b,q0c,x1)Original native command in the exact edition
  2. L132
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L133
    specialize prime_field_polynomial_convolution_at_length_exists (bb)
  4. L134
    specialize prime_field_polynomial_convolution_at_length_exists (bc)
  5. L135
    specialize prime_field_polynomial_convolution_at_length_exists (M)
  6. L136
    specialize prime_field_polynomial_convolution_at_length_exists (db)
  7. L137
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  8. L138
    specialize prime_field_polynomial_convolution_at_length_exists (j)
  9. L139
    specialize prime_field_polynomial_convolution_at_length_exists (x1)
  10. L140
    apply prime_field_polynomial_convolution_at_length_exists
25Use earlier factsL141–144

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

  1. L141
    exact hp0
  2. L142
    exact hABcopy_right_left
  3. L143
    exact hprefix_bound
  4. L144
    exact hQlength_witness
26Separate the logical casesL145–146

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

  1. L145
    cases hQ0
  2. L146
    cases hQ0_witness
27Establish hRlengthL147–150

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial product length exists.

  1. L147
    have hRlength : ∃ u0. PolynomialProductLength(N,j,u0)Definitions: PolynomialProductLength(N,j,u0)Original native command in the exact edition
  2. L148
    specialize polynomial_product_length_exists (N)
  3. L149
    specialize polynomial_product_length_exists (j)
  4. L150
    apply polynomial_product_length_exists
28Separate the logical casesL151–151

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

  1. L151
    cases hRlength
29Establish hR0L152–161

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial convolution at length exists.

  1. L152
    have hR0 : ∃ r0b. ∃ r0c. FpPolyProduct(p,pb,pc,N,db,dc,j,r0b,r0c,x4)Definitions: FpPolyProduct(p,pb,pc,N,db,dc,j,r0b,r0c,x4)Original native command in the exact edition
  2. L153
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L154
    specialize prime_field_polynomial_convolution_at_length_exists (pb)
  4. L155
    specialize prime_field_polynomial_convolution_at_length_exists (pc)
  5. L156
    specialize prime_field_polynomial_convolution_at_length_exists (N)
  6. L157
    specialize prime_field_polynomial_convolution_at_length_exists (db)
  7. L158
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  8. L159
    specialize prime_field_polynomial_convolution_at_length_exists (j)
  9. L160
    specialize prime_field_polynomial_convolution_at_length_exists (x4)
  10. L161
    apply prime_field_polynomial_convolution_at_length_exists
30Use earlier factsL162–165

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

  1. L162
    exact hp0
  2. L163
    exact hPbound
  3. L164
    exact hprefix_bound
  4. L165
    exact hRlength_witness
31Separate the logical casesL166–167

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

  1. L166
    cases hR0
  2. L167
    cases hR0_witness
32Establish hQ0boundL168–177

Establish this local claim before using it. It is not an additional assumption.

  1. L168
    have hQ0bound : BetaPrefixInto(x2,x3,x1,p)Definitions: BetaPrefixInto(x2,x3,x1,p)Original native command in the exact edition
  2. L169
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L170
    specialize prime_field_polynomial_convolution_bounded (bb)
  4. L171
    specialize prime_field_polynomial_convolution_bounded (bc)
  5. L172
    specialize prime_field_polynomial_convolution_bounded (M)
  6. L173
    specialize prime_field_polynomial_convolution_bounded (db)
  7. L174
    specialize prime_field_polynomial_convolution_bounded (dc)
  8. L175
    specialize prime_field_polynomial_convolution_bounded (j)
  9. L176
    specialize prime_field_polynomial_convolution_bounded (x2)
  10. L177
    specialize prime_field_polynomial_convolution_bounded (x3)
33Use earlier factsL178–180

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

  1. L178
    specialize prime_field_polynomial_convolution_bounded (x1)
  2. L179
    apply prime_field_polynomial_convolution_bounded
  3. L180
    exact hQ0_witness_witness
34Establish hSlengthL181–184

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial product length exists.

  1. L181
    have hSlength : ∃ v0. PolynomialProductLength(L,x1,v0)Definitions: PolynomialProductLength(L,x1,v0)Original native command in the exact edition
  2. L182
    specialize polynomial_product_length_exists (L)
  3. L183
    specialize polynomial_product_length_exists (x1)
  4. L184
    apply polynomial_product_length_exists
35Separate the logical casesL185–185

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

  1. L185
    cases hSlength
36Establish hS0L186–195

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial convolution at length exists.

  1. L186
    have hS0 : ∃ s0b. ∃ s0c. FpPolyProduct(p,ab,ac,L,x2,x3,x1,s0b,s0c,x7)Definitions: FpPolyProduct(p,ab,ac,L,x2,x3,x1,s0b,s0c,x7)Original native command in the exact edition
  2. L187
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L188
    specialize prime_field_polynomial_convolution_at_length_exists (ab)
  4. L189
    specialize prime_field_polynomial_convolution_at_length_exists (ac)
  5. L190
    specialize prime_field_polynomial_convolution_at_length_exists (L)
  6. L191
    specialize prime_field_polynomial_convolution_at_length_exists (x2)
  7. L192
    specialize prime_field_polynomial_convolution_at_length_exists (x3)
  8. L193
    specialize prime_field_polynomial_convolution_at_length_exists (x1)
  9. L194
    specialize prime_field_polynomial_convolution_at_length_exists (x7)
  10. L195
    apply prime_field_polynomial_convolution_at_length_exists
37Use earlier factsL196–199

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

  1. L196
    exact hp0
  2. L197
    exact hABcopy_left
  3. L198
    exact hQ0bound
  4. L199
    exact hSlength_witness
38Separate the logical casesL200–201

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

  1. L200
    cases hS0
  2. L201
    cases hS0_witness
39Establish hpreviousL202–211

Establish this local claim before using it. It is not an additional assumption.

  1. L202
    have hprevious : PolynomialEquivalent(x5,x6,x4,x8,x9,x7)Definitions: PolynomialEquivalent(x5,x6,x4,x8,x9,x7)Original native command in the exact edition
  2. L203
    specialize IH (db)
  3. L204
    specialize IH (dc)
  4. L205
    specialize IH (x2)
  5. L206
    specialize IH (x3)
  6. L207
    specialize IH (x1)
  7. L208
    specialize IH (x5)
  8. L209
    specialize IH (x6)
  9. L210
    specialize IH (x4)
  10. L211
    specialize IH (x8)
40Use earlier factsL212–221

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

  1. L212
    specialize IH (x9)
  2. L213
    specialize IH (x7)
  3. L214
    apply IH
  4. L215
    exact hQ0_witness_witness
  5. L216
    exact hR0_witness_witness
  6. L217
    exact hS0_witness_witness
  7. L218
    specialize prime_field_polynomial_convolution_associativity_append_step (p)
  8. L219
    specialize prime_field_polynomial_convolution_associativity_append_step (ab)
  9. L220
    specialize prime_field_polynomial_convolution_associativity_append_step (ac)
  10. L221
    specialize prime_field_polynomial_convolution_associativity_append_step (L)
41Use earlier factsL222–231

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

  1. L222
    specialize prime_field_polynomial_convolution_associativity_append_step (bb)
  2. L223
    specialize prime_field_polynomial_convolution_associativity_append_step (bc)
  3. L224
    specialize prime_field_polynomial_convolution_associativity_append_step (M)
  4. L225
    specialize prime_field_polynomial_convolution_associativity_append_step (pb)
  5. L226
    specialize prime_field_polynomial_convolution_associativity_append_step (pc)
  6. L227
    specialize prime_field_polynomial_convolution_associativity_append_step (N)
  7. L228
    specialize prime_field_polynomial_convolution_associativity_append_step (db)
  8. L229
    specialize prime_field_polynomial_convolution_associativity_append_step (dc)
  9. L230
    specialize prime_field_polynomial_convolution_associativity_append_step (j)
  10. L231
    specialize prime_field_polynomial_convolution_associativity_append_step (x2)
42Use earlier factsL232–241

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

  1. L232
    specialize prime_field_polynomial_convolution_associativity_append_step (x3)
  2. L233
    specialize prime_field_polynomial_convolution_associativity_append_step (x1)
  3. L234
    specialize prime_field_polynomial_convolution_associativity_append_step (x5)
  4. L235
    specialize prime_field_polynomial_convolution_associativity_append_step (x6)
  5. L236
    specialize prime_field_polynomial_convolution_associativity_append_step (x4)
  6. L237
    specialize prime_field_polynomial_convolution_associativity_append_step (x8)
  7. L238
    specialize prime_field_polynomial_convolution_associativity_append_step (x9)
  8. L239
    specialize prime_field_polynomial_convolution_associativity_append_step (x7)
  9. L240
    specialize prime_field_polynomial_convolution_associativity_append_step (x)
  10. L241
    specialize prime_field_polynomial_convolution_associativity_append_step (db)
43Use earlier factsL242–251

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

  1. L242
    specialize prime_field_polynomial_convolution_associativity_append_step (dc)
  2. L243
    specialize prime_field_polynomial_convolution_associativity_append_step (qxb)
  3. L244
    specialize prime_field_polynomial_convolution_associativity_append_step (qxc)
  4. L245
    specialize prime_field_polynomial_convolution_associativity_append_step (k)
  5. L246
    specialize prime_field_polynomial_convolution_associativity_append_step (rxb)
  6. L247
    specialize prime_field_polynomial_convolution_associativity_append_step (rxc)
  7. L248
    specialize prime_field_polynomial_convolution_associativity_append_step (u)
  8. L249
    specialize prime_field_polynomial_convolution_associativity_append_step (sxb)
  9. L250
    specialize prime_field_polynomial_convolution_associativity_append_step (sxc)
  10. L251
    specialize prime_field_polynomial_convolution_associativity_append_step (v)
44Use earlier factsL252–258

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

  1. L252
    apply prime_field_polynomial_convolution_associativity_append_step
  2. L253
    exact hp
  3. L254
    exact hAB
  4. L255
    exact hQ0_witness_witness
  5. L256
    exact hR0_witness_witness
  6. L257
    exact hS0_witness_witness
  7. L258
    exact hprevious
45Fix variables and assumptionsL259–262

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

  1. L259
    intro i
  2. L260
    intro a
  3. L261
    intro hi
  4. L262
    intro ha
46Use earlier factsL263–272

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

  1. L263
    exact ha
  2. L264
    exact hlast_witness
  3. L265
    exact hQ
  4. L266
    exact hR
  5. L267
    exact hS
  6. L268
    specialize hall (J)
  7. L269
    specialize hall (cb)
  8. L270
    specialize hall (cc)
  9. L271
    specialize hall (qb)
  10. L272
    specialize hall (qc)
47Use earlier factsL273–282

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

  1. L273
    specialize hall (K)
  2. L274
    specialize hall (rb)
  3. L275
    specialize hall (rc)
  4. L276
    specialize hall (U)
  5. L277
    specialize hall (sb)
  6. L278
    specialize hall (sc)
  7. L279
    specialize hall (V)
  8. L280
    apply hall
  9. L281
    exact hBC
  10. L282
    exact hPC
48Use earlier factsL283–283

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

  1. L283
    exact hAQ

Library-wide reading audit

Original defined command ledger · 283 lines
  1. 0001intro p
  2. 0002intro ab
  3. 0003intro ac
  4. 0004intro L
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro M
  8. 0008intro pb
  9. 0009intro pc
  10. 0010intro N
  11. 0011intro cb
  12. 0012intro cc
  13. 0013intro J
  14. 0014intro qb
  15. 0015intro qc
  16. 0016intro K
  17. 0017intro rb
  18. 0018intro rc
  19. 0019intro U
  20. 0020intro sb
  21. 0021intro sc
  22. 0022intro V
  23. 0023intro hp
  24. 0024intro hAB
  25. 0025intro hBC
  26. 0026intro hPC
  27. 0027intro hAQ
  28. 0028have hp0 : ~(p=0)
  29. 0029intro hz
  30. 0030specialize prime_nonzero (p)
  31. 0031apply prime_nonzero
  32. 0032exact hp
  33. 0033exact hz
  34. 0034have hABcopy : FpPolyProduct(p,ab,ac,L,bb,bc,M,pb,pc,N)
  35. 0035exact hAB
  36. 0036cases hABcopy
  37. 0037cases hABcopy_right
  38. 0038cases hABcopy_right_right
  39. 0039have hPbound : BetaPrefixInto(pb,pc,N,p)
  40. 0040specialize prime_field_polynomial_convolution_bounded (p)
  41. 0041specialize prime_field_polynomial_convolution_bounded (ab)
  42. 0042specialize prime_field_polynomial_convolution_bounded (ac)
  43. 0043specialize prime_field_polynomial_convolution_bounded (L)
  44. 0044specialize prime_field_polynomial_convolution_bounded (bb)
  45. 0045specialize prime_field_polynomial_convolution_bounded (bc)
  46. 0046specialize prime_field_polynomial_convolution_bounded (M)
  47. 0047specialize prime_field_polynomial_convolution_bounded (pb)
  48. 0048specialize prime_field_polynomial_convolution_bounded (pc)
  49. 0049specialize prime_field_polynomial_convolution_bounded (N)
  50. 0050apply prime_field_polynomial_convolution_bounded
  51. 0051exact hAB
  52. 0052have hall : ∀ j. ∀ db. ∀ dc. ∀ qxb. ∀ qxc. ∀ k. ∀ rxb. ∀ rxc. ∀ u. ∀ sxb. ∀ sxc. ∀ v. FpPolyProduct(p,bb,bc,M,db,dc,j,qxb,qxc,k)FpPolyProduct(p,pb,pc,N,db,dc,j,rxb,rxc,u)FpPolyProduct(p,ab,ac,L,qxb,qxc,k,sxb,sxc,v)PolynomialEquivalent(rxb,rxc,u,sxb,sxc,v)
  53. 0053induction j
  54. 0054intro db
  55. 0055intro dc
  56. 0056intro qxb
  57. 0057intro qxc
  58. 0058intro k
  59. 0059intro rxb
  60. 0060intro rxc
  61. 0061intro u
  62. 0062intro sxb
  63. 0063intro sxc
  64. 0064intro v
  65. 0065intro hQ
  66. 0066intro hR
  67. 0067intro hS
  68. 0068specialize prime_field_polynomial_nested_empty_right_equivalent (p)
  69. 0069specialize prime_field_polynomial_nested_empty_right_equivalent (ab)
  70. 0070specialize prime_field_polynomial_nested_empty_right_equivalent (ac)
  71. 0071specialize prime_field_polynomial_nested_empty_right_equivalent (L)
  72. 0072specialize prime_field_polynomial_nested_empty_right_equivalent (bb)
  73. 0073specialize prime_field_polynomial_nested_empty_right_equivalent (bc)
  74. 0074specialize prime_field_polynomial_nested_empty_right_equivalent (M)
  75. 0075specialize prime_field_polynomial_nested_empty_right_equivalent (pb)
  76. 0076specialize prime_field_polynomial_nested_empty_right_equivalent (pc)
  77. 0077specialize prime_field_polynomial_nested_empty_right_equivalent (N)
  78. 0078specialize prime_field_polynomial_nested_empty_right_equivalent (db)
  79. 0079specialize prime_field_polynomial_nested_empty_right_equivalent (dc)
  80. 0080specialize prime_field_polynomial_nested_empty_right_equivalent (qxb)
  81. 0081specialize prime_field_polynomial_nested_empty_right_equivalent (qxc)
  82. 0082specialize prime_field_polynomial_nested_empty_right_equivalent (k)
  83. 0083specialize prime_field_polynomial_nested_empty_right_equivalent (rxb)
  84. 0084specialize prime_field_polynomial_nested_empty_right_equivalent (rxc)
  85. 0085specialize prime_field_polynomial_nested_empty_right_equivalent (u)
  86. 0086specialize prime_field_polynomial_nested_empty_right_equivalent (sxb)
  87. 0087specialize prime_field_polynomial_nested_empty_right_equivalent (sxc)
  88. 0088specialize prime_field_polynomial_nested_empty_right_equivalent (v)
  89. 0089apply prime_field_polynomial_nested_empty_right_equivalent
  90. 0090exact hp0
  91. 0091exact hQ
  92. 0092exact hR
  93. 0093exact hS
  94. 0094intro db
  95. 0095intro dc
  96. 0096intro qxb
  97. 0097intro qxc
  98. 0098intro k
  99. 0099intro rxb
  100. 0100intro rxc
  101. 0101intro u
  102. 0102intro sxb
  103. 0103intro sxc
  104. 0104intro v
  105. 0105intro hQ
  106. 0106intro hR
  107. 0107intro hS
  108. 0108have hQcopy : FpPolyProduct(p,bb,bc,M,db,dc,S j,qxb,qxc,k)
  109. 0109exact hQ
  110. 0110cases hQcopy
  111. 0111cases hQcopy_right
  112. 0112cases hQcopy_right_right
  113. 0113have hprefix_bound : BetaPrefixInto(db,dc,j,p)
  114. 0114specialize matrix_rank_bounded_prefix_drop_last (db)
  115. 0115specialize matrix_rank_bounded_prefix_drop_last (dc)
  116. 0116specialize matrix_rank_bounded_prefix_drop_last (j)
  117. 0117specialize matrix_rank_bounded_prefix_drop_last (p)
  118. 0118apply matrix_rank_bounded_prefix_drop_last
  119. 0119exact hQcopy_right_left
  120. 0120have hlast : ∃ a. BetaAt(db,dc,j,a)
  121. 0121specialize beta_at_exists (db)
  122. 0122specialize beta_at_exists (dc)
  123. 0123specialize beta_at_exists (j)
  124. 0124apply beta_at_exists
  125. 0125cases hlast
  126. 0126have hQlength : ∃ k0. PolynomialProductLength(M,j,k0)
  127. 0127specialize polynomial_product_length_exists (M)
  128. 0128specialize polynomial_product_length_exists (j)
  129. 0129apply polynomial_product_length_exists
  130. 0130cases hQlength
  131. 0131have hQ0 : ∃ q0b. ∃ q0c. FpPolyProduct(p,bb,bc,M,db,dc,j,q0b,q0c,x1)
  132. 0132specialize prime_field_polynomial_convolution_at_length_exists (p)
  133. 0133specialize prime_field_polynomial_convolution_at_length_exists (bb)
  134. 0134specialize prime_field_polynomial_convolution_at_length_exists (bc)
  135. 0135specialize prime_field_polynomial_convolution_at_length_exists (M)
  136. 0136specialize prime_field_polynomial_convolution_at_length_exists (db)
  137. 0137specialize prime_field_polynomial_convolution_at_length_exists (dc)
  138. 0138specialize prime_field_polynomial_convolution_at_length_exists (j)
  139. 0139specialize prime_field_polynomial_convolution_at_length_exists (x1)
  140. 0140apply prime_field_polynomial_convolution_at_length_exists
  141. 0141exact hp0
  142. 0142exact hABcopy_right_left
  143. 0143exact hprefix_bound
  144. 0144exact hQlength_witness
  145. 0145cases hQ0
  146. 0146cases hQ0_witness
  147. 0147have hRlength : ∃ u0. PolynomialProductLength(N,j,u0)
  148. 0148specialize polynomial_product_length_exists (N)
  149. 0149specialize polynomial_product_length_exists (j)
  150. 0150apply polynomial_product_length_exists
  151. 0151cases hRlength
  152. 0152have hR0 : ∃ r0b. ∃ r0c. FpPolyProduct(p,pb,pc,N,db,dc,j,r0b,r0c,x4)
  153. 0153specialize prime_field_polynomial_convolution_at_length_exists (p)
  154. 0154specialize prime_field_polynomial_convolution_at_length_exists (pb)
  155. 0155specialize prime_field_polynomial_convolution_at_length_exists (pc)
  156. 0156specialize prime_field_polynomial_convolution_at_length_exists (N)
  157. 0157specialize prime_field_polynomial_convolution_at_length_exists (db)
  158. 0158specialize prime_field_polynomial_convolution_at_length_exists (dc)
  159. 0159specialize prime_field_polynomial_convolution_at_length_exists (j)
  160. 0160specialize prime_field_polynomial_convolution_at_length_exists (x4)
  161. 0161apply prime_field_polynomial_convolution_at_length_exists
  162. 0162exact hp0
  163. 0163exact hPbound
  164. 0164exact hprefix_bound
  165. 0165exact hRlength_witness
  166. 0166cases hR0
  167. 0167cases hR0_witness
  168. 0168have hQ0bound : BetaPrefixInto(x2,x3,x1,p)
  169. 0169specialize prime_field_polynomial_convolution_bounded (p)
  170. 0170specialize prime_field_polynomial_convolution_bounded (bb)
  171. 0171specialize prime_field_polynomial_convolution_bounded (bc)
  172. 0172specialize prime_field_polynomial_convolution_bounded (M)
  173. 0173specialize prime_field_polynomial_convolution_bounded (db)
  174. 0174specialize prime_field_polynomial_convolution_bounded (dc)
  175. 0175specialize prime_field_polynomial_convolution_bounded (j)
  176. 0176specialize prime_field_polynomial_convolution_bounded (x2)
  177. 0177specialize prime_field_polynomial_convolution_bounded (x3)
  178. 0178specialize prime_field_polynomial_convolution_bounded (x1)
  179. 0179apply prime_field_polynomial_convolution_bounded
  180. 0180exact hQ0_witness_witness
  181. 0181have hSlength : ∃ v0. PolynomialProductLength(L,x1,v0)
  182. 0182specialize polynomial_product_length_exists (L)
  183. 0183specialize polynomial_product_length_exists (x1)
  184. 0184apply polynomial_product_length_exists
  185. 0185cases hSlength
  186. 0186have hS0 : ∃ s0b. ∃ s0c. FpPolyProduct(p,ab,ac,L,x2,x3,x1,s0b,s0c,x7)
  187. 0187specialize prime_field_polynomial_convolution_at_length_exists (p)
  188. 0188specialize prime_field_polynomial_convolution_at_length_exists (ab)
  189. 0189specialize prime_field_polynomial_convolution_at_length_exists (ac)
  190. 0190specialize prime_field_polynomial_convolution_at_length_exists (L)
  191. 0191specialize prime_field_polynomial_convolution_at_length_exists (x2)
  192. 0192specialize prime_field_polynomial_convolution_at_length_exists (x3)
  193. 0193specialize prime_field_polynomial_convolution_at_length_exists (x1)
  194. 0194specialize prime_field_polynomial_convolution_at_length_exists (x7)
  195. 0195apply prime_field_polynomial_convolution_at_length_exists
  196. 0196exact hp0
  197. 0197exact hABcopy_left
  198. 0198exact hQ0bound
  199. 0199exact hSlength_witness
  200. 0200cases hS0
  201. 0201cases hS0_witness
  202. 0202have hprevious : PolynomialEquivalent(x5,x6,x4,x8,x9,x7)
  203. 0203specialize IH (db)
  204. 0204specialize IH (dc)
  205. 0205specialize IH (x2)
  206. 0206specialize IH (x3)
  207. 0207specialize IH (x1)
  208. 0208specialize IH (x5)
  209. 0209specialize IH (x6)
  210. 0210specialize IH (x4)
  211. 0211specialize IH (x8)
  212. 0212specialize IH (x9)
  213. 0213specialize IH (x7)
  214. 0214apply IH
  215. 0215exact hQ0_witness_witness
  216. 0216exact hR0_witness_witness
  217. 0217exact hS0_witness_witness
  218. 0218specialize prime_field_polynomial_convolution_associativity_append_step (p)
  219. 0219specialize prime_field_polynomial_convolution_associativity_append_step (ab)
  220. 0220specialize prime_field_polynomial_convolution_associativity_append_step (ac)
  221. 0221specialize prime_field_polynomial_convolution_associativity_append_step (L)
  222. 0222specialize prime_field_polynomial_convolution_associativity_append_step (bb)
  223. 0223specialize prime_field_polynomial_convolution_associativity_append_step (bc)
  224. 0224specialize prime_field_polynomial_convolution_associativity_append_step (M)
  225. 0225specialize prime_field_polynomial_convolution_associativity_append_step (pb)
  226. 0226specialize prime_field_polynomial_convolution_associativity_append_step (pc)
  227. 0227specialize prime_field_polynomial_convolution_associativity_append_step (N)
  228. 0228specialize prime_field_polynomial_convolution_associativity_append_step (db)
  229. 0229specialize prime_field_polynomial_convolution_associativity_append_step (dc)
  230. 0230specialize prime_field_polynomial_convolution_associativity_append_step (j)
  231. 0231specialize prime_field_polynomial_convolution_associativity_append_step (x2)
  232. 0232specialize prime_field_polynomial_convolution_associativity_append_step (x3)
  233. 0233specialize prime_field_polynomial_convolution_associativity_append_step (x1)
  234. 0234specialize prime_field_polynomial_convolution_associativity_append_step (x5)
  235. 0235specialize prime_field_polynomial_convolution_associativity_append_step (x6)
  236. 0236specialize prime_field_polynomial_convolution_associativity_append_step (x4)
  237. 0237specialize prime_field_polynomial_convolution_associativity_append_step (x8)
  238. 0238specialize prime_field_polynomial_convolution_associativity_append_step (x9)
  239. 0239specialize prime_field_polynomial_convolution_associativity_append_step (x7)
  240. 0240specialize prime_field_polynomial_convolution_associativity_append_step (x)
  241. 0241specialize prime_field_polynomial_convolution_associativity_append_step (db)
  242. 0242specialize prime_field_polynomial_convolution_associativity_append_step (dc)
  243. 0243specialize prime_field_polynomial_convolution_associativity_append_step (qxb)
  244. 0244specialize prime_field_polynomial_convolution_associativity_append_step (qxc)
  245. 0245specialize prime_field_polynomial_convolution_associativity_append_step (k)
  246. 0246specialize prime_field_polynomial_convolution_associativity_append_step (rxb)
  247. 0247specialize prime_field_polynomial_convolution_associativity_append_step (rxc)
  248. 0248specialize prime_field_polynomial_convolution_associativity_append_step (u)
  249. 0249specialize prime_field_polynomial_convolution_associativity_append_step (sxb)
  250. 0250specialize prime_field_polynomial_convolution_associativity_append_step (sxc)
  251. 0251specialize prime_field_polynomial_convolution_associativity_append_step (v)
  252. 0252apply prime_field_polynomial_convolution_associativity_append_step
  253. 0253exact hp
  254. 0254exact hAB
  255. 0255exact hQ0_witness_witness
  256. 0256exact hR0_witness_witness
  257. 0257exact hS0_witness_witness
  258. 0258exact hprevious
  259. 0259intro i
  260. 0260intro a
  261. 0261intro hi
  262. 0262intro ha
  263. 0263exact ha
  264. 0264exact hlast_witness
  265. 0265exact hQ
  266. 0266exact hR
  267. 0267exact hS
  268. 0268specialize hall (J)
  269. 0269specialize hall (cb)
  270. 0270specialize hall (cc)
  271. 0271specialize hall (qb)
  272. 0272specialize hall (qc)
  273. 0273specialize hall (K)
  274. 0274specialize hall (rb)
  275. 0275specialize hall (rc)
  276. 0276specialize hall (U)
  277. 0277specialize hall (sb)
  278. 0278specialize hall (sc)
  279. 0279specialize hall (V)
  280. 0280apply hall
  281. 0281exact hBC
  282. 0282exact hPC
  283. 0283exact hAQ