PG0058

prime_field_polynomial_right_divides_aligned_add

A common actual right divisor divides the genuine aligned add: construct the corresponding quotient operation and its proper product, use checked right distributivity and compare real aligned sums.

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. ∀ db. ∀ dc. ∀ J. ∀ ab. ∀ ac. ∀ L. ∀ bb. ∀ bc. ∀ M. ∀ rb. ∀ rc. ∀ N. Prime(p)FpPolynomialRightDivides(p,db,dc,J,ab,ac,L)FpPolynomialRightDivides(p,db,dc,J,bb,bc,M)FpPolynomialAlignedAdd(p,ab,ac,L,bb,bc,M,rb,rc,N)FpPolynomialRightDivides(p,db,dc,J,rb,rc,N)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall p db dc J ab ac L bb bc M rb rc N. (~((p) = 1) /\ forall pfa_factor_left_add_divides_prime pfa_factor_right_add_divides_prime. (p) = pfa_factor_left_add_divides_prime * pfa_factor_right_add_divides_prime -> pfa_factor_left_add_divides_prime = 1 \/ pfa_factor_right_add_divides_prime = 1) -> (((forall fom_index_pfp_add_divides_left_canonical. (exists fom_gap_pfp_add_divides_left_canonical_index_bound. fom_gap_pfp_add_divides_left_canonical_index_bound + S (fom_index_pfp_add_divides_left_canonical) = L) -> exists fom_value_pfp_add_divides_left_canonical. ((((exists fom_beta_height_pfp_add_divides_left_canonical_entry. fom_beta_height_pfp_add_divides_left_canonical_entry + S (fom_value_pfp_add_divides_left_canonical) = S ((S (fom_index_pfp_add_divides_left_canonical)) * ac)) /\ exists fom_beta_quotient_pfp_add_divides_left_canonical_entry. ab = fom_beta_quotient_pfp_add_divides_left_canonical_entry * S ((S (fom_index_pfp_add_divides_left_canonical)) * ac) + (fom_value_pfp_add_divides_left_canonical))) /\ (exists fom_gap_pfp_add_divides_left_canonical_value_bound. fom_gap_pfp_add_divides_left_canonical_value_bound + S (fom_value_pfp_add_divides_left_canonical) = p))) /\ ((exists pfrd_qb_add_divides_left pfrd_qc_add_divides_left pfrd_qlen_add_divides_left pfrd_pb_add_divides_left pfrd_pc_add_divides_left pfrd_plen_add_divides_left. ((((forall fom_index_pfp_add_divides_left_productleft. (exists fom_gap_pfp_add_divides_left_productleft_index_bound. fom_gap_pfp_add_divides_left_productleft_index_bound + S (fom_index_pfp_add_divides_left_productleft) = pfrd_qlen_add_divides_left) -> exists fom_value_pfp_add_divides_left_productleft. ((((exists fom_beta_height_pfp_add_divides_left_productleft_entry. fom_beta_height_pfp_add_divides_left_productleft_entry + S (fom_value_pfp_add_divides_left_productleft) = S ((S (fom_index_pfp_add_divides_left_productleft)) * pfrd_qc_add_divides_left)) /\ exists fom_beta_quotient_pfp_add_divides_left_productleft_entry. pfrd_qb_add_divides_left = fom_beta_quotient_pfp_add_divides_left_productleft_entry * S ((S (fom_index_pfp_add_divides_left_productleft)) * pfrd_qc_add_divides_left) + (fom_value_pfp_add_divides_left_productleft))) /\ (exists fom_gap_pfp_add_divides_left_productleft_value_bound. fom_gap_pfp_add_divides_left_productleft_value_bound + S (fom_value_pfp_add_divides_left_productleft) = p))) /\ (((forall fom_index_pfp_add_divides_left_productright. (exists fom_gap_pfp_add_divides_left_productright_index_bound. fom_gap_pfp_add_divides_left_productright_index_bound + S (fom_index_pfp_add_divides_left_productright) = J) -> exists fom_value_pfp_add_divides_left_productright. ((((exists fom_beta_height_pfp_add_divides_left_productright_entry. fom_beta_height_pfp_add_divides_left_productright_entry + S (fom_value_pfp_add_divides_left_productright) = S ((S (fom_index_pfp_add_divides_left_productright)) * dc)) /\ exists fom_beta_quotient_pfp_add_divides_left_productright_entry. db = fom_beta_quotient_pfp_add_divides_left_productright_entry * S ((S (fom_index_pfp_add_divides_left_productright)) * dc) + (fom_value_pfp_add_divides_left_productright))) /\ (exists fom_gap_pfp_add_divides_left_productright_value_bound. fom_gap_pfp_add_divides_left_productright_value_bound + S (fom_value_pfp_add_divides_left_productright) = p))) /\ (((((((pfrd_qlen_add_divides_left)=0 \/ (J)=0) /\ (((pfrd_plen_add_divides_left)=0)))) \/ (((~((pfrd_qlen_add_divides_left)=0)) /\ (((~((J)=0)) /\ (((pfrd_qlen_add_divides_left)+(J)=S (pfrd_plen_add_divides_left)))))))) /\ ((forall pfc_index_add_divides_left_productcoefficients. (exists pfa_gap_add_divides_left_productcoefficientsbound. pfa_gap_add_divides_left_productcoefficientsbound + S (pfc_index_add_divides_left_productcoefficients) = (pfrd_plen_add_divides_left)) -> exists pfc_value_add_divides_left_productcoefficients. ((((exists ff_h_pfp_add_divides_left_productcoefficientsentry. ff_h_pfp_add_divides_left_productcoefficientsentry + S (pfc_value_add_divides_left_productcoefficients) = S ((S (pfc_index_add_divides_left_productcoefficients)) * pfrd_pc_add_divides_left)) /\ exists ff_q_pfp_add_divides_left_productcoefficientsentry. pfrd_pb_add_divides_left = ff_q_pfp_add_divides_left_productcoefficientsentry * S ((S (pfc_index_add_divides_left_productcoefficients)) * pfrd_pc_add_divides_left) + (pfc_value_add_divides_left_productcoefficients))) /\ ((exists pfc_terms_code_add_divides_left_productcoefficientscoefficient pfc_terms_scale_add_divides_left_productcoefficientscoefficient pfc_natural_sum_add_divides_left_productcoefficientscoefficient. ((forall pfc_index_add_divides_left_productcoefficientscoefficientdiagonal. (exists pfa_gap_add_divides_left_productcoefficientscoefficientdiagonalbound. pfa_gap_add_divides_left_productcoefficientscoefficientdiagonalbound + S (pfc_index_add_divides_left_productcoefficientscoefficientdiagonal) = (S (pfc_index_add_divides_left_productcoefficients))) -> exists pfc_value_add_divides_left_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_add_divides_left_productcoefficientscoefficientdiagonalentry. ff_h_pfp_add_divides_left_productcoefficientscoefficientdiagonalentry + S (pfc_value_add_divides_left_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_add_divides_left_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_add_divides_left_productcoefficientscoefficient)) /\ exists ff_q_pfp_add_divides_left_productcoefficientscoefficientdiagonalentry. pfc_terms_code_add_divides_left_productcoefficientscoefficient = ff_q_pfp_add_divides_left_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_add_divides_left_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_add_divides_left_productcoefficientscoefficient) + (pfc_value_add_divides_left_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_add_divides_left_productcoefficientscoefficientdiagonalterm pfc_left_add_divides_left_productcoefficientscoefficientdiagonalterm pfc_right_add_divides_left_productcoefficientscoefficientdiagonalterm. (((pfc_index_add_divides_left_productcoefficientscoefficientdiagonal)+pfc_complement_add_divides_left_productcoefficientscoefficientdiagonalterm=(pfc_index_add_divides_left_productcoefficients)) /\ ((((((exists pfa_gap_add_divides_left_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_add_divides_left_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_add_divides_left_productcoefficientscoefficientdiagonal) = (pfrd_qlen_add_divides_left)) /\ ((((exists ff_h_pfp_add_divides_left_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_add_divides_left_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_add_divides_left_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_add_divides_left_productcoefficientscoefficientdiagonal)) * pfrd_qc_add_divides_left)) /\ exists ff_q_pfp_add_divides_left_productcoefficientscoefficientdiagonaltermleftentry. pfrd_qb_add_divides_left = ff_q_pfp_add_divides_left_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_add_divides_left_productcoefficientscoefficientdiagonal)) * pfrd_qc_add_divides_left) + (pfc_left_add_divides_left_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_add_divides_left_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_add_divides_left_productcoefficientscoefficientdiagonaltermleftoutside+(pfrd_qlen_add_divides_left)=(pfc_index_add_divides_left_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_add_divides_left_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_add_divides_left_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_add_divides_left_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_add_divides_left_productcoefficientscoefficientdiagonalterm) = (J)) /\ ((((exists ff_h_pfp_add_divides_left_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_add_divides_left_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_add_divides_left_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_add_divides_left_productcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_add_divides_left_productcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_add_divides_left_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_add_divides_left_productcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_add_divides_left_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_add_divides_left_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_add_divides_left_productcoefficientscoefficientdiagonaltermrightoutside+(J)=(pfc_complement_add_divides_left_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_add_divides_left_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_add_divides_left_productcoefficientscoefficientdiagonal)=pfc_left_add_divides_left_productcoefficientscoefficientdiagonalterm*pfc_right_add_divides_left_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_add_divides_left_productcoefficientscoefficientsum fs_v_pfc_add_divides_left_productcoefficientscoefficientsum. ((((exists fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_start. fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_add_divides_left_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_start. fs_u_pfc_add_divides_left_productcoefficientscoefficientsum = fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_add_divides_left_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_add_divides_left_productcoefficientscoefficient) = S ((S (S (pfc_index_add_divides_left_productcoefficients))) * fs_v_pfc_add_divides_left_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_add_divides_left_productcoefficientscoefficientsum = fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_add_divides_left_productcoefficients))) * fs_v_pfc_add_divides_left_productcoefficientscoefficientsum) + (pfc_natural_sum_add_divides_left_productcoefficientscoefficient))) /\ forall fs_i_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps = S (pfc_index_add_divides_left_productcoefficients)) -> exists fs_a_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps fs_r_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps fs_s_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_add_divides_left_productcoefficientscoefficient)) /\ exists fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_add_divides_left_productcoefficientscoefficient = fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_add_divides_left_productcoefficientscoefficient) + (fs_a_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_left_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_add_divides_left_productcoefficientscoefficientsum = fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_left_productcoefficientscoefficientsum) + (fs_r_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_left_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_add_divides_left_productcoefficientscoefficientsum = fs_q_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_left_productcoefficientscoefficientsum) + (fs_s_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps = fs_r_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps + fs_a_pfc_add_divides_left_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_add_divides_left_productcoefficientscoefficientresiduebound. pfa_gap_add_divides_left_productcoefficientscoefficientresiduebound + S (pfc_value_add_divides_left_productcoefficients) = (p)) /\ ((exists pfa_offset_left_add_divides_left_productcoefficientscoefficientresiduecongruence pfa_offset_right_add_divides_left_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_add_divides_left_productcoefficientscoefficient) + (p) * pfa_offset_left_add_divides_left_productcoefficientscoefficientresiduecongruence = (pfc_value_add_divides_left_productcoefficients) + (p) * pfa_offset_right_add_divides_left_productcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfrep_power_add_divides_left_target pfrep_left_add_divides_left_target pfrep_right_add_divides_left_target. ((exists pfrep_position_add_divides_left_targetfirst. ((pfrep_position_add_divides_left_targetfirst+S (pfrep_power_add_divides_left_target)=(pfrd_plen_add_divides_left)) /\ ((((exists ff_h_pfp_add_divides_left_targetfirstentry. ff_h_pfp_add_divides_left_targetfirstentry + S (pfrep_left_add_divides_left_target) = S ((S (pfrep_position_add_divides_left_targetfirst)) * pfrd_pc_add_divides_left)) /\ exists ff_q_pfp_add_divides_left_targetfirstentry. pfrd_pb_add_divides_left = ff_q_pfp_add_divides_left_targetfirstentry * S ((S (pfrep_position_add_divides_left_targetfirst)) * pfrd_pc_add_divides_left) + (pfrep_left_add_divides_left_target)))))) \/ (((exists pfrep_gap_add_divides_left_targetfirstoutside. pfrep_gap_add_divides_left_targetfirstoutside+(pfrd_plen_add_divides_left)=(pfrep_power_add_divides_left_target)) /\ (((pfrep_left_add_divides_left_target)=0))))) -> ((exists pfrep_position_add_divides_left_targetsecond. ((pfrep_position_add_divides_left_targetsecond+S (pfrep_power_add_divides_left_target)=(L)) /\ ((((exists ff_h_pfp_add_divides_left_targetsecondentry. ff_h_pfp_add_divides_left_targetsecondentry + S (pfrep_right_add_divides_left_target) = S ((S (pfrep_position_add_divides_left_targetsecond)) * ac)) /\ exists ff_q_pfp_add_divides_left_targetsecondentry. ab = ff_q_pfp_add_divides_left_targetsecondentry * S ((S (pfrep_position_add_divides_left_targetsecond)) * ac) + (pfrep_right_add_divides_left_target)))))) \/ (((exists pfrep_gap_add_divides_left_targetsecondoutside. pfrep_gap_add_divides_left_targetsecondoutside+(L)=(pfrep_power_add_divides_left_target)) /\ (((pfrep_right_add_divides_left_target)=0))))) -> pfrep_left_add_divides_left_target=pfrep_right_add_divides_left_target))))))) -> (((forall fom_index_pfp_add_divides_right_canonical. (exists fom_gap_pfp_add_divides_right_canonical_index_bound. fom_gap_pfp_add_divides_right_canonical_index_bound + S (fom_index_pfp_add_divides_right_canonical) = M) -> exists fom_value_pfp_add_divides_right_canonical. ((((exists fom_beta_height_pfp_add_divides_right_canonical_entry. fom_beta_height_pfp_add_divides_right_canonical_entry + S (fom_value_pfp_add_divides_right_canonical) = S ((S (fom_index_pfp_add_divides_right_canonical)) * bc)) /\ exists fom_beta_quotient_pfp_add_divides_right_canonical_entry. bb = fom_beta_quotient_pfp_add_divides_right_canonical_entry * S ((S (fom_index_pfp_add_divides_right_canonical)) * bc) + (fom_value_pfp_add_divides_right_canonical))) /\ (exists fom_gap_pfp_add_divides_right_canonical_value_bound. fom_gap_pfp_add_divides_right_canonical_value_bound + S (fom_value_pfp_add_divides_right_canonical) = p))) /\ ((exists pfrd_qb_add_divides_right pfrd_qc_add_divides_right pfrd_qlen_add_divides_right pfrd_pb_add_divides_right pfrd_pc_add_divides_right pfrd_plen_add_divides_right. ((((forall fom_index_pfp_add_divides_right_productleft. (exists fom_gap_pfp_add_divides_right_productleft_index_bound. fom_gap_pfp_add_divides_right_productleft_index_bound + S (fom_index_pfp_add_divides_right_productleft) = pfrd_qlen_add_divides_right) -> exists fom_value_pfp_add_divides_right_productleft. ((((exists fom_beta_height_pfp_add_divides_right_productleft_entry. fom_beta_height_pfp_add_divides_right_productleft_entry + S (fom_value_pfp_add_divides_right_productleft) = S ((S (fom_index_pfp_add_divides_right_productleft)) * pfrd_qc_add_divides_right)) /\ exists fom_beta_quotient_pfp_add_divides_right_productleft_entry. pfrd_qb_add_divides_right = fom_beta_quotient_pfp_add_divides_right_productleft_entry * S ((S (fom_index_pfp_add_divides_right_productleft)) * pfrd_qc_add_divides_right) + (fom_value_pfp_add_divides_right_productleft))) /\ (exists fom_gap_pfp_add_divides_right_productleft_value_bound. fom_gap_pfp_add_divides_right_productleft_value_bound + S (fom_value_pfp_add_divides_right_productleft) = p))) /\ (((forall fom_index_pfp_add_divides_right_productright. (exists fom_gap_pfp_add_divides_right_productright_index_bound. fom_gap_pfp_add_divides_right_productright_index_bound + S (fom_index_pfp_add_divides_right_productright) = J) -> exists fom_value_pfp_add_divides_right_productright. ((((exists fom_beta_height_pfp_add_divides_right_productright_entry. fom_beta_height_pfp_add_divides_right_productright_entry + S (fom_value_pfp_add_divides_right_productright) = S ((S (fom_index_pfp_add_divides_right_productright)) * dc)) /\ exists fom_beta_quotient_pfp_add_divides_right_productright_entry. db = fom_beta_quotient_pfp_add_divides_right_productright_entry * S ((S (fom_index_pfp_add_divides_right_productright)) * dc) + (fom_value_pfp_add_divides_right_productright))) /\ (exists fom_gap_pfp_add_divides_right_productright_value_bound. fom_gap_pfp_add_divides_right_productright_value_bound + S (fom_value_pfp_add_divides_right_productright) = p))) /\ (((((((pfrd_qlen_add_divides_right)=0 \/ (J)=0) /\ (((pfrd_plen_add_divides_right)=0)))) \/ (((~((pfrd_qlen_add_divides_right)=0)) /\ (((~((J)=0)) /\ (((pfrd_qlen_add_divides_right)+(J)=S (pfrd_plen_add_divides_right)))))))) /\ ((forall pfc_index_add_divides_right_productcoefficients. (exists pfa_gap_add_divides_right_productcoefficientsbound. pfa_gap_add_divides_right_productcoefficientsbound + S (pfc_index_add_divides_right_productcoefficients) = (pfrd_plen_add_divides_right)) -> exists pfc_value_add_divides_right_productcoefficients. ((((exists ff_h_pfp_add_divides_right_productcoefficientsentry. ff_h_pfp_add_divides_right_productcoefficientsentry + S (pfc_value_add_divides_right_productcoefficients) = S ((S (pfc_index_add_divides_right_productcoefficients)) * pfrd_pc_add_divides_right)) /\ exists ff_q_pfp_add_divides_right_productcoefficientsentry. pfrd_pb_add_divides_right = ff_q_pfp_add_divides_right_productcoefficientsentry * S ((S (pfc_index_add_divides_right_productcoefficients)) * pfrd_pc_add_divides_right) + (pfc_value_add_divides_right_productcoefficients))) /\ ((exists pfc_terms_code_add_divides_right_productcoefficientscoefficient pfc_terms_scale_add_divides_right_productcoefficientscoefficient pfc_natural_sum_add_divides_right_productcoefficientscoefficient. ((forall pfc_index_add_divides_right_productcoefficientscoefficientdiagonal. (exists pfa_gap_add_divides_right_productcoefficientscoefficientdiagonalbound. pfa_gap_add_divides_right_productcoefficientscoefficientdiagonalbound + S (pfc_index_add_divides_right_productcoefficientscoefficientdiagonal) = (S (pfc_index_add_divides_right_productcoefficients))) -> exists pfc_value_add_divides_right_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_add_divides_right_productcoefficientscoefficientdiagonalentry. ff_h_pfp_add_divides_right_productcoefficientscoefficientdiagonalentry + S (pfc_value_add_divides_right_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_add_divides_right_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_add_divides_right_productcoefficientscoefficient)) /\ exists ff_q_pfp_add_divides_right_productcoefficientscoefficientdiagonalentry. pfc_terms_code_add_divides_right_productcoefficientscoefficient = ff_q_pfp_add_divides_right_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_add_divides_right_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_add_divides_right_productcoefficientscoefficient) + (pfc_value_add_divides_right_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_add_divides_right_productcoefficientscoefficientdiagonalterm pfc_left_add_divides_right_productcoefficientscoefficientdiagonalterm pfc_right_add_divides_right_productcoefficientscoefficientdiagonalterm. (((pfc_index_add_divides_right_productcoefficientscoefficientdiagonal)+pfc_complement_add_divides_right_productcoefficientscoefficientdiagonalterm=(pfc_index_add_divides_right_productcoefficients)) /\ ((((((exists pfa_gap_add_divides_right_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_add_divides_right_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_add_divides_right_productcoefficientscoefficientdiagonal) = (pfrd_qlen_add_divides_right)) /\ ((((exists ff_h_pfp_add_divides_right_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_add_divides_right_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_add_divides_right_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_add_divides_right_productcoefficientscoefficientdiagonal)) * pfrd_qc_add_divides_right)) /\ exists ff_q_pfp_add_divides_right_productcoefficientscoefficientdiagonaltermleftentry. pfrd_qb_add_divides_right = ff_q_pfp_add_divides_right_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_add_divides_right_productcoefficientscoefficientdiagonal)) * pfrd_qc_add_divides_right) + (pfc_left_add_divides_right_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_add_divides_right_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_add_divides_right_productcoefficientscoefficientdiagonaltermleftoutside+(pfrd_qlen_add_divides_right)=(pfc_index_add_divides_right_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_add_divides_right_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_add_divides_right_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_add_divides_right_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_add_divides_right_productcoefficientscoefficientdiagonalterm) = (J)) /\ ((((exists ff_h_pfp_add_divides_right_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_add_divides_right_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_add_divides_right_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_add_divides_right_productcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_add_divides_right_productcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_add_divides_right_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_add_divides_right_productcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_add_divides_right_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_add_divides_right_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_add_divides_right_productcoefficientscoefficientdiagonaltermrightoutside+(J)=(pfc_complement_add_divides_right_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_add_divides_right_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_add_divides_right_productcoefficientscoefficientdiagonal)=pfc_left_add_divides_right_productcoefficientscoefficientdiagonalterm*pfc_right_add_divides_right_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_add_divides_right_productcoefficientscoefficientsum fs_v_pfc_add_divides_right_productcoefficientscoefficientsum. ((((exists fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_start. fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_add_divides_right_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_start. fs_u_pfc_add_divides_right_productcoefficientscoefficientsum = fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_add_divides_right_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_add_divides_right_productcoefficientscoefficient) = S ((S (S (pfc_index_add_divides_right_productcoefficients))) * fs_v_pfc_add_divides_right_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_add_divides_right_productcoefficientscoefficientsum = fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_add_divides_right_productcoefficients))) * fs_v_pfc_add_divides_right_productcoefficientscoefficientsum) + (pfc_natural_sum_add_divides_right_productcoefficientscoefficient))) /\ forall fs_i_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps = S (pfc_index_add_divides_right_productcoefficients)) -> exists fs_a_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps fs_r_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps fs_s_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_add_divides_right_productcoefficientscoefficient)) /\ exists fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_add_divides_right_productcoefficientscoefficient = fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_add_divides_right_productcoefficientscoefficient) + (fs_a_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_right_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_add_divides_right_productcoefficientscoefficientsum = fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_right_productcoefficientscoefficientsum) + (fs_r_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_right_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_add_divides_right_productcoefficientscoefficientsum = fs_q_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_right_productcoefficientscoefficientsum) + (fs_s_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps = fs_r_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps + fs_a_pfc_add_divides_right_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_add_divides_right_productcoefficientscoefficientresiduebound. pfa_gap_add_divides_right_productcoefficientscoefficientresiduebound + S (pfc_value_add_divides_right_productcoefficients) = (p)) /\ ((exists pfa_offset_left_add_divides_right_productcoefficientscoefficientresiduecongruence pfa_offset_right_add_divides_right_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_add_divides_right_productcoefficientscoefficient) + (p) * pfa_offset_left_add_divides_right_productcoefficientscoefficientresiduecongruence = (pfc_value_add_divides_right_productcoefficients) + (p) * pfa_offset_right_add_divides_right_productcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfrep_power_add_divides_right_target pfrep_left_add_divides_right_target pfrep_right_add_divides_right_target. ((exists pfrep_position_add_divides_right_targetfirst. ((pfrep_position_add_divides_right_targetfirst+S (pfrep_power_add_divides_right_target)=(pfrd_plen_add_divides_right)) /\ ((((exists ff_h_pfp_add_divides_right_targetfirstentry. ff_h_pfp_add_divides_right_targetfirstentry + S (pfrep_left_add_divides_right_target) = S ((S (pfrep_position_add_divides_right_targetfirst)) * pfrd_pc_add_divides_right)) /\ exists ff_q_pfp_add_divides_right_targetfirstentry. pfrd_pb_add_divides_right = ff_q_pfp_add_divides_right_targetfirstentry * S ((S (pfrep_position_add_divides_right_targetfirst)) * pfrd_pc_add_divides_right) + (pfrep_left_add_divides_right_target)))))) \/ (((exists pfrep_gap_add_divides_right_targetfirstoutside. pfrep_gap_add_divides_right_targetfirstoutside+(pfrd_plen_add_divides_right)=(pfrep_power_add_divides_right_target)) /\ (((pfrep_left_add_divides_right_target)=0))))) -> ((exists pfrep_position_add_divides_right_targetsecond. ((pfrep_position_add_divides_right_targetsecond+S (pfrep_power_add_divides_right_target)=(M)) /\ ((((exists ff_h_pfp_add_divides_right_targetsecondentry. ff_h_pfp_add_divides_right_targetsecondentry + S (pfrep_right_add_divides_right_target) = S ((S (pfrep_position_add_divides_right_targetsecond)) * bc)) /\ exists ff_q_pfp_add_divides_right_targetsecondentry. bb = ff_q_pfp_add_divides_right_targetsecondentry * S ((S (pfrep_position_add_divides_right_targetsecond)) * bc) + (pfrep_right_add_divides_right_target)))))) \/ (((exists pfrep_gap_add_divides_right_targetsecondoutside. pfrep_gap_add_divides_right_targetsecondoutside+(M)=(pfrep_power_add_divides_right_target)) /\ (((pfrep_right_add_divides_right_target)=0))))) -> pfrep_left_add_divides_right_target=pfrep_right_add_divides_right_target))))))) -> (((forall fom_index_pfp_add_divides_operation_left_bounded. (exists fom_gap_pfp_add_divides_operation_left_bounded_index_bound. fom_gap_pfp_add_divides_operation_left_bounded_index_bound + S (fom_index_pfp_add_divides_operation_left_bounded) = L) -> exists fom_value_pfp_add_divides_operation_left_bounded. ((((exists fom_beta_height_pfp_add_divides_operation_left_bounded_entry. fom_beta_height_pfp_add_divides_operation_left_bounded_entry + S (fom_value_pfp_add_divides_operation_left_bounded) = S ((S (fom_index_pfp_add_divides_operation_left_bounded)) * ac)) /\ exists fom_beta_quotient_pfp_add_divides_operation_left_bounded_entry. ab = fom_beta_quotient_pfp_add_divides_operation_left_bounded_entry * S ((S (fom_index_pfp_add_divides_operation_left_bounded)) * ac) + (fom_value_pfp_add_divides_operation_left_bounded))) /\ (exists fom_gap_pfp_add_divides_operation_left_bounded_value_bound. fom_gap_pfp_add_divides_operation_left_bounded_value_bound + S (fom_value_pfp_add_divides_operation_left_bounded) = p))) /\ (((forall fom_index_pfp_add_divides_operation_right_bounded. (exists fom_gap_pfp_add_divides_operation_right_bounded_index_bound. fom_gap_pfp_add_divides_operation_right_bounded_index_bound + S (fom_index_pfp_add_divides_operation_right_bounded) = M) -> exists fom_value_pfp_add_divides_operation_right_bounded. ((((exists fom_beta_height_pfp_add_divides_operation_right_bounded_entry. fom_beta_height_pfp_add_divides_operation_right_bounded_entry + S (fom_value_pfp_add_divides_operation_right_bounded) = S ((S (fom_index_pfp_add_divides_operation_right_bounded)) * bc)) /\ exists fom_beta_quotient_pfp_add_divides_operation_right_bounded_entry. bb = fom_beta_quotient_pfp_add_divides_operation_right_bounded_entry * S ((S (fom_index_pfp_add_divides_operation_right_bounded)) * bc) + (fom_value_pfp_add_divides_operation_right_bounded))) /\ (exists fom_gap_pfp_add_divides_operation_right_bounded_value_bound. fom_gap_pfp_add_divides_operation_right_bounded_value_bound + S (fom_value_pfp_add_divides_operation_right_bounded) = p))) /\ (((forall fom_index_pfp_add_divides_operation_result_bounded. (exists fom_gap_pfp_add_divides_operation_result_bounded_index_bound. fom_gap_pfp_add_divides_operation_result_bounded_index_bound + S (fom_index_pfp_add_divides_operation_result_bounded) = N) -> exists fom_value_pfp_add_divides_operation_result_bounded. ((((exists fom_beta_height_pfp_add_divides_operation_result_bounded_entry. fom_beta_height_pfp_add_divides_operation_result_bounded_entry + S (fom_value_pfp_add_divides_operation_result_bounded) = S ((S (fom_index_pfp_add_divides_operation_result_bounded)) * rc)) /\ exists fom_beta_quotient_pfp_add_divides_operation_result_bounded_entry. rb = fom_beta_quotient_pfp_add_divides_operation_result_bounded_entry * S ((S (fom_index_pfp_add_divides_operation_result_bounded)) * rc) + (fom_value_pfp_add_divides_operation_result_bounded))) /\ (exists fom_gap_pfp_add_divides_operation_result_bounded_value_bound. fom_gap_pfp_add_divides_operation_result_bounded_value_bound + S (fom_value_pfp_add_divides_operation_result_bounded) = p))) /\ ((exists pfaa_left_b_add_divides_operation pfaa_left_c_add_divides_operation pfaa_right_b_add_divides_operation pfaa_right_c_add_divides_operation pfaa_sum_b_add_divides_operation pfaa_sum_c_add_divides_operation pfaa_length_add_divides_operation. ((((forall pfrep_power_add_divides_operation_witness_common_left pfrep_left_add_divides_operation_witness_common_left pfrep_right_add_divides_operation_witness_common_left. ((exists pfrep_position_add_divides_operation_witness_common_leftfirst. ((pfrep_position_add_divides_operation_witness_common_leftfirst+S (pfrep_power_add_divides_operation_witness_common_left)=(L)) /\ ((((exists ff_h_pfp_add_divides_operation_witness_common_leftfirstentry. ff_h_pfp_add_divides_operation_witness_common_leftfirstentry + S (pfrep_left_add_divides_operation_witness_common_left) = S ((S (pfrep_position_add_divides_operation_witness_common_leftfirst)) * ac)) /\ exists ff_q_pfp_add_divides_operation_witness_common_leftfirstentry. ab = ff_q_pfp_add_divides_operation_witness_common_leftfirstentry * S ((S (pfrep_position_add_divides_operation_witness_common_leftfirst)) * ac) + (pfrep_left_add_divides_operation_witness_common_left)))))) \/ (((exists pfrep_gap_add_divides_operation_witness_common_leftfirstoutside. pfrep_gap_add_divides_operation_witness_common_leftfirstoutside+(L)=(pfrep_power_add_divides_operation_witness_common_left)) /\ (((pfrep_left_add_divides_operation_witness_common_left)=0))))) -> ((exists pfrep_position_add_divides_operation_witness_common_leftsecond. ((pfrep_position_add_divides_operation_witness_common_leftsecond+S (pfrep_power_add_divides_operation_witness_common_left)=(pfaa_length_add_divides_operation)) /\ ((((exists ff_h_pfp_add_divides_operation_witness_common_leftsecondentry. ff_h_pfp_add_divides_operation_witness_common_leftsecondentry + S (pfrep_right_add_divides_operation_witness_common_left) = S ((S (pfrep_position_add_divides_operation_witness_common_leftsecond)) * pfaa_left_c_add_divides_operation)) /\ exists ff_q_pfp_add_divides_operation_witness_common_leftsecondentry. pfaa_left_b_add_divides_operation = ff_q_pfp_add_divides_operation_witness_common_leftsecondentry * S ((S (pfrep_position_add_divides_operation_witness_common_leftsecond)) * pfaa_left_c_add_divides_operation) + (pfrep_right_add_divides_operation_witness_common_left)))))) \/ (((exists pfrep_gap_add_divides_operation_witness_common_leftsecondoutside. pfrep_gap_add_divides_operation_witness_common_leftsecondoutside+(pfaa_length_add_divides_operation)=(pfrep_power_add_divides_operation_witness_common_left)) /\ (((pfrep_right_add_divides_operation_witness_common_left)=0))))) -> pfrep_left_add_divides_operation_witness_common_left=pfrep_right_add_divides_operation_witness_common_left) /\ ((forall pfrep_power_add_divides_operation_witness_common_right pfrep_left_add_divides_operation_witness_common_right pfrep_right_add_divides_operation_witness_common_right. ((exists pfrep_position_add_divides_operation_witness_common_rightfirst. ((pfrep_position_add_divides_operation_witness_common_rightfirst+S (pfrep_power_add_divides_operation_witness_common_right)=(M)) /\ ((((exists ff_h_pfp_add_divides_operation_witness_common_rightfirstentry. ff_h_pfp_add_divides_operation_witness_common_rightfirstentry + S (pfrep_left_add_divides_operation_witness_common_right) = S ((S (pfrep_position_add_divides_operation_witness_common_rightfirst)) * bc)) /\ exists ff_q_pfp_add_divides_operation_witness_common_rightfirstentry. bb = ff_q_pfp_add_divides_operation_witness_common_rightfirstentry * S ((S (pfrep_position_add_divides_operation_witness_common_rightfirst)) * bc) + (pfrep_left_add_divides_operation_witness_common_right)))))) \/ (((exists pfrep_gap_add_divides_operation_witness_common_rightfirstoutside. pfrep_gap_add_divides_operation_witness_common_rightfirstoutside+(M)=(pfrep_power_add_divides_operation_witness_common_right)) /\ (((pfrep_left_add_divides_operation_witness_common_right)=0))))) -> ((exists pfrep_position_add_divides_operation_witness_common_rightsecond. ((pfrep_position_add_divides_operation_witness_common_rightsecond+S (pfrep_power_add_divides_operation_witness_common_right)=(pfaa_length_add_divides_operation)) /\ ((((exists ff_h_pfp_add_divides_operation_witness_common_rightsecondentry. ff_h_pfp_add_divides_operation_witness_common_rightsecondentry + S (pfrep_right_add_divides_operation_witness_common_right) = S ((S (pfrep_position_add_divides_operation_witness_common_rightsecond)) * pfaa_right_c_add_divides_operation)) /\ exists ff_q_pfp_add_divides_operation_witness_common_rightsecondentry. pfaa_right_b_add_divides_operation = ff_q_pfp_add_divides_operation_witness_common_rightsecondentry * S ((S (pfrep_position_add_divides_operation_witness_common_rightsecond)) * pfaa_right_c_add_divides_operation) + (pfrep_right_add_divides_operation_witness_common_right)))))) \/ (((exists pfrep_gap_add_divides_operation_witness_common_rightsecondoutside. pfrep_gap_add_divides_operation_witness_common_rightsecondoutside+(pfaa_length_add_divides_operation)=(pfrep_power_add_divides_operation_witness_common_right)) /\ (((pfrep_right_add_divides_operation_witness_common_right)=0))))) -> pfrep_left_add_divides_operation_witness_common_right=pfrep_right_add_divides_operation_witness_common_right)))) /\ (((forall pfp_index_add_divides_operation_witness_operation. (exists pfa_gap_add_divides_operation_witness_operationindex. pfa_gap_add_divides_operation_witness_operationindex + S (pfp_index_add_divides_operation_witness_operation) = (pfaa_length_add_divides_operation)) -> exists pfp_left_add_divides_operation_witness_operation pfp_right_add_divides_operation_witness_operation pfp_value_add_divides_operation_witness_operation. ((((exists ff_h_pfp_add_divides_operation_witness_operationleft. ff_h_pfp_add_divides_operation_witness_operationleft + S (pfp_left_add_divides_operation_witness_operation) = S ((S (pfp_index_add_divides_operation_witness_operation)) * pfaa_left_c_add_divides_operation)) /\ exists ff_q_pfp_add_divides_operation_witness_operationleft. pfaa_left_b_add_divides_operation = ff_q_pfp_add_divides_operation_witness_operationleft * S ((S (pfp_index_add_divides_operation_witness_operation)) * pfaa_left_c_add_divides_operation) + (pfp_left_add_divides_operation_witness_operation))) /\ (((((exists ff_h_pfp_add_divides_operation_witness_operationright. ff_h_pfp_add_divides_operation_witness_operationright + S (pfp_right_add_divides_operation_witness_operation) = S ((S (pfp_index_add_divides_operation_witness_operation)) * pfaa_right_c_add_divides_operation)) /\ exists ff_q_pfp_add_divides_operation_witness_operationright. pfaa_right_b_add_divides_operation = ff_q_pfp_add_divides_operation_witness_operationright * S ((S (pfp_index_add_divides_operation_witness_operation)) * pfaa_right_c_add_divides_operation) + (pfp_right_add_divides_operation_witness_operation))) /\ (((((exists ff_h_pfp_add_divides_operation_witness_operationtarget. ff_h_pfp_add_divides_operation_witness_operationtarget + S (pfp_value_add_divides_operation_witness_operation) = S ((S (pfp_index_add_divides_operation_witness_operation)) * pfaa_sum_c_add_divides_operation)) /\ exists ff_q_pfp_add_divides_operation_witness_operationtarget. pfaa_sum_b_add_divides_operation = ff_q_pfp_add_divides_operation_witness_operationtarget * S ((S (pfp_index_add_divides_operation_witness_operation)) * pfaa_sum_c_add_divides_operation) + (pfp_value_add_divides_operation_witness_operation))) /\ ((((exists pfa_gap_add_divides_operation_witness_operationoperationleft. pfa_gap_add_divides_operation_witness_operationoperationleft + S (pfp_left_add_divides_operation_witness_operation) = (p)) /\ (((exists pfa_gap_add_divides_operation_witness_operationoperationright. pfa_gap_add_divides_operation_witness_operationoperationright + S (pfp_right_add_divides_operation_witness_operation) = (p)) /\ ((((exists pfa_gap_add_divides_operation_witness_operationoperationresultbound. pfa_gap_add_divides_operation_witness_operationoperationresultbound + S (pfp_value_add_divides_operation_witness_operation) = (p)) /\ ((exists pfa_offset_left_add_divides_operation_witness_operationoperationresultcongruence pfa_offset_right_add_divides_operation_witness_operationoperationresultcongruence. ((pfp_left_add_divides_operation_witness_operation) + (pfp_right_add_divides_operation_witness_operation)) + (p) * pfa_offset_left_add_divides_operation_witness_operationoperationresultcongruence = (pfp_value_add_divides_operation_witness_operation) + (p) * pfa_offset_right_add_divides_operation_witness_operationoperationresultcongruence)))))))))))))))) /\ ((forall pfrep_power_add_divides_operation_witness_output pfrep_left_add_divides_operation_witness_output pfrep_right_add_divides_operation_witness_output. ((exists pfrep_position_add_divides_operation_witness_outputfirst. ((pfrep_position_add_divides_operation_witness_outputfirst+S (pfrep_power_add_divides_operation_witness_output)=(pfaa_length_add_divides_operation)) /\ ((((exists ff_h_pfp_add_divides_operation_witness_outputfirstentry. ff_h_pfp_add_divides_operation_witness_outputfirstentry + S (pfrep_left_add_divides_operation_witness_output) = S ((S (pfrep_position_add_divides_operation_witness_outputfirst)) * pfaa_sum_c_add_divides_operation)) /\ exists ff_q_pfp_add_divides_operation_witness_outputfirstentry. pfaa_sum_b_add_divides_operation = ff_q_pfp_add_divides_operation_witness_outputfirstentry * S ((S (pfrep_position_add_divides_operation_witness_outputfirst)) * pfaa_sum_c_add_divides_operation) + (pfrep_left_add_divides_operation_witness_output)))))) \/ (((exists pfrep_gap_add_divides_operation_witness_outputfirstoutside. pfrep_gap_add_divides_operation_witness_outputfirstoutside+(pfaa_length_add_divides_operation)=(pfrep_power_add_divides_operation_witness_output)) /\ (((pfrep_left_add_divides_operation_witness_output)=0))))) -> ((exists pfrep_position_add_divides_operation_witness_outputsecond. ((pfrep_position_add_divides_operation_witness_outputsecond+S (pfrep_power_add_divides_operation_witness_output)=(N)) /\ ((((exists ff_h_pfp_add_divides_operation_witness_outputsecondentry. ff_h_pfp_add_divides_operation_witness_outputsecondentry + S (pfrep_right_add_divides_operation_witness_output) = S ((S (pfrep_position_add_divides_operation_witness_outputsecond)) * rc)) /\ exists ff_q_pfp_add_divides_operation_witness_outputsecondentry. rb = ff_q_pfp_add_divides_operation_witness_outputsecondentry * S ((S (pfrep_position_add_divides_operation_witness_outputsecond)) * rc) + (pfrep_right_add_divides_operation_witness_output)))))) \/ (((exists pfrep_gap_add_divides_operation_witness_outputsecondoutside. pfrep_gap_add_divides_operation_witness_outputsecondoutside+(N)=(pfrep_power_add_divides_operation_witness_output)) /\ (((pfrep_right_add_divides_operation_witness_output)=0))))) -> pfrep_left_add_divides_operation_witness_output=pfrep_right_add_divides_operation_witness_output))))))))))))) -> (((forall fom_index_pfp_add_divides_result_canonical. (exists fom_gap_pfp_add_divides_result_canonical_index_bound. fom_gap_pfp_add_divides_result_canonical_index_bound + S (fom_index_pfp_add_divides_result_canonical) = N) -> exists fom_value_pfp_add_divides_result_canonical. ((((exists fom_beta_height_pfp_add_divides_result_canonical_entry. fom_beta_height_pfp_add_divides_result_canonical_entry + S (fom_value_pfp_add_divides_result_canonical) = S ((S (fom_index_pfp_add_divides_result_canonical)) * rc)) /\ exists fom_beta_quotient_pfp_add_divides_result_canonical_entry. rb = fom_beta_quotient_pfp_add_divides_result_canonical_entry * S ((S (fom_index_pfp_add_divides_result_canonical)) * rc) + (fom_value_pfp_add_divides_result_canonical))) /\ (exists fom_gap_pfp_add_divides_result_canonical_value_bound. fom_gap_pfp_add_divides_result_canonical_value_bound + S (fom_value_pfp_add_divides_result_canonical) = p))) /\ ((exists pfrd_qb_add_divides_result pfrd_qc_add_divides_result pfrd_qlen_add_divides_result pfrd_pb_add_divides_result pfrd_pc_add_divides_result pfrd_plen_add_divides_result. ((((forall fom_index_pfp_add_divides_result_productleft. (exists fom_gap_pfp_add_divides_result_productleft_index_bound. fom_gap_pfp_add_divides_result_productleft_index_bound + S (fom_index_pfp_add_divides_result_productleft) = pfrd_qlen_add_divides_result) -> exists fom_value_pfp_add_divides_result_productleft. ((((exists fom_beta_height_pfp_add_divides_result_productleft_entry. fom_beta_height_pfp_add_divides_result_productleft_entry + S (fom_value_pfp_add_divides_result_productleft) = S ((S (fom_index_pfp_add_divides_result_productleft)) * pfrd_qc_add_divides_result)) /\ exists fom_beta_quotient_pfp_add_divides_result_productleft_entry. pfrd_qb_add_divides_result = fom_beta_quotient_pfp_add_divides_result_productleft_entry * S ((S (fom_index_pfp_add_divides_result_productleft)) * pfrd_qc_add_divides_result) + (fom_value_pfp_add_divides_result_productleft))) /\ (exists fom_gap_pfp_add_divides_result_productleft_value_bound. fom_gap_pfp_add_divides_result_productleft_value_bound + S (fom_value_pfp_add_divides_result_productleft) = p))) /\ (((forall fom_index_pfp_add_divides_result_productright. (exists fom_gap_pfp_add_divides_result_productright_index_bound. fom_gap_pfp_add_divides_result_productright_index_bound + S (fom_index_pfp_add_divides_result_productright) = J) -> exists fom_value_pfp_add_divides_result_productright. ((((exists fom_beta_height_pfp_add_divides_result_productright_entry. fom_beta_height_pfp_add_divides_result_productright_entry + S (fom_value_pfp_add_divides_result_productright) = S ((S (fom_index_pfp_add_divides_result_productright)) * dc)) /\ exists fom_beta_quotient_pfp_add_divides_result_productright_entry. db = fom_beta_quotient_pfp_add_divides_result_productright_entry * S ((S (fom_index_pfp_add_divides_result_productright)) * dc) + (fom_value_pfp_add_divides_result_productright))) /\ (exists fom_gap_pfp_add_divides_result_productright_value_bound. fom_gap_pfp_add_divides_result_productright_value_bound + S (fom_value_pfp_add_divides_result_productright) = p))) /\ (((((((pfrd_qlen_add_divides_result)=0 \/ (J)=0) /\ (((pfrd_plen_add_divides_result)=0)))) \/ (((~((pfrd_qlen_add_divides_result)=0)) /\ (((~((J)=0)) /\ (((pfrd_qlen_add_divides_result)+(J)=S (pfrd_plen_add_divides_result)))))))) /\ ((forall pfc_index_add_divides_result_productcoefficients. (exists pfa_gap_add_divides_result_productcoefficientsbound. pfa_gap_add_divides_result_productcoefficientsbound + S (pfc_index_add_divides_result_productcoefficients) = (pfrd_plen_add_divides_result)) -> exists pfc_value_add_divides_result_productcoefficients. ((((exists ff_h_pfp_add_divides_result_productcoefficientsentry. ff_h_pfp_add_divides_result_productcoefficientsentry + S (pfc_value_add_divides_result_productcoefficients) = S ((S (pfc_index_add_divides_result_productcoefficients)) * pfrd_pc_add_divides_result)) /\ exists ff_q_pfp_add_divides_result_productcoefficientsentry. pfrd_pb_add_divides_result = ff_q_pfp_add_divides_result_productcoefficientsentry * S ((S (pfc_index_add_divides_result_productcoefficients)) * pfrd_pc_add_divides_result) + (pfc_value_add_divides_result_productcoefficients))) /\ ((exists pfc_terms_code_add_divides_result_productcoefficientscoefficient pfc_terms_scale_add_divides_result_productcoefficientscoefficient pfc_natural_sum_add_divides_result_productcoefficientscoefficient. ((forall pfc_index_add_divides_result_productcoefficientscoefficientdiagonal. (exists pfa_gap_add_divides_result_productcoefficientscoefficientdiagonalbound. pfa_gap_add_divides_result_productcoefficientscoefficientdiagonalbound + S (pfc_index_add_divides_result_productcoefficientscoefficientdiagonal) = (S (pfc_index_add_divides_result_productcoefficients))) -> exists pfc_value_add_divides_result_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_add_divides_result_productcoefficientscoefficientdiagonalentry. ff_h_pfp_add_divides_result_productcoefficientscoefficientdiagonalentry + S (pfc_value_add_divides_result_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_add_divides_result_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_add_divides_result_productcoefficientscoefficient)) /\ exists ff_q_pfp_add_divides_result_productcoefficientscoefficientdiagonalentry. pfc_terms_code_add_divides_result_productcoefficientscoefficient = ff_q_pfp_add_divides_result_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_add_divides_result_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_add_divides_result_productcoefficientscoefficient) + (pfc_value_add_divides_result_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_add_divides_result_productcoefficientscoefficientdiagonalterm pfc_left_add_divides_result_productcoefficientscoefficientdiagonalterm pfc_right_add_divides_result_productcoefficientscoefficientdiagonalterm. (((pfc_index_add_divides_result_productcoefficientscoefficientdiagonal)+pfc_complement_add_divides_result_productcoefficientscoefficientdiagonalterm=(pfc_index_add_divides_result_productcoefficients)) /\ ((((((exists pfa_gap_add_divides_result_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_add_divides_result_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_add_divides_result_productcoefficientscoefficientdiagonal) = (pfrd_qlen_add_divides_result)) /\ ((((exists ff_h_pfp_add_divides_result_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_add_divides_result_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_add_divides_result_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_add_divides_result_productcoefficientscoefficientdiagonal)) * pfrd_qc_add_divides_result)) /\ exists ff_q_pfp_add_divides_result_productcoefficientscoefficientdiagonaltermleftentry. pfrd_qb_add_divides_result = ff_q_pfp_add_divides_result_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_add_divides_result_productcoefficientscoefficientdiagonal)) * pfrd_qc_add_divides_result) + (pfc_left_add_divides_result_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_add_divides_result_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_add_divides_result_productcoefficientscoefficientdiagonaltermleftoutside+(pfrd_qlen_add_divides_result)=(pfc_index_add_divides_result_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_add_divides_result_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_add_divides_result_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_add_divides_result_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_add_divides_result_productcoefficientscoefficientdiagonalterm) = (J)) /\ ((((exists ff_h_pfp_add_divides_result_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_add_divides_result_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_add_divides_result_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_add_divides_result_productcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_add_divides_result_productcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_add_divides_result_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_add_divides_result_productcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_add_divides_result_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_add_divides_result_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_add_divides_result_productcoefficientscoefficientdiagonaltermrightoutside+(J)=(pfc_complement_add_divides_result_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_add_divides_result_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_add_divides_result_productcoefficientscoefficientdiagonal)=pfc_left_add_divides_result_productcoefficientscoefficientdiagonalterm*pfc_right_add_divides_result_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_add_divides_result_productcoefficientscoefficientsum fs_v_pfc_add_divides_result_productcoefficientscoefficientsum. ((((exists fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_start. fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_add_divides_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_start. fs_u_pfc_add_divides_result_productcoefficientscoefficientsum = fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_add_divides_result_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_add_divides_result_productcoefficientscoefficient) = S ((S (S (pfc_index_add_divides_result_productcoefficients))) * fs_v_pfc_add_divides_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_add_divides_result_productcoefficientscoefficientsum = fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_add_divides_result_productcoefficients))) * fs_v_pfc_add_divides_result_productcoefficientscoefficientsum) + (pfc_natural_sum_add_divides_result_productcoefficientscoefficient))) /\ forall fs_i_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps = S (pfc_index_add_divides_result_productcoefficients)) -> exists fs_a_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps fs_r_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps fs_s_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_add_divides_result_productcoefficientscoefficient)) /\ exists fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_add_divides_result_productcoefficientscoefficient = fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_add_divides_result_productcoefficientscoefficient) + (fs_a_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_add_divides_result_productcoefficientscoefficientsum = fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_result_productcoefficientscoefficientsum) + (fs_r_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_add_divides_result_productcoefficientscoefficientsum = fs_q_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_add_divides_result_productcoefficientscoefficientsum) + (fs_s_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps = fs_r_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps + fs_a_pfc_add_divides_result_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_add_divides_result_productcoefficientscoefficientresiduebound. pfa_gap_add_divides_result_productcoefficientscoefficientresiduebound + S (pfc_value_add_divides_result_productcoefficients) = (p)) /\ ((exists pfa_offset_left_add_divides_result_productcoefficientscoefficientresiduecongruence pfa_offset_right_add_divides_result_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_add_divides_result_productcoefficientscoefficient) + (p) * pfa_offset_left_add_divides_result_productcoefficientscoefficientresiduecongruence = (pfc_value_add_divides_result_productcoefficients) + (p) * pfa_offset_right_add_divides_result_productcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfrep_power_add_divides_result_target pfrep_left_add_divides_result_target pfrep_right_add_divides_result_target. ((exists pfrep_position_add_divides_result_targetfirst. ((pfrep_position_add_divides_result_targetfirst+S (pfrep_power_add_divides_result_target)=(pfrd_plen_add_divides_result)) /\ ((((exists ff_h_pfp_add_divides_result_targetfirstentry. ff_h_pfp_add_divides_result_targetfirstentry + S (pfrep_left_add_divides_result_target) = S ((S (pfrep_position_add_divides_result_targetfirst)) * pfrd_pc_add_divides_result)) /\ exists ff_q_pfp_add_divides_result_targetfirstentry. pfrd_pb_add_divides_result = ff_q_pfp_add_divides_result_targetfirstentry * S ((S (pfrep_position_add_divides_result_targetfirst)) * pfrd_pc_add_divides_result) + (pfrep_left_add_divides_result_target)))))) \/ (((exists pfrep_gap_add_divides_result_targetfirstoutside. pfrep_gap_add_divides_result_targetfirstoutside+(pfrd_plen_add_divides_result)=(pfrep_power_add_divides_result_target)) /\ (((pfrep_left_add_divides_result_target)=0))))) -> ((exists pfrep_position_add_divides_result_targetsecond. ((pfrep_position_add_divides_result_targetsecond+S (pfrep_power_add_divides_result_target)=(N)) /\ ((((exists ff_h_pfp_add_divides_result_targetsecondentry. ff_h_pfp_add_divides_result_targetsecondentry + S (pfrep_right_add_divides_result_target) = S ((S (pfrep_position_add_divides_result_targetsecond)) * rc)) /\ exists ff_q_pfp_add_divides_result_targetsecondentry. rb = ff_q_pfp_add_divides_result_targetsecondentry * S ((S (pfrep_position_add_divides_result_targetsecond)) * rc) + (pfrep_right_add_divides_result_target)))))) \/ (((exists pfrep_gap_add_divides_result_targetsecondoutside. pfrep_gap_add_divides_result_targetsecondoutside+(N)=(pfrep_power_add_divides_result_target)) /\ (((pfrep_right_add_divides_result_target)=0))))) -> pfrep_left_add_divides_result_target=pfrep_right_add_divides_result_target)))))))

Complete tactic proof in conservative notation

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

263 script commands · 43 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 (6)
01Fix variables and assumptionsL1–10

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

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

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

  1. L11
    intro rb
  2. L12
    intro rc
  3. L13
    intro N
  4. L14
    intro hp
  5. L15
    intro hDA
  6. L16
    intro hDB
  7. L17
    intro hop
03Establish hp0L18–23

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

  1. L18
    have hp0 : ~(p=0)
  2. L19
    intro hz
  3. L20
    specialize prime_nonzero (p)
  4. L21
    apply prime_nonzero
  5. L22
    exact hp
  6. L23
    exact hz
04Separate the logical casesL24–33

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

  1. L24
    cases hDA
  2. L25
    cases hDA_right
  3. L26
    cases hDA_right_witness
  4. L27
    cases hDA_right_witness_witness
  5. L28
    cases hDA_right_witness_witness_witness
  6. L29
    cases hDA_right_witness_witness_witness_witness
  7. L30
    cases hDA_right_witness_witness_witness_witness_witness
  8. L31
    cases hDA_right_witness_witness_witness_witness_witness_witness
  9. L32
    cases hDB
  10. L33
    cases hDB_right
05Separate the logical casesL34–39

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

  1. L34
    cases hDB_right_witness
  2. L35
    cases hDB_right_witness_witness
  3. L36
    cases hDB_right_witness_witness_witness
  4. L37
    cases hDB_right_witness_witness_witness_witness
  5. L38
    cases hDB_right_witness_witness_witness_witness_witness
  6. L39
    cases hDB_right_witness_witness_witness_witness_witness_witness
06Establish hfirstL40–41

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

  1. L40
    have hfirst : FpPolyProduct(p,x,x1,x2,db,dc,J,x3,x4,x5)Definitions: FpPolyProduct(p,x,x1,x2,db,dc,J,x3,x4,x5)Original native command in the exact edition
  2. L41
    exact hDA_right_witness_witness_witness_witness_witness_witness_left
07Separate the logical casesL42–44

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

  1. L42
    cases hfirst
  2. L43
    cases hfirst_right
  3. L44
    cases hfirst_right_right
08Establish hfirst_boundedL45–54

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

  1. L45
    have hfirst_bounded : BetaPrefixInto(x3,x4,x5,p)Definitions: BetaPrefixInto(x3,x4,x5,p)Original native command in the exact edition
  2. L46
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L47
    specialize prime_field_polynomial_convolution_bounded (x)
  4. L48
    specialize prime_field_polynomial_convolution_bounded (x1)
  5. L49
    specialize prime_field_polynomial_convolution_bounded (x2)
  6. L50
    specialize prime_field_polynomial_convolution_bounded (db)
  7. L51
    specialize prime_field_polynomial_convolution_bounded (dc)
  8. L52
    specialize prime_field_polynomial_convolution_bounded (J)
  9. L53
    specialize prime_field_polynomial_convolution_bounded (x3)
  10. L54
    specialize prime_field_polynomial_convolution_bounded (x4)
09Use earlier factsL55–57

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

  1. L55
    specialize prime_field_polynomial_convolution_bounded (x5)
  2. L56
    apply prime_field_polynomial_convolution_bounded
  3. L57
    exact hDA_right_witness_witness_witness_witness_witness_witness_left
10Establish hsecondL58–59

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

  1. L58
    have hsecond : FpPolyProduct(p,x6,x7,x8,db,dc,J,x9,x10,x11)Definitions: FpPolyProduct(p,x6,x7,x8,db,dc,J,x9,x10,x11)Original native command in the exact edition
  2. L59
    exact hDB_right_witness_witness_witness_witness_witness_witness_left
11Separate the logical casesL60–62

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

  1. L60
    cases hsecond
  2. L61
    cases hsecond_right
  3. L62
    cases hsecond_right_right
12Establish hsecond_boundedL63–72

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

  1. L63
    have hsecond_bounded : BetaPrefixInto(x9,x10,x11,p)Definitions: BetaPrefixInto(x9,x10,x11,p)Original native command in the exact edition
  2. L64
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L65
    specialize prime_field_polynomial_convolution_bounded (x6)
  4. L66
    specialize prime_field_polynomial_convolution_bounded (x7)
  5. L67
    specialize prime_field_polynomial_convolution_bounded (x8)
  6. L68
    specialize prime_field_polynomial_convolution_bounded (db)
  7. L69
    specialize prime_field_polynomial_convolution_bounded (dc)
  8. L70
    specialize prime_field_polynomial_convolution_bounded (J)
  9. L71
    specialize prime_field_polynomial_convolution_bounded (x9)
  10. L72
    specialize prime_field_polynomial_convolution_bounded (x10)
13Use earlier factsL73–75

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

  1. L73
    specialize prime_field_polynomial_convolution_bounded (x11)
  2. L74
    apply prime_field_polynomial_convolution_bounded
  3. L75
    exact hDB_right_witness_witness_witness_witness_witness_witness_left
14Establish hwL76–85

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

  1. L76
    have hw : ∃ wb. ∃ wc. FpPolynomialAlignedAdd(p,x,x1,x2,x6,x7,x8,wb,wc,x2 + x8)Definitions: FpPolynomialAlignedAdd(p,x,x1,x2,x6,x7,x8,wb,wc,x2 + x8)Original native command in the exact edition
  2. L77
    specialize prime_field_polynomial_aligned_add_exists (p)
  3. L78
    specialize prime_field_polynomial_aligned_add_exists (x)
  4. L79
    specialize prime_field_polynomial_aligned_add_exists (x1)
  5. L80
    specialize prime_field_polynomial_aligned_add_exists (x2)
  6. L81
    specialize prime_field_polynomial_aligned_add_exists (x6)
  7. L82
    specialize prime_field_polynomial_aligned_add_exists (x7)
  8. L83
    specialize prime_field_polynomial_aligned_add_exists (x8)
  9. L84
    apply prime_field_polynomial_aligned_add_exists
  10. L85
    exact hp
15Use earlier factsL86–87

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

  1. L86
    exact hfirst_left
  2. L87
    exact hsecond_left
16Separate the logical casesL88–89

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

  1. L88
    cases hw
  2. L89
    cases hw_witness
17Establish hwboundL90–99

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

  1. L90
    have hwbound : BetaPrefixInto(x,x1,x2,p) ∧ (BetaPrefixInto(x6,x7,x8,p) ∧ BetaPrefixInto(x12,x13,x2 + x8,p))Definitions: BetaPrefixInto(x,x1,x2,p)BetaPrefixInto(x6,x7,x8,p)BetaPrefixInto(x12,x13,x2 + x8,p)Original native command in the exact edition
  2. L91
    specialize prime_field_polynomial_aligned_add_bounded (p)
  3. L92
    specialize prime_field_polynomial_aligned_add_bounded (x)
  4. L93
    specialize prime_field_polynomial_aligned_add_bounded (x1)
  5. L94
    specialize prime_field_polynomial_aligned_add_bounded (x2)
  6. L95
    specialize prime_field_polynomial_aligned_add_bounded (x6)
  7. L96
    specialize prime_field_polynomial_aligned_add_bounded (x7)
  8. L97
    specialize prime_field_polynomial_aligned_add_bounded (x8)
  9. L98
    specialize prime_field_polynomial_aligned_add_bounded (x12)
  10. L99
    specialize prime_field_polynomial_aligned_add_bounded (x13)
18Use earlier factsL100–102

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

  1. L100
    specialize prime_field_polynomial_aligned_add_bounded ((x2)+(x8))
  2. L101
    apply prime_field_polynomial_aligned_add_bounded
  3. L102
    exact hw_witness_witness
19Separate the logical casesL103–104

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

  1. L103
    cases hwbound
  2. L104
    cases hwbound_right
20Establish hresult_lengthL105–108

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

  1. L105
    have hresult_length : ∃ n. PolynomialProductLength(x2 + x8,J,n)Definitions: PolynomialProductLength(x2 + x8,J,n)Original native command in the exact edition
  2. L106
    specialize polynomial_product_length_exists ((x2)+(x8))
  3. L107
    specialize polynomial_product_length_exists (J)
  4. L108
    apply polynomial_product_length_exists
21Separate the logical casesL109–109

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

  1. L109
    cases hresult_length
22Establish hresult_productL110–119

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. L110
    have hresult_product : ∃ b. ∃ c. FpPolyProduct(p,x12,x13,x2 + x8,db,dc,J,b,c,x14)Definitions: FpPolyProduct(p,x12,x13,x2 + x8,db,dc,J,b,c,x14)Original native command in the exact edition
  2. L111
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L112
    specialize prime_field_polynomial_convolution_at_length_exists (x12)
  4. L113
    specialize prime_field_polynomial_convolution_at_length_exists (x13)
  5. L114
    specialize prime_field_polynomial_convolution_at_length_exists ((x2)+(x8))
  6. L115
    specialize prime_field_polynomial_convolution_at_length_exists (db)
  7. L116
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  8. L117
    specialize prime_field_polynomial_convolution_at_length_exists (J)
  9. L118
    specialize prime_field_polynomial_convolution_at_length_exists (x14)
  10. L119
    apply prime_field_polynomial_convolution_at_length_exists
23Use earlier factsL120–123

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

  1. L120
    exact hp0
  2. L121
    exact hwbound_right_right
  3. L122
    exact hfirst_right_left
  4. L123
    exact hresult_length_witness
24Separate the logical casesL124–125

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

  1. L124
    cases hresult_product
  2. L125
    cases hresult_product_witness
25Establish htboundL126–135

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

  1. L126
    have htbound : BetaPrefixInto(x15,x16,x14,p)Definitions: BetaPrefixInto(x15,x16,x14,p)Original native command in the exact edition
  2. L127
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L128
    specialize prime_field_polynomial_convolution_bounded (x12)
  4. L129
    specialize prime_field_polynomial_convolution_bounded (x13)
  5. L130
    specialize prime_field_polynomial_convolution_bounded ((x2)+(x8))
  6. L131
    specialize prime_field_polynomial_convolution_bounded (db)
  7. L132
    specialize prime_field_polynomial_convolution_bounded (dc)
  8. L133
    specialize prime_field_polynomial_convolution_bounded (J)
  9. L134
    specialize prime_field_polynomial_convolution_bounded (x15)
  10. L135
    specialize prime_field_polynomial_convolution_bounded (x16)
26Use earlier factsL136–138

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

  1. L136
    specialize prime_field_polynomial_convolution_bounded (x14)
  2. L137
    apply prime_field_polynomial_convolution_bounded
  3. L138
    exact hresult_product_witness_witness
27Establish hdistrL139–148

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

  1. L139
    have hdistr : FpPolynomialAlignedAdd(p,x3,x4,x5,x9,x10,x11,x15,x16,x14)Definitions: FpPolynomialAlignedAdd(p,x3,x4,x5,x9,x10,x11,x15,x16,x14)Original native command in the exact edition
  2. L140
    specialize prime_field_polynomial_aligned_convolution_right_add (p)
  3. L141
    specialize prime_field_polynomial_aligned_convolution_right_add (x)
  4. L142
    specialize prime_field_polynomial_aligned_convolution_right_add (x1)
  5. L143
    specialize prime_field_polynomial_aligned_convolution_right_add (x2)
  6. L144
    specialize prime_field_polynomial_aligned_convolution_right_add (x6)
  7. L145
    specialize prime_field_polynomial_aligned_convolution_right_add (x7)
  8. L146
    specialize prime_field_polynomial_aligned_convolution_right_add (x8)
  9. L147
    specialize prime_field_polynomial_aligned_convolution_right_add (x12)
  10. L148
    specialize prime_field_polynomial_aligned_convolution_right_add (x13)
28Use earlier factsL149–158

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

  1. L149
    specialize prime_field_polynomial_aligned_convolution_right_add ((x2)+(x8))
  2. L150
    specialize prime_field_polynomial_aligned_convolution_right_add (db)
  3. L151
    specialize prime_field_polynomial_aligned_convolution_right_add (dc)
  4. L152
    specialize prime_field_polynomial_aligned_convolution_right_add (J)
  5. L153
    specialize prime_field_polynomial_aligned_convolution_right_add (x3)
  6. L154
    specialize prime_field_polynomial_aligned_convolution_right_add (x4)
  7. L155
    specialize prime_field_polynomial_aligned_convolution_right_add (x5)
  8. L156
    specialize prime_field_polynomial_aligned_convolution_right_add (x9)
  9. L157
    specialize prime_field_polynomial_aligned_convolution_right_add (x10)
  10. L158
    specialize prime_field_polynomial_aligned_convolution_right_add (x11)
29Use earlier factsL159–167

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

  1. L159
    specialize prime_field_polynomial_aligned_convolution_right_add (x15)
  2. L160
    specialize prime_field_polynomial_aligned_convolution_right_add (x16)
  3. L161
    specialize prime_field_polynomial_aligned_convolution_right_add (x14)
  4. L162
    apply prime_field_polynomial_aligned_convolution_right_add
  5. L163
    exact hp
  6. L164
    exact hw_witness_witness
  7. L165
    exact hDA_right_witness_witness_witness_witness_witness_witness_left
  8. L166
    exact hDB_right_witness_witness_witness_witness_witness_witness_left
  9. L167
    exact hresult_product_witness_witness
30Establish hcompareL168–177

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

  1. L168
    have hcompare : FpPolynomialAlignedAdd(p,x3,x4,x5,x9,x10,x11,rb,rc,N)Definitions: FpPolynomialAlignedAdd(p,x3,x4,x5,x9,x10,x11,rb,rc,N)Original native command in the exact edition
  2. L169
    specialize prime_field_polynomial_aligned_add_transport (p)
  3. L170
    specialize prime_field_polynomial_aligned_add_transport (ab)
  4. L171
    specialize prime_field_polynomial_aligned_add_transport (ac)
  5. L172
    specialize prime_field_polynomial_aligned_add_transport (L)
  6. L173
    specialize prime_field_polynomial_aligned_add_transport (bb)
  7. L174
    specialize prime_field_polynomial_aligned_add_transport (bc)
  8. L175
    specialize prime_field_polynomial_aligned_add_transport (M)
  9. L176
    specialize prime_field_polynomial_aligned_add_transport (rb)
  10. L177
    specialize prime_field_polynomial_aligned_add_transport (rc)
31Use earlier factsL178–187

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

  1. L178
    specialize prime_field_polynomial_aligned_add_transport (N)
  2. L179
    specialize prime_field_polynomial_aligned_add_transport (x3)
  3. L180
    specialize prime_field_polynomial_aligned_add_transport (x4)
  4. L181
    specialize prime_field_polynomial_aligned_add_transport (x5)
  5. L182
    specialize prime_field_polynomial_aligned_add_transport (x9)
  6. L183
    specialize prime_field_polynomial_aligned_add_transport (x10)
  7. L184
    specialize prime_field_polynomial_aligned_add_transport (x11)
  8. L185
    specialize prime_field_polynomial_aligned_add_transport (rb)
  9. L186
    specialize prime_field_polynomial_aligned_add_transport (rc)
  10. L187
    specialize prime_field_polynomial_aligned_add_transport (N)
32Use earlier factsL188–190

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

  1. L188
    apply prime_field_polynomial_aligned_add_transport
  2. L189
    exact hfirst_bounded
  3. L190
    exact hsecond_bounded
33Establish hrboundL191–200

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

  1. L191
    have hrbound : BetaPrefixInto(ab,ac,L,p) ∧ (BetaPrefixInto(bb,bc,M,p) ∧ BetaPrefixInto(rb,rc,N,p))Definitions: BetaPrefixInto(ab,ac,L,p)BetaPrefixInto(bb,bc,M,p)BetaPrefixInto(rb,rc,N,p)Original native command in the exact edition
  2. L192
    specialize prime_field_polynomial_aligned_add_bounded (p)
  3. L193
    specialize prime_field_polynomial_aligned_add_bounded (ab)
  4. L194
    specialize prime_field_polynomial_aligned_add_bounded (ac)
  5. L195
    specialize prime_field_polynomial_aligned_add_bounded (L)
  6. L196
    specialize prime_field_polynomial_aligned_add_bounded (bb)
  7. L197
    specialize prime_field_polynomial_aligned_add_bounded (bc)
  8. L198
    specialize prime_field_polynomial_aligned_add_bounded (M)
  9. L199
    specialize prime_field_polynomial_aligned_add_bounded (rb)
  10. L200
    specialize prime_field_polynomial_aligned_add_bounded (rc)
34Use earlier factsL201–203

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

  1. L201
    specialize prime_field_polynomial_aligned_add_bounded (N)
  2. L202
    apply prime_field_polynomial_aligned_add_bounded
  3. L203
    exact hop
35Separate the logical casesL204–205

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

  1. L204
    cases hrbound
  2. L205
    cases hrbound_right
36Use earlier factsL206–213

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

  1. L206
    exact hrbound_right_right
  2. L207
    exact hDA_right_witness_witness_witness_witness_witness_witness_right
  3. L208
    exact hDB_right_witness_witness_witness_witness_witness_witness_right
  4. L209
    specialize prime_field_polynomial_power_coefficient_functional (rb)
  5. L210
    specialize prime_field_polynomial_power_coefficient_functional (rc)
  6. L211
    specialize prime_field_polynomial_power_coefficient_functional (N)
  7. L212
    apply prime_field_polynomial_power_coefficient_functional
  8. L213
    exact hop
37Establish heqL214–223

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

  1. L214
    have heq : PolynomialEquivalent(x15,x16,x14,rb,rc,N)Definitions: PolynomialEquivalent(x15,x16,x14,rb,rc,N)Original native command in the exact edition
  2. L215
    specialize prime_field_polynomial_aligned_add_functional (p)
  3. L216
    specialize prime_field_polynomial_aligned_add_functional (x3)
  4. L217
    specialize prime_field_polynomial_aligned_add_functional (x4)
  5. L218
    specialize prime_field_polynomial_aligned_add_functional (x5)
  6. L219
    specialize prime_field_polynomial_aligned_add_functional (x9)
  7. L220
    specialize prime_field_polynomial_aligned_add_functional (x10)
  8. L221
    specialize prime_field_polynomial_aligned_add_functional (x11)
  9. L222
    specialize prime_field_polynomial_aligned_add_functional (x15)
  10. L223
    specialize prime_field_polynomial_aligned_add_functional (x16)
38Use earlier factsL224–231

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

  1. L224
    specialize prime_field_polynomial_aligned_add_functional (x14)
  2. L225
    specialize prime_field_polynomial_aligned_add_functional (rb)
  3. L226
    specialize prime_field_polynomial_aligned_add_functional (rc)
  4. L227
    specialize prime_field_polynomial_aligned_add_functional (N)
  5. L228
    apply prime_field_polynomial_aligned_add_functional
  6. L229
    exact hp
  7. L230
    exact hdistr
  8. L231
    exact hcompare
39Establish hopboundL232–241

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

  1. L232
    have hopbound : BetaPrefixInto(ab,ac,L,p) ∧ (BetaPrefixInto(bb,bc,M,p) ∧ BetaPrefixInto(rb,rc,N,p))Definitions: BetaPrefixInto(ab,ac,L,p)BetaPrefixInto(bb,bc,M,p)BetaPrefixInto(rb,rc,N,p)Original native command in the exact edition
  2. L233
    specialize prime_field_polynomial_aligned_add_bounded (p)
  3. L234
    specialize prime_field_polynomial_aligned_add_bounded (ab)
  4. L235
    specialize prime_field_polynomial_aligned_add_bounded (ac)
  5. L236
    specialize prime_field_polynomial_aligned_add_bounded (L)
  6. L237
    specialize prime_field_polynomial_aligned_add_bounded (bb)
  7. L238
    specialize prime_field_polynomial_aligned_add_bounded (bc)
  8. L239
    specialize prime_field_polynomial_aligned_add_bounded (M)
  9. L240
    specialize prime_field_polynomial_aligned_add_bounded (rb)
  10. L241
    specialize prime_field_polynomial_aligned_add_bounded (rc)
40Use earlier factsL242–244

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

  1. L242
    specialize prime_field_polynomial_aligned_add_bounded (N)
  2. L243
    apply prime_field_polynomial_aligned_add_bounded
  3. L244
    exact hop
41Separate the logical casesL245–246

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

  1. L245
    cases hopbound
  2. L246
    cases hopbound_right
42Use earlier factsL247–256

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

  1. L247
    specialize prime_field_polynomial_right_divides_from_product (p)
  2. L248
    specialize prime_field_polynomial_right_divides_from_product (db)
  3. L249
    specialize prime_field_polynomial_right_divides_from_product (dc)
  4. L250
    specialize prime_field_polynomial_right_divides_from_product (J)
  5. L251
    specialize prime_field_polynomial_right_divides_from_product (rb)
  6. L252
    specialize prime_field_polynomial_right_divides_from_product (rc)
  7. L253
    specialize prime_field_polynomial_right_divides_from_product (N)
  8. L254
    specialize prime_field_polynomial_right_divides_from_product (x12)
  9. L255
    specialize prime_field_polynomial_right_divides_from_product (x13)
  10. L256
    specialize prime_field_polynomial_right_divides_from_product ((x2)+(x8))
43Use earlier factsL257–263

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

  1. L257
    specialize prime_field_polynomial_right_divides_from_product (x15)
  2. L258
    specialize prime_field_polynomial_right_divides_from_product (x16)
  3. L259
    specialize prime_field_polynomial_right_divides_from_product (x14)
  4. L260
    apply prime_field_polynomial_right_divides_from_product
  5. L261
    exact hopbound_right_right
  6. L262
    exact hresult_product_witness_witness
  7. L263
    exact heq

Library-wide reading audit

Original defined command ledger · 263 lines
  1. 0001intro p
  2. 0002intro db
  3. 0003intro dc
  4. 0004intro J
  5. 0005intro ab
  6. 0006intro ac
  7. 0007intro L
  8. 0008intro bb
  9. 0009intro bc
  10. 0010intro M
  11. 0011intro rb
  12. 0012intro rc
  13. 0013intro N
  14. 0014intro hp
  15. 0015intro hDA
  16. 0016intro hDB
  17. 0017intro hop
  18. 0018have hp0 : ~(p=0)
  19. 0019intro hz
  20. 0020specialize prime_nonzero (p)
  21. 0021apply prime_nonzero
  22. 0022exact hp
  23. 0023exact hz
  24. 0024cases hDA
  25. 0025cases hDA_right
  26. 0026cases hDA_right_witness
  27. 0027cases hDA_right_witness_witness
  28. 0028cases hDA_right_witness_witness_witness
  29. 0029cases hDA_right_witness_witness_witness_witness
  30. 0030cases hDA_right_witness_witness_witness_witness_witness
  31. 0031cases hDA_right_witness_witness_witness_witness_witness_witness
  32. 0032cases hDB
  33. 0033cases hDB_right
  34. 0034cases hDB_right_witness
  35. 0035cases hDB_right_witness_witness
  36. 0036cases hDB_right_witness_witness_witness
  37. 0037cases hDB_right_witness_witness_witness_witness
  38. 0038cases hDB_right_witness_witness_witness_witness_witness
  39. 0039cases hDB_right_witness_witness_witness_witness_witness_witness
  40. 0040have hfirst : FpPolyProduct(p,x,x1,x2,db,dc,J,x3,x4,x5)
  41. 0041exact hDA_right_witness_witness_witness_witness_witness_witness_left
  42. 0042cases hfirst
  43. 0043cases hfirst_right
  44. 0044cases hfirst_right_right
  45. 0045have hfirst_bounded : BetaPrefixInto(x3,x4,x5,p)
  46. 0046specialize prime_field_polynomial_convolution_bounded (p)
  47. 0047specialize prime_field_polynomial_convolution_bounded (x)
  48. 0048specialize prime_field_polynomial_convolution_bounded (x1)
  49. 0049specialize prime_field_polynomial_convolution_bounded (x2)
  50. 0050specialize prime_field_polynomial_convolution_bounded (db)
  51. 0051specialize prime_field_polynomial_convolution_bounded (dc)
  52. 0052specialize prime_field_polynomial_convolution_bounded (J)
  53. 0053specialize prime_field_polynomial_convolution_bounded (x3)
  54. 0054specialize prime_field_polynomial_convolution_bounded (x4)
  55. 0055specialize prime_field_polynomial_convolution_bounded (x5)
  56. 0056apply prime_field_polynomial_convolution_bounded
  57. 0057exact hDA_right_witness_witness_witness_witness_witness_witness_left
  58. 0058have hsecond : FpPolyProduct(p,x6,x7,x8,db,dc,J,x9,x10,x11)
  59. 0059exact hDB_right_witness_witness_witness_witness_witness_witness_left
  60. 0060cases hsecond
  61. 0061cases hsecond_right
  62. 0062cases hsecond_right_right
  63. 0063have hsecond_bounded : BetaPrefixInto(x9,x10,x11,p)
  64. 0064specialize prime_field_polynomial_convolution_bounded (p)
  65. 0065specialize prime_field_polynomial_convolution_bounded (x6)
  66. 0066specialize prime_field_polynomial_convolution_bounded (x7)
  67. 0067specialize prime_field_polynomial_convolution_bounded (x8)
  68. 0068specialize prime_field_polynomial_convolution_bounded (db)
  69. 0069specialize prime_field_polynomial_convolution_bounded (dc)
  70. 0070specialize prime_field_polynomial_convolution_bounded (J)
  71. 0071specialize prime_field_polynomial_convolution_bounded (x9)
  72. 0072specialize prime_field_polynomial_convolution_bounded (x10)
  73. 0073specialize prime_field_polynomial_convolution_bounded (x11)
  74. 0074apply prime_field_polynomial_convolution_bounded
  75. 0075exact hDB_right_witness_witness_witness_witness_witness_witness_left
  76. 0076have hw : ∃ wb. ∃ wc. FpPolynomialAlignedAdd(p,x,x1,x2,x6,x7,x8,wb,wc,x2 + x8)
  77. 0077specialize prime_field_polynomial_aligned_add_exists (p)
  78. 0078specialize prime_field_polynomial_aligned_add_exists (x)
  79. 0079specialize prime_field_polynomial_aligned_add_exists (x1)
  80. 0080specialize prime_field_polynomial_aligned_add_exists (x2)
  81. 0081specialize prime_field_polynomial_aligned_add_exists (x6)
  82. 0082specialize prime_field_polynomial_aligned_add_exists (x7)
  83. 0083specialize prime_field_polynomial_aligned_add_exists (x8)
  84. 0084apply prime_field_polynomial_aligned_add_exists
  85. 0085exact hp
  86. 0086exact hfirst_left
  87. 0087exact hsecond_left
  88. 0088cases hw
  89. 0089cases hw_witness
  90. 0090have hwbound : BetaPrefixInto(x,x1,x2,p) ∧ (BetaPrefixInto(x6,x7,x8,p)BetaPrefixInto(x12,x13,x2 + x8,p))
  91. 0091specialize prime_field_polynomial_aligned_add_bounded (p)
  92. 0092specialize prime_field_polynomial_aligned_add_bounded (x)
  93. 0093specialize prime_field_polynomial_aligned_add_bounded (x1)
  94. 0094specialize prime_field_polynomial_aligned_add_bounded (x2)
  95. 0095specialize prime_field_polynomial_aligned_add_bounded (x6)
  96. 0096specialize prime_field_polynomial_aligned_add_bounded (x7)
  97. 0097specialize prime_field_polynomial_aligned_add_bounded (x8)
  98. 0098specialize prime_field_polynomial_aligned_add_bounded (x12)
  99. 0099specialize prime_field_polynomial_aligned_add_bounded (x13)
  100. 0100specialize prime_field_polynomial_aligned_add_bounded ((x2)+(x8))
  101. 0101apply prime_field_polynomial_aligned_add_bounded
  102. 0102exact hw_witness_witness
  103. 0103cases hwbound
  104. 0104cases hwbound_right
  105. 0105have hresult_length : ∃ n. PolynomialProductLength(x2 + x8,J,n)
  106. 0106specialize polynomial_product_length_exists ((x2)+(x8))
  107. 0107specialize polynomial_product_length_exists (J)
  108. 0108apply polynomial_product_length_exists
  109. 0109cases hresult_length
  110. 0110have hresult_product : ∃ b. ∃ c. FpPolyProduct(p,x12,x13,x2 + x8,db,dc,J,b,c,x14)
  111. 0111specialize prime_field_polynomial_convolution_at_length_exists (p)
  112. 0112specialize prime_field_polynomial_convolution_at_length_exists (x12)
  113. 0113specialize prime_field_polynomial_convolution_at_length_exists (x13)
  114. 0114specialize prime_field_polynomial_convolution_at_length_exists ((x2)+(x8))
  115. 0115specialize prime_field_polynomial_convolution_at_length_exists (db)
  116. 0116specialize prime_field_polynomial_convolution_at_length_exists (dc)
  117. 0117specialize prime_field_polynomial_convolution_at_length_exists (J)
  118. 0118specialize prime_field_polynomial_convolution_at_length_exists (x14)
  119. 0119apply prime_field_polynomial_convolution_at_length_exists
  120. 0120exact hp0
  121. 0121exact hwbound_right_right
  122. 0122exact hfirst_right_left
  123. 0123exact hresult_length_witness
  124. 0124cases hresult_product
  125. 0125cases hresult_product_witness
  126. 0126have htbound : BetaPrefixInto(x15,x16,x14,p)
  127. 0127specialize prime_field_polynomial_convolution_bounded (p)
  128. 0128specialize prime_field_polynomial_convolution_bounded (x12)
  129. 0129specialize prime_field_polynomial_convolution_bounded (x13)
  130. 0130specialize prime_field_polynomial_convolution_bounded ((x2)+(x8))
  131. 0131specialize prime_field_polynomial_convolution_bounded (db)
  132. 0132specialize prime_field_polynomial_convolution_bounded (dc)
  133. 0133specialize prime_field_polynomial_convolution_bounded (J)
  134. 0134specialize prime_field_polynomial_convolution_bounded (x15)
  135. 0135specialize prime_field_polynomial_convolution_bounded (x16)
  136. 0136specialize prime_field_polynomial_convolution_bounded (x14)
  137. 0137apply prime_field_polynomial_convolution_bounded
  138. 0138exact hresult_product_witness_witness
  139. 0139have hdistr : FpPolynomialAlignedAdd(p,x3,x4,x5,x9,x10,x11,x15,x16,x14)
  140. 0140specialize prime_field_polynomial_aligned_convolution_right_add (p)
  141. 0141specialize prime_field_polynomial_aligned_convolution_right_add (x)
  142. 0142specialize prime_field_polynomial_aligned_convolution_right_add (x1)
  143. 0143specialize prime_field_polynomial_aligned_convolution_right_add (x2)
  144. 0144specialize prime_field_polynomial_aligned_convolution_right_add (x6)
  145. 0145specialize prime_field_polynomial_aligned_convolution_right_add (x7)
  146. 0146specialize prime_field_polynomial_aligned_convolution_right_add (x8)
  147. 0147specialize prime_field_polynomial_aligned_convolution_right_add (x12)
  148. 0148specialize prime_field_polynomial_aligned_convolution_right_add (x13)
  149. 0149specialize prime_field_polynomial_aligned_convolution_right_add ((x2)+(x8))
  150. 0150specialize prime_field_polynomial_aligned_convolution_right_add (db)
  151. 0151specialize prime_field_polynomial_aligned_convolution_right_add (dc)
  152. 0152specialize prime_field_polynomial_aligned_convolution_right_add (J)
  153. 0153specialize prime_field_polynomial_aligned_convolution_right_add (x3)
  154. 0154specialize prime_field_polynomial_aligned_convolution_right_add (x4)
  155. 0155specialize prime_field_polynomial_aligned_convolution_right_add (x5)
  156. 0156specialize prime_field_polynomial_aligned_convolution_right_add (x9)
  157. 0157specialize prime_field_polynomial_aligned_convolution_right_add (x10)
  158. 0158specialize prime_field_polynomial_aligned_convolution_right_add (x11)
  159. 0159specialize prime_field_polynomial_aligned_convolution_right_add (x15)
  160. 0160specialize prime_field_polynomial_aligned_convolution_right_add (x16)
  161. 0161specialize prime_field_polynomial_aligned_convolution_right_add (x14)
  162. 0162apply prime_field_polynomial_aligned_convolution_right_add
  163. 0163exact hp
  164. 0164exact hw_witness_witness
  165. 0165exact hDA_right_witness_witness_witness_witness_witness_witness_left
  166. 0166exact hDB_right_witness_witness_witness_witness_witness_witness_left
  167. 0167exact hresult_product_witness_witness
  168. 0168have hcompare : FpPolynomialAlignedAdd(p,x3,x4,x5,x9,x10,x11,rb,rc,N)
  169. 0169specialize prime_field_polynomial_aligned_add_transport (p)
  170. 0170specialize prime_field_polynomial_aligned_add_transport (ab)
  171. 0171specialize prime_field_polynomial_aligned_add_transport (ac)
  172. 0172specialize prime_field_polynomial_aligned_add_transport (L)
  173. 0173specialize prime_field_polynomial_aligned_add_transport (bb)
  174. 0174specialize prime_field_polynomial_aligned_add_transport (bc)
  175. 0175specialize prime_field_polynomial_aligned_add_transport (M)
  176. 0176specialize prime_field_polynomial_aligned_add_transport (rb)
  177. 0177specialize prime_field_polynomial_aligned_add_transport (rc)
  178. 0178specialize prime_field_polynomial_aligned_add_transport (N)
  179. 0179specialize prime_field_polynomial_aligned_add_transport (x3)
  180. 0180specialize prime_field_polynomial_aligned_add_transport (x4)
  181. 0181specialize prime_field_polynomial_aligned_add_transport (x5)
  182. 0182specialize prime_field_polynomial_aligned_add_transport (x9)
  183. 0183specialize prime_field_polynomial_aligned_add_transport (x10)
  184. 0184specialize prime_field_polynomial_aligned_add_transport (x11)
  185. 0185specialize prime_field_polynomial_aligned_add_transport (rb)
  186. 0186specialize prime_field_polynomial_aligned_add_transport (rc)
  187. 0187specialize prime_field_polynomial_aligned_add_transport (N)
  188. 0188apply prime_field_polynomial_aligned_add_transport
  189. 0189exact hfirst_bounded
  190. 0190exact hsecond_bounded
  191. 0191have hrbound : BetaPrefixInto(ab,ac,L,p) ∧ (BetaPrefixInto(bb,bc,M,p)BetaPrefixInto(rb,rc,N,p))
  192. 0192specialize prime_field_polynomial_aligned_add_bounded (p)
  193. 0193specialize prime_field_polynomial_aligned_add_bounded (ab)
  194. 0194specialize prime_field_polynomial_aligned_add_bounded (ac)
  195. 0195specialize prime_field_polynomial_aligned_add_bounded (L)
  196. 0196specialize prime_field_polynomial_aligned_add_bounded (bb)
  197. 0197specialize prime_field_polynomial_aligned_add_bounded (bc)
  198. 0198specialize prime_field_polynomial_aligned_add_bounded (M)
  199. 0199specialize prime_field_polynomial_aligned_add_bounded (rb)
  200. 0200specialize prime_field_polynomial_aligned_add_bounded (rc)
  201. 0201specialize prime_field_polynomial_aligned_add_bounded (N)
  202. 0202apply prime_field_polynomial_aligned_add_bounded
  203. 0203exact hop
  204. 0204cases hrbound
  205. 0205cases hrbound_right
  206. 0206exact hrbound_right_right
  207. 0207exact hDA_right_witness_witness_witness_witness_witness_witness_right
  208. 0208exact hDB_right_witness_witness_witness_witness_witness_witness_right
  209. 0209specialize prime_field_polynomial_power_coefficient_functional (rb)
  210. 0210specialize prime_field_polynomial_power_coefficient_functional (rc)
  211. 0211specialize prime_field_polynomial_power_coefficient_functional (N)
  212. 0212apply prime_field_polynomial_power_coefficient_functional
  213. 0213exact hop
  214. 0214have heq : PolynomialEquivalent(x15,x16,x14,rb,rc,N)
  215. 0215specialize prime_field_polynomial_aligned_add_functional (p)
  216. 0216specialize prime_field_polynomial_aligned_add_functional (x3)
  217. 0217specialize prime_field_polynomial_aligned_add_functional (x4)
  218. 0218specialize prime_field_polynomial_aligned_add_functional (x5)
  219. 0219specialize prime_field_polynomial_aligned_add_functional (x9)
  220. 0220specialize prime_field_polynomial_aligned_add_functional (x10)
  221. 0221specialize prime_field_polynomial_aligned_add_functional (x11)
  222. 0222specialize prime_field_polynomial_aligned_add_functional (x15)
  223. 0223specialize prime_field_polynomial_aligned_add_functional (x16)
  224. 0224specialize prime_field_polynomial_aligned_add_functional (x14)
  225. 0225specialize prime_field_polynomial_aligned_add_functional (rb)
  226. 0226specialize prime_field_polynomial_aligned_add_functional (rc)
  227. 0227specialize prime_field_polynomial_aligned_add_functional (N)
  228. 0228apply prime_field_polynomial_aligned_add_functional
  229. 0229exact hp
  230. 0230exact hdistr
  231. 0231exact hcompare
  232. 0232have hopbound : BetaPrefixInto(ab,ac,L,p) ∧ (BetaPrefixInto(bb,bc,M,p)BetaPrefixInto(rb,rc,N,p))
  233. 0233specialize prime_field_polynomial_aligned_add_bounded (p)
  234. 0234specialize prime_field_polynomial_aligned_add_bounded (ab)
  235. 0235specialize prime_field_polynomial_aligned_add_bounded (ac)
  236. 0236specialize prime_field_polynomial_aligned_add_bounded (L)
  237. 0237specialize prime_field_polynomial_aligned_add_bounded (bb)
  238. 0238specialize prime_field_polynomial_aligned_add_bounded (bc)
  239. 0239specialize prime_field_polynomial_aligned_add_bounded (M)
  240. 0240specialize prime_field_polynomial_aligned_add_bounded (rb)
  241. 0241specialize prime_field_polynomial_aligned_add_bounded (rc)
  242. 0242specialize prime_field_polynomial_aligned_add_bounded (N)
  243. 0243apply prime_field_polynomial_aligned_add_bounded
  244. 0244exact hop
  245. 0245cases hopbound
  246. 0246cases hopbound_right
  247. 0247specialize prime_field_polynomial_right_divides_from_product (p)
  248. 0248specialize prime_field_polynomial_right_divides_from_product (db)
  249. 0249specialize prime_field_polynomial_right_divides_from_product (dc)
  250. 0250specialize prime_field_polynomial_right_divides_from_product (J)
  251. 0251specialize prime_field_polynomial_right_divides_from_product (rb)
  252. 0252specialize prime_field_polynomial_right_divides_from_product (rc)
  253. 0253specialize prime_field_polynomial_right_divides_from_product (N)
  254. 0254specialize prime_field_polynomial_right_divides_from_product (x12)
  255. 0255specialize prime_field_polynomial_right_divides_from_product (x13)
  256. 0256specialize prime_field_polynomial_right_divides_from_product ((x2)+(x8))
  257. 0257specialize prime_field_polynomial_right_divides_from_product (x15)
  258. 0258specialize prime_field_polynomial_right_divides_from_product (x16)
  259. 0259specialize prime_field_polynomial_right_divides_from_product (x14)
  260. 0260apply prime_field_polynomial_right_divides_from_product
  261. 0261exact hopbound_right_right
  262. 0262exact hresult_product_witness_witness
  263. 0263exact heq