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
∀ p. ∀ k. ∀ h. ∀ a. ∀ b. ∀ c. ∀ d. ∀ e. ∀ f. ∀ g. ∀ j. ∀ r. ¬k = 0 → k = 2 · h + 1 → p · k = a · a + b · b + c · c + d · d → ModEq(k,a,e) → ModEq(k,b,f) → ModEq(k,c + g,0) → ModEq(k,d,j) → k · r = e · e + f · f + g · g + j · j → ∃ x. ∃ y. ∃ z. ∃ n. p · r = x · x + y · y + z · z + n · nEvery 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 h a b c d e f g j r. ~(k = 0) -> k = 2 * h + 1 -> p * k = a * a + b * b + c * c + d * d -> (exists ftcn_left_mask_4_0 ftcn_right_mask_4_0. (a) + (k) * ftcn_left_mask_4_0 = (e) + (k) * ftcn_right_mask_4_0) -> (exists ftcn_left_mask_4_1 ftcn_right_mask_4_1. (b) + (k) * ftcn_left_mask_4_1 = (f) + (k) * ftcn_right_mask_4_1) -> (exists ftcn_left_mask_4_2 ftcn_right_mask_4_2. (c + g) + (k) * ftcn_left_mask_4_2 = (0) + (k) * ftcn_right_mask_4_2) -> (exists ftcn_left_mask_4_3 ftcn_right_mask_4_3. (d) + (k) * ftcn_left_mask_4_3 = (j) + (k) * ftcn_right_mask_4_3) -> k * r = e * e + f * f + g * g + j * j -> (exists fsl_a_fssc_mask_4 fsl_b_fssc_mask_4 fsl_c_fssc_mask_4 fsl_d_fssc_mask_4. (p * r) = fsl_a_fssc_mask_4 * fsl_a_fssc_mask_4 + fsl_b_fssc_mask_4 * fsl_b_fssc_mask_4 + fsl_c_fssc_mask_4 * fsl_c_fssc_mask_4 + fsl_d_fssc_mask_4 * fsl_d_fssc_mask_4)Proof neighborhood
Direct theorem prerequisites
FS004P four_square_signed_cases_norm_quotient_zero_congruence FS0060 four_square_signed_natural_negative_first_blocks FS0057 four_square_signed_absolute_block_representation add_assoc · Stable closed add_comm · Stable closed FS0006 four_square_add_swap_right_tail FS0005 quaternion_coordinate_absolute_total FS002Y four_square_euler_quaternionDirect 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 (6)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Establish hfirst_permutedL21–30
Establish this local claim before using it. It is not an additional assumption.
- L21
have hfirst_permuted : p * k = c * c + a * a + b * b + d * d - L22
trans a * a + b * b + c * c + d * d - L23
exact hfirst - L24
trans ((a * a) + ((b * b) + ((c * c) + (d * d)))) - L25
simp [add_assoc] - L26
trans ((c * c) + ((a * a) + ((b * b) + (d * d)))) - L27
trans ((c * c) + ((a * a) + ((b * b) + (d * d)))) - L28
trans ((a * a) + ((c * c) + ((b * b) + (d * d)))) - L29
congr - L30
refl
04Use earlier factsL31–32
05Calculate and transport equalitiesL33–37
06Establish hcenter_permutedL38–47
Establish this local claim before using it. It is not an additional assumption.
- L38
have hcenter_permuted : k * r = g * g + e * e + f * f + j * j - L39
trans e * e + f * f + g * g + j * j - L40
exact hcenter - L41
trans ((e * e) + ((f * f) + ((g * g) + (j * j)))) - L42
simp [add_assoc] - L43
trans ((g * g) + ((e * e) + ((f * f) + (j * j)))) - L44
trans ((g * g) + ((e * e) + ((f * f) + (j * j)))) - L45
trans ((e * e) + ((g * g) + ((f * f) + (j * j)))) - L46
congr - L47
refl
07Use earlier factsL48–49
08Calculate and transport equalitiesL50–54
09Establish hzeroL55–63
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed cases norm quotient zero congruence.
- L55
have hzero : ModEq(k,g · g + e · e + f · f + j · j,0)Definitions: ModEq(k,g · g + e · e + f · f + j · j,0)Original native command in the exact edition - L56
specialize four_square_signed_cases_norm_quotient_zero_congruence k - L57
specialize four_square_signed_cases_norm_quotient_zero_congruence r - L58
specialize four_square_signed_cases_norm_quotient_zero_congruence g - L59
specialize four_square_signed_cases_norm_quotient_zero_congruence e - L60
specialize four_square_signed_cases_norm_quotient_zero_congruence f - L61
specialize four_square_signed_cases_norm_quotient_zero_congruence j - L62
apply four_square_signed_cases_norm_quotient_zero_congruence - L63
exact hcenter_permuted
10Establish hblocksL64–73
Establish this local claim before using it. It is not an additional assumption.
- L64
have hblocks : ModEq(k,c · g,a · e + b · f + d · j) ∧ (ModEq(k,c · e + a · g + b · j,d · f) ∧ (ModEq(k,c · f + b · g + d · e,a · j) ∧ ModEq(k,c · j + a · f + d · g,b · e)))Definitions: ModEq(k,c · g,a · e + b · f + d · j)ModEq(k,c · e + a · g + b · j,d · f)ModEq(k,c · f + b · g + d · e,a · j)ModEq(k,c · j + a · f + d · g,b · e)Original native command in the exact edition - L65
specialize four_square_signed_natural_negative_first_blocks k - L66
specialize four_square_signed_natural_negative_first_blocks c - L67
specialize four_square_signed_natural_negative_first_blocks a - L68
specialize four_square_signed_natural_negative_first_blocks b - L69
specialize four_square_signed_natural_negative_first_blocks d - L70
specialize four_square_signed_natural_negative_first_blocks g - L71
specialize four_square_signed_natural_negative_first_blocks e - L72
specialize four_square_signed_natural_negative_first_blocks f - L73
specialize four_square_signed_natural_negative_first_blocks j
11Use earlier factsL74–79
12Establish hcoordinatesL80–89
Establish this local claim before using it. It is not an additional assumption.
- L80
have hcoordinates : exists m0 m1 m2 m3. ((((c * g) = (a * e + b * f + d * j) + m0) \/ ((a * e + b * f + d * j) = (c * g) + m0)) /\ ((((c * e + a * g + b * j) = (d * f) + m1) \/ ((d * f) = (c * e + a * g + b * j) + m1)) /\ ((((c * f + b * g + d * e) = (a * j) + m2) \/ ((a * j) = (c * f + b * g + d * e) + m2)) /\ (((c * j + a * f + d * g) = (b * e) + m3) \/ ((b * e) = (c * j + a * f + d * g) + m3))))) - L81
specialize quaternion_coordinate_absolute_total c - L82
specialize quaternion_coordinate_absolute_total a - L83
specialize quaternion_coordinate_absolute_total b - L84
specialize quaternion_coordinate_absolute_total d - L85
specialize quaternion_coordinate_absolute_total g - L86
specialize quaternion_coordinate_absolute_total e - L87
specialize quaternion_coordinate_absolute_total f - L88
specialize quaternion_coordinate_absolute_total j - L89
exact quaternion_coordinate_absolute_total
13Separate the logical casesL90–93
14Establish habsoluteL94–95
Establish this local claim before using it. It is not an additional assumption.
- L94
have habsolute : ((((c * g) = (a * e + b * f + d * j) + x) \/ ((a * e + b * f + d * j) = (c * g) + x)) /\ ((((c * e + a * g + b * j) = (d * f) + x1) \/ ((d * f) = (c * e + a * g + b * j) + x1)) /\ ((((c * f + b * g + d * e) = (a * j) + x2) \/ ((a * j) = (c * f + b * g + d * e) + x2)) /\ (((c * j + a * f + d * g) = (b * e) + x3) \/ ((b * e) = (c * j + a * f + d * g) + x3))))) - L95
exact hcoordinates_witness_witness_witness_witness
15Establish hidentityL96–105
Establish this local claim before using it. It is not an additional assumption.
- L96
have hidentity : (c * c + a * a + b * b + d * d) * (g * g + e * e + f * f + j * j) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - L97
specialize four_square_euler_quaternion c - L98
specialize four_square_euler_quaternion a - L99
specialize four_square_euler_quaternion b - L100
specialize four_square_euler_quaternion d - L101
specialize four_square_euler_quaternion g - L102
specialize four_square_euler_quaternion e - L103
specialize four_square_euler_quaternion f - L104
specialize four_square_euler_quaternion j - L105
specialize four_square_euler_quaternion x
16Use earlier factsL106–110
17Establish hcenter_identityL111–114
18Establish hproductL115–120
Establish this local claim before using it. It is not an additional assumption.
19Separate the logical casesL121–126
20Use earlier factsL127–136
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L127
specialize four_square_signed_absolute_block_representation p - L128
specialize four_square_signed_absolute_block_representation k - L129
specialize four_square_signed_absolute_block_representation r - L130
specialize four_square_signed_absolute_block_representation (c * g) - L131
specialize four_square_signed_absolute_block_representation (c * e + a * g + b * j) - L132
specialize four_square_signed_absolute_block_representation (c * f + b * g + d * e) - L133
specialize four_square_signed_absolute_block_representation (c * j + a * f + d * g) - L134
specialize four_square_signed_absolute_block_representation (a * e + b * f + d * j) - L135
specialize four_square_signed_absolute_block_representation (d * f) - L136
specialize four_square_signed_absolute_block_representation (a * j)
21Use earlier factsL137–146
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L137
specialize four_square_signed_absolute_block_representation (b * e) - L138
specialize four_square_signed_absolute_block_representation x - L139
specialize four_square_signed_absolute_block_representation x1 - L140
specialize four_square_signed_absolute_block_representation x2 - L141
specialize four_square_signed_absolute_block_representation x3 - L142
apply four_square_signed_absolute_block_representation - L143
exact hnonzero - L144
exact hproduct - L145
exact hblocks_left - L146
exact habsolute_left
22Use earlier factsL147–152
Original defined command ledger · 152 lines
- 0001
intro p - 0002
intro k - 0003
intro h - 0004
intro a - 0005
intro b - 0006
intro c - 0007
intro d - 0008
intro e - 0009
intro f - 0010
intro g - 0011
intro j - 0012
intro r - 0013
intro hnonzero - 0014
intro hodd - 0015
intro hfirst - 0016
intro horientation0 - 0017
intro horientation1 - 0018
intro horientation2 - 0019
intro horientation3 - 0020
intro hcenter - 0021
have hfirst_permuted : p * k = c * c + a * a + b * b + d * d - 0022
trans a * a + b * b + c * c + d * d - 0023
exact hfirst - 0024
trans ((a * a) + ((b * b) + ((c * c) + (d * d)))) - 0025
simp [add_assoc] - 0026
trans ((c * c) + ((a * a) + ((b * b) + (d * d)))) - 0027
trans ((c * c) + ((a * a) + ((b * b) + (d * d)))) - 0028
trans ((a * a) + ((c * c) + ((b * b) + (d * d)))) - 0029
congr - 0030
refl - 0031
apply four_square_add_swap_right_tail - 0032
apply four_square_add_swap_right_tail - 0033
congr - 0034
refl - 0035
refl - 0036
symm - 0037
simp [add_assoc] - 0038
have hcenter_permuted : k * r = g * g + e * e + f * f + j * j - 0039
trans e * e + f * f + g * g + j * j - 0040
exact hcenter - 0041
trans ((e * e) + ((f * f) + ((g * g) + (j * j)))) - 0042
simp [add_assoc] - 0043
trans ((g * g) + ((e * e) + ((f * f) + (j * j)))) - 0044
trans ((g * g) + ((e * e) + ((f * f) + (j * j)))) - 0045
trans ((e * e) + ((g * g) + ((f * f) + (j * j)))) - 0046
congr - 0047
refl - 0048
apply four_square_add_swap_right_tail - 0049
apply four_square_add_swap_right_tail - 0050
congr - 0051
refl - 0052
refl - 0053
symm - 0054
simp [add_assoc] - 0055
have hzero : ModEq(k,g · g + e · e + f · f + j · j,0)Exact native replay line
have hzero : (exists ftcn_left_case_4_zero ftcn_right_case_4_zero. (g * g + e * e + f * f + j * j) + (k) * ftcn_left_case_4_zero = (0) + (k) * ftcn_right_case_4_zero) - 0056
specialize four_square_signed_cases_norm_quotient_zero_congruence k - 0057
specialize four_square_signed_cases_norm_quotient_zero_congruence r - 0058
specialize four_square_signed_cases_norm_quotient_zero_congruence g - 0059
specialize four_square_signed_cases_norm_quotient_zero_congruence e - 0060
specialize four_square_signed_cases_norm_quotient_zero_congruence f - 0061
specialize four_square_signed_cases_norm_quotient_zero_congruence j - 0062
apply four_square_signed_cases_norm_quotient_zero_congruence - 0063
exact hcenter_permuted - 0064
have hblocks : ModEq(k,c · g,a · e + b · f + d · j) ∧ (ModEq(k,c · e + a · g + b · j,d · f) ∧ (ModEq(k,c · f + b · g + d · e,a · j) ∧ ModEq(k,c · j + a · f + d · g,b · e)))Exact native replay line
have hblocks : ((exists ftcn_left_case_4_block_0 ftcn_right_case_4_block_0. (c * g) + (k) * ftcn_left_case_4_block_0 = (a * e + b * f + d * j) + (k) * ftcn_right_case_4_block_0) /\ ((exists ftcn_left_case_4_block_1 ftcn_right_case_4_block_1. (c * e + a * g + b * j) + (k) * ftcn_left_case_4_block_1 = (d * f) + (k) * ftcn_right_case_4_block_1) /\ ((exists ftcn_left_case_4_block_2 ftcn_right_case_4_block_2. (c * f + b * g + d * e) + (k) * ftcn_left_case_4_block_2 = (a * j) + (k) * ftcn_right_case_4_block_2) /\ (exists ftcn_left_case_4_block_3 ftcn_right_case_4_block_3. (c * j + a * f + d * g) + (k) * ftcn_left_case_4_block_3 = (b * e) + (k) * ftcn_right_case_4_block_3)))) - 0065
specialize four_square_signed_natural_negative_first_blocks k - 0066
specialize four_square_signed_natural_negative_first_blocks c - 0067
specialize four_square_signed_natural_negative_first_blocks a - 0068
specialize four_square_signed_natural_negative_first_blocks b - 0069
specialize four_square_signed_natural_negative_first_blocks d - 0070
specialize four_square_signed_natural_negative_first_blocks g - 0071
specialize four_square_signed_natural_negative_first_blocks e - 0072
specialize four_square_signed_natural_negative_first_blocks f - 0073
specialize four_square_signed_natural_negative_first_blocks j - 0074
apply four_square_signed_natural_negative_first_blocks - 0075
exact hzero - 0076
exact horientation2 - 0077
exact horientation0 - 0078
exact horientation1 - 0079
exact horientation3 - 0080
have hcoordinates : exists m0 m1 m2 m3. ((((c * g) = (a * e + b * f + d * j) + m0) \/ ((a * e + b * f + d * j) = (c * g) + m0)) /\ ((((c * e + a * g + b * j) = (d * f) + m1) \/ ((d * f) = (c * e + a * g + b * j) + m1)) /\ ((((c * f + b * g + d * e) = (a * j) + m2) \/ ((a * j) = (c * f + b * g + d * e) + m2)) /\ (((c * j + a * f + d * g) = (b * e) + m3) \/ ((b * e) = (c * j + a * f + d * g) + m3))))) - 0081
specialize quaternion_coordinate_absolute_total c - 0082
specialize quaternion_coordinate_absolute_total a - 0083
specialize quaternion_coordinate_absolute_total b - 0084
specialize quaternion_coordinate_absolute_total d - 0085
specialize quaternion_coordinate_absolute_total g - 0086
specialize quaternion_coordinate_absolute_total e - 0087
specialize quaternion_coordinate_absolute_total f - 0088
specialize quaternion_coordinate_absolute_total j - 0089
exact quaternion_coordinate_absolute_total - 0090
cases hcoordinates - 0091
cases hcoordinates_witness - 0092
cases hcoordinates_witness_witness - 0093
cases hcoordinates_witness_witness_witness - 0094
have habsolute : ((((c * g) = (a * e + b * f + d * j) + x) \/ ((a * e + b * f + d * j) = (c * g) + x)) /\ ((((c * e + a * g + b * j) = (d * f) + x1) \/ ((d * f) = (c * e + a * g + b * j) + x1)) /\ ((((c * f + b * g + d * e) = (a * j) + x2) \/ ((a * j) = (c * f + b * g + d * e) + x2)) /\ (((c * j + a * f + d * g) = (b * e) + x3) \/ ((b * e) = (c * j + a * f + d * g) + x3))))) - 0095
exact hcoordinates_witness_witness_witness_witness - 0096
have hidentity : (c * c + a * a + b * b + d * d) * (g * g + e * e + f * f + j * j) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0097
specialize four_square_euler_quaternion c - 0098
specialize four_square_euler_quaternion a - 0099
specialize four_square_euler_quaternion b - 0100
specialize four_square_euler_quaternion d - 0101
specialize four_square_euler_quaternion g - 0102
specialize four_square_euler_quaternion e - 0103
specialize four_square_euler_quaternion f - 0104
specialize four_square_euler_quaternion j - 0105
specialize four_square_euler_quaternion x - 0106
specialize four_square_euler_quaternion x1 - 0107
specialize four_square_euler_quaternion x2 - 0108
specialize four_square_euler_quaternion x3 - 0109
apply four_square_euler_quaternion - 0110
exact habsolute - 0111
have hcenter_identity : k * r = g * g + e * e + f * f + j * j - 0112
trans g * g + e * e + f * f + j * j - 0113
exact hcenter_permuted - 0114
refl - 0115
have hproduct : (p * k) * (k * r) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0116
trans (c * c + a * a + b * b + d * d) * (g * g + e * e + f * f + j * j) - 0117
congr - 0118
exact hfirst_permuted - 0119
exact hcenter_identity - 0120
exact hidentity - 0121
cases hblocks - 0122
cases hblocks_right - 0123
cases hblocks_right_right - 0124
cases habsolute - 0125
cases habsolute_right - 0126
cases habsolute_right_right - 0127
specialize four_square_signed_absolute_block_representation p - 0128
specialize four_square_signed_absolute_block_representation k - 0129
specialize four_square_signed_absolute_block_representation r - 0130
specialize four_square_signed_absolute_block_representation (c * g) - 0131
specialize four_square_signed_absolute_block_representation (c * e + a * g + b * j) - 0132
specialize four_square_signed_absolute_block_representation (c * f + b * g + d * e) - 0133
specialize four_square_signed_absolute_block_representation (c * j + a * f + d * g) - 0134
specialize four_square_signed_absolute_block_representation (a * e + b * f + d * j) - 0135
specialize four_square_signed_absolute_block_representation (d * f) - 0136
specialize four_square_signed_absolute_block_representation (a * j) - 0137
specialize four_square_signed_absolute_block_representation (b * e) - 0138
specialize four_square_signed_absolute_block_representation x - 0139
specialize four_square_signed_absolute_block_representation x1 - 0140
specialize four_square_signed_absolute_block_representation x2 - 0141
specialize four_square_signed_absolute_block_representation x3 - 0142
apply four_square_signed_absolute_block_representation - 0143
exact hnonzero - 0144
exact hproduct - 0145
exact hblocks_left - 0146
exact habsolute_left - 0147
exact hblocks_right_left - 0148
exact habsolute_right_left - 0149
exact hblocks_right_right_left - 0150
exact habsolute_right_right_left - 0151
exact hblocks_right_right_right - 0152
exact habsolute_right_right_right