PP0004

prime_field_polynomial_normalization_bounded

The normalized table really has every coefficient strictly below the modulus.

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

Length is representation length, not polynomial degree. Leading zeros and the empty zero polynomial are allowed; the canonical argument guard x<p also applies to the empty case. Evaluation is defined by actual field-operation steps, not an assumed residue invariant. Polynomial division, gcd, irreducibles and general prime-power extension fields remain open; this does not close G091.

Exact theorem in conservative defined notation

∀ p. ∀ b. ∀ c. ∀ d. ∀ e. ∀ l. FpCoefficientReduction(p,b,c,d,e,l)BetaPrefixInto(d,e,l,p)

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

Definition DAG

Actual proof prerequisites

none
Original expanded first-order statement
forall p b c d e l. (forall pfp_index_bounded_source. (exists pfa_gap_bounded_sourceindex. pfa_gap_bounded_sourceindex + S (pfp_index_bounded_source) = (l)) -> exists pfp_source_bounded_source pfp_residue_bounded_source. ((((exists ff_h_pfp_bounded_sourcesource. ff_h_pfp_bounded_sourcesource + S (pfp_source_bounded_source) = S ((S (pfp_index_bounded_source)) * c)) /\ exists ff_q_pfp_bounded_sourcesource. b = ff_q_pfp_bounded_sourcesource * S ((S (pfp_index_bounded_source)) * c) + (pfp_source_bounded_source))) /\ (((((exists ff_h_pfp_bounded_sourcetarget. ff_h_pfp_bounded_sourcetarget + S (pfp_residue_bounded_source) = S ((S (pfp_index_bounded_source)) * e)) /\ exists ff_q_pfp_bounded_sourcetarget. d = ff_q_pfp_bounded_sourcetarget * S ((S (pfp_index_bounded_source)) * e) + (pfp_residue_bounded_source))) /\ ((((exists pfa_gap_bounded_sourceresiduebound. pfa_gap_bounded_sourceresiduebound + S (pfp_residue_bounded_source) = (p)) /\ ((exists pfa_offset_left_bounded_sourceresiduecongruence pfa_offset_right_bounded_sourceresiduecongruence. (pfp_source_bounded_source) + (p) * pfa_offset_left_bounded_sourceresiduecongruence = (pfp_residue_bounded_source) + (p) * pfa_offset_right_bounded_sourceresiduecongruence))))))))) -> (forall fom_index_pfp_bounded_result. (exists fom_gap_pfp_bounded_result_index_bound. fom_gap_pfp_bounded_result_index_bound + S (fom_index_pfp_bounded_result) = l) -> exists fom_value_pfp_bounded_result. ((((exists fom_beta_height_pfp_bounded_result_entry. fom_beta_height_pfp_bounded_result_entry + S (fom_value_pfp_bounded_result) = S ((S (fom_index_pfp_bounded_result)) * e)) /\ exists fom_beta_quotient_pfp_bounded_result_entry. d = fom_beta_quotient_pfp_bounded_result_entry * S ((S (fom_index_pfp_bounded_result)) * e) + (fom_value_pfp_bounded_result))) /\ (exists fom_gap_pfp_bounded_result_value_bound. fom_gap_pfp_bounded_result_value_bound + S (fom_value_pfp_bounded_result) = p)))

Complete tactic proof in conservative notation

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

22 script commands · 6 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–9

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 d
  5. L5
    intro e
  6. L6
    intro l
  7. L7
    intro h
  8. L8
    intro i
  9. L9
    intro hi
02Establish hpointL10–13

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

  1. L10
    have hpoint : ∃ a. ∃ r. BetaAt(b,c,i,a) ∧ (BetaAt(d,e,i,r) ∧ CanonicalModularResidue(p,a,r))Definitions: BetaAt(b,c,i,a)BetaAt(d,e,i,r)CanonicalModularResidue(p,a,r)Original native command in the exact edition
  2. L11
    specialize h (i)
  3. L12
    apply h
  4. L13
    exact hi
03Separate the logical casesL14–18

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

  1. L14
    cases hpoint
  2. L15
    cases hpoint_witness
  3. L16
    cases hpoint_witness_witness
  4. L17
    cases hpoint_witness_witness_right
  5. L18
    cases hpoint_witness_witness_right_right
04Construct an explicit witnessL19–19

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

  1. L19
    exists x1
05Separate the logical casesL20–20

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

  1. L20
    split
06Use earlier factsL21–22

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

  1. L21
    exact hpoint_witness_witness_right_left
  2. L22
    exact hpoint_witness_witness_right_right_left

Library-wide reading audit

Original defined command ledger · 22 lines
  1. 0001intro p
  2. 0002intro b
  3. 0003intro c
  4. 0004intro d
  5. 0005intro e
  6. 0006intro l
  7. 0007intro h
  8. 0008intro i
  9. 0009intro hi
  10. 0010have hpoint : ∃ a. ∃ r. BetaAt(b,c,i,a) ∧ (BetaAt(d,e,i,r)CanonicalModularResidue(p,a,r))
  11. 0011specialize h (i)
  12. 0012apply h
  13. 0013exact hi
  14. 0014cases hpoint
  15. 0015cases hpoint_witness
  16. 0016cases hpoint_witness_witness
  17. 0017cases hpoint_witness_witness_right
  18. 0018cases hpoint_witness_witness_right_right
  19. 0019exists x1
  20. 0020split
  21. 0021exact hpoint_witness_witness_right_left
  22. 0022exact hpoint_witness_witness_right_right_left