PG002B

prime_field_polynomial_right_divides_equivalent_divisor

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.

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. ∀ eb. ∀ ec. ∀ E. ¬p = 0 → BetaPrefixInto(eb,ec,E,p)PolynomialEquivalent(db,dc,D,eb,ec,E)FpPolynomialRightDivides(p,db,dc,D,ab,ac,L)FpPolynomialRightDivides(p,eb,ec,E,ab,ac,L)

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 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)))))))

Complete tactic proof in conservative notation

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

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.

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 (1)
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(p,x,x1,x2,db,dc,D,x3,x4,x5)Original native command in the exact edition
  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 : ∃ n. PolynomialProductLength(x2,E,n)Definitions: PolynomialProductLength(x2,E,n)Original native command in the exact edition
  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(p,x,x1,x2,eb,ec,E,b,c,x6)Original native command in the exact edition
  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 defined 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 : FpPolyProduct(p,x,x1,x2,db,dc,D,x3,x4,x5)
  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 : ∃ n. PolynomialProductLength(x2,E,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 : ∃ b. ∃ c. FpPolyProduct(p,x,x1,x2,eb,ec,E,b,c,x6)
  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