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
forall d x q t c r s u. x = d * q + t -> c * t + r = d * s + u -> c * x + r = d * (c * q + s) + uEvery 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
0 occurrences
In local proof propositions
0 occurrences
Exact expanded native-PA statement
forall d x q t c r s u. x = d * q + t -> c * t + r = d * s + u -> c * x + r = d * (c * q + s) + uProof 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
02Calculate and transport equalitiesL11–11
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L11
rewrite hx
03Establish hdistL12–17
04Establish hassocL18–21
05Establish hfrontL22–31
06Establish hdist2L32–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add assoc.
Original defined command ledger · 39 lines
- 0001
intro d - 0002
intro x - 0003
intro q - 0004
intro t - 0005
intro c - 0006
intro r - 0007
intro s - 0008
intro u - 0009
intro hx - 0010
intro htail - 0011
rewrite hx - 0012
have hdist : c * (d * q + t) = c * (d * q) + c * t - 0013
specialize mul_add c - 0014
specialize mul_add (d * q) - 0015
specialize mul_add t - 0016
exact mul_add - 0017
rewrite hdist - 0018
have hassoc : (c * (d * q) + c * t) + r = c * (d * q) + (c * t + r) - 0019
apply add_assoc - 0020
rewrite hassoc - 0021
rewrite htail - 0022
have hfront : c * (d * q) = d * (c * q) - 0023
trans (c * d) * q - 0024
symm - 0025
apply mul_assoc - 0026
trans (d * c) * q - 0027
congr - 0028
apply mul_comm - 0029
refl - 0030
apply mul_assoc - 0031
rewrite hfront - 0032
have hdist2 : d * (c * q + s) = d * (c * q) + d * s - 0033
specialize mul_add d - 0034
specialize mul_add (c * q) - 0035
specialize mul_add s - 0036
exact mul_add - 0037
rewrite hdist2 - 0038
symm - 0039
apply add_assoc