Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
A genuine divisor mask has S n entries, indexed zero through n, and forces its zeroth entry to zero regardless of F(0). Möbius values remain positive-domain only. This family constructs divisor sums and Möbius tables; cancellation and the full G007 endpoint are separately proved later in the same release.
Exact theorem in conservative defined notation
∀ N. ∀ F. ∀ a. ArithTable(N,F) → Lt(0,N) → ArithAt(F,1,a) → DivisorSum(F,1,a)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 84 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 (4)
01Fix variables and assumptionsL1–6
02Establish hmL7–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor mask prefix exists.
- L7
have hm : ∃ M. DivisorMask(F,1,1,M)Definitions: DivisorMask(F,1,1,M)Original native command in the exact edition - L8
specialize divisor_mask_prefix_exists (N) - L9
specialize divisor_mask_prefix_exists (F) - L10
specialize divisor_mask_prefix_exists (1) - L11
specialize divisor_mask_prefix_exists (1) - L12
apply divisor_mask_prefix_exists - L13
exact ht - L14
exact hbound
03Separate the logical casesL15–16
04Establish hzeroL17–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed sum exists.
- L17
have hzero : ∃ z. SignedPrefixSum(x,0,z)Definitions: SignedPrefixSum(x,0,z)Original native command in the exact edition - L18
specialize arithmetic_signed_sum_exists (1) - L19
specialize arithmetic_signed_sum_exists (x) - L20
specialize arithmetic_signed_sum_exists (0) - L21
apply arithmetic_signed_sum_exists - L22
exact hm_witness_left
05Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hzero
06Establish heqL24–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum empty value.
07Establish hfirstL31–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum successor intro.
- L31
have hfirst : SignedPrefixSum(x,1,0)Definitions: SignedPrefixSum(x,1,0)Original native command in the exact edition - L32
specialize divisor_signed_sum_successor_intro (x) - L33
specialize divisor_signed_sum_successor_intro (0) - L34
specialize divisor_signed_sum_successor_intro (0) - L35
specialize divisor_signed_sum_successor_intro (0) - L36
specialize divisor_signed_sum_successor_intro (0) - L37
apply divisor_signed_sum_successor_intro - L38
exact hzero_witness - L39
specialize divisor_mask_omitted_entry (F) - L40
specialize divisor_mask_omitted_entry (1)
08Use earlier factsL41–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
09Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
left
10Calculate and transport equalitiesL49–49
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L49
refl
11Use earlier factsL50–51
12Separate the logical casesL52–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L52
split
13Fix variables and assumptionsL53–53
Work with arbitrary variables or the premises of the current implication.
- L53
intro hnzero
14Use earlier factsL54–55
15Construct an explicit witnessL56–56
Supply the displayed value, then prove that it has the required property.
- L56
exists x
16Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
split
17Use earlier factsL58–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L58
exact hm_witness - L59
specialize divisor_signed_sum_successor_intro (x) - L60
specialize divisor_signed_sum_successor_intro (1) - L61
specialize divisor_signed_sum_successor_intro (0) - L62
specialize divisor_signed_sum_successor_intro (a) - L63
specialize divisor_signed_sum_successor_intro (a) - L64
apply divisor_signed_sum_successor_intro - L65
exact hfirst - L66
specialize divisor_mask_positive_quotient_entry (F) - L67
specialize divisor_mask_positive_quotient_entry (1)
18Use earlier factsL68–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
specialize divisor_mask_positive_quotient_entry (1) - L69
specialize divisor_mask_positive_quotient_entry (x) - L70
specialize divisor_mask_positive_quotient_entry (1) - L71
specialize divisor_mask_positive_quotient_entry (1) - L72
specialize divisor_mask_positive_quotient_entry (a) - L73
apply divisor_mask_positive_quotient_entry - L74
exact hm_witness
19Construct an explicit witnessL75–75
Supply the displayed value, then prove that it has the required property.
- L75
exists 0
20Use earlier factsL76–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
apply zero_add
21Fix variables and assumptionsL77–77
Work with arbitrary variables or the premises of the current implication.
- L77
intro hd0
22Use earlier factsL78–79
23Calculate and transport equalitiesL80–80
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L80
symm
Original defined command ledger · 84 lines
- 0001
intro N - 0002
intro F - 0003
intro a - 0004
intro ht - 0005
intro hbound - 0006
intro ha - 0007
have hm : ∃ M. DivisorMask(F,1,1,M) - 0008
specialize divisor_mask_prefix_exists (N) - 0009
specialize divisor_mask_prefix_exists (F) - 0010
specialize divisor_mask_prefix_exists (1) - 0011
specialize divisor_mask_prefix_exists (1) - 0012
apply divisor_mask_prefix_exists - 0013
exact ht - 0014
exact hbound - 0015
cases hm - 0016
cases hm_witness - 0017
have hzero : ∃ z. SignedPrefixSum(x,0,z) - 0018
specialize arithmetic_signed_sum_exists (1) - 0019
specialize arithmetic_signed_sum_exists (x) - 0020
specialize arithmetic_signed_sum_exists (0) - 0021
apply arithmetic_signed_sum_exists - 0022
exact hm_witness_left - 0023
cases hzero - 0024
have heq : x1=0 - 0025
specialize divisor_signed_sum_empty_value (x) - 0026
specialize divisor_signed_sum_empty_value (x1) - 0027
apply divisor_signed_sum_empty_value - 0028
exact hzero_witness - 0029
rewrite heq at hzero_witness - 0030
rewrite heq at hzero_witness - 0031
have hfirst : SignedPrefixSum(x,1,0) - 0032
specialize divisor_signed_sum_successor_intro (x) - 0033
specialize divisor_signed_sum_successor_intro (0) - 0034
specialize divisor_signed_sum_successor_intro (0) - 0035
specialize divisor_signed_sum_successor_intro (0) - 0036
specialize divisor_signed_sum_successor_intro (0) - 0037
apply divisor_signed_sum_successor_intro - 0038
exact hzero_witness - 0039
specialize divisor_mask_omitted_entry (F) - 0040
specialize divisor_mask_omitted_entry (1) - 0041
specialize divisor_mask_omitted_entry (1) - 0042
specialize divisor_mask_omitted_entry (x) - 0043
specialize divisor_mask_omitted_entry (0) - 0044
apply divisor_mask_omitted_entry - 0045
exact hm_witness - 0046
specialize zero_le (1) - 0047
apply zero_le - 0048
left - 0049
refl - 0050
specialize signed_add_zero_left (0) - 0051
apply signed_add_zero_left - 0052
split - 0053
intro hnzero - 0054
apply PA1 - 0055
exact hnzero - 0056
exists x - 0057
split - 0058
exact hm_witness - 0059
specialize divisor_signed_sum_successor_intro (x) - 0060
specialize divisor_signed_sum_successor_intro (1) - 0061
specialize divisor_signed_sum_successor_intro (0) - 0062
specialize divisor_signed_sum_successor_intro (a) - 0063
specialize divisor_signed_sum_successor_intro (a) - 0064
apply divisor_signed_sum_successor_intro - 0065
exact hfirst - 0066
specialize divisor_mask_positive_quotient_entry (F) - 0067
specialize divisor_mask_positive_quotient_entry (1) - 0068
specialize divisor_mask_positive_quotient_entry (1) - 0069
specialize divisor_mask_positive_quotient_entry (x) - 0070
specialize divisor_mask_positive_quotient_entry (1) - 0071
specialize divisor_mask_positive_quotient_entry (1) - 0072
specialize divisor_mask_positive_quotient_entry (a) - 0073
apply divisor_mask_positive_quotient_entry - 0074
exact hm_witness - 0075
exists 0 - 0076
apply zero_add - 0077
intro hd0 - 0078
apply PA1 - 0079
exact hd0 - 0080
symm - 0081
apply one_mul - 0082
exact ha - 0083
specialize signed_add_zero_left (a) - 0084
apply signed_add_zero_left