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.
Statement with defined notation
∀ B. ∀ n. Le(n,B) → ¬n = 0 → ¬n = 1 → ∃ x. Prime(x) ∧ Dvd(x,n)Every purple notation token opens its conservative definition. Expanding the displayed statement recovers the exact first-order Peano-arithmetic formula checked by the unchanged kernel.
Definitions used by this theorem
In the theorem statement
3 occurrences
In local proof propositions
6 occurrences
Exact expanded native-PA statement
forall B n. (exists t. t + n = B) -> ~(n = 0) -> ~(n = 1) -> exists p. ((~(p = 1) /\ forall a b. p = a * b -> a = 1 \/ b = 1) /\ exists k. n = p * k)Proof neighborhood
Direct theorem prerequisites
BT0004 mul_zero_left BT000Y le_zero BT001D lt_of_lt_of_le BT0017 le_of_succ_le_succ BT0028 multiple_refl BT002C multiple_trans BT003F prime_or_composite BT003J proper_factor_ltDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. Every changed line has an exact-AST conservative-expansion receipt; the kernel still receives the immutable original tactic 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 (8)
01Fix variables and assumptionsL1–1
Work with arbitrary variables or the premises of the current implication.
- L1
intro B
02Induction on BL2–6
03Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
exfalso
04Use earlier factsL8–10
05Fix variables and assumptionsL11–14
06Use earlier factsL15–15
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L15
specialize prime_or_composite n
07Establish hpcL16–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime or composite.
08Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hpc
09Construct an explicit witnessL21–21
Supply the displayed value, then prove that it has the required property.
- L21
exists n
10Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
split
11Use earlier factsL23–24
12Separate the logical casesL25–28
13Establish hc0L29–35
14Establish hcnL36–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply proper factor lt.
15Establish hcSBL44–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply lt of lt of le.
16Establish hcBL51–54
17Establish hpL55–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
18Separate the logical casesL60–61
19Construct an explicit witnessL62–62
Supply the displayed value, then prove that it has the required property.
- L62
exists x2
20Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
split
21Use earlier factsL64–68
22Construct an explicit witnessL69–69
Supply the displayed value, then prove that it has the required property.
- L69
exists x1
Original defined command ledger · 71 lines
- 0001
intro B - 0002
induction B - 0003
intro n - 0004
intro hnB - 0005
intro hn0 - 0006
intro hn1 - 0007
exfalso - 0008
apply hn0 - 0009
apply le_zero - 0010
exact hnB - 0011
intro n - 0012
intro hnB - 0013
intro hn0 - 0014
intro hn1 - 0015
specialize prime_or_composite n - 0016
have hpc : Prime(n) ∨ (∃ x. ∃ y. ¬x = 1 ∧ ¬y = 1 ∧ n = x · y)Exact native replay line
have hpc : (~(n = 1) /\ forall a b. n = a * b -> a = 1 \/ b = 1) \/ exists c d. ((~(c = 1) /\ ~(d = 1)) /\ n = c * d) - 0017
apply prime_or_composite - 0018
exact hn0 - 0019
exact hn1 - 0020
cases hpc - 0021
exists n - 0022
split - 0023
exact hpc_left - 0024
apply multiple_refl - 0025
cases hpc_right - 0026
cases hpc_right_witness - 0027
cases hpc_right_witness_witness - 0028
cases hpc_right_witness_witness_left - 0029
have hc0 : ~(x = 0) - 0030
intro hc - 0031
apply hn0 - 0032
trans x * x1 - 0033
exact hpc_right_witness_witness_right - 0034
rewrite hc - 0035
apply mul_zero_left - 0036
have hcn : Lt(x,n)Exact native replay line
have hcn : exists k. k + S x = n - 0037
specialize proper_factor_lt n - 0038
specialize proper_factor_lt x - 0039
specialize proper_factor_lt x1 - 0040
apply proper_factor_lt - 0041
exact hn0 - 0042
exact hpc_right_witness_witness_right - 0043
exact hpc_right_witness_witness_left_right - 0044
have hcSB : Lt(x,S B)Exact native replay line
have hcSB : exists k. k + S x = S B - 0045
specialize lt_of_lt_of_le x - 0046
specialize lt_of_lt_of_le n - 0047
specialize lt_of_lt_of_le (S B) - 0048
apply lt_of_lt_of_le - 0049
exact hcn - 0050
exact hnB - 0051
have hcB : Le(x,B)Exact native replay line
have hcB : exists k. k + x = B - 0052
apply le_of_succ_le_succ - 0053
exact hcSB - 0054
specialize IH x - 0055
have hp : ∃ p. Prime(p) ∧ Dvd(p,x)Exact native replay line
have hp : exists p. ((~(p = 1) /\ forall a b. p = a * b -> a = 1 \/ b = 1) /\ exists k. x = p * k) - 0056
apply IH - 0057
exact hcB - 0058
exact hc0 - 0059
exact hpc_right_witness_witness_left_left - 0060
cases hp - 0061
cases hp_witness - 0062
exists x2 - 0063
split - 0064
exact hp_witness_left - 0065
specialize multiple_trans x - 0066
specialize multiple_trans x2 - 0067
specialize multiple_trans n - 0068
apply multiple_trans - 0069
exists x1 - 0070
exact hpc_right_witness_witness_right - 0071
exact hp_witness_right