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
∀ a. ∀ q. ∀ r. ∀ t. ∀ c. ∀ k. ∀ d. r = a · q + t → k = q · r + c → d + a · c = t · r → Le(a · k,r · r)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
0 occurrences
Exact expanded native-PA statement
forall a q r t c k d. r = a * q + t -> k = q * r + c -> d + a * c = t * r -> (exists bqb_le_gap_hj32_linear_square_budget. bqb_le_gap_hj32_linear_square_budget + (a * k) = (r * r))Proof 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.
01Fix variables and assumptionsL1–10
02Construct an explicit witnessL11–11
Supply the displayed value, then prove that it has the required property.
- L11
exists d
03Calculate and transport equalitiesL12–12
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L12
rewrite hk
04Establish hmul_addL13–18
05Establish hassoc_oneL19–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add assoc.
06Establish hcomm_oneL26–30
07Establish hassoc_twoL31–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add assoc.
08Establish hcomm_twoL37–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add comm.
09Establish hmul_assocL43–48
10Establish hadd_mulL49–54
11Establish hcomm_threeL55–61
Original defined command ledger · 61 lines
- 0001
intro a - 0002
intro q - 0003
intro r - 0004
intro t - 0005
intro c - 0006
intro k - 0007
intro d - 0008
intro hr - 0009
intro hk - 0010
intro hd - 0011
exists d - 0012
rewrite hk - 0013
have hmul_add : a * (q * r + c) = a * (q * r) + a * c - 0014
specialize mul_add a - 0015
specialize mul_add (q * r) - 0016
specialize mul_add c - 0017
apply mul_add - 0018
rewrite hmul_add - 0019
have hassoc_one : d + (a * (q * r) + a * c) = (d + a * (q * r)) + a * c - 0020
symm - 0021
specialize add_assoc d - 0022
specialize add_assoc (a * (q * r)) - 0023
specialize add_assoc (a * c) - 0024
apply add_assoc - 0025
rewrite hassoc_one - 0026
have hcomm_one : d + a * (q * r) = a * (q * r) + d - 0027
specialize add_comm d - 0028
specialize add_comm (a * (q * r)) - 0029
apply add_comm - 0030
rewrite hcomm_one - 0031
have hassoc_two : (a * (q * r) + d) + a * c = a * (q * r) + (d + a * c) - 0032
specialize add_assoc (a * (q * r)) - 0033
specialize add_assoc d - 0034
specialize add_assoc (a * c) - 0035
apply add_assoc - 0036
rewrite hassoc_two - 0037
have hcomm_two : a * (q * r) + (d + a * c) = (d + a * c) + a * (q * r) - 0038
specialize add_comm (a * (q * r)) - 0039
specialize add_comm (d + a * c) - 0040
apply add_comm - 0041
rewrite hcomm_two - 0042
rewrite hd - 0043
have hmul_assoc : (a * q) * r = a * (q * r) - 0044
specialize mul_assoc a - 0045
specialize mul_assoc q - 0046
specialize mul_assoc r - 0047
apply mul_assoc - 0048
rewrite <- hmul_assoc - 0049
have hadd_mul : (t + a * q) * r = t * r + (a * q) * r - 0050
specialize add_mul t - 0051
specialize add_mul (a * q) - 0052
specialize add_mul r - 0053
apply add_mul - 0054
rewrite <- hadd_mul - 0055
have hcomm_three : t + a * q = a * q + t - 0056
specialize add_comm t - 0057
specialize add_comm (a * q) - 0058
apply add_comm - 0059
rewrite hcomm_three - 0060
rewrite <- hr - 0061
refl