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. ∀ M. ∀ n. ∀ K. ∀ p. ∀ d. ∀ e. ∀ a. ∀ b. MobiusTable(N,M) → ¬n = 0 → Le(n,N) → Prime(p) → Dvd(p,n) → DivisorMask(M,n,n,K) → Le(d,n) → DivisorPrimeToggle(n,p,d,e) → ArithAt(K,d,a) → ArithAt(K,e,b) → SignedNegate(a,b)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 124 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 (5)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–19
03Establish heL20–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor prime toggle bounded.
04Use earlier factsL30–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
exact ht
05Separate the logical casesL31–33
06Use earlier factsL34–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
specialize mobius_prime_factor_toggle_negates (p) - L35
specialize mobius_prime_factor_toggle_negates (d) - L36
specialize mobius_prime_factor_toggle_negates (e) - L37
specialize mobius_prime_factor_toggle_negates (a) - L38
specialize mobius_prime_factor_toggle_negates (b) - L39
apply mobius_prime_factor_toggle_negates - L40
exact hp - L41
exact ht_left_right_right - L42
specialize mobius_divisor_mask_actual_value (N) - L43
specialize mobius_divisor_mask_actual_value (M)
07Use earlier factsL44–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
specialize mobius_divisor_mask_actual_value (n) - L45
specialize mobius_divisor_mask_actual_value (K) - L46
specialize mobius_divisor_mask_actual_value (d) - L47
specialize mobius_divisor_mask_actual_value (a) - L48
apply mobius_divisor_mask_actual_value - L49
exact hmu - L50
exact hnN - L51
exact hm - L52
exact ht_left_left - L53
exact ht_left_right_left
08Use earlier factsL54–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
exact hd - L55
exact ha - L56
specialize mobius_divisor_mask_actual_value (N) - L57
specialize mobius_divisor_mask_actual_value (M) - L58
specialize mobius_divisor_mask_actual_value (n) - L59
specialize mobius_divisor_mask_actual_value (K) - L60
specialize mobius_divisor_mask_actual_value (e) - L61
specialize mobius_divisor_mask_actual_value (b) - L62
apply mobius_divisor_mask_actual_value - L63
exact hmu
09Use earlier factsL64–65
10Fix variables and assumptionsL66–66
Work with arbitrary variables or the premises of the current implication.
- L66
intro hezero
11Use earlier factsL67–70
12Fix variables and assumptionsL71–71
Work with arbitrary variables or the premises of the current implication.
- L71
intro hpzero
13Use earlier factsL72–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
specialize prime_nonzero (p) - L73
apply prime_nonzero - L74
exact hp - L75
exact hpzero - L76
exact ht_left_left - L77
exact ht_left_right_right - L78
exact hezero - L79
specialize prime_factor_toggle_preserves_divisor (p) - L80
specialize prime_factor_toggle_preserves_divisor (n) - L81
specialize prime_factor_toggle_preserves_divisor (d)
14Use earlier factsL82–89
15Separate the logical casesL90–91
16Establish hzeroaL92–101
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor mask entry omitted value.
- L92
have hzeroa : a=0 - L93
specialize divisor_mask_entry_omitted_value (M) - L94
specialize divisor_mask_entry_omitted_value (n) - L95
specialize divisor_mask_entry_omitted_value (d) - L96
specialize divisor_mask_entry_omitted_value (a) - L97
apply divisor_mask_entry_omitted_value - L98
exact ht_right_left - L99
specialize hm_right (d) - L100
specialize hm_right (a) - L101
apply hm_right
17Use earlier factsL102–103
18Establish hzerobL104–113
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor mask entry omitted value.
- L104
have hzerob : b=0 - L105
specialize divisor_mask_entry_omitted_value (M) - L106
specialize divisor_mask_entry_omitted_value (n) - L107
specialize divisor_mask_entry_omitted_value (d) - L108
specialize divisor_mask_entry_omitted_value (b) - L109
apply divisor_mask_entry_omitted_value - L110
exact ht_right_left - L111
specialize hm_right (d) - L112
specialize hm_right (b) - L113
apply hm_right
19Use earlier factsL114–114
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L114
exact hd
20Calculate and transport equalitiesL115–118
21Use earlier factsL119–119
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L119
exact hb
22Calculate and transport equalitiesL120–123
23Use earlier factsL124–124
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L124
apply signed_negate_zero
Original defined command ledger · 124 lines
- 0001
intro N - 0002
intro M - 0003
intro n - 0004
intro K - 0005
intro p - 0006
intro d - 0007
intro e - 0008
intro a - 0009
intro b - 0010
intro hmu - 0011
intro hn - 0012
intro hnN - 0013
intro hp - 0014
intro hpn - 0015
intro hm - 0016
intro hd - 0017
intro ht - 0018
intro ha - 0019
intro hb - 0020
have he : Le(e,n) - 0021
specialize divisor_prime_toggle_bounded (n) - 0022
specialize divisor_prime_toggle_bounded (p) - 0023
specialize divisor_prime_toggle_bounded (d) - 0024
specialize divisor_prime_toggle_bounded (e) - 0025
apply divisor_prime_toggle_bounded - 0026
exact hn - 0027
exact hp - 0028
exact hpn - 0029
exact hd - 0030
exact ht - 0031
cases ht - 0032
cases ht_left - 0033
cases ht_left_right - 0034
specialize mobius_prime_factor_toggle_negates (p) - 0035
specialize mobius_prime_factor_toggle_negates (d) - 0036
specialize mobius_prime_factor_toggle_negates (e) - 0037
specialize mobius_prime_factor_toggle_negates (a) - 0038
specialize mobius_prime_factor_toggle_negates (b) - 0039
apply mobius_prime_factor_toggle_negates - 0040
exact hp - 0041
exact ht_left_right_right - 0042
specialize mobius_divisor_mask_actual_value (N) - 0043
specialize mobius_divisor_mask_actual_value (M) - 0044
specialize mobius_divisor_mask_actual_value (n) - 0045
specialize mobius_divisor_mask_actual_value (K) - 0046
specialize mobius_divisor_mask_actual_value (d) - 0047
specialize mobius_divisor_mask_actual_value (a) - 0048
apply mobius_divisor_mask_actual_value - 0049
exact hmu - 0050
exact hnN - 0051
exact hm - 0052
exact ht_left_left - 0053
exact ht_left_right_left - 0054
exact hd - 0055
exact ha - 0056
specialize mobius_divisor_mask_actual_value (N) - 0057
specialize mobius_divisor_mask_actual_value (M) - 0058
specialize mobius_divisor_mask_actual_value (n) - 0059
specialize mobius_divisor_mask_actual_value (K) - 0060
specialize mobius_divisor_mask_actual_value (e) - 0061
specialize mobius_divisor_mask_actual_value (b) - 0062
apply mobius_divisor_mask_actual_value - 0063
exact hmu - 0064
exact hnN - 0065
exact hm - 0066
intro hezero - 0067
specialize prime_factor_toggle_positive (p) - 0068
specialize prime_factor_toggle_positive (d) - 0069
specialize prime_factor_toggle_positive (e) - 0070
apply prime_factor_toggle_positive - 0071
intro hpzero - 0072
specialize prime_nonzero (p) - 0073
apply prime_nonzero - 0074
exact hp - 0075
exact hpzero - 0076
exact ht_left_left - 0077
exact ht_left_right_right - 0078
exact hezero - 0079
specialize prime_factor_toggle_preserves_divisor (p) - 0080
specialize prime_factor_toggle_preserves_divisor (n) - 0081
specialize prime_factor_toggle_preserves_divisor (d) - 0082
specialize prime_factor_toggle_preserves_divisor (e) - 0083
apply prime_factor_toggle_preserves_divisor - 0084
exact hp - 0085
exact hpn - 0086
exact ht_left_right_left - 0087
exact ht_left_right_right - 0088
exact he - 0089
exact hb - 0090
cases ht_right - 0091
cases hm - 0092
have hzeroa : a=0 - 0093
specialize divisor_mask_entry_omitted_value (M) - 0094
specialize divisor_mask_entry_omitted_value (n) - 0095
specialize divisor_mask_entry_omitted_value (d) - 0096
specialize divisor_mask_entry_omitted_value (a) - 0097
apply divisor_mask_entry_omitted_value - 0098
exact ht_right_left - 0099
specialize hm_right (d) - 0100
specialize hm_right (a) - 0101
apply hm_right - 0102
exact hd - 0103
exact ha - 0104
have hzerob : b=0 - 0105
specialize divisor_mask_entry_omitted_value (M) - 0106
specialize divisor_mask_entry_omitted_value (n) - 0107
specialize divisor_mask_entry_omitted_value (d) - 0108
specialize divisor_mask_entry_omitted_value (b) - 0109
apply divisor_mask_entry_omitted_value - 0110
exact ht_right_left - 0111
specialize hm_right (d) - 0112
specialize hm_right (b) - 0113
apply hm_right - 0114
exact hd - 0115
rewrite ht_right_right at hb - 0116
rewrite ht_right_right at hb - 0117
rewrite ht_right_right at hb - 0118
rewrite ht_right_right at hb - 0119
exact hb - 0120
rewrite hzeroa - 0121
rewrite hzeroa - 0122
rewrite hzerob - 0123
rewrite hzerob - 0124
apply signed_negate_zero