PQ003B

prime_field_polynomial_monic_normalization_represented_degree

Scaling by the actual leading inverse preserves the annotated nonzero represented degree exactly.

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. ∀ k. ∀ ab. ∀ ac. ∀ bb. ∀ bc. ∀ L. ∀ d. FpRepresentedDegree(p,ab,ac,L,d)FpMonicNormalization(p,k,ab,ac,bb,bc,L)FpRepresentedDegree(p,bb,bc,L,d)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall p k ab ac bb bc L d. ((((L)=S (d)) /\ (((forall fom_index_pfp_normalization_degree_inputcoefficients. (exists fom_gap_pfp_normalization_degree_inputcoefficients_index_bound. fom_gap_pfp_normalization_degree_inputcoefficients_index_bound + S (fom_index_pfp_normalization_degree_inputcoefficients) = L) -> exists fom_value_pfp_normalization_degree_inputcoefficients. ((((exists fom_beta_height_pfp_normalization_degree_inputcoefficients_entry. fom_beta_height_pfp_normalization_degree_inputcoefficients_entry + S (fom_value_pfp_normalization_degree_inputcoefficients) = S ((S (fom_index_pfp_normalization_degree_inputcoefficients)) * ac)) /\ exists fom_beta_quotient_pfp_normalization_degree_inputcoefficients_entry. ab = fom_beta_quotient_pfp_normalization_degree_inputcoefficients_entry * S ((S (fom_index_pfp_normalization_degree_inputcoefficients)) * ac) + (fom_value_pfp_normalization_degree_inputcoefficients))) /\ (exists fom_gap_pfp_normalization_degree_inputcoefficients_value_bound. fom_gap_pfp_normalization_degree_inputcoefficients_value_bound + S (fom_value_pfp_normalization_degree_inputcoefficients) = p))) /\ ((exists pfd_leading_normalization_degree_input. ((((exists ff_h_pfp_normalization_degree_inputentry. ff_h_pfp_normalization_degree_inputentry + S (pfd_leading_normalization_degree_input) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_degree_inputentry. ab = ff_q_pfp_normalization_degree_inputentry * S ((S (0)) * ac) + (pfd_leading_normalization_degree_input))) /\ ((~(pfd_leading_normalization_degree_input=0)))))))))) -> (((~((L) = 0)) /\ (((exists pfm_leading_normalization_degree_source. ((((exists ff_h_pfp_normalization_degree_sourcesource. ff_h_pfp_normalization_degree_sourcesource + S (pfm_leading_normalization_degree_source) = S ((S (0)) * ac)) /\ exists ff_q_pfp_normalization_degree_sourcesource. ab = ff_q_pfp_normalization_degree_sourcesource * S ((S (0)) * ac) + (pfm_leading_normalization_degree_source))) /\ ((((~((pfm_leading_normalization_degree_source) = 0)) /\ ((((exists pfa_gap_normalization_degree_sourceinversemultiplicationleft. pfa_gap_normalization_degree_sourceinversemultiplicationleft + S (pfm_leading_normalization_degree_source) = (p)) /\ (((exists pfa_gap_normalization_degree_sourceinversemultiplicationright. pfa_gap_normalization_degree_sourceinversemultiplicationright + S (k) = (p)) /\ ((((exists pfa_gap_normalization_degree_sourceinversemultiplicationresultbound. pfa_gap_normalization_degree_sourceinversemultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_normalization_degree_sourceinversemultiplicationresultcongruence pfa_offset_right_normalization_degree_sourceinversemultiplicationresultcongruence. ((pfm_leading_normalization_degree_source) * (k)) + (p) * pfa_offset_left_normalization_degree_sourceinversemultiplicationresultcongruence = (1) + (p) * pfa_offset_right_normalization_degree_sourceinversemultiplicationresultcongruence))))))))))))))) /\ ((((exists pfa_gap_normalization_degree_sourcescalescalar. pfa_gap_normalization_degree_sourcescalescalar + S (k) = (p)) /\ ((forall pfp_index_normalization_degree_sourcescale. (exists pfa_gap_normalization_degree_sourcescaleindex. pfa_gap_normalization_degree_sourcescaleindex + S (pfp_index_normalization_degree_sourcescale) = (L)) -> exists pfp_source_normalization_degree_sourcescale pfp_value_normalization_degree_sourcescale. ((((exists ff_h_pfp_normalization_degree_sourcescalesource. ff_h_pfp_normalization_degree_sourcescalesource + S (pfp_source_normalization_degree_sourcescale) = S ((S (pfp_index_normalization_degree_sourcescale)) * ac)) /\ exists ff_q_pfp_normalization_degree_sourcescalesource. ab = ff_q_pfp_normalization_degree_sourcescalesource * S ((S (pfp_index_normalization_degree_sourcescale)) * ac) + (pfp_source_normalization_degree_sourcescale))) /\ (((((exists ff_h_pfp_normalization_degree_sourcescaletarget. ff_h_pfp_normalization_degree_sourcescaletarget + S (pfp_value_normalization_degree_sourcescale) = S ((S (pfp_index_normalization_degree_sourcescale)) * bc)) /\ exists ff_q_pfp_normalization_degree_sourcescaletarget. bb = ff_q_pfp_normalization_degree_sourcescaletarget * S ((S (pfp_index_normalization_degree_sourcescale)) * bc) + (pfp_value_normalization_degree_sourcescale))) /\ ((((exists pfa_gap_normalization_degree_sourcescaleoperationleft. pfa_gap_normalization_degree_sourcescaleoperationleft + S (k) = (p)) /\ (((exists pfa_gap_normalization_degree_sourcescaleoperationright. pfa_gap_normalization_degree_sourcescaleoperationright + S (pfp_source_normalization_degree_sourcescale) = (p)) /\ ((((exists pfa_gap_normalization_degree_sourcescaleoperationresultbound. pfa_gap_normalization_degree_sourcescaleoperationresultbound + S (pfp_value_normalization_degree_sourcescale) = (p)) /\ ((exists pfa_offset_left_normalization_degree_sourcescaleoperationresultcongruence pfa_offset_right_normalization_degree_sourcescaleoperationresultcongruence. ((k) * (pfp_source_normalization_degree_sourcescale)) + (p) * pfa_offset_left_normalization_degree_sourcescaleoperationresultcongruence = (pfp_value_normalization_degree_sourcescale) + (p) * pfa_offset_right_normalization_degree_sourcescaleoperationresultcongruence)))))))))))))))))))))) -> ((((L)=S (d)) /\ (((forall fom_index_pfp_normalization_degree_resultcoefficients. (exists fom_gap_pfp_normalization_degree_resultcoefficients_index_bound. fom_gap_pfp_normalization_degree_resultcoefficients_index_bound + S (fom_index_pfp_normalization_degree_resultcoefficients) = L) -> exists fom_value_pfp_normalization_degree_resultcoefficients. ((((exists fom_beta_height_pfp_normalization_degree_resultcoefficients_entry. fom_beta_height_pfp_normalization_degree_resultcoefficients_entry + S (fom_value_pfp_normalization_degree_resultcoefficients) = S ((S (fom_index_pfp_normalization_degree_resultcoefficients)) * bc)) /\ exists fom_beta_quotient_pfp_normalization_degree_resultcoefficients_entry. bb = fom_beta_quotient_pfp_normalization_degree_resultcoefficients_entry * S ((S (fom_index_pfp_normalization_degree_resultcoefficients)) * bc) + (fom_value_pfp_normalization_degree_resultcoefficients))) /\ (exists fom_gap_pfp_normalization_degree_resultcoefficients_value_bound. fom_gap_pfp_normalization_degree_resultcoefficients_value_bound + S (fom_value_pfp_normalization_degree_resultcoefficients) = p))) /\ ((exists pfd_leading_normalization_degree_result. ((((exists ff_h_pfp_normalization_degree_resultentry. ff_h_pfp_normalization_degree_resultentry + S (pfd_leading_normalization_degree_result) = S ((S (0)) * bc)) /\ exists ff_q_pfp_normalization_degree_resultentry. bb = ff_q_pfp_normalization_degree_resultentry * S ((S (0)) * bc) + (pfd_leading_normalization_degree_result))) /\ ((~(pfd_leading_normalization_degree_result=0))))))))))

