SK0006

squarefree_coprime_square_factor_is_one

Coprime cancellation turns a squared divisor of n times another square into a squared divisor of the squarefree n itself.

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

∀ n. ∀ a. ∀ b. Squarefree(n) → (∀ x. Dvd(x,a)Dvd(x,b) → x = 1) → Dvd(a · a,n · (b · b)) → a = 1

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

Definition DAG

Actual proof prerequisites

squarefree_squared_divisor_is_onegauss_coprime_cancel · checked external prerequisitecoprime_squared_pairmul_comm · checked external prerequisite
Original expanded first-order statement
forall n a b. (((~((n) = 0)) /\ (forall sfd_prime_coprime_square_sf. (~((sfd_prime_coprime_square_sf) = 1) /\ forall pvs_left_coprime_square_sfdomain pvs_right_coprime_square_sfdomain. (sfd_prime_coprime_square_sf) = pvs_left_coprime_square_sfdomain * pvs_right_coprime_square_sfdomain -> pvs_left_coprime_square_sfdomain = 1 \/ pvs_right_coprime_square_sfdomain = 1) -> (exists pvs_le_gap_coprime_square_sfbound. pvs_le_gap_coprime_square_sfbound + (sfd_prime_coprime_square_sf) = (n)) -> ~(exists pvs_factor_coprime_square_sfsquare. (n) = (sfd_prime_coprime_square_sf * sfd_prime_coprime_square_sf) * pvs_factor_coprime_square_sfsquare)))) -> (forall sfd_common_divisor_coprime_square_pair. (exists pvs_factor_coprime_square_pairleft. (a) = (sfd_common_divisor_coprime_square_pair) * pvs_factor_coprime_square_pairleft) -> (exists pvs_factor_coprime_square_pairright. (b) = (sfd_common_divisor_coprime_square_pair) * pvs_factor_coprime_square_pairright) -> sfd_common_divisor_coprime_square_pair = 1) -> (exists pvs_factor_coprime_square_divisor. (n * (b * b)) = (a * a) * pvs_factor_coprime_square_divisor) -> a = 1

Complete tactic proof in conservative notation

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

23 script commands · 7 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–6

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

  1. L1
    intro n
  2. L2
    intro a
  3. L3
    intro b
  4. L4
    intro hsf
  5. L5
    intro hcop
  6. L6
    intro hdiv
02Use earlier factsL7–16

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

  1. L7
    specialize squarefree_squared_divisor_is_one (n)
  2. L8
    specialize squarefree_squared_divisor_is_one (a)
  3. L9
    apply squarefree_squared_divisor_is_one
  4. L10
    exact hsf
  5. L11
    specialize gauss_coprime_cancel (a * a)
  6. L12
    specialize gauss_coprime_cancel (b * b)
  7. L13
    specialize gauss_coprime_cancel (n)
  8. L14
    apply gauss_coprime_cancel
  9. L15
    specialize coprime_squared_pair (a)
  10. L16
    specialize coprime_squared_pair (b)
03Use earlier factsL17–18

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

  1. L17
    apply coprime_squared_pair
  2. L18
    exact hcop
04Separate the logical casesL19–19

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

  1. L19
    cases hdiv
05Construct an explicit witnessL20–20

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

  1. L20
    exists x
06Calculate and transport equalitiesL21–21

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

  1. L21
    trans n * (b * b)
07Use earlier factsL22–23

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

  1. L22
    apply mul_comm
  2. L23
    exact hdiv_witness

Library-wide reading audit

Original defined command ledger · 23 lines
  1. 0001intro n
  2. 0002intro a
  3. 0003intro b
  4. 0004intro hsf
  5. 0005intro hcop
  6. 0006intro hdiv
  7. 0007specialize squarefree_squared_divisor_is_one (n)
  8. 0008specialize squarefree_squared_divisor_is_one (a)
  9. 0009apply squarefree_squared_divisor_is_one
  10. 0010exact hsf
  11. 0011specialize gauss_coprime_cancel (a * a)
  12. 0012specialize gauss_coprime_cancel (b * b)
  13. 0013specialize gauss_coprime_cancel (n)
  14. 0014apply gauss_coprime_cancel
  15. 0015specialize coprime_squared_pair (a)
  16. 0016specialize coprime_squared_pair (b)
  17. 0017apply coprime_squared_pair
  18. 0018exact hcop
  19. 0019cases hdiv
  20. 0020exists x
  21. 0021trans n * (b * b)
  22. 0022apply mul_comm
  23. 0023exact hdiv_witness