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
∀ d. ∀ z. ∀ D. ∀ N. GDvd(d,z) → GNorm(d,D) → GNorm(z,N) → ¬z = 0 → ¬GUnit(d) → ∃ x. ∃ y. GMul(d,x,z) ∧ (GNorm(x,y) ∧ (Lt(y,N) ∧ ¬x = 0))
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.
Named ingredients (4)
01Fix variables and assumptionsL1–9
02Establish hfL10–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian divisor norm factor.
- L10
have hf : ∃ q. ∃ Q. GMul(d,q,z) ∧ (GNorm(q,Q) ∧ N = D · Q)Definitions: GMul(d,q,z)GNorm(q,Q)Original native command in the exact edition - L11
specialize gaussian_divisor_norm_factor (d) - L12
specialize gaussian_divisor_norm_factor (z) - L13
specialize gaussian_divisor_norm_factor (D) - L14
specialize gaussian_divisor_norm_factor (N) - L15
apply gaussian_divisor_norm_factor - L16
exact hd - L17
exact hD - L18
exact hN
03Separate the logical casesL19–22
04Establish hpositiveL23–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian norm nonzero.
05Establish hDpositiveL31–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor nonzero left.
06Establish hQpositiveL40–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor nonzero right.
07Construct an explicit witnessL49–50
08Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
split
09Use earlier factsL52–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
exact hf_witness_witness_left
10Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
split
11Use earlier factsL54–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
exact hf_witness_witness_right_left
12Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
13Establish heqL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul comm.
14Use earlier factsL66–70
15Fix variables and assumptionsL71–71
Work with arbitrary variables or the premises of the current implication.
- L71
intro hqzero
16Use earlier factsL72–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 77 lines
- 0001
intro d - 0002
intro z - 0003
intro D - 0004
intro N - 0005
intro hd - 0006
intro hD - 0007
intro hN - 0008
intro hz - 0009
intro hu - 0010
have hf : ∃ q. ∃ Q. GMul(d,q,z) ∧ (GNorm(q,Q) ∧ N = D · Q) - 0011
specialize gaussian_divisor_norm_factor (d) - 0012
specialize gaussian_divisor_norm_factor (z) - 0013
specialize gaussian_divisor_norm_factor (D) - 0014
specialize gaussian_divisor_norm_factor (N) - 0015
apply gaussian_divisor_norm_factor - 0016
exact hd - 0017
exact hD - 0018
exact hN - 0019
cases hf - 0020
cases hf_witness - 0021
cases hf_witness_witness - 0022
cases hf_witness_witness_right - 0023
have hpositive : ~(N=0) - 0024
intro hzero - 0025
specialize gaussian_norm_nonzero (z) - 0026
specialize gaussian_norm_nonzero (N) - 0027
apply gaussian_norm_nonzero - 0028
exact hN - 0029
exact hz - 0030
exact hzero - 0031
have hDpositive : ~(D=0) - 0032
intro hzero - 0033
specialize factor_nonzero_left (N) - 0034
specialize factor_nonzero_left (D) - 0035
specialize factor_nonzero_left (x1) - 0036
apply factor_nonzero_left - 0037
exact hpositive - 0038
exact hf_witness_witness_right_right - 0039
exact hzero - 0040
have hQpositive : ~(x1=0) - 0041
intro hzero - 0042
specialize factor_nonzero_right (N) - 0043
specialize factor_nonzero_right (D) - 0044
specialize factor_nonzero_right (x1) - 0045
apply factor_nonzero_right - 0046
exact hpositive - 0047
exact hf_witness_witness_right_right - 0048
exact hzero - 0049
exists (x) - 0050
exists (x1) - 0051
split - 0052
exact hf_witness_witness_left - 0053
split - 0054
exact hf_witness_witness_right_left - 0055
split - 0056
have heq : N=x1*D - 0057
trans D*x1 - 0058
exact hf_witness_witness_right_right - 0059
apply mul_comm - 0060
rewrite heq - 0061
specialize succ_le_mul_of_two_le_right (x1) - 0062
specialize succ_le_mul_of_two_le_right (D) - 0063
apply succ_le_mul_of_two_le_right - 0064
exact hQpositive - 0065
specialize gaussian_search_nonunit_norm_two (d) - 0066
specialize gaussian_search_nonunit_norm_two (D) - 0067
apply gaussian_search_nonunit_norm_two - 0068
exact hD - 0069
exact hDpositive - 0070
exact hu - 0071
intro hqzero - 0072
apply hQpositive - 0073
specialize gaussian_code_zero_implies_norm_zero (x) - 0074
specialize gaussian_code_zero_implies_norm_zero (x1) - 0075
apply gaussian_code_zero_implies_norm_zero - 0076
exact hf_witness_witness_right_left - 0077
exact hqzero