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
∀ k. ∀ z. ∀ N. ∀ rc. ZPairValid(z) → (∃ x. Lt(x,k) ∧ GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N)) ∨ (∀ x. Lt(x,k) → ¬GProperNormDivisor((rc + x) · S (rc + x) + (x + x),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 78 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)
01Induction on kL1–5
02Separate the logical casesL6–6
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L6
right
03Fix variables and assumptionsL7–9
04Use earlier factsL10–12
05Fix variables and assumptionsL13–16
06Establish hpreviousL17–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L17
have hprevious : (∃ x. Lt(x,k) ∧ GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N)) ∨ (∀ x. Lt(x,k) → ¬GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N))Definitions: Lt(x,k)GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N)Original native command in the exact edition - L18
specialize IH (z) - L19
specialize IH (N) - L20
specialize IH (rc) - L21
apply IH - L22
exact hz
07Separate the logical casesL23–26
08Construct an explicit witnessL27–27
Supply the displayed value, then prove that it has the required property.
- L27
exists (x)
09Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
split
10Use earlier factsL29–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
11Establish hlastL37–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian proper norm divisor decidable.
- L37
have hlast : GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N) ∨ ¬GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N)Definitions: GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N)Original native command in the exact edition - L38
specialize gaussian_proper_norm_divisor_decidable (((rc) + (k)) * S ((rc) + (k)) + ((k) + (k))) - L39
specialize gaussian_proper_norm_divisor_decidable (z) - L40
specialize gaussian_proper_norm_divisor_decidable (N) - L41
apply gaussian_proper_norm_divisor_decidable - L42
specialize gaussian_search_pair_valid (rc) - L43
specialize gaussian_search_pair_valid (k) - L44
apply gaussian_search_pair_valid - L45
exact hz
12Separate the logical casesL46–47
13Construct an explicit witnessL48–48
Supply the displayed value, then prove that it has the required property.
- L48
exists (k)
14Separate the logical casesL49–49
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L49
split
15Construct an explicit witnessL50–50
Supply the displayed value, then prove that it has the required property.
- L50
exists 0
16Use earlier factsL51–52
17Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
right
18Fix variables and assumptionsL54–56
19Establish hcL57–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
20Separate the logical casesL62–62
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L62
cases hc
21Use earlier factsL63–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
apply hlast_right - L64
specialize gaussian_search_proper_divisor_code_transport (((rc) + (ic)) * S ((rc) + (ic)) + ((ic) + (ic))) - L65
specialize gaussian_search_proper_divisor_code_transport (((rc) + (k)) * S ((rc) + (k)) + ((k) + (k))) - L66
specialize gaussian_search_proper_divisor_code_transport (z) - L67
specialize gaussian_search_proper_divisor_code_transport (N) - L68
apply gaussian_search_proper_divisor_code_transport
22Calculate and transport equalitiesL69–73
Original defined command ledger · 78 lines
- 0001
induction k - 0002
intro z - 0003
intro N - 0004
intro rc - 0005
intro hz - 0006
right - 0007
intro ic - 0008
intro hi - 0009
intro hp - 0010
specialize gaussian_search_no_index_below_zero (ic) - 0011
apply gaussian_search_no_index_below_zero - 0012
exact hi - 0013
intro z - 0014
intro N - 0015
intro rc - 0016
intro hz - 0017
have hprevious : (∃ x. Lt(x,k) ∧ GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N)) ∨ (∀ x. Lt(x,k) → ¬GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N)) - 0018
specialize IH (z) - 0019
specialize IH (N) - 0020
specialize IH (rc) - 0021
apply IH - 0022
exact hz - 0023
cases hprevious - 0024
cases hprevious_left - 0025
cases hprevious_left_witness - 0026
left - 0027
exists (x) - 0028
split - 0029
specialize lt_of_lt_of_le (x) - 0030
specialize lt_of_lt_of_le (k) - 0031
specialize lt_of_lt_of_le (S k) - 0032
apply lt_of_lt_of_le - 0033
exact hprevious_left_witness_left - 0034
specialize le_succ_self (k) - 0035
apply le_succ_self - 0036
exact hprevious_left_witness_right - 0037
have hlast : GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N) ∨ ¬GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N) - 0038
specialize gaussian_proper_norm_divisor_decidable (((rc) + (k)) * S ((rc) + (k)) + ((k) + (k))) - 0039
specialize gaussian_proper_norm_divisor_decidable (z) - 0040
specialize gaussian_proper_norm_divisor_decidable (N) - 0041
apply gaussian_proper_norm_divisor_decidable - 0042
specialize gaussian_search_pair_valid (rc) - 0043
specialize gaussian_search_pair_valid (k) - 0044
apply gaussian_search_pair_valid - 0045
exact hz - 0046
cases hlast - 0047
left - 0048
exists (k) - 0049
split - 0050
exists 0 - 0051
apply zero_add - 0052
exact hlast_left - 0053
right - 0054
intro ic - 0055
intro hi - 0056
intro hp - 0057
have hc : ic = k ∨ Lt(ic,k) - 0058
specialize finite_lt_succ_eq_or_lt (k) - 0059
specialize finite_lt_succ_eq_or_lt (ic) - 0060
apply finite_lt_succ_eq_or_lt - 0061
exact hi - 0062
cases hc - 0063
apply hlast_right - 0064
specialize gaussian_search_proper_divisor_code_transport (((rc) + (ic)) * S ((rc) + (ic)) + ((ic) + (ic))) - 0065
specialize gaussian_search_proper_divisor_code_transport (((rc) + (k)) * S ((rc) + (k)) + ((k) + (k))) - 0066
specialize gaussian_search_proper_divisor_code_transport (z) - 0067
specialize gaussian_search_proper_divisor_code_transport (N) - 0068
apply gaussian_search_proper_divisor_code_transport - 0069
rewrite hc_left - 0070
rewrite hc_left - 0071
rewrite hc_left - 0072
rewrite hc_left - 0073
refl - 0074
exact hp - 0075
specialize hprevious_right (ic) - 0076
apply hprevious_right - 0077
exact hc_right - 0078
exact hp