PG0039

prime_field_polynomial_common_representatives_exists

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

Use the explicit common length L+M to construct real canonical representatives for any two independently sized inputs, including zero lengths.

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 ab ac L bb bc M. (~((p) = 1) /\ forall pfa_factor_left_common_exists_prime pfa_factor_right_common_exists_prime. (p) = pfa_factor_left_common_exists_prime * pfa_factor_right_common_exists_prime -> pfa_factor_left_common_exists_prime = 1 \/ pfa_factor_right_common_exists_prime = 1) -> (forall fom_index_pfp_common_exists_A. (exists fom_gap_pfp_common_exists_A_index_bound. fom_gap_pfp_common_exists_A_index_bound + S (fom_index_pfp_common_exists_A) = L) -> exists fom_value_pfp_common_exists_A. ((((exists fom_beta_height_pfp_common_exists_A_entry. fom_beta_height_pfp_common_exists_A_entry + S (fom_value_pfp_common_exists_A) = S ((S (fom_index_pfp_common_exists_A)) * ac)) /\ exists fom_beta_quotient_pfp_common_exists_A_entry. ab = fom_beta_quotient_pfp_common_exists_A_entry * S ((S (fom_index_pfp_common_exists_A)) * ac) + (fom_value_pfp_common_exists_A))) /\ (exists fom_gap_pfp_common_exists_A_value_bound. fom_gap_pfp_common_exists_A_value_bound + S (fom_value_pfp_common_exists_A) = p))) -> (forall fom_index_pfp_common_exists_B. (exists fom_gap_pfp_common_exists_B_index_bound. fom_gap_pfp_common_exists_B_index_bound + S (fom_index_pfp_common_exists_B) = M) -> exists fom_value_pfp_common_exists_B. ((((exists fom_beta_height_pfp_common_exists_B_entry. fom_beta_height_pfp_common_exists_B_entry + S (fom_value_pfp_common_exists_B) = S ((S (fom_index_pfp_common_exists_B)) * bc)) /\ exists fom_beta_quotient_pfp_common_exists_B_entry. bb = fom_beta_quotient_pfp_common_exists_B_entry * S ((S (fom_index_pfp_common_exists_B)) * bc) + (fom_value_pfp_common_exists_B))) /\ (exists fom_gap_pfp_common_exists_B_value_bound. fom_gap_pfp_common_exists_B_value_bound + S (fom_value_pfp_common_exists_B) = p))) -> (exists ub uc vb vc. ((forall fom_index_pfp_common_exists_output_left_bounded. (exists fom_gap_pfp_common_exists_output_left_bounded_index_bound. fom_gap_pfp_common_exists_output_left_bounded_index_bound + S (fom_index_pfp_common_exists_output_left_bounded) = L+M) -> exists fom_value_pfp_common_exists_output_left_bounded. ((((exists fom_beta_height_pfp_common_exists_output_left_bounded_entry. fom_beta_height_pfp_common_exists_output_left_bounded_entry + S (fom_value_pfp_common_exists_output_left_bounded) = S ((S (fom_index_pfp_common_exists_output_left_bounded)) * uc)) /\ exists fom_beta_quotient_pfp_common_exists_output_left_bounded_entry. ub = fom_beta_quotient_pfp_common_exists_output_left_bounded_entry * S ((S (fom_index_pfp_common_exists_output_left_bounded)) * uc) + (fom_value_pfp_common_exists_output_left_bounded))) /\ (exists fom_gap_pfp_common_exists_output_left_bounded_value_bound. fom_gap_pfp_common_exists_output_left_bounded_value_bound + S (fom_value_pfp_common_exists_output_left_bounded) = p))) /\ (((forall fom_index_pfp_common_exists_output_right_bounded. (exists fom_gap_pfp_common_exists_output_right_bounded_index_bound. fom_gap_pfp_common_exists_output_right_bounded_index_bound + S (fom_index_pfp_common_exists_output_right_bounded) = L+M) -> exists fom_value_pfp_common_exists_output_right_bounded. ((((exists fom_beta_height_pfp_common_exists_output_right_bounded_entry. fom_beta_height_pfp_common_exists_output_right_bounded_entry + S (fom_value_pfp_common_exists_output_right_bounded) = S ((S (fom_index_pfp_common_exists_output_right_bounded)) * vc)) /\ exists fom_beta_quotient_pfp_common_exists_output_right_bounded_entry. vb = fom_beta_quotient_pfp_common_exists_output_right_bounded_entry * S ((S (fom_index_pfp_common_exists_output_right_bounded)) * vc) + (fom_value_pfp_common_exists_output_right_bounded))) /\ (exists fom_gap_pfp_common_exists_output_right_bounded_value_bound. fom_gap_pfp_common_exists_output_right_bounded_value_bound + S (fom_value_pfp_common_exists_output_right_bounded) = p))) /\ ((((forall pfrep_power_common_exists_output_common_left pfrep_left_common_exists_output_common_left pfrep_right_common_exists_output_common_left. ((exists pfrep_position_common_exists_output_common_leftfirst. ((pfrep_position_common_exists_output_common_leftfirst+S (pfrep_power_common_exists_output_common_left)=(L)) /\ ((((exists ff_h_pfp_common_exists_output_common_leftfirstentry. ff_h_pfp_common_exists_output_common_leftfirstentry + S (pfrep_left_common_exists_output_common_left) = S ((S (pfrep_position_common_exists_output_common_leftfirst)) * ac)) /\ exists ff_q_pfp_common_exists_output_common_leftfirstentry. ab = ff_q_pfp_common_exists_output_common_leftfirstentry * S ((S (pfrep_position_common_exists_output_common_leftfirst)) * ac) + (pfrep_left_common_exists_output_common_left)))))) \/ (((exists pfrep_gap_common_exists_output_common_leftfirstoutside. pfrep_gap_common_exists_output_common_leftfirstoutside+(L)=(pfrep_power_common_exists_output_common_left)) /\ (((pfrep_left_common_exists_output_common_left)=0))))) -> ((exists pfrep_position_common_exists_output_common_leftsecond. ((pfrep_position_common_exists_output_common_leftsecond+S (pfrep_power_common_exists_output_common_left)=(L+M)) /\ ((((exists ff_h_pfp_common_exists_output_common_leftsecondentry. ff_h_pfp_common_exists_output_common_leftsecondentry + S (pfrep_right_common_exists_output_common_left) = S ((S (pfrep_position_common_exists_output_common_leftsecond)) * uc)) /\ exists ff_q_pfp_common_exists_output_common_leftsecondentry. ub = ff_q_pfp_common_exists_output_common_leftsecondentry * S ((S (pfrep_position_common_exists_output_common_leftsecond)) * uc) + (pfrep_right_common_exists_output_common_left)))))) \/ (((exists pfrep_gap_common_exists_output_common_leftsecondoutside. pfrep_gap_common_exists_output_common_leftsecondoutside+(L+M)=(pfrep_power_common_exists_output_common_left)) /\ (((pfrep_right_common_exists_output_common_left)=0))))) -> pfrep_left_common_exists_output_common_left=pfrep_right_common_exists_output_common_left) /\ ((forall pfrep_power_common_exists_output_common_right pfrep_left_common_exists_output_common_right pfrep_right_common_exists_output_common_right. ((exists pfrep_position_common_exists_output_common_rightfirst. ((pfrep_position_common_exists_output_common_rightfirst+S (pfrep_power_common_exists_output_common_right)=(M)) /\ ((((exists ff_h_pfp_common_exists_output_common_rightfirstentry. ff_h_pfp_common_exists_output_common_rightfirstentry + S (pfrep_left_common_exists_output_common_right) = S ((S (pfrep_position_common_exists_output_common_rightfirst)) * bc)) /\ exists ff_q_pfp_common_exists_output_common_rightfirstentry. bb = ff_q_pfp_common_exists_output_common_rightfirstentry * S ((S (pfrep_position_common_exists_output_common_rightfirst)) * bc) + (pfrep_left_common_exists_output_common_right)))))) \/ (((exists pfrep_gap_common_exists_output_common_rightfirstoutside. pfrep_gap_common_exists_output_common_rightfirstoutside+(M)=(pfrep_power_common_exists_output_common_right)) /\ (((pfrep_left_common_exists_output_common_right)=0))))) -> ((exists pfrep_position_common_exists_output_common_rightsecond. ((pfrep_position_common_exists_output_common_rightsecond+S (pfrep_power_common_exists_output_common_right)=(L+M)) /\ ((((exists ff_h_pfp_common_exists_output_common_rightsecondentry. ff_h_pfp_common_exists_output_common_rightsecondentry + S (pfrep_right_common_exists_output_common_right) = S ((S (pfrep_position_common_exists_output_common_rightsecond)) * vc)) /\ exists ff_q_pfp_common_exists_output_common_rightsecondentry. vb = ff_q_pfp_common_exists_output_common_rightsecondentry * S ((S (pfrep_position_common_exists_output_common_rightsecond)) * vc) + (pfrep_right_common_exists_output_common_right)))))) \/ (((exists pfrep_gap_common_exists_output_common_rightsecondoutside. pfrep_gap_common_exists_output_common_rightsecondoutside+(L+M)=(pfrep_power_common_exists_output_common_right)) /\ (((pfrep_right_common_exists_output_common_right)=0))))) -> pfrep_left_common_exists_output_common_right=pfrep_right_common_exists_output_common_right)))))))))

