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
∀ b. ∀ c. ∀ l. ∀ Q. GProduct(b,c,S l,Q) → ∃ x. ∃ y. BetaAt(b,c,l,x) ∧ (GProduct(b,c,l,y) ∧ GMul(y,x,Q))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 58 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 (1)
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–9
03Establish hsL10–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hp witness witness right right.
- L10
have hs : GProductStep(b,c,x,x1,l)Definitions: GProductStep(b,c,x,x1,l)Original native command in the exact edition - L11
specialize hp_witness_witness_right_right (l) - L12
apply hp_witness_witness_right_right - L13
specialize le_refl (S l) - L14
apply le_refl
04Separate the logical casesL15–20
05Establish heqL21–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
06Construct an explicit witnessL30–31
07Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
split
08Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hs_witness_witness_witness_left
09Separate the logical casesL34–34
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L34
split
10Construct an explicit witnessL35–36
11Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
split
12Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hp_witness_witness_left
13Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
split
14Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hs_witness_witness_witness_right_left
15Fix variables and assumptionsL41–42
16Use earlier factsL43–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
specialize hp_witness_witness_right_right (i) - L44
apply hp_witness_witness_right_right - L45
specialize lt_of_lt_of_le (i) - L46
specialize lt_of_lt_of_le (l) - L47
specialize lt_of_lt_of_le (S l) - L48
apply lt_of_lt_of_le - L49
exact hi - L50
specialize le_succ_self (l) - L51
apply le_succ_self - L52
specialize gaussian_multiply_output_transport (x3)
17Use earlier factsL53–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 58 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro Q - 0005
intro hp - 0006
cases hp - 0007
cases hp_witness - 0008
cases hp_witness_witness - 0009
cases hp_witness_witness_right - 0010
have hs : GProductStep(b,c,x,x1,l) - 0011
specialize hp_witness_witness_right_right (l) - 0012
apply hp_witness_witness_right_right - 0013
specialize le_refl (S l) - 0014
apply le_refl - 0015
cases hs - 0016
cases hs_witness - 0017
cases hs_witness_witness - 0018
cases hs_witness_witness_witness - 0019
cases hs_witness_witness_witness_right - 0020
cases hs_witness_witness_witness_right_right - 0021
have heq : x4=Q - 0022
specialize beta_at_unique (x) - 0023
specialize beta_at_unique (x1) - 0024
specialize beta_at_unique (S l) - 0025
specialize beta_at_unique (x4) - 0026
specialize beta_at_unique (Q) - 0027
apply beta_at_unique - 0028
exact hs_witness_witness_witness_right_right_left - 0029
exact hp_witness_witness_right_left - 0030
exists (x2) - 0031
exists (x3) - 0032
split - 0033
exact hs_witness_witness_witness_left - 0034
split - 0035
exists (x) - 0036
exists (x1) - 0037
split - 0038
exact hp_witness_witness_left - 0039
split - 0040
exact hs_witness_witness_witness_right_left - 0041
intro i - 0042
intro hi - 0043
specialize hp_witness_witness_right_right (i) - 0044
apply hp_witness_witness_right_right - 0045
specialize lt_of_lt_of_le (i) - 0046
specialize lt_of_lt_of_le (l) - 0047
specialize lt_of_lt_of_le (S l) - 0048
apply lt_of_lt_of_le - 0049
exact hi - 0050
specialize le_succ_self (l) - 0051
apply le_succ_self - 0052
specialize gaussian_multiply_output_transport (x3) - 0053
specialize gaussian_multiply_output_transport (x2) - 0054
specialize gaussian_multiply_output_transport (x4) - 0055
specialize gaussian_multiply_output_transport (Q) - 0056
apply gaussian_multiply_output_transport - 0057
exact heq - 0058
exact hs_witness_witness_witness_right_right_right