FS0021

four_square_descent_nonunit_proper_factor_not_prime

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

A prime has no divisor k that is simultaneously nonunit and strictly smaller than the prime.

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.

Exact expanded first-order arithmetic statement

forall p k q. ((~(p = 1) /\ forall frm_prime_left_fsd_p frm_prime_right_fsd_p. p = frm_prime_left_fsd_p * frm_prime_right_fsd_p -> frm_prime_left_fsd_p = 1 \/ frm_prime_right_fsd_p = 1)) -> ~(k = 1) -> (exists gap. gap + S k = p) -> ~(p = k * q)

Constructive proof overview

Generated structural guide

A prime has no divisor k that is simultaneously nonunit and strictly smaller than the prime.

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

dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged

Historical empty-context replay experiment only; that experiment persisted no certificate and granted no release authority. Current checked use follows separately sealed, independently verified proof bundles; there is no Stable promotion.

Proof neighborhood

Direct dependencies

mul_one Stable theorem; checked-use authorized lt_irrefl_expanded Stable 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

23 script commands · 10 reading checkpoints · 1 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.

01Fix variables and assumptionsL1–7

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

  1. L1
    intro p
  2. L2
    intro k
  3. L3
    intro q
  4. L4
    intro hprime
  5. L5
    intro hnonunit
  6. L6
    intro hproper
  7. L7
    intro hfactor
02Separate the logical casesL8–8

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

  1. L8
    cases hprime
03Use earlier factsL9–10

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

  1. L9
    specialize hprime_right k
  2. L10
    specialize hprime_right q
04Establish hcasesL11–13

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprime right.

  1. L11
    have hcases : k = 1 \/ q = 1
  2. L12
    apply hprime_right
  3. L13
    exact hfactor
05Separate the logical casesL14–14

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

  1. L14
    cases hcases
06Use earlier factsL15–16

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

  1. L15
    apply hnonunit
  2. L16
    exact hcases_left
07Calculate and transport equalitiesL17–17

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

  1. L17
    rewrite hcases_right at hfactor
08Use earlier factsL18–18

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

  1. L18
    specialize mul_one k
09Calculate and transport equalitiesL19–20

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

  1. L19
    rewrite mul_one at hfactor
  2. L20
    rewrite hfactor at hproper
10Use earlier factsL21–23

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

  1. L21
    specialize lt_irrefl_expanded k
  2. L22
    apply lt_irrefl_expanded
  3. L23
    exact hproper

Library-wide reading audit

Original exact command ledger · 23 lines
  1. 0001intro p
  2. 0002intro k
  3. 0003intro q
  4. 0004intro hprime
  5. 0005intro hnonunit
  6. 0006intro hproper
  7. 0007intro hfactor
  8. 0008cases hprime
  9. 0009specialize hprime_right k
  10. 0010specialize hprime_right q
  11. 0011have hcases : k = 1 \/ q = 1
  12. 0012apply hprime_right
  13. 0013exact hfactor
  14. 0014cases hcases
  15. 0015apply hnonunit
  16. 0016exact hcases_left
  17. 0017rewrite hcases_right at hfactor
  18. 0018specialize mul_one k
  19. 0019rewrite mul_one at hfactor
  20. 0020rewrite hfactor at hproper
  21. 0021specialize lt_irrefl_expanded k
  22. 0022apply lt_irrefl_expanded
  23. 0023exact hproper