Construct the actual ambient product, residual and normalized trim as a separate stage; none is supplied as an oracle or identity premise.
Alpha v34 checked-use · first admitted v33 · 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.
Coefficients are highest-degree-first. The divisor has a nonzero decoded head; primality supplies its actual inverse. Empty quotients and remainders are included. Functionality compares the constructed execution lengths and decoded coefficients, never arbitrary beta codes. Formal polynomial equivalence compares every coefficient, not evaluations on a finite field. The formal identity and remainder-degree bound are proved separately, not assumed by the execution graph. Arbitrary quotient/remainder-pair uniqueness from a formal identity, multiplication associativity, gcd/Bezout, irreducible-polynomial existence, and the full G091 prime-power-field goal remain open. The seven displayed new names are conservative first-order notation, not new kernel primitives.
forall p ab ac L bb bc d qb qc q. (~((p) = 1) /\ forall pfa_factor_left_division_residual_data_prime pfa_factor_right_division_residual_data_prime. (p) = pfa_factor_left_division_residual_data_prime * pfa_factor_right_division_residual_data_prime -> pfa_factor_left_division_residual_data_prime = 1 \/ pfa_factor_right_division_residual_data_prime = 1) -> (forall fom_index_pfp_division_residual_data_input. (exists fom_gap_pfp_division_residual_data_input_index_bound. fom_gap_pfp_division_residual_data_input_index_bound + S (fom_index_pfp_division_residual_data_input) = L) -> exists fom_value_pfp_division_residual_data_input. ((((exists fom_beta_height_pfp_division_residual_data_input_entry. fom_beta_height_pfp_division_residual_data_input_entry + S (fom_value_pfp_division_residual_data_input) = S ((S (fom_index_pfp_division_residual_data_input)) * ac)) /\ exists fom_beta_quotient_pfp_division_residual_data_input_entry. ab = fom_beta_quotient_pfp_division_residual_data_input_entry * S ((S (fom_index_pfp_division_residual_data_input)) * ac) + (fom_value_pfp_division_residual_data_input))) /\ (exists fom_gap_pfp_division_residual_data_input_value_bound. fom_gap_pfp_division_residual_data_input_value_bound + S (fom_value_pfp_division_residual_data_input) = p))) -> exists pb pc ub uc t rb rc R. (((forall pfc_index_division_residual_data_resultproduct. (exists pfa_gap_division_residual_data_resultproductbound. pfa_gap_division_residual_data_resultproductbound + S (pfc_index_division_residual_data_resultproduct) = (L)) -> exists pfc_value_division_residual_data_resultproduct. ((((exists ff_h_pfp_division_residual_data_resultproductentry. ff_h_pfp_division_residual_data_resultproductentry + S (pfc_value_division_residual_data_resultproduct) = S ((S (pfc_index_division_residual_data_resultproduct)) * pc)) /\ exists ff_q_pfp_division_residual_data_resultproductentry. pb = ff_q_pfp_division_residual_data_resultproductentry * S ((S (pfc_index_division_residual_data_resultproduct)) * pc) + (pfc_value_division_residual_data_resultproduct))) /\ ((exists pfc_terms_code_division_residual_data_resultproductcoefficient pfc_terms_scale_division_residual_data_resultproductcoefficient pfc_natural_sum_division_residual_data_resultproductcoefficient. ((forall pfc_index_division_residual_data_resultproductcoefficientdiagonal. (exists pfa_gap_division_residual_data_resultproductcoefficientdiagonalbound. pfa_gap_division_residual_data_resultproductcoefficientdiagonalbound + S (pfc_index_division_residual_data_resultproductcoefficientdiagonal) = (S (pfc_index_division_residual_data_resultproduct))) -> exists pfc_value_division_residual_data_resultproductcoefficientdiagonal. ((((exists ff_h_pfp_division_residual_data_resultproductcoefficientdiagonalentry. ff_h_pfp_division_residual_data_resultproductcoefficientdiagonalentry + S (pfc_value_division_residual_data_resultproductcoefficientdiagonal) = S ((S (pfc_index_division_residual_data_resultproductcoefficientdiagonal)) * pfc_terms_scale_division_residual_data_resultproductcoefficient)) /\ exists ff_q_pfp_division_residual_data_resultproductcoefficientdiagonalentry. pfc_terms_code_division_residual_data_resultproductcoefficient = ff_q_pfp_division_residual_data_resultproductcoefficientdiagonalentry * S ((S (pfc_index_division_residual_data_resultproductcoefficientdiagonal)) * pfc_terms_scale_division_residual_data_resultproductcoefficient) + (pfc_value_division_residual_data_resultproductcoefficientdiagonal))) /\ ((exists pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm pfc_left_division_residual_data_resultproductcoefficientdiagonalterm pfc_right_division_residual_data_resultproductcoefficientdiagonalterm. (((pfc_index_division_residual_data_resultproductcoefficientdiagonal)+pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm=(pfc_index_division_residual_data_resultproduct)) /\ ((((((exists pfa_gap_division_residual_data_resultproductcoefficientdiagonaltermleftinside. pfa_gap_division_residual_data_resultproductcoefficientdiagonaltermleftinside + S (pfc_index_division_residual_data_resultproductcoefficientdiagonal) = (q)) /\ ((((exists ff_h_pfp_division_residual_data_resultproductcoefficientdiagonaltermleftentry. ff_h_pfp_division_residual_data_resultproductcoefficientdiagonaltermleftentry + S (pfc_left_division_residual_data_resultproductcoefficientdiagonalterm) = S ((S (pfc_index_division_residual_data_resultproductcoefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_residual_data_resultproductcoefficientdiagonaltermleftentry. qb = ff_q_pfp_division_residual_data_resultproductcoefficientdiagonaltermleftentry * S ((S (pfc_index_division_residual_data_resultproductcoefficientdiagonal)) * qc) + (pfc_left_division_residual_data_resultproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_residual_data_resultproductcoefficientdiagonaltermleftoutside. pfc_gap_division_residual_data_resultproductcoefficientdiagonaltermleftoutside+(q)=(pfc_index_division_residual_data_resultproductcoefficientdiagonal)) /\ (((pfc_left_division_residual_data_resultproductcoefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_residual_data_resultproductcoefficientdiagonaltermrightinside. pfa_gap_division_residual_data_resultproductcoefficientdiagonaltermrightinside + S (pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm) = (S (d))) /\ ((((exists ff_h_pfp_division_residual_data_resultproductcoefficientdiagonaltermrightentry. ff_h_pfp_division_residual_data_resultproductcoefficientdiagonaltermrightentry + S (pfc_right_division_residual_data_resultproductcoefficientdiagonalterm) = S ((S (pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_residual_data_resultproductcoefficientdiagonaltermrightentry. bb = ff_q_pfp_division_residual_data_resultproductcoefficientdiagonaltermrightentry * S ((S (pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm)) * bc) + (pfc_right_division_residual_data_resultproductcoefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_residual_data_resultproductcoefficientdiagonaltermrightoutside. pfc_gap_division_residual_data_resultproductcoefficientdiagonaltermrightoutside+(S (d))=(pfc_complement_division_residual_data_resultproductcoefficientdiagonalterm)) /\ (((pfc_right_division_residual_data_resultproductcoefficientdiagonalterm)=0))))) /\ (((pfc_value_division_residual_data_resultproductcoefficientdiagonal)=pfc_left_division_residual_data_resultproductcoefficientdiagonalterm*pfc_right_division_residual_data_resultproductcoefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_residual_data_resultproductcoefficientsum fs_v_pfc_division_residual_data_resultproductcoefficientsum. ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_start. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_start. fs_u_pfc_division_residual_data_resultproductcoefficientsum = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_terminal. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_terminal + S (pfc_natural_sum_division_residual_data_resultproductcoefficient) = S ((S (S (pfc_index_division_residual_data_resultproduct))) * fs_v_pfc_division_residual_data_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_terminal. fs_u_pfc_division_residual_data_resultproductcoefficientsum = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_terminal * S ((S (S (pfc_index_division_residual_data_resultproduct))) * fs_v_pfc_division_residual_data_resultproductcoefficientsum) + (pfc_natural_sum_division_residual_data_resultproductcoefficient))) /\ forall fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps. (exists fs_lt_pfc_division_residual_data_resultproductcoefficientsum_body_steps_bound. fs_lt_pfc_division_residual_data_resultproductcoefficientsum_body_steps_bound + S fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps = S (pfc_index_division_residual_data_resultproduct)) -> exists fs_a_pfc_division_residual_data_resultproductcoefficientsum_body_steps fs_r_pfc_division_residual_data_resultproductcoefficientsum_body_steps fs_s_pfc_division_residual_data_resultproductcoefficientsum_body_steps. ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_summand. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_summand + S (fs_a_pfc_division_residual_data_resultproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * pfc_terms_scale_division_residual_data_resultproductcoefficient)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_summand. pfc_terms_code_division_residual_data_resultproductcoefficient = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * pfc_terms_scale_division_residual_data_resultproductcoefficient) + (fs_a_pfc_division_residual_data_resultproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_partial. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_partial + S (fs_r_pfc_division_residual_data_resultproductcoefficientsum_body_steps) = S ((S (fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_partial. fs_u_pfc_division_residual_data_resultproductcoefficientsum = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum) + (fs_r_pfc_division_residual_data_resultproductcoefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_successor. fs_h_pfc_division_residual_data_resultproductcoefficientsum_body_steps_successor + S (fs_s_pfc_division_residual_data_resultproductcoefficientsum_body_steps) = S ((S (S fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum)) /\ exists fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_successor. fs_u_pfc_division_residual_data_resultproductcoefficientsum = fs_q_pfc_division_residual_data_resultproductcoefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_residual_data_resultproductcoefficientsum_body_steps)) * fs_v_pfc_division_residual_data_resultproductcoefficientsum) + (fs_s_pfc_division_residual_data_resultproductcoefficientsum_body_steps))) /\ fs_s_pfc_division_residual_data_resultproductcoefficientsum_body_steps = fs_r_pfc_division_residual_data_resultproductcoefficientsum_body_steps + fs_a_pfc_division_residual_data_resultproductcoefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_residual_data_resultproductcoefficientresiduebound. pfa_gap_division_residual_data_resultproductcoefficientresiduebound + S (pfc_value_division_residual_data_resultproduct) = (p)) /\ ((exists pfa_offset_left_division_residual_data_resultproductcoefficientresiduecongruence pfa_offset_right_division_residual_data_resultproductcoefficientresiduecongruence. (pfc_natural_sum_division_residual_data_resultproductcoefficient) + (p) * pfa_offset_left_division_residual_data_resultproductcoefficientresiduecongruence = (pfc_value_division_residual_data_resultproduct) + (p) * pfa_offset_right_division_residual_data_resultproductcoefficientresiduecongruence)))))))))))) /\ (((forall pfs_index_division_residual_data_resultdifference. (exists pfa_gap_division_residual_data_resultdifferenceindex. pfa_gap_division_residual_data_resultdifferenceindex + S (pfs_index_division_residual_data_resultdifference) = (L)) -> exists pfs_left_division_residual_data_resultdifference pfs_right_division_residual_data_resultdifference pfs_result_division_residual_data_resultdifference. ((((exists ff_h_pfp_division_residual_data_resultdifferenceleft. ff_h_pfp_division_residual_data_resultdifferenceleft + S (pfs_left_division_residual_data_resultdifference) = S ((S (pfs_index_division_residual_data_resultdifference)) * ac)) /\ exists ff_q_pfp_division_residual_data_resultdifferenceleft. ab = ff_q_pfp_division_residual_data_resultdifferenceleft * S ((S (pfs_index_division_residual_data_resultdifference)) * ac) + (pfs_left_division_residual_data_resultdifference))) /\ (((((exists ff_h_pfp_division_residual_data_resultdifferenceright. ff_h_pfp_division_residual_data_resultdifferenceright + S (pfs_right_division_residual_data_resultdifference) = S ((S (pfs_index_division_residual_data_resultdifference)) * pc)) /\ exists ff_q_pfp_division_residual_data_resultdifferenceright. pb = ff_q_pfp_division_residual_data_resultdifferenceright * S ((S (pfs_index_division_residual_data_resultdifference)) * pc) + (pfs_right_division_residual_data_resultdifference))) /\ (((((exists ff_h_pfp_division_residual_data_resultdifferenceresult. ff_h_pfp_division_residual_data_resultdifferenceresult + S (pfs_result_division_residual_data_resultdifference) = S ((S (pfs_index_division_residual_data_resultdifference)) * uc)) /\ exists ff_q_pfp_division_residual_data_resultdifferenceresult. ub = ff_q_pfp_division_residual_data_resultdifferenceresult * S ((S (pfs_index_division_residual_data_resultdifference)) * uc) + (pfs_result_division_residual_data_resultdifference))) /\ ((((exists pfa_gap_division_residual_data_resultdifferenceoperationleft. pfa_gap_division_residual_data_resultdifferenceoperationleft + S (pfs_right_division_residual_data_resultdifference) = (p)) /\ (((exists pfa_gap_division_residual_data_resultdifferenceoperationright. pfa_gap_division_residual_data_resultdifferenceoperationright + S (pfs_result_division_residual_data_resultdifference) = (p)) /\ ((((exists pfa_gap_division_residual_data_resultdifferenceoperationresultbound. pfa_gap_division_residual_data_resultdifferenceoperationresultbound + S (pfs_left_division_residual_data_resultdifference) = (p)) /\ ((exists pfa_offset_left_division_residual_data_resultdifferenceoperationresultcongruence pfa_offset_right_division_residual_data_resultdifferenceoperationresultcongruence. ((pfs_right_division_residual_data_resultdifference) + (pfs_result_division_residual_data_resultdifference)) + (p) * pfa_offset_left_division_residual_data_resultdifferenceoperationresultcongruence = (pfs_left_division_residual_data_resultdifference) + (p) * pfa_offset_right_division_residual_data_resultdifferenceoperationresultcongruence)))))))))))))))) /\ (((((L)=(t)+(R)) /\ (((forall fom_index_pfp_division_residual_data_resulttriminput. (exists fom_gap_pfp_division_residual_data_resulttriminput_index_bound. fom_gap_pfp_division_residual_data_resulttriminput_index_bound + S (fom_index_pfp_division_residual_data_resulttriminput) = L) -> exists fom_value_pfp_division_residual_data_resulttriminput. ((((exists fom_beta_height_pfp_division_residual_data_resulttriminput_entry. fom_beta_height_pfp_division_residual_data_resulttriminput_entry + S (fom_value_pfp_division_residual_data_resulttriminput) = S ((S (fom_index_pfp_division_residual_data_resulttriminput)) * uc)) /\ exists fom_beta_quotient_pfp_division_residual_data_resulttriminput_entry. ub = fom_beta_quotient_pfp_division_residual_data_resulttriminput_entry * S ((S (fom_index_pfp_division_residual_data_resulttriminput)) * uc) + (fom_value_pfp_division_residual_data_resulttriminput))) /\ (exists fom_gap_pfp_division_residual_data_resulttriminput_value_bound. fom_gap_pfp_division_residual_data_resulttriminput_value_bound + S (fom_value_pfp_division_residual_data_resulttriminput) = p))) /\ (((forall pfp_repeat_index_division_residual_data_resulttrimremoved. (exists pfa_gap_division_residual_data_resulttrimremovedindex. pfa_gap_division_residual_data_resulttrimremovedindex + S (pfp_repeat_index_division_residual_data_resulttrimremoved) = (t)) -> (((exists ff_h_pfp_division_residual_data_resulttrimremovedentry. ff_h_pfp_division_residual_data_resulttrimremovedentry + S (0) = S ((S (pfp_repeat_index_division_residual_data_resulttrimremoved)) * uc)) /\ exists ff_q_pfp_division_residual_data_resulttrimremovedentry. ub = ff_q_pfp_division_residual_data_resulttrimremovedentry * S ((S (pfp_repeat_index_division_residual_data_resulttrimremoved)) * uc) + (0)))) /\ (((forall pftrim_index_division_residual_data_resulttrimsuffix pftrim_value_division_residual_data_resulttrimsuffix. (exists pfa_gap_division_residual_data_resulttrimsuffixbound. pfa_gap_division_residual_data_resulttrimsuffixbound + S (pftrim_index_division_residual_data_resulttrimsuffix) = (R)) -> (((exists ff_h_pfp_division_residual_data_resulttrimsuffixsource. ff_h_pfp_division_residual_data_resulttrimsuffixsource + S (pftrim_value_division_residual_data_resulttrimsuffix) = S ((S ((t)+pftrim_index_division_residual_data_resulttrimsuffix)) * uc)) /\ exists ff_q_pfp_division_residual_data_resulttrimsuffixsource. ub = ff_q_pfp_division_residual_data_resulttrimsuffixsource * S ((S ((t)+pftrim_index_division_residual_data_resulttrimsuffix)) * uc) + (pftrim_value_division_residual_data_resulttrimsuffix))) -> (((exists ff_h_pfp_division_residual_data_resulttrimsuffixoutput. ff_h_pfp_division_residual_data_resulttrimsuffixoutput + S (pftrim_value_division_residual_data_resulttrimsuffix) = S ((S (pftrim_index_division_residual_data_resulttrimsuffix)) * rc)) /\ exists ff_q_pfp_division_residual_data_resulttrimsuffixoutput. rb = ff_q_pfp_division_residual_data_resulttrimsuffixoutput * S ((S (pftrim_index_division_residual_data_resulttrimsuffix)) * rc) + (pftrim_value_division_residual_data_resulttrimsuffix)))) /\ (((R)=0 \/ (exists pftrim_leading_division_residual_data_resulttrimnormal. ((((exists ff_h_pfp_division_residual_data_resulttrimnormalentry. ff_h_pfp_division_residual_data_resulttrimnormalentry + S (pftrim_leading_division_residual_data_resulttrimnormal) = S ((S (0)) * rc)) /\ exists ff_q_pfp_division_residual_data_resulttrimnormalentry. rb = ff_q_pfp_division_residual_data_resulttrimnormalentry * S ((S (0)) * rc) + (pftrim_leading_division_residual_data_resulttrimnormal))) /\ ((~(pftrim_leading_division_residual_data_resulttrimnormal=0))))))))))))))))))))
Complete tactic proof in conservative notation
All 90 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.
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.
01Fix variables and assumptionsL1–10
Work with arbitrary variables or the premises of the current implication.
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field convolution prefix exists.
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial subtract exists.
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial subtract bounded.