PX0004

prime_field_convolution_coefficient_append_invariant

Appending one quotient coefficient cannot alter any already constructed earlier convolution coefficient.

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. ∀ ab. ∀ ac. ∀ AB. ∀ AC. ∀ bb. ∀ bc. ∀ M. ∀ N. ∀ i. ∀ r. BetaPrefixEqual(ab,ac,AB,AC,N)Lt(i,N)FpConvolutionCoefficient(p,ab,ac,N,bb,bc,M,i,r)FpConvolutionCoefficient(p,AB,AC,S N,bb,bc,M,i,r)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall p ab ac AB AC bb bc M N i r. (forall mdr_i_pfp_tri_append_equal mdr_a_pfp_tri_append_equal. (exists mdr_gap_pfp_tri_append_equalb. mdr_gap_pfp_tri_append_equalb + S (mdr_i_pfp_tri_append_equal) = (N)) -> (((exists ff_h_mdr_pfp_tri_append_equalo. ff_h_mdr_pfp_tri_append_equalo + S (mdr_a_pfp_tri_append_equal) = S ((S (mdr_i_pfp_tri_append_equal)) * ac)) /\ exists ff_q_mdr_pfp_tri_append_equalo. ab = ff_q_mdr_pfp_tri_append_equalo * S ((S (mdr_i_pfp_tri_append_equal)) * ac) + (mdr_a_pfp_tri_append_equal))) -> (((exists ff_h_mdr_pfp_tri_append_equaln. ff_h_mdr_pfp_tri_append_equaln + S (mdr_a_pfp_tri_append_equal) = S ((S (mdr_i_pfp_tri_append_equal)) * AC)) /\ exists ff_q_mdr_pfp_tri_append_equaln. AB = ff_q_mdr_pfp_tri_append_equaln * S ((S (mdr_i_pfp_tri_append_equal)) * AC) + (mdr_a_pfp_tri_append_equal)))) -> (exists pfa_gap_tri_append_earlier_index. pfa_gap_tri_append_earlier_index + S (i) = (N)) -> (exists pfc_terms_code_tri_append_earlier_old pfc_terms_scale_tri_append_earlier_old pfc_natural_sum_tri_append_earlier_old. ((forall pfc_index_tri_append_earlier_olddiagonal. (exists pfa_gap_tri_append_earlier_olddiagonalbound. pfa_gap_tri_append_earlier_olddiagonalbound + S (pfc_index_tri_append_earlier_olddiagonal) = (S (i))) -> exists pfc_value_tri_append_earlier_olddiagonal. ((((exists ff_h_pfp_tri_append_earlier_olddiagonalentry. ff_h_pfp_tri_append_earlier_olddiagonalentry + S (pfc_value_tri_append_earlier_olddiagonal) = S ((S (pfc_index_tri_append_earlier_olddiagonal)) * pfc_terms_scale_tri_append_earlier_old)) /\ exists ff_q_pfp_tri_append_earlier_olddiagonalentry. pfc_terms_code_tri_append_earlier_old = ff_q_pfp_tri_append_earlier_olddiagonalentry * S ((S (pfc_index_tri_append_earlier_olddiagonal)) * pfc_terms_scale_tri_append_earlier_old) + (pfc_value_tri_append_earlier_olddiagonal))) /\ ((exists pfc_complement_tri_append_earlier_olddiagonalterm pfc_left_tri_append_earlier_olddiagonalterm pfc_right_tri_append_earlier_olddiagonalterm. (((pfc_index_tri_append_earlier_olddiagonal)+pfc_complement_tri_append_earlier_olddiagonalterm=(i)) /\ ((((((exists pfa_gap_tri_append_earlier_olddiagonaltermleftinside. pfa_gap_tri_append_earlier_olddiagonaltermleftinside + S (pfc_index_tri_append_earlier_olddiagonal) = (N)) /\ ((((exists ff_h_pfp_tri_append_earlier_olddiagonaltermleftentry. ff_h_pfp_tri_append_earlier_olddiagonaltermleftentry + S (pfc_left_tri_append_earlier_olddiagonalterm) = S ((S (pfc_index_tri_append_earlier_olddiagonal)) * ac)) /\ exists ff_q_pfp_tri_append_earlier_olddiagonaltermleftentry. ab = ff_q_pfp_tri_append_earlier_olddiagonaltermleftentry * S ((S (pfc_index_tri_append_earlier_olddiagonal)) * ac) + (pfc_left_tri_append_earlier_olddiagonalterm)))))) \/ (((exists pfc_gap_tri_append_earlier_olddiagonaltermleftoutside. pfc_gap_tri_append_earlier_olddiagonaltermleftoutside+(N)=(pfc_index_tri_append_earlier_olddiagonal)) /\ (((pfc_left_tri_append_earlier_olddiagonalterm)=0))))) /\ ((((((exists pfa_gap_tri_append_earlier_olddiagonaltermrightinside. pfa_gap_tri_append_earlier_olddiagonaltermrightinside + S (pfc_complement_tri_append_earlier_olddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_tri_append_earlier_olddiagonaltermrightentry. ff_h_pfp_tri_append_earlier_olddiagonaltermrightentry + S (pfc_right_tri_append_earlier_olddiagonalterm) = S ((S (pfc_complement_tri_append_earlier_olddiagonalterm)) * bc)) /\ exists ff_q_pfp_tri_append_earlier_olddiagonaltermrightentry. bb = ff_q_pfp_tri_append_earlier_olddiagonaltermrightentry * S ((S (pfc_complement_tri_append_earlier_olddiagonalterm)) * bc) + (pfc_right_tri_append_earlier_olddiagonalterm)))))) \/ (((exists pfc_gap_tri_append_earlier_olddiagonaltermrightoutside. pfc_gap_tri_append_earlier_olddiagonaltermrightoutside+(M)=(pfc_complement_tri_append_earlier_olddiagonalterm)) /\ (((pfc_right_tri_append_earlier_olddiagonalterm)=0))))) /\ (((pfc_value_tri_append_earlier_olddiagonal)=pfc_left_tri_append_earlier_olddiagonalterm*pfc_right_tri_append_earlier_olddiagonalterm))))))))))) /\ (((exists fs_u_pfc_tri_append_earlier_oldsum fs_v_pfc_tri_append_earlier_oldsum. ((((exists fs_h_pfc_tri_append_earlier_oldsum_body_start. fs_h_pfc_tri_append_earlier_oldsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_append_earlier_oldsum)) /\ exists fs_q_pfc_tri_append_earlier_oldsum_body_start. fs_u_pfc_tri_append_earlier_oldsum = fs_q_pfc_tri_append_earlier_oldsum_body_start * S ((S (0)) * fs_v_pfc_tri_append_earlier_oldsum) + (0))) /\ ((((exists fs_h_pfc_tri_append_earlier_oldsum_body_terminal. fs_h_pfc_tri_append_earlier_oldsum_body_terminal + S (pfc_natural_sum_tri_append_earlier_old) = S ((S (S (i))) * fs_v_pfc_tri_append_earlier_oldsum)) /\ exists fs_q_pfc_tri_append_earlier_oldsum_body_terminal. fs_u_pfc_tri_append_earlier_oldsum = fs_q_pfc_tri_append_earlier_oldsum_body_terminal * S ((S (S (i))) * fs_v_pfc_tri_append_earlier_oldsum) + (pfc_natural_sum_tri_append_earlier_old))) /\ forall fs_i_pfc_tri_append_earlier_oldsum_body_steps. (exists fs_lt_pfc_tri_append_earlier_oldsum_body_steps_bound. fs_lt_pfc_tri_append_earlier_oldsum_body_steps_bound + S fs_i_pfc_tri_append_earlier_oldsum_body_steps = S (i)) -> exists fs_a_pfc_tri_append_earlier_oldsum_body_steps fs_r_pfc_tri_append_earlier_oldsum_body_steps fs_s_pfc_tri_append_earlier_oldsum_body_steps. ((((exists fs_h_pfc_tri_append_earlier_oldsum_body_steps_summand. fs_h_pfc_tri_append_earlier_oldsum_body_steps_summand + S (fs_a_pfc_tri_append_earlier_oldsum_body_steps) = S ((S (fs_i_pfc_tri_append_earlier_oldsum_body_steps)) * pfc_terms_scale_tri_append_earlier_old)) /\ exists fs_q_pfc_tri_append_earlier_oldsum_body_steps_summand. pfc_terms_code_tri_append_earlier_old = fs_q_pfc_tri_append_earlier_oldsum_body_steps_summand * S ((S (fs_i_pfc_tri_append_earlier_oldsum_body_steps)) * pfc_terms_scale_tri_append_earlier_old) + (fs_a_pfc_tri_append_earlier_oldsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_earlier_oldsum_body_steps_partial. fs_h_pfc_tri_append_earlier_oldsum_body_steps_partial + S (fs_r_pfc_tri_append_earlier_oldsum_body_steps) = S ((S (fs_i_pfc_tri_append_earlier_oldsum_body_steps)) * fs_v_pfc_tri_append_earlier_oldsum)) /\ exists fs_q_pfc_tri_append_earlier_oldsum_body_steps_partial. fs_u_pfc_tri_append_earlier_oldsum = fs_q_pfc_tri_append_earlier_oldsum_body_steps_partial * S ((S (fs_i_pfc_tri_append_earlier_oldsum_body_steps)) * fs_v_pfc_tri_append_earlier_oldsum) + (fs_r_pfc_tri_append_earlier_oldsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_earlier_oldsum_body_steps_successor. fs_h_pfc_tri_append_earlier_oldsum_body_steps_successor + S (fs_s_pfc_tri_append_earlier_oldsum_body_steps) = S ((S (S fs_i_pfc_tri_append_earlier_oldsum_body_steps)) * fs_v_pfc_tri_append_earlier_oldsum)) /\ exists fs_q_pfc_tri_append_earlier_oldsum_body_steps_successor. fs_u_pfc_tri_append_earlier_oldsum = fs_q_pfc_tri_append_earlier_oldsum_body_steps_successor * S ((S (S fs_i_pfc_tri_append_earlier_oldsum_body_steps)) * fs_v_pfc_tri_append_earlier_oldsum) + (fs_s_pfc_tri_append_earlier_oldsum_body_steps))) /\ fs_s_pfc_tri_append_earlier_oldsum_body_steps = fs_r_pfc_tri_append_earlier_oldsum_body_steps + fs_a_pfc_tri_append_earlier_oldsum_body_steps)))))) /\ ((((exists pfa_gap_tri_append_earlier_oldresiduebound. pfa_gap_tri_append_earlier_oldresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_tri_append_earlier_oldresiduecongruence pfa_offset_right_tri_append_earlier_oldresiduecongruence. (pfc_natural_sum_tri_append_earlier_old) + (p) * pfa_offset_left_tri_append_earlier_oldresiduecongruence = (r) + (p) * pfa_offset_right_tri_append_earlier_oldresiduecongruence))))))))) -> (exists pfc_terms_code_tri_append_earlier_new pfc_terms_scale_tri_append_earlier_new pfc_natural_sum_tri_append_earlier_new. ((forall pfc_index_tri_append_earlier_newdiagonal. (exists pfa_gap_tri_append_earlier_newdiagonalbound. pfa_gap_tri_append_earlier_newdiagonalbound + S (pfc_index_tri_append_earlier_newdiagonal) = (S (i))) -> exists pfc_value_tri_append_earlier_newdiagonal. ((((exists ff_h_pfp_tri_append_earlier_newdiagonalentry. ff_h_pfp_tri_append_earlier_newdiagonalentry + S (pfc_value_tri_append_earlier_newdiagonal) = S ((S (pfc_index_tri_append_earlier_newdiagonal)) * pfc_terms_scale_tri_append_earlier_new)) /\ exists ff_q_pfp_tri_append_earlier_newdiagonalentry. pfc_terms_code_tri_append_earlier_new = ff_q_pfp_tri_append_earlier_newdiagonalentry * S ((S (pfc_index_tri_append_earlier_newdiagonal)) * pfc_terms_scale_tri_append_earlier_new) + (pfc_value_tri_append_earlier_newdiagonal))) /\ ((exists pfc_complement_tri_append_earlier_newdiagonalterm pfc_left_tri_append_earlier_newdiagonalterm pfc_right_tri_append_earlier_newdiagonalterm. (((pfc_index_tri_append_earlier_newdiagonal)+pfc_complement_tri_append_earlier_newdiagonalterm=(i)) /\ ((((((exists pfa_gap_tri_append_earlier_newdiagonaltermleftinside. pfa_gap_tri_append_earlier_newdiagonaltermleftinside + S (pfc_index_tri_append_earlier_newdiagonal) = (S N)) /\ ((((exists ff_h_pfp_tri_append_earlier_newdiagonaltermleftentry. ff_h_pfp_tri_append_earlier_newdiagonaltermleftentry + S (pfc_left_tri_append_earlier_newdiagonalterm) = S ((S (pfc_index_tri_append_earlier_newdiagonal)) * AC)) /\ exists ff_q_pfp_tri_append_earlier_newdiagonaltermleftentry. AB = ff_q_pfp_tri_append_earlier_newdiagonaltermleftentry * S ((S (pfc_index_tri_append_earlier_newdiagonal)) * AC) + (pfc_left_tri_append_earlier_newdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_earlier_newdiagonaltermleftoutside. pfc_gap_tri_append_earlier_newdiagonaltermleftoutside+(S N)=(pfc_index_tri_append_earlier_newdiagonal)) /\ (((pfc_left_tri_append_earlier_newdiagonalterm)=0))))) /\ ((((((exists pfa_gap_tri_append_earlier_newdiagonaltermrightinside. pfa_gap_tri_append_earlier_newdiagonaltermrightinside + S (pfc_complement_tri_append_earlier_newdiagonalterm) = (M)) /\ ((((exists ff_h_pfp_tri_append_earlier_newdiagonaltermrightentry. ff_h_pfp_tri_append_earlier_newdiagonaltermrightentry + S (pfc_right_tri_append_earlier_newdiagonalterm) = S ((S (pfc_complement_tri_append_earlier_newdiagonalterm)) * bc)) /\ exists ff_q_pfp_tri_append_earlier_newdiagonaltermrightentry. bb = ff_q_pfp_tri_append_earlier_newdiagonaltermrightentry * S ((S (pfc_complement_tri_append_earlier_newdiagonalterm)) * bc) + (pfc_right_tri_append_earlier_newdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_earlier_newdiagonaltermrightoutside. pfc_gap_tri_append_earlier_newdiagonaltermrightoutside+(M)=(pfc_complement_tri_append_earlier_newdiagonalterm)) /\ (((pfc_right_tri_append_earlier_newdiagonalterm)=0))))) /\ (((pfc_value_tri_append_earlier_newdiagonal)=pfc_left_tri_append_earlier_newdiagonalterm*pfc_right_tri_append_earlier_newdiagonalterm))))))))))) /\ (((exists fs_u_pfc_tri_append_earlier_newsum fs_v_pfc_tri_append_earlier_newsum. ((((exists fs_h_pfc_tri_append_earlier_newsum_body_start. fs_h_pfc_tri_append_earlier_newsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_append_earlier_newsum)) /\ exists fs_q_pfc_tri_append_earlier_newsum_body_start. fs_u_pfc_tri_append_earlier_newsum = fs_q_pfc_tri_append_earlier_newsum_body_start * S ((S (0)) * fs_v_pfc_tri_append_earlier_newsum) + (0))) /\ ((((exists fs_h_pfc_tri_append_earlier_newsum_body_terminal. fs_h_pfc_tri_append_earlier_newsum_body_terminal + S (pfc_natural_sum_tri_append_earlier_new) = S ((S (S (i))) * fs_v_pfc_tri_append_earlier_newsum)) /\ exists fs_q_pfc_tri_append_earlier_newsum_body_terminal. fs_u_pfc_tri_append_earlier_newsum = fs_q_pfc_tri_append_earlier_newsum_body_terminal * S ((S (S (i))) * fs_v_pfc_tri_append_earlier_newsum) + (pfc_natural_sum_tri_append_earlier_new))) /\ forall fs_i_pfc_tri_append_earlier_newsum_body_steps. (exists fs_lt_pfc_tri_append_earlier_newsum_body_steps_bound. fs_lt_pfc_tri_append_earlier_newsum_body_steps_bound + S fs_i_pfc_tri_append_earlier_newsum_body_steps = S (i)) -> exists fs_a_pfc_tri_append_earlier_newsum_body_steps fs_r_pfc_tri_append_earlier_newsum_body_steps fs_s_pfc_tri_append_earlier_newsum_body_steps. ((((exists fs_h_pfc_tri_append_earlier_newsum_body_steps_summand. fs_h_pfc_tri_append_earlier_newsum_body_steps_summand + S (fs_a_pfc_tri_append_earlier_newsum_body_steps) = S ((S (fs_i_pfc_tri_append_earlier_newsum_body_steps)) * pfc_terms_scale_tri_append_earlier_new)) /\ exists fs_q_pfc_tri_append_earlier_newsum_body_steps_summand. pfc_terms_code_tri_append_earlier_new = fs_q_pfc_tri_append_earlier_newsum_body_steps_summand * S ((S (fs_i_pfc_tri_append_earlier_newsum_body_steps)) * pfc_terms_scale_tri_append_earlier_new) + (fs_a_pfc_tri_append_earlier_newsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_earlier_newsum_body_steps_partial. fs_h_pfc_tri_append_earlier_newsum_body_steps_partial + S (fs_r_pfc_tri_append_earlier_newsum_body_steps) = S ((S (fs_i_pfc_tri_append_earlier_newsum_body_steps)) * fs_v_pfc_tri_append_earlier_newsum)) /\ exists fs_q_pfc_tri_append_earlier_newsum_body_steps_partial. fs_u_pfc_tri_append_earlier_newsum = fs_q_pfc_tri_append_earlier_newsum_body_steps_partial * S ((S (fs_i_pfc_tri_append_earlier_newsum_body_steps)) * fs_v_pfc_tri_append_earlier_newsum) + (fs_r_pfc_tri_append_earlier_newsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_earlier_newsum_body_steps_successor. fs_h_pfc_tri_append_earlier_newsum_body_steps_successor + S (fs_s_pfc_tri_append_earlier_newsum_body_steps) = S ((S (S fs_i_pfc_tri_append_earlier_newsum_body_steps)) * fs_v_pfc_tri_append_earlier_newsum)) /\ exists fs_q_pfc_tri_append_earlier_newsum_body_steps_successor. fs_u_pfc_tri_append_earlier_newsum = fs_q_pfc_tri_append_earlier_newsum_body_steps_successor * S ((S (S fs_i_pfc_tri_append_earlier_newsum_body_steps)) * fs_v_pfc_tri_append_earlier_newsum) + (fs_s_pfc_tri_append_earlier_newsum_body_steps))) /\ fs_s_pfc_tri_append_earlier_newsum_body_steps = fs_r_pfc_tri_append_earlier_newsum_body_steps + fs_a_pfc_tri_append_earlier_newsum_body_steps)))))) /\ ((((exists pfa_gap_tri_append_earlier_newresiduebound. pfa_gap_tri_append_earlier_newresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_tri_append_earlier_newresiduecongruence pfa_offset_right_tri_append_earlier_newresiduecongruence. (pfc_natural_sum_tri_append_earlier_new) + (p) * pfa_offset_left_tri_append_earlier_newresiduecongruence = (r) + (p) * pfa_offset_right_tri_append_earlier_newresiduecongruence)))))))))

Complete tactic proof in conservative notation

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

38 script commands · 5 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.

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 ab
  3. L3
    intro ac
  4. L4
    intro AB
  5. L5
    intro AC
  6. L6
    intro bb
  7. L7
    intro bc
  8. L8
    intro M
  9. L9
    intro N
  10. L10
    intro i
02Fix variables and assumptionsL11–14

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

  1. L11
    intro r
  2. L12
    intro he
  3. L13
    intro hi
  4. L14
    intro hr
03Use earlier factsL15–24

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

  1. L15
    specialize prime_field_convolution_coefficient_prefix_transport (p)
  2. L16
    specialize prime_field_convolution_coefficient_prefix_transport (ab)
  3. L17
    specialize prime_field_convolution_coefficient_prefix_transport (ac)
  4. L18
    specialize prime_field_convolution_coefficient_prefix_transport (N)
  5. L19
    specialize prime_field_convolution_coefficient_prefix_transport (AB)
  6. L20
    specialize prime_field_convolution_coefficient_prefix_transport (AC)
  7. L21
    specialize prime_field_convolution_coefficient_prefix_transport (S N)
  8. L22
    specialize prime_field_convolution_coefficient_prefix_transport (bb)
  9. L23
    specialize prime_field_convolution_coefficient_prefix_transport (bc)
  10. L24
    specialize prime_field_convolution_coefficient_prefix_transport (M)
04Use earlier factsL25–34

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

  1. L25
    specialize prime_field_convolution_coefficient_prefix_transport (N)
  2. L26
    specialize prime_field_convolution_coefficient_prefix_transport (i)
  3. L27
    specialize prime_field_convolution_coefficient_prefix_transport (r)
  4. L28
    apply prime_field_convolution_coefficient_prefix_transport
  5. L29
    specialize le_refl (N)
  6. L30
    apply le_refl
  7. L31
    specialize le_succ (N)
  8. L32
    specialize le_succ (N)
  9. L33
    apply le_succ
  10. L34
    specialize le_refl (N)
05Use earlier factsL35–38

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

  1. L35
    apply le_refl
  2. L36
    exact he
  3. L37
    exact hi
  4. L38
    exact hr

Library-wide reading audit

Original defined command ledger · 38 lines
  1. 0001intro p
  2. 0002intro ab
  3. 0003intro ac
  4. 0004intro AB
  5. 0005intro AC
  6. 0006intro bb
  7. 0007intro bc
  8. 0008intro M
  9. 0009intro N
  10. 0010intro i
  11. 0011intro r
  12. 0012intro he
  13. 0013intro hi
  14. 0014intro hr
  15. 0015specialize prime_field_convolution_coefficient_prefix_transport (p)
  16. 0016specialize prime_field_convolution_coefficient_prefix_transport (ab)
  17. 0017specialize prime_field_convolution_coefficient_prefix_transport (ac)
  18. 0018specialize prime_field_convolution_coefficient_prefix_transport (N)
  19. 0019specialize prime_field_convolution_coefficient_prefix_transport (AB)
  20. 0020specialize prime_field_convolution_coefficient_prefix_transport (AC)
  21. 0021specialize prime_field_convolution_coefficient_prefix_transport (S N)
  22. 0022specialize prime_field_convolution_coefficient_prefix_transport (bb)
  23. 0023specialize prime_field_convolution_coefficient_prefix_transport (bc)
  24. 0024specialize prime_field_convolution_coefficient_prefix_transport (M)
  25. 0025specialize prime_field_convolution_coefficient_prefix_transport (N)
  26. 0026specialize prime_field_convolution_coefficient_prefix_transport (i)
  27. 0027specialize prime_field_convolution_coefficient_prefix_transport (r)
  28. 0028apply prime_field_convolution_coefficient_prefix_transport
  29. 0029specialize le_refl (N)
  30. 0030apply le_refl
  31. 0031specialize le_succ (N)
  32. 0032specialize le_succ (N)
  33. 0033apply le_succ
  34. 0034specialize le_refl (N)
  35. 0035apply le_refl
  36. 0036exact he
  37. 0037exact hi
  38. 0038exact hr