PG0002

prime_field_polynomial_shift_bounded

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

A real trailing zero preserves canonical field coefficients; characteristic two uses natural zero and one, not signed codes.

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.

Exact expanded first-order arithmetic statement

forall p b c L d e. (~((p) = 1) /\ forall pfa_factor_left_shift_bound_prime pfa_factor_right_shift_bound_prime. (p) = pfa_factor_left_shift_bound_prime * pfa_factor_right_shift_bound_prime -> pfa_factor_left_shift_bound_prime = 1 \/ pfa_factor_right_shift_bound_prime = 1) -> (forall fom_index_pfp_shift_bound_source. (exists fom_gap_pfp_shift_bound_source_index_bound. fom_gap_pfp_shift_bound_source_index_bound + S (fom_index_pfp_shift_bound_source) = L) -> exists fom_value_pfp_shift_bound_source. ((((exists fom_beta_height_pfp_shift_bound_source_entry. fom_beta_height_pfp_shift_bound_source_entry + S (fom_value_pfp_shift_bound_source) = S ((S (fom_index_pfp_shift_bound_source)) * c)) /\ exists fom_beta_quotient_pfp_shift_bound_source_entry. b = fom_beta_quotient_pfp_shift_bound_source_entry * S ((S (fom_index_pfp_shift_bound_source)) * c) + (fom_value_pfp_shift_bound_source))) /\ (exists fom_gap_pfp_shift_bound_source_value_bound. fom_gap_pfp_shift_bound_source_value_bound + S (fom_value_pfp_shift_bound_source) = p))) -> (((forall mdr_i_pfp_shift_bound_relationprefix mdr_a_pfp_shift_bound_relationprefix. (exists mdr_gap_pfp_shift_bound_relationprefixb. mdr_gap_pfp_shift_bound_relationprefixb + S (mdr_i_pfp_shift_bound_relationprefix) = (L)) -> (((exists ff_h_mdr_pfp_shift_bound_relationprefixo. ff_h_mdr_pfp_shift_bound_relationprefixo + S (mdr_a_pfp_shift_bound_relationprefix) = S ((S (mdr_i_pfp_shift_bound_relationprefix)) * c)) /\ exists ff_q_mdr_pfp_shift_bound_relationprefixo. b = ff_q_mdr_pfp_shift_bound_relationprefixo * S ((S (mdr_i_pfp_shift_bound_relationprefix)) * c) + (mdr_a_pfp_shift_bound_relationprefix))) -> (((exists ff_h_mdr_pfp_shift_bound_relationprefixn. ff_h_mdr_pfp_shift_bound_relationprefixn + S (mdr_a_pfp_shift_bound_relationprefix) = S ((S (mdr_i_pfp_shift_bound_relationprefix)) * e)) /\ exists ff_q_mdr_pfp_shift_bound_relationprefixn. d = ff_q_mdr_pfp_shift_bound_relationprefixn * S ((S (mdr_i_pfp_shift_bound_relationprefix)) * e) + (mdr_a_pfp_shift_bound_relationprefix)))) /\ ((((exists ff_h_pfp_shift_bound_relationlast. ff_h_pfp_shift_bound_relationlast + S (0) = S ((S (L)) * e)) /\ exists ff_q_pfp_shift_bound_relationlast. d = ff_q_pfp_shift_bound_relationlast * S ((S (L)) * e) + (0)))))) -> (forall fom_index_pfp_shift_bound_result. (exists fom_gap_pfp_shift_bound_result_index_bound. fom_gap_pfp_shift_bound_result_index_bound + S (fom_index_pfp_shift_bound_result) = S L) -> exists fom_value_pfp_shift_bound_result. ((((exists fom_beta_height_pfp_shift_bound_result_entry. fom_beta_height_pfp_shift_bound_result_entry + S (fom_value_pfp_shift_bound_result) = S ((S (fom_index_pfp_shift_bound_result)) * e)) /\ exists fom_beta_quotient_pfp_shift_bound_result_entry. d = fom_beta_quotient_pfp_shift_bound_result_entry * S ((S (fom_index_pfp_shift_bound_result)) * e) + (fom_value_pfp_shift_bound_result))) /\ (exists fom_gap_pfp_shift_bound_result_value_bound. fom_gap_pfp_shift_bound_result_value_bound + S (fom_value_pfp_shift_bound_result) = p)))

Constructive proof overview

Generated structural guide

A real trailing zero preserves canonical field coefficients; characteristic two uses natural zero and one, not signed codes.

The unchanged tactic script uses 2 declared prerequisites and contains 40 exact native proof lines.

Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

