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. ArithTable(0,F) → ArithTable(0,G) → ∃ x. DirichletPrefix(F,G,n,l,x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 50 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–4
02Induction on lL5–7
03Establish hzeroL8–10
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed table singleton.
- L8
have hzero : ∃ M. ArithTable(0,M) ∧ ArithAt(M,0,0)Definitions: ArithTable(0,M)ArithAt(M,0,0)Original native command in the exact edition - L9
specialize arithmetic_signed_table_singleton (0) - L10
apply arithmetic_signed_table_singleton
04Separate the logical casesL11–12
05Construct an explicit witnessL13–13
Supply the displayed value, then prove that it has the required property.
- L13
exists x
06Use earlier factsL14–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L14
specialize dirichlet_convolution_prefix_zero_constructor (F) - L15
specialize dirichlet_convolution_prefix_zero_constructor (G) - L16
specialize dirichlet_convolution_prefix_zero_constructor (n) - L17
specialize dirichlet_convolution_prefix_zero_constructor (x) - L18
apply dirichlet_convolution_prefix_zero_constructor - L19
exact hzero_witness_left - L20
exact hzero_witness_right
07Fix variables and assumptionsL21–22
08Establish hprevL23–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L23
have hprev : ∃ M. DirichletPrefix(F,G,n,l,M)Definitions: DirichletPrefix(F,G,n,l,M)Original native command in the exact edition - L24
apply IH - L25
exact hF - L26
exact hG
09Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hprev
10Establish hzL28–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet convolution entry exists.
- L28
have hz : ∃ z. DirichletEntry(F,G,n,S l,z)Definitions: DirichletEntry(F,G,n,S l,z)Original native command in the exact edition - L29
specialize dirichlet_convolution_entry_exists (F) - L30
specialize dirichlet_convolution_entry_exists (G) - L31
specialize dirichlet_convolution_entry_exists (n) - L32
specialize dirichlet_convolution_entry_exists (S l) - L33
apply dirichlet_convolution_entry_exists - L34
exact hF - L35
exact hG
11Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
cases hz
12Establish hnextL37–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet convolution prefix append.
- L37
have hnext : ∃ H. DirichletPrefix(F,G,n,S l,H) ∧ ArithTableEqual(x,H,S l)Definitions: DirichletPrefix(F,G,n,S l,H)ArithTableEqual(x,H,S l)Original native command in the exact edition - L38
specialize dirichlet_convolution_prefix_append (F) - L39
specialize dirichlet_convolution_prefix_append (G) - L40
specialize dirichlet_convolution_prefix_append (n) - L41
specialize dirichlet_convolution_prefix_append (l) - L42
specialize dirichlet_convolution_prefix_append (x) - L43
specialize dirichlet_convolution_prefix_append (x1) - L44
apply dirichlet_convolution_prefix_append - L45
exact hprev_witness - L46
exact hz_witness
13Separate the logical casesL47–48
14Construct an explicit witnessL49–49
Supply the displayed value, then prove that it has the required property.
- L49
exists x2
15Use earlier factsL50–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
exact hnext_witness_left
Original defined command ledger · 50 lines
- 0001
intro F - 0002
intro G - 0003
intro n - 0004
intro l - 0005
induction l - 0006
intro hF - 0007
intro hG - 0008
have hzero : ∃ M. ArithTable(0,M) ∧ ArithAt(M,0,0) - 0009
specialize arithmetic_signed_table_singleton (0) - 0010
apply arithmetic_signed_table_singleton - 0011
cases hzero - 0012
cases hzero_witness - 0013
exists x - 0014
specialize dirichlet_convolution_prefix_zero_constructor (F) - 0015
specialize dirichlet_convolution_prefix_zero_constructor (G) - 0016
specialize dirichlet_convolution_prefix_zero_constructor (n) - 0017
specialize dirichlet_convolution_prefix_zero_constructor (x) - 0018
apply dirichlet_convolution_prefix_zero_constructor - 0019
exact hzero_witness_left - 0020
exact hzero_witness_right - 0021
intro hF - 0022
intro hG - 0023
have hprev : ∃ M. DirichletPrefix(F,G,n,l,M) - 0024
apply IH - 0025
exact hF - 0026
exact hG - 0027
cases hprev - 0028
have hz : ∃ z. DirichletEntry(F,G,n,S l,z) - 0029
specialize dirichlet_convolution_entry_exists (F) - 0030
specialize dirichlet_convolution_entry_exists (G) - 0031
specialize dirichlet_convolution_entry_exists (n) - 0032
specialize dirichlet_convolution_entry_exists (S l) - 0033
apply dirichlet_convolution_entry_exists - 0034
exact hF - 0035
exact hG - 0036
cases hz - 0037
have hnext : ∃ H. DirichletPrefix(F,G,n,S l,H) ∧ ArithTableEqual(x,H,S l) - 0038
specialize dirichlet_convolution_prefix_append (F) - 0039
specialize dirichlet_convolution_prefix_append (G) - 0040
specialize dirichlet_convolution_prefix_append (n) - 0041
specialize dirichlet_convolution_prefix_append (l) - 0042
specialize dirichlet_convolution_prefix_append (x) - 0043
specialize dirichlet_convolution_prefix_append (x1) - 0044
apply dirichlet_convolution_prefix_append - 0045
exact hprev_witness - 0046
exact hz_witness - 0047
cases hnext - 0048
cases hnext_witness - 0049
exists x2 - 0050
exact hnext_witness_left