Complete tactic proof in conservative notation

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

27 script commands · 4 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.

Named ingredients (2)
01Fix variables and assumptionsL1–10

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

  1. L1
    intro p
  2. L2
    intro k
  3. L3
    intro ab
  4. L4
    intro ac
  5. L5
    intro bb
  6. L6
    intro bc
  7. L7
    intro L
  8. L8
    intro d
  9. L9
    intro hd
  10. L10
    intro h
02Separate the logical casesL11–11

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

  1. L11
    cases hd
03Use earlier factsL12–21

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

  1. L12
    specialize prime_field_polynomial_monic_represented_degree (p)
  2. L13
    specialize prime_field_polynomial_monic_represented_degree (bb)
  3. L14
    specialize prime_field_polynomial_monic_represented_degree (bc)
  4. L15
    specialize prime_field_polynomial_monic_represented_degree (L)
  5. L16
    specialize prime_field_polynomial_monic_represented_degree (d)
  6. L17
    apply prime_field_polynomial_monic_represented_degree
  7. L18
    specialize prime_field_polynomial_monic_normalization_monic (p)
  8. L19
    specialize prime_field_polynomial_monic_normalization_monic (k)
  9. L20
    specialize prime_field_polynomial_monic_normalization_monic (ab)
  10. L21
    specialize prime_field_polynomial_monic_normalization_monic (ac)
