SK0021

prime_exponent_prefix_gcd_functional

The finite exponent gcd is literally unique by mutual actual divisibility.

Alpha v34 checked-use · first admitted v29 · 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. Exact original first-admission records.

For n>1 the exponent gcd and a real beta table classify and witness all positive root degrees. The unit n=1 has a separate uniform certificate for every positive degree. Zero is excluded. NaturalSquarefreeDecomposition is deliberately distinct from the unrelated polynomial definition.

Exact theorem in conservative defined notation

∀ b. ∀ c. ∀ l. ∀ g. ∀ h. PrimeExponentPrefixGCD(b,c,l,g)PrimeExponentPrefixGCD(b,c,l,h) → g = h

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

Definition DAG

Actual proof prerequisites

multiple_antisymm · checked external prerequisite
Original expanded first-order statement
forall b c l g h. (((forall ppf_index_gcd_unique_firstcommon ppf_entry_gcd_unique_firstcommon. (exists pvs_gap_gcd_unique_firstcommonbound. pvs_gap_gcd_unique_firstcommonbound + S (ppf_index_gcd_unique_firstcommon) = (l)) -> (((exists ff_h_pvs_gcd_unique_firstcommonentry. ff_h_pvs_gcd_unique_firstcommonentry + S (ppf_entry_gcd_unique_firstcommon) = S ((S (ppf_index_gcd_unique_firstcommon)) * c)) /\ exists ff_q_pvs_gcd_unique_firstcommonentry. b = ff_q_pvs_gcd_unique_firstcommonentry * S ((S (ppf_index_gcd_unique_firstcommon)) * c) + (ppf_entry_gcd_unique_firstcommon))) -> (exists pvs_factor_gcd_unique_firstcommondivisor. (ppf_entry_gcd_unique_firstcommon) = (g) * pvs_factor_gcd_unique_firstcommondivisor)) /\ (forall ppf_common_gcd_unique_first. (forall ppf_index_gcd_unique_firstother ppf_entry_gcd_unique_firstother. (exists pvs_gap_gcd_unique_firstotherbound. pvs_gap_gcd_unique_firstotherbound + S (ppf_index_gcd_unique_firstother) = (l)) -> (((exists ff_h_pvs_gcd_unique_firstotherentry. ff_h_pvs_gcd_unique_firstotherentry + S (ppf_entry_gcd_unique_firstother) = S ((S (ppf_index_gcd_unique_firstother)) * c)) /\ exists ff_q_pvs_gcd_unique_firstotherentry. b = ff_q_pvs_gcd_unique_firstotherentry * S ((S (ppf_index_gcd_unique_firstother)) * c) + (ppf_entry_gcd_unique_firstother))) -> (exists pvs_factor_gcd_unique_firstotherdivisor. (ppf_entry_gcd_unique_firstother) = (ppf_common_gcd_unique_first) * pvs_factor_gcd_unique_firstotherdivisor)) -> (exists pvs_factor_gcd_unique_firstgreatest. (g) = (ppf_common_gcd_unique_first) * pvs_factor_gcd_unique_firstgreatest)))) -> (((forall ppf_index_gcd_unique_secondcommon ppf_entry_gcd_unique_secondcommon. (exists pvs_gap_gcd_unique_secondcommonbound. pvs_gap_gcd_unique_secondcommonbound + S (ppf_index_gcd_unique_secondcommon) = (l)) -> (((exists ff_h_pvs_gcd_unique_secondcommonentry. ff_h_pvs_gcd_unique_secondcommonentry + S (ppf_entry_gcd_unique_secondcommon) = S ((S (ppf_index_gcd_unique_secondcommon)) * c)) /\ exists ff_q_pvs_gcd_unique_secondcommonentry. b = ff_q_pvs_gcd_unique_secondcommonentry * S ((S (ppf_index_gcd_unique_secondcommon)) * c) + (ppf_entry_gcd_unique_secondcommon))) -> (exists pvs_factor_gcd_unique_secondcommondivisor. (ppf_entry_gcd_unique_secondcommon) = (h) * pvs_factor_gcd_unique_secondcommondivisor)) /\ (forall ppf_common_gcd_unique_second. (forall ppf_index_gcd_unique_secondother ppf_entry_gcd_unique_secondother. (exists pvs_gap_gcd_unique_secondotherbound. pvs_gap_gcd_unique_secondotherbound + S (ppf_index_gcd_unique_secondother) = (l)) -> (((exists ff_h_pvs_gcd_unique_secondotherentry. ff_h_pvs_gcd_unique_secondotherentry + S (ppf_entry_gcd_unique_secondother) = S ((S (ppf_index_gcd_unique_secondother)) * c)) /\ exists ff_q_pvs_gcd_unique_secondotherentry. b = ff_q_pvs_gcd_unique_secondotherentry * S ((S (ppf_index_gcd_unique_secondother)) * c) + (ppf_entry_gcd_unique_secondother))) -> (exists pvs_factor_gcd_unique_secondotherdivisor. (ppf_entry_gcd_unique_secondother) = (ppf_common_gcd_unique_second) * pvs_factor_gcd_unique_secondotherdivisor)) -> (exists pvs_factor_gcd_unique_secondgreatest. (h) = (ppf_common_gcd_unique_second) * pvs_factor_gcd_unique_secondgreatest)))) -> g = h

Complete tactic proof in conservative notation

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

18 script commands · 3 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.

01Fix variables and assumptionsL1–7

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro l
  4. L4
    intro g
  5. L5
    intro h
  6. L6
    intro hfirst
  7. L7
    intro hsecond
02Separate the logical casesL8–9

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

  1. L8
    cases hfirst
  2. L9
    cases hsecond
03Use earlier factsL10–18

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

  1. L10
    specialize multiple_antisymm (g)
  2. L11
    specialize multiple_antisymm (h)
  3. L12
    apply multiple_antisymm
  4. L13
    specialize hsecond_right (g)
  5. L14
    apply hsecond_right
  6. L15
    exact hfirst_left
  7. L16
    specialize hfirst_right (h)
  8. L17
    apply hfirst_right
  9. L18
    exact hsecond_left

Library-wide reading audit

Original defined command ledger · 18 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro l
  4. 0004intro g
  5. 0005intro h
  6. 0006intro hfirst
  7. 0007intro hsecond
  8. 0008cases hfirst
  9. 0009cases hsecond
  10. 0010specialize multiple_antisymm (g)
  11. 0011specialize multiple_antisymm (h)
  12. 0012apply multiple_antisymm
  13. 0013specialize hsecond_right (g)
  14. 0014apply hsecond_right
  15. 0015exact hfirst_left
  16. 0016specialize hfirst_right (h)
  17. 0017apply hfirst_right
  18. 0018exact hsecond_left