Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Every grid, slice, row sum and intermediate table is constructed. Retained cells have witnessed n=(a*e)*c and value F(a)*(H(e)*G(c)). The flat endpoint is unused. Table associativity includes N=0 and compares only positive values, not encodings. Full G009 remains broader.
Exact theorem in conservative defined notation
∀ F. ∀ G. ∀ H. ∀ n. ∀ a. ∀ e. ArithTable(0,F) → ArithTable(0,G) → ArithTable(0,H) → ∃ x. DirichletGridEntry(F,G,H,n,a,e,x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 117 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–9
02Establish haL10–13
03Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases ha
04Construct an explicit witnessL15–15
Supply the displayed value, then prove that it has the required property.
- L15
exists 0
05Use earlier factsL16–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
specialize dirichlet_grid_entry_omitted (F) - L17
specialize dirichlet_grid_entry_omitted (G) - L18
specialize dirichlet_grid_entry_omitted (H) - L19
specialize dirichlet_grid_entry_omitted (n) - L20
specialize dirichlet_grid_entry_omitted (a) - L21
specialize dirichlet_grid_entry_omitted (e) - L22
apply dirichlet_grid_entry_omitted
06Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
left
07Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact ha_left
08Establish heL25–28
09Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
cases he
10Construct an explicit witnessL30–30
Supply the displayed value, then prove that it has the required property.
- L30
exists 0
11Use earlier factsL31–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
specialize dirichlet_grid_entry_omitted (F) - L32
specialize dirichlet_grid_entry_omitted (G) - L33
specialize dirichlet_grid_entry_omitted (H) - L34
specialize dirichlet_grid_entry_omitted (n) - L35
specialize dirichlet_grid_entry_omitted (a) - L36
specialize dirichlet_grid_entry_omitted (e) - L37
apply dirichlet_grid_entry_omitted
12Separate the logical casesL38–39
13Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact he_left
14Establish hdL41–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply multiple decidable nonzero.
- L41
have hd : Dvd(a · e,n) ∨ ¬Dvd(a · e,n)Definitions: Dvd(a · e,n)Original native command in the exact edition - L42
specialize multiple_decidable_nonzero (a*e) - L43
specialize multiple_decidable_nonzero (n) - L44
apply multiple_decidable_nonzero - L45
intro hmulzero - L46
specialize mul_ne_zero (a) - L47
specialize mul_ne_zero (e) - L48
apply mul_ne_zero - L49
exact ha_right - L50
exact he_right
15Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
exact hmulzero
16Separate the logical casesL52–53
17Establish huL54–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
- L54
have hu : ∃ z. ArithAt(F,a,z)Definitions: ArithAt(F,a,z)Original native command in the exact edition - L55
specialize signed_table_lookup_any (0) - L56
specialize signed_table_lookup_any (F) - L57
specialize signed_table_lookup_any (a) - L58
apply signed_table_lookup_any - L59
exact hF
18Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hu
19Establish hvL61–66
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
- L61
have hv : ∃ z. ArithAt(H,e,z)Definitions: ArithAt(H,e,z)Original native command in the exact edition - L62
specialize signed_table_lookup_any (0) - L63
specialize signed_table_lookup_any (H) - L64
specialize signed_table_lookup_any (e) - L65
apply signed_table_lookup_any - L66
exact hH
20Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
cases hv
21Establish hwL68–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
- L68
have hw : ∃ z. ArithAt(G,x,z)Definitions: ArithAt(G,x,z)Original native command in the exact edition - L69
specialize signed_table_lookup_any (0) - L70
specialize signed_table_lookup_any (G) - L71
specialize signed_table_lookup_any (x) - L72
apply signed_table_lookup_any - L73
exact hG
22Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
cases hw
23Establish hiL75–78
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed mul total.
- L75
have hi : ∃ r. SignedMul(x2,x3,r)Definitions: SignedMul(x2,x3,r)Original native command in the exact edition - L76
specialize signed_mul_total (x2) - L77
specialize signed_mul_total (x3) - L78
apply signed_mul_total
24Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
cases hi
25Establish hoL80–83
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed mul total.
- L80
have ho : ∃ z. SignedMul(x1,x4,z)Definitions: SignedMul(x1,x4,z)Original native command in the exact edition - L81
specialize signed_mul_total (x1) - L82
specialize signed_mul_total (x4) - L83
apply signed_mul_total
26Separate the logical casesL84–84
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L84
cases ho
27Construct an explicit witnessL85–85
Supply the displayed value, then prove that it has the required property.
- L85
exists x5
28Use earlier factsL86–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
specialize dirichlet_grid_entry_from_factorization (F) - L87
specialize dirichlet_grid_entry_from_factorization (G) - L88
specialize dirichlet_grid_entry_from_factorization (H) - L89
specialize dirichlet_grid_entry_from_factorization (n) - L90
specialize dirichlet_grid_entry_from_factorization (a) - L91
specialize dirichlet_grid_entry_from_factorization (e) - L92
specialize dirichlet_grid_entry_from_factorization (x) - L93
specialize dirichlet_grid_entry_from_factorization (x1) - L94
specialize dirichlet_grid_entry_from_factorization (x2) - L95
specialize dirichlet_grid_entry_from_factorization (x3)
29Use earlier factsL96–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L96
specialize dirichlet_grid_entry_from_factorization (x4) - L97
specialize dirichlet_grid_entry_from_factorization (x5) - L98
apply dirichlet_grid_entry_from_factorization - L99
exact ha_right - L100
exact he_right - L101
exact hd_left_witness - L102
exact hu_witness - L103
exact hv_witness - L104
exact hw_witness - L105
exact hi_witness
30Use earlier factsL106–106
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L106
exact ho_witness
31Construct an explicit witnessL107–107
Supply the displayed value, then prove that it has the required property.
- L107
exists 0
32Use earlier factsL108–114
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L108
specialize dirichlet_grid_entry_omitted (F) - L109
specialize dirichlet_grid_entry_omitted (G) - L110
specialize dirichlet_grid_entry_omitted (H) - L111
specialize dirichlet_grid_entry_omitted (n) - L112
specialize dirichlet_grid_entry_omitted (a) - L113
specialize dirichlet_grid_entry_omitted (e) - L114
apply dirichlet_grid_entry_omitted
33Separate the logical casesL115–116
34Use earlier factsL117–117
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L117
exact hd_right
Original defined command ledger · 117 lines
- 0001
intro F - 0002
intro G - 0003
intro H - 0004
intro n - 0005
intro a - 0006
intro e - 0007
intro hF - 0008
intro hG - 0009
intro hH - 0010
have ha : a=0 \/ ~(a=0) - 0011
specialize eq_decidable (a) - 0012
specialize eq_decidable (0) - 0013
apply eq_decidable - 0014
cases ha - 0015
exists 0 - 0016
specialize dirichlet_grid_entry_omitted (F) - 0017
specialize dirichlet_grid_entry_omitted (G) - 0018
specialize dirichlet_grid_entry_omitted (H) - 0019
specialize dirichlet_grid_entry_omitted (n) - 0020
specialize dirichlet_grid_entry_omitted (a) - 0021
specialize dirichlet_grid_entry_omitted (e) - 0022
apply dirichlet_grid_entry_omitted - 0023
left - 0024
exact ha_left - 0025
have he : e=0 \/ ~(e=0) - 0026
specialize eq_decidable (e) - 0027
specialize eq_decidable (0) - 0028
apply eq_decidable - 0029
cases he - 0030
exists 0 - 0031
specialize dirichlet_grid_entry_omitted (F) - 0032
specialize dirichlet_grid_entry_omitted (G) - 0033
specialize dirichlet_grid_entry_omitted (H) - 0034
specialize dirichlet_grid_entry_omitted (n) - 0035
specialize dirichlet_grid_entry_omitted (a) - 0036
specialize dirichlet_grid_entry_omitted (e) - 0037
apply dirichlet_grid_entry_omitted - 0038
right - 0039
left - 0040
exact he_left - 0041
have hd : Dvd(a · e,n) ∨ ¬Dvd(a · e,n) - 0042
specialize multiple_decidable_nonzero (a*e) - 0043
specialize multiple_decidable_nonzero (n) - 0044
apply multiple_decidable_nonzero - 0045
intro hmulzero - 0046
specialize mul_ne_zero (a) - 0047
specialize mul_ne_zero (e) - 0048
apply mul_ne_zero - 0049
exact ha_right - 0050
exact he_right - 0051
exact hmulzero - 0052
cases hd - 0053
cases hd_left - 0054
have hu : ∃ z. ArithAt(F,a,z) - 0055
specialize signed_table_lookup_any (0) - 0056
specialize signed_table_lookup_any (F) - 0057
specialize signed_table_lookup_any (a) - 0058
apply signed_table_lookup_any - 0059
exact hF - 0060
cases hu - 0061
have hv : ∃ z. ArithAt(H,e,z) - 0062
specialize signed_table_lookup_any (0) - 0063
specialize signed_table_lookup_any (H) - 0064
specialize signed_table_lookup_any (e) - 0065
apply signed_table_lookup_any - 0066
exact hH - 0067
cases hv - 0068
have hw : ∃ z. ArithAt(G,x,z) - 0069
specialize signed_table_lookup_any (0) - 0070
specialize signed_table_lookup_any (G) - 0071
specialize signed_table_lookup_any (x) - 0072
apply signed_table_lookup_any - 0073
exact hG - 0074
cases hw - 0075
have hi : ∃ r. SignedMul(x2,x3,r) - 0076
specialize signed_mul_total (x2) - 0077
specialize signed_mul_total (x3) - 0078
apply signed_mul_total - 0079
cases hi - 0080
have ho : ∃ z. SignedMul(x1,x4,z) - 0081
specialize signed_mul_total (x1) - 0082
specialize signed_mul_total (x4) - 0083
apply signed_mul_total - 0084
cases ho - 0085
exists x5 - 0086
specialize dirichlet_grid_entry_from_factorization (F) - 0087
specialize dirichlet_grid_entry_from_factorization (G) - 0088
specialize dirichlet_grid_entry_from_factorization (H) - 0089
specialize dirichlet_grid_entry_from_factorization (n) - 0090
specialize dirichlet_grid_entry_from_factorization (a) - 0091
specialize dirichlet_grid_entry_from_factorization (e) - 0092
specialize dirichlet_grid_entry_from_factorization (x) - 0093
specialize dirichlet_grid_entry_from_factorization (x1) - 0094
specialize dirichlet_grid_entry_from_factorization (x2) - 0095
specialize dirichlet_grid_entry_from_factorization (x3) - 0096
specialize dirichlet_grid_entry_from_factorization (x4) - 0097
specialize dirichlet_grid_entry_from_factorization (x5) - 0098
apply dirichlet_grid_entry_from_factorization - 0099
exact ha_right - 0100
exact he_right - 0101
exact hd_left_witness - 0102
exact hu_witness - 0103
exact hv_witness - 0104
exact hw_witness - 0105
exact hi_witness - 0106
exact ho_witness - 0107
exists 0 - 0108
specialize dirichlet_grid_entry_omitted (F) - 0109
specialize dirichlet_grid_entry_omitted (G) - 0110
specialize dirichlet_grid_entry_omitted (H) - 0111
specialize dirichlet_grid_entry_omitted (n) - 0112
specialize dirichlet_grid_entry_omitted (a) - 0113
specialize dirichlet_grid_entry_omitted (e) - 0114
apply dirichlet_grid_entry_omitted - 0115
right - 0116
right - 0117
exact hd_right