PG0039

prime_field_polynomial_common_representatives_exists

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

Alpha v34 checked-use · first admitted v34 · 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 products and sums use actual beta-coded coefficients; equality is formal coefficient equivalence, not equality of evaluations or raw codes. The zero gcd is included. Uniqueness is up to formal equivalence, not unique Bézout coefficients. This proves the polynomial gcd component, not G091 irreducible-polynomial existence or arbitrary prime-power-field construction.

Exact theorem in conservative defined notation

∀ p. ∀ ab. ∀ ac. ∀ L. ∀ bb. ∀ bc. ∀ M. Prime(p)BetaPrefixInto(ab,ac,L,p)BetaPrefixInto(bb,bc,M,p) → ∃ x. ∃ y. ∃ z. ∃ n. BetaPrefixInto(x,y,L + M,p) ∧ (BetaPrefixInto(z,n,L + M,p)CommonRepresentatives(ab,ac,L,bb,bc,M,x,y,z,n,L + M))

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 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)))))))))

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 · 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.

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 (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 defined 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