Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Inputs are genuine canonical signed-pair codes, not arbitrary naturals. Products start at the actual Gaussian identity, whose code is six. The factor list uses the proved prime-divisor property; irreducibility alone is not silently renamed primality. Uniqueness supplies equal lengths, a bounded bijection, and an actual unit at each match, including repeated factors. Units have empty factorizations and zero is excluded. Sorted primary representatives, Gaussian prime classification, and Eisenstein factorization are separate targets.
Exact theorem in conservative defined notation
∀ a. ∀ b. ∀ c. ∀ t. ¬a = 0 → GMul(a,b,t) → GMul(a,c,t) → b = c
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 93 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 (10)
01Fix variables and assumptionsL1–7
02Establish hdL8–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian subtract exists.
- L8
have hd : ∃ d. ZPairAdd(d,c,b)Definitions: ZPairAdd(d,c,b)Original native command in the exact edition - L9
specialize gaussian_subtract_exists (b) - L10
specialize gaussian_subtract_exists (c) - L11
apply gaussian_subtract_exists - L12
specialize gaussian_multiply_input_right_valid (a) - L13
specialize gaussian_multiply_input_right_valid (b) - L14
specialize gaussian_multiply_input_right_valid (t) - L15
apply gaussian_multiply_input_right_valid - L16
exact hB - L17
specialize gaussian_multiply_input_right_valid (a)
03Use earlier factsL18–21
04Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
cases hd
05Establish hproductL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply exists.
- L23
have hproduct : ∃ u. GMul(a,x,u)Definitions: GMul(a,x,u)Original native command in the exact edition - L24
specialize gaussian_multiply_exists (a) - L25
specialize gaussian_multiply_exists (x) - L26
apply gaussian_multiply_exists - L27
specialize gaussian_multiply_input_left_valid (a) - L28
specialize gaussian_multiply_input_left_valid (b) - L29
specialize gaussian_multiply_input_left_valid (t) - L30
apply gaussian_multiply_input_left_valid - L31
exact hB - L32
specialize gaussian_add_input_left_valid (x)
06Use earlier factsL33–36
07Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
cases hproduct
08Establish hsumL38–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply add distribute.
- L38
have hsum : ZPairAdd(x1,t,t)Definitions: ZPairAdd(x1,t,t)Original native command in the exact edition - L39
specialize gaussian_multiply_add_distribute (a) - L40
specialize gaussian_multiply_add_distribute (x) - L41
specialize gaussian_multiply_add_distribute (c) - L42
specialize gaussian_multiply_add_distribute (b) - L43
specialize gaussian_multiply_add_distribute (x1) - L44
specialize gaussian_multiply_add_distribute (t) - L45
specialize gaussian_multiply_add_distribute (t) - L46
apply gaussian_multiply_add_distribute - L47
exact hd_witness
09Use earlier factsL48–50
10Establish hzeroL51–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian add cancel right.
- L51
have hzero : x1=0 - L52
specialize gaussian_add_cancel_right (x1) - L53
specialize gaussian_add_cancel_right (0) - L54
specialize gaussian_add_cancel_right (t) - L55
specialize gaussian_add_cancel_right (t) - L56
apply gaussian_add_cancel_right - L57
exact hsum - L58
specialize gaussian_add_zero_left (t) - L59
apply gaussian_add_zero_left - L60
specialize gaussian_multiply_output_valid (a)
11Use earlier factsL61–64
12Establish hcasesL65–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply zero implies zero factor.
- L65
have hcases : a=0 \/ x=0 - L66
specialize gaussian_multiply_zero_implies_zero_factor (a) - L67
specialize gaussian_multiply_zero_implies_zero_factor (x) - L68
apply gaussian_multiply_zero_implies_zero_factor - L69
specialize gaussian_multiply_output_transport (a) - L70
specialize gaussian_multiply_output_transport (x) - L71
specialize gaussian_multiply_output_transport (x1) - L72
specialize gaussian_multiply_output_transport (0) - L73
apply gaussian_multiply_output_transport - L74
exact hzero
13Use earlier factsL75–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
exact hproduct_witness
14Separate the logical casesL76–77
15Use earlier factsL78–79
16Calculate and transport equalitiesL80–80
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L80
rewrite hcases_right at hd_witness
17Use earlier factsL81–90
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L81
specialize gaussian_add_functional (0) - L82
specialize gaussian_add_functional (c) - L83
specialize gaussian_add_functional (b) - L84
specialize gaussian_add_functional (c) - L85
apply gaussian_add_functional - L86
exact hd_witness - L87
specialize gaussian_add_zero_left (c) - L88
apply gaussian_add_zero_left - L89
specialize gaussian_multiply_input_right_valid (a) - L90
specialize gaussian_multiply_input_right_valid (c)
Original defined command ledger · 93 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro t - 0005
intro hn - 0006
intro hB - 0007
intro hC - 0008
have hd : ∃ d. ZPairAdd(d,c,b) - 0009
specialize gaussian_subtract_exists (b) - 0010
specialize gaussian_subtract_exists (c) - 0011
apply gaussian_subtract_exists - 0012
specialize gaussian_multiply_input_right_valid (a) - 0013
specialize gaussian_multiply_input_right_valid (b) - 0014
specialize gaussian_multiply_input_right_valid (t) - 0015
apply gaussian_multiply_input_right_valid - 0016
exact hB - 0017
specialize gaussian_multiply_input_right_valid (a) - 0018
specialize gaussian_multiply_input_right_valid (c) - 0019
specialize gaussian_multiply_input_right_valid (t) - 0020
apply gaussian_multiply_input_right_valid - 0021
exact hC - 0022
cases hd - 0023
have hproduct : ∃ u. GMul(a,x,u) - 0024
specialize gaussian_multiply_exists (a) - 0025
specialize gaussian_multiply_exists (x) - 0026
apply gaussian_multiply_exists - 0027
specialize gaussian_multiply_input_left_valid (a) - 0028
specialize gaussian_multiply_input_left_valid (b) - 0029
specialize gaussian_multiply_input_left_valid (t) - 0030
apply gaussian_multiply_input_left_valid - 0031
exact hB - 0032
specialize gaussian_add_input_left_valid (x) - 0033
specialize gaussian_add_input_left_valid (c) - 0034
specialize gaussian_add_input_left_valid (b) - 0035
apply gaussian_add_input_left_valid - 0036
exact hd_witness - 0037
cases hproduct - 0038
have hsum : ZPairAdd(x1,t,t) - 0039
specialize gaussian_multiply_add_distribute (a) - 0040
specialize gaussian_multiply_add_distribute (x) - 0041
specialize gaussian_multiply_add_distribute (c) - 0042
specialize gaussian_multiply_add_distribute (b) - 0043
specialize gaussian_multiply_add_distribute (x1) - 0044
specialize gaussian_multiply_add_distribute (t) - 0045
specialize gaussian_multiply_add_distribute (t) - 0046
apply gaussian_multiply_add_distribute - 0047
exact hd_witness - 0048
exact hproduct_witness - 0049
exact hC - 0050
exact hB - 0051
have hzero : x1=0 - 0052
specialize gaussian_add_cancel_right (x1) - 0053
specialize gaussian_add_cancel_right (0) - 0054
specialize gaussian_add_cancel_right (t) - 0055
specialize gaussian_add_cancel_right (t) - 0056
apply gaussian_add_cancel_right - 0057
exact hsum - 0058
specialize gaussian_add_zero_left (t) - 0059
apply gaussian_add_zero_left - 0060
specialize gaussian_multiply_output_valid (a) - 0061
specialize gaussian_multiply_output_valid (b) - 0062
specialize gaussian_multiply_output_valid (t) - 0063
apply gaussian_multiply_output_valid - 0064
exact hB - 0065
have hcases : a=0 \/ x=0 - 0066
specialize gaussian_multiply_zero_implies_zero_factor (a) - 0067
specialize gaussian_multiply_zero_implies_zero_factor (x) - 0068
apply gaussian_multiply_zero_implies_zero_factor - 0069
specialize gaussian_multiply_output_transport (a) - 0070
specialize gaussian_multiply_output_transport (x) - 0071
specialize gaussian_multiply_output_transport (x1) - 0072
specialize gaussian_multiply_output_transport (0) - 0073
apply gaussian_multiply_output_transport - 0074
exact hzero - 0075
exact hproduct_witness - 0076
cases hcases - 0077
exfalso - 0078
apply hn - 0079
exact hcases_left - 0080
rewrite hcases_right at hd_witness - 0081
specialize gaussian_add_functional (0) - 0082
specialize gaussian_add_functional (c) - 0083
specialize gaussian_add_functional (b) - 0084
specialize gaussian_add_functional (c) - 0085
apply gaussian_add_functional - 0086
exact hd_witness - 0087
specialize gaussian_add_zero_left (c) - 0088
apply gaussian_add_zero_left - 0089
specialize gaussian_multiply_input_right_valid (a) - 0090
specialize gaussian_multiply_input_right_valid (c) - 0091
specialize gaussian_multiply_input_right_valid (t) - 0092
apply gaussian_multiply_input_right_valid - 0093
exact hC