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. ∀ b. Le(b,B) → ∀ x. ∃ y. IsGCD(y,x,b)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
2 occurrences
In local proof propositions
7 occurrences
Exact expanded native-PA statement
forall B b. (exists t. t + b = B) -> forall a. exists d. (((exists x. a = d * x) /\ (exists y. b = d * y)) /\ forall c. (exists u. a = c * u) -> (exists v. b = c * v) -> exists w. d = c * w)Proof neighborhood
Direct theorem prerequisites
BT0028 multiple_refl BT000Y le_zero BT001C le_eq_or_lt BT0017 le_of_succ_le_succ BT001P division_remainder_exists BT002S is_gcd_euclid_forwardDirect 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 (6)
01Fix variables and assumptionsL1–1
Work with arbitrary variables or the premises of the current implication.
- L1
intro B
02Induction on BL2–5
03Establish hb0L6–8
04Construct an explicit witnessL9–9
Supply the displayed value, then prove that it has the required property.
- L9
exists a
05Separate the logical casesL10–11
06Use earlier factsL12–13
07Construct an explicit witnessL14–14
Supply the displayed value, then prove that it has the required property.
- L14
exists 0
08Calculate and transport equalitiesL15–15
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L15
trans 0
09Use earlier factsL16–16
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
exact hb0
10Calculate and transport equalitiesL17–17
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L17
symm
11Use earlier factsL18–18
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L18
apply PA5
12Fix variables and assumptionsL19–21
13Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
exact hca
14Fix variables and assumptionsL23–25
15Use earlier factsL26–27
16Establish hsplitL28–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
17Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hsplit
18Establish hb0L32–38
19Establish hdivL39–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
- L39
have hdiv : ∃ q. ∃ r. DivRem(a,b,q,r)Definitions: DivRem(a,b,q,r)Original native command in the exact edition - L40
apply division_remainder_exists - L41
exact hb0
20Separate the logical casesL42–44
21Establish hrBL45–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
22Establish hsmallL49–50
Establish this local claim before using it. It is not an additional assumption.
- L49
have hsmall : ∃ d. IsGCD(d,b,x1)Definitions: IsGCD(d,b,x1)Original native command in the exact edition - L50
specialize IH x1
23Establish hallL51–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L51
have hall : ∀ z. ∃ d. IsGCD(d,z,x1)Definitions: IsGCD(d,z,x1)Original native command in the exact edition - L52
apply IH - L53
exact hrB - L54
specialize hall b - L55
exact hall
24Separate the logical casesL56–56
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L56
cases hsmall
25Construct an explicit witnessL57–57
Supply the displayed value, then prove that it has the required property.
- L57
exists x2
26Use earlier factsL58–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
27Establish hbBL66–69
28Establish hallL70–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L70
have hall : ∀ z. ∃ d. IsGCD(d,z,b)Definitions: IsGCD(d,z,b)Original native command in the exact edition - L71
apply IH - L72
exact hbB - L73
specialize hall a - L74
exact hall
Original defined command ledger · 74 lines
- 0001
intro B - 0002
induction B - 0003
intro b - 0004
intro hb - 0005
intro a - 0006
have hb0 : b = 0 - 0007
apply le_zero - 0008
exact hb - 0009
exists a - 0010
split - 0011
split - 0012
specialize multiple_refl a - 0013
exact multiple_refl - 0014
exists 0 - 0015
trans 0 - 0016
exact hb0 - 0017
symm - 0018
apply PA5 - 0019
intro c - 0020
intro hca - 0021
intro hcb - 0022
exact hca - 0023
intro b - 0024
intro hb - 0025
intro a - 0026
specialize le_eq_or_lt b - 0027
specialize le_eq_or_lt (S B) - 0028
have hsplit : b = S B ∨ Lt(b,S B)Exact native replay line
have hsplit : b = S B \/ exists k. k + S b = S B - 0029
apply le_eq_or_lt - 0030
exact hb - 0031
cases hsplit - 0032
have hb0 : ~(b = 0) - 0033
intro hzero - 0034
apply PA1 - 0035
trans b - 0036
symm - 0037
exact hsplit_left - 0038
exact hzero - 0039
have hdiv : ∃ q. ∃ r. DivRem(a,b,q,r)Exact native replay line
have hdiv : exists q r. a = b * q + r /\ exists k. k + S r = b - 0040
apply division_remainder_exists - 0041
exact hb0 - 0042
cases hdiv - 0043
cases hdiv_witness - 0044
cases hdiv_witness_witness - 0045
have hrB : Le(x1,B)Exact native replay line
have hrB : exists k. k + x1 = B - 0046
apply le_of_succ_le_succ - 0047
rewrite hsplit_left at hdiv_witness_witness_right - 0048
exact hdiv_witness_witness_right - 0049
have hsmall : ∃ d. IsGCD(d,b,x1)Exact native replay line
have hsmall : exists d. (((exists u. b = d * u) /\ (exists v. x1 = d * v)) /\ forall c. (exists s. b = c * s) -> (exists t. x1 = c * t) -> exists w. d = c * w) - 0050
specialize IH x1 - 0051
have hall : ∀ z. ∃ d. IsGCD(d,z,x1)Exact native replay line
have hall : forall z. exists d. (((exists u. z = d * u) /\ (exists v. x1 = d * v)) /\ forall c. (exists s. z = c * s) -> (exists t. x1 = c * t) -> exists w. d = c * w) - 0052
apply IH - 0053
exact hrB - 0054
specialize hall b - 0055
exact hall - 0056
cases hsmall - 0057
exists x2 - 0058
specialize is_gcd_euclid_forward x2 - 0059
specialize is_gcd_euclid_forward a - 0060
specialize is_gcd_euclid_forward b - 0061
specialize is_gcd_euclid_forward x - 0062
specialize is_gcd_euclid_forward x1 - 0063
apply is_gcd_euclid_forward - 0064
exact hdiv_witness_witness_left - 0065
exact hsmall_witness - 0066
have hbB : Le(b,B)Exact native replay line
have hbB : exists k. k + b = B - 0067
apply le_of_succ_le_succ - 0068
exact hsplit_right - 0069
specialize IH b - 0070
have hall : ∀ z. ∃ d. IsGCD(d,z,b)Exact native replay line
have hall : forall z. exists d. (((exists u. z = d * u) /\ (exists v. b = d * v)) /\ forall c. (exists s. z = c * s) -> (exists t. b = c * t) -> exists w. d = c * w) - 0071
apply IH - 0072
exact hbB - 0073
specialize hall a - 0074
exact hall