PQ001D

prime_field_polynomial_suffix_bounded

A genuine suffix ending at the annotated input length inherits every canonical coefficient bound.

Alpha v34 checked-use · first admitted v32 · 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.

All coefficients retain the established highest-degree-first order. Trimming handles empty and all-zero prefixes; monic normalization requires a nonzero leading coefficient. Synthetic division has a nonempty input of length S n and a quotient of length n, unique in decoded values. Its coefficient recurrence, actual evaluation remainder and positive-degree drop are checked. General polynomial Euclidean division, gcd/Bezout, an arbitrary-convolution factor theorem, irreducible-polynomial existence and the full G091 prime-power-field endpoint remain open. These exact theorems are first admitted to Alpha v32; Stable remains unchanged.

Exact theorem in conservative defined notation

∀ p. ∀ b. ∀ c. ∀ L. ∀ t. ∀ d. ∀ e. ∀ M. L = t + M → BetaPrefixInto(b,c,L,p)PolynomialSuffix(b,c,t,d,e,M)BetaPrefixInto(d,e,M,p)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall p b c L t d e M. L=t+M -> (forall fom_index_pfp_suffix_input_coefficients. (exists fom_gap_pfp_suffix_input_coefficients_index_bound. fom_gap_pfp_suffix_input_coefficients_index_bound + S (fom_index_pfp_suffix_input_coefficients) = L) -> exists fom_value_pfp_suffix_input_coefficients. ((((exists fom_beta_height_pfp_suffix_input_coefficients_entry. fom_beta_height_pfp_suffix_input_coefficients_entry + S (fom_value_pfp_suffix_input_coefficients) = S ((S (fom_index_pfp_suffix_input_coefficients)) * c)) /\ exists fom_beta_quotient_pfp_suffix_input_coefficients_entry. b = fom_beta_quotient_pfp_suffix_input_coefficients_entry * S ((S (fom_index_pfp_suffix_input_coefficients)) * c) + (fom_value_pfp_suffix_input_coefficients))) /\ (exists fom_gap_pfp_suffix_input_coefficients_value_bound. fom_gap_pfp_suffix_input_coefficients_value_bound + S (fom_value_pfp_suffix_input_coefficients) = p))) -> (forall pftrim_index_suffix_bounded pftrim_value_suffix_bounded. (exists pfa_gap_suffix_boundedbound. pfa_gap_suffix_boundedbound + S (pftrim_index_suffix_bounded) = (M)) -> (((exists ff_h_pfp_suffix_boundedsource. ff_h_pfp_suffix_boundedsource + S (pftrim_value_suffix_bounded) = S ((S ((t)+pftrim_index_suffix_bounded)) * c)) /\ exists ff_q_pfp_suffix_boundedsource. b = ff_q_pfp_suffix_boundedsource * S ((S ((t)+pftrim_index_suffix_bounded)) * c) + (pftrim_value_suffix_bounded))) -> (((exists ff_h_pfp_suffix_boundedoutput. ff_h_pfp_suffix_boundedoutput + S (pftrim_value_suffix_bounded) = S ((S (pftrim_index_suffix_bounded)) * e)) /\ exists ff_q_pfp_suffix_boundedoutput. d = ff_q_pfp_suffix_boundedoutput * S ((S (pftrim_index_suffix_bounded)) * e) + (pftrim_value_suffix_bounded)))) -> (forall fom_index_pfp_suffix_output_coefficients. (exists fom_gap_pfp_suffix_output_coefficients_index_bound. fom_gap_pfp_suffix_output_coefficients_index_bound + S (fom_index_pfp_suffix_output_coefficients) = M) -> exists fom_value_pfp_suffix_output_coefficients. ((((exists fom_beta_height_pfp_suffix_output_coefficients_entry. fom_beta_height_pfp_suffix_output_coefficients_entry + S (fom_value_pfp_suffix_output_coefficients) = S ((S (fom_index_pfp_suffix_output_coefficients)) * e)) /\ exists fom_beta_quotient_pfp_suffix_output_coefficients_entry. d = fom_beta_quotient_pfp_suffix_output_coefficients_entry * S ((S (fom_index_pfp_suffix_output_coefficients)) * e) + (fom_value_pfp_suffix_output_coefficients))) /\ (exists fom_gap_pfp_suffix_output_coefficients_value_bound. fom_gap_pfp_suffix_output_coefficients_value_bound + S (fom_value_pfp_suffix_output_coefficients) = p)))

Complete tactic proof in conservative notation

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

34 script commands · 8 reading checkpoints · 2 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

01Fix variables and assumptionsL1–10

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

  1. L1
    intro p
  2. L2
    intro b
  3. L3
    intro c
  4. L4
    intro L
  5. L5
    intro t
  6. L6
    intro d
  7. L7
    intro e
  8. L8
    intro M
  9. L9
    intro hlen
  10. L10
    intro hc
02Fix variables and assumptionsL11–13

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

  1. L11
    intro hs
  2. L12
    intro i
  3. L13
    intro hi
03Establish hshiftL14–20

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply matrix recursive lt add left.

  1. L14
    have hshift : Lt(t + i,L)Definitions: Lt(t + i,L)Original native command in the exact edition
  2. L15
    rewrite hlen
  3. L16
    specialize matrix_recursive_lt_add_left (i)
  4. L17
    specialize matrix_recursive_lt_add_left (M)
  5. L18
    specialize matrix_recursive_lt_add_left (t)
  6. L19
    apply matrix_recursive_lt_add_left
  7. L20
    exact hi
04Establish haL21–24

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

  1. L21
    have ha : ∃ a. BetaAt(b,c,t + i,a) ∧ Lt(a,p)Definitions: BetaAt(b,c,t + i,a)Lt(a,p)Original native command in the exact edition
  2. L22
    specialize hc (t+i)
  3. L23
    apply hc
  4. L24
    exact hshift
05Separate the logical casesL25–26

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

  1. L25
    cases ha
  2. L26
    cases ha_witness
06Construct an explicit witnessL27–27

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

  1. L27
    exists x
07Separate the logical casesL28–28

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

  1. L28
    split
08Use earlier factsL29–34

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

  1. L29
    specialize hs (i)
  2. L30
    specialize hs (x)
  3. L31
    apply hs
  4. L32
    exact hi
  5. L33
    exact ha_witness_left
  6. L34
    exact ha_witness_right

Library-wide reading audit

Original defined command ledger · 34 lines
  1. 0001intro p
  2. 0002intro b
  3. 0003intro c
  4. 0004intro L
  5. 0005intro t
  6. 0006intro d
  7. 0007intro e
  8. 0008intro M
  9. 0009intro hlen
  10. 0010intro hc
  11. 0011intro hs
  12. 0012intro i
  13. 0013intro hi
  14. 0014have hshift : Lt(t + i,L)
  15. 0015rewrite hlen
  16. 0016specialize matrix_recursive_lt_add_left (i)
  17. 0017specialize matrix_recursive_lt_add_left (M)
  18. 0018specialize matrix_recursive_lt_add_left (t)
  19. 0019apply matrix_recursive_lt_add_left
  20. 0020exact hi
  21. 0021have ha : ∃ a. BetaAt(b,c,t + i,a)Lt(a,p)
  22. 0022specialize hc (t+i)
  23. 0023apply hc
  24. 0024exact hshift
  25. 0025cases ha
  26. 0026cases ha_witness
  27. 0027exists x
  28. 0028split
  29. 0029specialize hs (i)
  30. 0030specialize hs (x)
  31. 0031apply hs
  32. 0032exact hi
  33. 0033exact ha_witness_left
  34. 0034exact ha_witness_right