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
∀ n. ∀ q. ∀ r. 2 · n = 3 · q + r → ∃ x. q + x = n ∧ Le(2 · n,6 · x)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
1 occurrences
In local proof propositions
10 occurrences
Exact expanded native-PA statement
forall n q r. 2 * n = 3 * q + r -> exists c. ((((q) + (c) = (n)) /\ exists bqb_budget_gap_strong_result. bqb_budget_gap_strong_result + 2 * (n) = 6 * (c)))Proof neighborhood
Direct theorem prerequisites
BT001M mul_le_mul_right BT0013 le_add_right BT000F le_trans BT000C succ_ne_zero BT00RD mul_le_cancel_left_nonzero BT0002 add_comm BT0007 mul_add BT00RE three_mul_eq_two_mul_add_self BT0003 add_assoc BT000V add_left_cancel BT0014 add_le_add_right BT001L mul_le_mul_left BT0008 mul_assocDirect 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 (13)
01Fix variables and assumptionsL1–4
02Establish hcoeffL5–5
Establish this local claim before using it. It is not an additional assumption.
03Construct an explicit witnessL6–6
Supply the displayed value, then prove that it has the required property.
- L6
exists 1
04Calculate and transport equalitiesL7–7
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L7
norm_num
05Establish h23L8–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul right.
06Establish h3rL14–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le add right.
- L14
have h3r : Le(3 · q,3 · q + r)Definitions: Le(3 · q,3 · q + r)Original native command in the exact edition - L15
apply le_add_right
07Establish hpreL16–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le trans.
- L16
have hpre : Le(2 · q,3 · q + r)Definitions: Le(2 · q,3 · q + r)Original native command in the exact edition - L17
specialize le_trans (2 * q) - L18
specialize le_trans (3 * q) - L19
specialize le_trans (3 * q + r) - L20
apply le_trans - L21
exact h23 - L22
exact h3r
08Establish h2nL23–25
Establish this local claim before using it. It is not an additional assumption.
09Establish htwo0L26–30
10Establish hqnL31–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le cancel left nonzero.
11Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases hqn
12Establish hcompL39–42
13Establish hbalanceL43–48
14Establish hthreeqL49–50
15Establish hbalance2L51–55
16Establish hreduceL56–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add left cancel.
17Establish hq2cL62–62
Establish this local claim before using it. It is not an additional assumption.
18Construct an explicit witnessL63–63
Supply the displayed value, then prove that it has the required property.
- L63
exists r
19Calculate and transport equalitiesL64–64
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L64
trans q + r
20Use earlier factsL65–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L65
apply add_comm
21Calculate and transport equalitiesL66–66
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L66
symm
22Use earlier factsL67–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L67
exact hreduce
23Establish hplusL68–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add le add right.
- L68
have hplus : Le(q + x,2 · x + x)Definitions: Le(q + x,2 · x + x)Original native command in the exact edition - L69
specialize add_le_add_right q - L70
specialize add_le_add_right (2 * x) - L71
specialize add_le_add_right x - L72
apply add_le_add_right - L73
exact hq2c
24Establish hthreexL74–75
25Establish hn3cL76–79
Establish this local claim before using it. It is not an additional assumption.
26Establish hscaledL80–82
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul le mul left.
- L80
have hscaled : Le(2 · n,2 · (3 · x))Definitions: Le(2 · n,2 · (3 · x))Original native command in the exact edition - L81
apply mul_le_mul_left - L82
exact hn3c
27Establish hfactorL83–89
28Construct an explicit witnessL90–90
Supply the displayed value, then prove that it has the required property.
- L90
exists x
29Separate the logical casesL91–91
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L91
split
30Use earlier factsL92–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
exact hcomp
31Calculate and transport equalitiesL93–93
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L93
rewrite hfactor at hscaled
32Use earlier factsL94–94
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L94
exact hscaled
Original defined command ledger · 94 lines
- 0001
intro n - 0002
intro q - 0003
intro r - 0004
intro hdiv - 0005
have hcoeff : Lt(1,3)Exact native replay line
have hcoeff : exists k. k + 2 = 3 - 0006
exists 1 - 0007
norm_num - 0008
have h23 : Le(2 · q,3 · q)Exact native replay line
have h23 : exists k. k + 2 * q = 3 * q - 0009
specialize mul_le_mul_right 2 - 0010
specialize mul_le_mul_right 3 - 0011
specialize mul_le_mul_right q - 0012
apply mul_le_mul_right - 0013
exact hcoeff - 0014
have h3r : Le(3 · q,3 · q + r)Exact native replay line
have h3r : exists k. k + 3 * q = 3 * q + r - 0015
apply le_add_right - 0016
have hpre : Le(2 · q,3 · q + r)Exact native replay line
have hpre : exists k. k + 2 * q = 3 * q + r - 0017
specialize le_trans (2 * q) - 0018
specialize le_trans (3 * q) - 0019
specialize le_trans (3 * q + r) - 0020
apply le_trans - 0021
exact h23 - 0022
exact h3r - 0023
have h2n : Le(2 · q,2 · n)Exact native replay line
have h2n : exists k. k + 2 * q = 2 * n - 0024
rewrite hdiv - 0025
exact hpre - 0026
have htwo0 : ~(2 = 0) - 0027
intro hzero - 0028
specialize succ_ne_zero 1 - 0029
apply succ_ne_zero - 0030
exact hzero - 0031
have hqn : Le(q,n)Exact native replay line
have hqn : exists k. k + q = n - 0032
specialize mul_le_cancel_left_nonzero 2 - 0033
specialize mul_le_cancel_left_nonzero q - 0034
specialize mul_le_cancel_left_nonzero n - 0035
apply mul_le_cancel_left_nonzero - 0036
exact htwo0 - 0037
exact h2n - 0038
cases hqn - 0039
have hcomp : q + x = n - 0040
trans x + q - 0041
apply add_comm - 0042
exact hqn_witness - 0043
have hbalance : 2 * q + 2 * x = 3 * q + r - 0044
trans 2 * (q + x) - 0045
symm - 0046
apply mul_add - 0047
rewrite hcomp - 0048
exact hdiv - 0049
have hthreeq : 3 * q = 2 * q + q - 0050
apply three_mul_eq_two_mul_add_self - 0051
have hbalance2 : 2 * q + 2 * x = 2 * q + (q + r) - 0052
trans 3 * q + r - 0053
exact hbalance - 0054
rewrite hthreeq - 0055
apply add_assoc - 0056
have hreduce : 2 * x = q + r - 0057
specialize add_left_cancel (2 * q) - 0058
specialize add_left_cancel (2 * x) - 0059
specialize add_left_cancel (q + r) - 0060
apply add_left_cancel - 0061
exact hbalance2 - 0062
have hq2c : Le(q,2 · x)Exact native replay line
have hq2c : exists k. k + q = 2 * x - 0063
exists r - 0064
trans q + r - 0065
apply add_comm - 0066
symm - 0067
exact hreduce - 0068
have hplus : Le(q + x,2 · x + x)Exact native replay line
have hplus : exists k. k + (q + x) = 2 * x + x - 0069
specialize add_le_add_right q - 0070
specialize add_le_add_right (2 * x) - 0071
specialize add_le_add_right x - 0072
apply add_le_add_right - 0073
exact hq2c - 0074
have hthreex : 3 * x = 2 * x + x - 0075
apply three_mul_eq_two_mul_add_self - 0076
have hn3c : Le(n,3 · x)Exact native replay line
have hn3c : exists k. k + n = 3 * x - 0077
rewrite <- hcomp - 0078
rewrite hthreex - 0079
exact hplus - 0080
have hscaled : Le(2 · n,2 · (3 · x))Exact native replay line
have hscaled : exists k. k + 2 * n = 2 * (3 * x) - 0081
apply mul_le_mul_left - 0082
exact hn3c - 0083
have hfactor : 2 * (3 * x) = 6 * x - 0084
trans (2 * 3) * x - 0085
symm - 0086
apply mul_assoc - 0087
congr - 0088
norm_num - 0089
refl - 0090
exists x - 0091
split - 0092
exact hcomp - 0093
rewrite hfactor at hscaled - 0094
exact hscaled