PX002D

prime_field_polynomial_quotient_prefix_append

An actual beta-prefix extension preserves all earlier steps and adds the independently computed next quotient value.

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.

Exact theorem in conservative defined notation

∀ p. ∀ k. ∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ M. ∀ qb. ∀ qc. ∀ QB. ∀ QC. ∀ N. ∀ q. FpPolynomialQuotientPrefix(p,k,ab,ac,bb,bc,M,qb,qc,N)BetaPrefixEqual(qb,qc,QB,QC,N)BetaAt(QB,QC,N,q)FpPolynomialQuotientStep(p,k,ab,ac,bb,bc,M,qb,qc,N,q)FpPolynomialQuotientPrefix(p,k,ab,ac,bb,bc,M,QB,QC,S N)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall p k ab ac bb bc M qb qc QB QC N q. (forall pfd_index_division_append_old. (exists pfa_gap_division_append_oldbound. pfa_gap_division_append_oldbound + S (pfd_index_division_append_old) = (N)) -> exists pfd_value_division_append_old. ((((exists ff_h_pfp_division_append_oldentry. ff_h_pfp_division_append_oldentry + S (pfd_value_division_append_old) = S ((S (pfd_index_division_append_old)) * qc)) /\ exists ff_q_pfp_division_append_oldentry. qb = ff_q_pfp_division_append_oldentry * S ((S (pfd_index_division_append_old)) * qc) + (pfd_value_division_append_old))) /\ ((exists pfd_input_division_append_oldstep pfd_previous_division_append_oldstep pfd_difference_division_append_oldstep. ((((exists ff_h_pfp_division_append_oldstepinput. ff_h_pfp_division_append_oldstepinput + S (pfd_input_division_append_oldstep) = S ((S (pfd_index_division_append_old)) * ac)) /\ exists ff_q_pfp_division_append_oldstepinput. ab = ff_q_pfp_division_append_oldstepinput * S ((S (pfd_index_division_append_old)) * ac) + (pfd_input_division_append_oldstep))) /\ (((exists pfc_terms_code_division_append_oldstepprevious pfc_terms_scale_division_append_oldstepprevious pfc_natural_sum_division_append_oldstepprevious. ((forall pfc_index_division_append_oldsteppreviousdiagonal. (exists pfa_gap_division_append_oldsteppreviousdiagonalbound. pfa_gap_division_append_oldsteppreviousdiagonalbound + S (pfc_index_division_append_oldsteppreviousdiagonal) = (S (pfd_index_division_append_old))) -> exists pfc_value_division_append_oldsteppreviousdiagonal. ((((exists ff_h_pfp_division_append_oldsteppreviousdiagonalentry. ff_h_pfp_division_append_oldsteppreviousdiagonalentry + S (pfc_value_division_append_oldsteppreviousdiagonal) = S ((S (pfc_index_division_append_oldsteppreviousdiagonal)) * pfc_terms_scale_division_append_oldstepprevious)) /\ exists ff_q_pfp_division_append_oldsteppreviousdiagonalentry. pfc_terms_code_division_append_oldstepprevious = ff_q_pfp_division_append_oldsteppreviousdiagonalentry * S ((S (pfc_index_division_append_oldsteppreviousdiagonal)) * pfc_terms_scale_division_append_oldstepprevious) + (pfc_value_division_append_oldsteppreviousdiagonal))) /\ ((exists pfc_complement_division_append_oldsteppreviousdiagonalterm pfc_left_division_append_oldsteppreviousdiagonalterm pfc_right_division_append_oldsteppreviousdiagonalterm. (((pfc_index_division_append_oldsteppreviousdiagonal)+pfc_complement_division_append_oldsteppreviousdiagonalterm=(pfd_index_division_append_old)) /\ ((((((exists pfa_gap_division_append_oldsteppreviousdiagonaltermleftinside. pfa_gap_division_append_oldsteppreviousdiagonaltermleftinside + S (pfc_index_division_append_oldsteppreviousdiagonal) = (pfd_index_division_append_old)) /\ ((((exists ff_h_pfp_division_append_oldsteppreviousdiagonaltermleftentry. ff_h_pfp_division_append_oldsteppreviousdiagonaltermleftentry + S (pfc_left_division_append_oldsteppreviousdiagonalterm) = S ((S (pfc_index_division_append_oldsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_append_oldsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_append_oldsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_append_oldsteppreviousdiagonal)) * qc) + (pfc_left_division_append_oldsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_oldsteppreviousdiagonaltermleftoutside. pfc_gap_division_append_oldsteppreviousdiagonaltermleftoutside+(pfd_index_division_append_old)=(pfc_index_division_append_oldsteppreviousdiagonal)) /\ (((pfc_left_division_append_oldsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_append_oldsteppreviousdiagonaltermrightinside. pfa_gap_division_append_oldsteppreviousdiagonaltermrightinside + S (pfc_complement_division_append_oldsteppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_append_oldsteppreviousdiagonaltermrightentry. ff_h_pfp_division_append_oldsteppreviousdiagonaltermrightentry + S (pfc_right_division_append_oldsteppreviousdiagonalterm) = S ((S (pfc_complement_division_append_oldsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_append_oldsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_append_oldsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_append_oldsteppreviousdiagonalterm)) * bc) + (pfc_right_division_append_oldsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_oldsteppreviousdiagonaltermrightoutside. pfc_gap_division_append_oldsteppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_append_oldsteppreviousdiagonalterm)) /\ (((pfc_right_division_append_oldsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_append_oldsteppreviousdiagonal)=pfc_left_division_append_oldsteppreviousdiagonalterm*pfc_right_division_append_oldsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_append_oldstepprevioussum fs_v_pfc_division_append_oldstepprevioussum. ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_start. fs_h_pfc_division_append_oldstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_append_oldstepprevioussum)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_start. fs_u_pfc_division_append_oldstepprevioussum = fs_q_pfc_division_append_oldstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_append_oldstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_terminal. fs_h_pfc_division_append_oldstepprevioussum_body_terminal + S (pfc_natural_sum_division_append_oldstepprevious) = S ((S (S (pfd_index_division_append_old))) * fs_v_pfc_division_append_oldstepprevioussum)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_terminal. fs_u_pfc_division_append_oldstepprevioussum = fs_q_pfc_division_append_oldstepprevioussum_body_terminal * S ((S (S (pfd_index_division_append_old))) * fs_v_pfc_division_append_oldstepprevioussum) + (pfc_natural_sum_division_append_oldstepprevious))) /\ forall fs_i_pfc_division_append_oldstepprevioussum_body_steps. (exists fs_lt_pfc_division_append_oldstepprevioussum_body_steps_bound. fs_lt_pfc_division_append_oldstepprevioussum_body_steps_bound + S fs_i_pfc_division_append_oldstepprevioussum_body_steps = S (pfd_index_division_append_old)) -> exists fs_a_pfc_division_append_oldstepprevioussum_body_steps fs_r_pfc_division_append_oldstepprevioussum_body_steps fs_s_pfc_division_append_oldstepprevioussum_body_steps. ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_steps_summand. fs_h_pfc_division_append_oldstepprevioussum_body_steps_summand + S (fs_a_pfc_division_append_oldstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * pfc_terms_scale_division_append_oldstepprevious)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_steps_summand. pfc_terms_code_division_append_oldstepprevious = fs_q_pfc_division_append_oldstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * pfc_terms_scale_division_append_oldstepprevious) + (fs_a_pfc_division_append_oldstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_steps_partial. fs_h_pfc_division_append_oldstepprevioussum_body_steps_partial + S (fs_r_pfc_division_append_oldstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * fs_v_pfc_division_append_oldstepprevioussum)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_steps_partial. fs_u_pfc_division_append_oldstepprevioussum = fs_q_pfc_division_append_oldstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * fs_v_pfc_division_append_oldstepprevioussum) + (fs_r_pfc_division_append_oldstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_oldstepprevioussum_body_steps_successor. fs_h_pfc_division_append_oldstepprevioussum_body_steps_successor + S (fs_s_pfc_division_append_oldstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * fs_v_pfc_division_append_oldstepprevioussum)) /\ exists fs_q_pfc_division_append_oldstepprevioussum_body_steps_successor. fs_u_pfc_division_append_oldstepprevioussum = fs_q_pfc_division_append_oldstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_append_oldstepprevioussum_body_steps)) * fs_v_pfc_division_append_oldstepprevioussum) + (fs_s_pfc_division_append_oldstepprevioussum_body_steps))) /\ fs_s_pfc_division_append_oldstepprevioussum_body_steps = fs_r_pfc_division_append_oldstepprevioussum_body_steps + fs_a_pfc_division_append_oldstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_append_oldsteppreviousresiduebound. pfa_gap_division_append_oldsteppreviousresiduebound + S (pfd_previous_division_append_oldstep) = (p)) /\ ((exists pfa_offset_left_division_append_oldsteppreviousresiduecongruence pfa_offset_right_division_append_oldsteppreviousresiduecongruence. (pfc_natural_sum_division_append_oldstepprevious) + (p) * pfa_offset_left_division_append_oldsteppreviousresiduecongruence = (pfd_previous_division_append_oldstep) + (p) * pfa_offset_right_division_append_oldsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_append_oldstepsubtractleft. pfa_gap_division_append_oldstepsubtractleft + S (pfd_previous_division_append_oldstep) = (p)) /\ (((exists pfa_gap_division_append_oldstepsubtractright. pfa_gap_division_append_oldstepsubtractright + S (pfd_difference_division_append_oldstep) = (p)) /\ ((((exists pfa_gap_division_append_oldstepsubtractresultbound. pfa_gap_division_append_oldstepsubtractresultbound + S (pfd_input_division_append_oldstep) = (p)) /\ ((exists pfa_offset_left_division_append_oldstepsubtractresultcongruence pfa_offset_right_division_append_oldstepsubtractresultcongruence. ((pfd_previous_division_append_oldstep) + (pfd_difference_division_append_oldstep)) + (p) * pfa_offset_left_division_append_oldstepsubtractresultcongruence = (pfd_input_division_append_oldstep) + (p) * pfa_offset_right_division_append_oldstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_append_oldstepmultiplyleft. pfa_gap_division_append_oldstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_append_oldstepmultiplyright. pfa_gap_division_append_oldstepmultiplyright + S (pfd_difference_division_append_oldstep) = (p)) /\ ((((exists pfa_gap_division_append_oldstepmultiplyresultbound. pfa_gap_division_append_oldstepmultiplyresultbound + S (pfd_value_division_append_old) = (p)) /\ ((exists pfa_offset_left_division_append_oldstepmultiplyresultcongruence pfa_offset_right_division_append_oldstepmultiplyresultcongruence. ((k) * (pfd_difference_division_append_oldstep)) + (p) * pfa_offset_left_division_append_oldstepmultiplyresultcongruence = (pfd_value_division_append_old) + (p) * pfa_offset_right_division_append_oldstepmultiplyresultcongruence))))))))))))))))))) -> (forall mdr_i_pfp_division_append_equal mdr_a_pfp_division_append_equal. (exists mdr_gap_pfp_division_append_equalb. mdr_gap_pfp_division_append_equalb + S (mdr_i_pfp_division_append_equal) = (N)) -> (((exists ff_h_mdr_pfp_division_append_equalo. ff_h_mdr_pfp_division_append_equalo + S (mdr_a_pfp_division_append_equal) = S ((S (mdr_i_pfp_division_append_equal)) * qc)) /\ exists ff_q_mdr_pfp_division_append_equalo. qb = ff_q_mdr_pfp_division_append_equalo * S ((S (mdr_i_pfp_division_append_equal)) * qc) + (mdr_a_pfp_division_append_equal))) -> (((exists ff_h_mdr_pfp_division_append_equaln. ff_h_mdr_pfp_division_append_equaln + S (mdr_a_pfp_division_append_equal) = S ((S (mdr_i_pfp_division_append_equal)) * QC)) /\ exists ff_q_mdr_pfp_division_append_equaln. QB = ff_q_mdr_pfp_division_append_equaln * S ((S (mdr_i_pfp_division_append_equal)) * QC) + (mdr_a_pfp_division_append_equal)))) -> (((exists ff_h_pfp_division_append_given_entry. ff_h_pfp_division_append_given_entry + S (q) = S ((S (N)) * QC)) /\ exists ff_q_pfp_division_append_given_entry. QB = ff_q_pfp_division_append_given_entry * S ((S (N)) * QC) + (q))) -> (exists pfd_input_division_append_given_step pfd_previous_division_append_given_step pfd_difference_division_append_given_step. ((((exists ff_h_pfp_division_append_given_stepinput. ff_h_pfp_division_append_given_stepinput + S (pfd_input_division_append_given_step) = S ((S (N)) * ac)) /\ exists ff_q_pfp_division_append_given_stepinput. ab = ff_q_pfp_division_append_given_stepinput * S ((S (N)) * ac) + (pfd_input_division_append_given_step))) /\ (((exists pfc_terms_code_division_append_given_stepprevious pfc_terms_scale_division_append_given_stepprevious pfc_natural_sum_division_append_given_stepprevious. ((forall pfc_index_division_append_given_steppreviousdiagonal. (exists pfa_gap_division_append_given_steppreviousdiagonalbound. pfa_gap_division_append_given_steppreviousdiagonalbound + S (pfc_index_division_append_given_steppreviousdiagonal) = (S (N))) -> exists pfc_value_division_append_given_steppreviousdiagonal. ((((exists ff_h_pfp_division_append_given_steppreviousdiagonalentry. ff_h_pfp_division_append_given_steppreviousdiagonalentry + S (pfc_value_division_append_given_steppreviousdiagonal) = S ((S (pfc_index_division_append_given_steppreviousdiagonal)) * pfc_terms_scale_division_append_given_stepprevious)) /\ exists ff_q_pfp_division_append_given_steppreviousdiagonalentry. pfc_terms_code_division_append_given_stepprevious = ff_q_pfp_division_append_given_steppreviousdiagonalentry * S ((S (pfc_index_division_append_given_steppreviousdiagonal)) * pfc_terms_scale_division_append_given_stepprevious) + (pfc_value_division_append_given_steppreviousdiagonal))) /\ ((exists pfc_complement_division_append_given_steppreviousdiagonalterm pfc_left_division_append_given_steppreviousdiagonalterm pfc_right_division_append_given_steppreviousdiagonalterm. (((pfc_index_division_append_given_steppreviousdiagonal)+pfc_complement_division_append_given_steppreviousdiagonalterm=(N)) /\ ((((((exists pfa_gap_division_append_given_steppreviousdiagonaltermleftinside. pfa_gap_division_append_given_steppreviousdiagonaltermleftinside + S (pfc_index_division_append_given_steppreviousdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_append_given_steppreviousdiagonaltermleftentry. ff_h_pfp_division_append_given_steppreviousdiagonaltermleftentry + S (pfc_left_division_append_given_steppreviousdiagonalterm) = S ((S (pfc_index_division_append_given_steppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_append_given_steppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_append_given_steppreviousdiagonaltermleftentry * S ((S (pfc_index_division_append_given_steppreviousdiagonal)) * qc) + (pfc_left_division_append_given_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_given_steppreviousdiagonaltermleftoutside. pfc_gap_division_append_given_steppreviousdiagonaltermleftoutside+(N)=(pfc_index_division_append_given_steppreviousdiagonal)) /\ (((pfc_left_division_append_given_steppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_append_given_steppreviousdiagonaltermrightinside. pfa_gap_division_append_given_steppreviousdiagonaltermrightinside + S (pfc_complement_division_append_given_steppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_append_given_steppreviousdiagonaltermrightentry. ff_h_pfp_division_append_given_steppreviousdiagonaltermrightentry + S (pfc_right_division_append_given_steppreviousdiagonalterm) = S ((S (pfc_complement_division_append_given_steppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_append_given_steppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_append_given_steppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_append_given_steppreviousdiagonalterm)) * bc) + (pfc_right_division_append_given_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_given_steppreviousdiagonaltermrightoutside. pfc_gap_division_append_given_steppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_append_given_steppreviousdiagonalterm)) /\ (((pfc_right_division_append_given_steppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_append_given_steppreviousdiagonal)=pfc_left_division_append_given_steppreviousdiagonalterm*pfc_right_division_append_given_steppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_append_given_stepprevioussum fs_v_pfc_division_append_given_stepprevioussum. ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_start. fs_h_pfc_division_append_given_stepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_append_given_stepprevioussum)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_start. fs_u_pfc_division_append_given_stepprevioussum = fs_q_pfc_division_append_given_stepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_append_given_stepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_terminal. fs_h_pfc_division_append_given_stepprevioussum_body_terminal + S (pfc_natural_sum_division_append_given_stepprevious) = S ((S (S (N))) * fs_v_pfc_division_append_given_stepprevioussum)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_terminal. fs_u_pfc_division_append_given_stepprevioussum = fs_q_pfc_division_append_given_stepprevioussum_body_terminal * S ((S (S (N))) * fs_v_pfc_division_append_given_stepprevioussum) + (pfc_natural_sum_division_append_given_stepprevious))) /\ forall fs_i_pfc_division_append_given_stepprevioussum_body_steps. (exists fs_lt_pfc_division_append_given_stepprevioussum_body_steps_bound. fs_lt_pfc_division_append_given_stepprevioussum_body_steps_bound + S fs_i_pfc_division_append_given_stepprevioussum_body_steps = S (N)) -> exists fs_a_pfc_division_append_given_stepprevioussum_body_steps fs_r_pfc_division_append_given_stepprevioussum_body_steps fs_s_pfc_division_append_given_stepprevioussum_body_steps. ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_steps_summand. fs_h_pfc_division_append_given_stepprevioussum_body_steps_summand + S (fs_a_pfc_division_append_given_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * pfc_terms_scale_division_append_given_stepprevious)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_steps_summand. pfc_terms_code_division_append_given_stepprevious = fs_q_pfc_division_append_given_stepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * pfc_terms_scale_division_append_given_stepprevious) + (fs_a_pfc_division_append_given_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_steps_partial. fs_h_pfc_division_append_given_stepprevioussum_body_steps_partial + S (fs_r_pfc_division_append_given_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * fs_v_pfc_division_append_given_stepprevioussum)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_steps_partial. fs_u_pfc_division_append_given_stepprevioussum = fs_q_pfc_division_append_given_stepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * fs_v_pfc_division_append_given_stepprevioussum) + (fs_r_pfc_division_append_given_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_given_stepprevioussum_body_steps_successor. fs_h_pfc_division_append_given_stepprevioussum_body_steps_successor + S (fs_s_pfc_division_append_given_stepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * fs_v_pfc_division_append_given_stepprevioussum)) /\ exists fs_q_pfc_division_append_given_stepprevioussum_body_steps_successor. fs_u_pfc_division_append_given_stepprevioussum = fs_q_pfc_division_append_given_stepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_append_given_stepprevioussum_body_steps)) * fs_v_pfc_division_append_given_stepprevioussum) + (fs_s_pfc_division_append_given_stepprevioussum_body_steps))) /\ fs_s_pfc_division_append_given_stepprevioussum_body_steps = fs_r_pfc_division_append_given_stepprevioussum_body_steps + fs_a_pfc_division_append_given_stepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_append_given_steppreviousresiduebound. pfa_gap_division_append_given_steppreviousresiduebound + S (pfd_previous_division_append_given_step) = (p)) /\ ((exists pfa_offset_left_division_append_given_steppreviousresiduecongruence pfa_offset_right_division_append_given_steppreviousresiduecongruence. (pfc_natural_sum_division_append_given_stepprevious) + (p) * pfa_offset_left_division_append_given_steppreviousresiduecongruence = (pfd_previous_division_append_given_step) + (p) * pfa_offset_right_division_append_given_steppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_append_given_stepsubtractleft. pfa_gap_division_append_given_stepsubtractleft + S (pfd_previous_division_append_given_step) = (p)) /\ (((exists pfa_gap_division_append_given_stepsubtractright. pfa_gap_division_append_given_stepsubtractright + S (pfd_difference_division_append_given_step) = (p)) /\ ((((exists pfa_gap_division_append_given_stepsubtractresultbound. pfa_gap_division_append_given_stepsubtractresultbound + S (pfd_input_division_append_given_step) = (p)) /\ ((exists pfa_offset_left_division_append_given_stepsubtractresultcongruence pfa_offset_right_division_append_given_stepsubtractresultcongruence. ((pfd_previous_division_append_given_step) + (pfd_difference_division_append_given_step)) + (p) * pfa_offset_left_division_append_given_stepsubtractresultcongruence = (pfd_input_division_append_given_step) + (p) * pfa_offset_right_division_append_given_stepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_append_given_stepmultiplyleft. pfa_gap_division_append_given_stepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_append_given_stepmultiplyright. pfa_gap_division_append_given_stepmultiplyright + S (pfd_difference_division_append_given_step) = (p)) /\ ((((exists pfa_gap_division_append_given_stepmultiplyresultbound. pfa_gap_division_append_given_stepmultiplyresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_append_given_stepmultiplyresultcongruence pfa_offset_right_division_append_given_stepmultiplyresultcongruence. ((k) * (pfd_difference_division_append_given_step)) + (p) * pfa_offset_left_division_append_given_stepmultiplyresultcongruence = (q) + (p) * pfa_offset_right_division_append_given_stepmultiplyresultcongruence)))))))))))))))) -> (forall pfd_index_division_append_new. (exists pfa_gap_division_append_newbound. pfa_gap_division_append_newbound + S (pfd_index_division_append_new) = (S N)) -> exists pfd_value_division_append_new. ((((exists ff_h_pfp_division_append_newentry. ff_h_pfp_division_append_newentry + S (pfd_value_division_append_new) = S ((S (pfd_index_division_append_new)) * QC)) /\ exists ff_q_pfp_division_append_newentry. QB = ff_q_pfp_division_append_newentry * S ((S (pfd_index_division_append_new)) * QC) + (pfd_value_division_append_new))) /\ ((exists pfd_input_division_append_newstep pfd_previous_division_append_newstep pfd_difference_division_append_newstep. ((((exists ff_h_pfp_division_append_newstepinput. ff_h_pfp_division_append_newstepinput + S (pfd_input_division_append_newstep) = S ((S (pfd_index_division_append_new)) * ac)) /\ exists ff_q_pfp_division_append_newstepinput. ab = ff_q_pfp_division_append_newstepinput * S ((S (pfd_index_division_append_new)) * ac) + (pfd_input_division_append_newstep))) /\ (((exists pfc_terms_code_division_append_newstepprevious pfc_terms_scale_division_append_newstepprevious pfc_natural_sum_division_append_newstepprevious. ((forall pfc_index_division_append_newsteppreviousdiagonal. (exists pfa_gap_division_append_newsteppreviousdiagonalbound. pfa_gap_division_append_newsteppreviousdiagonalbound + S (pfc_index_division_append_newsteppreviousdiagonal) = (S (pfd_index_division_append_new))) -> exists pfc_value_division_append_newsteppreviousdiagonal. ((((exists ff_h_pfp_division_append_newsteppreviousdiagonalentry. ff_h_pfp_division_append_newsteppreviousdiagonalentry + S (pfc_value_division_append_newsteppreviousdiagonal) = S ((S (pfc_index_division_append_newsteppreviousdiagonal)) * pfc_terms_scale_division_append_newstepprevious)) /\ exists ff_q_pfp_division_append_newsteppreviousdiagonalentry. pfc_terms_code_division_append_newstepprevious = ff_q_pfp_division_append_newsteppreviousdiagonalentry * S ((S (pfc_index_division_append_newsteppreviousdiagonal)) * pfc_terms_scale_division_append_newstepprevious) + (pfc_value_division_append_newsteppreviousdiagonal))) /\ ((exists pfc_complement_division_append_newsteppreviousdiagonalterm pfc_left_division_append_newsteppreviousdiagonalterm pfc_right_division_append_newsteppreviousdiagonalterm. (((pfc_index_division_append_newsteppreviousdiagonal)+pfc_complement_division_append_newsteppreviousdiagonalterm=(pfd_index_division_append_new)) /\ ((((((exists pfa_gap_division_append_newsteppreviousdiagonaltermleftinside. pfa_gap_division_append_newsteppreviousdiagonaltermleftinside + S (pfc_index_division_append_newsteppreviousdiagonal) = (pfd_index_division_append_new)) /\ ((((exists ff_h_pfp_division_append_newsteppreviousdiagonaltermleftentry. ff_h_pfp_division_append_newsteppreviousdiagonaltermleftentry + S (pfc_left_division_append_newsteppreviousdiagonalterm) = S ((S (pfc_index_division_append_newsteppreviousdiagonal)) * QC)) /\ exists ff_q_pfp_division_append_newsteppreviousdiagonaltermleftentry. QB = ff_q_pfp_division_append_newsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_append_newsteppreviousdiagonal)) * QC) + (pfc_left_division_append_newsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_newsteppreviousdiagonaltermleftoutside. pfc_gap_division_append_newsteppreviousdiagonaltermleftoutside+(pfd_index_division_append_new)=(pfc_index_division_append_newsteppreviousdiagonal)) /\ (((pfc_left_division_append_newsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_append_newsteppreviousdiagonaltermrightinside. pfa_gap_division_append_newsteppreviousdiagonaltermrightinside + S (pfc_complement_division_append_newsteppreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_append_newsteppreviousdiagonaltermrightentry. ff_h_pfp_division_append_newsteppreviousdiagonaltermrightentry + S (pfc_right_division_append_newsteppreviousdiagonalterm) = S ((S (pfc_complement_division_append_newsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_append_newsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_append_newsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_append_newsteppreviousdiagonalterm)) * bc) + (pfc_right_division_append_newsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_append_newsteppreviousdiagonaltermrightoutside. pfc_gap_division_append_newsteppreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_append_newsteppreviousdiagonalterm)) /\ (((pfc_right_division_append_newsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_append_newsteppreviousdiagonal)=pfc_left_division_append_newsteppreviousdiagonalterm*pfc_right_division_append_newsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_append_newstepprevioussum fs_v_pfc_division_append_newstepprevioussum. ((((exists fs_h_pfc_division_append_newstepprevioussum_body_start. fs_h_pfc_division_append_newstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_append_newstepprevioussum)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_start. fs_u_pfc_division_append_newstepprevioussum = fs_q_pfc_division_append_newstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_append_newstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_append_newstepprevioussum_body_terminal. fs_h_pfc_division_append_newstepprevioussum_body_terminal + S (pfc_natural_sum_division_append_newstepprevious) = S ((S (S (pfd_index_division_append_new))) * fs_v_pfc_division_append_newstepprevioussum)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_terminal. fs_u_pfc_division_append_newstepprevioussum = fs_q_pfc_division_append_newstepprevioussum_body_terminal * S ((S (S (pfd_index_division_append_new))) * fs_v_pfc_division_append_newstepprevioussum) + (pfc_natural_sum_division_append_newstepprevious))) /\ forall fs_i_pfc_division_append_newstepprevioussum_body_steps. (exists fs_lt_pfc_division_append_newstepprevioussum_body_steps_bound. fs_lt_pfc_division_append_newstepprevioussum_body_steps_bound + S fs_i_pfc_division_append_newstepprevioussum_body_steps = S (pfd_index_division_append_new)) -> exists fs_a_pfc_division_append_newstepprevioussum_body_steps fs_r_pfc_division_append_newstepprevioussum_body_steps fs_s_pfc_division_append_newstepprevioussum_body_steps. ((((exists fs_h_pfc_division_append_newstepprevioussum_body_steps_summand. fs_h_pfc_division_append_newstepprevioussum_body_steps_summand + S (fs_a_pfc_division_append_newstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_newstepprevioussum_body_steps)) * pfc_terms_scale_division_append_newstepprevious)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_steps_summand. pfc_terms_code_division_append_newstepprevious = fs_q_pfc_division_append_newstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_append_newstepprevioussum_body_steps)) * pfc_terms_scale_division_append_newstepprevious) + (fs_a_pfc_division_append_newstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_newstepprevioussum_body_steps_partial. fs_h_pfc_division_append_newstepprevioussum_body_steps_partial + S (fs_r_pfc_division_append_newstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_append_newstepprevioussum_body_steps)) * fs_v_pfc_division_append_newstepprevioussum)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_steps_partial. fs_u_pfc_division_append_newstepprevioussum = fs_q_pfc_division_append_newstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_append_newstepprevioussum_body_steps)) * fs_v_pfc_division_append_newstepprevioussum) + (fs_r_pfc_division_append_newstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_append_newstepprevioussum_body_steps_successor. fs_h_pfc_division_append_newstepprevioussum_body_steps_successor + S (fs_s_pfc_division_append_newstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_append_newstepprevioussum_body_steps)) * fs_v_pfc_division_append_newstepprevioussum)) /\ exists fs_q_pfc_division_append_newstepprevioussum_body_steps_successor. fs_u_pfc_division_append_newstepprevioussum = fs_q_pfc_division_append_newstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_append_newstepprevioussum_body_steps)) * fs_v_pfc_division_append_newstepprevioussum) + (fs_s_pfc_division_append_newstepprevioussum_body_steps))) /\ fs_s_pfc_division_append_newstepprevioussum_body_steps = fs_r_pfc_division_append_newstepprevioussum_body_steps + fs_a_pfc_division_append_newstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_append_newsteppreviousresiduebound. pfa_gap_division_append_newsteppreviousresiduebound + S (pfd_previous_division_append_newstep) = (p)) /\ ((exists pfa_offset_left_division_append_newsteppreviousresiduecongruence pfa_offset_right_division_append_newsteppreviousresiduecongruence. (pfc_natural_sum_division_append_newstepprevious) + (p) * pfa_offset_left_division_append_newsteppreviousresiduecongruence = (pfd_previous_division_append_newstep) + (p) * pfa_offset_right_division_append_newsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_append_newstepsubtractleft. pfa_gap_division_append_newstepsubtractleft + S (pfd_previous_division_append_newstep) = (p)) /\ (((exists pfa_gap_division_append_newstepsubtractright. pfa_gap_division_append_newstepsubtractright + S (pfd_difference_division_append_newstep) = (p)) /\ ((((exists pfa_gap_division_append_newstepsubtractresultbound. pfa_gap_division_append_newstepsubtractresultbound + S (pfd_input_division_append_newstep) = (p)) /\ ((exists pfa_offset_left_division_append_newstepsubtractresultcongruence pfa_offset_right_division_append_newstepsubtractresultcongruence. ((pfd_previous_division_append_newstep) + (pfd_difference_division_append_newstep)) + (p) * pfa_offset_left_division_append_newstepsubtractresultcongruence = (pfd_input_division_append_newstep) + (p) * pfa_offset_right_division_append_newstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_append_newstepmultiplyleft. pfa_gap_division_append_newstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_append_newstepmultiplyright. pfa_gap_division_append_newstepmultiplyright + S (pfd_difference_division_append_newstep) = (p)) /\ ((((exists pfa_gap_division_append_newstepmultiplyresultbound. pfa_gap_division_append_newstepmultiplyresultbound + S (pfd_value_division_append_new) = (p)) /\ ((exists pfa_offset_left_division_append_newstepmultiplyresultcongruence pfa_offset_right_division_append_newstepmultiplyresultcongruence. ((k) * (pfd_difference_division_append_newstep)) + (p) * pfa_offset_left_division_append_newstepmultiplyresultcongruence = (pfd_value_division_append_new) + (p) * pfa_offset_right_division_append_newstepmultiplyresultcongruence)))))))))))))))))))

Complete tactic proof in conservative notation

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

100 script commands · 20 reading checkpoints · 2 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 k
  3. L3
    intro ab
  4. L4
    intro ac
  5. L5
    intro bb
  6. L6
    intro bc
  7. L7
    intro M
  8. L8
    intro qb
  9. L9
    intro qc
  10. L10
    intro QB
02Fix variables and assumptionsL11–19

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

  1. L11
    intro QC
  2. L12
    intro N
  3. L13
    intro q
  4. L14
    intro h
  5. L15
    intro he
  6. L16
    intro hq
  7. L17
    intro hs
  8. L18
    intro i
  9. L19
    intro hi
03Establish hcaseL20–24

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.

  1. L20
    have hcase : i = N ∨ Lt(i,N)Definitions: Lt(i,N)Original native command in the exact edition
  2. L21
    specialize finite_lt_succ_eq_or_lt (N)
  3. L22
    specialize finite_lt_succ_eq_or_lt (i)
  4. L23
    apply finite_lt_succ_eq_or_lt
  5. L24
    exact hi
04Separate the logical casesL25–25

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

  1. L25
    cases hcase
05Construct an explicit witnessL26–26

Supply the displayed value, then prove that it has the required property.

  1. L26
    exists q
06Separate the logical casesL27–27

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

  1. L27
    split
07Calculate and transport equalitiesL28–29

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L28
    rewrite hcase_left
  2. L29
    rewrite hcase_left
08Use earlier factsL30–30

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

  1. L30
    exact hq
09Calculate and transport equalitiesL31–39

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L31
    rewrite hcase_left
  2. L32
    rewrite hcase_left
  3. L33
    rewrite hcase_left
  4. L34
    rewrite hcase_left
  5. L35
    rewrite hcase_left
  6. L36
    rewrite hcase_left
  7. L37
    rewrite hcase_left
  8. L38
    rewrite hcase_left
  9. L39
    rewrite hcase_left
10Use earlier factsL40–49

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

  1. L40
    specialize prime_field_polynomial_quotient_step_recode (p)
  2. L41
    specialize prime_field_polynomial_quotient_step_recode (k)
  3. L42
    specialize prime_field_polynomial_quotient_step_recode (ab)
  4. L43
    specialize prime_field_polynomial_quotient_step_recode (ac)
  5. L44
    specialize prime_field_polynomial_quotient_step_recode (bb)
  6. L45
    specialize prime_field_polynomial_quotient_step_recode (bc)
  7. L46
    specialize prime_field_polynomial_quotient_step_recode (M)
  8. L47
    specialize prime_field_polynomial_quotient_step_recode (qb)
  9. L48
    specialize prime_field_polynomial_quotient_step_recode (qc)
  10. L49
    specialize prime_field_polynomial_quotient_step_recode (QB)
11Use earlier factsL50–55

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

  1. L50
    specialize prime_field_polynomial_quotient_step_recode (QC)
  2. L51
    specialize prime_field_polynomial_quotient_step_recode (N)
  3. L52
    specialize prime_field_polynomial_quotient_step_recode (q)
  4. L53
    apply prime_field_polynomial_quotient_step_recode
  5. L54
    exact he
  6. L55
    exact hs
12Establish hvL56–59

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

  1. L56
    have hv : ∃ r. BetaAt(qb,qc,i,r) ∧ FpPolynomialQuotientStep(p,k,ab,ac,bb,bc,M,qb,qc,i,r)Definitions: BetaAt(qb,qc,i,r)FpPolynomialQuotientStep(p,k,ab,ac,bb,bc,M,qb,qc,i,r)Original native command in the exact edition
  2. L57
    specialize h (i)
  3. L58
    apply h
  4. L59
    exact hcase_right
13Separate the logical casesL60–61

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

  1. L60
    cases hv
  2. L61
    cases hv_witness
14Construct an explicit witnessL62–62

Supply the displayed value, then prove that it has the required property.

  1. L62
    exists x
15Separate the logical casesL63–63

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

  1. L63
    split
16Use earlier factsL64–73

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

  1. L64
    specialize he (i)
  2. L65
    specialize he (x)
  3. L66
    apply he
  4. L67
    exact hcase_right
  5. L68
    exact hv_witness_left
  6. L69
    specialize prime_field_polynomial_quotient_step_recode (p)
  7. L70
    specialize prime_field_polynomial_quotient_step_recode (k)
  8. L71
    specialize prime_field_polynomial_quotient_step_recode (ab)
  9. L72
    specialize prime_field_polynomial_quotient_step_recode (ac)
  10. L73
    specialize prime_field_polynomial_quotient_step_recode (bb)
17Use earlier factsL74–82

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

  1. L74
    specialize prime_field_polynomial_quotient_step_recode (bc)
  2. L75
    specialize prime_field_polynomial_quotient_step_recode (M)
  3. L76
    specialize prime_field_polynomial_quotient_step_recode (qb)
  4. L77
    specialize prime_field_polynomial_quotient_step_recode (qc)
  5. L78
    specialize prime_field_polynomial_quotient_step_recode (QB)
  6. L79
    specialize prime_field_polynomial_quotient_step_recode (QC)
  7. L80
    specialize prime_field_polynomial_quotient_step_recode (i)
  8. L81
    specialize prime_field_polynomial_quotient_step_recode (x)
  9. L82
    apply prime_field_polynomial_quotient_step_recode
18Fix variables and assumptionsL83–86

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

  1. L83
    intro j
  2. L84
    intro a
  3. L85
    intro hj
  4. L86
    intro ha
19Use earlier factsL87–96

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

  1. L87
    specialize he (j)
  2. L88
    specialize he (a)
  3. L89
    apply he
  4. L90
    specialize lt_of_lt_of_le (j)
  5. L91
    specialize lt_of_lt_of_le (S i)
  6. L92
    specialize lt_of_lt_of_le (N)
  7. L93
    apply lt_of_lt_of_le
  8. L94
    specialize le_succ (S j)
  9. L95
    specialize le_succ (i)
  10. L96
    apply le_succ
20Use earlier factsL97–100

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

  1. L97
    exact hj
  2. L98
    exact hcase_right
  3. L99
    exact ha
  4. L100
    exact hv_witness_right

Library-wide reading audit

Original defined command ledger · 100 lines
  1. 0001intro p
  2. 0002intro k
  3. 0003intro ab
  4. 0004intro ac
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro M
  8. 0008intro qb
  9. 0009intro qc
  10. 0010intro QB
  11. 0011intro QC
  12. 0012intro N
  13. 0013intro q
  14. 0014intro h
  15. 0015intro he
  16. 0016intro hq
  17. 0017intro hs
  18. 0018intro i
  19. 0019intro hi
  20. 0020have hcase : i = N ∨ Lt(i,N)
  21. 0021specialize finite_lt_succ_eq_or_lt (N)
  22. 0022specialize finite_lt_succ_eq_or_lt (i)
  23. 0023apply finite_lt_succ_eq_or_lt
  24. 0024exact hi
  25. 0025cases hcase
  26. 0026exists q
  27. 0027split
  28. 0028rewrite hcase_left
  29. 0029rewrite hcase_left
  30. 0030exact hq
  31. 0031rewrite hcase_left
  32. 0032rewrite hcase_left
  33. 0033rewrite hcase_left
  34. 0034rewrite hcase_left
  35. 0035rewrite hcase_left
  36. 0036rewrite hcase_left
  37. 0037rewrite hcase_left
  38. 0038rewrite hcase_left
  39. 0039rewrite hcase_left
  40. 0040specialize prime_field_polynomial_quotient_step_recode (p)
  41. 0041specialize prime_field_polynomial_quotient_step_recode (k)
  42. 0042specialize prime_field_polynomial_quotient_step_recode (ab)
  43. 0043specialize prime_field_polynomial_quotient_step_recode (ac)
  44. 0044specialize prime_field_polynomial_quotient_step_recode (bb)
  45. 0045specialize prime_field_polynomial_quotient_step_recode (bc)
  46. 0046specialize prime_field_polynomial_quotient_step_recode (M)
  47. 0047specialize prime_field_polynomial_quotient_step_recode (qb)
  48. 0048specialize prime_field_polynomial_quotient_step_recode (qc)
  49. 0049specialize prime_field_polynomial_quotient_step_recode (QB)
  50. 0050specialize prime_field_polynomial_quotient_step_recode (QC)
  51. 0051specialize prime_field_polynomial_quotient_step_recode (N)
  52. 0052specialize prime_field_polynomial_quotient_step_recode (q)
  53. 0053apply prime_field_polynomial_quotient_step_recode
  54. 0054exact he
  55. 0055exact hs
  56. 0056have hv : ∃ r. BetaAt(qb,qc,i,r)FpPolynomialQuotientStep(p,k,ab,ac,bb,bc,M,qb,qc,i,r)
  57. 0057specialize h (i)
  58. 0058apply h
  59. 0059exact hcase_right
  60. 0060cases hv
  61. 0061cases hv_witness
  62. 0062exists x
  63. 0063split
  64. 0064specialize he (i)
  65. 0065specialize he (x)
  66. 0066apply he
  67. 0067exact hcase_right
  68. 0068exact hv_witness_left
  69. 0069specialize prime_field_polynomial_quotient_step_recode (p)
  70. 0070specialize prime_field_polynomial_quotient_step_recode (k)
  71. 0071specialize prime_field_polynomial_quotient_step_recode (ab)
  72. 0072specialize prime_field_polynomial_quotient_step_recode (ac)
  73. 0073specialize prime_field_polynomial_quotient_step_recode (bb)
  74. 0074specialize prime_field_polynomial_quotient_step_recode (bc)
  75. 0075specialize prime_field_polynomial_quotient_step_recode (M)
  76. 0076specialize prime_field_polynomial_quotient_step_recode (qb)
  77. 0077specialize prime_field_polynomial_quotient_step_recode (qc)
  78. 0078specialize prime_field_polynomial_quotient_step_recode (QB)
  79. 0079specialize prime_field_polynomial_quotient_step_recode (QC)
  80. 0080specialize prime_field_polynomial_quotient_step_recode (i)
  81. 0081specialize prime_field_polynomial_quotient_step_recode (x)
  82. 0082apply prime_field_polynomial_quotient_step_recode
  83. 0083intro j
  84. 0084intro a
  85. 0085intro hj
  86. 0086intro ha
  87. 0087specialize he (j)
  88. 0088specialize he (a)
  89. 0089apply he
  90. 0090specialize lt_of_lt_of_le (j)
  91. 0091specialize lt_of_lt_of_le (S i)
  92. 0092specialize lt_of_lt_of_le (N)
  93. 0093apply lt_of_lt_of_le
  94. 0094specialize le_succ (S j)
  95. 0095specialize le_succ (i)
  96. 0096apply le_succ
  97. 0097exact hj
  98. 0098exact hcase_right
  99. 0099exact ha
  100. 0100exact hv_witness_right