Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Signed one is code 2. Positive-only table graphs preserve arbitrary zeroth values, including N=0. The unit and divisor-sum identities are proved, never embedded in definitions. The separate inverse family proves the general unit-at-one criterion; multiplicative-function closure remains open.
Exact theorem in conservative defined notation
∀ N. ∀ E. ∀ z. KroneckerDeltaTable(N,E) → (S N = 1 → z = 2) ∧ (¬S N = 1 → z = 0) → ∃ x. KroneckerDeltaTable(S N,x) ∧ (∀ y. ∀ n. ∀ m. Lt(y,S N) → ArithAt(E,y,n) → ArithAt(x,y,m) → n = m)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 77 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.
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
cases hf
03Establish hxL7–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed table append.
- L7
have hx : ∃ G. ArithTable(S N,G) ∧ ((∀ x. ∀ y. ∀ n. Lt(x,S N) → ArithAt(F,x,y) → ArithAt(G,x,n) → y = n) ∧ ArithAt(G,S N,z))Definitions: ArithTable(S N,G)Lt(x,S N)ArithAt(F,x,y)ArithAt(G,x,n)ArithAt(G,S N,z)Original native command in the exact edition - L8
specialize arithmetic_signed_table_append (N) - L9
specialize arithmetic_signed_table_append (F) - L10
specialize arithmetic_signed_table_append (z) - L11
apply arithmetic_signed_table_append - L12
exact hf_left
04Separate the logical casesL13–15
05Construct an explicit witnessL16–16
Supply the displayed value, then prove that it has the required property.
- L16
exists x
06Separate the logical casesL17–18
07Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
exact hx_witness_left
08Fix variables and assumptionsL20–24
09Establish hcL25–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
10Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hc
11Calculate and transport equalitiesL31–34
12Establish hvL35–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at functional.
- L35
have hv : a=z - L36
specialize divisor_signed_table_at_functional (x) - L37
specialize divisor_signed_table_at_functional (S N) - L38
specialize divisor_signed_table_at_functional (a) - L39
specialize divisor_signed_table_at_functional (z) - L40
apply divisor_signed_table_at_functional - L41
exact ha - L42
exact hx_witness_right_right - L43
rewrite hc_left - L44
rewrite hc_left
13Calculate and transport equalitiesL45–46
14Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact hz
15Establish hibL48–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
16Establish hvL53–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table lookup.
- L53
have hv : ∃ v. ArithAt(F,i,v)Definitions: ArithAt(F,i,v)Original native command in the exact edition - L54
specialize divisor_signed_table_lookup (N) - L55
specialize divisor_signed_table_lookup (F) - L56
specialize divisor_signed_table_lookup (i) - L57
apply divisor_signed_table_lookup - L58
exact hf_left - L59
exact hib
17Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hv
18Establish heqL61–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hx witness right left.
Original defined command ledger · 77 lines
- 0001
intro N - 0002
intro F - 0003
intro z - 0004
intro hf - 0005
intro hz - 0006
cases hf - 0007
have hx : ∃ G. ArithTable(S N,G) ∧ ((∀ x. ∀ y. ∀ n. Lt(x,S N) → ArithAt(F,x,y) → ArithAt(G,x,n) → y = n) ∧ ArithAt(G,S N,z)) - 0008
specialize arithmetic_signed_table_append (N) - 0009
specialize arithmetic_signed_table_append (F) - 0010
specialize arithmetic_signed_table_append (z) - 0011
apply arithmetic_signed_table_append - 0012
exact hf_left - 0013
cases hx - 0014
cases hx_witness - 0015
cases hx_witness_right - 0016
exists x - 0017
split - 0018
split - 0019
exact hx_witness_left - 0020
intro i - 0021
intro a - 0022
intro hi - 0023
intro hb - 0024
intro ha - 0025
have hc : i = S N ∨ Lt(i,S N) - 0026
specialize le_eq_or_lt (i) - 0027
specialize le_eq_or_lt (S N) - 0028
apply le_eq_or_lt - 0029
exact hb - 0030
cases hc - 0031
rewrite hc_left at ha - 0032
rewrite hc_left at ha - 0033
rewrite hc_left at ha - 0034
rewrite hc_left at ha - 0035
have hv : a=z - 0036
specialize divisor_signed_table_at_functional (x) - 0037
specialize divisor_signed_table_at_functional (S N) - 0038
specialize divisor_signed_table_at_functional (a) - 0039
specialize divisor_signed_table_at_functional (z) - 0040
apply divisor_signed_table_at_functional - 0041
exact ha - 0042
exact hx_witness_right_right - 0043
rewrite hc_left - 0044
rewrite hc_left - 0045
rewrite hv - 0046
rewrite hv - 0047
exact hz - 0048
have hib : Le(i,N) - 0049
specialize le_of_succ_le_succ (i) - 0050
specialize le_of_succ_le_succ (N) - 0051
apply le_of_succ_le_succ - 0052
exact hc_right - 0053
have hv : ∃ v. ArithAt(F,i,v) - 0054
specialize divisor_signed_table_lookup (N) - 0055
specialize divisor_signed_table_lookup (F) - 0056
specialize divisor_signed_table_lookup (i) - 0057
apply divisor_signed_table_lookup - 0058
exact hf_left - 0059
exact hib - 0060
cases hv - 0061
have heq : x1=a - 0062
specialize hx_witness_right_left (i) - 0063
specialize hx_witness_right_left (x1) - 0064
specialize hx_witness_right_left (a) - 0065
apply hx_witness_right_left - 0066
exact hc_right - 0067
exact hv_witness - 0068
exact ha - 0069
rewrite heq at hv_witness - 0070
rewrite heq at hv_witness - 0071
specialize hf_right (i) - 0072
specialize hf_right (a) - 0073
apply hf_right - 0074
exact hi - 0075
exact hib - 0076
exact hv_witness - 0077
exact hx_witness_right_left