PQ000A

prime_field_polynomial_negate_zero

A genuinely encoded all-zero coefficient prefix is its own additive inverse.

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. Prime(p)Repeat(b,c,0,l)FpCoefficientNegation(p,b,c,b,c,l)

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. (~((p) = 1) /\ forall pfa_factor_left_neg_zero_prime pfa_factor_right_neg_zero_prime. (p) = pfa_factor_left_neg_zero_prime * pfa_factor_right_neg_zero_prime -> pfa_factor_left_neg_zero_prime = 1 \/ pfa_factor_right_neg_zero_prime = 1) -> (forall pfp_repeat_index_neg_zero_prefix. (exists pfa_gap_neg_zero_prefixindex. pfa_gap_neg_zero_prefixindex + S (pfp_repeat_index_neg_zero_prefix) = (l)) -> (((exists ff_h_pfp_neg_zero_prefixentry. ff_h_pfp_neg_zero_prefixentry + S (0) = S ((S (pfp_repeat_index_neg_zero_prefix)) * c)) /\ exists ff_q_pfp_neg_zero_prefixentry. b = ff_q_pfp_neg_zero_prefixentry * S ((S (pfp_repeat_index_neg_zero_prefix)) * c) + (0)))) -> (forall pfs_index_neg_zero_result. (exists pfa_gap_neg_zero_resultindex. pfa_gap_neg_zero_resultindex + S (pfs_index_neg_zero_result) = (l)) -> exists pfs_source_neg_zero_result pfs_result_neg_zero_result. ((((exists ff_h_pfp_neg_zero_resultsource. ff_h_pfp_neg_zero_resultsource + S (pfs_source_neg_zero_result) = S ((S (pfs_index_neg_zero_result)) * c)) /\ exists ff_q_pfp_neg_zero_resultsource. b = ff_q_pfp_neg_zero_resultsource * S ((S (pfs_index_neg_zero_result)) * c) + (pfs_source_neg_zero_result))) /\ (((((exists ff_h_pfp_neg_zero_resultresult. ff_h_pfp_neg_zero_resultresult + S (pfs_result_neg_zero_result) = S ((S (pfs_index_neg_zero_result)) * c)) /\ exists ff_q_pfp_neg_zero_resultresult. b = ff_q_pfp_neg_zero_resultresult * S ((S (pfs_index_neg_zero_result)) * c) + (pfs_result_neg_zero_result))) /\ ((((exists pfa_gap_neg_zero_resultoperationadditionleft. pfa_gap_neg_zero_resultoperationadditionleft + S (pfs_source_neg_zero_result) = (p)) /\ (((exists pfa_gap_neg_zero_resultoperationadditionright. pfa_gap_neg_zero_resultoperationadditionright + S (pfs_result_neg_zero_result) = (p)) /\ ((((exists pfa_gap_neg_zero_resultoperationadditionresultbound. pfa_gap_neg_zero_resultoperationadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_neg_zero_resultoperationadditionresultcongruence pfa_offset_right_neg_zero_resultoperationadditionresultcongruence. ((pfs_source_neg_zero_result) + (pfs_result_neg_zero_result)) + (p) * pfa_offset_left_neg_zero_resultoperationadditionresultcongruence = (0) + (p) * pfa_offset_right_neg_zero_resultoperationadditionresultcongruence))))))))))))))

Complete tactic proof in conservative notation

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

25 script commands · 6 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.

01Fix variables and assumptionsL1–8

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 hp
  6. L6
    intro hz
  7. L7
    intro i
  8. L8
    intro hi
02Construct an explicit witnessL9–10

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

  1. L9
    exists 0
  2. L10
    exists 0
03Separate the logical casesL11–11

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

  1. L11
    split
04Use earlier factsL12–14

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

  1. L12
    specialize hz (i)
  2. L13
    apply hz
  3. L14
    exact hi
05Separate the logical casesL15–15

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

  1. L15
    split
06Use earlier factsL16–25

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

  1. L16
    specialize hz (i)
  2. L17
    apply hz
  3. L18
    exact hi
  4. L19
    specialize prime_field_add_zero_right (p)
  5. L20
    specialize prime_field_add_zero_right (0)
  6. L21
    apply prime_field_add_zero_right
  7. L22
    exact hp
  8. L23
    specialize prime_field_zero_below_prime (p)
  9. L24
    apply prime_field_zero_below_prime
  10. L25
    exact hp

Library-wide reading audit

Original defined command ledger · 25 lines
  1. 0001intro p
  2. 0002intro b
  3. 0003intro c
  4. 0004intro l
  5. 0005intro hp
  6. 0006intro hz
  7. 0007intro i
  8. 0008intro hi
  9. 0009exists 0
  10. 0010exists 0
  11. 0011split
  12. 0012specialize hz (i)
  13. 0013apply hz
  14. 0014exact hi
  15. 0015split
  16. 0016specialize hz (i)
  17. 0017apply hz
  18. 0018exact hi
  19. 0019specialize prime_field_add_zero_right (p)
  20. 0020specialize prime_field_add_zero_right (0)
  21. 0021apply prime_field_add_zero_right
  22. 0022exact hp
  23. 0023specialize prime_field_zero_below_prime (p)
  24. 0024apply prime_field_zero_below_prime
  25. 0025exact hp