PG002C

prime_field_polynomial_right_divides_transitive

Actual Q1*D equivalent to A and Q2*A equivalent to B give the actual composite quotient Q2*Q1. Three genuine intermediate products, formal associativity and right-input congruence prove its product with D equivalent to B. No commutativity, fixed representation lengths or raw-code identities are assumed.

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

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 D ab ac L bb bc M. (~((p) = 1) /\ forall pfa_factor_left_right_transitive_prime pfa_factor_right_right_transitive_prime. (p) = pfa_factor_left_right_transitive_prime * pfa_factor_right_right_transitive_prime -> pfa_factor_left_right_transitive_prime = 1 \/ pfa_factor_right_right_transitive_prime = 1) -> (((forall fom_index_pfp_right_transitive_first_canonical. (exists fom_gap_pfp_right_transitive_first_canonical_index_bound. fom_gap_pfp_right_transitive_first_canonical_index_bound + S (fom_index_pfp_right_transitive_first_canonical) = L) -> exists fom_value_pfp_right_transitive_first_canonical. ((((exists fom_beta_height_pfp_right_transitive_first_canonical_entry. fom_beta_height_pfp_right_transitive_first_canonical_entry + S (fom_value_pfp_right_transitive_first_canonical) = S ((S (fom_index_pfp_right_transitive_first_canonical)) * ac)) /\ exists fom_beta_quotient_pfp_right_transitive_first_canonical_entry. ab = fom_beta_quotient_pfp_right_transitive_first_canonical_entry * S ((S (fom_index_pfp_right_transitive_first_canonical)) * ac) + (fom_value_pfp_right_transitive_first_canonical))) /\ (exists fom_gap_pfp_right_transitive_first_canonical_value_bound. fom_gap_pfp_right_transitive_first_canonical_value_bound + S (fom_value_pfp_right_transitive_first_canonical) = p))) /\ ((exists pfrd_qb_right_transitive_first pfrd_qc_right_transitive_first pfrd_qlen_right_transitive_first pfrd_pb_right_transitive_first pfrd_pc_right_transitive_first pfrd_plen_right_transitive_first. ((((forall fom_index_pfp_right_transitive_first_productleft. (exists fom_gap_pfp_right_transitive_first_productleft_index_bound. fom_gap_pfp_right_transitive_first_productleft_index_bound + S (fom_index_pfp_right_transitive_first_productleft) = pfrd_qlen_right_transitive_first) -> exists fom_value_pfp_right_transitive_first_productleft. ((((exists fom_beta_height_pfp_right_transitive_first_productleft_entry. fom_beta_height_pfp_right_transitive_first_productleft_entry + S (fom_value_pfp_right_transitive_first_productleft) = S ((S (fom_index_pfp_right_transitive_first_productleft)) * pfrd_qc_right_transitive_first)) /\ exists fom_beta_quotient_pfp_right_transitive_first_productleft_entry. pfrd_qb_right_transitive_first = fom_beta_quotient_pfp_right_transitive_first_productleft_entry * S ((S (fom_index_pfp_right_transitive_first_productleft)) * pfrd_qc_right_transitive_first) + (fom_value_pfp_right_transitive_first_productleft))) /\ (exists fom_gap_pfp_right_transitive_first_productleft_value_bound. fom_gap_pfp_right_transitive_first_productleft_value_bound + S (fom_value_pfp_right_transitive_first_productleft) = p))) /\ (((forall fom_index_pfp_right_transitive_first_productright. (exists fom_gap_pfp_right_transitive_first_productright_index_bound. fom_gap_pfp_right_transitive_first_productright_index_bound + S (fom_index_pfp_right_transitive_first_productright) = D) -> exists fom_value_pfp_right_transitive_first_productright. ((((exists fom_beta_height_pfp_right_transitive_first_productright_entry. fom_beta_height_pfp_right_transitive_first_productright_entry + S (fom_value_pfp_right_transitive_first_productright) = S ((S (fom_index_pfp_right_transitive_first_productright)) * dc)) /\ exists fom_beta_quotient_pfp_right_transitive_first_productright_entry. db = fom_beta_quotient_pfp_right_transitive_first_productright_entry * S ((S (fom_index_pfp_right_transitive_first_productright)) * dc) + (fom_value_pfp_right_transitive_first_productright))) /\ (exists fom_gap_pfp_right_transitive_first_productright_value_bound. fom_gap_pfp_right_transitive_first_productright_value_bound + S (fom_value_pfp_right_transitive_first_productright) = p))) /\ (((((((pfrd_qlen_right_transitive_first)=0 \/ (D)=0) /\ (((pfrd_plen_right_transitive_first)=0)))) \/ (((~((pfrd_qlen_right_transitive_first)=0)) /\ (((~((D)=0)) /\ (((pfrd_qlen_right_transitive_first)+(D)=S (pfrd_plen_right_transitive_first)))))))) /\ ((forall pfc_index_right_transitive_first_productcoefficients. (exists pfa_gap_right_transitive_first_productcoefficientsbound. pfa_gap_right_transitive_first_productcoefficientsbound + S (pfc_index_right_transitive_first_productcoefficients) = (pfrd_plen_right_transitive_first)) -> exists pfc_value_right_transitive_first_productcoefficients. ((((exists ff_h_pfp_right_transitive_first_productcoefficientsentry. ff_h_pfp_right_transitive_first_productcoefficientsentry + S (pfc_value_right_transitive_first_productcoefficients) = S ((S (pfc_index_right_transitive_first_productcoefficients)) * pfrd_pc_right_transitive_first)) /\ exists ff_q_pfp_right_transitive_first_productcoefficientsentry. pfrd_pb_right_transitive_first = ff_q_pfp_right_transitive_first_productcoefficientsentry * S ((S (pfc_index_right_transitive_first_productcoefficients)) * pfrd_pc_right_transitive_first) + (pfc_value_right_transitive_first_productcoefficients))) /\ ((exists pfc_terms_code_right_transitive_first_productcoefficientscoefficient pfc_terms_scale_right_transitive_first_productcoefficientscoefficient pfc_natural_sum_right_transitive_first_productcoefficientscoefficient. ((forall pfc_index_right_transitive_first_productcoefficientscoefficientdiagonal. (exists pfa_gap_right_transitive_first_productcoefficientscoefficientdiagonalbound. pfa_gap_right_transitive_first_productcoefficientscoefficientdiagonalbound + S (pfc_index_right_transitive_first_productcoefficientscoefficientdiagonal) = (S (pfc_index_right_transitive_first_productcoefficients))) -> exists pfc_value_right_transitive_first_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_right_transitive_first_productcoefficientscoefficientdiagonalentry. ff_h_pfp_right_transitive_first_productcoefficientscoefficientdiagonalentry + S (pfc_value_right_transitive_first_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_right_transitive_first_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_transitive_first_productcoefficientscoefficient)) /\ exists ff_q_pfp_right_transitive_first_productcoefficientscoefficientdiagonalentry. pfc_terms_code_right_transitive_first_productcoefficientscoefficient = ff_q_pfp_right_transitive_first_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_right_transitive_first_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_transitive_first_productcoefficientscoefficient) + (pfc_value_right_transitive_first_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_right_transitive_first_productcoefficientscoefficientdiagonalterm pfc_left_right_transitive_first_productcoefficientscoefficientdiagonalterm pfc_right_right_transitive_first_productcoefficientscoefficientdiagonalterm. (((pfc_index_right_transitive_first_productcoefficientscoefficientdiagonal)+pfc_complement_right_transitive_first_productcoefficientscoefficientdiagonalterm=(pfc_index_right_transitive_first_productcoefficients)) /\ ((((((exists pfa_gap_right_transitive_first_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_right_transitive_first_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_right_transitive_first_productcoefficientscoefficientdiagonal) = (pfrd_qlen_right_transitive_first)) /\ ((((exists ff_h_pfp_right_transitive_first_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_right_transitive_first_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_right_transitive_first_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_right_transitive_first_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_transitive_first)) /\ exists ff_q_pfp_right_transitive_first_productcoefficientscoefficientdiagonaltermleftentry. pfrd_qb_right_transitive_first = ff_q_pfp_right_transitive_first_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_right_transitive_first_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_transitive_first) + (pfc_left_right_transitive_first_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_transitive_first_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_right_transitive_first_productcoefficientscoefficientdiagonaltermleftoutside+(pfrd_qlen_right_transitive_first)=(pfc_index_right_transitive_first_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_right_transitive_first_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_right_transitive_first_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_right_transitive_first_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_right_transitive_first_productcoefficientscoefficientdiagonalterm) = (D)) /\ ((((exists ff_h_pfp_right_transitive_first_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_right_transitive_first_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_right_transitive_first_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_right_transitive_first_productcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_right_transitive_first_productcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_right_transitive_first_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_right_transitive_first_productcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_right_transitive_first_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_transitive_first_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_right_transitive_first_productcoefficientscoefficientdiagonaltermrightoutside+(D)=(pfc_complement_right_transitive_first_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_right_transitive_first_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_right_transitive_first_productcoefficientscoefficientdiagonal)=pfc_left_right_transitive_first_productcoefficientscoefficientdiagonalterm*pfc_right_right_transitive_first_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_right_transitive_first_productcoefficientscoefficientsum fs_v_pfc_right_transitive_first_productcoefficientscoefficientsum. ((((exists fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_start. fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_right_transitive_first_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_start. fs_u_pfc_right_transitive_first_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_right_transitive_first_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_right_transitive_first_productcoefficientscoefficient) = S ((S (S (pfc_index_right_transitive_first_productcoefficients))) * fs_v_pfc_right_transitive_first_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_right_transitive_first_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_right_transitive_first_productcoefficients))) * fs_v_pfc_right_transitive_first_productcoefficientscoefficientsum) + (pfc_natural_sum_right_transitive_first_productcoefficientscoefficient))) /\ forall fs_i_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps = S (pfc_index_right_transitive_first_productcoefficients)) -> exists fs_a_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps fs_r_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps fs_s_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_transitive_first_productcoefficientscoefficient)) /\ exists fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_right_transitive_first_productcoefficientscoefficient = fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_transitive_first_productcoefficientscoefficient) + (fs_a_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_first_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_right_transitive_first_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_first_productcoefficientscoefficientsum) + (fs_r_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_first_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_right_transitive_first_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_first_productcoefficientscoefficientsum) + (fs_s_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps = fs_r_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps + fs_a_pfc_right_transitive_first_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_right_transitive_first_productcoefficientscoefficientresiduebound. pfa_gap_right_transitive_first_productcoefficientscoefficientresiduebound + S (pfc_value_right_transitive_first_productcoefficients) = (p)) /\ ((exists pfa_offset_left_right_transitive_first_productcoefficientscoefficientresiduecongruence pfa_offset_right_right_transitive_first_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_right_transitive_first_productcoefficientscoefficient) + (p) * pfa_offset_left_right_transitive_first_productcoefficientscoefficientresiduecongruence = (pfc_value_right_transitive_first_productcoefficients) + (p) * pfa_offset_right_right_transitive_first_productcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfrep_power_right_transitive_first_target pfrep_left_right_transitive_first_target pfrep_right_right_transitive_first_target. ((exists pfrep_position_right_transitive_first_targetfirst. ((pfrep_position_right_transitive_first_targetfirst+S (pfrep_power_right_transitive_first_target)=(pfrd_plen_right_transitive_first)) /\ ((((exists ff_h_pfp_right_transitive_first_targetfirstentry. ff_h_pfp_right_transitive_first_targetfirstentry + S (pfrep_left_right_transitive_first_target) = S ((S (pfrep_position_right_transitive_first_targetfirst)) * pfrd_pc_right_transitive_first)) /\ exists ff_q_pfp_right_transitive_first_targetfirstentry. pfrd_pb_right_transitive_first = ff_q_pfp_right_transitive_first_targetfirstentry * S ((S (pfrep_position_right_transitive_first_targetfirst)) * pfrd_pc_right_transitive_first) + (pfrep_left_right_transitive_first_target)))))) \/ (((exists pfrep_gap_right_transitive_first_targetfirstoutside. pfrep_gap_right_transitive_first_targetfirstoutside+(pfrd_plen_right_transitive_first)=(pfrep_power_right_transitive_first_target)) /\ (((pfrep_left_right_transitive_first_target)=0))))) -> ((exists pfrep_position_right_transitive_first_targetsecond. ((pfrep_position_right_transitive_first_targetsecond+S (pfrep_power_right_transitive_first_target)=(L)) /\ ((((exists ff_h_pfp_right_transitive_first_targetsecondentry. ff_h_pfp_right_transitive_first_targetsecondentry + S (pfrep_right_right_transitive_first_target) = S ((S (pfrep_position_right_transitive_first_targetsecond)) * ac)) /\ exists ff_q_pfp_right_transitive_first_targetsecondentry. ab = ff_q_pfp_right_transitive_first_targetsecondentry * S ((S (pfrep_position_right_transitive_first_targetsecond)) * ac) + (pfrep_right_right_transitive_first_target)))))) \/ (((exists pfrep_gap_right_transitive_first_targetsecondoutside. pfrep_gap_right_transitive_first_targetsecondoutside+(L)=(pfrep_power_right_transitive_first_target)) /\ (((pfrep_right_right_transitive_first_target)=0))))) -> pfrep_left_right_transitive_first_target=pfrep_right_right_transitive_first_target))))))) -> (((forall fom_index_pfp_right_transitive_second_canonical. (exists fom_gap_pfp_right_transitive_second_canonical_index_bound. fom_gap_pfp_right_transitive_second_canonical_index_bound + S (fom_index_pfp_right_transitive_second_canonical) = M) -> exists fom_value_pfp_right_transitive_second_canonical. ((((exists fom_beta_height_pfp_right_transitive_second_canonical_entry. fom_beta_height_pfp_right_transitive_second_canonical_entry + S (fom_value_pfp_right_transitive_second_canonical) = S ((S (fom_index_pfp_right_transitive_second_canonical)) * bc)) /\ exists fom_beta_quotient_pfp_right_transitive_second_canonical_entry. bb = fom_beta_quotient_pfp_right_transitive_second_canonical_entry * S ((S (fom_index_pfp_right_transitive_second_canonical)) * bc) + (fom_value_pfp_right_transitive_second_canonical))) /\ (exists fom_gap_pfp_right_transitive_second_canonical_value_bound. fom_gap_pfp_right_transitive_second_canonical_value_bound + S (fom_value_pfp_right_transitive_second_canonical) = p))) /\ ((exists pfrd_qb_right_transitive_second pfrd_qc_right_transitive_second pfrd_qlen_right_transitive_second pfrd_pb_right_transitive_second pfrd_pc_right_transitive_second pfrd_plen_right_transitive_second. ((((forall fom_index_pfp_right_transitive_second_productleft. (exists fom_gap_pfp_right_transitive_second_productleft_index_bound. fom_gap_pfp_right_transitive_second_productleft_index_bound + S (fom_index_pfp_right_transitive_second_productleft) = pfrd_qlen_right_transitive_second) -> exists fom_value_pfp_right_transitive_second_productleft. ((((exists fom_beta_height_pfp_right_transitive_second_productleft_entry. fom_beta_height_pfp_right_transitive_second_productleft_entry + S (fom_value_pfp_right_transitive_second_productleft) = S ((S (fom_index_pfp_right_transitive_second_productleft)) * pfrd_qc_right_transitive_second)) /\ exists fom_beta_quotient_pfp_right_transitive_second_productleft_entry. pfrd_qb_right_transitive_second = fom_beta_quotient_pfp_right_transitive_second_productleft_entry * S ((S (fom_index_pfp_right_transitive_second_productleft)) * pfrd_qc_right_transitive_second) + (fom_value_pfp_right_transitive_second_productleft))) /\ (exists fom_gap_pfp_right_transitive_second_productleft_value_bound. fom_gap_pfp_right_transitive_second_productleft_value_bound + S (fom_value_pfp_right_transitive_second_productleft) = p))) /\ (((forall fom_index_pfp_right_transitive_second_productright. (exists fom_gap_pfp_right_transitive_second_productright_index_bound. fom_gap_pfp_right_transitive_second_productright_index_bound + S (fom_index_pfp_right_transitive_second_productright) = L) -> exists fom_value_pfp_right_transitive_second_productright. ((((exists fom_beta_height_pfp_right_transitive_second_productright_entry. fom_beta_height_pfp_right_transitive_second_productright_entry + S (fom_value_pfp_right_transitive_second_productright) = S ((S (fom_index_pfp_right_transitive_second_productright)) * ac)) /\ exists fom_beta_quotient_pfp_right_transitive_second_productright_entry. ab = fom_beta_quotient_pfp_right_transitive_second_productright_entry * S ((S (fom_index_pfp_right_transitive_second_productright)) * ac) + (fom_value_pfp_right_transitive_second_productright))) /\ (exists fom_gap_pfp_right_transitive_second_productright_value_bound. fom_gap_pfp_right_transitive_second_productright_value_bound + S (fom_value_pfp_right_transitive_second_productright) = p))) /\ (((((((pfrd_qlen_right_transitive_second)=0 \/ (L)=0) /\ (((pfrd_plen_right_transitive_second)=0)))) \/ (((~((pfrd_qlen_right_transitive_second)=0)) /\ (((~((L)=0)) /\ (((pfrd_qlen_right_transitive_second)+(L)=S (pfrd_plen_right_transitive_second)))))))) /\ ((forall pfc_index_right_transitive_second_productcoefficients. (exists pfa_gap_right_transitive_second_productcoefficientsbound. pfa_gap_right_transitive_second_productcoefficientsbound + S (pfc_index_right_transitive_second_productcoefficients) = (pfrd_plen_right_transitive_second)) -> exists pfc_value_right_transitive_second_productcoefficients. ((((exists ff_h_pfp_right_transitive_second_productcoefficientsentry. ff_h_pfp_right_transitive_second_productcoefficientsentry + S (pfc_value_right_transitive_second_productcoefficients) = S ((S (pfc_index_right_transitive_second_productcoefficients)) * pfrd_pc_right_transitive_second)) /\ exists ff_q_pfp_right_transitive_second_productcoefficientsentry. pfrd_pb_right_transitive_second = ff_q_pfp_right_transitive_second_productcoefficientsentry * S ((S (pfc_index_right_transitive_second_productcoefficients)) * pfrd_pc_right_transitive_second) + (pfc_value_right_transitive_second_productcoefficients))) /\ ((exists pfc_terms_code_right_transitive_second_productcoefficientscoefficient pfc_terms_scale_right_transitive_second_productcoefficientscoefficient pfc_natural_sum_right_transitive_second_productcoefficientscoefficient. ((forall pfc_index_right_transitive_second_productcoefficientscoefficientdiagonal. (exists pfa_gap_right_transitive_second_productcoefficientscoefficientdiagonalbound. pfa_gap_right_transitive_second_productcoefficientscoefficientdiagonalbound + S (pfc_index_right_transitive_second_productcoefficientscoefficientdiagonal) = (S (pfc_index_right_transitive_second_productcoefficients))) -> exists pfc_value_right_transitive_second_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_right_transitive_second_productcoefficientscoefficientdiagonalentry. ff_h_pfp_right_transitive_second_productcoefficientscoefficientdiagonalentry + S (pfc_value_right_transitive_second_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_right_transitive_second_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_transitive_second_productcoefficientscoefficient)) /\ exists ff_q_pfp_right_transitive_second_productcoefficientscoefficientdiagonalentry. pfc_terms_code_right_transitive_second_productcoefficientscoefficient = ff_q_pfp_right_transitive_second_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_right_transitive_second_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_transitive_second_productcoefficientscoefficient) + (pfc_value_right_transitive_second_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_right_transitive_second_productcoefficientscoefficientdiagonalterm pfc_left_right_transitive_second_productcoefficientscoefficientdiagonalterm pfc_right_right_transitive_second_productcoefficientscoefficientdiagonalterm. (((pfc_index_right_transitive_second_productcoefficientscoefficientdiagonal)+pfc_complement_right_transitive_second_productcoefficientscoefficientdiagonalterm=(pfc_index_right_transitive_second_productcoefficients)) /\ ((((((exists pfa_gap_right_transitive_second_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_right_transitive_second_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_right_transitive_second_productcoefficientscoefficientdiagonal) = (pfrd_qlen_right_transitive_second)) /\ ((((exists ff_h_pfp_right_transitive_second_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_right_transitive_second_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_right_transitive_second_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_right_transitive_second_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_transitive_second)) /\ exists ff_q_pfp_right_transitive_second_productcoefficientscoefficientdiagonaltermleftentry. pfrd_qb_right_transitive_second = ff_q_pfp_right_transitive_second_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_right_transitive_second_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_transitive_second) + (pfc_left_right_transitive_second_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_transitive_second_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_right_transitive_second_productcoefficientscoefficientdiagonaltermleftoutside+(pfrd_qlen_right_transitive_second)=(pfc_index_right_transitive_second_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_right_transitive_second_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_right_transitive_second_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_right_transitive_second_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_right_transitive_second_productcoefficientscoefficientdiagonalterm) = (L)) /\ ((((exists ff_h_pfp_right_transitive_second_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_right_transitive_second_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_right_transitive_second_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_right_transitive_second_productcoefficientscoefficientdiagonalterm)) * ac)) /\ exists ff_q_pfp_right_transitive_second_productcoefficientscoefficientdiagonaltermrightentry. ab = ff_q_pfp_right_transitive_second_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_right_transitive_second_productcoefficientscoefficientdiagonalterm)) * ac) + (pfc_right_right_transitive_second_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_transitive_second_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_right_transitive_second_productcoefficientscoefficientdiagonaltermrightoutside+(L)=(pfc_complement_right_transitive_second_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_right_transitive_second_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_right_transitive_second_productcoefficientscoefficientdiagonal)=pfc_left_right_transitive_second_productcoefficientscoefficientdiagonalterm*pfc_right_right_transitive_second_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_right_transitive_second_productcoefficientscoefficientsum fs_v_pfc_right_transitive_second_productcoefficientscoefficientsum. ((((exists fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_start. fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_right_transitive_second_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_start. fs_u_pfc_right_transitive_second_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_right_transitive_second_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_right_transitive_second_productcoefficientscoefficient) = S ((S (S (pfc_index_right_transitive_second_productcoefficients))) * fs_v_pfc_right_transitive_second_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_right_transitive_second_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_right_transitive_second_productcoefficients))) * fs_v_pfc_right_transitive_second_productcoefficientscoefficientsum) + (pfc_natural_sum_right_transitive_second_productcoefficientscoefficient))) /\ forall fs_i_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps = S (pfc_index_right_transitive_second_productcoefficients)) -> exists fs_a_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps fs_r_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps fs_s_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_transitive_second_productcoefficientscoefficient)) /\ exists fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_right_transitive_second_productcoefficientscoefficient = fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_transitive_second_productcoefficientscoefficient) + (fs_a_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_second_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_right_transitive_second_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_second_productcoefficientscoefficientsum) + (fs_r_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_second_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_right_transitive_second_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_second_productcoefficientscoefficientsum) + (fs_s_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps = fs_r_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps + fs_a_pfc_right_transitive_second_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_right_transitive_second_productcoefficientscoefficientresiduebound. pfa_gap_right_transitive_second_productcoefficientscoefficientresiduebound + S (pfc_value_right_transitive_second_productcoefficients) = (p)) /\ ((exists pfa_offset_left_right_transitive_second_productcoefficientscoefficientresiduecongruence pfa_offset_right_right_transitive_second_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_right_transitive_second_productcoefficientscoefficient) + (p) * pfa_offset_left_right_transitive_second_productcoefficientscoefficientresiduecongruence = (pfc_value_right_transitive_second_productcoefficients) + (p) * pfa_offset_right_right_transitive_second_productcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfrep_power_right_transitive_second_target pfrep_left_right_transitive_second_target pfrep_right_right_transitive_second_target. ((exists pfrep_position_right_transitive_second_targetfirst. ((pfrep_position_right_transitive_second_targetfirst+S (pfrep_power_right_transitive_second_target)=(pfrd_plen_right_transitive_second)) /\ ((((exists ff_h_pfp_right_transitive_second_targetfirstentry. ff_h_pfp_right_transitive_second_targetfirstentry + S (pfrep_left_right_transitive_second_target) = S ((S (pfrep_position_right_transitive_second_targetfirst)) * pfrd_pc_right_transitive_second)) /\ exists ff_q_pfp_right_transitive_second_targetfirstentry. pfrd_pb_right_transitive_second = ff_q_pfp_right_transitive_second_targetfirstentry * S ((S (pfrep_position_right_transitive_second_targetfirst)) * pfrd_pc_right_transitive_second) + (pfrep_left_right_transitive_second_target)))))) \/ (((exists pfrep_gap_right_transitive_second_targetfirstoutside. pfrep_gap_right_transitive_second_targetfirstoutside+(pfrd_plen_right_transitive_second)=(pfrep_power_right_transitive_second_target)) /\ (((pfrep_left_right_transitive_second_target)=0))))) -> ((exists pfrep_position_right_transitive_second_targetsecond. ((pfrep_position_right_transitive_second_targetsecond+S (pfrep_power_right_transitive_second_target)=(M)) /\ ((((exists ff_h_pfp_right_transitive_second_targetsecondentry. ff_h_pfp_right_transitive_second_targetsecondentry + S (pfrep_right_right_transitive_second_target) = S ((S (pfrep_position_right_transitive_second_targetsecond)) * bc)) /\ exists ff_q_pfp_right_transitive_second_targetsecondentry. bb = ff_q_pfp_right_transitive_second_targetsecondentry * S ((S (pfrep_position_right_transitive_second_targetsecond)) * bc) + (pfrep_right_right_transitive_second_target)))))) \/ (((exists pfrep_gap_right_transitive_second_targetsecondoutside. pfrep_gap_right_transitive_second_targetsecondoutside+(M)=(pfrep_power_right_transitive_second_target)) /\ (((pfrep_right_right_transitive_second_target)=0))))) -> pfrep_left_right_transitive_second_target=pfrep_right_right_transitive_second_target))))))) -> (((forall fom_index_pfp_right_transitive_result_canonical. (exists fom_gap_pfp_right_transitive_result_canonical_index_bound. fom_gap_pfp_right_transitive_result_canonical_index_bound + S (fom_index_pfp_right_transitive_result_canonical) = M) -> exists fom_value_pfp_right_transitive_result_canonical. ((((exists fom_beta_height_pfp_right_transitive_result_canonical_entry. fom_beta_height_pfp_right_transitive_result_canonical_entry + S (fom_value_pfp_right_transitive_result_canonical) = S ((S (fom_index_pfp_right_transitive_result_canonical)) * bc)) /\ exists fom_beta_quotient_pfp_right_transitive_result_canonical_entry. bb = fom_beta_quotient_pfp_right_transitive_result_canonical_entry * S ((S (fom_index_pfp_right_transitive_result_canonical)) * bc) + (fom_value_pfp_right_transitive_result_canonical))) /\ (exists fom_gap_pfp_right_transitive_result_canonical_value_bound. fom_gap_pfp_right_transitive_result_canonical_value_bound + S (fom_value_pfp_right_transitive_result_canonical) = p))) /\ ((exists pfrd_qb_right_transitive_result pfrd_qc_right_transitive_result pfrd_qlen_right_transitive_result pfrd_pb_right_transitive_result pfrd_pc_right_transitive_result pfrd_plen_right_transitive_result. ((((forall fom_index_pfp_right_transitive_result_productleft. (exists fom_gap_pfp_right_transitive_result_productleft_index_bound. fom_gap_pfp_right_transitive_result_productleft_index_bound + S (fom_index_pfp_right_transitive_result_productleft) = pfrd_qlen_right_transitive_result) -> exists fom_value_pfp_right_transitive_result_productleft. ((((exists fom_beta_height_pfp_right_transitive_result_productleft_entry. fom_beta_height_pfp_right_transitive_result_productleft_entry + S (fom_value_pfp_right_transitive_result_productleft) = S ((S (fom_index_pfp_right_transitive_result_productleft)) * pfrd_qc_right_transitive_result)) /\ exists fom_beta_quotient_pfp_right_transitive_result_productleft_entry. pfrd_qb_right_transitive_result = fom_beta_quotient_pfp_right_transitive_result_productleft_entry * S ((S (fom_index_pfp_right_transitive_result_productleft)) * pfrd_qc_right_transitive_result) + (fom_value_pfp_right_transitive_result_productleft))) /\ (exists fom_gap_pfp_right_transitive_result_productleft_value_bound. fom_gap_pfp_right_transitive_result_productleft_value_bound + S (fom_value_pfp_right_transitive_result_productleft) = p))) /\ (((forall fom_index_pfp_right_transitive_result_productright. (exists fom_gap_pfp_right_transitive_result_productright_index_bound. fom_gap_pfp_right_transitive_result_productright_index_bound + S (fom_index_pfp_right_transitive_result_productright) = D) -> exists fom_value_pfp_right_transitive_result_productright. ((((exists fom_beta_height_pfp_right_transitive_result_productright_entry. fom_beta_height_pfp_right_transitive_result_productright_entry + S (fom_value_pfp_right_transitive_result_productright) = S ((S (fom_index_pfp_right_transitive_result_productright)) * dc)) /\ exists fom_beta_quotient_pfp_right_transitive_result_productright_entry. db = fom_beta_quotient_pfp_right_transitive_result_productright_entry * S ((S (fom_index_pfp_right_transitive_result_productright)) * dc) + (fom_value_pfp_right_transitive_result_productright))) /\ (exists fom_gap_pfp_right_transitive_result_productright_value_bound. fom_gap_pfp_right_transitive_result_productright_value_bound + S (fom_value_pfp_right_transitive_result_productright) = p))) /\ (((((((pfrd_qlen_right_transitive_result)=0 \/ (D)=0) /\ (((pfrd_plen_right_transitive_result)=0)))) \/ (((~((pfrd_qlen_right_transitive_result)=0)) /\ (((~((D)=0)) /\ (((pfrd_qlen_right_transitive_result)+(D)=S (pfrd_plen_right_transitive_result)))))))) /\ ((forall pfc_index_right_transitive_result_productcoefficients. (exists pfa_gap_right_transitive_result_productcoefficientsbound. pfa_gap_right_transitive_result_productcoefficientsbound + S (pfc_index_right_transitive_result_productcoefficients) = (pfrd_plen_right_transitive_result)) -> exists pfc_value_right_transitive_result_productcoefficients. ((((exists ff_h_pfp_right_transitive_result_productcoefficientsentry. ff_h_pfp_right_transitive_result_productcoefficientsentry + S (pfc_value_right_transitive_result_productcoefficients) = S ((S (pfc_index_right_transitive_result_productcoefficients)) * pfrd_pc_right_transitive_result)) /\ exists ff_q_pfp_right_transitive_result_productcoefficientsentry. pfrd_pb_right_transitive_result = ff_q_pfp_right_transitive_result_productcoefficientsentry * S ((S (pfc_index_right_transitive_result_productcoefficients)) * pfrd_pc_right_transitive_result) + (pfc_value_right_transitive_result_productcoefficients))) /\ ((exists pfc_terms_code_right_transitive_result_productcoefficientscoefficient pfc_terms_scale_right_transitive_result_productcoefficientscoefficient pfc_natural_sum_right_transitive_result_productcoefficientscoefficient. ((forall pfc_index_right_transitive_result_productcoefficientscoefficientdiagonal. (exists pfa_gap_right_transitive_result_productcoefficientscoefficientdiagonalbound. pfa_gap_right_transitive_result_productcoefficientscoefficientdiagonalbound + S (pfc_index_right_transitive_result_productcoefficientscoefficientdiagonal) = (S (pfc_index_right_transitive_result_productcoefficients))) -> exists pfc_value_right_transitive_result_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_right_transitive_result_productcoefficientscoefficientdiagonalentry. ff_h_pfp_right_transitive_result_productcoefficientscoefficientdiagonalentry + S (pfc_value_right_transitive_result_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_right_transitive_result_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_transitive_result_productcoefficientscoefficient)) /\ exists ff_q_pfp_right_transitive_result_productcoefficientscoefficientdiagonalentry. pfc_terms_code_right_transitive_result_productcoefficientscoefficient = ff_q_pfp_right_transitive_result_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_right_transitive_result_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_transitive_result_productcoefficientscoefficient) + (pfc_value_right_transitive_result_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_right_transitive_result_productcoefficientscoefficientdiagonalterm pfc_left_right_transitive_result_productcoefficientscoefficientdiagonalterm pfc_right_right_transitive_result_productcoefficientscoefficientdiagonalterm. (((pfc_index_right_transitive_result_productcoefficientscoefficientdiagonal)+pfc_complement_right_transitive_result_productcoefficientscoefficientdiagonalterm=(pfc_index_right_transitive_result_productcoefficients)) /\ ((((((exists pfa_gap_right_transitive_result_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_right_transitive_result_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_right_transitive_result_productcoefficientscoefficientdiagonal) = (pfrd_qlen_right_transitive_result)) /\ ((((exists ff_h_pfp_right_transitive_result_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_right_transitive_result_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_right_transitive_result_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_right_transitive_result_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_transitive_result)) /\ exists ff_q_pfp_right_transitive_result_productcoefficientscoefficientdiagonaltermleftentry. pfrd_qb_right_transitive_result = ff_q_pfp_right_transitive_result_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_right_transitive_result_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_transitive_result) + (pfc_left_right_transitive_result_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_transitive_result_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_right_transitive_result_productcoefficientscoefficientdiagonaltermleftoutside+(pfrd_qlen_right_transitive_result)=(pfc_index_right_transitive_result_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_right_transitive_result_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_right_transitive_result_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_right_transitive_result_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_right_transitive_result_productcoefficientscoefficientdiagonalterm) = (D)) /\ ((((exists ff_h_pfp_right_transitive_result_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_right_transitive_result_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_right_transitive_result_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_right_transitive_result_productcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_right_transitive_result_productcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_right_transitive_result_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_right_transitive_result_productcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_right_transitive_result_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_transitive_result_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_right_transitive_result_productcoefficientscoefficientdiagonaltermrightoutside+(D)=(pfc_complement_right_transitive_result_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_right_transitive_result_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_right_transitive_result_productcoefficientscoefficientdiagonal)=pfc_left_right_transitive_result_productcoefficientscoefficientdiagonalterm*pfc_right_right_transitive_result_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_right_transitive_result_productcoefficientscoefficientsum fs_v_pfc_right_transitive_result_productcoefficientscoefficientsum. ((((exists fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_start. fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_right_transitive_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_start. fs_u_pfc_right_transitive_result_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_right_transitive_result_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_right_transitive_result_productcoefficientscoefficient) = S ((S (S (pfc_index_right_transitive_result_productcoefficients))) * fs_v_pfc_right_transitive_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_right_transitive_result_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_right_transitive_result_productcoefficients))) * fs_v_pfc_right_transitive_result_productcoefficientscoefficientsum) + (pfc_natural_sum_right_transitive_result_productcoefficientscoefficient))) /\ forall fs_i_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps = S (pfc_index_right_transitive_result_productcoefficients)) -> exists fs_a_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps fs_r_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps fs_s_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_transitive_result_productcoefficientscoefficient)) /\ exists fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_right_transitive_result_productcoefficientscoefficient = fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_transitive_result_productcoefficientscoefficient) + (fs_a_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_right_transitive_result_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_result_productcoefficientscoefficientsum) + (fs_r_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_right_transitive_result_productcoefficientscoefficientsum = fs_q_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_transitive_result_productcoefficientscoefficientsum) + (fs_s_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps = fs_r_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps + fs_a_pfc_right_transitive_result_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_right_transitive_result_productcoefficientscoefficientresiduebound. pfa_gap_right_transitive_result_productcoefficientscoefficientresiduebound + S (pfc_value_right_transitive_result_productcoefficients) = (p)) /\ ((exists pfa_offset_left_right_transitive_result_productcoefficientscoefficientresiduecongruence pfa_offset_right_right_transitive_result_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_right_transitive_result_productcoefficientscoefficient) + (p) * pfa_offset_left_right_transitive_result_productcoefficientscoefficientresiduecongruence = (pfc_value_right_transitive_result_productcoefficients) + (p) * pfa_offset_right_right_transitive_result_productcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfrep_power_right_transitive_result_target pfrep_left_right_transitive_result_target pfrep_right_right_transitive_result_target. ((exists pfrep_position_right_transitive_result_targetfirst. ((pfrep_position_right_transitive_result_targetfirst+S (pfrep_power_right_transitive_result_target)=(pfrd_plen_right_transitive_result)) /\ ((((exists ff_h_pfp_right_transitive_result_targetfirstentry. ff_h_pfp_right_transitive_result_targetfirstentry + S (pfrep_left_right_transitive_result_target) = S ((S (pfrep_position_right_transitive_result_targetfirst)) * pfrd_pc_right_transitive_result)) /\ exists ff_q_pfp_right_transitive_result_targetfirstentry. pfrd_pb_right_transitive_result = ff_q_pfp_right_transitive_result_targetfirstentry * S ((S (pfrep_position_right_transitive_result_targetfirst)) * pfrd_pc_right_transitive_result) + (pfrep_left_right_transitive_result_target)))))) \/ (((exists pfrep_gap_right_transitive_result_targetfirstoutside. pfrep_gap_right_transitive_result_targetfirstoutside+(pfrd_plen_right_transitive_result)=(pfrep_power_right_transitive_result_target)) /\ (((pfrep_left_right_transitive_result_target)=0))))) -> ((exists pfrep_position_right_transitive_result_targetsecond. ((pfrep_position_right_transitive_result_targetsecond+S (pfrep_power_right_transitive_result_target)=(M)) /\ ((((exists ff_h_pfp_right_transitive_result_targetsecondentry. ff_h_pfp_right_transitive_result_targetsecondentry + S (pfrep_right_right_transitive_result_target) = S ((S (pfrep_position_right_transitive_result_targetsecond)) * bc)) /\ exists ff_q_pfp_right_transitive_result_targetsecondentry. bb = ff_q_pfp_right_transitive_result_targetsecondentry * S ((S (pfrep_position_right_transitive_result_targetsecond)) * bc) + (pfrep_right_right_transitive_result_target)))))) \/ (((exists pfrep_gap_right_transitive_result_targetsecondoutside. pfrep_gap_right_transitive_result_targetsecondoutside+(M)=(pfrep_power_right_transitive_result_target)) /\ (((pfrep_right_right_transitive_result_target)=0))))) -> pfrep_left_right_transitive_result_target=pfrep_right_right_transitive_result_target)))))))

Complete tactic proof in conservative notation

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

222 script commands · 37 reading checkpoints · 12 local claims

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

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

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

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

  1. L1
    intro p
  2. L2
    intro db
  3. L3
    intro dc
  4. L4
    intro D
  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–13

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

  1. L11
    intro hp
  2. L12
    intro hDA
  3. L13
    intro hAB
03Establish hp0L14–19

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

  1. L14
    have hp0 : ~(p=0)
  2. L15
    intro hz
  3. L16
    specialize prime_nonzero (p)
  4. L17
    apply prime_nonzero
  5. L18
    exact hp
  6. L19
    exact hz
04Separate the logical casesL20–29

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

  1. L20
    cases hDA
  2. L21
    cases hDA_right
  3. L22
    cases hDA_right_witness
  4. L23
    cases hDA_right_witness_witness
  5. L24
    cases hDA_right_witness_witness_witness
  6. L25
    cases hDA_right_witness_witness_witness_witness
  7. L26
    cases hDA_right_witness_witness_witness_witness_witness
  8. L27
    cases hDA_right_witness_witness_witness_witness_witness_witness
  9. L28
    cases hAB
  10. L29
    cases hAB_right
05Separate the logical casesL30–35

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

  1. L30
    cases hAB_right_witness
  2. L31
    cases hAB_right_witness_witness
  3. L32
    cases hAB_right_witness_witness_witness
  4. L33
    cases hAB_right_witness_witness_witness_witness
  5. L34
    cases hAB_right_witness_witness_witness_witness_witness
  6. L35
    cases hAB_right_witness_witness_witness_witness_witness_witness
06Establish hfirstL36–37

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

  1. L36
    have hfirst : FpPolyProduct(p,x,x1,x2,db,dc,D,x3,x4,x5)Definitions: FpPolyProduct(p,x,x1,x2,db,dc,D,x3,x4,x5)Original native command in the exact edition
  2. L37
    exact hDA_right_witness_witness_witness_witness_witness_witness_left
07Separate the logical casesL38–40

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

  1. L38
    cases hfirst
  2. L39
    cases hfirst_right
  3. L40
    cases hfirst_right_right
08Establish hsecondL41–42

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

  1. L41
    have hsecond : FpPolyProduct(p,x6,x7,x8,ab,ac,L,x9,x10,x11)Definitions: FpPolyProduct(p,x6,x7,x8,ab,ac,L,x9,x10,x11)Original native command in the exact edition
  2. L42
    exact hAB_right_witness_witness_witness_witness_witness_witness_left
09Separate the logical casesL43–45

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

  1. L43
    cases hsecond
  2. L44
    cases hsecond_right
  3. L45
    cases hsecond_right_right
10Establish hPboundL46–55

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

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

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

  1. L56
    specialize prime_field_polynomial_convolution_bounded (x5)
  2. L57
    apply prime_field_polynomial_convolution_bounded
  3. L58
    exact hDA_right_witness_witness_witness_witness_witness_witness_left
12Establish hcomposite_lengthL59–62

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

  1. L59
    have hcomposite_length : ∃ n. PolynomialProductLength(x8,x2,n)Definitions: PolynomialProductLength(x8,x2,n)Original native command in the exact edition
  2. L60
    specialize polynomial_product_length_exists (x8)
  3. L61
    specialize polynomial_product_length_exists (x2)
  4. L62
    apply polynomial_product_length_exists
13Separate the logical casesL63–63

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

  1. L63
    cases hcomposite_length
14Establish hcomposite_productL64–73

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. L64
    have hcomposite_product : ∃ b. ∃ c. FpPolyProduct(p,x6,x7,x8,x,x1,x2,b,c,x12)Definitions: FpPolyProduct(p,x6,x7,x8,x,x1,x2,b,c,x12)Original native command in the exact edition
  2. L65
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L66
    specialize prime_field_polynomial_convolution_at_length_exists (x6)
  4. L67
    specialize prime_field_polynomial_convolution_at_length_exists (x7)
  5. L68
    specialize prime_field_polynomial_convolution_at_length_exists (x8)
  6. L69
    specialize prime_field_polynomial_convolution_at_length_exists (x)
  7. L70
    specialize prime_field_polynomial_convolution_at_length_exists (x1)
  8. L71
    specialize prime_field_polynomial_convolution_at_length_exists (x2)
  9. L72
    specialize prime_field_polynomial_convolution_at_length_exists (x12)
  10. L73
    apply prime_field_polynomial_convolution_at_length_exists
15Use earlier factsL74–77

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

  1. L74
    exact hp0
  2. L75
    exact hsecond_left
  3. L76
    exact hfirst_left
  4. L77
    exact hcomposite_length_witness
16Separate the logical casesL78–79

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

  1. L78
    cases hcomposite_product
  2. L79
    cases hcomposite_product_witness
17Establish hQboundL80–89

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

  1. L80
    have hQbound : BetaPrefixInto(x13,x14,x12,p)Definitions: BetaPrefixInto(x13,x14,x12,p)Original native command in the exact edition
  2. L81
    specialize prime_field_polynomial_convolution_bounded (p)
  3. L82
    specialize prime_field_polynomial_convolution_bounded (x6)
  4. L83
    specialize prime_field_polynomial_convolution_bounded (x7)
  5. L84
    specialize prime_field_polynomial_convolution_bounded (x8)
  6. L85
    specialize prime_field_polynomial_convolution_bounded (x)
  7. L86
    specialize prime_field_polynomial_convolution_bounded (x1)
  8. L87
    specialize prime_field_polynomial_convolution_bounded (x2)
  9. L88
    specialize prime_field_polynomial_convolution_bounded (x13)
  10. L89
    specialize prime_field_polynomial_convolution_bounded (x14)
18Use earlier factsL90–92

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

  1. L90
    specialize prime_field_polynomial_convolution_bounded (x12)
  2. L91
    apply prime_field_polynomial_convolution_bounded
  3. L92
    exact hcomposite_product_witness_witness
19Establish hresult_lengthL93–96

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

  1. L93
    have hresult_length : ∃ n. PolynomialProductLength(x12,D,n)Definitions: PolynomialProductLength(x12,D,n)Original native command in the exact edition
  2. L94
    specialize polynomial_product_length_exists (x12)
  3. L95
    specialize polynomial_product_length_exists (D)
  4. L96
    apply polynomial_product_length_exists
20Separate the logical casesL97–97

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

  1. L97
    cases hresult_length
21Establish hresult_productL98–107

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. L98
    have hresult_product : ∃ b. ∃ c. FpPolyProduct(p,x13,x14,x12,db,dc,D,b,c,x15)Definitions: FpPolyProduct(p,x13,x14,x12,db,dc,D,b,c,x15)Original native command in the exact edition
  2. L99
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L100
    specialize prime_field_polynomial_convolution_at_length_exists (x13)
  4. L101
    specialize prime_field_polynomial_convolution_at_length_exists (x14)
  5. L102
    specialize prime_field_polynomial_convolution_at_length_exists (x12)
  6. L103
    specialize prime_field_polynomial_convolution_at_length_exists (db)
  7. L104
    specialize prime_field_polynomial_convolution_at_length_exists (dc)
  8. L105
    specialize prime_field_polynomial_convolution_at_length_exists (D)
  9. L106
    specialize prime_field_polynomial_convolution_at_length_exists (x15)
  10. L107
    apply prime_field_polynomial_convolution_at_length_exists
22Use earlier factsL108–111

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

  1. L108
    exact hp0
  2. L109
    exact hQbound
  3. L110
    exact hfirst_right_left
  4. L111
    exact hresult_length_witness
23Separate the logical casesL112–113

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

  1. L112
    cases hresult_product
  2. L113
    cases hresult_product_witness
24Establish hmixed_lengthL114–117

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

  1. L114
    have hmixed_length : ∃ n. PolynomialProductLength(x8,x5,n)Definitions: PolynomialProductLength(x8,x5,n)Original native command in the exact edition
  2. L115
    specialize polynomial_product_length_exists (x8)
  3. L116
    specialize polynomial_product_length_exists (x5)
  4. L117
    apply polynomial_product_length_exists
25Separate the logical casesL118–118

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

  1. L118
    cases hmixed_length
26Establish hmixed_productL119–128

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. L119
    have hmixed_product : ∃ b. ∃ c. FpPolyProduct(p,x6,x7,x8,x3,x4,x5,b,c,x18)Definitions: FpPolyProduct(p,x6,x7,x8,x3,x4,x5,b,c,x18)Original native command in the exact edition
  2. L120
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L121
    specialize prime_field_polynomial_convolution_at_length_exists (x6)
  4. L122
    specialize prime_field_polynomial_convolution_at_length_exists (x7)
  5. L123
    specialize prime_field_polynomial_convolution_at_length_exists (x8)
  6. L124
    specialize prime_field_polynomial_convolution_at_length_exists (x3)
  7. L125
    specialize prime_field_polynomial_convolution_at_length_exists (x4)
  8. L126
    specialize prime_field_polynomial_convolution_at_length_exists (x5)
  9. L127
    specialize prime_field_polynomial_convolution_at_length_exists (x18)
  10. L128
    apply prime_field_polynomial_convolution_at_length_exists
27Use earlier factsL129–132

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

  1. L129
    exact hp0
  2. L130
    exact hsecond_left
  3. L131
    exact hPbound
  4. L132
    exact hmixed_length_witness
28Separate the logical casesL133–134

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

  1. L133
    cases hmixed_product
  2. L134
    cases hmixed_product_witness
29Establish htarget_equivalentL135–144

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

  1. L135
    have htarget_equivalent : PolynomialEquivalent(x19,x20,x18,bb,bc,M)Definitions: PolynomialEquivalent(x19,x20,x18,bb,bc,M)Original native command in the exact edition
  2. L136
    specialize prime_field_polynomial_equivalent_transitive (x19)
  3. L137
    specialize prime_field_polynomial_equivalent_transitive (x20)
  4. L138
    specialize prime_field_polynomial_equivalent_transitive (x18)
  5. L139
    specialize prime_field_polynomial_equivalent_transitive (x9)
  6. L140
    specialize prime_field_polynomial_equivalent_transitive (x10)
  7. L141
    specialize prime_field_polynomial_equivalent_transitive (x11)
  8. L142
    specialize prime_field_polynomial_equivalent_transitive (bb)
  9. L143
    specialize prime_field_polynomial_equivalent_transitive (bc)
  10. L144
    specialize prime_field_polynomial_equivalent_transitive (M)
30Use earlier factsL145–154

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

  1. L145
    apply prime_field_polynomial_equivalent_transitive
  2. L146
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (p)
  3. L147
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x6)
  4. L148
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x7)
  5. L149
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x8)
  6. L150
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x3)
  7. L151
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x4)
  8. L152
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x5)
  9. L153
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x19)
  10. L154
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x20)
31Use earlier factsL155–164

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

  1. L155
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x18)
  2. L156
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (ab)
  3. L157
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (ac)
  4. L158
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (L)
  5. L159
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x9)
  6. L160
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x10)
  7. L161
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x11)
  8. L162
    apply prime_field_polynomial_convolution_equivalent_congruent_right
  9. L163
    exact hp0
  10. L164
    exact hDA_right_witness_witness_witness_witness_witness_witness_right
32Use earlier factsL165–174

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

  1. L165
    exact hmixed_product_witness_witness
  2. L166
    exact hAB_right_witness_witness_witness_witness_witness_witness_left
  3. L167
    exact hAB_right_witness_witness_witness_witness_witness_witness_right
  4. L168
    specialize prime_field_polynomial_right_divides_from_product (p)
  5. L169
    specialize prime_field_polynomial_right_divides_from_product (db)
  6. L170
    specialize prime_field_polynomial_right_divides_from_product (dc)
  7. L171
    specialize prime_field_polynomial_right_divides_from_product (D)
  8. L172
    specialize prime_field_polynomial_right_divides_from_product (bb)
  9. L173
    specialize prime_field_polynomial_right_divides_from_product (bc)
  10. L174
    specialize prime_field_polynomial_right_divides_from_product (M)
33Use earlier factsL175–184

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

  1. L175
    specialize prime_field_polynomial_right_divides_from_product (x13)
  2. L176
    specialize prime_field_polynomial_right_divides_from_product (x14)
  3. L177
    specialize prime_field_polynomial_right_divides_from_product (x12)
  4. L178
    specialize prime_field_polynomial_right_divides_from_product (x16)
  5. L179
    specialize prime_field_polynomial_right_divides_from_product (x17)
  6. L180
    specialize prime_field_polynomial_right_divides_from_product (x15)
  7. L181
    apply prime_field_polynomial_right_divides_from_product
  8. L182
    exact hAB_left
  9. L183
    exact hresult_product_witness_witness
  10. L184
    specialize prime_field_polynomial_equivalent_transitive (x16)
34Use earlier factsL185–194

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

  1. L185
    specialize prime_field_polynomial_equivalent_transitive (x17)
  2. L186
    specialize prime_field_polynomial_equivalent_transitive (x15)
  3. L187
    specialize prime_field_polynomial_equivalent_transitive (x19)
  4. L188
    specialize prime_field_polynomial_equivalent_transitive (x20)
  5. L189
    specialize prime_field_polynomial_equivalent_transitive (x18)
  6. L190
    specialize prime_field_polynomial_equivalent_transitive (bb)
  7. L191
    specialize prime_field_polynomial_equivalent_transitive (bc)
  8. L192
    specialize prime_field_polynomial_equivalent_transitive (M)
  9. L193
    apply prime_field_polynomial_equivalent_transitive
  10. L194
    specialize prime_field_polynomial_convolution_associative_equivalent (p)
35Use earlier factsL195–204

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

  1. L195
    specialize prime_field_polynomial_convolution_associative_equivalent (x6)
  2. L196
    specialize prime_field_polynomial_convolution_associative_equivalent (x7)
  3. L197
    specialize prime_field_polynomial_convolution_associative_equivalent (x8)
  4. L198
    specialize prime_field_polynomial_convolution_associative_equivalent (x)
  5. L199
    specialize prime_field_polynomial_convolution_associative_equivalent (x1)
  6. L200
    specialize prime_field_polynomial_convolution_associative_equivalent (x2)
  7. L201
    specialize prime_field_polynomial_convolution_associative_equivalent (x13)
  8. L202
    specialize prime_field_polynomial_convolution_associative_equivalent (x14)
  9. L203
    specialize prime_field_polynomial_convolution_associative_equivalent (x12)
  10. L204
    specialize prime_field_polynomial_convolution_associative_equivalent (db)
36Use earlier factsL205–214

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

  1. L205
    specialize prime_field_polynomial_convolution_associative_equivalent (dc)
  2. L206
    specialize prime_field_polynomial_convolution_associative_equivalent (D)
  3. L207
    specialize prime_field_polynomial_convolution_associative_equivalent (x3)
  4. L208
    specialize prime_field_polynomial_convolution_associative_equivalent (x4)
  5. L209
    specialize prime_field_polynomial_convolution_associative_equivalent (x5)
  6. L210
    specialize prime_field_polynomial_convolution_associative_equivalent (x16)
  7. L211
    specialize prime_field_polynomial_convolution_associative_equivalent (x17)
  8. L212
    specialize prime_field_polynomial_convolution_associative_equivalent (x15)
  9. L213
    specialize prime_field_polynomial_convolution_associative_equivalent (x19)
  10. L214
    specialize prime_field_polynomial_convolution_associative_equivalent (x20)
37Use earlier factsL215–222

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

  1. L215
    specialize prime_field_polynomial_convolution_associative_equivalent (x18)
  2. L216
    apply prime_field_polynomial_convolution_associative_equivalent
  3. L217
    exact hp
  4. L218
    exact hcomposite_product_witness_witness
  5. L219
    exact hDA_right_witness_witness_witness_witness_witness_witness_left
  6. L220
    exact hresult_product_witness_witness
  7. L221
    exact hmixed_product_witness_witness
  8. L222
    exact htarget_equivalent

Library-wide reading audit

Original defined command ledger · 222 lines
  1. 0001intro p
  2. 0002intro db
  3. 0003intro dc
  4. 0004intro D
  5. 0005intro ab
  6. 0006intro ac
  7. 0007intro L
  8. 0008intro bb
  9. 0009intro bc
  10. 0010intro M
  11. 0011intro hp
  12. 0012intro hDA
  13. 0013intro hAB
  14. 0014have hp0 : ~(p=0)
  15. 0015intro hz
  16. 0016specialize prime_nonzero (p)
  17. 0017apply prime_nonzero
  18. 0018exact hp
  19. 0019exact hz
  20. 0020cases hDA
  21. 0021cases hDA_right
  22. 0022cases hDA_right_witness
  23. 0023cases hDA_right_witness_witness
  24. 0024cases hDA_right_witness_witness_witness
  25. 0025cases hDA_right_witness_witness_witness_witness
  26. 0026cases hDA_right_witness_witness_witness_witness_witness
  27. 0027cases hDA_right_witness_witness_witness_witness_witness_witness
  28. 0028cases hAB
  29. 0029cases hAB_right
  30. 0030cases hAB_right_witness
  31. 0031cases hAB_right_witness_witness
  32. 0032cases hAB_right_witness_witness_witness
  33. 0033cases hAB_right_witness_witness_witness_witness
  34. 0034cases hAB_right_witness_witness_witness_witness_witness
  35. 0035cases hAB_right_witness_witness_witness_witness_witness_witness
  36. 0036have hfirst : FpPolyProduct(p,x,x1,x2,db,dc,D,x3,x4,x5)
  37. 0037exact hDA_right_witness_witness_witness_witness_witness_witness_left
  38. 0038cases hfirst
  39. 0039cases hfirst_right
  40. 0040cases hfirst_right_right
  41. 0041have hsecond : FpPolyProduct(p,x6,x7,x8,ab,ac,L,x9,x10,x11)
  42. 0042exact hAB_right_witness_witness_witness_witness_witness_witness_left
  43. 0043cases hsecond
  44. 0044cases hsecond_right
  45. 0045cases hsecond_right_right
  46. 0046have hPbound : BetaPrefixInto(x3,x4,x5,p)
  47. 0047specialize prime_field_polynomial_convolution_bounded (p)
  48. 0048specialize prime_field_polynomial_convolution_bounded (x)
  49. 0049specialize prime_field_polynomial_convolution_bounded (x1)
  50. 0050specialize prime_field_polynomial_convolution_bounded (x2)
  51. 0051specialize prime_field_polynomial_convolution_bounded (db)
  52. 0052specialize prime_field_polynomial_convolution_bounded (dc)
  53. 0053specialize prime_field_polynomial_convolution_bounded (D)
  54. 0054specialize prime_field_polynomial_convolution_bounded (x3)
  55. 0055specialize prime_field_polynomial_convolution_bounded (x4)
  56. 0056specialize prime_field_polynomial_convolution_bounded (x5)
  57. 0057apply prime_field_polynomial_convolution_bounded
  58. 0058exact hDA_right_witness_witness_witness_witness_witness_witness_left
  59. 0059have hcomposite_length : ∃ n. PolynomialProductLength(x8,x2,n)
  60. 0060specialize polynomial_product_length_exists (x8)
  61. 0061specialize polynomial_product_length_exists (x2)
  62. 0062apply polynomial_product_length_exists
  63. 0063cases hcomposite_length
  64. 0064have hcomposite_product : ∃ b. ∃ c. FpPolyProduct(p,x6,x7,x8,x,x1,x2,b,c,x12)
  65. 0065specialize prime_field_polynomial_convolution_at_length_exists (p)
  66. 0066specialize prime_field_polynomial_convolution_at_length_exists (x6)
  67. 0067specialize prime_field_polynomial_convolution_at_length_exists (x7)
  68. 0068specialize prime_field_polynomial_convolution_at_length_exists (x8)
  69. 0069specialize prime_field_polynomial_convolution_at_length_exists (x)
  70. 0070specialize prime_field_polynomial_convolution_at_length_exists (x1)
  71. 0071specialize prime_field_polynomial_convolution_at_length_exists (x2)
  72. 0072specialize prime_field_polynomial_convolution_at_length_exists (x12)
  73. 0073apply prime_field_polynomial_convolution_at_length_exists
  74. 0074exact hp0
  75. 0075exact hsecond_left
  76. 0076exact hfirst_left
  77. 0077exact hcomposite_length_witness
  78. 0078cases hcomposite_product
  79. 0079cases hcomposite_product_witness
  80. 0080have hQbound : BetaPrefixInto(x13,x14,x12,p)
  81. 0081specialize prime_field_polynomial_convolution_bounded (p)
  82. 0082specialize prime_field_polynomial_convolution_bounded (x6)
  83. 0083specialize prime_field_polynomial_convolution_bounded (x7)
  84. 0084specialize prime_field_polynomial_convolution_bounded (x8)
  85. 0085specialize prime_field_polynomial_convolution_bounded (x)
  86. 0086specialize prime_field_polynomial_convolution_bounded (x1)
  87. 0087specialize prime_field_polynomial_convolution_bounded (x2)
  88. 0088specialize prime_field_polynomial_convolution_bounded (x13)
  89. 0089specialize prime_field_polynomial_convolution_bounded (x14)
  90. 0090specialize prime_field_polynomial_convolution_bounded (x12)
  91. 0091apply prime_field_polynomial_convolution_bounded
  92. 0092exact hcomposite_product_witness_witness
  93. 0093have hresult_length : ∃ n. PolynomialProductLength(x12,D,n)
  94. 0094specialize polynomial_product_length_exists (x12)
  95. 0095specialize polynomial_product_length_exists (D)
  96. 0096apply polynomial_product_length_exists
  97. 0097cases hresult_length
  98. 0098have hresult_product : ∃ b. ∃ c. FpPolyProduct(p,x13,x14,x12,db,dc,D,b,c,x15)
  99. 0099specialize prime_field_polynomial_convolution_at_length_exists (p)
  100. 0100specialize prime_field_polynomial_convolution_at_length_exists (x13)
  101. 0101specialize prime_field_polynomial_convolution_at_length_exists (x14)
  102. 0102specialize prime_field_polynomial_convolution_at_length_exists (x12)
  103. 0103specialize prime_field_polynomial_convolution_at_length_exists (db)
  104. 0104specialize prime_field_polynomial_convolution_at_length_exists (dc)
  105. 0105specialize prime_field_polynomial_convolution_at_length_exists (D)
  106. 0106specialize prime_field_polynomial_convolution_at_length_exists (x15)
  107. 0107apply prime_field_polynomial_convolution_at_length_exists
  108. 0108exact hp0
  109. 0109exact hQbound
  110. 0110exact hfirst_right_left
  111. 0111exact hresult_length_witness
  112. 0112cases hresult_product
  113. 0113cases hresult_product_witness
  114. 0114have hmixed_length : ∃ n. PolynomialProductLength(x8,x5,n)
  115. 0115specialize polynomial_product_length_exists (x8)
  116. 0116specialize polynomial_product_length_exists (x5)
  117. 0117apply polynomial_product_length_exists
  118. 0118cases hmixed_length
  119. 0119have hmixed_product : ∃ b. ∃ c. FpPolyProduct(p,x6,x7,x8,x3,x4,x5,b,c,x18)
  120. 0120specialize prime_field_polynomial_convolution_at_length_exists (p)
  121. 0121specialize prime_field_polynomial_convolution_at_length_exists (x6)
  122. 0122specialize prime_field_polynomial_convolution_at_length_exists (x7)
  123. 0123specialize prime_field_polynomial_convolution_at_length_exists (x8)
  124. 0124specialize prime_field_polynomial_convolution_at_length_exists (x3)
  125. 0125specialize prime_field_polynomial_convolution_at_length_exists (x4)
  126. 0126specialize prime_field_polynomial_convolution_at_length_exists (x5)
  127. 0127specialize prime_field_polynomial_convolution_at_length_exists (x18)
  128. 0128apply prime_field_polynomial_convolution_at_length_exists
  129. 0129exact hp0
  130. 0130exact hsecond_left
  131. 0131exact hPbound
  132. 0132exact hmixed_length_witness
  133. 0133cases hmixed_product
  134. 0134cases hmixed_product_witness
  135. 0135have htarget_equivalent : PolynomialEquivalent(x19,x20,x18,bb,bc,M)
  136. 0136specialize prime_field_polynomial_equivalent_transitive (x19)
  137. 0137specialize prime_field_polynomial_equivalent_transitive (x20)
  138. 0138specialize prime_field_polynomial_equivalent_transitive (x18)
  139. 0139specialize prime_field_polynomial_equivalent_transitive (x9)
  140. 0140specialize prime_field_polynomial_equivalent_transitive (x10)
  141. 0141specialize prime_field_polynomial_equivalent_transitive (x11)
  142. 0142specialize prime_field_polynomial_equivalent_transitive (bb)
  143. 0143specialize prime_field_polynomial_equivalent_transitive (bc)
  144. 0144specialize prime_field_polynomial_equivalent_transitive (M)
  145. 0145apply prime_field_polynomial_equivalent_transitive
  146. 0146specialize prime_field_polynomial_convolution_equivalent_congruent_right (p)
  147. 0147specialize prime_field_polynomial_convolution_equivalent_congruent_right (x6)
  148. 0148specialize prime_field_polynomial_convolution_equivalent_congruent_right (x7)
  149. 0149specialize prime_field_polynomial_convolution_equivalent_congruent_right (x8)
  150. 0150specialize prime_field_polynomial_convolution_equivalent_congruent_right (x3)
  151. 0151specialize prime_field_polynomial_convolution_equivalent_congruent_right (x4)
  152. 0152specialize prime_field_polynomial_convolution_equivalent_congruent_right (x5)
  153. 0153specialize prime_field_polynomial_convolution_equivalent_congruent_right (x19)
  154. 0154specialize prime_field_polynomial_convolution_equivalent_congruent_right (x20)
  155. 0155specialize prime_field_polynomial_convolution_equivalent_congruent_right (x18)
  156. 0156specialize prime_field_polynomial_convolution_equivalent_congruent_right (ab)
  157. 0157specialize prime_field_polynomial_convolution_equivalent_congruent_right (ac)
  158. 0158specialize prime_field_polynomial_convolution_equivalent_congruent_right (L)
  159. 0159specialize prime_field_polynomial_convolution_equivalent_congruent_right (x9)
  160. 0160specialize prime_field_polynomial_convolution_equivalent_congruent_right (x10)
  161. 0161specialize prime_field_polynomial_convolution_equivalent_congruent_right (x11)
  162. 0162apply prime_field_polynomial_convolution_equivalent_congruent_right
  163. 0163exact hp0
  164. 0164exact hDA_right_witness_witness_witness_witness_witness_witness_right
  165. 0165exact hmixed_product_witness_witness
  166. 0166exact hAB_right_witness_witness_witness_witness_witness_witness_left
  167. 0167exact hAB_right_witness_witness_witness_witness_witness_witness_right
  168. 0168specialize prime_field_polynomial_right_divides_from_product (p)
  169. 0169specialize prime_field_polynomial_right_divides_from_product (db)
  170. 0170specialize prime_field_polynomial_right_divides_from_product (dc)
  171. 0171specialize prime_field_polynomial_right_divides_from_product (D)
  172. 0172specialize prime_field_polynomial_right_divides_from_product (bb)
  173. 0173specialize prime_field_polynomial_right_divides_from_product (bc)
  174. 0174specialize prime_field_polynomial_right_divides_from_product (M)
  175. 0175specialize prime_field_polynomial_right_divides_from_product (x13)
  176. 0176specialize prime_field_polynomial_right_divides_from_product (x14)
  177. 0177specialize prime_field_polynomial_right_divides_from_product (x12)
  178. 0178specialize prime_field_polynomial_right_divides_from_product (x16)
  179. 0179specialize prime_field_polynomial_right_divides_from_product (x17)
  180. 0180specialize prime_field_polynomial_right_divides_from_product (x15)
  181. 0181apply prime_field_polynomial_right_divides_from_product
  182. 0182exact hAB_left
  183. 0183exact hresult_product_witness_witness
  184. 0184specialize prime_field_polynomial_equivalent_transitive (x16)
  185. 0185specialize prime_field_polynomial_equivalent_transitive (x17)
  186. 0186specialize prime_field_polynomial_equivalent_transitive (x15)
  187. 0187specialize prime_field_polynomial_equivalent_transitive (x19)
  188. 0188specialize prime_field_polynomial_equivalent_transitive (x20)
  189. 0189specialize prime_field_polynomial_equivalent_transitive (x18)
  190. 0190specialize prime_field_polynomial_equivalent_transitive (bb)
  191. 0191specialize prime_field_polynomial_equivalent_transitive (bc)
  192. 0192specialize prime_field_polynomial_equivalent_transitive (M)
  193. 0193apply prime_field_polynomial_equivalent_transitive
  194. 0194specialize prime_field_polynomial_convolution_associative_equivalent (p)
  195. 0195specialize prime_field_polynomial_convolution_associative_equivalent (x6)
  196. 0196specialize prime_field_polynomial_convolution_associative_equivalent (x7)
  197. 0197specialize prime_field_polynomial_convolution_associative_equivalent (x8)
  198. 0198specialize prime_field_polynomial_convolution_associative_equivalent (x)
  199. 0199specialize prime_field_polynomial_convolution_associative_equivalent (x1)
  200. 0200specialize prime_field_polynomial_convolution_associative_equivalent (x2)
  201. 0201specialize prime_field_polynomial_convolution_associative_equivalent (x13)
  202. 0202specialize prime_field_polynomial_convolution_associative_equivalent (x14)
  203. 0203specialize prime_field_polynomial_convolution_associative_equivalent (x12)
  204. 0204specialize prime_field_polynomial_convolution_associative_equivalent (db)
  205. 0205specialize prime_field_polynomial_convolution_associative_equivalent (dc)
  206. 0206specialize prime_field_polynomial_convolution_associative_equivalent (D)
  207. 0207specialize prime_field_polynomial_convolution_associative_equivalent (x3)
  208. 0208specialize prime_field_polynomial_convolution_associative_equivalent (x4)
  209. 0209specialize prime_field_polynomial_convolution_associative_equivalent (x5)
  210. 0210specialize prime_field_polynomial_convolution_associative_equivalent (x16)
  211. 0211specialize prime_field_polynomial_convolution_associative_equivalent (x17)
  212. 0212specialize prime_field_polynomial_convolution_associative_equivalent (x15)
  213. 0213specialize prime_field_polynomial_convolution_associative_equivalent (x19)
  214. 0214specialize prime_field_polynomial_convolution_associative_equivalent (x20)
  215. 0215specialize prime_field_polynomial_convolution_associative_equivalent (x18)
  216. 0216apply prime_field_polynomial_convolution_associative_equivalent
  217. 0217exact hp
  218. 0218exact hcomposite_product_witness_witness
  219. 0219exact hDA_right_witness_witness_witness_witness_witness_witness_left
  220. 0220exact hresult_product_witness_witness
  221. 0221exact hmixed_product_witness_witness
  222. 0222exact htarget_equivalent