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. ∀ b. ∀ c. ∀ d. ∀ e. ∀ l. ∀ i. ∀ p. ∀ q. PrimeFactorList(N,b,c,S l) → Lt(i,l) → BetaAt(b,c,i,p) ∧ (BetaAt(b,c,l,q) ∧ (BetaAt(d,e,i,q) ∧ (BetaAt(d,e,l,p) ∧ (∀ x. ∀ y. Lt(x,S l) → ¬x = i → ¬x = l → BetaAt(b,c,x,y) → BetaAt(d,e,x,y))))) → PrimeFactorList(N,d,e,S l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 65 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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Separate the logical casesL13–14
04Establish hproductL15–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation product exists.
- L15
have hproduct : ∃ Q. Product(d,e,S l,Q)Definitions: Product(d,e,S l,Q)Original native command in the exact edition - L16
specialize factor_permutation_product_exists (d) - L17
specialize factor_permutation_product_exists (e) - L18
specialize factor_permutation_product_exists (S l) - L19
apply factor_permutation_product_exists
05Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hproduct
06Establish hsameL21–21
Establish this local claim before using it. It is not an additional assumption.
- L21
have hsame : N = x
07Separate the logical casesL22–25
08Use earlier factsL26–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
specialize beta_product_swap_last_invariant (b) - L27
specialize beta_product_swap_last_invariant (c) - L28
specialize beta_product_swap_last_invariant (d) - L29
specialize beta_product_swap_last_invariant (e) - L30
specialize beta_product_swap_last_invariant (l) - L31
specialize beta_product_swap_last_invariant (i) - L32
specialize beta_product_swap_last_invariant (p) - L33
specialize beta_product_swap_last_invariant (q) - L34
specialize beta_product_swap_last_invariant (N) - L35
specialize beta_product_swap_last_invariant (x)
09Use earlier factsL36–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
10Establish hxL45–47
11Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
12Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hf_left
13Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
split
14Calculate and transport equalitiesL51–52
15Use earlier factsL53–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
exact hproduct_witness - L54
specialize factor_permutation_swap_all_prime (b) - L55
specialize factor_permutation_swap_all_prime (c) - L56
specialize factor_permutation_swap_all_prime (d) - L57
specialize factor_permutation_swap_all_prime (e) - L58
specialize factor_permutation_swap_all_prime (l) - L59
specialize factor_permutation_swap_all_prime (i) - L60
specialize factor_permutation_swap_all_prime (p) - L61
specialize factor_permutation_swap_all_prime (q) - L62
apply factor_permutation_swap_all_prime
Original defined command ledger · 65 lines
- 0001
intro N - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro l - 0007
intro i - 0008
intro p - 0009
intro q - 0010
intro hf - 0011
intro hi - 0012
intro hs - 0013
cases hf - 0014
cases hf_right - 0015
have hproduct : ∃ Q. Product(d,e,S l,Q) - 0016
specialize factor_permutation_product_exists (d) - 0017
specialize factor_permutation_product_exists (e) - 0018
specialize factor_permutation_product_exists (S l) - 0019
apply factor_permutation_product_exists - 0020
cases hproduct - 0021
have hsame : N = x - 0022
cases hs - 0023
cases hs_right - 0024
cases hs_right_right - 0025
cases hs_right_right_right - 0026
specialize beta_product_swap_last_invariant (b) - 0027
specialize beta_product_swap_last_invariant (c) - 0028
specialize beta_product_swap_last_invariant (d) - 0029
specialize beta_product_swap_last_invariant (e) - 0030
specialize beta_product_swap_last_invariant (l) - 0031
specialize beta_product_swap_last_invariant (i) - 0032
specialize beta_product_swap_last_invariant (p) - 0033
specialize beta_product_swap_last_invariant (q) - 0034
specialize beta_product_swap_last_invariant (N) - 0035
specialize beta_product_swap_last_invariant (x) - 0036
apply beta_product_swap_last_invariant - 0037
exact hi - 0038
exact hs_left - 0039
exact hs_right_left - 0040
exact hs_right_right_left - 0041
exact hs_right_right_right_left - 0042
exact hs_right_right_right_right - 0043
exact hf_right_left - 0044
exact hproduct_witness - 0045
have hx : x = N - 0046
symm - 0047
exact hsame - 0048
split - 0049
exact hf_left - 0050
split - 0051
rewrite hx at hproduct_witness - 0052
rewrite hx at hproduct_witness - 0053
exact hproduct_witness - 0054
specialize factor_permutation_swap_all_prime (b) - 0055
specialize factor_permutation_swap_all_prime (c) - 0056
specialize factor_permutation_swap_all_prime (d) - 0057
specialize factor_permutation_swap_all_prime (e) - 0058
specialize factor_permutation_swap_all_prime (l) - 0059
specialize factor_permutation_swap_all_prime (i) - 0060
specialize factor_permutation_swap_all_prime (p) - 0061
specialize factor_permutation_swap_all_prime (q) - 0062
apply factor_permutation_swap_all_prime - 0063
exact hi - 0064
exact hf_right_right - 0065
exact hs