finite_lt_succ_eq_or_lt Alpha theorem; checked-use authorized prime_field_zero_below_prime Alpha theorem; checked-use authorized

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

40 script commands · 14 reading checkpoints · 2 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.

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 L
  5. L5
    intro d
  6. L6
    intro e
  7. L7
    intro hp
  8. L8
    intro hc
  9. L9
    intro hs
02Separate the logical casesL10–10

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

  1. L10
    cases hs
03Fix variables and assumptionsL11–12

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

  1. L11
    intro i
  2. L12
    intro hi
04Establish hoL13–17

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.

  1. L13
    have ho : i=L \/ (exists pfa_gap_shift_bound_old_index. pfa_gap_shift_bound_old_index + S (i) = (L))
  2. L14
    specialize finite_lt_succ_eq_or_lt (L)
  3. L15
    specialize finite_lt_succ_eq_or_lt (i)
  4. L16
    apply finite_lt_succ_eq_or_lt
  5. L17
    exact hi
05Separate the logical casesL18–18

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

  1. L18
    cases ho
06Construct an explicit witnessL19–19

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

  1. L19
    exists 0
07Separate the logical casesL20–20

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

  1. L20
    split
08Calculate and transport equalitiesL21–22

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

  1. L21
    rewrite ho_left
  2. L22
    rewrite ho_left
09Use earlier factsL23–26

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

  1. L23
    exact hs_right
  2. L24
    specialize prime_field_zero_below_prime (p)
  3. L25
    apply prime_field_zero_below_prime
  4. L26
    exact hp
10Establish haL27–30

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

  1. L27
    have ha : exists a. ((((exists ff_h_pfp_shift_bound_chosen. ff_h_pfp_shift_bound_chosen + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_shift_bound_chosen. b = ff_q_pfp_shift_bound_chosen * S ((S (i)) * c) + (a))) /\ ((exists pfa_gap_shift_bound_value. pfa_gap_shift_bound_value + S (a) = (p))))
  2. L28
    specialize hc (i)
  3. L29
    apply hc
  4. L30
    exact ho_right
11Separate the logical casesL31–32

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

  1. L31
    cases ha
  2. L32
    cases ha_witness
12Construct an explicit witnessL33–33

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

  1. L33
    exists x
13Separate the logical casesL34–34

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

  1. L34
    split
14Use earlier factsL35–40

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

  1. L35
    specialize hs_left (i)
  2. L36
    specialize hs_left (x)
  3. L37
    apply hs_left
  4. L38
    exact ho_right
  5. L39
    exact ha_witness_left
  6. L40
    exact ha_witness_right

Library-wide reading audit

Original exact command ledger · 40 lines
  1. 0001intro p
  2. 0002intro b
  3. 0003intro c
  4. 0004intro L
  5. 0005intro d
  6. 0006intro e
  7. 0007intro hp
  8. 0008intro hc
  9. 0009intro hs
  10. 0010cases hs
  11. 0011intro i
  12. 0012intro hi
  13. 0013have ho : i=L \/ (exists pfa_gap_shift_bound_old_index. pfa_gap_shift_bound_old_index + S (i) = (L))
  14. 0014specialize finite_lt_succ_eq_or_lt (L)
  15. 0015specialize finite_lt_succ_eq_or_lt (i)
  16. 0016apply finite_lt_succ_eq_or_lt
  17. 0017exact hi
  18. 0018cases ho
  19. 0019exists 0
  20. 0020split
  21. 0021rewrite ho_left
  22. 0022rewrite ho_left
  23. 0023exact hs_right
  24. 0024specialize prime_field_zero_below_prime (p)
  25. 0025apply prime_field_zero_below_prime
  26. 0026exact hp
  27. 0027have ha : exists a. ((((exists ff_h_pfp_shift_bound_chosen. ff_h_pfp_shift_bound_chosen + S (a) = S ((S (i)) * c)) /\ exists ff_q_pfp_shift_bound_chosen. b = ff_q_pfp_shift_bound_chosen * S ((S (i)) * c) + (a))) /\ ((exists pfa_gap_shift_bound_value. pfa_gap_shift_bound_value + S (a) = (p))))
  28. 0028specialize hc (i)
  29. 0029apply hc
  30. 0030exact ho_right
  31. 0031cases ha
  32. 0032cases ha_witness
  33. 0033exists x
  34. 0034split
  35. 0035specialize hs_left (i)
  36. 0036specialize hs_left (x)
  37. 0037apply hs_left
  38. 0038exact ho_right
  39. 0039exact ha_witness_left
  40. 0040exact ha_witness_right