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. ∀ P. ∀ a. ∀ Q. GProduct(b,c,l,P) → BetaAt(b,c,l,a) → GMul(P,a,Q) → GProduct(b,c,S l,Q)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 123 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–9
02Separate the logical casesL10–13
03Establish hextL14–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
- L14
have hext : ∃ h. ∃ e. BetaAt(h,e,S l,Q) ∧ (∀ y. ∀ z. Lt(y,S l) → BetaAt(x,x1,y,z) → BetaAt(h,e,y,z))Definitions: BetaAt(h,e,S l,Q)Lt(y,S l)BetaAt(x,x1,y,z)BetaAt(h,e,y,z)Original native command in the exact edition - L15
specialize beta_prefix_extend (S l) - L16
specialize beta_prefix_extend (x) - L17
specialize beta_prefix_extend (x1) - L18
specialize beta_prefix_extend (Q) - L19
apply beta_prefix_extend
04Separate the logical casesL20–22
05Establish hlastL23–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hext witness witness right.
- L23
have hlast : BetaAt(x2,x3,l,P)Definitions: BetaAt(x2,x3,l,P)Original native command in the exact edition - L24
specialize hext_witness_witness_right (l) - L25
specialize hext_witness_witness_right (P) - L26
apply hext_witness_witness_right - L27
specialize le_refl (S l) - L28
apply le_refl - L29
exact hp_witness_witness_right_left
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–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
09Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
10Use earlier factsL43–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hext_witness_witness_left
11Fix variables and assumptionsL44–45
12Establish hcL46–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
13Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
cases hc
14Construct an explicit witnessL52–54
15Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
16Use earlier factsL56–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
specialize gaussian_product_beta_index_transport (b) - L57
specialize gaussian_product_beta_index_transport (c) - L58
specialize gaussian_product_beta_index_transport (l) - L59
specialize gaussian_product_beta_index_transport (i) - L60
specialize gaussian_product_beta_index_transport (a) - L61
apply gaussian_product_beta_index_transport
17Calculate and transport equalitiesL62–62
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L62
symm
18Use earlier factsL63–64
19Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
20Use earlier factsL66–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
specialize gaussian_product_beta_index_transport (x2) - L67
specialize gaussian_product_beta_index_transport (x3) - L68
specialize gaussian_product_beta_index_transport (l) - L69
specialize gaussian_product_beta_index_transport (i) - L70
specialize gaussian_product_beta_index_transport (P) - L71
apply gaussian_product_beta_index_transport
21Calculate and transport equalitiesL72–72
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L72
symm
22Use earlier factsL73–74
23Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
split
24Use earlier factsL76–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
specialize gaussian_product_beta_index_transport (x2) - L77
specialize gaussian_product_beta_index_transport (x3) - L78
specialize gaussian_product_beta_index_transport (S l) - L79
specialize gaussian_product_beta_index_transport (S i) - L80
specialize gaussian_product_beta_index_transport (Q) - L81
apply gaussian_product_beta_index_transport
25Calculate and transport equalitiesL82–83
26Use earlier factsL84–86
27Establish hsL87–90
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hp witness witness right right.
- L87
have hs : GProductStep(b,c,x,x1,i)Definitions: GProductStep(b,c,x,x1,i)Original native command in the exact edition - L88
specialize hp_witness_witness_right_right (i) - L89
apply hp_witness_witness_right_right - L90
exact hc_right
28Separate the logical casesL91–96
29Construct an explicit witnessL97–99
30Separate the logical casesL100–100
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L100
split
31Use earlier factsL101–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L101
exact hs_witness_witness_witness_left
32Separate the logical casesL102–102
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L102
split
33Use earlier factsL103–112
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
specialize hext_witness_witness_right (i) - L104
specialize hext_witness_witness_right (x5) - L105
apply hext_witness_witness_right - L106
specialize lt_of_lt_of_le (i) - L107
specialize lt_of_lt_of_le (l) - L108
specialize lt_of_lt_of_le (S l) - L109
apply lt_of_lt_of_le - L110
exact hc_right - L111
specialize le_succ_self (l) - L112
apply le_succ_self
34Use earlier factsL113–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L113
exact hs_witness_witness_witness_right_left
35Separate the logical casesL114–114
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L114
split
36Use earlier factsL115–123
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L115
specialize hext_witness_witness_right (S i) - L116
specialize hext_witness_witness_right (x6) - L117
apply hext_witness_witness_right - L118
specialize succ_le_succ (S i) - L119
specialize succ_le_succ (l) - L120
apply succ_le_succ - L121
exact hc_right - L122
exact hs_witness_witness_witness_right_right_left - L123
exact hs_witness_witness_witness_right_right_right
Original defined command ledger · 123 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro P - 0005
intro a - 0006
intro Q - 0007
intro hp - 0008
intro ha - 0009
intro hm - 0010
cases hp - 0011
cases hp_witness - 0012
cases hp_witness_witness - 0013
cases hp_witness_witness_right - 0014
have hext : ∃ h. ∃ e. BetaAt(h,e,S l,Q) ∧ (∀ y. ∀ z. Lt(y,S l) → BetaAt(x,x1,y,z) → BetaAt(h,e,y,z)) - 0015
specialize beta_prefix_extend (S l) - 0016
specialize beta_prefix_extend (x) - 0017
specialize beta_prefix_extend (x1) - 0018
specialize beta_prefix_extend (Q) - 0019
apply beta_prefix_extend - 0020
cases hext - 0021
cases hext_witness - 0022
cases hext_witness_witness - 0023
have hlast : BetaAt(x2,x3,l,P) - 0024
specialize hext_witness_witness_right (l) - 0025
specialize hext_witness_witness_right (P) - 0026
apply hext_witness_witness_right - 0027
specialize le_refl (S l) - 0028
apply le_refl - 0029
exact hp_witness_witness_right_left - 0030
exists (x2) - 0031
exists (x3) - 0032
split - 0033
specialize hext_witness_witness_right (0) - 0034
specialize hext_witness_witness_right (6) - 0035
apply hext_witness_witness_right - 0036
specialize succ_le_succ (0) - 0037
specialize succ_le_succ (l) - 0038
apply succ_le_succ - 0039
specialize zero_le (l) - 0040
apply zero_le - 0041
exact hp_witness_witness_left - 0042
split - 0043
exact hext_witness_witness_left - 0044
intro i - 0045
intro hi - 0046
have hc : i = l ∨ Lt(i,l) - 0047
specialize finite_lt_succ_eq_or_lt (l) - 0048
specialize finite_lt_succ_eq_or_lt (i) - 0049
apply finite_lt_succ_eq_or_lt - 0050
exact hi - 0051
cases hc - 0052
exists (a) - 0053
exists (P) - 0054
exists (Q) - 0055
split - 0056
specialize gaussian_product_beta_index_transport (b) - 0057
specialize gaussian_product_beta_index_transport (c) - 0058
specialize gaussian_product_beta_index_transport (l) - 0059
specialize gaussian_product_beta_index_transport (i) - 0060
specialize gaussian_product_beta_index_transport (a) - 0061
apply gaussian_product_beta_index_transport - 0062
symm - 0063
exact hc_left - 0064
exact ha - 0065
split - 0066
specialize gaussian_product_beta_index_transport (x2) - 0067
specialize gaussian_product_beta_index_transport (x3) - 0068
specialize gaussian_product_beta_index_transport (l) - 0069
specialize gaussian_product_beta_index_transport (i) - 0070
specialize gaussian_product_beta_index_transport (P) - 0071
apply gaussian_product_beta_index_transport - 0072
symm - 0073
exact hc_left - 0074
exact hlast - 0075
split - 0076
specialize gaussian_product_beta_index_transport (x2) - 0077
specialize gaussian_product_beta_index_transport (x3) - 0078
specialize gaussian_product_beta_index_transport (S l) - 0079
specialize gaussian_product_beta_index_transport (S i) - 0080
specialize gaussian_product_beta_index_transport (Q) - 0081
apply gaussian_product_beta_index_transport - 0082
congr - 0083
symm - 0084
exact hc_left - 0085
exact hext_witness_witness_left - 0086
exact hm - 0087
have hs : GProductStep(b,c,x,x1,i) - 0088
specialize hp_witness_witness_right_right (i) - 0089
apply hp_witness_witness_right_right - 0090
exact hc_right - 0091
cases hs - 0092
cases hs_witness - 0093
cases hs_witness_witness - 0094
cases hs_witness_witness_witness - 0095
cases hs_witness_witness_witness_right - 0096
cases hs_witness_witness_witness_right_right - 0097
exists (x4) - 0098
exists (x5) - 0099
exists (x6) - 0100
split - 0101
exact hs_witness_witness_witness_left - 0102
split - 0103
specialize hext_witness_witness_right (i) - 0104
specialize hext_witness_witness_right (x5) - 0105
apply hext_witness_witness_right - 0106
specialize lt_of_lt_of_le (i) - 0107
specialize lt_of_lt_of_le (l) - 0108
specialize lt_of_lt_of_le (S l) - 0109
apply lt_of_lt_of_le - 0110
exact hc_right - 0111
specialize le_succ_self (l) - 0112
apply le_succ_self - 0113
exact hs_witness_witness_witness_right_left - 0114
split - 0115
specialize hext_witness_witness_right (S i) - 0116
specialize hext_witness_witness_right (x6) - 0117
apply hext_witness_witness_right - 0118
specialize succ_le_succ (S i) - 0119
specialize succ_le_succ (l) - 0120
apply succ_le_succ - 0121
exact hc_right - 0122
exact hs_witness_witness_witness_right_right_left - 0123
exact hs_witness_witness_witness_right_right_right