PG002B

prime_field_polynomial_right_divides_equivalent_divisor

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

An equivalent canonical right divisor preserves divisibility by constructing the quotient times the replacement at its own actual proper length. Formal output congruence, not a supplied output identity, gives the new witness.

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

Exact expanded first-order arithmetic statement

forall p db dc D ab ac L eb ec E. (~(p=0)) -> (forall fom_index_pfp_right_divisor_replacement_bound. (exists fom_gap_pfp_right_divisor_replacement_bound_index_bound. fom_gap_pfp_right_divisor_replacement_bound_index_bound + S (fom_index_pfp_right_divisor_replacement_bound) = E) -> exists fom_value_pfp_right_divisor_replacement_bound. ((((exists fom_beta_height_pfp_right_divisor_replacement_bound_entry. fom_beta_height_pfp_right_divisor_replacement_bound_entry + S (fom_value_pfp_right_divisor_replacement_bound) = S ((S (fom_index_pfp_right_divisor_replacement_bound)) * ec)) /\ exists fom_beta_quotient_pfp_right_divisor_replacement_bound_entry. eb = fom_beta_quotient_pfp_right_divisor_replacement_bound_entry * S ((S (fom_index_pfp_right_divisor_replacement_bound)) * ec) + (fom_value_pfp_right_divisor_replacement_bound))) /\ (exists fom_gap_pfp_right_divisor_replacement_bound_value_bound. fom_gap_pfp_right_divisor_replacement_bound_value_bound + S (fom_value_pfp_right_divisor_replacement_bound) = p))) -> (forall pfrep_power_right_divisor_equivalent pfrep_left_right_divisor_equivalent pfrep_right_right_divisor_equivalent. ((exists pfrep_position_right_divisor_equivalentfirst. ((pfrep_position_right_divisor_equivalentfirst+S (pfrep_power_right_divisor_equivalent)=(D)) /\ ((((exists ff_h_pfp_right_divisor_equivalentfirstentry. ff_h_pfp_right_divisor_equivalentfirstentry + S (pfrep_left_right_divisor_equivalent) = S ((S (pfrep_position_right_divisor_equivalentfirst)) * dc)) /\ exists ff_q_pfp_right_divisor_equivalentfirstentry. db = ff_q_pfp_right_divisor_equivalentfirstentry * S ((S (pfrep_position_right_divisor_equivalentfirst)) * dc) + (pfrep_left_right_divisor_equivalent)))))) \/ (((exists pfrep_gap_right_divisor_equivalentfirstoutside. pfrep_gap_right_divisor_equivalentfirstoutside+(D)=(pfrep_power_right_divisor_equivalent)) /\ (((pfrep_left_right_divisor_equivalent)=0))))) -> ((exists pfrep_position_right_divisor_equivalentsecond. ((pfrep_position_right_divisor_equivalentsecond+S (pfrep_power_right_divisor_equivalent)=(E)) /\ ((((exists ff_h_pfp_right_divisor_equivalentsecondentry. ff_h_pfp_right_divisor_equivalentsecondentry + S (pfrep_right_right_divisor_equivalent) = S ((S (pfrep_position_right_divisor_equivalentsecond)) * ec)) /\ exists ff_q_pfp_right_divisor_equivalentsecondentry. eb = ff_q_pfp_right_divisor_equivalentsecondentry * S ((S (pfrep_position_right_divisor_equivalentsecond)) * ec) + (pfrep_right_right_divisor_equivalent)))))) \/ (((exists pfrep_gap_right_divisor_equivalentsecondoutside. pfrep_gap_right_divisor_equivalentsecondoutside+(E)=(pfrep_power_right_divisor_equivalent)) /\ (((pfrep_right_right_divisor_equivalent)=0))))) -> pfrep_left_right_divisor_equivalent=pfrep_right_right_divisor_equivalent) -> (((forall fom_index_pfp_right_divisor_source_canonical. (exists fom_gap_pfp_right_divisor_source_canonical_index_bound. fom_gap_pfp_right_divisor_source_canonical_index_bound + S (fom_index_pfp_right_divisor_source_canonical) = L) -> exists fom_value_pfp_right_divisor_source_canonical. ((((exists fom_beta_height_pfp_right_divisor_source_canonical_entry. fom_beta_height_pfp_right_divisor_source_canonical_entry + S (fom_value_pfp_right_divisor_source_canonical) = S ((S (fom_index_pfp_right_divisor_source_canonical)) * ac)) /\ exists fom_beta_quotient_pfp_right_divisor_source_canonical_entry. ab = fom_beta_quotient_pfp_right_divisor_source_canonical_entry * S ((S (fom_index_pfp_right_divisor_source_canonical)) * ac) + (fom_value_pfp_right_divisor_source_canonical))) /\ (exists fom_gap_pfp_right_divisor_source_canonical_value_bound. fom_gap_pfp_right_divisor_source_canonical_value_bound + S (fom_value_pfp_right_divisor_source_canonical) = p))) /\ ((exists pfrd_qb_right_divisor_source pfrd_qc_right_divisor_source pfrd_qlen_right_divisor_source pfrd_pb_right_divisor_source pfrd_pc_right_divisor_source pfrd_plen_right_divisor_source. ((((forall fom_index_pfp_right_divisor_source_productleft. (exists fom_gap_pfp_right_divisor_source_productleft_index_bound. fom_gap_pfp_right_divisor_source_productleft_index_bound + S (fom_index_pfp_right_divisor_source_productleft) = pfrd_qlen_right_divisor_source) -> exists fom_value_pfp_right_divisor_source_productleft. ((((exists fom_beta_height_pfp_right_divisor_source_productleft_entry. fom_beta_height_pfp_right_divisor_source_productleft_entry + S (fom_value_pfp_right_divisor_source_productleft) = S ((S (fom_index_pfp_right_divisor_source_productleft)) * pfrd_qc_right_divisor_source)) /\ exists fom_beta_quotient_pfp_right_divisor_source_productleft_entry. pfrd_qb_right_divisor_source = fom_beta_quotient_pfp_right_divisor_source_productleft_entry * S ((S (fom_index_pfp_right_divisor_source_productleft)) * pfrd_qc_right_divisor_source) + (fom_value_pfp_right_divisor_source_productleft))) /\ (exists fom_gap_pfp_right_divisor_source_productleft_value_bound. fom_gap_pfp_right_divisor_source_productleft_value_bound + S (fom_value_pfp_right_divisor_source_productleft) = p))) /\ (((forall fom_index_pfp_right_divisor_source_productright. (exists fom_gap_pfp_right_divisor_source_productright_index_bound. fom_gap_pfp_right_divisor_source_productright_index_bound + S (fom_index_pfp_right_divisor_source_productright) = D) -> exists fom_value_pfp_right_divisor_source_productright. ((((exists fom_beta_height_pfp_right_divisor_source_productright_entry. fom_beta_height_pfp_right_divisor_source_productright_entry + S (fom_value_pfp_right_divisor_source_productright) = S ((S (fom_index_pfp_right_divisor_source_productright)) * dc)) /\ exists fom_beta_quotient_pfp_right_divisor_source_productright_entry. db = fom_beta_quotient_pfp_right_divisor_source_productright_entry * S ((S (fom_index_pfp_right_divisor_source_productright)) * dc) + (fom_value_pfp_right_divisor_source_productright))) /\ (exists fom_gap_pfp_right_divisor_source_productright_value_bound. fom_gap_pfp_right_divisor_source_productright_value_bound + S (fom_value_pfp_right_divisor_source_productright) = p))) /\ (((((((pfrd_qlen_right_divisor_source)=0 \/ (D)=0) /\ (((pfrd_plen_right_divisor_source)=0)))) \/ (((~((pfrd_qlen_right_divisor_source)=0)) /\ (((~((D)=0)) /\ (((pfrd_qlen_right_divisor_source)+(D)=S (pfrd_plen_right_divisor_source)))))))) /\ ((forall pfc_index_right_divisor_source_productcoefficients. (exists pfa_gap_right_divisor_source_productcoefficientsbound. pfa_gap_right_divisor_source_productcoefficientsbound + S (pfc_index_right_divisor_source_productcoefficients) = (pfrd_plen_right_divisor_source)) -> exists pfc_value_right_divisor_source_productcoefficients. ((((exists ff_h_pfp_right_divisor_source_productcoefficientsentry. ff_h_pfp_right_divisor_source_productcoefficientsentry + S (pfc_value_right_divisor_source_productcoefficients) = S ((S (pfc_index_right_divisor_source_productcoefficients)) * pfrd_pc_right_divisor_source)) /\ exists ff_q_pfp_right_divisor_source_productcoefficientsentry. pfrd_pb_right_divisor_source = ff_q_pfp_right_divisor_source_productcoefficientsentry * S ((S (pfc_index_right_divisor_source_productcoefficients)) * pfrd_pc_right_divisor_source) + (pfc_value_right_divisor_source_productcoefficients))) /\ ((exists pfc_terms_code_right_divisor_source_productcoefficientscoefficient pfc_terms_scale_right_divisor_source_productcoefficientscoefficient pfc_natural_sum_right_divisor_source_productcoefficientscoefficient. ((forall pfc_index_right_divisor_source_productcoefficientscoefficientdiagonal. (exists pfa_gap_right_divisor_source_productcoefficientscoefficientdiagonalbound. pfa_gap_right_divisor_source_productcoefficientscoefficientdiagonalbound + S (pfc_index_right_divisor_source_productcoefficientscoefficientdiagonal) = (S (pfc_index_right_divisor_source_productcoefficients))) -> exists pfc_value_right_divisor_source_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_right_divisor_source_productcoefficientscoefficientdiagonalentry. ff_h_pfp_right_divisor_source_productcoefficientscoefficientdiagonalentry + S (pfc_value_right_divisor_source_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_right_divisor_source_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_divisor_source_productcoefficientscoefficient)) /\ exists ff_q_pfp_right_divisor_source_productcoefficientscoefficientdiagonalentry. pfc_terms_code_right_divisor_source_productcoefficientscoefficient = ff_q_pfp_right_divisor_source_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_right_divisor_source_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_divisor_source_productcoefficientscoefficient) + (pfc_value_right_divisor_source_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_right_divisor_source_productcoefficientscoefficientdiagonalterm pfc_left_right_divisor_source_productcoefficientscoefficientdiagonalterm pfc_right_right_divisor_source_productcoefficientscoefficientdiagonalterm. (((pfc_index_right_divisor_source_productcoefficientscoefficientdiagonal)+pfc_complement_right_divisor_source_productcoefficientscoefficientdiagonalterm=(pfc_index_right_divisor_source_productcoefficients)) /\ ((((((exists pfa_gap_right_divisor_source_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_right_divisor_source_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_right_divisor_source_productcoefficientscoefficientdiagonal) = (pfrd_qlen_right_divisor_source)) /\ ((((exists ff_h_pfp_right_divisor_source_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_right_divisor_source_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_right_divisor_source_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_right_divisor_source_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_divisor_source)) /\ exists ff_q_pfp_right_divisor_source_productcoefficientscoefficientdiagonaltermleftentry. pfrd_qb_right_divisor_source = ff_q_pfp_right_divisor_source_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_right_divisor_source_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_divisor_source) + (pfc_left_right_divisor_source_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_divisor_source_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_right_divisor_source_productcoefficientscoefficientdiagonaltermleftoutside+(pfrd_qlen_right_divisor_source)=(pfc_index_right_divisor_source_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_right_divisor_source_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_right_divisor_source_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_right_divisor_source_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_right_divisor_source_productcoefficientscoefficientdiagonalterm) = (D)) /\ ((((exists ff_h_pfp_right_divisor_source_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_right_divisor_source_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_right_divisor_source_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_right_divisor_source_productcoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_right_divisor_source_productcoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_right_divisor_source_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_right_divisor_source_productcoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_right_divisor_source_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_divisor_source_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_right_divisor_source_productcoefficientscoefficientdiagonaltermrightoutside+(D)=(pfc_complement_right_divisor_source_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_right_divisor_source_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_right_divisor_source_productcoefficientscoefficientdiagonal)=pfc_left_right_divisor_source_productcoefficientscoefficientdiagonalterm*pfc_right_right_divisor_source_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_right_divisor_source_productcoefficientscoefficientsum fs_v_pfc_right_divisor_source_productcoefficientscoefficientsum. ((((exists fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_start. fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_right_divisor_source_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_start. fs_u_pfc_right_divisor_source_productcoefficientscoefficientsum = fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_right_divisor_source_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_right_divisor_source_productcoefficientscoefficient) = S ((S (S (pfc_index_right_divisor_source_productcoefficients))) * fs_v_pfc_right_divisor_source_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_right_divisor_source_productcoefficientscoefficientsum = fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_right_divisor_source_productcoefficients))) * fs_v_pfc_right_divisor_source_productcoefficientscoefficientsum) + (pfc_natural_sum_right_divisor_source_productcoefficientscoefficient))) /\ forall fs_i_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps = S (pfc_index_right_divisor_source_productcoefficients)) -> exists fs_a_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps fs_r_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps fs_s_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_divisor_source_productcoefficientscoefficient)) /\ exists fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_right_divisor_source_productcoefficientscoefficient = fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_divisor_source_productcoefficientscoefficient) + (fs_a_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_source_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_right_divisor_source_productcoefficientscoefficientsum = fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_source_productcoefficientscoefficientsum) + (fs_r_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_source_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_right_divisor_source_productcoefficientscoefficientsum = fs_q_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_source_productcoefficientscoefficientsum) + (fs_s_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps = fs_r_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps + fs_a_pfc_right_divisor_source_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_right_divisor_source_productcoefficientscoefficientresiduebound. pfa_gap_right_divisor_source_productcoefficientscoefficientresiduebound + S (pfc_value_right_divisor_source_productcoefficients) = (p)) /\ ((exists pfa_offset_left_right_divisor_source_productcoefficientscoefficientresiduecongruence pfa_offset_right_right_divisor_source_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_right_divisor_source_productcoefficientscoefficient) + (p) * pfa_offset_left_right_divisor_source_productcoefficientscoefficientresiduecongruence = (pfc_value_right_divisor_source_productcoefficients) + (p) * pfa_offset_right_right_divisor_source_productcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfrep_power_right_divisor_source_target pfrep_left_right_divisor_source_target pfrep_right_right_divisor_source_target. ((exists pfrep_position_right_divisor_source_targetfirst. ((pfrep_position_right_divisor_source_targetfirst+S (pfrep_power_right_divisor_source_target)=(pfrd_plen_right_divisor_source)) /\ ((((exists ff_h_pfp_right_divisor_source_targetfirstentry. ff_h_pfp_right_divisor_source_targetfirstentry + S (pfrep_left_right_divisor_source_target) = S ((S (pfrep_position_right_divisor_source_targetfirst)) * pfrd_pc_right_divisor_source)) /\ exists ff_q_pfp_right_divisor_source_targetfirstentry. pfrd_pb_right_divisor_source = ff_q_pfp_right_divisor_source_targetfirstentry * S ((S (pfrep_position_right_divisor_source_targetfirst)) * pfrd_pc_right_divisor_source) + (pfrep_left_right_divisor_source_target)))))) \/ (((exists pfrep_gap_right_divisor_source_targetfirstoutside. pfrep_gap_right_divisor_source_targetfirstoutside+(pfrd_plen_right_divisor_source)=(pfrep_power_right_divisor_source_target)) /\ (((pfrep_left_right_divisor_source_target)=0))))) -> ((exists pfrep_position_right_divisor_source_targetsecond. ((pfrep_position_right_divisor_source_targetsecond+S (pfrep_power_right_divisor_source_target)=(L)) /\ ((((exists ff_h_pfp_right_divisor_source_targetsecondentry. ff_h_pfp_right_divisor_source_targetsecondentry + S (pfrep_right_right_divisor_source_target) = S ((S (pfrep_position_right_divisor_source_targetsecond)) * ac)) /\ exists ff_q_pfp_right_divisor_source_targetsecondentry. ab = ff_q_pfp_right_divisor_source_targetsecondentry * S ((S (pfrep_position_right_divisor_source_targetsecond)) * ac) + (pfrep_right_right_divisor_source_target)))))) \/ (((exists pfrep_gap_right_divisor_source_targetsecondoutside. pfrep_gap_right_divisor_source_targetsecondoutside+(L)=(pfrep_power_right_divisor_source_target)) /\ (((pfrep_right_right_divisor_source_target)=0))))) -> pfrep_left_right_divisor_source_target=pfrep_right_right_divisor_source_target))))))) -> (((forall fom_index_pfp_right_divisor_result_canonical. (exists fom_gap_pfp_right_divisor_result_canonical_index_bound. fom_gap_pfp_right_divisor_result_canonical_index_bound + S (fom_index_pfp_right_divisor_result_canonical) = L) -> exists fom_value_pfp_right_divisor_result_canonical. ((((exists fom_beta_height_pfp_right_divisor_result_canonical_entry. fom_beta_height_pfp_right_divisor_result_canonical_entry + S (fom_value_pfp_right_divisor_result_canonical) = S ((S (fom_index_pfp_right_divisor_result_canonical)) * ac)) /\ exists fom_beta_quotient_pfp_right_divisor_result_canonical_entry. ab = fom_beta_quotient_pfp_right_divisor_result_canonical_entry * S ((S (fom_index_pfp_right_divisor_result_canonical)) * ac) + (fom_value_pfp_right_divisor_result_canonical))) /\ (exists fom_gap_pfp_right_divisor_result_canonical_value_bound. fom_gap_pfp_right_divisor_result_canonical_value_bound + S (fom_value_pfp_right_divisor_result_canonical) = p))) /\ ((exists pfrd_qb_right_divisor_result pfrd_qc_right_divisor_result pfrd_qlen_right_divisor_result pfrd_pb_right_divisor_result pfrd_pc_right_divisor_result pfrd_plen_right_divisor_result. ((((forall fom_index_pfp_right_divisor_result_productleft. (exists fom_gap_pfp_right_divisor_result_productleft_index_bound. fom_gap_pfp_right_divisor_result_productleft_index_bound + S (fom_index_pfp_right_divisor_result_productleft) = pfrd_qlen_right_divisor_result) -> exists fom_value_pfp_right_divisor_result_productleft. ((((exists fom_beta_height_pfp_right_divisor_result_productleft_entry. fom_beta_height_pfp_right_divisor_result_productleft_entry + S (fom_value_pfp_right_divisor_result_productleft) = S ((S (fom_index_pfp_right_divisor_result_productleft)) * pfrd_qc_right_divisor_result)) /\ exists fom_beta_quotient_pfp_right_divisor_result_productleft_entry. pfrd_qb_right_divisor_result = fom_beta_quotient_pfp_right_divisor_result_productleft_entry * S ((S (fom_index_pfp_right_divisor_result_productleft)) * pfrd_qc_right_divisor_result) + (fom_value_pfp_right_divisor_result_productleft))) /\ (exists fom_gap_pfp_right_divisor_result_productleft_value_bound. fom_gap_pfp_right_divisor_result_productleft_value_bound + S (fom_value_pfp_right_divisor_result_productleft) = p))) /\ (((forall fom_index_pfp_right_divisor_result_productright. (exists fom_gap_pfp_right_divisor_result_productright_index_bound. fom_gap_pfp_right_divisor_result_productright_index_bound + S (fom_index_pfp_right_divisor_result_productright) = E) -> exists fom_value_pfp_right_divisor_result_productright. ((((exists fom_beta_height_pfp_right_divisor_result_productright_entry. fom_beta_height_pfp_right_divisor_result_productright_entry + S (fom_value_pfp_right_divisor_result_productright) = S ((S (fom_index_pfp_right_divisor_result_productright)) * ec)) /\ exists fom_beta_quotient_pfp_right_divisor_result_productright_entry. eb = fom_beta_quotient_pfp_right_divisor_result_productright_entry * S ((S (fom_index_pfp_right_divisor_result_productright)) * ec) + (fom_value_pfp_right_divisor_result_productright))) /\ (exists fom_gap_pfp_right_divisor_result_productright_value_bound. fom_gap_pfp_right_divisor_result_productright_value_bound + S (fom_value_pfp_right_divisor_result_productright) = p))) /\ (((((((pfrd_qlen_right_divisor_result)=0 \/ (E)=0) /\ (((pfrd_plen_right_divisor_result)=0)))) \/ (((~((pfrd_qlen_right_divisor_result)=0)) /\ (((~((E)=0)) /\ (((pfrd_qlen_right_divisor_result)+(E)=S (pfrd_plen_right_divisor_result)))))))) /\ ((forall pfc_index_right_divisor_result_productcoefficients. (exists pfa_gap_right_divisor_result_productcoefficientsbound. pfa_gap_right_divisor_result_productcoefficientsbound + S (pfc_index_right_divisor_result_productcoefficients) = (pfrd_plen_right_divisor_result)) -> exists pfc_value_right_divisor_result_productcoefficients. ((((exists ff_h_pfp_right_divisor_result_productcoefficientsentry. ff_h_pfp_right_divisor_result_productcoefficientsentry + S (pfc_value_right_divisor_result_productcoefficients) = S ((S (pfc_index_right_divisor_result_productcoefficients)) * pfrd_pc_right_divisor_result)) /\ exists ff_q_pfp_right_divisor_result_productcoefficientsentry. pfrd_pb_right_divisor_result = ff_q_pfp_right_divisor_result_productcoefficientsentry * S ((S (pfc_index_right_divisor_result_productcoefficients)) * pfrd_pc_right_divisor_result) + (pfc_value_right_divisor_result_productcoefficients))) /\ ((exists pfc_terms_code_right_divisor_result_productcoefficientscoefficient pfc_terms_scale_right_divisor_result_productcoefficientscoefficient pfc_natural_sum_right_divisor_result_productcoefficientscoefficient. ((forall pfc_index_right_divisor_result_productcoefficientscoefficientdiagonal. (exists pfa_gap_right_divisor_result_productcoefficientscoefficientdiagonalbound. pfa_gap_right_divisor_result_productcoefficientscoefficientdiagonalbound + S (pfc_index_right_divisor_result_productcoefficientscoefficientdiagonal) = (S (pfc_index_right_divisor_result_productcoefficients))) -> exists pfc_value_right_divisor_result_productcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_right_divisor_result_productcoefficientscoefficientdiagonalentry. ff_h_pfp_right_divisor_result_productcoefficientscoefficientdiagonalentry + S (pfc_value_right_divisor_result_productcoefficientscoefficientdiagonal) = S ((S (pfc_index_right_divisor_result_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_divisor_result_productcoefficientscoefficient)) /\ exists ff_q_pfp_right_divisor_result_productcoefficientscoefficientdiagonalentry. pfc_terms_code_right_divisor_result_productcoefficientscoefficient = ff_q_pfp_right_divisor_result_productcoefficientscoefficientdiagonalentry * S ((S (pfc_index_right_divisor_result_productcoefficientscoefficientdiagonal)) * pfc_terms_scale_right_divisor_result_productcoefficientscoefficient) + (pfc_value_right_divisor_result_productcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_right_divisor_result_productcoefficientscoefficientdiagonalterm pfc_left_right_divisor_result_productcoefficientscoefficientdiagonalterm pfc_right_right_divisor_result_productcoefficientscoefficientdiagonalterm. (((pfc_index_right_divisor_result_productcoefficientscoefficientdiagonal)+pfc_complement_right_divisor_result_productcoefficientscoefficientdiagonalterm=(pfc_index_right_divisor_result_productcoefficients)) /\ ((((((exists pfa_gap_right_divisor_result_productcoefficientscoefficientdiagonaltermleftinside. pfa_gap_right_divisor_result_productcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_right_divisor_result_productcoefficientscoefficientdiagonal) = (pfrd_qlen_right_divisor_result)) /\ ((((exists ff_h_pfp_right_divisor_result_productcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_right_divisor_result_productcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_right_divisor_result_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_right_divisor_result_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_divisor_result)) /\ exists ff_q_pfp_right_divisor_result_productcoefficientscoefficientdiagonaltermleftentry. pfrd_qb_right_divisor_result = ff_q_pfp_right_divisor_result_productcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_right_divisor_result_productcoefficientscoefficientdiagonal)) * pfrd_qc_right_divisor_result) + (pfc_left_right_divisor_result_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_divisor_result_productcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_right_divisor_result_productcoefficientscoefficientdiagonaltermleftoutside+(pfrd_qlen_right_divisor_result)=(pfc_index_right_divisor_result_productcoefficientscoefficientdiagonal)) /\ (((pfc_left_right_divisor_result_productcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_right_divisor_result_productcoefficientscoefficientdiagonaltermrightinside. pfa_gap_right_divisor_result_productcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_right_divisor_result_productcoefficientscoefficientdiagonalterm) = (E)) /\ ((((exists ff_h_pfp_right_divisor_result_productcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_right_divisor_result_productcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_right_divisor_result_productcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_right_divisor_result_productcoefficientscoefficientdiagonalterm)) * ec)) /\ exists ff_q_pfp_right_divisor_result_productcoefficientscoefficientdiagonaltermrightentry. eb = ff_q_pfp_right_divisor_result_productcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_right_divisor_result_productcoefficientscoefficientdiagonalterm)) * ec) + (pfc_right_right_divisor_result_productcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_divisor_result_productcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_right_divisor_result_productcoefficientscoefficientdiagonaltermrightoutside+(E)=(pfc_complement_right_divisor_result_productcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_right_divisor_result_productcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_right_divisor_result_productcoefficientscoefficientdiagonal)=pfc_left_right_divisor_result_productcoefficientscoefficientdiagonalterm*pfc_right_right_divisor_result_productcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_right_divisor_result_productcoefficientscoefficientsum fs_v_pfc_right_divisor_result_productcoefficientscoefficientsum. ((((exists fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_start. fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_right_divisor_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_start. fs_u_pfc_right_divisor_result_productcoefficientscoefficientsum = fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_right_divisor_result_productcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_terminal. fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_right_divisor_result_productcoefficientscoefficient) = S ((S (S (pfc_index_right_divisor_result_productcoefficients))) * fs_v_pfc_right_divisor_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_terminal. fs_u_pfc_right_divisor_result_productcoefficientscoefficientsum = fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_right_divisor_result_productcoefficients))) * fs_v_pfc_right_divisor_result_productcoefficientscoefficientsum) + (pfc_natural_sum_right_divisor_result_productcoefficientscoefficient))) /\ forall fs_i_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps = S (pfc_index_right_divisor_result_productcoefficients)) -> exists fs_a_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps fs_r_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps fs_s_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_divisor_result_productcoefficientscoefficient)) /\ exists fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_right_divisor_result_productcoefficientscoefficient = fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_divisor_result_productcoefficientscoefficient) + (fs_a_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_right_divisor_result_productcoefficientscoefficientsum = fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_result_productcoefficientscoefficientsum) + (fs_r_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_result_productcoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_right_divisor_result_productcoefficientscoefficientsum = fs_q_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_result_productcoefficientscoefficientsum) + (fs_s_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps = fs_r_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps + fs_a_pfc_right_divisor_result_productcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_right_divisor_result_productcoefficientscoefficientresiduebound. pfa_gap_right_divisor_result_productcoefficientscoefficientresiduebound + S (pfc_value_right_divisor_result_productcoefficients) = (p)) /\ ((exists pfa_offset_left_right_divisor_result_productcoefficientscoefficientresiduecongruence pfa_offset_right_right_divisor_result_productcoefficientscoefficientresiduecongruence. (pfc_natural_sum_right_divisor_result_productcoefficientscoefficient) + (p) * pfa_offset_left_right_divisor_result_productcoefficientscoefficientresiduecongruence = (pfc_value_right_divisor_result_productcoefficients) + (p) * pfa_offset_right_right_divisor_result_productcoefficientscoefficientresiduecongruence))))))))))))))))))) /\ ((forall pfrep_power_right_divisor_result_target pfrep_left_right_divisor_result_target pfrep_right_right_divisor_result_target. ((exists pfrep_position_right_divisor_result_targetfirst. ((pfrep_position_right_divisor_result_targetfirst+S (pfrep_power_right_divisor_result_target)=(pfrd_plen_right_divisor_result)) /\ ((((exists ff_h_pfp_right_divisor_result_targetfirstentry. ff_h_pfp_right_divisor_result_targetfirstentry + S (pfrep_left_right_divisor_result_target) = S ((S (pfrep_position_right_divisor_result_targetfirst)) * pfrd_pc_right_divisor_result)) /\ exists ff_q_pfp_right_divisor_result_targetfirstentry. pfrd_pb_right_divisor_result = ff_q_pfp_right_divisor_result_targetfirstentry * S ((S (pfrep_position_right_divisor_result_targetfirst)) * pfrd_pc_right_divisor_result) + (pfrep_left_right_divisor_result_target)))))) \/ (((exists pfrep_gap_right_divisor_result_targetfirstoutside. pfrep_gap_right_divisor_result_targetfirstoutside+(pfrd_plen_right_divisor_result)=(pfrep_power_right_divisor_result_target)) /\ (((pfrep_left_right_divisor_result_target)=0))))) -> ((exists pfrep_position_right_divisor_result_targetsecond. ((pfrep_position_right_divisor_result_targetsecond+S (pfrep_power_right_divisor_result_target)=(L)) /\ ((((exists ff_h_pfp_right_divisor_result_targetsecondentry. ff_h_pfp_right_divisor_result_targetsecondentry + S (pfrep_right_right_divisor_result_target) = S ((S (pfrep_position_right_divisor_result_targetsecond)) * ac)) /\ exists ff_q_pfp_right_divisor_result_targetsecondentry. ab = ff_q_pfp_right_divisor_result_targetsecondentry * S ((S (pfrep_position_right_divisor_result_targetsecond)) * ac) + (pfrep_right_right_divisor_result_target)))))) \/ (((exists pfrep_gap_right_divisor_result_targetsecondoutside. pfrep_gap_right_divisor_result_targetsecondoutside+(L)=(pfrep_power_right_divisor_result_target)) /\ (((pfrep_right_right_divisor_result_target)=0))))) -> pfrep_left_right_divisor_result_target=pfrep_right_right_divisor_result_target)))))))

Constructive proof overview

Generated structural guide

An equivalent canonical right divisor preserves divisibility by constructing the quotient times the replacement at its own actual proper length. Formal output congruence, not a supplied output identity, gives the new witness.

The unchanged tactic script uses 6 declared prerequisites and contains 103 exact native proof lines.

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

Proof neighborhood

Direct dependencies

polynomial_product_length_exists Alpha theorem; checked-use authorized prime_field_polynomial_convolution_at_length_exists Alpha theorem; checked-use authorized PG0026 prime_field_polynomial_right_divides_from_product prime_field_polynomial_equivalent_transitive Alpha theorem; checked-use authorized prime_field_polynomial_equivalent_symmetric Alpha theorem; checked-use authorized prime_field_polynomial_convolution_equivalent_congruent_right Alpha theorem; checked-use authorized

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

103 script commands · 16 reading checkpoints · 3 local claims

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

Named ingredients (1)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

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 eb
  9. L9
    intro ec
  10. L10
    intro E
02Fix variables and assumptionsL11–14

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

  1. L11
    intro hp0
  2. L12
    intro hE
  3. L13
    intro hequivalent
  4. L14
    intro hdivides
03Separate the logical casesL15–22

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

  1. L15
    cases hdivides
  2. L16
    cases hdivides_right
  3. L17
    cases hdivides_right_witness
  4. L18
    cases hdivides_right_witness_witness
  5. L19
    cases hdivides_right_witness_witness_witness
  6. L20
    cases hdivides_right_witness_witness_witness_witness
  7. L21
    cases hdivides_right_witness_witness_witness_witness_witness
  8. L22
    cases hdivides_right_witness_witness_witness_witness_witness_witness
04Establish hsourceL23–24

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

  1. L23
    have hsource : FpPolyProduct(p,x,x1,x2,db,dc,D,x3,x4,x5)Definitions: FpPolyProduct
  2. L24
    exact hdivides_right_witness_witness_witness_witness_witness_witness_left
05Separate the logical casesL25–27

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

  1. L25
    cases hsource
  2. L26
    cases hsource_right
  3. L27
    cases hsource_right_right
06Establish hnew_lengthL28–31

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

  1. L28
    have hnew_length : exists n. (((((x2)=0 \/ (E)=0) /\ (((n)=0)))) \/ (((~((x2)=0)) /\ (((~((E)=0)) /\ (((x2)+(E)=S (n))))))))
  2. L29
    specialize polynomial_product_length_exists (x2)
  3. L30
    specialize polynomial_product_length_exists (E)
  4. L31
    apply polynomial_product_length_exists
07Separate the logical casesL32–32

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

  1. L32
    cases hnew_length
08Establish hnew_productL33–42

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. L33
    have hnew_product : ∃ b. ∃ c. FpPolyProduct(p,x,x1,x2,eb,ec,E,b,c,x6)Definitions: FpPolyProduct
  2. L34
    specialize prime_field_polynomial_convolution_at_length_exists (p)
  3. L35
    specialize prime_field_polynomial_convolution_at_length_exists (x)
  4. L36
    specialize prime_field_polynomial_convolution_at_length_exists (x1)
  5. L37
    specialize prime_field_polynomial_convolution_at_length_exists (x2)
  6. L38
    specialize prime_field_polynomial_convolution_at_length_exists (eb)
  7. L39
    specialize prime_field_polynomial_convolution_at_length_exists (ec)
  8. L40
    specialize prime_field_polynomial_convolution_at_length_exists (E)
  9. L41
    specialize prime_field_polynomial_convolution_at_length_exists (x6)
  10. L42
    apply prime_field_polynomial_convolution_at_length_exists
09Use earlier factsL43–46

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

  1. L43
    exact hp0
  2. L44
    exact hsource_left
  3. L45
    exact hE
  4. L46
    exact hnew_length_witness
10Separate the logical casesL47–48

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

  1. L47
    cases hnew_product
  2. L48
    cases hnew_product_witness
11Use earlier factsL49–58

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

  1. L49
    specialize prime_field_polynomial_right_divides_from_product (p)
  2. L50
    specialize prime_field_polynomial_right_divides_from_product (eb)
  3. L51
    specialize prime_field_polynomial_right_divides_from_product (ec)
  4. L52
    specialize prime_field_polynomial_right_divides_from_product (E)
  5. L53
    specialize prime_field_polynomial_right_divides_from_product (ab)
  6. L54
    specialize prime_field_polynomial_right_divides_from_product (ac)
  7. L55
    specialize prime_field_polynomial_right_divides_from_product (L)
  8. L56
    specialize prime_field_polynomial_right_divides_from_product (x)
  9. L57
    specialize prime_field_polynomial_right_divides_from_product (x1)
  10. L58
    specialize prime_field_polynomial_right_divides_from_product (x2)
12Use earlier factsL59–68

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

  1. L59
    specialize prime_field_polynomial_right_divides_from_product (x7)
  2. L60
    specialize prime_field_polynomial_right_divides_from_product (x8)
  3. L61
    specialize prime_field_polynomial_right_divides_from_product (x6)
  4. L62
    apply prime_field_polynomial_right_divides_from_product
  5. L63
    exact hdivides_left
  6. L64
    exact hnew_product_witness_witness
  7. L65
    specialize prime_field_polynomial_equivalent_transitive (x7)
  8. L66
    specialize prime_field_polynomial_equivalent_transitive (x8)
  9. L67
    specialize prime_field_polynomial_equivalent_transitive (x6)
  10. L68
    specialize prime_field_polynomial_equivalent_transitive (x3)
13Use earlier factsL69–78

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

  1. L69
    specialize prime_field_polynomial_equivalent_transitive (x4)
  2. L70
    specialize prime_field_polynomial_equivalent_transitive (x5)
  3. L71
    specialize prime_field_polynomial_equivalent_transitive (ab)
  4. L72
    specialize prime_field_polynomial_equivalent_transitive (ac)
  5. L73
    specialize prime_field_polynomial_equivalent_transitive (L)
  6. L74
    apply prime_field_polynomial_equivalent_transitive
  7. L75
    specialize prime_field_polynomial_equivalent_symmetric (x3)
  8. L76
    specialize prime_field_polynomial_equivalent_symmetric (x4)
  9. L77
    specialize prime_field_polynomial_equivalent_symmetric (x5)
  10. L78
    specialize prime_field_polynomial_equivalent_symmetric (x7)
14Use earlier factsL79–88

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

  1. L79
    specialize prime_field_polynomial_equivalent_symmetric (x8)
  2. L80
    specialize prime_field_polynomial_equivalent_symmetric (x6)
  3. L81
    apply prime_field_polynomial_equivalent_symmetric
  4. L82
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (p)
  5. L83
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x)
  6. L84
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x1)
  7. L85
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x2)
  8. L86
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (db)
  9. L87
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (dc)
  10. L88
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (D)
15Use earlier factsL89–98

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

  1. L89
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x3)
  2. L90
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x4)
  3. L91
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x5)
  4. L92
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (eb)
  5. L93
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (ec)
  6. L94
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (E)
  7. L95
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x7)
  8. L96
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x8)
  9. L97
    specialize prime_field_polynomial_convolution_equivalent_congruent_right (x6)
  10. L98
    apply prime_field_polynomial_convolution_equivalent_congruent_right
16Use earlier factsL99–103

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

  1. L99
    exact hp0
  2. L100
    exact hequivalent
  3. L101
    exact hdivides_right_witness_witness_witness_witness_witness_witness_left
  4. L102
    exact hnew_product_witness_witness
  5. L103
    exact hdivides_right_witness_witness_witness_witness_witness_witness_right

Library-wide reading audit

Original exact command ledger · 103 lines
  1. 0001intro p
  2. 0002intro db
  3. 0003intro dc
  4. 0004intro D
  5. 0005intro ab
  6. 0006intro ac
  7. 0007intro L
  8. 0008intro eb
  9. 0009intro ec
  10. 0010intro E
  11. 0011intro hp0
  12. 0012intro hE
  13. 0013intro hequivalent
  14. 0014intro hdivides
  15. 0015cases hdivides
  16. 0016cases hdivides_right
  17. 0017cases hdivides_right_witness
  18. 0018cases hdivides_right_witness_witness
  19. 0019cases hdivides_right_witness_witness_witness
  20. 0020cases hdivides_right_witness_witness_witness_witness
  21. 0021cases hdivides_right_witness_witness_witness_witness_witness
  22. 0022cases hdivides_right_witness_witness_witness_witness_witness_witness
  23. 0023have hsource : ((forall fom_index_pfp_right_divisor_source_copyleft. (exists fom_gap_pfp_right_divisor_source_copyleft_index_bound. fom_gap_pfp_right_divisor_source_copyleft_index_bound + S (fom_index_pfp_right_divisor_source_copyleft) = x2) -> exists fom_value_pfp_right_divisor_source_copyleft. ((((exists fom_beta_height_pfp_right_divisor_source_copyleft_entry. fom_beta_height_pfp_right_divisor_source_copyleft_entry + S (fom_value_pfp_right_divisor_source_copyleft) = S ((S (fom_index_pfp_right_divisor_source_copyleft)) * x1)) /\ exists fom_beta_quotient_pfp_right_divisor_source_copyleft_entry. x = fom_beta_quotient_pfp_right_divisor_source_copyleft_entry * S ((S (fom_index_pfp_right_divisor_source_copyleft)) * x1) + (fom_value_pfp_right_divisor_source_copyleft))) /\ (exists fom_gap_pfp_right_divisor_source_copyleft_value_bound. fom_gap_pfp_right_divisor_source_copyleft_value_bound + S (fom_value_pfp_right_divisor_source_copyleft) = p))) /\ (((forall fom_index_pfp_right_divisor_source_copyright. (exists fom_gap_pfp_right_divisor_source_copyright_index_bound. fom_gap_pfp_right_divisor_source_copyright_index_bound + S (fom_index_pfp_right_divisor_source_copyright) = D) -> exists fom_value_pfp_right_divisor_source_copyright. ((((exists fom_beta_height_pfp_right_divisor_source_copyright_entry. fom_beta_height_pfp_right_divisor_source_copyright_entry + S (fom_value_pfp_right_divisor_source_copyright) = S ((S (fom_index_pfp_right_divisor_source_copyright)) * dc)) /\ exists fom_beta_quotient_pfp_right_divisor_source_copyright_entry. db = fom_beta_quotient_pfp_right_divisor_source_copyright_entry * S ((S (fom_index_pfp_right_divisor_source_copyright)) * dc) + (fom_value_pfp_right_divisor_source_copyright))) /\ (exists fom_gap_pfp_right_divisor_source_copyright_value_bound. fom_gap_pfp_right_divisor_source_copyright_value_bound + S (fom_value_pfp_right_divisor_source_copyright) = p))) /\ (((((((x2)=0 \/ (D)=0) /\ (((x5)=0)))) \/ (((~((x2)=0)) /\ (((~((D)=0)) /\ (((x2)+(D)=S (x5)))))))) /\ ((forall pfc_index_right_divisor_source_copycoefficients. (exists pfa_gap_right_divisor_source_copycoefficientsbound. pfa_gap_right_divisor_source_copycoefficientsbound + S (pfc_index_right_divisor_source_copycoefficients) = (x5)) -> exists pfc_value_right_divisor_source_copycoefficients. ((((exists ff_h_pfp_right_divisor_source_copycoefficientsentry. ff_h_pfp_right_divisor_source_copycoefficientsentry + S (pfc_value_right_divisor_source_copycoefficients) = S ((S (pfc_index_right_divisor_source_copycoefficients)) * x4)) /\ exists ff_q_pfp_right_divisor_source_copycoefficientsentry. x3 = ff_q_pfp_right_divisor_source_copycoefficientsentry * S ((S (pfc_index_right_divisor_source_copycoefficients)) * x4) + (pfc_value_right_divisor_source_copycoefficients))) /\ ((exists pfc_terms_code_right_divisor_source_copycoefficientscoefficient pfc_terms_scale_right_divisor_source_copycoefficientscoefficient pfc_natural_sum_right_divisor_source_copycoefficientscoefficient. ((forall pfc_index_right_divisor_source_copycoefficientscoefficientdiagonal. (exists pfa_gap_right_divisor_source_copycoefficientscoefficientdiagonalbound. pfa_gap_right_divisor_source_copycoefficientscoefficientdiagonalbound + S (pfc_index_right_divisor_source_copycoefficientscoefficientdiagonal) = (S (pfc_index_right_divisor_source_copycoefficients))) -> exists pfc_value_right_divisor_source_copycoefficientscoefficientdiagonal. ((((exists ff_h_pfp_right_divisor_source_copycoefficientscoefficientdiagonalentry. ff_h_pfp_right_divisor_source_copycoefficientscoefficientdiagonalentry + S (pfc_value_right_divisor_source_copycoefficientscoefficientdiagonal) = S ((S (pfc_index_right_divisor_source_copycoefficientscoefficientdiagonal)) * pfc_terms_scale_right_divisor_source_copycoefficientscoefficient)) /\ exists ff_q_pfp_right_divisor_source_copycoefficientscoefficientdiagonalentry. pfc_terms_code_right_divisor_source_copycoefficientscoefficient = ff_q_pfp_right_divisor_source_copycoefficientscoefficientdiagonalentry * S ((S (pfc_index_right_divisor_source_copycoefficientscoefficientdiagonal)) * pfc_terms_scale_right_divisor_source_copycoefficientscoefficient) + (pfc_value_right_divisor_source_copycoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_right_divisor_source_copycoefficientscoefficientdiagonalterm pfc_left_right_divisor_source_copycoefficientscoefficientdiagonalterm pfc_right_right_divisor_source_copycoefficientscoefficientdiagonalterm. (((pfc_index_right_divisor_source_copycoefficientscoefficientdiagonal)+pfc_complement_right_divisor_source_copycoefficientscoefficientdiagonalterm=(pfc_index_right_divisor_source_copycoefficients)) /\ ((((((exists pfa_gap_right_divisor_source_copycoefficientscoefficientdiagonaltermleftinside. pfa_gap_right_divisor_source_copycoefficientscoefficientdiagonaltermleftinside + S (pfc_index_right_divisor_source_copycoefficientscoefficientdiagonal) = (x2)) /\ ((((exists ff_h_pfp_right_divisor_source_copycoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_right_divisor_source_copycoefficientscoefficientdiagonaltermleftentry + S (pfc_left_right_divisor_source_copycoefficientscoefficientdiagonalterm) = S ((S (pfc_index_right_divisor_source_copycoefficientscoefficientdiagonal)) * x1)) /\ exists ff_q_pfp_right_divisor_source_copycoefficientscoefficientdiagonaltermleftentry. x = ff_q_pfp_right_divisor_source_copycoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_right_divisor_source_copycoefficientscoefficientdiagonal)) * x1) + (pfc_left_right_divisor_source_copycoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_divisor_source_copycoefficientscoefficientdiagonaltermleftoutside. pfc_gap_right_divisor_source_copycoefficientscoefficientdiagonaltermleftoutside+(x2)=(pfc_index_right_divisor_source_copycoefficientscoefficientdiagonal)) /\ (((pfc_left_right_divisor_source_copycoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_right_divisor_source_copycoefficientscoefficientdiagonaltermrightinside. pfa_gap_right_divisor_source_copycoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_right_divisor_source_copycoefficientscoefficientdiagonalterm) = (D)) /\ ((((exists ff_h_pfp_right_divisor_source_copycoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_right_divisor_source_copycoefficientscoefficientdiagonaltermrightentry + S (pfc_right_right_divisor_source_copycoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_right_divisor_source_copycoefficientscoefficientdiagonalterm)) * dc)) /\ exists ff_q_pfp_right_divisor_source_copycoefficientscoefficientdiagonaltermrightentry. db = ff_q_pfp_right_divisor_source_copycoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_right_divisor_source_copycoefficientscoefficientdiagonalterm)) * dc) + (pfc_right_right_divisor_source_copycoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_right_divisor_source_copycoefficientscoefficientdiagonaltermrightoutside. pfc_gap_right_divisor_source_copycoefficientscoefficientdiagonaltermrightoutside+(D)=(pfc_complement_right_divisor_source_copycoefficientscoefficientdiagonalterm)) /\ (((pfc_right_right_divisor_source_copycoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_right_divisor_source_copycoefficientscoefficientdiagonal)=pfc_left_right_divisor_source_copycoefficientscoefficientdiagonalterm*pfc_right_right_divisor_source_copycoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_right_divisor_source_copycoefficientscoefficientsum fs_v_pfc_right_divisor_source_copycoefficientscoefficientsum. ((((exists fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_start. fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_right_divisor_source_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_start. fs_u_pfc_right_divisor_source_copycoefficientscoefficientsum = fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_right_divisor_source_copycoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_terminal. fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_right_divisor_source_copycoefficientscoefficient) = S ((S (S (pfc_index_right_divisor_source_copycoefficients))) * fs_v_pfc_right_divisor_source_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_terminal. fs_u_pfc_right_divisor_source_copycoefficientscoefficientsum = fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_right_divisor_source_copycoefficients))) * fs_v_pfc_right_divisor_source_copycoefficientscoefficientsum) + (pfc_natural_sum_right_divisor_source_copycoefficientscoefficient))) /\ forall fs_i_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps = S (pfc_index_right_divisor_source_copycoefficients)) -> exists fs_a_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps fs_r_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps fs_s_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_summand. fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_divisor_source_copycoefficientscoefficient)) /\ exists fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_summand. pfc_terms_code_right_divisor_source_copycoefficientscoefficient = fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps)) * pfc_terms_scale_right_divisor_source_copycoefficientscoefficient) + (fs_a_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_partial. fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_source_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_partial. fs_u_pfc_right_divisor_source_copycoefficientscoefficientsum = fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_source_copycoefficientscoefficientsum) + (fs_r_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_successor. fs_h_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_source_copycoefficientscoefficientsum)) /\ exists fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_successor. fs_u_pfc_right_divisor_source_copycoefficientscoefficientsum = fs_q_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps)) * fs_v_pfc_right_divisor_source_copycoefficientscoefficientsum) + (fs_s_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps = fs_r_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps + fs_a_pfc_right_divisor_source_copycoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_right_divisor_source_copycoefficientscoefficientresiduebound. pfa_gap_right_divisor_source_copycoefficientscoefficientresiduebound + S (pfc_value_right_divisor_source_copycoefficients) = (p)) /\ ((exists pfa_offset_left_right_divisor_source_copycoefficientscoefficientresiduecongruence pfa_offset_right_right_divisor_source_copycoefficientscoefficientresiduecongruence. (pfc_natural_sum_right_divisor_source_copycoefficientscoefficient) + (p) * pfa_offset_left_right_divisor_source_copycoefficientscoefficientresiduecongruence = (pfc_value_right_divisor_source_copycoefficients) + (p) * pfa_offset_right_right_divisor_source_copycoefficientscoefficientresiduecongruence))))))))))))))))))
  24. 0024exact hdivides_right_witness_witness_witness_witness_witness_witness_left
  25. 0025cases hsource
  26. 0026cases hsource_right
  27. 0027cases hsource_right_right
  28. 0028have hnew_length : exists n. (((((x2)=0 \/ (E)=0) /\ (((n)=0)))) \/ (((~((x2)=0)) /\ (((~((E)=0)) /\ (((x2)+(E)=S (n))))))))
  29. 0029specialize polynomial_product_length_exists (x2)
  30. 0030specialize polynomial_product_length_exists (E)
  31. 0031apply polynomial_product_length_exists
  32. 0032cases hnew_length
  33. 0033have hnew_product : exists b c. (((forall fom_index_pfp_hnew_graphleft. (exists fom_gap_pfp_hnew_graphleft_index_bound. fom_gap_pfp_hnew_graphleft_index_bound + S (fom_index_pfp_hnew_graphleft) = x2) -> exists fom_value_pfp_hnew_graphleft. ((((exists fom_beta_height_pfp_hnew_graphleft_entry. fom_beta_height_pfp_hnew_graphleft_entry + S (fom_value_pfp_hnew_graphleft) = S ((S (fom_index_pfp_hnew_graphleft)) * x1)) /\ exists fom_beta_quotient_pfp_hnew_graphleft_entry. x = fom_beta_quotient_pfp_hnew_graphleft_entry * S ((S (fom_index_pfp_hnew_graphleft)) * x1) + (fom_value_pfp_hnew_graphleft))) /\ (exists fom_gap_pfp_hnew_graphleft_value_bound. fom_gap_pfp_hnew_graphleft_value_bound + S (fom_value_pfp_hnew_graphleft) = p))) /\ (((forall fom_index_pfp_hnew_graphright. (exists fom_gap_pfp_hnew_graphright_index_bound. fom_gap_pfp_hnew_graphright_index_bound + S (fom_index_pfp_hnew_graphright) = E) -> exists fom_value_pfp_hnew_graphright. ((((exists fom_beta_height_pfp_hnew_graphright_entry. fom_beta_height_pfp_hnew_graphright_entry + S (fom_value_pfp_hnew_graphright) = S ((S (fom_index_pfp_hnew_graphright)) * ec)) /\ exists fom_beta_quotient_pfp_hnew_graphright_entry. eb = fom_beta_quotient_pfp_hnew_graphright_entry * S ((S (fom_index_pfp_hnew_graphright)) * ec) + (fom_value_pfp_hnew_graphright))) /\ (exists fom_gap_pfp_hnew_graphright_value_bound. fom_gap_pfp_hnew_graphright_value_bound + S (fom_value_pfp_hnew_graphright) = p))) /\ (((((((x2)=0 \/ (E)=0) /\ (((x6)=0)))) \/ (((~((x2)=0)) /\ (((~((E)=0)) /\ (((x2)+(E)=S (x6)))))))) /\ ((forall pfc_index_hnew_graphcoefficients. (exists pfa_gap_hnew_graphcoefficientsbound. pfa_gap_hnew_graphcoefficientsbound + S (pfc_index_hnew_graphcoefficients) = (x6)) -> exists pfc_value_hnew_graphcoefficients. ((((exists ff_h_pfp_hnew_graphcoefficientsentry. ff_h_pfp_hnew_graphcoefficientsentry + S (pfc_value_hnew_graphcoefficients) = S ((S (pfc_index_hnew_graphcoefficients)) * c)) /\ exists ff_q_pfp_hnew_graphcoefficientsentry. b = ff_q_pfp_hnew_graphcoefficientsentry * S ((S (pfc_index_hnew_graphcoefficients)) * c) + (pfc_value_hnew_graphcoefficients))) /\ ((exists pfc_terms_code_hnew_graphcoefficientscoefficient pfc_terms_scale_hnew_graphcoefficientscoefficient pfc_natural_sum_hnew_graphcoefficientscoefficient. ((forall pfc_index_hnew_graphcoefficientscoefficientdiagonal. (exists pfa_gap_hnew_graphcoefficientscoefficientdiagonalbound. pfa_gap_hnew_graphcoefficientscoefficientdiagonalbound + S (pfc_index_hnew_graphcoefficientscoefficientdiagonal) = (S (pfc_index_hnew_graphcoefficients))) -> exists pfc_value_hnew_graphcoefficientscoefficientdiagonal. ((((exists ff_h_pfp_hnew_graphcoefficientscoefficientdiagonalentry. ff_h_pfp_hnew_graphcoefficientscoefficientdiagonalentry + S (pfc_value_hnew_graphcoefficientscoefficientdiagonal) = S ((S (pfc_index_hnew_graphcoefficientscoefficientdiagonal)) * pfc_terms_scale_hnew_graphcoefficientscoefficient)) /\ exists ff_q_pfp_hnew_graphcoefficientscoefficientdiagonalentry. pfc_terms_code_hnew_graphcoefficientscoefficient = ff_q_pfp_hnew_graphcoefficientscoefficientdiagonalentry * S ((S (pfc_index_hnew_graphcoefficientscoefficientdiagonal)) * pfc_terms_scale_hnew_graphcoefficientscoefficient) + (pfc_value_hnew_graphcoefficientscoefficientdiagonal))) /\ ((exists pfc_complement_hnew_graphcoefficientscoefficientdiagonalterm pfc_left_hnew_graphcoefficientscoefficientdiagonalterm pfc_right_hnew_graphcoefficientscoefficientdiagonalterm. (((pfc_index_hnew_graphcoefficientscoefficientdiagonal)+pfc_complement_hnew_graphcoefficientscoefficientdiagonalterm=(pfc_index_hnew_graphcoefficients)) /\ ((((((exists pfa_gap_hnew_graphcoefficientscoefficientdiagonaltermleftinside. pfa_gap_hnew_graphcoefficientscoefficientdiagonaltermleftinside + S (pfc_index_hnew_graphcoefficientscoefficientdiagonal) = (x2)) /\ ((((exists ff_h_pfp_hnew_graphcoefficientscoefficientdiagonaltermleftentry. ff_h_pfp_hnew_graphcoefficientscoefficientdiagonaltermleftentry + S (pfc_left_hnew_graphcoefficientscoefficientdiagonalterm) = S ((S (pfc_index_hnew_graphcoefficientscoefficientdiagonal)) * x1)) /\ exists ff_q_pfp_hnew_graphcoefficientscoefficientdiagonaltermleftentry. x = ff_q_pfp_hnew_graphcoefficientscoefficientdiagonaltermleftentry * S ((S (pfc_index_hnew_graphcoefficientscoefficientdiagonal)) * x1) + (pfc_left_hnew_graphcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_hnew_graphcoefficientscoefficientdiagonaltermleftoutside. pfc_gap_hnew_graphcoefficientscoefficientdiagonaltermleftoutside+(x2)=(pfc_index_hnew_graphcoefficientscoefficientdiagonal)) /\ (((pfc_left_hnew_graphcoefficientscoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_hnew_graphcoefficientscoefficientdiagonaltermrightinside. pfa_gap_hnew_graphcoefficientscoefficientdiagonaltermrightinside + S (pfc_complement_hnew_graphcoefficientscoefficientdiagonalterm) = (E)) /\ ((((exists ff_h_pfp_hnew_graphcoefficientscoefficientdiagonaltermrightentry. ff_h_pfp_hnew_graphcoefficientscoefficientdiagonaltermrightentry + S (pfc_right_hnew_graphcoefficientscoefficientdiagonalterm) = S ((S (pfc_complement_hnew_graphcoefficientscoefficientdiagonalterm)) * ec)) /\ exists ff_q_pfp_hnew_graphcoefficientscoefficientdiagonaltermrightentry. eb = ff_q_pfp_hnew_graphcoefficientscoefficientdiagonaltermrightentry * S ((S (pfc_complement_hnew_graphcoefficientscoefficientdiagonalterm)) * ec) + (pfc_right_hnew_graphcoefficientscoefficientdiagonalterm)))))) \/ (((exists pfc_gap_hnew_graphcoefficientscoefficientdiagonaltermrightoutside. pfc_gap_hnew_graphcoefficientscoefficientdiagonaltermrightoutside+(E)=(pfc_complement_hnew_graphcoefficientscoefficientdiagonalterm)) /\ (((pfc_right_hnew_graphcoefficientscoefficientdiagonalterm)=0))))) /\ (((pfc_value_hnew_graphcoefficientscoefficientdiagonal)=pfc_left_hnew_graphcoefficientscoefficientdiagonalterm*pfc_right_hnew_graphcoefficientscoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_hnew_graphcoefficientscoefficientsum fs_v_pfc_hnew_graphcoefficientscoefficientsum. ((((exists fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_start. fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_hnew_graphcoefficientscoefficientsum)) /\ exists fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_start. fs_u_pfc_hnew_graphcoefficientscoefficientsum = fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_start * S ((S (0)) * fs_v_pfc_hnew_graphcoefficientscoefficientsum) + (0))) /\ ((((exists fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_terminal. fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_terminal + S (pfc_natural_sum_hnew_graphcoefficientscoefficient) = S ((S (S (pfc_index_hnew_graphcoefficients))) * fs_v_pfc_hnew_graphcoefficientscoefficientsum)) /\ exists fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_terminal. fs_u_pfc_hnew_graphcoefficientscoefficientsum = fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_terminal * S ((S (S (pfc_index_hnew_graphcoefficients))) * fs_v_pfc_hnew_graphcoefficientscoefficientsum) + (pfc_natural_sum_hnew_graphcoefficientscoefficient))) /\ forall fs_i_pfc_hnew_graphcoefficientscoefficientsum_body_steps. (exists fs_lt_pfc_hnew_graphcoefficientscoefficientsum_body_steps_bound. fs_lt_pfc_hnew_graphcoefficientscoefficientsum_body_steps_bound + S fs_i_pfc_hnew_graphcoefficientscoefficientsum_body_steps = S (pfc_index_hnew_graphcoefficients)) -> exists fs_a_pfc_hnew_graphcoefficientscoefficientsum_body_steps fs_r_pfc_hnew_graphcoefficientscoefficientsum_body_steps fs_s_pfc_hnew_graphcoefficientscoefficientsum_body_steps. ((((exists fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_steps_summand. fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_steps_summand + S (fs_a_pfc_hnew_graphcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_hnew_graphcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_hnew_graphcoefficientscoefficient)) /\ exists fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_steps_summand. pfc_terms_code_hnew_graphcoefficientscoefficient = fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_steps_summand * S ((S (fs_i_pfc_hnew_graphcoefficientscoefficientsum_body_steps)) * pfc_terms_scale_hnew_graphcoefficientscoefficient) + (fs_a_pfc_hnew_graphcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_steps_partial. fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_steps_partial + S (fs_r_pfc_hnew_graphcoefficientscoefficientsum_body_steps) = S ((S (fs_i_pfc_hnew_graphcoefficientscoefficientsum_body_steps)) * fs_v_pfc_hnew_graphcoefficientscoefficientsum)) /\ exists fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_steps_partial. fs_u_pfc_hnew_graphcoefficientscoefficientsum = fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_steps_partial * S ((S (fs_i_pfc_hnew_graphcoefficientscoefficientsum_body_steps)) * fs_v_pfc_hnew_graphcoefficientscoefficientsum) + (fs_r_pfc_hnew_graphcoefficientscoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_steps_successor. fs_h_pfc_hnew_graphcoefficientscoefficientsum_body_steps_successor + S (fs_s_pfc_hnew_graphcoefficientscoefficientsum_body_steps) = S ((S (S fs_i_pfc_hnew_graphcoefficientscoefficientsum_body_steps)) * fs_v_pfc_hnew_graphcoefficientscoefficientsum)) /\ exists fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_steps_successor. fs_u_pfc_hnew_graphcoefficientscoefficientsum = fs_q_pfc_hnew_graphcoefficientscoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_hnew_graphcoefficientscoefficientsum_body_steps)) * fs_v_pfc_hnew_graphcoefficientscoefficientsum) + (fs_s_pfc_hnew_graphcoefficientscoefficientsum_body_steps))) /\ fs_s_pfc_hnew_graphcoefficientscoefficientsum_body_steps = fs_r_pfc_hnew_graphcoefficientscoefficientsum_body_steps + fs_a_pfc_hnew_graphcoefficientscoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_hnew_graphcoefficientscoefficientresiduebound. pfa_gap_hnew_graphcoefficientscoefficientresiduebound + S (pfc_value_hnew_graphcoefficients) = (p)) /\ ((exists pfa_offset_left_hnew_graphcoefficientscoefficientresiduecongruence pfa_offset_right_hnew_graphcoefficientscoefficientresiduecongruence. (pfc_natural_sum_hnew_graphcoefficientscoefficient) + (p) * pfa_offset_left_hnew_graphcoefficientscoefficientresiduecongruence = (pfc_value_hnew_graphcoefficients) + (p) * pfa_offset_right_hnew_graphcoefficientscoefficientresiduecongruence)))))))))))))))))))
  34. 0034specialize prime_field_polynomial_convolution_at_length_exists (p)
  35. 0035specialize prime_field_polynomial_convolution_at_length_exists (x)
  36. 0036specialize prime_field_polynomial_convolution_at_length_exists (x1)
  37. 0037specialize prime_field_polynomial_convolution_at_length_exists (x2)
  38. 0038specialize prime_field_polynomial_convolution_at_length_exists (eb)
  39. 0039specialize prime_field_polynomial_convolution_at_length_exists (ec)
  40. 0040specialize prime_field_polynomial_convolution_at_length_exists (E)
  41. 0041specialize prime_field_polynomial_convolution_at_length_exists (x6)
  42. 0042apply prime_field_polynomial_convolution_at_length_exists
  43. 0043exact hp0
  44. 0044exact hsource_left
  45. 0045exact hE
  46. 0046exact hnew_length_witness
  47. 0047cases hnew_product
  48. 0048cases hnew_product_witness
  49. 0049specialize prime_field_polynomial_right_divides_from_product (p)
  50. 0050specialize prime_field_polynomial_right_divides_from_product (eb)
  51. 0051specialize prime_field_polynomial_right_divides_from_product (ec)
  52. 0052specialize prime_field_polynomial_right_divides_from_product (E)
  53. 0053specialize prime_field_polynomial_right_divides_from_product (ab)
  54. 0054specialize prime_field_polynomial_right_divides_from_product (ac)
  55. 0055specialize prime_field_polynomial_right_divides_from_product (L)
  56. 0056specialize prime_field_polynomial_right_divides_from_product (x)
  57. 0057specialize prime_field_polynomial_right_divides_from_product (x1)
  58. 0058specialize prime_field_polynomial_right_divides_from_product (x2)
  59. 0059specialize prime_field_polynomial_right_divides_from_product (x7)
  60. 0060specialize prime_field_polynomial_right_divides_from_product (x8)
  61. 0061specialize prime_field_polynomial_right_divides_from_product (x6)
  62. 0062apply prime_field_polynomial_right_divides_from_product
  63. 0063exact hdivides_left
  64. 0064exact hnew_product_witness_witness
  65. 0065specialize prime_field_polynomial_equivalent_transitive (x7)
  66. 0066specialize prime_field_polynomial_equivalent_transitive (x8)
  67. 0067specialize prime_field_polynomial_equivalent_transitive (x6)
  68. 0068specialize prime_field_polynomial_equivalent_transitive (x3)
  69. 0069specialize prime_field_polynomial_equivalent_transitive (x4)
  70. 0070specialize prime_field_polynomial_equivalent_transitive (x5)
  71. 0071specialize prime_field_polynomial_equivalent_transitive (ab)
  72. 0072specialize prime_field_polynomial_equivalent_transitive (ac)
  73. 0073specialize prime_field_polynomial_equivalent_transitive (L)
  74. 0074apply prime_field_polynomial_equivalent_transitive
  75. 0075specialize prime_field_polynomial_equivalent_symmetric (x3)
  76. 0076specialize prime_field_polynomial_equivalent_symmetric (x4)
  77. 0077specialize prime_field_polynomial_equivalent_symmetric (x5)
  78. 0078specialize prime_field_polynomial_equivalent_symmetric (x7)
  79. 0079specialize prime_field_polynomial_equivalent_symmetric (x8)
  80. 0080specialize prime_field_polynomial_equivalent_symmetric (x6)
  81. 0081apply prime_field_polynomial_equivalent_symmetric
  82. 0082specialize prime_field_polynomial_convolution_equivalent_congruent_right (p)
  83. 0083specialize prime_field_polynomial_convolution_equivalent_congruent_right (x)
  84. 0084specialize prime_field_polynomial_convolution_equivalent_congruent_right (x1)
  85. 0085specialize prime_field_polynomial_convolution_equivalent_congruent_right (x2)
  86. 0086specialize prime_field_polynomial_convolution_equivalent_congruent_right (db)
  87. 0087specialize prime_field_polynomial_convolution_equivalent_congruent_right (dc)
  88. 0088specialize prime_field_polynomial_convolution_equivalent_congruent_right (D)
  89. 0089specialize prime_field_polynomial_convolution_equivalent_congruent_right (x3)
  90. 0090specialize prime_field_polynomial_convolution_equivalent_congruent_right (x4)
  91. 0091specialize prime_field_polynomial_convolution_equivalent_congruent_right (x5)
  92. 0092specialize prime_field_polynomial_convolution_equivalent_congruent_right (eb)
  93. 0093specialize prime_field_polynomial_convolution_equivalent_congruent_right (ec)
  94. 0094specialize prime_field_polynomial_convolution_equivalent_congruent_right (E)
  95. 0095specialize prime_field_polynomial_convolution_equivalent_congruent_right (x7)
  96. 0096specialize prime_field_polynomial_convolution_equivalent_congruent_right (x8)
  97. 0097specialize prime_field_polynomial_convolution_equivalent_congruent_right (x6)
  98. 0098apply prime_field_polynomial_convolution_equivalent_congruent_right
  99. 0099exact hp0
  100. 0100exact hequivalent
  101. 0101exact hdivides_right_witness_witness_witness_witness_witness_witness_left
  102. 0102exact hnew_product_witness_witness
  103. 0103exact hdivides_right_witness_witness_witness_witness_witness_witness_right