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,0) → 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_5_0 ftcn_right_mask_5_0. (a + e) + (k) * ftcn_left_mask_5_0 = (0) + (k) * ftcn_right_mask_5_0) -> (exists ftcn_left_mask_5_1 ftcn_right_mask_5_1. (b) + (k) * ftcn_left_mask_5_1 = (f) + (k) * ftcn_right_mask_5_1) -> (exists ftcn_left_mask_5_2 ftcn_right_mask_5_2. (c + g) + (k) * ftcn_left_mask_5_2 = (0) + (k) * ftcn_right_mask_5_2) -> (exists ftcn_left_mask_5_3 ftcn_right_mask_5_3. (d) + (k) * ftcn_left_mask_5_3 = (j) + (k) * ftcn_right_mask_5_3) -> k * r = e * e + f * f + g * g + j * j -> (exists fsl_a_fssc_mask_5 fsl_b_fssc_mask_5 fsl_c_fssc_mask_5 fsl_d_fssc_mask_5. (p * r) = fsl_a_fssc_mask_5 * fsl_a_fssc_mask_5 + fsl_b_fssc_mask_5 * fsl_b_fssc_mask_5 + fsl_c_fssc_mask_5 * fsl_c_fssc_mask_5 + fsl_d_fssc_mask_5 * fsl_d_fssc_mask_5)Proof neighborhood
Direct theorem prerequisites
FS004P four_square_signed_cases_norm_quotient_zero_congruence FS005Z four_square_signed_conjugate_mixed_blocks FS0057 four_square_signed_absolute_block_representation add_assoc · Stable closed add_comm · Stable closed FS0006 four_square_add_swap_right_tail FS0013 four_square_conjugate_absolute_coordinates_totalDirect 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 (5)
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. The following proof commands apply four square add swap right tail.
- L21
have hfirst_permuted : p * k = a * a + c * c + 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 ((a * a) + ((c * c) + ((b * b) + (d * d)))) - L27
congr - L28
refl - L29
trans ((c * c) + ((b * b) + (d * d))) - L30
apply four_square_add_swap_right_tail
04Calculate and transport equalitiesL31–35
05Establish hcenter_permutedL36–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square add swap right tail.
- L36
have hcenter_permuted : k * r = e * e + g * g + f * f + j * j - L37
trans e * e + f * f + g * g + j * j - L38
exact hcenter - L39
trans ((e * e) + ((f * f) + ((g * g) + (j * j)))) - L40
simp [add_assoc] - L41
trans ((e * e) + ((g * g) + ((f * f) + (j * j)))) - L42
congr - L43
refl - L44
trans ((g * g) + ((f * f) + (j * j))) - L45
apply four_square_add_swap_right_tail
06Calculate and transport equalitiesL46–50
07Establish hzeroL51–59
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.
- L51
have hzero : ModEq(k,e · e + g · g + f · f + j · j,0)Definitions: ModEq(k,e · e + g · g + f · f + j · j,0)Original native command in the exact edition - L52
specialize four_square_signed_cases_norm_quotient_zero_congruence k - L53
specialize four_square_signed_cases_norm_quotient_zero_congruence r - L54
specialize four_square_signed_cases_norm_quotient_zero_congruence e - L55
specialize four_square_signed_cases_norm_quotient_zero_congruence g - L56
specialize four_square_signed_cases_norm_quotient_zero_congruence f - L57
specialize four_square_signed_cases_norm_quotient_zero_congruence j - L58
apply four_square_signed_cases_norm_quotient_zero_congruence - L59
exact hcenter_permuted
08Establish hblocksL60–69
Establish this local claim before using it. It is not an additional assumption.
- L60
have hblocks : ModEq(k,a · j + c · f + b · g + d · e,0) ∧ (ModEq(k,a · f + b · e,c · j + d · g) ∧ (ModEq(k,a · g + d · f,b · j + c · e) ∧ ModEq(k,a · e + c · g,d · j + b · f)))Definitions: ModEq(k,a · j + c · f + b · g + d · e,0)ModEq(k,a · f + b · e,c · j + d · g)ModEq(k,a · g + d · f,b · j + c · e)ModEq(k,a · e + c · g,d · j + b · f)Original native command in the exact edition - L61
specialize four_square_signed_conjugate_mixed_blocks k - L62
specialize four_square_signed_conjugate_mixed_blocks a - L63
specialize four_square_signed_conjugate_mixed_blocks c - L64
specialize four_square_signed_conjugate_mixed_blocks b - L65
specialize four_square_signed_conjugate_mixed_blocks d - L66
specialize four_square_signed_conjugate_mixed_blocks e - L67
specialize four_square_signed_conjugate_mixed_blocks g - L68
specialize four_square_signed_conjugate_mixed_blocks f - L69
specialize four_square_signed_conjugate_mixed_blocks j
09Use earlier factsL70–75
10Establish hcoordinatesL76–85
Establish this local claim before using it. It is not an additional assumption.
- L76
have hcoordinates : exists m0 m1 m2 m3. (((((a * j + c * f + b * g + d * e) = (0) + m0) \/ ((0) = (a * j + c * f + b * g + d * e) + m0)) /\ ((((a * f + b * e) = (c * j + d * g) + m1) \/ ((c * j + d * g) = (a * f + b * e) + m1)) /\ ((((a * g + d * f) = (b * j + c * e) + m2) \/ ((b * j + c * e) = (a * g + d * f) + m2)) /\ (((a * e + c * g) = (d * j + b * f) + m3) \/ ((d * j + b * f) = (a * e + c * g) + m3))))) /\ ((a * a + c * c + b * b + d * d) * (j * j + f * f + g * g + e * e) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3)) - L77
specialize four_square_conjugate_absolute_coordinates_total a - L78
specialize four_square_conjugate_absolute_coordinates_total c - L79
specialize four_square_conjugate_absolute_coordinates_total b - L80
specialize four_square_conjugate_absolute_coordinates_total d - L81
specialize four_square_conjugate_absolute_coordinates_total j - L82
specialize four_square_conjugate_absolute_coordinates_total f - L83
specialize four_square_conjugate_absolute_coordinates_total g - L84
specialize four_square_conjugate_absolute_coordinates_total e - L85
exact four_square_conjugate_absolute_coordinates_total
11Separate the logical casesL86–90
12Establish habsoluteL91–92
Establish this local claim before using it. It is not an additional assumption.
- L91
have habsolute : ((((a * j + c * f + b * g + d * e) = (0) + x) \/ ((0) = (a * j + c * f + b * g + d * e) + x)) /\ ((((a * f + b * e) = (c * j + d * g) + x1) \/ ((c * j + d * g) = (a * f + b * e) + x1)) /\ ((((a * g + d * f) = (b * j + c * e) + x2) \/ ((b * j + c * e) = (a * g + d * f) + x2)) /\ (((a * e + c * g) = (d * j + b * f) + x3) \/ ((d * j + b * f) = (a * e + c * g) + x3))))) - L92
exact hcoordinates_witness_witness_witness_witness_left
13Establish hidentityL93–94
14Establish hcenter_identityL95–104
Establish this local claim before using it. It is not an additional assumption.
- L95
have hcenter_identity : k * r = j * j + f * f + g * g + e * e - L96
trans e * e + g * g + f * f + j * j - L97
exact hcenter_permuted - L98
trans ((e * e) + ((g * g) + ((f * f) + (j * j)))) - L99
simp [add_assoc] - L100
trans ((j * j) + ((f * f) + ((g * g) + (e * e)))) - L101
trans ((j * j) + ((e * e) + ((g * g) + (f * f)))) - L102
trans ((e * e) + ((j * j) + ((g * g) + (f * f)))) - L103
congr - L104
refl
15Calculate and transport equalitiesL105–107
16Use earlier factsL108–110
17Calculate and transport equalitiesL111–116
18Use earlier factsL117–118
19Calculate and transport equalitiesL119–121
20Use earlier factsL122–122
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L122
apply add_comm
21Calculate and transport equalitiesL123–127
22Establish hproductL128–133
Establish this local claim before using it. It is not an additional assumption.
23Separate the logical casesL134–139
24Use earlier factsL140–149
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L140
specialize four_square_signed_absolute_block_representation p - L141
specialize four_square_signed_absolute_block_representation k - L142
specialize four_square_signed_absolute_block_representation r - L143
specialize four_square_signed_absolute_block_representation (a * j + c * f + b * g + d * e) - L144
specialize four_square_signed_absolute_block_representation (a * f + b * e) - L145
specialize four_square_signed_absolute_block_representation (a * g + d * f) - L146
specialize four_square_signed_absolute_block_representation (a * e + c * g) - L147
specialize four_square_signed_absolute_block_representation (0) - L148
specialize four_square_signed_absolute_block_representation (c * j + d * g) - L149
specialize four_square_signed_absolute_block_representation (b * j + c * e)
25Use earlier factsL150–159
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L150
specialize four_square_signed_absolute_block_representation (d * j + b * f) - L151
specialize four_square_signed_absolute_block_representation x - L152
specialize four_square_signed_absolute_block_representation x1 - L153
specialize four_square_signed_absolute_block_representation x2 - L154
specialize four_square_signed_absolute_block_representation x3 - L155
apply four_square_signed_absolute_block_representation - L156
exact hnonzero - L157
exact hproduct - L158
exact hblocks_left - L159
exact habsolute_left
26Use earlier factsL160–165
Original defined command ledger · 165 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 = a * a + c * c + 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 ((a * a) + ((c * c) + ((b * b) + (d * d)))) - 0027
congr - 0028
refl - 0029
trans ((c * c) + ((b * b) + (d * d))) - 0030
apply four_square_add_swap_right_tail - 0031
congr - 0032
refl - 0033
refl - 0034
symm - 0035
simp [add_assoc] - 0036
have hcenter_permuted : k * r = e * e + g * g + f * f + j * j - 0037
trans e * e + f * f + g * g + j * j - 0038
exact hcenter - 0039
trans ((e * e) + ((f * f) + ((g * g) + (j * j)))) - 0040
simp [add_assoc] - 0041
trans ((e * e) + ((g * g) + ((f * f) + (j * j)))) - 0042
congr - 0043
refl - 0044
trans ((g * g) + ((f * f) + (j * j))) - 0045
apply four_square_add_swap_right_tail - 0046
congr - 0047
refl - 0048
refl - 0049
symm - 0050
simp [add_assoc] - 0051
have hzero : ModEq(k,e · e + g · g + f · f + j · j,0)Exact native replay line
have hzero : (exists ftcn_left_case_5_zero ftcn_right_case_5_zero. (e * e + g * g + f * f + j * j) + (k) * ftcn_left_case_5_zero = (0) + (k) * ftcn_right_case_5_zero) - 0052
specialize four_square_signed_cases_norm_quotient_zero_congruence k - 0053
specialize four_square_signed_cases_norm_quotient_zero_congruence r - 0054
specialize four_square_signed_cases_norm_quotient_zero_congruence e - 0055
specialize four_square_signed_cases_norm_quotient_zero_congruence g - 0056
specialize four_square_signed_cases_norm_quotient_zero_congruence f - 0057
specialize four_square_signed_cases_norm_quotient_zero_congruence j - 0058
apply four_square_signed_cases_norm_quotient_zero_congruence - 0059
exact hcenter_permuted - 0060
have hblocks : ModEq(k,a · j + c · f + b · g + d · e,0) ∧ (ModEq(k,a · f + b · e,c · j + d · g) ∧ (ModEq(k,a · g + d · f,b · j + c · e) ∧ ModEq(k,a · e + c · g,d · j + b · f)))Exact native replay line
have hblocks : ((exists ftcn_left_case_5_block_0 ftcn_right_case_5_block_0. (a * j + c * f + b * g + d * e) + (k) * ftcn_left_case_5_block_0 = (0) + (k) * ftcn_right_case_5_block_0) /\ ((exists ftcn_left_case_5_block_1 ftcn_right_case_5_block_1. (a * f + b * e) + (k) * ftcn_left_case_5_block_1 = (c * j + d * g) + (k) * ftcn_right_case_5_block_1) /\ ((exists ftcn_left_case_5_block_2 ftcn_right_case_5_block_2. (a * g + d * f) + (k) * ftcn_left_case_5_block_2 = (b * j + c * e) + (k) * ftcn_right_case_5_block_2) /\ (exists ftcn_left_case_5_block_3 ftcn_right_case_5_block_3. (a * e + c * g) + (k) * ftcn_left_case_5_block_3 = (d * j + b * f) + (k) * ftcn_right_case_5_block_3)))) - 0061
specialize four_square_signed_conjugate_mixed_blocks k - 0062
specialize four_square_signed_conjugate_mixed_blocks a - 0063
specialize four_square_signed_conjugate_mixed_blocks c - 0064
specialize four_square_signed_conjugate_mixed_blocks b - 0065
specialize four_square_signed_conjugate_mixed_blocks d - 0066
specialize four_square_signed_conjugate_mixed_blocks e - 0067
specialize four_square_signed_conjugate_mixed_blocks g - 0068
specialize four_square_signed_conjugate_mixed_blocks f - 0069
specialize four_square_signed_conjugate_mixed_blocks j - 0070
apply four_square_signed_conjugate_mixed_blocks - 0071
exact hzero - 0072
exact horientation0 - 0073
exact horientation2 - 0074
exact horientation1 - 0075
exact horientation3 - 0076
have hcoordinates : exists m0 m1 m2 m3. (((((a * j + c * f + b * g + d * e) = (0) + m0) \/ ((0) = (a * j + c * f + b * g + d * e) + m0)) /\ ((((a * f + b * e) = (c * j + d * g) + m1) \/ ((c * j + d * g) = (a * f + b * e) + m1)) /\ ((((a * g + d * f) = (b * j + c * e) + m2) \/ ((b * j + c * e) = (a * g + d * f) + m2)) /\ (((a * e + c * g) = (d * j + b * f) + m3) \/ ((d * j + b * f) = (a * e + c * g) + m3))))) /\ ((a * a + c * c + b * b + d * d) * (j * j + f * f + g * g + e * e) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3)) - 0077
specialize four_square_conjugate_absolute_coordinates_total a - 0078
specialize four_square_conjugate_absolute_coordinates_total c - 0079
specialize four_square_conjugate_absolute_coordinates_total b - 0080
specialize four_square_conjugate_absolute_coordinates_total d - 0081
specialize four_square_conjugate_absolute_coordinates_total j - 0082
specialize four_square_conjugate_absolute_coordinates_total f - 0083
specialize four_square_conjugate_absolute_coordinates_total g - 0084
specialize four_square_conjugate_absolute_coordinates_total e - 0085
exact four_square_conjugate_absolute_coordinates_total - 0086
cases hcoordinates - 0087
cases hcoordinates_witness - 0088
cases hcoordinates_witness_witness - 0089
cases hcoordinates_witness_witness_witness - 0090
cases hcoordinates_witness_witness_witness_witness - 0091
have habsolute : ((((a * j + c * f + b * g + d * e) = (0) + x) \/ ((0) = (a * j + c * f + b * g + d * e) + x)) /\ ((((a * f + b * e) = (c * j + d * g) + x1) \/ ((c * j + d * g) = (a * f + b * e) + x1)) /\ ((((a * g + d * f) = (b * j + c * e) + x2) \/ ((b * j + c * e) = (a * g + d * f) + x2)) /\ (((a * e + c * g) = (d * j + b * f) + x3) \/ ((d * j + b * f) = (a * e + c * g) + x3))))) - 0092
exact hcoordinates_witness_witness_witness_witness_left - 0093
have hidentity : (a * a + c * c + b * b + d * d) * (j * j + f * f + g * g + e * e) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0094
exact hcoordinates_witness_witness_witness_witness_right - 0095
have hcenter_identity : k * r = j * j + f * f + g * g + e * e - 0096
trans e * e + g * g + f * f + j * j - 0097
exact hcenter_permuted - 0098
trans ((e * e) + ((g * g) + ((f * f) + (j * j)))) - 0099
simp [add_assoc] - 0100
trans ((j * j) + ((f * f) + ((g * g) + (e * e)))) - 0101
trans ((j * j) + ((e * e) + ((g * g) + (f * f)))) - 0102
trans ((e * e) + ((j * j) + ((g * g) + (f * f)))) - 0103
congr - 0104
refl - 0105
trans ((g * g) + ((j * j) + (f * f))) - 0106
congr - 0107
refl - 0108
apply add_comm - 0109
apply four_square_add_swap_right_tail - 0110
apply four_square_add_swap_right_tail - 0111
congr - 0112
refl - 0113
trans ((f * f) + ((e * e) + (g * g))) - 0114
trans ((e * e) + ((f * f) + (g * g))) - 0115
congr - 0116
refl - 0117
apply add_comm - 0118
apply four_square_add_swap_right_tail - 0119
congr - 0120
refl - 0121
trans ((g * g) + (e * e)) - 0122
apply add_comm - 0123
congr - 0124
refl - 0125
refl - 0126
symm - 0127
simp [add_assoc] - 0128
have hproduct : (p * k) * (k * r) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0129
trans (a * a + c * c + b * b + d * d) * (j * j + f * f + g * g + e * e) - 0130
congr - 0131
exact hfirst_permuted - 0132
exact hcenter_identity - 0133
exact hidentity - 0134
cases hblocks - 0135
cases hblocks_right - 0136
cases hblocks_right_right - 0137
cases habsolute - 0138
cases habsolute_right - 0139
cases habsolute_right_right - 0140
specialize four_square_signed_absolute_block_representation p - 0141
specialize four_square_signed_absolute_block_representation k - 0142
specialize four_square_signed_absolute_block_representation r - 0143
specialize four_square_signed_absolute_block_representation (a * j + c * f + b * g + d * e) - 0144
specialize four_square_signed_absolute_block_representation (a * f + b * e) - 0145
specialize four_square_signed_absolute_block_representation (a * g + d * f) - 0146
specialize four_square_signed_absolute_block_representation (a * e + c * g) - 0147
specialize four_square_signed_absolute_block_representation (0) - 0148
specialize four_square_signed_absolute_block_representation (c * j + d * g) - 0149
specialize four_square_signed_absolute_block_representation (b * j + c * e) - 0150
specialize four_square_signed_absolute_block_representation (d * j + b * f) - 0151
specialize four_square_signed_absolute_block_representation x - 0152
specialize four_square_signed_absolute_block_representation x1 - 0153
specialize four_square_signed_absolute_block_representation x2 - 0154
specialize four_square_signed_absolute_block_representation x3 - 0155
apply four_square_signed_absolute_block_representation - 0156
exact hnonzero - 0157
exact hproduct - 0158
exact hblocks_left - 0159
exact habsolute_left - 0160
exact hblocks_right_left - 0161
exact habsolute_right_left - 0162
exact hblocks_right_right_left - 0163
exact habsolute_right_right_left - 0164
exact hblocks_right_right_right - 0165
exact habsolute_right_right_right