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. ∀ P. ∀ Q. ∀ r. ∀ s. ¬n = 0 → DirichletPrefix(F,G,n,n,P) → DirichletPrefix(G,F,n,n,Q) → DivisorComplementPrefix(n,r,s,S n) → ArithReindex(P,Q,r,s,S n)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 71 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–17
03Establish hdbL18–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
04Establish hcompL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor complement prefix lookup.
- L23
have hcomp : DivisorComplement(n,d,q)Definitions: DivisorComplement(n,d,q)Original native command in the exact edition - L24
specialize divisor_complement_prefix_lookup (n) - L25
specialize divisor_complement_prefix_lookup (r) - L26
specialize divisor_complement_prefix_lookup (s) - L27
specialize divisor_complement_prefix_lookup (S n) - L28
specialize divisor_complement_prefix_lookup (d) - L29
specialize divisor_complement_prefix_lookup (q) - L30
apply divisor_complement_prefix_lookup - L31
exact hc - L32
exact hd
05Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hmap
06Establish hqbL34–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor complement bounded.
- L34
- L35
specialize divisor_complement_bounded (n) - L36
specialize divisor_complement_bounded (d) - L37
specialize divisor_complement_bounded (q) - L38
apply divisor_complement_bounded - L39
exact hn - L40
exact hdb - L41
exact hcomp - L42
specialize dirichlet_convolution_prefix_value_from_entry (G) - L43
specialize dirichlet_convolution_prefix_value_from_entry (F)
07Use earlier factsL44–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
specialize dirichlet_convolution_prefix_value_from_entry (n) - L45
specialize dirichlet_convolution_prefix_value_from_entry (n) - L46
specialize dirichlet_convolution_prefix_value_from_entry (Q) - L47
specialize dirichlet_convolution_prefix_value_from_entry (d) - L48
specialize dirichlet_convolution_prefix_value_from_entry (z) - L49
apply dirichlet_convolution_prefix_value_from_entry - L50
exact hQ - L51
exact hdb - L52
specialize dirichlet_convolution_entry_complement (F) - L53
specialize dirichlet_convolution_entry_complement (G)
08Use earlier factsL54–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
specialize dirichlet_convolution_entry_complement (n) - L55
specialize dirichlet_convolution_entry_complement (d) - L56
specialize dirichlet_convolution_entry_complement (q) - L57
specialize dirichlet_convolution_entry_complement (z) - L58
apply dirichlet_convolution_entry_complement - L59
exact hn - L60
exact hcomp - L61
specialize dirichlet_convolution_prefix_lookup (F) - L62
specialize dirichlet_convolution_prefix_lookup (G) - L63
specialize dirichlet_convolution_prefix_lookup (n)
09Use earlier factsL64–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 71 lines
- 0001
intro F - 0002
intro G - 0003
intro n - 0004
intro P - 0005
intro Q - 0006
intro r - 0007
intro s - 0008
intro hn - 0009
intro hP - 0010
intro hQ - 0011
intro hc - 0012
intro d - 0013
intro q - 0014
intro z - 0015
intro hd - 0016
intro hmap - 0017
intro hz - 0018
have hdb : Le(d,n) - 0019
specialize le_of_succ_le_succ (d) - 0020
specialize le_of_succ_le_succ (n) - 0021
apply le_of_succ_le_succ - 0022
exact hd - 0023
have hcomp : DivisorComplement(n,d,q) - 0024
specialize divisor_complement_prefix_lookup (n) - 0025
specialize divisor_complement_prefix_lookup (r) - 0026
specialize divisor_complement_prefix_lookup (s) - 0027
specialize divisor_complement_prefix_lookup (S n) - 0028
specialize divisor_complement_prefix_lookup (d) - 0029
specialize divisor_complement_prefix_lookup (q) - 0030
apply divisor_complement_prefix_lookup - 0031
exact hc - 0032
exact hd - 0033
exact hmap - 0034
have hqb : Le(q,n) - 0035
specialize divisor_complement_bounded (n) - 0036
specialize divisor_complement_bounded (d) - 0037
specialize divisor_complement_bounded (q) - 0038
apply divisor_complement_bounded - 0039
exact hn - 0040
exact hdb - 0041
exact hcomp - 0042
specialize dirichlet_convolution_prefix_value_from_entry (G) - 0043
specialize dirichlet_convolution_prefix_value_from_entry (F) - 0044
specialize dirichlet_convolution_prefix_value_from_entry (n) - 0045
specialize dirichlet_convolution_prefix_value_from_entry (n) - 0046
specialize dirichlet_convolution_prefix_value_from_entry (Q) - 0047
specialize dirichlet_convolution_prefix_value_from_entry (d) - 0048
specialize dirichlet_convolution_prefix_value_from_entry (z) - 0049
apply dirichlet_convolution_prefix_value_from_entry - 0050
exact hQ - 0051
exact hdb - 0052
specialize dirichlet_convolution_entry_complement (F) - 0053
specialize dirichlet_convolution_entry_complement (G) - 0054
specialize dirichlet_convolution_entry_complement (n) - 0055
specialize dirichlet_convolution_entry_complement (d) - 0056
specialize dirichlet_convolution_entry_complement (q) - 0057
specialize dirichlet_convolution_entry_complement (z) - 0058
apply dirichlet_convolution_entry_complement - 0059
exact hn - 0060
exact hcomp - 0061
specialize dirichlet_convolution_prefix_lookup (F) - 0062
specialize dirichlet_convolution_prefix_lookup (G) - 0063
specialize dirichlet_convolution_prefix_lookup (n) - 0064
specialize dirichlet_convolution_prefix_lookup (n) - 0065
specialize dirichlet_convolution_prefix_lookup (P) - 0066
specialize dirichlet_convolution_prefix_lookup (q) - 0067
specialize dirichlet_convolution_prefix_lookup (z) - 0068
apply dirichlet_convolution_prefix_lookup - 0069
exact hP - 0070
exact hqb - 0071
exact hz