PX0013

prime_field_polynomial_left_pad_zero

Zero left padding uses the original code and changes no 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

∀ b. ∀ c. ∀ L. PolynomialLeftPad(b,c,L,0,b,c)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall b c L. (((forall pfp_repeat_index_left_pad_zerozeros. (exists pfa_gap_left_pad_zerozerosindex. pfa_gap_left_pad_zerozerosindex + S (pfp_repeat_index_left_pad_zerozeros) = (0)) -> (((exists ff_h_pfp_left_pad_zerozerosentry. ff_h_pfp_left_pad_zerozerosentry + S (0) = S ((S (pfp_repeat_index_left_pad_zerozeros)) * c)) /\ exists ff_q_pfp_left_pad_zerozerosentry. b = ff_q_pfp_left_pad_zerozerosentry * S ((S (pfp_repeat_index_left_pad_zerozeros)) * c) + (0)))) /\ ((forall pfrep_index_left_pad_zero pfrep_value_left_pad_zero. (exists pfa_gap_left_pad_zerobound. pfa_gap_left_pad_zerobound + S (pfrep_index_left_pad_zero) = (L)) -> (((exists ff_h_pfp_left_pad_zeroinput. ff_h_pfp_left_pad_zeroinput + S (pfrep_value_left_pad_zero) = S ((S (pfrep_index_left_pad_zero)) * c)) /\ exists ff_q_pfp_left_pad_zeroinput. b = ff_q_pfp_left_pad_zeroinput * S ((S (pfrep_index_left_pad_zero)) * c) + (pfrep_value_left_pad_zero))) -> (((exists ff_h_pfp_left_pad_zerooutput. ff_h_pfp_left_pad_zerooutput + S (pfrep_value_left_pad_zero) = S ((S ((0)+pfrep_index_left_pad_zero)) * c)) /\ exists ff_q_pfp_left_pad_zerooutput. b = ff_q_pfp_left_pad_zerooutput * S ((S ((0)+pfrep_index_left_pad_zero)) * c) + (pfrep_value_left_pad_zero)))))))

Complete tactic proof in conservative notation

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

19 script commands · 7 reading checkpoints · 1 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–3

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro L
02Separate the logical casesL4–4

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

  1. L4
    split
03Fix variables and assumptionsL5–6

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

  1. L5
    intro i
  2. L6
    intro hi
04Separate the logical casesL7–7

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

  1. L7
    exfalso
05Use earlier factsL8–10

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

  1. L8
    specialize matrix_rank_no_index_below_zero (i)
  2. L9
    apply matrix_rank_no_index_below_zero
  3. L10
    exact hi
06Fix variables and assumptionsL11–14

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

  1. L11
    intro i
  2. L12
    intro a
  3. L13
    intro hi
  4. L14
    intro ha
07Establish hindexL15–19

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

  1. L15
    have hindex : 0+i=i
  2. L16
    apply zero_add
  3. L17
    rewrite hindex
  4. L18
    rewrite hindex
  5. L19
    exact ha

Library-wide reading audit

Original defined command ledger · 19 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro L
  4. 0004split
  5. 0005intro i
  6. 0006intro hi
  7. 0007exfalso
  8. 0008specialize matrix_rank_no_index_below_zero (i)
  9. 0009apply matrix_rank_no_index_below_zero
  10. 0010exact hi
  11. 0011intro i
  12. 0012intro a
  13. 0013intro hi
  14. 0014intro ha
  15. 0015have hindex : 0+i=i
  16. 0016apply zero_add
  17. 0017rewrite hindex
  18. 0018rewrite hindex
  19. 0019exact ha