Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
The input n is positive. Signed code 2 denotes +1, so the actual sum is +1 at n=1 and zero for n>1. The positive-values result permits arbitrary F(0), which the divisor mask excludes. Prime-square multiples contribute zero. Full G007 inversion is established in its separate family.
Exact theorem in conservative defined notation
∀ p. ∀ d. ¬p = 0 → ∃ x. PrimeFactorToggle(p,d,x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 41 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
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–3
02Establish hdL4–8
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply multiple decidable nonzero.
03Separate the logical casesL9–10
04Establish hqL11–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply multiple decidable nonzero.
05Separate the logical casesL16–17
06Construct an explicit witnessL18–18
Supply the displayed value, then prove that it has the required property.
- L18
exists d
07Separate the logical casesL19–21
08Construct an explicit witnessL22–22
Supply the displayed value, then prove that it has the required property.
- L22
exists x1
09Calculate and transport equalitiesL23–23
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L23
trans p*x
10Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact hd_left_witness
11Calculate and transport equalitiesL25–28
12Use earlier factsL29–29
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
apply mul_assoc
13Calculate and transport equalitiesL30–30
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L30
refl
14Construct an explicit witnessL31–31
Supply the displayed value, then prove that it has the required property.
- L31
exists x
15Separate the logical casesL32–34
16Use earlier factsL35–36
17Construct an explicit witnessL37–37
Supply the displayed value, then prove that it has the required property.
- L37
exists p*d
18Separate the logical casesL38–39
19Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hd_right
20Calculate and transport equalitiesL41–41
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L41
refl
Original defined command ledger · 41 lines
- 0001
intro p - 0002
intro d - 0003
intro hp - 0004
have hd : Dvd(p,d) ∨ ¬Dvd(p,d) - 0005
specialize multiple_decidable_nonzero (p) - 0006
specialize multiple_decidable_nonzero (d) - 0007
apply multiple_decidable_nonzero - 0008
exact hp - 0009
cases hd - 0010
cases hd_left - 0011
have hq : Dvd(p,x) ∨ ¬Dvd(p,x) - 0012
specialize multiple_decidable_nonzero (p) - 0013
specialize multiple_decidable_nonzero (x) - 0014
apply multiple_decidable_nonzero - 0015
exact hp - 0016
cases hq - 0017
cases hq_left - 0018
exists d - 0019
right - 0020
right - 0021
split - 0022
exists x1 - 0023
trans p*x - 0024
exact hd_left_witness - 0025
trans p*(p*x1) - 0026
rewrite hq_left_witness - 0027
refl - 0028
symm - 0029
apply mul_assoc - 0030
refl - 0031
exists x - 0032
right - 0033
left - 0034
split - 0035
exact hd_left_witness - 0036
exact hq_right - 0037
exists p*d - 0038
left - 0039
split - 0040
exact hd_right - 0041
refl