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
∀ g. ∀ a. ∀ b. ∀ q. ∀ r. ∀ u. ∀ v. (∃ x. GMul(b,q,x) ∧ ZPairAdd(x,r,a)) → GBezout(g,b,r,u,v) → ∃ x. GBezout(g,a,b,v,x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 148 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 (11)
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–15
03Establish hqvL16–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply exists.
- L16
- L17
specialize gaussian_multiply_exists (q) - L18
specialize gaussian_multiply_exists (v) - L19
apply gaussian_multiply_exists - L20
specialize gaussian_multiply_input_right_valid (b) - L21
specialize gaussian_multiply_input_right_valid (q) - L22
specialize gaussian_multiply_input_right_valid (x) - L23
apply gaussian_multiply_input_right_valid - L24
exact heq_witness_left - L25
specialize gaussian_multiply_input_right_valid (r)
04Use earlier factsL26–29
05Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hqv
06Establish hwL31–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian subtract exists.
- L31
have hw : ∃ w. ZPairAdd(w,x3,u)Definitions: ZPairAdd(w,x3,u)Original native command in the exact edition - L32
specialize gaussian_subtract_exists (u) - L33
specialize gaussian_subtract_exists (x3) - L34
apply gaussian_subtract_exists - L35
specialize gaussian_multiply_input_right_valid (b) - L36
specialize gaussian_multiply_input_right_valid (u) - L37
specialize gaussian_multiply_input_right_valid (x1) - L38
apply gaussian_multiply_input_right_valid - L39
exact hbez_witness_witness_left - L40
specialize gaussian_multiply_output_valid (q)
07Use earlier factsL41–44
08Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
cases hw
09Establish hPvL46–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply exists.
- L46
- L47
specialize gaussian_multiply_exists (x) - L48
specialize gaussian_multiply_exists (v) - L49
apply gaussian_multiply_exists - L50
specialize gaussian_multiply_output_valid (b) - L51
specialize gaussian_multiply_output_valid (q) - L52
specialize gaussian_multiply_output_valid (x) - L53
apply gaussian_multiply_output_valid - L54
exact heq_witness_left - L55
specialize gaussian_multiply_input_right_valid (r)
10Use earlier factsL56–59
11Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hPv
12Establish hAvL61–70
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply exists.
- L61
- L62
specialize gaussian_multiply_exists (a) - L63
specialize gaussian_multiply_exists (v) - L64
apply gaussian_multiply_exists - L65
specialize gaussian_add_output_valid (x) - L66
specialize gaussian_add_output_valid (r) - L67
specialize gaussian_add_output_valid (a) - L68
apply gaussian_add_output_valid - L69
exact heq_witness_right - L70
specialize gaussian_multiply_input_right_valid (r)
13Use earlier factsL71–74
14Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
cases hAv
15Establish hBwL76–85
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply exists.
- L76
- L77
specialize gaussian_multiply_exists (b) - L78
specialize gaussian_multiply_exists (x4) - L79
apply gaussian_multiply_exists - L80
specialize gaussian_multiply_input_left_valid (b) - L81
specialize gaussian_multiply_input_left_valid (q) - L82
specialize gaussian_multiply_input_left_valid (x) - L83
apply gaussian_multiply_input_left_valid - L84
exact heq_witness_left - L85
specialize gaussian_add_input_left_valid (x4)
16Use earlier factsL86–89
17Separate the logical casesL90–90
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L90
cases hBw
18Establish hBqvL91–100
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply associative.
- L91
- L92
specialize gaussian_multiply_associative (b) - L93
specialize gaussian_multiply_associative (q) - L94
specialize gaussian_multiply_associative (v) - L95
specialize gaussian_multiply_associative (x) - L96
specialize gaussian_multiply_associative (x3) - L97
specialize gaussian_multiply_associative (x5) - L98
apply gaussian_multiply_associative - L99
exact heq_witness_left - L100
exact hPv_witness
19Use earlier factsL101–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L101
exact hqv_witness
20Establish hfirstsumL102–111
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply add distribute right.
- L102
have hfirstsum : ZPairAdd(x5,x2,x6)Definitions: ZPairAdd(x5,x2,x6)Original native command in the exact edition - L103
specialize gaussian_multiply_add_distribute_right (v) - L104
specialize gaussian_multiply_add_distribute_right (x) - L105
specialize gaussian_multiply_add_distribute_right (r) - L106
specialize gaussian_multiply_add_distribute_right (a) - L107
specialize gaussian_multiply_add_distribute_right (x5) - L108
specialize gaussian_multiply_add_distribute_right (x2) - L109
specialize gaussian_multiply_add_distribute_right (x6) - L110
apply gaussian_multiply_add_distribute_right - L111
exact heq_witness_right
21Use earlier factsL112–114
22Establish hsecondsumL115–124
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply add distribute.
- L115
have hsecondsum : ZPairAdd(x7,x5,x1)Definitions: ZPairAdd(x7,x5,x1)Original native command in the exact edition - L116
specialize gaussian_multiply_add_distribute (b) - L117
specialize gaussian_multiply_add_distribute (x4) - L118
specialize gaussian_multiply_add_distribute (x3) - L119
specialize gaussian_multiply_add_distribute (u) - L120
specialize gaussian_multiply_add_distribute (x7) - L121
specialize gaussian_multiply_add_distribute (x5) - L122
specialize gaussian_multiply_add_distribute (x1) - L123
apply gaussian_multiply_add_distribute - L124
exact hw_witness
23Use earlier factsL125–127
24Construct an explicit witnessL128–130
25Separate the logical casesL131–131
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L131
split
26Use earlier factsL132–132
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L132
exact hAv_witness
27Separate the logical casesL133–133
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L133
split
28Use earlier factsL134–143
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L134
exact hBw_witness - L135
specialize gaussian_add_commutative (x7) - L136
specialize gaussian_add_commutative (x6) - L137
specialize gaussian_add_commutative (g) - L138
apply gaussian_add_commutative - L139
specialize gaussian_add_associative (x7) - L140
specialize gaussian_add_associative (x5) - L141
specialize gaussian_add_associative (x2) - L142
specialize gaussian_add_associative (x1) - L143
specialize gaussian_add_associative (x6)
Original defined command ledger · 148 lines
- 0001
intro g - 0002
intro a - 0003
intro b - 0004
intro q - 0005
intro r - 0006
intro u - 0007
intro v - 0008
intro heq - 0009
intro hbez - 0010
cases heq - 0011
cases heq_witness - 0012
cases hbez - 0013
cases hbez_witness - 0014
cases hbez_witness_witness - 0015
cases hbez_witness_witness_right - 0016
have hqv : ∃ w. GMul(q,v,w) - 0017
specialize gaussian_multiply_exists (q) - 0018
specialize gaussian_multiply_exists (v) - 0019
apply gaussian_multiply_exists - 0020
specialize gaussian_multiply_input_right_valid (b) - 0021
specialize gaussian_multiply_input_right_valid (q) - 0022
specialize gaussian_multiply_input_right_valid (x) - 0023
apply gaussian_multiply_input_right_valid - 0024
exact heq_witness_left - 0025
specialize gaussian_multiply_input_right_valid (r) - 0026
specialize gaussian_multiply_input_right_valid (v) - 0027
specialize gaussian_multiply_input_right_valid (x2) - 0028
apply gaussian_multiply_input_right_valid - 0029
exact hbez_witness_witness_right_left - 0030
cases hqv - 0031
have hw : ∃ w. ZPairAdd(w,x3,u) - 0032
specialize gaussian_subtract_exists (u) - 0033
specialize gaussian_subtract_exists (x3) - 0034
apply gaussian_subtract_exists - 0035
specialize gaussian_multiply_input_right_valid (b) - 0036
specialize gaussian_multiply_input_right_valid (u) - 0037
specialize gaussian_multiply_input_right_valid (x1) - 0038
apply gaussian_multiply_input_right_valid - 0039
exact hbez_witness_witness_left - 0040
specialize gaussian_multiply_output_valid (q) - 0041
specialize gaussian_multiply_output_valid (v) - 0042
specialize gaussian_multiply_output_valid (x3) - 0043
apply gaussian_multiply_output_valid - 0044
exact hqv_witness - 0045
cases hw - 0046
have hPv : ∃ w. GMul(x,v,w) - 0047
specialize gaussian_multiply_exists (x) - 0048
specialize gaussian_multiply_exists (v) - 0049
apply gaussian_multiply_exists - 0050
specialize gaussian_multiply_output_valid (b) - 0051
specialize gaussian_multiply_output_valid (q) - 0052
specialize gaussian_multiply_output_valid (x) - 0053
apply gaussian_multiply_output_valid - 0054
exact heq_witness_left - 0055
specialize gaussian_multiply_input_right_valid (r) - 0056
specialize gaussian_multiply_input_right_valid (v) - 0057
specialize gaussian_multiply_input_right_valid (x2) - 0058
apply gaussian_multiply_input_right_valid - 0059
exact hbez_witness_witness_right_left - 0060
cases hPv - 0061
have hAv : ∃ w. GMul(a,v,w) - 0062
specialize gaussian_multiply_exists (a) - 0063
specialize gaussian_multiply_exists (v) - 0064
apply gaussian_multiply_exists - 0065
specialize gaussian_add_output_valid (x) - 0066
specialize gaussian_add_output_valid (r) - 0067
specialize gaussian_add_output_valid (a) - 0068
apply gaussian_add_output_valid - 0069
exact heq_witness_right - 0070
specialize gaussian_multiply_input_right_valid (r) - 0071
specialize gaussian_multiply_input_right_valid (v) - 0072
specialize gaussian_multiply_input_right_valid (x2) - 0073
apply gaussian_multiply_input_right_valid - 0074
exact hbez_witness_witness_right_left - 0075
cases hAv - 0076
have hBw : ∃ w. GMul(b,x4,w) - 0077
specialize gaussian_multiply_exists (b) - 0078
specialize gaussian_multiply_exists (x4) - 0079
apply gaussian_multiply_exists - 0080
specialize gaussian_multiply_input_left_valid (b) - 0081
specialize gaussian_multiply_input_left_valid (q) - 0082
specialize gaussian_multiply_input_left_valid (x) - 0083
apply gaussian_multiply_input_left_valid - 0084
exact heq_witness_left - 0085
specialize gaussian_add_input_left_valid (x4) - 0086
specialize gaussian_add_input_left_valid (x3) - 0087
specialize gaussian_add_input_left_valid (u) - 0088
apply gaussian_add_input_left_valid - 0089
exact hw_witness - 0090
cases hBw - 0091
have hBqv : GMul(b,x3,x5) - 0092
specialize gaussian_multiply_associative (b) - 0093
specialize gaussian_multiply_associative (q) - 0094
specialize gaussian_multiply_associative (v) - 0095
specialize gaussian_multiply_associative (x) - 0096
specialize gaussian_multiply_associative (x3) - 0097
specialize gaussian_multiply_associative (x5) - 0098
apply gaussian_multiply_associative - 0099
exact heq_witness_left - 0100
exact hPv_witness - 0101
exact hqv_witness - 0102
have hfirstsum : ZPairAdd(x5,x2,x6) - 0103
specialize gaussian_multiply_add_distribute_right (v) - 0104
specialize gaussian_multiply_add_distribute_right (x) - 0105
specialize gaussian_multiply_add_distribute_right (r) - 0106
specialize gaussian_multiply_add_distribute_right (a) - 0107
specialize gaussian_multiply_add_distribute_right (x5) - 0108
specialize gaussian_multiply_add_distribute_right (x2) - 0109
specialize gaussian_multiply_add_distribute_right (x6) - 0110
apply gaussian_multiply_add_distribute_right - 0111
exact heq_witness_right - 0112
exact hPv_witness - 0113
exact hbez_witness_witness_right_left - 0114
exact hAv_witness - 0115
have hsecondsum : ZPairAdd(x7,x5,x1) - 0116
specialize gaussian_multiply_add_distribute (b) - 0117
specialize gaussian_multiply_add_distribute (x4) - 0118
specialize gaussian_multiply_add_distribute (x3) - 0119
specialize gaussian_multiply_add_distribute (u) - 0120
specialize gaussian_multiply_add_distribute (x7) - 0121
specialize gaussian_multiply_add_distribute (x5) - 0122
specialize gaussian_multiply_add_distribute (x1) - 0123
apply gaussian_multiply_add_distribute - 0124
exact hw_witness - 0125
exact hBw_witness - 0126
exact hBqv - 0127
exact hbez_witness_witness_left - 0128
exists (x4) - 0129
exists (x6) - 0130
exists (x7) - 0131
split - 0132
exact hAv_witness - 0133
split - 0134
exact hBw_witness - 0135
specialize gaussian_add_commutative (x7) - 0136
specialize gaussian_add_commutative (x6) - 0137
specialize gaussian_add_commutative (g) - 0138
apply gaussian_add_commutative - 0139
specialize gaussian_add_associative (x7) - 0140
specialize gaussian_add_associative (x5) - 0141
specialize gaussian_add_associative (x2) - 0142
specialize gaussian_add_associative (x1) - 0143
specialize gaussian_add_associative (x6) - 0144
specialize gaussian_add_associative (g) - 0145
apply gaussian_add_associative - 0146
exact hsecondsum - 0147
exact hbez_witness_witness_right_right - 0148
exact hfirstsum