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
∀ n. ∀ p. ∀ l. Prime(p) → ∃ x. ∃ y. DivisorPrimeTogglePrefix(n,p,x,y,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 75 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.
Named ingredients (1)
01Fix variables and assumptionsL1–3
02Induction on lL4–5
03Construct an explicit witnessL6–7
04Fix variables and assumptionsL8–9
05Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
exfalso
06Use earlier factsL11–13
07Fix variables and assumptionsL14–14
Work with arbitrary variables or the premises of the current implication.
- L14
intro hp
08Establish hprevL15–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L15
have hprev : ∃ b. ∃ c. DivisorPrimeTogglePrefix(n,p,b,c,l)Definitions: DivisorPrimeTogglePrefix(n,p,b,c,l)Original native command in the exact edition - L16
apply IH - L17
exact hp
09Separate the logical casesL18–19
10Establish hvL20–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor prime toggle exists.
- L20
have hv : ∃ v. DivisorPrimeToggle(n,p,l,v)Definitions: DivisorPrimeToggle(n,p,l,v)Original native command in the exact edition - L21
specialize divisor_prime_toggle_exists (n) - L22
specialize divisor_prime_toggle_exists (p) - L23
specialize divisor_prime_toggle_exists (l) - L24
apply divisor_prime_toggle_exists - L25
exact hp
11Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hv
12Establish hextL27–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
- L27
have hext : ∃ b. ∃ c. BetaAt(b,c,l,x2) ∧ (∀ y. ∀ z. Lt(y,l) → BetaAt(x,x1,y,z) → BetaAt(b,c,y,z))Definitions: BetaAt(b,c,l,x2)Lt(y,l)BetaAt(x,x1,y,z)BetaAt(b,c,y,z)Original native command in the exact edition - L28
specialize beta_prefix_extend (l) - L29
specialize beta_prefix_extend (x) - L30
specialize beta_prefix_extend (x1) - L31
specialize beta_prefix_extend (x2) - L32
apply beta_prefix_extend
13Separate the logical casesL33–35
14Construct an explicit witnessL36–37
15Fix variables and assumptionsL38–39
16Establish hcL40–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
17Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
cases hc
18Calculate and transport equalitiesL46–55
19Calculate and transport equalitiesL56–57
20Construct an explicit witnessL58–58
Supply the displayed value, then prove that it has the required property.
- L58
exists x2
21Separate the logical casesL59–59
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L59
split
22Use earlier factsL60–61
23Establish holdL62–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprev witness witness.
- L62
have hold : ∃ v. BetaAt(x,x1,i,v) ∧ DivisorPrimeToggle(n,p,i,v)Definitions: BetaAt(x,x1,i,v)DivisorPrimeToggle(n,p,i,v)Original native command in the exact edition - L63
specialize hprev_witness_witness (i) - L64
apply hprev_witness_witness - L65
exact hc_right
24Separate the logical casesL66–67
25Construct an explicit witnessL68–68
Supply the displayed value, then prove that it has the required property.
- L68
exists x5
26Separate the logical casesL69–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L69
split
27Use earlier factsL70–75
Original defined command ledger · 75 lines
- 0001
intro n - 0002
intro p - 0003
intro l - 0004
induction l - 0005
intro hp - 0006
exists 0 - 0007
exists 0 - 0008
intro i - 0009
intro hi - 0010
exfalso - 0011
specialize factor_permutation_below_zero_impossible (i) - 0012
apply factor_permutation_below_zero_impossible - 0013
exact hi - 0014
intro hp - 0015
have hprev : ∃ b. ∃ c. DivisorPrimeTogglePrefix(n,p,b,c,l) - 0016
apply IH - 0017
exact hp - 0018
cases hprev - 0019
cases hprev_witness - 0020
have hv : ∃ v. DivisorPrimeToggle(n,p,l,v) - 0021
specialize divisor_prime_toggle_exists (n) - 0022
specialize divisor_prime_toggle_exists (p) - 0023
specialize divisor_prime_toggle_exists (l) - 0024
apply divisor_prime_toggle_exists - 0025
exact hp - 0026
cases hv - 0027
have hext : ∃ b. ∃ c. BetaAt(b,c,l,x2) ∧ (∀ y. ∀ z. Lt(y,l) → BetaAt(x,x1,y,z) → BetaAt(b,c,y,z)) - 0028
specialize beta_prefix_extend (l) - 0029
specialize beta_prefix_extend (x) - 0030
specialize beta_prefix_extend (x1) - 0031
specialize beta_prefix_extend (x2) - 0032
apply beta_prefix_extend - 0033
cases hext - 0034
cases hext_witness - 0035
cases hext_witness_witness - 0036
exists x3 - 0037
exists x4 - 0038
intro i - 0039
intro hi - 0040
have hc : i = l ∨ Lt(i,l) - 0041
specialize finite_lt_succ_eq_or_lt (l) - 0042
specialize finite_lt_succ_eq_or_lt (i) - 0043
apply finite_lt_succ_eq_or_lt - 0044
exact hi - 0045
cases hc - 0046
rewrite hc_left - 0047
rewrite hc_left - 0048
rewrite hc_left - 0049
rewrite hc_left - 0050
rewrite hc_left - 0051
rewrite hc_left - 0052
rewrite hc_left - 0053
rewrite hc_left - 0054
rewrite hc_left - 0055
rewrite hc_left - 0056
rewrite hc_left - 0057
rewrite hc_left - 0058
exists x2 - 0059
split - 0060
exact hext_witness_witness_left - 0061
exact hv_witness - 0062
have hold : ∃ v. BetaAt(x,x1,i,v) ∧ DivisorPrimeToggle(n,p,i,v) - 0063
specialize hprev_witness_witness (i) - 0064
apply hprev_witness_witness - 0065
exact hc_right - 0066
cases hold - 0067
cases hold_witness - 0068
exists x5 - 0069
split - 0070
specialize hext_witness_witness_right (i) - 0071
specialize hext_witness_witness_right (x5) - 0072
apply hext_witness_witness_right - 0073
exact hc_right - 0074
exact hold_witness_left - 0075
exact hold_witness_right