PX0028

prime_field_polynomial_quotient_step_recode

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

An execution step depends only on the actual previously built quotient prefix, never on unused beta entries.

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 M qb qc QB QC i q. (forall mdr_i_pfp_division_step_recode mdr_a_pfp_division_step_recode. (exists mdr_gap_pfp_division_step_recodeb. mdr_gap_pfp_division_step_recodeb + S (mdr_i_pfp_division_step_recode) = (i)) -> (((exists ff_h_mdr_pfp_division_step_recodeo. ff_h_mdr_pfp_division_step_recodeo + S (mdr_a_pfp_division_step_recode) = S ((S (mdr_i_pfp_division_step_recode)) * qc)) /\ exists ff_q_mdr_pfp_division_step_recodeo. qb = ff_q_mdr_pfp_division_step_recodeo * S ((S (mdr_i_pfp_division_step_recode)) * qc) + (mdr_a_pfp_division_step_recode))) -> (((exists ff_h_mdr_pfp_division_step_recoden. ff_h_mdr_pfp_division_step_recoden + S (mdr_a_pfp_division_step_recode) = S ((S (mdr_i_pfp_division_step_recode)) * QC)) /\ exists ff_q_mdr_pfp_division_step_recoden. QB = ff_q_mdr_pfp_division_step_recoden * S ((S (mdr_i_pfp_division_step_recode)) * QC) + (mdr_a_pfp_division_step_recode)))) -> (exists pfd_input_division_step_old pfd_previous_division_step_old pfd_difference_division_step_old. ((((exists ff_h_pfp_division_step_oldinput. ff_h_pfp_division_step_oldinput + S (pfd_input_division_step_old) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_step_oldinput. ab = ff_q_pfp_division_step_oldinput * S ((S (i)) * ac) + (pfd_input_division_step_old))) /\ (((exists pfc_terms_code_division_step_oldprevious pfc_terms_scale_division_step_oldprevious pfc_natural_sum_division_step_oldprevious. ((forall pfc_index_division_step_oldpreviousdiagonal. (exists pfa_gap_division_step_oldpreviousdiagonalbound. pfa_gap_division_step_oldpreviousdiagonalbound + S (pfc_index_division_step_oldpreviousdiagonal) = (S (i))) -> exists pfc_value_division_step_oldpreviousdiagonal. ((((exists ff_h_pfp_division_step_oldpreviousdiagonalentry. ff_h_pfp_division_step_oldpreviousdiagonalentry + S (pfc_value_division_step_oldpreviousdiagonal) = S ((S (pfc_index_division_step_oldpreviousdiagonal)) * pfc_terms_scale_division_step_oldprevious)) /\ exists ff_q_pfp_division_step_oldpreviousdiagonalentry. pfc_terms_code_division_step_oldprevious = ff_q_pfp_division_step_oldpreviousdiagonalentry * S ((S (pfc_index_division_step_oldpreviousdiagonal)) * pfc_terms_scale_division_step_oldprevious) + (pfc_value_division_step_oldpreviousdiagonal))) /\ ((exists pfc_complement_division_step_oldpreviousdiagonalterm pfc_left_division_step_oldpreviousdiagonalterm pfc_right_division_step_oldpreviousdiagonalterm. (((pfc_index_division_step_oldpreviousdiagonal)+pfc_complement_division_step_oldpreviousdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_step_oldpreviousdiagonaltermleftinside. pfa_gap_division_step_oldpreviousdiagonaltermleftinside + S (pfc_index_division_step_oldpreviousdiagonal) = (i)) /\ ((((exists ff_h_pfp_division_step_oldpreviousdiagonaltermleftentry. ff_h_pfp_division_step_oldpreviousdiagonaltermleftentry + S (pfc_left_division_step_oldpreviousdiagonalterm) = S ((S (pfc_index_division_step_oldpreviousdiagonal)) * qc)) /\ exists ff_q_pfp_division_step_oldpreviousdiagonaltermleftentry. qb = ff_q_pfp_division_step_oldpreviousdiagonaltermleftentry * S ((S (pfc_index_division_step_oldpreviousdiagonal)) * qc) + (pfc_left_division_step_oldpreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_step_oldpreviousdiagonaltermleftoutside. pfc_gap_division_step_oldpreviousdiagonaltermleftoutside+(i)=(pfc_index_division_step_oldpreviousdiagonal)) /\ (((pfc_left_division_step_oldpreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_step_oldpreviousdiagonaltermrightinside. pfa_gap_division_step_oldpreviousdiagonaltermrightinside + S (pfc_complement_division_step_oldpreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_step_oldpreviousdiagonaltermrightentry. ff_h_pfp_division_step_oldpreviousdiagonaltermrightentry + S (pfc_right_division_step_oldpreviousdiagonalterm) = S ((S (pfc_complement_division_step_oldpreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_step_oldpreviousdiagonaltermrightentry. bb = ff_q_pfp_division_step_oldpreviousdiagonaltermrightentry * S ((S (pfc_complement_division_step_oldpreviousdiagonalterm)) * bc) + (pfc_right_division_step_oldpreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_step_oldpreviousdiagonaltermrightoutside. pfc_gap_division_step_oldpreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_step_oldpreviousdiagonalterm)) /\ (((pfc_right_division_step_oldpreviousdiagonalterm)=0))))) /\ (((pfc_value_division_step_oldpreviousdiagonal)=pfc_left_division_step_oldpreviousdiagonalterm*pfc_right_division_step_oldpreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_step_oldprevioussum fs_v_pfc_division_step_oldprevioussum. ((((exists fs_h_pfc_division_step_oldprevioussum_body_start. fs_h_pfc_division_step_oldprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_step_oldprevioussum)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_start. fs_u_pfc_division_step_oldprevioussum = fs_q_pfc_division_step_oldprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_step_oldprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_step_oldprevioussum_body_terminal. fs_h_pfc_division_step_oldprevioussum_body_terminal + S (pfc_natural_sum_division_step_oldprevious) = S ((S (S (i))) * fs_v_pfc_division_step_oldprevioussum)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_terminal. fs_u_pfc_division_step_oldprevioussum = fs_q_pfc_division_step_oldprevioussum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_step_oldprevioussum) + (pfc_natural_sum_division_step_oldprevious))) /\ forall fs_i_pfc_division_step_oldprevioussum_body_steps. (exists fs_lt_pfc_division_step_oldprevioussum_body_steps_bound. fs_lt_pfc_division_step_oldprevioussum_body_steps_bound + S fs_i_pfc_division_step_oldprevioussum_body_steps = S (i)) -> exists fs_a_pfc_division_step_oldprevioussum_body_steps fs_r_pfc_division_step_oldprevioussum_body_steps fs_s_pfc_division_step_oldprevioussum_body_steps. ((((exists fs_h_pfc_division_step_oldprevioussum_body_steps_summand. fs_h_pfc_division_step_oldprevioussum_body_steps_summand + S (fs_a_pfc_division_step_oldprevioussum_body_steps) = S ((S (fs_i_pfc_division_step_oldprevioussum_body_steps)) * pfc_terms_scale_division_step_oldprevious)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_steps_summand. pfc_terms_code_division_step_oldprevious = fs_q_pfc_division_step_oldprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_step_oldprevioussum_body_steps)) * pfc_terms_scale_division_step_oldprevious) + (fs_a_pfc_division_step_oldprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_step_oldprevioussum_body_steps_partial. fs_h_pfc_division_step_oldprevioussum_body_steps_partial + S (fs_r_pfc_division_step_oldprevioussum_body_steps) = S ((S (fs_i_pfc_division_step_oldprevioussum_body_steps)) * fs_v_pfc_division_step_oldprevioussum)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_steps_partial. fs_u_pfc_division_step_oldprevioussum = fs_q_pfc_division_step_oldprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_step_oldprevioussum_body_steps)) * fs_v_pfc_division_step_oldprevioussum) + (fs_r_pfc_division_step_oldprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_step_oldprevioussum_body_steps_successor. fs_h_pfc_division_step_oldprevioussum_body_steps_successor + S (fs_s_pfc_division_step_oldprevioussum_body_steps) = S ((S (S fs_i_pfc_division_step_oldprevioussum_body_steps)) * fs_v_pfc_division_step_oldprevioussum)) /\ exists fs_q_pfc_division_step_oldprevioussum_body_steps_successor. fs_u_pfc_division_step_oldprevioussum = fs_q_pfc_division_step_oldprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_step_oldprevioussum_body_steps)) * fs_v_pfc_division_step_oldprevioussum) + (fs_s_pfc_division_step_oldprevioussum_body_steps))) /\ fs_s_pfc_division_step_oldprevioussum_body_steps = fs_r_pfc_division_step_oldprevioussum_body_steps + fs_a_pfc_division_step_oldprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_step_oldpreviousresiduebound. pfa_gap_division_step_oldpreviousresiduebound + S (pfd_previous_division_step_old) = (p)) /\ ((exists pfa_offset_left_division_step_oldpreviousresiduecongruence pfa_offset_right_division_step_oldpreviousresiduecongruence. (pfc_natural_sum_division_step_oldprevious) + (p) * pfa_offset_left_division_step_oldpreviousresiduecongruence = (pfd_previous_division_step_old) + (p) * pfa_offset_right_division_step_oldpreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_step_oldsubtractleft. pfa_gap_division_step_oldsubtractleft + S (pfd_previous_division_step_old) = (p)) /\ (((exists pfa_gap_division_step_oldsubtractright. pfa_gap_division_step_oldsubtractright + S (pfd_difference_division_step_old) = (p)) /\ ((((exists pfa_gap_division_step_oldsubtractresultbound. pfa_gap_division_step_oldsubtractresultbound + S (pfd_input_division_step_old) = (p)) /\ ((exists pfa_offset_left_division_step_oldsubtractresultcongruence pfa_offset_right_division_step_oldsubtractresultcongruence. ((pfd_previous_division_step_old) + (pfd_difference_division_step_old)) + (p) * pfa_offset_left_division_step_oldsubtractresultcongruence = (pfd_input_division_step_old) + (p) * pfa_offset_right_division_step_oldsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_step_oldmultiplyleft. pfa_gap_division_step_oldmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_step_oldmultiplyright. pfa_gap_division_step_oldmultiplyright + S (pfd_difference_division_step_old) = (p)) /\ ((((exists pfa_gap_division_step_oldmultiplyresultbound. pfa_gap_division_step_oldmultiplyresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_step_oldmultiplyresultcongruence pfa_offset_right_division_step_oldmultiplyresultcongruence. ((k) * (pfd_difference_division_step_old)) + (p) * pfa_offset_left_division_step_oldmultiplyresultcongruence = (q) + (p) * pfa_offset_right_division_step_oldmultiplyresultcongruence)))))))))))))))) -> (exists pfd_input_division_step_new pfd_previous_division_step_new pfd_difference_division_step_new. ((((exists ff_h_pfp_division_step_newinput. ff_h_pfp_division_step_newinput + S (pfd_input_division_step_new) = S ((S (i)) * ac)) /\ exists ff_q_pfp_division_step_newinput. ab = ff_q_pfp_division_step_newinput * S ((S (i)) * ac) + (pfd_input_division_step_new))) /\ (((exists pfc_terms_code_division_step_newprevious pfc_terms_scale_division_step_newprevious pfc_natural_sum_division_step_newprevious. ((forall pfc_index_division_step_newpreviousdiagonal. (exists pfa_gap_division_step_newpreviousdiagonalbound. pfa_gap_division_step_newpreviousdiagonalbound + S (pfc_index_division_step_newpreviousdiagonal) = (S (i))) -> exists pfc_value_division_step_newpreviousdiagonal. ((((exists ff_h_pfp_division_step_newpreviousdiagonalentry. ff_h_pfp_division_step_newpreviousdiagonalentry + S (pfc_value_division_step_newpreviousdiagonal) = S ((S (pfc_index_division_step_newpreviousdiagonal)) * pfc_terms_scale_division_step_newprevious)) /\ exists ff_q_pfp_division_step_newpreviousdiagonalentry. pfc_terms_code_division_step_newprevious = ff_q_pfp_division_step_newpreviousdiagonalentry * S ((S (pfc_index_division_step_newpreviousdiagonal)) * pfc_terms_scale_division_step_newprevious) + (pfc_value_division_step_newpreviousdiagonal))) /\ ((exists pfc_complement_division_step_newpreviousdiagonalterm pfc_left_division_step_newpreviousdiagonalterm pfc_right_division_step_newpreviousdiagonalterm. (((pfc_index_division_step_newpreviousdiagonal)+pfc_complement_division_step_newpreviousdiagonalterm=(i)) /\ ((((((exists pfa_gap_division_step_newpreviousdiagonaltermleftinside. pfa_gap_division_step_newpreviousdiagonaltermleftinside + S (pfc_index_division_step_newpreviousdiagonal) = (i)) /\ ((((exists ff_h_pfp_division_step_newpreviousdiagonaltermleftentry. ff_h_pfp_division_step_newpreviousdiagonaltermleftentry + S (pfc_left_division_step_newpreviousdiagonalterm) = S ((S (pfc_index_division_step_newpreviousdiagonal)) * QC)) /\ exists ff_q_pfp_division_step_newpreviousdiagonaltermleftentry. QB = ff_q_pfp_division_step_newpreviousdiagonaltermleftentry * S ((S (pfc_index_division_step_newpreviousdiagonal)) * QC) + (pfc_left_division_step_newpreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_step_newpreviousdiagonaltermleftoutside. pfc_gap_division_step_newpreviousdiagonaltermleftoutside+(i)=(pfc_index_division_step_newpreviousdiagonal)) /\ (((pfc_left_division_step_newpreviousdiagonalterm)=0))))) /\ ((((((exists pfa_gap_division_step_newpreviousdiagonaltermrightinside. pfa_gap_division_step_newpreviousdiagonaltermrightinside + S (pfc_complement_division_step_newpreviousdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_division_step_newpreviousdiagonaltermrightentry. ff_h_pfp_division_step_newpreviousdiagonaltermrightentry + S (pfc_right_division_step_newpreviousdiagonalterm) = S ((S (pfc_complement_division_step_newpreviousdiagonalterm)) * bc)) /\ exists ff_q_pfp_division_step_newpreviousdiagonaltermrightentry. bb = ff_q_pfp_division_step_newpreviousdiagonaltermrightentry * S ((S (pfc_complement_division_step_newpreviousdiagonalterm)) * bc) + (pfc_right_division_step_newpreviousdiagonalterm)))))) \/ (((exists pfc_gap_division_step_newpreviousdiagonaltermrightoutside. pfc_gap_division_step_newpreviousdiagonaltermrightoutside+(M)=(pfc_complement_division_step_newpreviousdiagonalterm)) /\ (((pfc_right_division_step_newpreviousdiagonalterm)=0))))) /\ (((pfc_value_division_step_newpreviousdiagonal)=pfc_left_division_step_newpreviousdiagonalterm*pfc_right_division_step_newpreviousdiagonalterm))))))))))) /\ (((exists fs_u_pfc_division_step_newprevioussum fs_v_pfc_division_step_newprevioussum. ((((exists fs_h_pfc_division_step_newprevioussum_body_start. fs_h_pfc_division_step_newprevioussum_body_start + S (0) = S ((S (0)) * fs_v_pfc_division_step_newprevioussum)) /\ exists fs_q_pfc_division_step_newprevioussum_body_start. fs_u_pfc_division_step_newprevioussum = fs_q_pfc_division_step_newprevioussum_body_start * S ((S (0)) * fs_v_pfc_division_step_newprevioussum) + (0))) /\ ((((exists fs_h_pfc_division_step_newprevioussum_body_terminal. fs_h_pfc_division_step_newprevioussum_body_terminal + S (pfc_natural_sum_division_step_newprevious) = S ((S (S (i))) * fs_v_pfc_division_step_newprevioussum)) /\ exists fs_q_pfc_division_step_newprevioussum_body_terminal. fs_u_pfc_division_step_newprevioussum = fs_q_pfc_division_step_newprevioussum_body_terminal * S ((S (S (i))) * fs_v_pfc_division_step_newprevioussum) + (pfc_natural_sum_division_step_newprevious))) /\ forall fs_i_pfc_division_step_newprevioussum_body_steps. (exists fs_lt_pfc_division_step_newprevioussum_body_steps_bound. fs_lt_pfc_division_step_newprevioussum_body_steps_bound + S fs_i_pfc_division_step_newprevioussum_body_steps = S (i)) -> exists fs_a_pfc_division_step_newprevioussum_body_steps fs_r_pfc_division_step_newprevioussum_body_steps fs_s_pfc_division_step_newprevioussum_body_steps. ((((exists fs_h_pfc_division_step_newprevioussum_body_steps_summand. fs_h_pfc_division_step_newprevioussum_body_steps_summand + S (fs_a_pfc_division_step_newprevioussum_body_steps) = S ((S (fs_i_pfc_division_step_newprevioussum_body_steps)) * pfc_terms_scale_division_step_newprevious)) /\ exists fs_q_pfc_division_step_newprevioussum_body_steps_summand. pfc_terms_code_division_step_newprevious = fs_q_pfc_division_step_newprevioussum_body_steps_summand * S ((S (fs_i_pfc_division_step_newprevioussum_body_steps)) * pfc_terms_scale_division_step_newprevious) + (fs_a_pfc_division_step_newprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_step_newprevioussum_body_steps_partial. fs_h_pfc_division_step_newprevioussum_body_steps_partial + S (fs_r_pfc_division_step_newprevioussum_body_steps) = S ((S (fs_i_pfc_division_step_newprevioussum_body_steps)) * fs_v_pfc_division_step_newprevioussum)) /\ exists fs_q_pfc_division_step_newprevioussum_body_steps_partial. fs_u_pfc_division_step_newprevioussum = fs_q_pfc_division_step_newprevioussum_body_steps_partial * S ((S (fs_i_pfc_division_step_newprevioussum_body_steps)) * fs_v_pfc_division_step_newprevioussum) + (fs_r_pfc_division_step_newprevioussum_body_steps))) /\ ((((exists fs_h_pfc_division_step_newprevioussum_body_steps_successor. fs_h_pfc_division_step_newprevioussum_body_steps_successor + S (fs_s_pfc_division_step_newprevioussum_body_steps) = S ((S (S fs_i_pfc_division_step_newprevioussum_body_steps)) * fs_v_pfc_division_step_newprevioussum)) /\ exists fs_q_pfc_division_step_newprevioussum_body_steps_successor. fs_u_pfc_division_step_newprevioussum = fs_q_pfc_division_step_newprevioussum_body_steps_successor * S ((S (S fs_i_pfc_division_step_newprevioussum_body_steps)) * fs_v_pfc_division_step_newprevioussum) + (fs_s_pfc_division_step_newprevioussum_body_steps))) /\ fs_s_pfc_division_step_newprevioussum_body_steps = fs_r_pfc_division_step_newprevioussum_body_steps + fs_a_pfc_division_step_newprevioussum_body_steps)))))) /\ ((((exists pfa_gap_division_step_newpreviousresiduebound. pfa_gap_division_step_newpreviousresiduebound + S (pfd_previous_division_step_new) = (p)) /\ ((exists pfa_offset_left_division_step_newpreviousresiduecongruence pfa_offset_right_division_step_newpreviousresiduecongruence. (pfc_natural_sum_division_step_newprevious) + (p) * pfa_offset_left_division_step_newpreviousresiduecongruence = (pfd_previous_division_step_new) + (p) * pfa_offset_right_division_step_newpreviousresiduecongruence))))))))) /\ (((((exists pfa_gap_division_step_newsubtractleft. pfa_gap_division_step_newsubtractleft + S (pfd_previous_division_step_new) = (p)) /\ (((exists pfa_gap_division_step_newsubtractright. pfa_gap_division_step_newsubtractright + S (pfd_difference_division_step_new) = (p)) /\ ((((exists pfa_gap_division_step_newsubtractresultbound. pfa_gap_division_step_newsubtractresultbound + S (pfd_input_division_step_new) = (p)) /\ ((exists pfa_offset_left_division_step_newsubtractresultcongruence pfa_offset_right_division_step_newsubtractresultcongruence. ((pfd_previous_division_step_new) + (pfd_difference_division_step_new)) + (p) * pfa_offset_left_division_step_newsubtractresultcongruence = (pfd_input_division_step_new) + (p) * pfa_offset_right_division_step_newsubtractresultcongruence))))))))) /\ ((((exists pfa_gap_division_step_newmultiplyleft. pfa_gap_division_step_newmultiplyleft + S (k) = (p)) /\ (((exists pfa_gap_division_step_newmultiplyright. pfa_gap_division_step_newmultiplyright + S (pfd_difference_division_step_new) = (p)) /\ ((((exists pfa_gap_division_step_newmultiplyresultbound. pfa_gap_division_step_newmultiplyresultbound + S (q) = (p)) /\ ((exists pfa_offset_left_division_step_newmultiplyresultcongruence pfa_offset_right_division_step_newmultiplyresultcongruence. ((k) * (pfd_difference_division_step_new)) + (p) * pfa_offset_left_division_step_newmultiplyresultcongruence = (q) + (p) * pfa_offset_right_division_step_newmultiplyresultcongruence))))))))))))))))

Constructive proof overview

Generated structural guide

An execution step depends only on the actual previously built quotient prefix, never on unused beta entries.

The unchanged tactic script uses 1 declared prerequisite and contains 51 exact native proof lines.

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

Proof neighborhood

Direct dependencies

prime_field_convolution_coefficient_transport Alpha theorem; checked-use authorized

Direct dependents

Formal native tactic body

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

Read the argument

Proof checkpoints

51 script commands · 13 reading checkpoints · 0 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.

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–15

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

  1. L11
    intro QC
  2. L12
    intro i
  3. L13
    intro q
  4. L14
    intro he
  5. L15
    intro hs
03Separate the logical casesL16–21

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

  1. L16
    cases hs
  2. L17
    cases hs_witness
  3. L18
    cases hs_witness_witness
  4. L19
    cases hs_witness_witness_witness
  5. L20
    cases hs_witness_witness_witness_right
  6. L21
    cases hs_witness_witness_witness_right_right
04Construct an explicit witnessL22–24

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

  1. L22
    exists x
  2. L23
    exists x1
  3. L24
    exists x2
05Separate the logical casesL25–25

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

  1. L25
    split
06Use earlier factsL26–26

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

  1. L26
    exact hs_witness_witness_witness_left
07Separate the logical casesL27–27

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

  1. L27
    split
08Use earlier factsL28–37

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

  1. L28
    specialize prime_field_convolution_coefficient_transport (p)
  2. L29
    specialize prime_field_convolution_coefficient_transport (qb)
  3. L30
    specialize prime_field_convolution_coefficient_transport (qc)
  4. L31
    specialize prime_field_convolution_coefficient_transport (i)
  5. L32
    specialize prime_field_convolution_coefficient_transport (bb)
  6. L33
    specialize prime_field_convolution_coefficient_transport (bc)
  7. L34
    specialize prime_field_convolution_coefficient_transport (M)
  8. L35
    specialize prime_field_convolution_coefficient_transport (i)
  9. L36
    specialize prime_field_convolution_coefficient_transport (QB)
  10. L37
    specialize prime_field_convolution_coefficient_transport (QC)
09Use earlier factsL38–42

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

  1. L38
    specialize prime_field_convolution_coefficient_transport (bb)
  2. L39
    specialize prime_field_convolution_coefficient_transport (bc)
  3. L40
    specialize prime_field_convolution_coefficient_transport (x1)
  4. L41
    apply prime_field_convolution_coefficient_transport
  5. L42
    exact he
10Fix variables and assumptionsL43–46

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

  1. L43
    intro j
  2. L44
    intro v
  3. L45
    intro hj
  4. L46
    intro hv
11Use earlier factsL47–48

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

  1. L47
    exact hv
  2. L48
    exact hs_witness_witness_witness_right_left
12Separate the logical casesL49–49

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

  1. L49
    split
13Use earlier factsL50–51

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

  1. L50
    exact hs_witness_witness_witness_right_right_left
  2. L51
    exact hs_witness_witness_witness_right_right_right

Library-wide reading audit

Original exact command ledger · 51 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 i
  13. 0013intro q
  14. 0014intro he
  15. 0015intro hs
  16. 0016cases hs
  17. 0017cases hs_witness
  18. 0018cases hs_witness_witness
  19. 0019cases hs_witness_witness_witness
  20. 0020cases hs_witness_witness_witness_right
  21. 0021cases hs_witness_witness_witness_right_right
  22. 0022exists x
  23. 0023exists x1
  24. 0024exists x2
  25. 0025split
  26. 0026exact hs_witness_witness_witness_left
  27. 0027split
  28. 0028specialize prime_field_convolution_coefficient_transport (p)
  29. 0029specialize prime_field_convolution_coefficient_transport (qb)
  30. 0030specialize prime_field_convolution_coefficient_transport (qc)
  31. 0031specialize prime_field_convolution_coefficient_transport (i)
  32. 0032specialize prime_field_convolution_coefficient_transport (bb)
  33. 0033specialize prime_field_convolution_coefficient_transport (bc)
  34. 0034specialize prime_field_convolution_coefficient_transport (M)
  35. 0035specialize prime_field_convolution_coefficient_transport (i)
  36. 0036specialize prime_field_convolution_coefficient_transport (QB)
  37. 0037specialize prime_field_convolution_coefficient_transport (QC)
  38. 0038specialize prime_field_convolution_coefficient_transport (bb)
  39. 0039specialize prime_field_convolution_coefficient_transport (bc)
  40. 0040specialize prime_field_convolution_coefficient_transport (x1)
  41. 0041apply prime_field_convolution_coefficient_transport
  42. 0042exact he
  43. 0043intro j
  44. 0044intro v
  45. 0045intro hj
  46. 0046intro hv
  47. 0047exact hv
  48. 0048exact hs_witness_witness_witness_right_left
  49. 0049split
  50. 0050exact hs_witness_witness_witness_right_right_left
  51. 0051exact hs_witness_witness_witness_right_right_right