PQ0005

prime_field_polynomial_negate_entry

Every actual decoded tuple satisfies the bounded scalar graph, independently of its existential witnesses.

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. ∀ ab. ∀ ac. ∀ rb. ∀ rc. ∀ l. ∀ i. ∀ a. ∀ r. FpCoefficientNegation(p,ab,ac,rb,rc,l)Lt(i,l)BetaAt(ab,ac,i,a)BetaAt(rb,rc,i,r)FpAdd(p,a,r,0)

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 rb rc l i a r. (forall pfs_index_negate_entry_graph. (exists pfa_gap_negate_entry_graphindex. pfa_gap_negate_entry_graphindex + S (pfs_index_negate_entry_graph) = (l)) -> exists pfs_source_negate_entry_graph pfs_result_negate_entry_graph. ((((exists ff_h_pfp_negate_entry_graphsource. ff_h_pfp_negate_entry_graphsource + S (pfs_source_negate_entry_graph) = S ((S (pfs_index_negate_entry_graph)) * ac)) /\ exists ff_q_pfp_negate_entry_graphsource. ab = ff_q_pfp_negate_entry_graphsource * S ((S (pfs_index_negate_entry_graph)) * ac) + (pfs_source_negate_entry_graph))) /\ (((((exists ff_h_pfp_negate_entry_graphresult. ff_h_pfp_negate_entry_graphresult + S (pfs_result_negate_entry_graph) = S ((S (pfs_index_negate_entry_graph)) * rc)) /\ exists ff_q_pfp_negate_entry_graphresult. rb = ff_q_pfp_negate_entry_graphresult * S ((S (pfs_index_negate_entry_graph)) * rc) + (pfs_result_negate_entry_graph))) /\ ((((exists pfa_gap_negate_entry_graphoperationadditionleft. pfa_gap_negate_entry_graphoperationadditionleft + S (pfs_source_negate_entry_graph) = (p)) /\ (((exists pfa_gap_negate_entry_graphoperationadditionright. pfa_gap_negate_entry_graphoperationadditionright + S (pfs_result_negate_entry_graph) = (p)) /\ ((((exists pfa_gap_negate_entry_graphoperationadditionresultbound. pfa_gap_negate_entry_graphoperationadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_negate_entry_graphoperationadditionresultcongruence pfa_offset_right_negate_entry_graphoperationadditionresultcongruence. ((pfs_source_negate_entry_graph) + (pfs_result_negate_entry_graph)) + (p) * pfa_offset_left_negate_entry_graphoperationadditionresultcongruence = (0) + (p) * pfa_offset_right_negate_entry_graphoperationadditionresultcongruence)))))))))))))) -> (exists pfa_gap_negate_entry_index. pfa_gap_negate_entry_index + S (i) = (l)) -> (((exists ff_h_pfp_negate_entry_a. ff_h_pfp_negate_entry_a + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_negate_entry_a. ab = ff_q_pfp_negate_entry_a * S ((S (i)) * ac) + (a))) -> (((exists ff_h_pfp_negate_entry_r. ff_h_pfp_negate_entry_r + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_negate_entry_r. rb = ff_q_pfp_negate_entry_r * S ((S (i)) * rc) + (r))) -> (((exists pfa_gap_negate_entry_resultadditionleft. pfa_gap_negate_entry_resultadditionleft + S (a) = (p)) /\ (((exists pfa_gap_negate_entry_resultadditionright. pfa_gap_negate_entry_resultadditionright + S (r) = (p)) /\ ((((exists pfa_gap_negate_entry_resultadditionresultbound. pfa_gap_negate_entry_resultadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_negate_entry_resultadditionresultcongruence pfa_offset_right_negate_entry_resultadditionresultcongruence. ((a) + (r)) + (p) * pfa_offset_left_negate_entry_resultadditionresultcongruence = (0) + (p) * pfa_offset_right_negate_entry_resultadditionresultcongruence)))))))))

Complete tactic proof in conservative notation

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

44 script commands · 9 reading checkpoints · 3 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 ab
  3. L3
    intro ac
  4. L4
    intro rb
  5. L5
    intro rc
  6. L6
    intro l
  7. L7
    intro i
  8. L8
    intro a
  9. L9
    intro r
  10. L10
    intro h
02Fix variables and assumptionsL11–13

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

  1. L11
    intro hi
  2. L12
    intro ha
  3. L13
    intro hr
03Establish hvL14–17

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

  1. L14
    have hv : ∃ u0. ∃ u1. BetaAt(ab,ac,i,u0) ∧ (BetaAt(rb,rc,i,u1) ∧ FpAdd(p,u0,u1,0))Definitions: BetaAt(ab,ac,i,u0)BetaAt(rb,rc,i,u1)FpAdd(p,u0,u1,0)Original native command in the exact edition
  2. L15
    specialize h (i)
  3. L16
    apply h
  4. L17
    exact hi
04Separate the logical casesL18–21

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

  1. L18
    cases hv
  2. L19
    cases hv_witness
  3. L20
    cases hv_witness_witness
  4. L21
    cases hv_witness_witness_right
05Establish heq0L22–31

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

  1. L22
    have heq0 : x=a
  2. L23
    specialize beta_at_unique (ab)
  3. L24
    specialize beta_at_unique (ac)
  4. L25
    specialize beta_at_unique (i)
  5. L26
    specialize beta_at_unique (x)
  6. L27
    specialize beta_at_unique (a)
  7. L28
    apply beta_at_unique
  8. L29
    exact hv_witness_witness_left
  9. L30
    exact ha
  10. L31
    rewrite heq0 at hv_witness_witness_right_right
06Calculate and transport equalitiesL32–32

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L32
    rewrite heq0 at hv_witness_witness_right_right
07Establish heq1L33–42

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

  1. L33
    have heq1 : x1=r
  2. L34
    specialize beta_at_unique (rb)
  3. L35
    specialize beta_at_unique (rc)
  4. L36
    specialize beta_at_unique (i)
  5. L37
    specialize beta_at_unique (x1)
  6. L38
    specialize beta_at_unique (r)
  7. L39
    apply beta_at_unique
  8. L40
    exact hv_witness_witness_right_left
  9. L41
    exact hr
  10. L42
    rewrite heq1 at hv_witness_witness_right_right
08Calculate and transport equalitiesL43–43

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L43
    rewrite heq1 at hv_witness_witness_right_right
09Use earlier factsL44–44

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

  1. L44
    exact hv_witness_witness_right_right

Library-wide reading audit

Original defined command ledger · 44 lines
  1. 0001intro p
  2. 0002intro ab
  3. 0003intro ac
  4. 0004intro rb
  5. 0005intro rc
  6. 0006intro l
  7. 0007intro i
  8. 0008intro a
  9. 0009intro r
  10. 0010intro h
  11. 0011intro hi
  12. 0012intro ha
  13. 0013intro hr
  14. 0014have hv : ∃ u0. ∃ u1. BetaAt(ab,ac,i,u0) ∧ (BetaAt(rb,rc,i,u1)FpAdd(p,u0,u1,0))
  15. 0015specialize h (i)
  16. 0016apply h
  17. 0017exact hi
  18. 0018cases hv
  19. 0019cases hv_witness
  20. 0020cases hv_witness_witness
  21. 0021cases hv_witness_witness_right
  22. 0022have heq0 : x=a
  23. 0023specialize beta_at_unique (ab)
  24. 0024specialize beta_at_unique (ac)
  25. 0025specialize beta_at_unique (i)
  26. 0026specialize beta_at_unique (x)
  27. 0027specialize beta_at_unique (a)
  28. 0028apply beta_at_unique
  29. 0029exact hv_witness_witness_left
  30. 0030exact ha
  31. 0031rewrite heq0 at hv_witness_witness_right_right
  32. 0032rewrite heq0 at hv_witness_witness_right_right
  33. 0033have heq1 : x1=r
  34. 0034specialize beta_at_unique (rb)
  35. 0035specialize beta_at_unique (rc)
  36. 0036specialize beta_at_unique (i)
  37. 0037specialize beta_at_unique (x1)
  38. 0038specialize beta_at_unique (r)
  39. 0039apply beta_at_unique
  40. 0040exact hv_witness_witness_right_left
  41. 0041exact hr
  42. 0042rewrite heq1 at hv_witness_witness_right_right
  43. 0043rewrite heq1 at hv_witness_witness_right_right
  44. 0044exact hv_witness_witness_right_right