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
∀ h. ∀ z. ∀ N. ∀ k. ZPairValid(z) → (∃ x. ∃ y. Lt(x,h) ∧ (Lt(y,k) ∧ GProperNormDivisor((x + y) · S (x + y) + (y + y),z,N))) ∨ (∀ x. ∀ y. Lt(x,h) → Lt(y,k) → ¬GProperNormDivisor((x + y) · S (x + y) + (y + y),z,N))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 92 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 (3)
01Induction on hL1–5
02Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
right
03Fix variables and assumptionsL7–11
04Use earlier factsL12–14
05Fix variables and assumptionsL15–18
06Establish hpreviousL19–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L19
have hprevious : (∃ x. ∃ y. Lt(x,h) ∧ (Lt(y,k) ∧ GProperNormDivisor((x + y) · S (x + y) + (y + y),z,N))) ∨ (∀ x. ∀ y. Lt(x,h) → Lt(y,k) → ¬GProperNormDivisor((x + y) · S (x + y) + (y + y),z,N))Definitions: Lt(x,h)Lt(y,k)GProperNormDivisor((x + y) · S (x + y) + (y + y),z,N)Original native command in the exact edition - L20
specialize IH (z) - L21
specialize IH (N) - L22
specialize IH (k) - L23
apply IH - L24
exact hz
07Separate the logical casesL25–30
08Construct an explicit witnessL31–32
09Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
split
10Use earlier factsL34–40
11Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
12Use earlier factsL42–43
13Establish hlastL44–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian factor search coordinate row.
- L44
have hlast : (∃ x. Lt(x,k) ∧ GProperNormDivisor((h + x) · S (h + x) + (x + x),z,N)) ∨ (∀ x. Lt(x,k) → ¬GProperNormDivisor((h + x) · S (h + x) + (x + x),z,N))Definitions: Lt(x,k)GProperNormDivisor((h + x) · S (h + x) + (x + x),z,N)Original native command in the exact edition - L45
specialize gaussian_factor_search_coordinate_row (k) - L46
specialize gaussian_factor_search_coordinate_row (z) - L47
specialize gaussian_factor_search_coordinate_row (N) - L48
specialize gaussian_factor_search_coordinate_row (h) - L49
apply gaussian_factor_search_coordinate_row - L50
exact hz
14Separate the logical casesL51–54
15Construct an explicit witnessL55–56
16Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
split
17Construct an explicit witnessL58–58
Supply the displayed value, then prove that it has the required property.
- L58
exists 0
18Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
apply zero_add
19Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
split
20Use earlier factsL61–62
21Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
right
22Fix variables and assumptionsL64–68
23Establish hcL69–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
24Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
cases hc
25Use earlier factsL75–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
specialize hlast_right (ic) - L76
apply hlast_right - L77
exact hi - L78
specialize gaussian_search_proper_divisor_code_transport (((rc) + (ic)) * S ((rc) + (ic)) + ((ic) + (ic))) - L79
specialize gaussian_search_proper_divisor_code_transport (((h) + (ic)) * S ((h) + (ic)) + ((ic) + (ic))) - L80
specialize gaussian_search_proper_divisor_code_transport (z) - L81
specialize gaussian_search_proper_divisor_code_transport (N) - L82
apply gaussian_search_proper_divisor_code_transport
26Calculate and transport equalitiesL83–85
Original defined command ledger · 92 lines
- 0001
induction h - 0002
intro z - 0003
intro N - 0004
intro k - 0005
intro hz - 0006
right - 0007
intro rc - 0008
intro ic - 0009
intro hr - 0010
intro hi - 0011
intro hp - 0012
specialize gaussian_search_no_index_below_zero (rc) - 0013
apply gaussian_search_no_index_below_zero - 0014
exact hr - 0015
intro z - 0016
intro N - 0017
intro k - 0018
intro hz - 0019
have hprevious : (∃ x. ∃ y. Lt(x,h) ∧ (Lt(y,k) ∧ GProperNormDivisor((x + y) · S (x + y) + (y + y),z,N))) ∨ (∀ x. ∀ y. Lt(x,h) → Lt(y,k) → ¬GProperNormDivisor((x + y) · S (x + y) + (y + y),z,N)) - 0020
specialize IH (z) - 0021
specialize IH (N) - 0022
specialize IH (k) - 0023
apply IH - 0024
exact hz - 0025
cases hprevious - 0026
cases hprevious_left - 0027
cases hprevious_left_witness - 0028
cases hprevious_left_witness_witness - 0029
cases hprevious_left_witness_witness_right - 0030
left - 0031
exists (x) - 0032
exists (x1) - 0033
split - 0034
specialize lt_of_lt_of_le (x) - 0035
specialize lt_of_lt_of_le (h) - 0036
specialize lt_of_lt_of_le (S h) - 0037
apply lt_of_lt_of_le - 0038
exact hprevious_left_witness_witness_left - 0039
specialize le_succ_self (h) - 0040
apply le_succ_self - 0041
split - 0042
exact hprevious_left_witness_witness_right_left - 0043
exact hprevious_left_witness_witness_right_right - 0044
have hlast : (∃ x. Lt(x,k) ∧ GProperNormDivisor((h + x) · S (h + x) + (x + x),z,N)) ∨ (∀ x. Lt(x,k) → ¬GProperNormDivisor((h + x) · S (h + x) + (x + x),z,N)) - 0045
specialize gaussian_factor_search_coordinate_row (k) - 0046
specialize gaussian_factor_search_coordinate_row (z) - 0047
specialize gaussian_factor_search_coordinate_row (N) - 0048
specialize gaussian_factor_search_coordinate_row (h) - 0049
apply gaussian_factor_search_coordinate_row - 0050
exact hz - 0051
cases hlast - 0052
cases hlast_left - 0053
cases hlast_left_witness - 0054
left - 0055
exists (h) - 0056
exists (x) - 0057
split - 0058
exists 0 - 0059
apply zero_add - 0060
split - 0061
exact hlast_left_witness_left - 0062
exact hlast_left_witness_right - 0063
right - 0064
intro rc - 0065
intro ic - 0066
intro hr - 0067
intro hi - 0068
intro hp - 0069
have hc : rc = h ∨ Lt(rc,h) - 0070
specialize finite_lt_succ_eq_or_lt (h) - 0071
specialize finite_lt_succ_eq_or_lt (rc) - 0072
apply finite_lt_succ_eq_or_lt - 0073
exact hr - 0074
cases hc - 0075
specialize hlast_right (ic) - 0076
apply hlast_right - 0077
exact hi - 0078
specialize gaussian_search_proper_divisor_code_transport (((rc) + (ic)) * S ((rc) + (ic)) + ((ic) + (ic))) - 0079
specialize gaussian_search_proper_divisor_code_transport (((h) + (ic)) * S ((h) + (ic)) + ((ic) + (ic))) - 0080
specialize gaussian_search_proper_divisor_code_transport (z) - 0081
specialize gaussian_search_proper_divisor_code_transport (N) - 0082
apply gaussian_search_proper_divisor_code_transport - 0083
rewrite hc_left - 0084
rewrite hc_left - 0085
refl - 0086
exact hp - 0087
specialize hprevious_right (rc) - 0088
specialize hprevious_right (ic) - 0089
apply hprevious_right - 0090
exact hc_right - 0091
exact hi - 0092
exact hp