Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Each retained summand has a witnessed n=d*q and actual signed multiplication. Zero and nondivisors contribute zero. Input and output values at zero are unrestricted; uniqueness is for positive represented values. The separate inverse family proves the unit-at-one criterion. Full G009 multiplicative-function closure is now admitted in the separate Alpha-v32 multiplicative-convolution family.
Exact theorem in conservative defined notation
∀ F. ∀ G. ∀ n. ∀ l. ∀ M. ∀ d. ∀ q. ∀ a. ∀ b. ∀ z. DirichletPrefix(F,G,n,l,M) → Le(d,l) → ¬d = 0 → n = d · q → ArithAt(F,d,a) → ArithAt(G,q,b) → SignedMul(a,b,z) → ArithAt(M,d,z)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 56 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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–17
03Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases hm
04Establish huL19–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table lookup.
- L19
have hu : ∃ u. ArithAt(M,d,u)Definitions: ArithAt(M,d,u)Original native command in the exact edition - L20
specialize divisor_signed_table_lookup (l) - L21
specialize divisor_signed_table_lookup (M) - L22
specialize divisor_signed_table_lookup (d) - L23
apply divisor_signed_table_lookup - L24
exact hm_left - L25
exact hbound
05Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hu
06Establish heqL27–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet convolution entry functional.
- L27
have heq : x=z - L28
specialize dirichlet_convolution_entry_functional (F) - L29
specialize dirichlet_convolution_entry_functional (G) - L30
specialize dirichlet_convolution_entry_functional (n) - L31
specialize dirichlet_convolution_entry_functional (d) - L32
specialize dirichlet_convolution_entry_functional (x) - L33
specialize dirichlet_convolution_entry_functional (z) - L34
apply dirichlet_convolution_entry_functional - L35
specialize hm_right (d) - L36
specialize hm_right (x)
07Use earlier factsL37–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
apply hm_right - L38
exact hbound - L39
exact hu_witness - L40
specialize dirichlet_convolution_entry_from_quotient (F) - L41
specialize dirichlet_convolution_entry_from_quotient (G) - L42
specialize dirichlet_convolution_entry_from_quotient (n) - L43
specialize dirichlet_convolution_entry_from_quotient (d) - L44
specialize dirichlet_convolution_entry_from_quotient (q) - L45
specialize dirichlet_convolution_entry_from_quotient (a) - L46
specialize dirichlet_convolution_entry_from_quotient (b)
08Use earlier factsL47–53
09Calculate and transport equalitiesL54–55
10Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact hu_witness
Original defined command ledger · 56 lines
- 0001
intro F - 0002
intro G - 0003
intro n - 0004
intro l - 0005
intro M - 0006
intro d - 0007
intro q - 0008
intro a - 0009
intro b - 0010
intro z - 0011
intro hm - 0012
intro hbound - 0013
intro hd - 0014
intro hq - 0015
intro ha - 0016
intro hb - 0017
intro hz - 0018
cases hm - 0019
have hu : ∃ u. ArithAt(M,d,u) - 0020
specialize divisor_signed_table_lookup (l) - 0021
specialize divisor_signed_table_lookup (M) - 0022
specialize divisor_signed_table_lookup (d) - 0023
apply divisor_signed_table_lookup - 0024
exact hm_left - 0025
exact hbound - 0026
cases hu - 0027
have heq : x=z - 0028
specialize dirichlet_convolution_entry_functional (F) - 0029
specialize dirichlet_convolution_entry_functional (G) - 0030
specialize dirichlet_convolution_entry_functional (n) - 0031
specialize dirichlet_convolution_entry_functional (d) - 0032
specialize dirichlet_convolution_entry_functional (x) - 0033
specialize dirichlet_convolution_entry_functional (z) - 0034
apply dirichlet_convolution_entry_functional - 0035
specialize hm_right (d) - 0036
specialize hm_right (x) - 0037
apply hm_right - 0038
exact hbound - 0039
exact hu_witness - 0040
specialize dirichlet_convolution_entry_from_quotient (F) - 0041
specialize dirichlet_convolution_entry_from_quotient (G) - 0042
specialize dirichlet_convolution_entry_from_quotient (n) - 0043
specialize dirichlet_convolution_entry_from_quotient (d) - 0044
specialize dirichlet_convolution_entry_from_quotient (q) - 0045
specialize dirichlet_convolution_entry_from_quotient (a) - 0046
specialize dirichlet_convolution_entry_from_quotient (b) - 0047
specialize dirichlet_convolution_entry_from_quotient (z) - 0048
apply dirichlet_convolution_entry_from_quotient - 0049
exact hd - 0050
exact hq - 0051
exact ha - 0052
exact hb - 0053
exact hz - 0054
rewrite heq at hu_witness - 0055
rewrite heq at hu_witness - 0056
exact hu_witness