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. ∀ c. ∀ l. ∀ n. ∀ i. ∀ p. Lt(i,l) → BetaAt(b,c,i,p) → Product(b,c,l,n) → Dvd(p,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
4 occurrences
In local proof propositions
6 occurrences
Exact expanded native-PA statement
forall b c l n i p. (exists h. h + S i = l) -> ((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) -> (exists u v. (((exists h. h + S 1 = S ((S 0) * v)) /\ exists q. u = q * S ((S 0) * v) + 1) /\ (((exists h. h + S n = S ((S l) * v)) /\ exists q. u = q * S ((S l) * v) + n) /\ forall i. (exists h. h + S i = l) -> exists p r s. (((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) /\ (((exists h. h + S r = S ((S i) * v)) /\ exists q. u = q * S ((S i) * v) + r) /\ (((exists h. h + S s = S ((S S i) * v)) /\ exists q. u = q * S ((S S i) * v) + s) /\ s = r * p)))))) -> exists q. n = p * qProof neighborhood
Direct theorem prerequisites
BT000L add_eq_zero_right BT000C succ_ne_zero BT005J beta_product_succ_decompose BT0017 le_of_succ_le_succ BT001C le_eq_or_lt BT0042 beta_at_unique BT0006 mul_comm BT002A multiple_mul_rightDirect 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–2
02Induction on lL3–9
03Separate the logical casesL10–11
04Establish hsi0L12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add eq zero right.
05Fix variables and assumptionsL22–25
06Establish hdecompL26–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta product succ decompose.
- L26
have hdecomp : ∃ a. ∃ r. BetaAt(b,c,l,a) ∧ (Product(b,c,l,r) ∧ n = r · a)Definitions: BetaAt(b,c,l,a)Product(b,c,l,r)Original native command in the exact edition - L27
specialize beta_product_succ_decompose b - L28
specialize beta_product_succ_decompose c - L29
specialize beta_product_succ_decompose l - L30
specialize beta_product_succ_decompose n - L31
apply beta_product_succ_decompose - L32
exact hproduct
07Separate the logical casesL33–36
08Establish hilL37–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
09Establish hsplitL42–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
10Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
cases hsplit
11Establish hpaL48–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
12Use earlier factsL58–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L58
exact hdecomp_witness_witness_left
13Construct an explicit witnessL59–59
Supply the displayed value, then prove that it has the required property.
- L59
exists x1
14Calculate and transport equalitiesL60–60
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L60
trans x1 * x
15Use earlier factsL61–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L61
exact hdecomp_witness_witness_right_right
16Calculate and transport equalitiesL62–62
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L62
rewrite hpa
17Use earlier factsL63–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
apply mul_comm
18Establish hidivL64–71
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
19Establish hmulL72–77
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply multiple mul right.
20Separate the logical casesL78–78
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L78
cases hmul
21Construct an explicit witnessL79–79
Supply the displayed value, then prove that it has the required property.
- L79
exists x2
22Calculate and transport equalitiesL80–80
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L80
trans x1 * x
Original defined command ledger · 82 lines
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
intro n - 0005
intro i - 0006
intro p - 0007
intro hi - 0008
intro hp - 0009
intro hproduct - 0010
exfalso - 0011
cases hi - 0012
have hsi0 : S i = 0 - 0013
specialize add_eq_zero_right x - 0014
specialize add_eq_zero_right (S i) - 0015
apply add_eq_zero_right - 0016
exact hi_witness - 0017
specialize succ_ne_zero i - 0018
apply succ_ne_zero - 0019
exact hsi0 - 0020
intro n - 0021
intro i - 0022
intro p - 0023
intro hi - 0024
intro hp - 0025
intro hproduct - 0026
have hdecomp : ∃ a. ∃ r. BetaAt(b,c,l,a) ∧ (Product(b,c,l,r) ∧ n = r · a)Exact native replay line
have hdecomp : exists a r. (((exists h. h + S a = S ((S l) * c)) /\ exists q. b = q * S ((S l) * c) + a) /\ ((exists u v. (((exists h. h + S 1 = S ((S 0) * v)) /\ exists q. u = q * S ((S 0) * v) + 1) /\ (((exists h. h + S r = S ((S l) * v)) /\ exists q. u = q * S ((S l) * v) + r) /\ forall i. (exists h. h + S i = l) -> exists p r s. (((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) /\ (((exists h. h + S r = S ((S i) * v)) /\ exists q. u = q * S ((S i) * v) + r) /\ (((exists h. h + S s = S ((S S i) * v)) /\ exists q. u = q * S ((S S i) * v) + s) /\ s = r * p)))))) /\ n = r * a)) - 0027
specialize beta_product_succ_decompose b - 0028
specialize beta_product_succ_decompose c - 0029
specialize beta_product_succ_decompose l - 0030
specialize beta_product_succ_decompose n - 0031
apply beta_product_succ_decompose - 0032
exact hproduct - 0033
cases hdecomp - 0034
cases hdecomp_witness - 0035
cases hdecomp_witness_witness - 0036
cases hdecomp_witness_witness_right - 0037
have hil : Le(i,l)Exact native replay line
have hil : exists h. h + i = l - 0038
specialize le_of_succ_le_succ i - 0039
specialize le_of_succ_le_succ l - 0040
apply le_of_succ_le_succ - 0041
exact hi - 0042
have hsplit : i = l ∨ Lt(i,l)Exact native replay line
have hsplit : i = l \/ exists h. h + S i = l - 0043
specialize le_eq_or_lt i - 0044
specialize le_eq_or_lt l - 0045
apply le_eq_or_lt - 0046
exact hil - 0047
cases hsplit - 0048
have hpa : p = x - 0049
specialize beta_at_unique b - 0050
specialize beta_at_unique c - 0051
specialize beta_at_unique l - 0052
specialize beta_at_unique p - 0053
specialize beta_at_unique x - 0054
apply beta_at_unique - 0055
rewrite hsplit_left at hp - 0056
rewrite hsplit_left at hp - 0057
exact hp - 0058
exact hdecomp_witness_witness_left - 0059
exists x1 - 0060
trans x1 * x - 0061
exact hdecomp_witness_witness_right_right - 0062
rewrite hpa - 0063
apply mul_comm - 0064
have hidiv : Dvd(p,x1)Exact native replay line
have hidiv : exists q. x1 = p * q - 0065
specialize IH x1 - 0066
specialize IH i - 0067
specialize IH p - 0068
apply IH - 0069
exact hsplit_right - 0070
exact hp - 0071
exact hdecomp_witness_witness_right_left - 0072
have hmul : Dvd(p,x1 · x)Exact native replay line
have hmul : exists q. x1 * x = p * q - 0073
specialize multiple_mul_right p - 0074
specialize multiple_mul_right x1 - 0075
specialize multiple_mul_right x - 0076
apply multiple_mul_right - 0077
exact hidiv - 0078
cases hmul - 0079
exists x2 - 0080
trans x1 * x - 0081
exact hdecomp_witness_witness_right_right - 0082
exact hmul_witness