MV000E

mobius_squarefree_divisor

Public research checkpoint, not admitted to Alpha or Stable. Alpha v30 remains 3222 checked-use theorems; Stable remains 432. The on-demand Alpha Lean service does not yet expose these checkpoint theorems; their independently checked literal bundles and unchanged sources are available below.

A genuine divisor of a positive squarefree input is positive and squarefree, with no bound assumption on its prime-square witnesses.

Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable

Mobius(n,z) is defined only for positive n. The canonical signed codes are 0 for zero, 2 for +1, and 1 for −1. The function is defined independently of any divisor-sum identity. These values and prime-step lemmas are prerequisites for G007; divisor-sum cancellation and full Möbius inversion remain open in this checkpoint. No signed-table proof is included here.

Exact theorem in conservative defined notation

∀ n. ∀ d. Squarefree(n)Dvd(d,n)Squarefree(d)

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

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall n d. (((~((n) = 0)) /\ (forall sfd_prime_divisor_source. (~((sfd_prime_divisor_source) = 1) /\ forall pvs_left_divisor_sourcedomain pvs_right_divisor_sourcedomain. (sfd_prime_divisor_source) = pvs_left_divisor_sourcedomain * pvs_right_divisor_sourcedomain -> pvs_left_divisor_sourcedomain = 1 \/ pvs_right_divisor_sourcedomain = 1) -> (exists pvs_le_gap_divisor_sourcebound. pvs_le_gap_divisor_sourcebound + (sfd_prime_divisor_source) = (n)) -> ~(exists pvs_factor_divisor_sourcesquare. (n) = (sfd_prime_divisor_source * sfd_prime_divisor_source) * pvs_factor_divisor_sourcesquare)))) -> (exists pvs_factor_divisor_at. (n) = (d) * pvs_factor_divisor_at) -> (((~((d) = 0)) /\ (forall sfd_prime_divisor_target. (~((sfd_prime_divisor_target) = 1) /\ forall pvs_left_divisor_targetdomain pvs_right_divisor_targetdomain. (sfd_prime_divisor_target) = pvs_left_divisor_targetdomain * pvs_right_divisor_targetdomain -> pvs_left_divisor_targetdomain = 1 \/ pvs_right_divisor_targetdomain = 1) -> (exists pvs_le_gap_divisor_targetbound. pvs_le_gap_divisor_targetbound + (sfd_prime_divisor_target) = (d)) -> ~(exists pvs_factor_divisor_targetsquare. (d) = (sfd_prime_divisor_target * sfd_prime_divisor_target) * pvs_factor_divisor_targetsquare))))

Complete tactic proof in conservative notation

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

30 script commands · 8 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–4

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

  1. L1
    intro n
  2. L2
    intro d
  3. L3
    intro hsf
  4. L4
    intro hdiv
02Separate the logical casesL5–6

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

  1. L5
    cases hsf
  2. L6
    split
03Fix variables and assumptionsL7–7

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

  1. L7
    intro hz
04Separate the logical casesL8–8

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

  1. L8
    cases hdiv
05Use earlier factsL9–15

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

  1. L9
    specialize factor_nonzero_left (n)
  2. L10
    specialize factor_nonzero_left (d)
  3. L11
    specialize factor_nonzero_left (x)
  4. L12
    apply factor_nonzero_left
  5. L13
    exact hsf_left
  6. L14
    exact hdiv_witness
  7. L15
    exact hz
06Fix variables and assumptionsL16–19

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

  1. L16
    intro p
  2. L17
    intro hp
  3. L18
    intro hbound
  4. L19
    intro hsquare
07Use earlier factsL20–29

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

  1. L20
    specialize squarefree_excludes_prime_square (n)
  2. L21
    specialize squarefree_excludes_prime_square (p)
  3. L22
    apply squarefree_excludes_prime_square
  4. L23
    exact hsf
  5. L24
    exact hp
  6. L25
    specialize multiple_trans (d)
  7. L26
    specialize multiple_trans (p * p)
  8. L27
    specialize multiple_trans (n)
  9. L28
    apply multiple_trans
  10. L29
    exact hdiv
08Use earlier factsL30–30

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

  1. L30
    exact hsquare

Library-wide reading audit

Original defined command ledger · 30 lines
  1. 0001intro n
  2. 0002intro d
  3. 0003intro hsf
  4. 0004intro hdiv
  5. 0005cases hsf
  6. 0006split
  7. 0007intro hz
  8. 0008cases hdiv
  9. 0009specialize factor_nonzero_left (n)
  10. 0010specialize factor_nonzero_left (d)
  11. 0011specialize factor_nonzero_left (x)
  12. 0012apply factor_nonzero_left
  13. 0013exact hsf_left
  14. 0014exact hdiv_witness
  15. 0015exact hz
  16. 0016intro p
  17. 0017intro hp
  18. 0018intro hbound
  19. 0019intro hsquare
  20. 0020specialize squarefree_excludes_prime_square (n)
  21. 0021specialize squarefree_excludes_prime_square (p)
  22. 0022apply squarefree_excludes_prime_square
  23. 0023exact hsf
  24. 0024exact hp
  25. 0025specialize multiple_trans (d)
  26. 0026specialize multiple_trans (p * p)
  27. 0027specialize multiple_trans (n)
  28. 0028apply multiple_trans
  29. 0029exact hdiv
  30. 0030exact hsquare