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. ∀ d. ArithTable(0,F) → ArithTable(0,G) → ∃ x. DirichletEntry(F,G,n,d,x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 72 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–6
02Establish hcL7–10
03Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
cases hc
04Construct an explicit witnessL12–12
Supply the displayed value, then prove that it has the required property.
- L12
exists 0
05Calculate and transport equalitiesL13–20
06Use earlier factsL21–24
07Establish hdivL25–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply multiple decidable nonzero.
08Separate the logical casesL30–31
09Establish haL32–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
- L32
have ha : ∃ a. ArithAt(F,d,a)Definitions: ArithAt(F,d,a)Original native command in the exact edition - L33
specialize signed_table_lookup_any (0) - L34
specialize signed_table_lookup_any (F) - L35
specialize signed_table_lookup_any (d) - L36
apply signed_table_lookup_any - L37
exact hF
10Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases ha
11Establish hbL39–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
- L39
have hb : ∃ b. ArithAt(G,x,b)Definitions: ArithAt(G,x,b)Original native command in the exact edition - L40
specialize signed_table_lookup_any (0) - L41
specialize signed_table_lookup_any (G) - L42
specialize signed_table_lookup_any (x) - L43
apply signed_table_lookup_any - L44
exact hG
12Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
cases hb
13Establish hzL46–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed mul total.
- L46
have hz : ∃ z. SignedMul(x1,x2,z)Definitions: SignedMul(x1,x2,z)Original native command in the exact edition - L47
specialize signed_mul_total (x1) - L48
specialize signed_mul_total (x2) - L49
apply signed_mul_total
14Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
cases hz
15Construct an explicit witnessL51–51
Supply the displayed value, then prove that it has the required property.
- L51
exists x3
16Use earlier factsL52–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
specialize dirichlet_convolution_entry_from_quotient (F) - L53
specialize dirichlet_convolution_entry_from_quotient (G) - L54
specialize dirichlet_convolution_entry_from_quotient (n) - L55
specialize dirichlet_convolution_entry_from_quotient (d) - L56
specialize dirichlet_convolution_entry_from_quotient (x) - L57
specialize dirichlet_convolution_entry_from_quotient (x1) - L58
specialize dirichlet_convolution_entry_from_quotient (x2) - L59
specialize dirichlet_convolution_entry_from_quotient (x3) - L60
apply dirichlet_convolution_entry_from_quotient - L61
exact hc_right
17Use earlier factsL62–65
18Construct an explicit witnessL66–66
Supply the displayed value, then prove that it has the required property.
- L66
exists 0
19Use earlier factsL67–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L67
specialize dirichlet_convolution_entry_from_nondivisor (F) - L68
specialize dirichlet_convolution_entry_from_nondivisor (G) - L69
specialize dirichlet_convolution_entry_from_nondivisor (n) - L70
specialize dirichlet_convolution_entry_from_nondivisor (d) - L71
apply dirichlet_convolution_entry_from_nondivisor - L72
exact hdiv_right
Original defined command ledger · 72 lines
- 0001
intro F - 0002
intro G - 0003
intro n - 0004
intro d - 0005
intro hF - 0006
intro hG - 0007
have hc : d=0 \/ ~(d=0) - 0008
specialize eq_decidable (d) - 0009
specialize eq_decidable (0) - 0010
apply eq_decidable - 0011
cases hc - 0012
exists 0 - 0013
rewrite hc_left - 0014
rewrite hc_left - 0015
rewrite hc_left - 0016
rewrite hc_left - 0017
rewrite hc_left - 0018
rewrite hc_left - 0019
rewrite hc_left - 0020
rewrite hc_left - 0021
specialize dirichlet_convolution_entry_zero (F) - 0022
specialize dirichlet_convolution_entry_zero (G) - 0023
specialize dirichlet_convolution_entry_zero (n) - 0024
apply dirichlet_convolution_entry_zero - 0025
have hdiv : Dvd(d,n) ∨ ¬Dvd(d,n) - 0026
specialize multiple_decidable_nonzero (d) - 0027
specialize multiple_decidable_nonzero (n) - 0028
apply multiple_decidable_nonzero - 0029
exact hc_right - 0030
cases hdiv - 0031
cases hdiv_left - 0032
have ha : ∃ a. ArithAt(F,d,a) - 0033
specialize signed_table_lookup_any (0) - 0034
specialize signed_table_lookup_any (F) - 0035
specialize signed_table_lookup_any (d) - 0036
apply signed_table_lookup_any - 0037
exact hF - 0038
cases ha - 0039
have hb : ∃ b. ArithAt(G,x,b) - 0040
specialize signed_table_lookup_any (0) - 0041
specialize signed_table_lookup_any (G) - 0042
specialize signed_table_lookup_any (x) - 0043
apply signed_table_lookup_any - 0044
exact hG - 0045
cases hb - 0046
have hz : ∃ z. SignedMul(x1,x2,z) - 0047
specialize signed_mul_total (x1) - 0048
specialize signed_mul_total (x2) - 0049
apply signed_mul_total - 0050
cases hz - 0051
exists x3 - 0052
specialize dirichlet_convolution_entry_from_quotient (F) - 0053
specialize dirichlet_convolution_entry_from_quotient (G) - 0054
specialize dirichlet_convolution_entry_from_quotient (n) - 0055
specialize dirichlet_convolution_entry_from_quotient (d) - 0056
specialize dirichlet_convolution_entry_from_quotient (x) - 0057
specialize dirichlet_convolution_entry_from_quotient (x1) - 0058
specialize dirichlet_convolution_entry_from_quotient (x2) - 0059
specialize dirichlet_convolution_entry_from_quotient (x3) - 0060
apply dirichlet_convolution_entry_from_quotient - 0061
exact hc_right - 0062
exact hdiv_left_witness - 0063
exact ha_witness - 0064
exact hb_witness - 0065
exact hz_witness - 0066
exists 0 - 0067
specialize dirichlet_convolution_entry_from_nondivisor (F) - 0068
specialize dirichlet_convolution_entry_from_nondivisor (G) - 0069
specialize dirichlet_convolution_entry_from_nondivisor (n) - 0070
specialize dirichlet_convolution_entry_from_nondivisor (d) - 0071
apply dirichlet_convolution_entry_from_nondivisor - 0072
exact hdiv_right