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 a z q r. z = a * q + r -> z * z = a * (q * z + r * q) + r * rEvery purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
0 occurrences
In local proof propositions
0 occurrences
Exact expanded native-PA statement
forall a z q r. z = a * q + r -> z * z = a * (q * z + r * q) + r * rProof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
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–5
02Calculate and transport equalitiesL6–7
03Use earlier factsL8–8
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L8
exact hz
04Calculate and transport equalitiesL9–10
05Use earlier factsL11–11
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L11
apply add_mul
06Calculate and transport equalitiesL12–13
07Use earlier factsL14–14
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L14
apply mul_assoc
08Calculate and transport equalitiesL15–20
09Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact hz
10Calculate and transport equalitiesL22–24
11Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
apply mul_add
12Calculate and transport equalitiesL26–31
13Use earlier factsL32–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
apply mul_assoc
14Calculate and transport equalitiesL33–34
15Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
apply mul_comm
16Calculate and transport equalitiesL36–36
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L36
refl
17Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
apply mul_assoc
18Calculate and transport equalitiesL38–40
19Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
apply add_assoc
20Calculate and transport equalitiesL42–43
21Use earlier factsL44–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L44
apply mul_add
22Calculate and transport equalitiesL45–45
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L45
refl
Original defined command ledger · 45 lines
- 0001
intro a - 0002
intro z - 0003
intro q - 0004
intro r - 0005
intro hz - 0006
trans (a * q + r) * z - 0007
congr - 0008
exact hz - 0009
refl - 0010
trans (a * q) * z + r * z - 0011
apply add_mul - 0012
trans a * (q * z) + r * z - 0013
congr - 0014
apply mul_assoc - 0015
refl - 0016
trans a * (q * z) + r * (a * q + r) - 0017
congr - 0018
refl - 0019
congr - 0020
refl - 0021
exact hz - 0022
trans a * (q * z) + (r * (a * q) + r * r) - 0023
congr - 0024
refl - 0025
apply mul_add - 0026
trans a * (q * z) + (a * (r * q) + r * r) - 0027
congr - 0028
refl - 0029
congr - 0030
trans (r * a) * q - 0031
symm - 0032
apply mul_assoc - 0033
trans (a * r) * q - 0034
congr - 0035
apply mul_comm - 0036
refl - 0037
apply mul_assoc - 0038
refl - 0039
trans (a * (q * z) + a * (r * q)) + r * r - 0040
symm - 0041
apply add_assoc - 0042
congr - 0043
symm - 0044
apply mul_add - 0045
refl