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 p k r a b c d e f g h u v w x. ~(k = 0) -> p * k = (a * a + b * b + c * c + d * d) -> k * r = (e * e + f * f + g * g + h * h) -> ((((a * e) = (b * f + c * g + d * h) + (k * u)) \/ ((b * f + c * g + d * h) = (a * e) + (k * u))) /\ ((((a * f + b * e + c * h) = (d * g) + (k * v)) \/ ((d * g) = (a * f + b * e + c * h) + (k * v))) /\ ((((a * g + c * e + d * f) = (b * h) + (k * w)) \/ ((b * h) = (a * g + c * e + d * f) + (k * w))) /\ (((a * h + b * g + d * e) = (c * f) + (k * x)) \/ ((c * f) = (a * h + b * g + d * e) + (k * x)))))) -> p * r = (u * u + v * v + w * w + x * x)Every purple notation token opens its conservative definition. This reading surface never changes the unchanged intuitionistic kernel or confers checked-use authority.
Definitions used by this theorem
In the theorem statement
In local proof propositions
Exact expanded first-order statement
forall p k r a b c d e f g h u v w x. ~(k = 0) -> p * k = (a * a + b * b + c * c + d * d) -> k * r = (e * e + f * f + g * g + h * h) -> ((((a * e) = (b * f + c * g + d * h) + (k * u)) \/ ((b * f + c * g + d * h) = (a * e) + (k * u))) /\ ((((a * f + b * e + c * h) = (d * g) + (k * v)) \/ ((d * g) = (a * f + b * e + c * h) + (k * v))) /\ ((((a * g + c * e + d * f) = (b * h) + (k * w)) \/ ((b * h) = (a * g + c * e + d * f) + (k * w))) /\ (((a * h + b * g + d * e) = (c * f) + (k * x)) \/ ((c * f) = (a * h + b * g + d * e) + (k * x)))))) -> p * r = (u * u + v * v + w * w + x * x)Proof neighborhood
Direct theorem prerequisites
Direct theorem dependents
Definition-aware tactic body
Only propositions whose conservative expansion has been checked for exact first-order equivalence are compacted. Every changed line retains its immutable exact replay 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.
Named ingredients (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–19
03Establish hnormL20–29
Establish this local claim before using it. It is not an additional assumption.
- L20
have hnorm : (a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + h * h) = ((k * u) * (k * u) + (k * v) * (k * v) + (k * w) * (k * w) + (k * x) * (k * x)) - L21
specialize four_square_euler_quaternion a - L22
specialize four_square_euler_quaternion b - L23
specialize four_square_euler_quaternion c - L24
specialize four_square_euler_quaternion d - L25
specialize four_square_euler_quaternion e - L26
specialize four_square_euler_quaternion f - L27
specialize four_square_euler_quaternion g - L28
specialize four_square_euler_quaternion h - L29
specialize four_square_euler_quaternion (k * u)
04Use earlier factsL30–34
05Calculate and transport equalitiesL35–36
Original defined command ledger · 39 lines
- 0001
intro p - 0002
intro k - 0003
intro r - 0004
intro a - 0005
intro b - 0006
intro c - 0007
intro d - 0008
intro e - 0009
intro f - 0010
intro g - 0011
intro h - 0012
intro u - 0013
intro v - 0014
intro w - 0015
intro x - 0016
intro hnonzero - 0017
intro hfirst - 0018
intro hsecond - 0019
intro hbalances - 0020
have hnorm : (a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + h * h) = ((k * u) * (k * u) + (k * v) * (k * v) + (k * w) * (k * w) + (k * x) * (k * x)) - 0021
specialize four_square_euler_quaternion a - 0022
specialize four_square_euler_quaternion b - 0023
specialize four_square_euler_quaternion c - 0024
specialize four_square_euler_quaternion d - 0025
specialize four_square_euler_quaternion e - 0026
specialize four_square_euler_quaternion f - 0027
specialize four_square_euler_quaternion g - 0028
specialize four_square_euler_quaternion h - 0029
specialize four_square_euler_quaternion (k * u) - 0030
specialize four_square_euler_quaternion (k * v) - 0031
specialize four_square_euler_quaternion (k * w) - 0032
specialize four_square_euler_quaternion (k * x) - 0033
apply four_square_euler_quaternion - 0034
exact hbalances - 0035
rewrite <- hfirst at hnorm - 0036
rewrite <- hsecond at hnorm - 0037
apply four_square_descent_scaled_norm_quotient - 0038
exact hnonzero - 0039
exact hnorm