Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Canonical signed +1 is code 2 and -1 is code 1. The two-case unit graph does not assume an inverse or cancellation law: its actual product characterization and affine existence and uniqueness are proved. These scalar lemmas support the separately checked finite inverse criterion; full G009 remains broader.
Exact theorem in conservative defined notation
∀ r. ∀ a. ∀ b. ∀ e. SignedAdd(r,a,e) → SignedAdd(r,b,e) → a = b
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 43 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–6
02Establish hnL7–9
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed negate total.
- L7
have hn : ∃ n. ∃ x. ∃ y. SignedDecode(r,x,y) ∧ SignedDecode(n,y,x)Definitions: SignedDecode(r,x,y)SignedDecode(n,y,x)Original native command in the exact edition - L8
specialize signed_negate_total (r) - L9
apply signed_negate_total
03Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
cases hn
04Use earlier factsL11–20
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
specialize signed_add_functional (x) - L12
specialize signed_add_functional (e) - L13
specialize signed_add_functional (a) - L14
specialize signed_add_functional (b) - L15
apply signed_add_functional - L16
specialize signed_add_associative (x) - L17
specialize signed_add_associative (r) - L18
specialize signed_add_associative (a) - L19
specialize signed_add_associative (0) - L20
specialize signed_add_associative (e)
05Use earlier factsL21–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
specialize signed_add_associative (a) - L22
apply signed_add_associative - L23
specialize signed_add_negate_left_zero (r) - L24
specialize signed_add_negate_left_zero (x) - L25
apply signed_add_negate_left_zero - L26
exact hn_witness - L27
specialize signed_add_zero_left (a) - L28
apply signed_add_zero_left - L29
exact ha - L30
specialize signed_add_associative (x)
06Use earlier factsL31–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
specialize signed_add_associative (r) - L32
specialize signed_add_associative (b) - L33
specialize signed_add_associative (0) - L34
specialize signed_add_associative (e) - L35
specialize signed_add_associative (b) - L36
apply signed_add_associative - L37
specialize signed_add_negate_left_zero (r) - L38
specialize signed_add_negate_left_zero (x) - L39
apply signed_add_negate_left_zero - L40
exact hn_witness
Original defined command ledger · 43 lines
- 0001
intro r - 0002
intro a - 0003
intro b - 0004
intro e - 0005
intro ha - 0006
intro hb - 0007
have hn : ∃ n. ∃ x. ∃ y. SignedDecode(r,x,y) ∧ SignedDecode(n,y,x) - 0008
specialize signed_negate_total (r) - 0009
apply signed_negate_total - 0010
cases hn - 0011
specialize signed_add_functional (x) - 0012
specialize signed_add_functional (e) - 0013
specialize signed_add_functional (a) - 0014
specialize signed_add_functional (b) - 0015
apply signed_add_functional - 0016
specialize signed_add_associative (x) - 0017
specialize signed_add_associative (r) - 0018
specialize signed_add_associative (a) - 0019
specialize signed_add_associative (0) - 0020
specialize signed_add_associative (e) - 0021
specialize signed_add_associative (a) - 0022
apply signed_add_associative - 0023
specialize signed_add_negate_left_zero (r) - 0024
specialize signed_add_negate_left_zero (x) - 0025
apply signed_add_negate_left_zero - 0026
exact hn_witness - 0027
specialize signed_add_zero_left (a) - 0028
apply signed_add_zero_left - 0029
exact ha - 0030
specialize signed_add_associative (x) - 0031
specialize signed_add_associative (r) - 0032
specialize signed_add_associative (b) - 0033
specialize signed_add_associative (0) - 0034
specialize signed_add_associative (e) - 0035
specialize signed_add_associative (b) - 0036
apply signed_add_associative - 0037
specialize signed_add_negate_left_zero (r) - 0038
specialize signed_add_negate_left_zero (x) - 0039
apply signed_add_negate_left_zero - 0040
exact hn_witness - 0041
specialize signed_add_zero_left (b) - 0042
apply signed_add_zero_left - 0043
exact hb