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.
The original division, gcd, cancellation, and factor-existence foundations are exposed through checked wrappers. Unordered uniqueness adds an actual bounded, injective, surjective index map matching repeated prime occurrences. The empty factor list represents one, not zero.
Exact theorem in conservative defined notation
∀ n. ∀ p. ∀ r. ∀ b. ∀ c. ∀ l. PrimeFactorList(n,b,c,S l) → BetaAt(b,c,l,p) → n = r · p → PrimeFactorList(r,b,c,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 73 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–11
03Establish hdL12–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
- L12
have hd : ∃ q. ∃ R. BetaAt(b,c,l,q) ∧ (Product(b,c,l,R) ∧ n = R · q)Definitions: BetaAt(b,c,l,q)Product(b,c,l,R)Original native command in the exact edition - L13
specialize beta_product_succ_decompose (b) - L14
specialize beta_product_succ_decompose (c) - L15
specialize beta_product_succ_decompose (l) - L16
specialize beta_product_succ_decompose (n) - L17
apply beta_product_succ_decompose - L18
exact hf_right_left
04Separate the logical casesL19–22
05Establish hfactorL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L23
have hfactor : x = p - L24
specialize beta_at_unique (b) - L25
specialize beta_at_unique (c) - L26
specialize beta_at_unique (l) - L27
specialize beta_at_unique (x) - L28
specialize beta_at_unique (p) - L29
apply beta_at_unique - L30
exact hd_witness_witness_left - L31
exact hlast - L32
rewrite hfactor at hd_witness_witness_right_right
06Establish hpzeroL33–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime nonzero.
- L33
have hpzero : ~(p = 0) - L34
intro hzero - L35
specialize prime_nonzero (p) - L36
apply prime_nonzero - L37
specialize factor_permutation_all_prime_entry (b) - L38
specialize factor_permutation_all_prime_entry (c) - L39
specialize factor_permutation_all_prime_entry (S l) - L40
specialize factor_permutation_all_prime_entry (l) - L41
specialize factor_permutation_all_prime_entry (p) - L42
apply factor_permutation_all_prime_entry
07Use earlier factsL43–47
08Establish hquotientL48–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul right cancel nonzero.
09Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
split
10Fix variables and assumptionsL59–59
Work with arbitrary variables or the premises of the current implication.
- L59
intro hrzero
11Use earlier factsL60–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
apply hf_left
12Calculate and transport equalitiesL61–61
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L61
trans r * p
13Use earlier factsL62–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L62
exact heq
14Calculate and transport equalitiesL63–63
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L63
rewrite hrzero
15Use earlier factsL64–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
apply mul_zero_left
16Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
17Calculate and transport equalitiesL66–67
18Use earlier factsL68–73
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original defined command ledger · 73 lines
- 0001
intro n - 0002
intro p - 0003
intro r - 0004
intro b - 0005
intro c - 0006
intro l - 0007
intro hf - 0008
intro hlast - 0009
intro heq - 0010
cases hf - 0011
cases hf_right - 0012
have hd : ∃ q. ∃ R. BetaAt(b,c,l,q) ∧ (Product(b,c,l,R) ∧ n = R · q) - 0013
specialize beta_product_succ_decompose (b) - 0014
specialize beta_product_succ_decompose (c) - 0015
specialize beta_product_succ_decompose (l) - 0016
specialize beta_product_succ_decompose (n) - 0017
apply beta_product_succ_decompose - 0018
exact hf_right_left - 0019
cases hd - 0020
cases hd_witness - 0021
cases hd_witness_witness - 0022
cases hd_witness_witness_right - 0023
have hfactor : x = p - 0024
specialize beta_at_unique (b) - 0025
specialize beta_at_unique (c) - 0026
specialize beta_at_unique (l) - 0027
specialize beta_at_unique (x) - 0028
specialize beta_at_unique (p) - 0029
apply beta_at_unique - 0030
exact hd_witness_witness_left - 0031
exact hlast - 0032
rewrite hfactor at hd_witness_witness_right_right - 0033
have hpzero : ~(p = 0) - 0034
intro hzero - 0035
specialize prime_nonzero (p) - 0036
apply prime_nonzero - 0037
specialize factor_permutation_all_prime_entry (b) - 0038
specialize factor_permutation_all_prime_entry (c) - 0039
specialize factor_permutation_all_prime_entry (S l) - 0040
specialize factor_permutation_all_prime_entry (l) - 0041
specialize factor_permutation_all_prime_entry (p) - 0042
apply factor_permutation_all_prime_entry - 0043
exact hf_right_right - 0044
specialize le_refl (S l) - 0045
apply le_refl - 0046
exact hlast - 0047
exact hzero - 0048
have hquotient : x1 = r - 0049
specialize mul_right_cancel_nonzero (x1) - 0050
specialize mul_right_cancel_nonzero (r) - 0051
specialize mul_right_cancel_nonzero (p) - 0052
apply mul_right_cancel_nonzero - 0053
exact hpzero - 0054
trans n - 0055
symm - 0056
exact hd_witness_witness_right_right - 0057
exact heq - 0058
split - 0059
intro hrzero - 0060
apply hf_left - 0061
trans r * p - 0062
exact heq - 0063
rewrite hrzero - 0064
apply mul_zero_left - 0065
split - 0066
rewrite hquotient at hd_witness_witness_right_left - 0067
rewrite hquotient at hd_witness_witness_right_left - 0068
exact hd_witness_witness_right_left - 0069
specialize all_prime_succ_elim_prefix (b) - 0070
specialize all_prime_succ_elim_prefix (c) - 0071
specialize all_prime_succ_elim_prefix (l) - 0072
apply all_prime_succ_elim_prefix - 0073
exact hf_right_right