Constructive proof overview

Generated structural guide

Use the explicit common length L+M to construct real canonical representatives for any two independently sized inputs, including zero lengths.

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

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

Proof neighborhood

Direct dependencies

PG0038 prime_field_polynomial_common_representatives_at_length_exists le_add_right 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

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

Named ingredients (1)
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 L
  5. L5
    intro bb
  6. L6
    intro bc
  7. L7
    intro M
  8. L8
    intro hp
  9. L9
    intro ha
  10. L10
    intro hb
02Use earlier factsL11–20

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

  1. L11
    specialize prime_field_polynomial_common_representatives_at_length_exists (p)
  2. L12
    specialize prime_field_polynomial_common_representatives_at_length_exists (ab)
  3. L13
    specialize prime_field_polynomial_common_representatives_at_length_exists (ac)
  4. L14
    specialize prime_field_polynomial_common_representatives_at_length_exists (L)
  5. L15
    specialize prime_field_polynomial_common_representatives_at_length_exists (bb)
  6. L16
    specialize prime_field_polynomial_common_representatives_at_length_exists (bc)
  7. L17
    specialize prime_field_polynomial_common_representatives_at_length_exists (M)
  8. L18
    specialize prime_field_polynomial_common_representatives_at_length_exists (L+M)
  9. L19
    apply prime_field_polynomial_common_representatives_at_length_exists
  10. L20
    exact hp
03Use earlier factsL21–25

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

  1. L21
    exact ha
  2. L22
    exact hb
  3. L23
    specialize le_add_right (L)
  4. L24
    specialize le_add_right (M)
  5. L25
    apply le_add_right
04Construct an explicit witnessL26–26

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

  1. L26
    exists L
05Calculate and transport equalitiesL27–27

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

  1. L27
    refl

Library-wide reading audit

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