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. (∀ x. ∀ y. Le(x,B) → n = x · y → x = 1 ∨ y = 1) → (∀ x. n = S B · x → S B = 1 ∨ x = 1) → ∀ x. ∀ y. Le(x,S B) → n = x · y → x = 1 ∨ y = 1Every 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
2 occurrences
In local proof propositions
2 occurrences
Exact expanded native-PA statement
forall B n. (forall c d. (exists k. k + c = B) -> n = c * d -> c = 1 \/ d = 1) -> (forall d. n = S B * d -> S B = 1 \/ d = 1) -> forall c d. (exists k. k + c = S B) -> n = c * d -> c = 1 \/ d = 1Proof neighborhood
Direct theorem prerequisites
Direct 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 (2)
01Fix variables and assumptionsL1–8
02Use earlier factsL9–10
03Establish hsplitL11–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
04Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases hsplit
05Calculate and transport equalitiesL15–15
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L15
rewrite hsplit_left
06Use earlier factsL16–17
07Calculate and transport equalitiesL18–18
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L18
rewrite <- hsplit_left
08Use earlier factsL19–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L19
exact hfac
09Establish hcBL20–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
Original defined command ledger · 27 lines
- 0001
intro B - 0002
intro n - 0003
intro hprev - 0004
intro hboundary - 0005
intro c - 0006
intro d - 0007
intro hc - 0008
intro hfac - 0009
specialize le_eq_or_lt c - 0010
specialize le_eq_or_lt (S B) - 0011
have hsplit : c = S B ∨ Lt(c,S B)Exact native replay line
have hsplit : c = S B \/ exists k. k + S c = S B - 0012
apply le_eq_or_lt - 0013
exact hc - 0014
cases hsplit - 0015
rewrite hsplit_left - 0016
specialize hboundary d - 0017
apply hboundary - 0018
rewrite <- hsplit_left - 0019
exact hfac - 0020
have hcB : Le(c,B)Exact native replay line
have hcB : exists k. k + c = B - 0021
apply le_of_succ_le_succ - 0022
exact hsplit_right - 0023
specialize hprev c - 0024
specialize hprev d - 0025
apply hprev - 0026
exact hcB - 0027
exact hfac