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. ∀ l. ArithTable(0,F) → ArithTable(0,G) → ArithTable(0,H) → ∃ x. DirichletFlatPrefix(F,G,H,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 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–5
02Induction on lL6–9
03Establish hvL10–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet grid flat entry exists.
- L10
have hv : ∃ z. DirichletFlatEntry(F,G,H,n,0,z)Definitions: DirichletFlatEntry(F,G,H,n,0,z)Original native command in the exact edition - L11
specialize dirichlet_grid_flat_entry_exists (F) - L12
specialize dirichlet_grid_flat_entry_exists (G) - L13
specialize dirichlet_grid_flat_entry_exists (H) - L14
specialize dirichlet_grid_flat_entry_exists (n) - L15
specialize dirichlet_grid_flat_entry_exists (0) - L16
apply dirichlet_grid_flat_entry_exists - L17
exact hF - L18
exact hG - L19
exact hH
04Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hv
05Establish htL21–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed table singleton.
- L21
have ht : ∃ T. ArithTable(0,T) ∧ ArithAt(T,0,x)Definitions: ArithTable(0,T)ArithAt(T,0,x)Original native command in the exact edition - L22
specialize arithmetic_signed_table_singleton (x) - L23
apply arithmetic_signed_table_singleton
06Separate the logical casesL24–25
07Construct an explicit witnessL26–26
Supply the displayed value, then prove that it has the required property.
- L26
exists x1
08Use earlier factsL27–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L27
specialize dirichlet_grid_flat_prefix_zero (F) - L28
specialize dirichlet_grid_flat_prefix_zero (G) - L29
specialize dirichlet_grid_flat_prefix_zero (H) - L30
specialize dirichlet_grid_flat_prefix_zero (n) - L31
specialize dirichlet_grid_flat_prefix_zero (x1) - L32
specialize dirichlet_grid_flat_prefix_zero (x) - L33
apply dirichlet_grid_flat_prefix_zero - L34
exact ht_witness_left - L35
exact ht_witness_right - L36
exact hv_witness
09Fix variables and assumptionsL37–39
10Establish hpL40–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L40
have hp : ∃ T. DirichletFlatPrefix(F,G,H,n,l,T)Definitions: DirichletFlatPrefix(F,G,H,n,l,T)Original native command in the exact edition - L41
apply IH - L42
exact hF - L43
exact hG - L44
exact hH
11Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
cases hp
12Establish hvL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet grid flat entry exists.
- L46
have hv : ∃ z. DirichletFlatEntry(F,G,H,n,S l,z)Definitions: DirichletFlatEntry(F,G,H,n,S l,z)Original native command in the exact edition - L47
specialize dirichlet_grid_flat_entry_exists (F) - L48
specialize dirichlet_grid_flat_entry_exists (G) - L49
specialize dirichlet_grid_flat_entry_exists (H) - L50
specialize dirichlet_grid_flat_entry_exists (n) - L51
specialize dirichlet_grid_flat_entry_exists (S l) - L52
apply dirichlet_grid_flat_entry_exists - L53
exact hF - L54
exact hG - L55
exact hH
13Separate the logical casesL56–56
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L56
cases hv
14Establish hextL57–66
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet grid flat prefix append.
- L57
have hext : ∃ U. DirichletFlatPrefix(F,G,H,n,S l,U) ∧ (∀ y. ∀ z. ∀ m. Lt(y,S l) → ArithAt(x,y,z) → ArithAt(U,y,m) → z = m)Definitions: DirichletFlatPrefix(F,G,H,n,S l,U)Lt(y,S l)ArithAt(x,y,z)ArithAt(U,y,m)Original native command in the exact edition - L58
specialize dirichlet_grid_flat_prefix_append (F) - L59
specialize dirichlet_grid_flat_prefix_append (G) - L60
specialize dirichlet_grid_flat_prefix_append (H) - L61
specialize dirichlet_grid_flat_prefix_append (n) - L62
specialize dirichlet_grid_flat_prefix_append (l) - L63
specialize dirichlet_grid_flat_prefix_append (x) - L64
specialize dirichlet_grid_flat_prefix_append (x1) - L65
apply dirichlet_grid_flat_prefix_append - L66
exact hp_witness
15Use earlier factsL67–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L67
exact hv_witness
16Separate the logical casesL68–69
17Construct an explicit witnessL70–70
Supply the displayed value, then prove that it has the required property.
- L70
exists x2
18Use earlier factsL71–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
exact hext_witness_left
Original defined command ledger · 71 lines
- 0001
intro F - 0002
intro G - 0003
intro H - 0004
intro n - 0005
intro l - 0006
induction l - 0007
intro hF - 0008
intro hG - 0009
intro hH - 0010
have hv : ∃ z. DirichletFlatEntry(F,G,H,n,0,z) - 0011
specialize dirichlet_grid_flat_entry_exists (F) - 0012
specialize dirichlet_grid_flat_entry_exists (G) - 0013
specialize dirichlet_grid_flat_entry_exists (H) - 0014
specialize dirichlet_grid_flat_entry_exists (n) - 0015
specialize dirichlet_grid_flat_entry_exists (0) - 0016
apply dirichlet_grid_flat_entry_exists - 0017
exact hF - 0018
exact hG - 0019
exact hH - 0020
cases hv - 0021
have ht : ∃ T. ArithTable(0,T) ∧ ArithAt(T,0,x) - 0022
specialize arithmetic_signed_table_singleton (x) - 0023
apply arithmetic_signed_table_singleton - 0024
cases ht - 0025
cases ht_witness - 0026
exists x1 - 0027
specialize dirichlet_grid_flat_prefix_zero (F) - 0028
specialize dirichlet_grid_flat_prefix_zero (G) - 0029
specialize dirichlet_grid_flat_prefix_zero (H) - 0030
specialize dirichlet_grid_flat_prefix_zero (n) - 0031
specialize dirichlet_grid_flat_prefix_zero (x1) - 0032
specialize dirichlet_grid_flat_prefix_zero (x) - 0033
apply dirichlet_grid_flat_prefix_zero - 0034
exact ht_witness_left - 0035
exact ht_witness_right - 0036
exact hv_witness - 0037
intro hF - 0038
intro hG - 0039
intro hH - 0040
have hp : ∃ T. DirichletFlatPrefix(F,G,H,n,l,T) - 0041
apply IH - 0042
exact hF - 0043
exact hG - 0044
exact hH - 0045
cases hp - 0046
have hv : ∃ z. DirichletFlatEntry(F,G,H,n,S l,z) - 0047
specialize dirichlet_grid_flat_entry_exists (F) - 0048
specialize dirichlet_grid_flat_entry_exists (G) - 0049
specialize dirichlet_grid_flat_entry_exists (H) - 0050
specialize dirichlet_grid_flat_entry_exists (n) - 0051
specialize dirichlet_grid_flat_entry_exists (S l) - 0052
apply dirichlet_grid_flat_entry_exists - 0053
exact hF - 0054
exact hG - 0055
exact hH - 0056
cases hv - 0057
have hext : ∃ U. DirichletFlatPrefix(F,G,H,n,S l,U) ∧ (∀ y. ∀ z. ∀ m. Lt(y,S l) → ArithAt(x,y,z) → ArithAt(U,y,m) → z = m) - 0058
specialize dirichlet_grid_flat_prefix_append (F) - 0059
specialize dirichlet_grid_flat_prefix_append (G) - 0060
specialize dirichlet_grid_flat_prefix_append (H) - 0061
specialize dirichlet_grid_flat_prefix_append (n) - 0062
specialize dirichlet_grid_flat_prefix_append (l) - 0063
specialize dirichlet_grid_flat_prefix_append (x) - 0064
specialize dirichlet_grid_flat_prefix_append (x1) - 0065
apply dirichlet_grid_flat_prefix_append - 0066
exact hp_witness - 0067
exact hv_witness - 0068
cases hext - 0069
cases hext_witness - 0070
exists x2 - 0071
exact hext_witness_left