Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Exact expanded first-order arithmetic statement
forall p k ab ac bb bc d qb qc N b i r. (~((p) = 1) /\ forall pfa_factor_left_division_match_prime pfa_factor_right_division_match_prime. (p) = pfa_factor_left_division_match_prime * pfa_factor_right_division_match_prime -> pfa_factor_left_division_match_prime = 1 \/ pfa_factor_right_division_match_prime = 1) -> (((exists ff_h_pfp_division_match_head. ff_h_pfp_division_match_head + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_division_match_head. bb = ff_q_pfp_division_match_head * S ((S (0)) * bc) + (b))) -> (((~((b) = 0)) /\ ((((exists pfa_gap_division_match_inversemultiplicationleft. pfa_gap_division_match_inversemultiplicationleft + S (b) = (p)) /\ (((exists pfa_gap_division_match_inversemultiplicationright. pfa_gap_division_match_inversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_division_match_inversemultiplicationresultbound. pfa_gap_division_match_inversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_division_match_inversemultiplicationresultcongruence pfa_offset_right_division_match_inversemultiplicationresultcongruence. ((b) * (k)) + (p) * pfa_offset_left_division_match_inversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_division_match_inversemultiplicationresultcongruence)))))))))))) -> (forall pfd_index_division_match_execution. (exists pfa_gap_division_match_executionbound. pfa_gap_division_match_executionbound + S (pfd_index_division_match_execution) = (N)) -> exists pfd_value_division_match_execution. ((((exists ff_h_pfp_division_match_executionentry. ff_h_pfp_division_match_executionentry + S (pfd_value_division_match_execution) = S ((S (pfd_index_division_match_execution)) * qc)) /\ exists ff_q_pfp_division_match_executionentry. qb = ff_q_pfp_division_match_executionentry * S ((S (pfd_index_division_match_execution)) * qc) + (pfd_value_division_match_execution))) /\ ((exists pfd_input_division_match_executionstep pfd_previous_division_match_executionstep pfd_difference_division_match_executionstep. ((((exists ff_h_pfp_division_match_executionstepinput. ff_h_pfp_division_match_executionstepinput + S (pfd_input_division_match_executionstep) = S ((S (pfd_index_division_match_execution)) * ac)) /\ exists ff_q_pfp_division_match_executionstepinput. ab = ff_q_pfp_division_match_executionstepinput * S ((S (pfd_index_division_match_execution)) * ac) + (pfd_input_division_match_executionstep))) /\ (((exists pfc_terms_code_division_match_executionstepprevious pfc_terms_scale_division_match_executionstepprevious pfc_natural_sum_division_match_executionstepprevious. ((forall pfc_index_division_match_executionsteppreviousdiagonal. (exists pfa_gap_division_match_executionsteppreviousdiagonalbound. pfa_gap_division_match_executionsteppreviousdiagonalbound + S (pfc_index_division_match_executionsteppreviousdiagonal) = (S (pfd_index_division_match_execution))) -> exists pfc_value_division_match_executionsteppreviousdiagonal. ((((exists ff_h_pfp_division_match_executionsteppreviousdiagonalentry. ff_h_pfp_division_match_executionsteppreviousdiagonalentry + S (pfc_value_division_match_executionsteppreviousdiagonal) = S ((S (pfc_index_division_match_executionsteppreviousdiagonal)) * pfc_terms_scale_division_match_executionstepprevious)) /\ exists ff_q_pfp_division_match_executionsteppreviousdiagonalentry. pfc_terms_code_division_match_executionstepprevious = ff_q_pfp_division_match_executionsteppreviousdiagonalentry * S ((S (pfc_index_division_match_executionsteppreviousdiagonal)) * pfc_terms_scale_division_match_executionstepprevious) + (pfc_value_division_match_executionsteppreviousdiagonal))) /\ ((exists pfc_complement_division_match_executionsteppreviousdiagonalterm pfc_left_division_match_executionsteppreviousdiagonalterm pfc_right_division_match_executionsteppreviousdiagonalterm. (((pfc_index_division_match_executionsteppreviousdiagonal)+pfc_complement_division_match_executionsteppreviousdiagonalterm=(pfd_index_division_match_execution)) /\ ((((((exists pfa_gap_division_match_executionsteppreviousdiagonaltermleftinside. pfa_gap_division_match_executionsteppreviousdiagonaltermleftinside + S (pfc_index_division_match_executionsteppreviousdiagonal) = (pfd_index_division_match_execution)) /\ ((((exists ff_h_pfp_division_match_executionsteppreviousdiagonaltermleftentry. ff_h_pfp_division_match_executionsteppreviousdiagonaltermleftentry + S (pfc_left_division_match_executionsteppreviousdiagonalterm) = S ((S (pfc_index_division_match_executionsteppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_executionsteppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_match_executionsteppreviousdiagonaltermleftentry * S ((S (pfc_index_division_match_executionsteppreviousdiagonal)) * qc) + (pfc_left_division_match_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_executionsteppreviousdiagonaltermleftoutside. pfc_gap_division_match_executionsteppreviousdiagonaltermleftoutside+(pfd_index_division_match_execution)=(pfc_index_division_match_executionsteppreviousdiagonal)) /\ (((pfc_left_division_match_executionsteppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_executionsteppreviousdiagonaltermrightinside. pfa_gap_division_match_executionsteppreviousdiagonaltermrightinside + S (pfc_complement_division_match_executionsteppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_executionsteppreviousdiagonaltermrightentry. ff_h_pfp_division_match_executionsteppreviousdiagonaltermrightentry + S (pfc_right_division_match_executionsteppreviousdiagonalterm) = S ((S (pfc_complement_division_match_executionsteppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_executionsteppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_match_executionsteppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_match_executionsteppreviousdiagonalterm)) * bc) + (pfc_right_division_match_executionsteppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_executionsteppreviousdiagonaltermrightoutside. pfc_gap_division_match_executionsteppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_executionsteppreviousdiagonalterm)) /\ (((pfc_right_division_match_executionsteppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_match_executionsteppreviousdiagonal)=pfc_left_division_match_executionsteppreviousdiagonalterm*pfc_right_division_match_executionsteppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_executionstepprevioussum fs_v_pfc_division_match_executionstepprevioussum. ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_start. fs_h_pfc_division_match_executionstepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_start. fs_u_pfc_division_match_executionstepprevioussum = fs_q_pfc_division_match_executionstepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_match_executionstepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_terminal. fs_h_pfc_division_match_executionstepprevioussum_body_terminal + S (pfc_natural_sum_division_match_executionstepprevious) = S ((S (S (pfd_index_division_match_execution))) * fs_v_pfc_division_match_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_terminal. fs_u_pfc_division_match_executionstepprevioussum = fs_q_pfc_division_match_executionstepprevioussum_body_terminal * S ((S (S (pfd_index_division_match_execution))) * fs_v_pfc_division_match_executionstepprevioussum) + (pfc_natural_sum_division_match_executionstepprevious))) /\ forall fs_i_pfc_division_match_executionstepprevioussum_body_steps. (exists fs_lt_pfc_division_match_executionstepprevioussum_body_steps_bound. fs_lt_pfc_division_match_executionstepprevioussum_body_steps_bound + S fs_i_pfc_division_match_executionstepprevioussum_body_steps = S (pfd_index_division_match_execution)) -> exists fs_a_pfc_division_match_executionstepprevioussum_body_steps fs_r_pfc_division_match_executionstepprevioussum_body_steps fs_s_pfc_division_match_executionstepprevioussum_body_steps. ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_steps_summand. fs_h_pfc_division_match_executionstepprevioussum_body_steps_summand + S (fs_a_pfc_division_match_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_match_executionstepprevious)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_steps_summand. pfc_terms_code_division_match_executionstepprevious = fs_q_pfc_division_match_executionstepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * pfc_terms_scale_division_match_executionstepprevious) + (fs_a_pfc_division_match_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_steps_partial. fs_h_pfc_division_match_executionstepprevioussum_body_steps_partial + S (fs_r_pfc_division_match_executionstepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_steps_partial. fs_u_pfc_division_match_executionstepprevioussum = fs_q_pfc_division_match_executionstepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_executionstepprevioussum) + (fs_r_pfc_division_match_executionstepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_executionstepprevioussum_body_steps_successor. fs_h_pfc_division_match_executionstepprevioussum_body_steps_successor + S (fs_s_pfc_division_match_executionstepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_executionstepprevioussum)) /\ exists fs_q_pfc_division_match_executionstepprevioussum_body_steps_successor. fs_u_pfc_division_match_executionstepprevioussum = fs_q_pfc_division_match_executionstepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_match_executionstepprevioussum_body_steps)) * fs_v_pfc_division_match_executionstepprevioussum) + (fs_s_pfc_division_match_executionstepprevioussum_body_steps))) /\ fs_s_pfc_division_match_executionstepprevioussum_body_steps = fs_r_pfc_division_match_executionstepprevioussum_body_steps + fs_a_pfc_division_match_executionstepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_match_executionsteppreviousresiduebound. pfa_gap_division_match_executionsteppreviousresiduebound + S (pfd_previous_division_match_executionstep) = (p)) /\ ((exists pfa_offset_left_division_match_executionsteppreviousresiduecongruence pfa_offset_right_division_match_executionsteppreviousresiduecongruence. (pfc_natural_sum_division_match_executionstepprevious) + (p) * pfa_offset_left_division_match_executionsteppreviousresiduecongruence = (pfd_previous_division_match_executionstep) + (p) * pfa_offset_right_division_match_executionsteppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_match_executionstepsubtractleft. pfa_gap_division_match_executionstepsubtractleft + S (pfd_previous_division_match_executionstep) = (p)) /\ (((exists pfa_gap_division_match_executionstepsubtractright. pfa_gap_division_match_executionstepsubtractright + S (pfd_difference_division_match_executionstep) = (p)) /\ ((((exists pfa_gap_division_match_executionstepsubtractresultbound. pfa_gap_division_match_executionstepsubtractresultbound + S (pfd_input_division_match_executionstep) = (p)) /\ ((exists pfa_offset_left_division_match_executionstepsubtractresultcongruence pfa_offset_right_division_match_executionstepsubtractresultcongruence. ((pfd_previous_division_match_executionstep) + (pfd_difference_division_match_executionstep)) + (p) * pfa_offset_left_division_match_executionstepsubtractresultcongruence = (pfd_input_division_match_executionstep) + (p) * pfa_offset_right_division_match_executionstepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_match_executionstepmultiplyleft. pfa_gap_division_match_executionstepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_match_executionstepmultiplyright. pfa_gap_division_match_executionstepmultiplyright + S (pfd_difference_division_match_executionstep) = (p)) /\ ((((exists pfa_gap_division_match_executionstepmultiplyresultbound. pfa_gap_division_match_executionstepmultiplyresultbound + S (pfd_value_division_match_execution) = (p)) /\ ((exists pfa_offset_left_division_match_executionstepmultiplyresultcongruence pfa_offset_right_division_match_executionstepmultiplyresultcongruence. ((k) * (pfd_difference_division_match_executionstep)) + (p) * pfa_offset_left_division_match_executionstepmultiplyresultcongruence = (pfd_value_division_match_execution) + (p) * pfa_offset_right_division_match_executionstepmultiplyresultcongruence))))))))))))))))))) -> (exists pfa_gap_division_match_index. pfa_gap_division_match_index + S (i) = (N)) -> (exists pfc_terms_code_division_match_actual_coefficient pfc_terms_scale_division_match_actual_coefficient pfc_natural_sum_division_match_actual_coefficient. ((forall pfc_index_division_match_actual_coefficientdiagonal. (exists pfa_gap_division_match_actual_coefficientdiagonalbound. pfa_gap_division_match_actual_coefficientdiagonalbound + S (pfc_index_division_match_actual_coefficientdiagonal) = (S (i))) -> exists pfc_value_division_match_actual_coefficientdiagonal. ((((exists ff_h_pfp_division_match_actual_coefficientdiagonalentry. ff_h_pfp_division_match_actual_coefficientdiagonalentry + S (pfc_value_division_match_actual_coefficientdiagonal) = S ((S (pfc_index_division_match_actual_coefficientdiagonal)) * pfc_terms_scale_division_match_actual_coefficient)) /\ exists ff_q_pfp_division_match_actual_coefficientdiagonalentry. pfc_terms_code_division_match_actual_coefficient = ff_q_pfp_division_match_actual_coefficientdiagonalentry * S ((S (pfc_index_division_match_actual_coefficientdiagonal)) * pfc_terms_scale_division_match_actual_coefficient) + (pfc_value_division_match_actual_coefficientdiagonal))) /\ ((exists pfc_complement_division_match_actual_coefficientdiagonalterm pfc_left_division_match_actual_coefficientdiagonalterm pfc_right_division_match_actual_coefficientdiagonalterm. (((pfc_index_division_match_actual_coefficientdiagonal)+pfc_complement_division_match_actual_coefficientdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_match_actual_coefficientdiagonaltermleftinside. pfa_gap_division_match_actual_coefficientdiagonaltermleftinside + S (pfc_index_division_match_actual_coefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_division_match_actual_coefficientdiagonaltermleftentry. ff_h_pfp_division_match_actual_coefficientdiagonaltermleftentry + S (pfc_left_division_match_actual_coefficientdiagonalterm) = S ((S (pfc_index_division_match_actual_coefficientdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_actual_coefficientdiagonaltermleftentry. qb = ff_q_pfp_division_match_actual_coefficientdiagonaltermleftentry * S ((S (pfc_index_division_match_actual_coefficientdiagonal)) * qc) + (pfc_left_division_match_actual_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_actual_coefficientdiagonaltermleftoutside. pfc_gap_division_match_actual_coefficientdiagonaltermleftoutside+(N)=(pfc_index_division_match_actual_coefficientdiagonal)) /\ (((pfc_left_division_match_actual_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_actual_coefficientdiagonaltermrightinside. pfa_gap_division_match_actual_coefficientdiagonaltermrightinside + S (pfc_complement_division_match_actual_coefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_actual_coefficientdiagonaltermrightentry. ff_h_pfp_division_match_actual_coefficientdiagonaltermrightentry + S (pfc_right_division_match_actual_coefficientdiagonalterm) = S ((S (pfc_complement_division_match_actual_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_actual_coefficientdiagonaltermrightentry. bb = ff_q_pfp_division_match_actual_coefficientdiagonaltermrightentry * S ((S (pfc_complement_division_match_actual_coefficientdiagonalterm)) * bc) + (pfc_right_division_match_actual_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_division_match_actual_coefficientdiagonaltermrightoutside. pfc_gap_division_match_actual_coefficientdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_actual_coefficientdiagonalterm)) /\ (((pfc_right_division_match_actual_coefficientdiagonalterm)=0))))) /\ (((pfc_value_division_match_actual_coefficientdiagonal)=pfc_left_division_match_actual_coefficientdiagonalterm*pfc_right_division_match_actual_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_actual_coefficientsum fs_v_pfc_division_match_actual_coefficientsum. ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_start. fs_h_pfc_division_match_actual_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_actual_coefficientsum)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_start. fs_u_pfc_division_match_actual_coefficientsum = fs_q_pfc_division_match_actual_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_division_match_actual_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_terminal. fs_h_pfc_division_match_actual_coefficientsum_body_terminal + S (pfc_natural_sum_division_match_actual_coefficient) = S ((S (S (i))) * fs_v_pfc_division_match_actual_coefficientsum)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_terminal. fs_u_pfc_division_match_actual_coefficientsum = fs_q_pfc_division_match_actual_coefficientsum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_match_actual_coefficientsum) + (pfc_natural_sum_division_match_actual_coefficient))) /\ forall fs_i_pfc_division_match_actual_coefficientsum_body_steps. (exists fs_lt_pfc_division_match_actual_coefficientsum_body_steps_bound. fs_lt_pfc_division_match_actual_coefficientsum_body_steps_bound + S fs_i_pfc_division_match_actual_coefficientsum_body_steps = S (i)) -> exists fs_a_pfc_division_match_actual_coefficientsum_body_steps fs_r_pfc_division_match_actual_coefficientsum_body_steps fs_s_pfc_division_match_actual_coefficientsum_body_steps. ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_steps_summand. fs_h_pfc_division_match_actual_coefficientsum_body_steps_summand + S (fs_a_pfc_division_match_actual_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * pfc_terms_scale_division_match_actual_coefficient)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_steps_summand. pfc_terms_code_division_match_actual_coefficient = fs_q_pfc_division_match_actual_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * pfc_terms_scale_division_match_actual_coefficient) + (fs_a_pfc_division_match_actual_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_steps_partial. fs_h_pfc_division_match_actual_coefficientsum_body_steps_partial + S (fs_r_pfc_division_match_actual_coefficientsum_body_steps) = S ((S (fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * fs_v_pfc_division_match_actual_coefficientsum)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_steps_partial. fs_u_pfc_division_match_actual_coefficientsum = fs_q_pfc_division_match_actual_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * fs_v_pfc_division_match_actual_coefficientsum) + (fs_r_pfc_division_match_actual_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_division_match_actual_coefficientsum_body_steps_successor. fs_h_pfc_division_match_actual_coefficientsum_body_steps_successor + S (fs_s_pfc_division_match_actual_coefficientsum_body_steps) = S ((S (S fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * fs_v_pfc_division_match_actual_coefficientsum)) /\ exists fs_q_pfc_division_match_actual_coefficientsum_body_steps_successor. fs_u_pfc_division_match_actual_coefficientsum = fs_q_pfc_division_match_actual_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_division_match_actual_coefficientsum_body_steps)) * fs_v_pfc_division_match_actual_coefficientsum) + (fs_s_pfc_division_match_actual_coefficientsum_body_steps))) /\ fs_s_pfc_division_match_actual_coefficientsum_body_steps = fs_r_pfc_division_match_actual_coefficientsum_body_steps + fs_a_pfc_division_match_actual_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_division_match_actual_coefficientresiduebound. pfa_gap_division_match_actual_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_division_match_actual_coefficientresiduecongruence pfa_offset_right_division_match_actual_coefficientresiduecongruence. (pfc_natural_sum_division_match_actual_coefficient) + (p) * pfa_offset_left_division_match_actual_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_division_match_actual_coefficientresiduecongruence))))))))) -> (((exists ff_h_pfp_division_match_input. ff_h_pfp_division_match_input + S (r) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_match_input. ab = ff_q_pfp_division_match_input * S ((S (i)) * ac) + (r)))Constructive proof overview
Generated structural guide
Every actual convolution coefficient below the constructed quotient length equals the corresponding input coefficient, proved from the execution rather than assumed.
The unchanged tactic script uses 5 declared prerequisites and contains 121 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_field_multiply_exists Alpha theorem; checked-use authorized PX0003 prime_field_convolution_coefficient_prefix_transport le_refl Alpha theorem; checked-use authorized PX0008 prime_field_convolution_coefficient_append PX0027 prime_field_polynomial_quotient_scalar_cancellationDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–19
03Establish hpointL20–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hq.
04Separate the logical casesL24–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
cases hpoint - L25
cases hpoint_witness - L26
cases hpoint_witness_right - L27
cases hpoint_witness_right_witness - L28
cases hpoint_witness_right_witness_witness - L29
cases hpoint_witness_right_witness_witness_witness - L30
cases hpoint_witness_right_witness_witness_witness_right - L31
cases hpoint_witness_right_witness_witness_witness_right_right
05Establish hqboundL32–32
Establish this local claim before using it. It is not an additional assumption.
- L32
have hqbound : exists pfa_gap_division_match_value_bound. pfa_gap_division_match_value_bound + S (x) = (p)
06Separate the logical casesL33–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
07Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact hpoint_witness_right_witness_witness_witness_right_right_right_right_right_left
08Establish hbndL37–37
Establish this local claim before using it. It is not an additional assumption.
- L37
have hbnd : exists pfa_gap_division_match_head_bound. pfa_gap_division_match_head_bound + S (b) = (p)
09Separate the logical casesL38–39
10Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hk_right_left
11Establish hproductL41–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field multiply exists.
12Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
cases hproduct
13Establish hshortL50–59
Establish this local claim before using it. It is not an additional assumption.
- L50
have hshort : FpConvolutionCoefficient(p,qb,qc,S i,bb,bc,S d,i,r)Definitions: FpConvolutionCoefficient - L51
specialize prime_field_convolution_coefficient_prefix_transport (p) - L52
specialize prime_field_convolution_coefficient_prefix_transport (qb) - L53
specialize prime_field_convolution_coefficient_prefix_transport (qc) - L54
specialize prime_field_convolution_coefficient_prefix_transport (N) - L55
specialize prime_field_convolution_coefficient_prefix_transport (qb) - L56
specialize prime_field_convolution_coefficient_prefix_transport (qc) - L57
specialize prime_field_convolution_coefficient_prefix_transport (S i) - L58
specialize prime_field_convolution_coefficient_prefix_transport (bb) - L59
specialize prime_field_convolution_coefficient_prefix_transport (bc)
14Use earlier factsL60–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
specialize prime_field_convolution_coefficient_prefix_transport (S d) - L61
specialize prime_field_convolution_coefficient_prefix_transport (S i) - L62
specialize prime_field_convolution_coefficient_prefix_transport (i) - L63
specialize prime_field_convolution_coefficient_prefix_transport (r) - L64
apply prime_field_convolution_coefficient_prefix_transport - L65
exact hi - L66
specialize le_refl (S i) - L67
apply le_refl
15Fix variables and assumptionsL68–71
16Use earlier factsL72–75
17Establish hsumL76–85
Establish this local claim before using it. It is not an additional assumption.
- L76
have hsum : ((exists pfa_gap_division_match_sumleft. pfa_gap_division_match_sumleft + S (x2) = (p)) /\ (((exists pfa_gap_division_match_sumright. pfa_gap_division_match_sumright + S (x4) = (p)) /\ ((((exists pfa_gap_division_match_sumresultbound. pfa_gap_division_match_sumresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_division_match_sumresultcongruence pfa_offset_right_division_match_sumresultcongruence. ((x2) + (x4)) + (p) * pfa_offset_left_division_match_sumresultcongruence = (r) + (p) * pfa_offset_right_division_match_sumresultcongruence)))))))) - L77
specialize prime_field_convolution_coefficient_append (p) - L78
specialize prime_field_convolution_coefficient_append (qb) - L79
specialize prime_field_convolution_coefficient_append (qc) - L80
specialize prime_field_convolution_coefficient_append (qb) - L81
specialize prime_field_convolution_coefficient_append (qc) - L82
specialize prime_field_convolution_coefficient_append (bb) - L83
specialize prime_field_convolution_coefficient_append (bc) - L84
specialize prime_field_convolution_coefficient_append (d) - L85
specialize prime_field_convolution_coefficient_append (i)
18Use earlier factsL86–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
specialize prime_field_convolution_coefficient_append (x) - L87
specialize prime_field_convolution_coefficient_append (b) - L88
specialize prime_field_convolution_coefficient_append (x2) - L89
specialize prime_field_convolution_coefficient_append (x4) - L90
specialize prime_field_convolution_coefficient_append (r) - L91
apply prime_field_convolution_coefficient_append
19Fix variables and assumptionsL92–95
20Use earlier factsL96–101
21Establish heqL102–111
Establish this local claim before using it. It is not an additional assumption.
- L102
have heq : r=x1 - L103
specialize prime_field_polynomial_quotient_scalar_cancellation (p) - L104
specialize prime_field_polynomial_quotient_scalar_cancellation (b) - L105
specialize prime_field_polynomial_quotient_scalar_cancellation (k) - L106
specialize prime_field_polynomial_quotient_scalar_cancellation (x2) - L107
specialize prime_field_polynomial_quotient_scalar_cancellation (x3) - L108
specialize prime_field_polynomial_quotient_scalar_cancellation (x1) - L109
specialize prime_field_polynomial_quotient_scalar_cancellation (x) - L110
specialize prime_field_polynomial_quotient_scalar_cancellation (x4) - L111
specialize prime_field_polynomial_quotient_scalar_cancellation (r)
22Use earlier factsL112–118
Instantiate or apply named facts and discharge the corresponding proof obligations.
23Calculate and transport equalitiesL119–120
24Use earlier factsL121–121
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L121
exact hpoint_witness_right_witness_witness_witness_left
Original exact command ledger · 121 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro bb - 0006
intro bc - 0007
intro d - 0008
intro qb - 0009
intro qc - 0010
intro N - 0011
intro b - 0012
intro i - 0013
intro r - 0014
intro hp - 0015
intro hb - 0016
intro hk - 0017
intro hq - 0018
intro hi - 0019
intro hr - 0020
have hpoint : exists q. ((((exists ff_h_pfp_division_match_quotient_entry. ff_h_pfp_division_match_quotient_entry + S (q) = S ((S (i)) * qc)) /\ exists ff_q_pfp_division_match_quotient_entry. qb = ff_q_pfp_division_match_quotient_entry * S ((S (i)) * qc) + (q))) /\ ((exists pfd_input_division_match_step pfd_previous_division_match_step pfd_difference_division_match_step. ((((exists ff_h_pfp_division_match_stepinput. ff_h_pfp_division_match_stepinput + S (pfd_input_division_match_step) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_match_stepinput. ab = ff_q_pfp_division_match_stepinput * S ((S (i)) * ac) + (pfd_input_division_match_step))) /\ (((exists pfc_terms_code_division_match_stepprevious pfc_terms_scale_division_match_stepprevious pfc_natural_sum_division_match_stepprevious. ((forall pfc_index_division_match_steppreviousdiagonal. (exists pfa_gap_division_match_steppreviousdiagonalbound. pfa_gap_division_match_steppreviousdiagonalbound + S (pfc_index_division_match_steppreviousdiagonal) = (S (i))) -> exists pfc_value_division_match_steppreviousdiagonal. ((((exists ff_h_pfp_division_match_steppreviousdiagonalentry. ff_h_pfp_division_match_steppreviousdiagonalentry + S (pfc_value_division_match_steppreviousdiagonal) = S ((S (pfc_index_division_match_steppreviousdiagonal)) * pfc_terms_scale_division_match_stepprevious)) /\ exists ff_q_pfp_division_match_steppreviousdiagonalentry. pfc_terms_code_division_match_stepprevious = ff_q_pfp_division_match_steppreviousdiagonalentry * S ((S (pfc_index_division_match_steppreviousdiagonal)) * pfc_terms_scale_division_match_stepprevious) + (pfc_value_division_match_steppreviousdiagonal))) /\ ((exists pfc_complement_division_match_steppreviousdiagonalterm pfc_left_division_match_steppreviousdiagonalterm pfc_right_division_match_steppreviousdiagonalterm. (((pfc_index_division_match_steppreviousdiagonal)+pfc_complement_division_match_steppreviousdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_match_steppreviousdiagonaltermleftinside. pfa_gap_division_match_steppreviousdiagonaltermleftinside + S (pfc_index_division_match_steppreviousdiagonal) = (i)) /\ ((((exists ff_h_pfp_division_match_steppreviousdiagonaltermleftentry. ff_h_pfp_division_match_steppreviousdiagonaltermleftentry + S (pfc_left_division_match_steppreviousdiagonalterm) = S ((S (pfc_index_division_match_steppreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_steppreviousdiagonaltermleftentry. qb = ff_q_pfp_division_match_steppreviousdiagonaltermleftentry * S ((S (pfc_index_division_match_steppreviousdiagonal)) * qc) + (pfc_left_division_match_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_steppreviousdiagonaltermleftoutside. pfc_gap_division_match_steppreviousdiagonaltermleftoutside+(i)=(pfc_index_division_match_steppreviousdiagonal)) /\ (((pfc_left_division_match_steppreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_steppreviousdiagonaltermrightinside. pfa_gap_division_match_steppreviousdiagonaltermrightinside + S (pfc_complement_division_match_steppreviousdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_steppreviousdiagonaltermrightentry. ff_h_pfp_division_match_steppreviousdiagonaltermrightentry + S (pfc_right_division_match_steppreviousdiagonalterm) = S ((S (pfc_complement_division_match_steppreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_steppreviousdiagonaltermrightentry. bb = ff_q_pfp_division_match_steppreviousdiagonaltermrightentry * S ((S (pfc_complement_division_match_steppreviousdiagonalterm)) * bc) + (pfc_right_division_match_steppreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_match_steppreviousdiagonaltermrightoutside. pfc_gap_division_match_steppreviousdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_steppreviousdiagonalterm)) /\ (((pfc_right_division_match_steppreviousdiagonalterm)=0))))) /\ (((pfc_value_division_match_steppreviousdiagonal)=pfc_left_division_match_steppreviousdiagonalterm*pfc_right_division_match_steppreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_stepprevioussum fs_v_pfc_division_match_stepprevioussum. ((((exists fs_h_pfc_division_match_stepprevioussum_body_start. fs_h_pfc_division_match_stepprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_stepprevioussum)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_start. fs_u_pfc_division_match_stepprevioussum = fs_q_pfc_division_match_stepprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_match_stepprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_match_stepprevioussum_body_terminal. fs_h_pfc_division_match_stepprevioussum_body_terminal + S (pfc_natural_sum_division_match_stepprevious) = S ((S (S (i))) * fs_v_pfc_division_match_stepprevioussum)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_terminal. fs_u_pfc_division_match_stepprevioussum = fs_q_pfc_division_match_stepprevioussum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_match_stepprevioussum) + (pfc_natural_sum_division_match_stepprevious))) /\ forall fs_i_pfc_division_match_stepprevioussum_body_steps. (exists fs_lt_pfc_division_match_stepprevioussum_body_steps_bound. fs_lt_pfc_division_match_stepprevioussum_body_steps_bound + S fs_i_pfc_division_match_stepprevioussum_body_steps = S (i)) -> exists fs_a_pfc_division_match_stepprevioussum_body_steps fs_r_pfc_division_match_stepprevioussum_body_steps fs_s_pfc_division_match_stepprevioussum_body_steps. ((((exists fs_h_pfc_division_match_stepprevioussum_body_steps_summand. fs_h_pfc_division_match_stepprevioussum_body_steps_summand + S (fs_a_pfc_division_match_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_stepprevioussum_body_steps)) * pfc_terms_scale_division_match_stepprevious)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_steps_summand. pfc_terms_code_division_match_stepprevious = fs_q_pfc_division_match_stepprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_match_stepprevioussum_body_steps)) * pfc_terms_scale_division_match_stepprevious) + (fs_a_pfc_division_match_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_stepprevioussum_body_steps_partial. fs_h_pfc_division_match_stepprevioussum_body_steps_partial + S (fs_r_pfc_division_match_stepprevioussum_body_steps) = S ((S (fs_i_pfc_division_match_stepprevioussum_body_steps)) * fs_v_pfc_division_match_stepprevioussum)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_steps_partial. fs_u_pfc_division_match_stepprevioussum = fs_q_pfc_division_match_stepprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_match_stepprevioussum_body_steps)) * fs_v_pfc_division_match_stepprevioussum) + (fs_r_pfc_division_match_stepprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_match_stepprevioussum_body_steps_successor. fs_h_pfc_division_match_stepprevioussum_body_steps_successor + S (fs_s_pfc_division_match_stepprevioussum_body_steps) = S ((S (S fs_i_pfc_division_match_stepprevioussum_body_steps)) * fs_v_pfc_division_match_stepprevioussum)) /\ exists fs_q_pfc_division_match_stepprevioussum_body_steps_successor. fs_u_pfc_division_match_stepprevioussum = fs_q_pfc_division_match_stepprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_match_stepprevioussum_body_steps)) * fs_v_pfc_division_match_stepprevioussum) + (fs_s_pfc_division_match_stepprevioussum_body_steps))) /\ fs_s_pfc_division_match_stepprevioussum_body_steps = fs_r_pfc_division_match_stepprevioussum_body_steps + fs_a_pfc_division_match_stepprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_match_steppreviousresiduebound. pfa_gap_division_match_steppreviousresiduebound + S (pfd_previous_division_match_step) = (p)) /\ ((exists pfa_offset_left_division_match_steppreviousresiduecongruence pfa_offset_right_division_match_steppreviousresiduecongruence. (pfc_natural_sum_division_match_stepprevious) + (p) * pfa_offset_left_division_match_steppreviousresiduecongruence = (pfd_previous_division_match_step) + (p) * pfa_offset_right_division_match_steppreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_match_stepsubtractleft. pfa_gap_division_match_stepsubtractleft + S (pfd_previous_division_match_step) = (p)) /\ (((exists pfa_gap_division_match_stepsubtractright. pfa_gap_division_match_stepsubtractright + S (pfd_difference_division_match_step) = (p)) /\ ((((exists pfa_gap_division_match_stepsubtractresultbound. pfa_gap_division_match_stepsubtractresultbound + S (pfd_input_division_match_step) = (p)) /\ ((exists pfa_offset_left_division_match_stepsubtractresultcongruence pfa_offset_right_division_match_stepsubtractresultcongruence. ((pfd_previous_division_match_step) + (pfd_difference_division_match_step)) + (p) * pfa_offset_left_division_match_stepsubtractresultcongruence = (pfd_input_division_match_step) + (p) * pfa_offset_right_division_match_stepsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_match_stepmultiplyleft. pfa_gap_division_match_stepmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_match_stepmultiplyright. pfa_gap_division_match_stepmultiplyright + S (pfd_difference_division_match_step) = (p)) /\ ((((exists pfa_gap_division_match_stepmultiplyresultbound. pfa_gap_division_match_stepmultiplyresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_match_stepmultiplyresultcongruence pfa_offset_right_division_match_stepmultiplyresultcongruence. ((k) * (pfd_difference_division_match_step)) + (p) * pfa_offset_left_division_match_stepmultiplyresultcongruence = (q) + (p) * pfa_offset_right_division_match_stepmultiplyresultcongruence)))))))))))))))))) - 0021
specialize hq (i) - 0022
apply hq - 0023
exact hi - 0024
cases hpoint - 0025
cases hpoint_witness - 0026
cases hpoint_witness_right - 0027
cases hpoint_witness_right_witness - 0028
cases hpoint_witness_right_witness_witness - 0029
cases hpoint_witness_right_witness_witness_witness - 0030
cases hpoint_witness_right_witness_witness_witness_right - 0031
cases hpoint_witness_right_witness_witness_witness_right_right - 0032
have hqbound : exists pfa_gap_division_match_value_bound. pfa_gap_division_match_value_bound + S (x) = (p) - 0033
cases hpoint_witness_right_witness_witness_witness_right_right_right - 0034
cases hpoint_witness_right_witness_witness_witness_right_right_right_right - 0035
cases hpoint_witness_right_witness_witness_witness_right_right_right_right_right - 0036
exact hpoint_witness_right_witness_witness_witness_right_right_right_right_right_left - 0037
have hbnd : exists pfa_gap_division_match_head_bound. pfa_gap_division_match_head_bound + S (b) = (p) - 0038
cases hk - 0039
cases hk_right - 0040
exact hk_right_left - 0041
have hproduct : exists t. (((exists pfa_gap_division_match_productleft. pfa_gap_division_match_productleft + S (x) = (p)) /\ (((exists pfa_gap_division_match_productright. pfa_gap_division_match_productright + S (b) = (p)) /\ ((((exists pfa_gap_division_match_productresultbound. pfa_gap_division_match_productresultbound + S (t) = (p)) /\ ((exists pfa_offset_left_division_match_productresultcongruence pfa_offset_right_division_match_productresultcongruence. ((x) * (b)) + (p) * pfa_offset_left_division_match_productresultcongruence = (t) + (p) * pfa_offset_right_division_match_productresultcongruence))))))))) - 0042
specialize prime_field_multiply_exists (p) - 0043
specialize prime_field_multiply_exists (x) - 0044
specialize prime_field_multiply_exists (b) - 0045
apply prime_field_multiply_exists - 0046
exact hp - 0047
exact hqbound - 0048
exact hbnd - 0049
cases hproduct - 0050
have hshort : exists pfc_terms_code_division_match_shorter pfc_terms_scale_division_match_shorter pfc_natural_sum_division_match_shorter. ((forall pfc_index_division_match_shorterdiagonal. (exists pfa_gap_division_match_shorterdiagonalbound. pfa_gap_division_match_shorterdiagonalbound + S (pfc_index_division_match_shorterdiagonal) = (S (i))) -> exists pfc_value_division_match_shorterdiagonal. ((((exists ff_h_pfp_division_match_shorterdiagonalentry. ff_h_pfp_division_match_shorterdiagonalentry + S (pfc_value_division_match_shorterdiagonal) = S ((S (pfc_index_division_match_shorterdiagonal)) * pfc_terms_scale_division_match_shorter)) /\ exists ff_q_pfp_division_match_shorterdiagonalentry. pfc_terms_code_division_match_shorter = ff_q_pfp_division_match_shorterdiagonalentry * S ((S (pfc_index_division_match_shorterdiagonal)) * pfc_terms_scale_division_match_shorter) + (pfc_value_division_match_shorterdiagonal))) /\ ((exists pfc_complement_division_match_shorterdiagonalterm pfc_left_division_match_shorterdiagonalterm pfc_right_division_match_shorterdiagonalterm. (((pfc_index_division_match_shorterdiagonal)+pfc_complement_division_match_shorterdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_match_shorterdiagonaltermleftinside. pfa_gap_division_match_shorterdiagonaltermleftinside + S (pfc_index_division_match_shorterdiagonal) = (S i)) /\ ((((exists ff_h_pfp_division_match_shorterdiagonaltermleftentry. ff_h_pfp_division_match_shorterdiagonaltermleftentry + S (pfc_left_division_match_shorterdiagonalterm) = S ((S (pfc_index_division_match_shorterdiagonal)) * qc)) /\ exists ff_q_pfp_division_match_shorterdiagonaltermleftentry. qb = ff_q_pfp_division_match_shorterdiagonaltermleftentry * S ((S (pfc_index_division_match_shorterdiagonal)) * qc) + (pfc_left_division_match_shorterdiagonalterm)))))) \/ (((exists pfc_gap_division_match_shorterdiagonaltermleftoutside. pfc_gap_division_match_shorterdiagonaltermleftoutside+(S i)=(pfc_index_division_match_shorterdiagonal)) /\ (((pfc_left_division_match_shorterdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_match_shorterdiagonaltermrightinside. pfa_gap_division_match_shorterdiagonaltermrightinside + S (pfc_complement_division_match_shorterdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_division_match_shorterdiagonaltermrightentry. ff_h_pfp_division_match_shorterdiagonaltermrightentry + S (pfc_right_division_match_shorterdiagonalterm) = S ((S (pfc_complement_division_match_shorterdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_match_shorterdiagonaltermrightentry. bb = ff_q_pfp_division_match_shorterdiagonaltermrightentry * S ((S (pfc_complement_division_match_shorterdiagonalterm)) * bc) + (pfc_right_division_match_shorterdiagonalterm)))))) \/ (((exists pfc_gap_division_match_shorterdiagonaltermrightoutside. pfc_gap_division_match_shorterdiagonaltermrightoutside+(S d)=(pfc_complement_division_match_shorterdiagonalterm)) /\ (((pfc_right_division_match_shorterdiagonalterm)=0))))) /\ (((pfc_value_division_match_shorterdiagonal)=pfc_left_division_match_shorterdiagonalterm*pfc_right_division_match_shorterdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_match_shortersum fs_v_pfc_division_match_shortersum. ((((exists fs_h_pfc_division_match_shortersum_body_start. fs_h_pfc_division_match_shortersum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_match_shortersum)) /\ exists fs_q_pfc_division_match_shortersum_body_start. fs_u_pfc_division_match_shortersum = fs_q_pfc_division_match_shortersum_body_start * S ((S (0)) * fs_v_pfc_division_match_shortersum) + (0))) /\ ((((exists fs_h_pfc_division_match_shortersum_body_terminal. fs_h_pfc_division_match_shortersum_body_terminal + S (pfc_natural_sum_division_match_shorter) = S ((S (S (i))) * fs_v_pfc_division_match_shortersum)) /\ exists fs_q_pfc_division_match_shortersum_body_terminal. fs_u_pfc_division_match_shortersum = fs_q_pfc_division_match_shortersum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_match_shortersum) + (pfc_natural_sum_division_match_shorter))) /\ forall fs_i_pfc_division_match_shortersum_body_steps. (exists fs_lt_pfc_division_match_shortersum_body_steps_bound. fs_lt_pfc_division_match_shortersum_body_steps_bound + S fs_i_pfc_division_match_shortersum_body_steps = S (i)) -> exists fs_a_pfc_division_match_shortersum_body_steps fs_r_pfc_division_match_shortersum_body_steps fs_s_pfc_division_match_shortersum_body_steps. ((((exists fs_h_pfc_division_match_shortersum_body_steps_summand. fs_h_pfc_division_match_shortersum_body_steps_summand + S (fs_a_pfc_division_match_shortersum_body_steps) = S ((S (fs_i_pfc_division_match_shortersum_body_steps)) * pfc_terms_scale_division_match_shorter)) /\ exists fs_q_pfc_division_match_shortersum_body_steps_summand. pfc_terms_code_division_match_shorter = fs_q_pfc_division_match_shortersum_body_steps_summand * S ((S (fs_i_pfc_division_match_shortersum_body_steps)) * pfc_terms_scale_division_match_shorter) + (fs_a_pfc_division_match_shortersum_body_steps))) /\ ((((exists fs_h_pfc_division_match_shortersum_body_steps_partial. fs_h_pfc_division_match_shortersum_body_steps_partial + S (fs_r_pfc_division_match_shortersum_body_steps) = S ((S (fs_i_pfc_division_match_shortersum_body_steps)) * fs_v_pfc_division_match_shortersum)) /\ exists fs_q_pfc_division_match_shortersum_body_steps_partial. fs_u_pfc_division_match_shortersum = fs_q_pfc_division_match_shortersum_body_steps_partial * S ((S (fs_i_pfc_division_match_shortersum_body_steps)) * fs_v_pfc_division_match_shortersum) + (fs_r_pfc_division_match_shortersum_body_steps))) /\ ((((exists fs_h_pfc_division_match_shortersum_body_steps_successor. fs_h_pfc_division_match_shortersum_body_steps_successor + S (fs_s_pfc_division_match_shortersum_body_steps) = S ((S (S fs_i_pfc_division_match_shortersum_body_steps)) * fs_v_pfc_division_match_shortersum)) /\ exists fs_q_pfc_division_match_shortersum_body_steps_successor. fs_u_pfc_division_match_shortersum = fs_q_pfc_division_match_shortersum_body_steps_successor * S ((S (S fs_i_pfc_division_match_shortersum_body_steps)) * fs_v_pfc_division_match_shortersum) + (fs_s_pfc_division_match_shortersum_body_steps))) /\ fs_s_pfc_division_match_shortersum_body_steps = fs_r_pfc_division_match_shortersum_body_steps + fs_a_pfc_division_match_shortersum_body_steps)))))) /\ ((((exists pfa_gap_division_match_shorterresiduebound. pfa_gap_division_match_shorterresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_division_match_shorterresiduecongruence pfa_offset_right_division_match_shorterresiduecongruence. (pfc_natural_sum_division_match_shorter) + (p) * pfa_offset_left_division_match_shorterresiduecongruence = (r) + (p) * pfa_offset_right_division_match_shorterresiduecongruence)))))))) - 0051
specialize prime_field_convolution_coefficient_prefix_transport (p) - 0052
specialize prime_field_convolution_coefficient_prefix_transport (qb) - 0053
specialize prime_field_convolution_coefficient_prefix_transport (qc) - 0054
specialize prime_field_convolution_coefficient_prefix_transport (N) - 0055
specialize prime_field_convolution_coefficient_prefix_transport (qb) - 0056
specialize prime_field_convolution_coefficient_prefix_transport (qc) - 0057
specialize prime_field_convolution_coefficient_prefix_transport (S i) - 0058
specialize prime_field_convolution_coefficient_prefix_transport (bb) - 0059
specialize prime_field_convolution_coefficient_prefix_transport (bc) - 0060
specialize prime_field_convolution_coefficient_prefix_transport (S d) - 0061
specialize prime_field_convolution_coefficient_prefix_transport (S i) - 0062
specialize prime_field_convolution_coefficient_prefix_transport (i) - 0063
specialize prime_field_convolution_coefficient_prefix_transport (r) - 0064
apply prime_field_convolution_coefficient_prefix_transport - 0065
exact hi - 0066
specialize le_refl (S i) - 0067
apply le_refl - 0068
intro j - 0069
intro v - 0070
intro hj - 0071
intro hv - 0072
exact hv - 0073
specialize le_refl (S i) - 0074
apply le_refl - 0075
exact hr - 0076
have hsum : ((exists pfa_gap_division_match_sumleft. pfa_gap_division_match_sumleft + S (x2) = (p)) /\ (((exists pfa_gap_division_match_sumright. pfa_gap_division_match_sumright + S (x4) = (p)) /\ ((((exists pfa_gap_division_match_sumresultbound. pfa_gap_division_match_sumresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_division_match_sumresultcongruence pfa_offset_right_division_match_sumresultcongruence. ((x2) + (x4)) + (p) * pfa_offset_left_division_match_sumresultcongruence = (r) + (p) * pfa_offset_right_division_match_sumresultcongruence)))))))) - 0077
specialize prime_field_convolution_coefficient_append (p) - 0078
specialize prime_field_convolution_coefficient_append (qb) - 0079
specialize prime_field_convolution_coefficient_append (qc) - 0080
specialize prime_field_convolution_coefficient_append (qb) - 0081
specialize prime_field_convolution_coefficient_append (qc) - 0082
specialize prime_field_convolution_coefficient_append (bb) - 0083
specialize prime_field_convolution_coefficient_append (bc) - 0084
specialize prime_field_convolution_coefficient_append (d) - 0085
specialize prime_field_convolution_coefficient_append (i) - 0086
specialize prime_field_convolution_coefficient_append (x) - 0087
specialize prime_field_convolution_coefficient_append (b) - 0088
specialize prime_field_convolution_coefficient_append (x2) - 0089
specialize prime_field_convolution_coefficient_append (x4) - 0090
specialize prime_field_convolution_coefficient_append (r) - 0091
apply prime_field_convolution_coefficient_append - 0092
intro j - 0093
intro v - 0094
intro hj - 0095
intro hv - 0096
exact hv - 0097
exact hpoint_witness_left - 0098
exact hb - 0099
exact hpoint_witness_right_witness_witness_witness_right_left - 0100
exact hshort - 0101
exact hproduct_witness - 0102
have heq : r=x1 - 0103
specialize prime_field_polynomial_quotient_scalar_cancellation (p) - 0104
specialize prime_field_polynomial_quotient_scalar_cancellation (b) - 0105
specialize prime_field_polynomial_quotient_scalar_cancellation (k) - 0106
specialize prime_field_polynomial_quotient_scalar_cancellation (x2) - 0107
specialize prime_field_polynomial_quotient_scalar_cancellation (x3) - 0108
specialize prime_field_polynomial_quotient_scalar_cancellation (x1) - 0109
specialize prime_field_polynomial_quotient_scalar_cancellation (x) - 0110
specialize prime_field_polynomial_quotient_scalar_cancellation (x4) - 0111
specialize prime_field_polynomial_quotient_scalar_cancellation (r) - 0112
apply prime_field_polynomial_quotient_scalar_cancellation - 0113
exact hp - 0114
exact hk - 0115
exact hpoint_witness_right_witness_witness_witness_right_right_left - 0116
exact hpoint_witness_right_witness_witness_witness_right_right_right - 0117
exact hproduct_witness - 0118
exact hsum - 0119
rewrite heq - 0120
rewrite heq - 0121
exact hpoint_witness_right_witness_witness_witness_left