04Use earlier factsL22–27

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

  1. L22
    specialize prime_field_polynomial_monic_normalization_monic (bb)
  2. L23
    specialize prime_field_polynomial_monic_normalization_monic (bc)
  3. L24
    specialize prime_field_polynomial_monic_normalization_monic (L)
  4. L25
    apply prime_field_polynomial_monic_normalization_monic
  5. L26
    exact h
  6. L27
    exact hd_left

Library-wide reading audit

Original defined command ledger · 27 lines
  1. 0001intro p
  2. 0002intro k
  3. 0003intro ab
  4. 0004intro ac
  5. 0005intro bb
  6. 0006intro bc
  7. 0007intro L
  8. 0008intro d
  9. 0009intro hd
  10. 0010intro h
  11. 0011cases hd
  12. 0012specialize prime_field_polynomial_monic_represented_degree (p)
  13. 0013specialize prime_field_polynomial_monic_represented_degree (bb)
  14. 0014specialize prime_field_polynomial_monic_represented_degree (bc)
  15. 0015specialize prime_field_polynomial_monic_represented_degree (L)
  16. 0016specialize prime_field_polynomial_monic_represented_degree (d)
  17. 0017apply prime_field_polynomial_monic_represented_degree
  18. 0018specialize prime_field_polynomial_monic_normalization_monic (p)
  19. 0019specialize prime_field_polynomial_monic_normalization_monic (k)
  20. 0020specialize prime_field_polynomial_monic_normalization_monic (ab)
  21. 0021specialize prime_field_polynomial_monic_normalization_monic (ac)
  22. 0022specialize prime_field_polynomial_monic_normalization_monic (bb)
  23. 0023specialize prime_field_polynomial_monic_normalization_monic (bc)
  24. 0024specialize prime_field_polynomial_monic_normalization_monic (L)
  25. 0025apply prime_field_polynomial_monic_normalization_monic
  26. 0026exact h
  27. 0027exact hd_left