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,0) → ModEq(k,c,g) → ModEq(k,d + j,0) → 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_10_0 ftcn_right_mask_10_0. (a) + (k) * ftcn_left_mask_10_0 = (e) + (k) * ftcn_right_mask_10_0) -> (exists ftcn_left_mask_10_1 ftcn_right_mask_10_1. (b + f) + (k) * ftcn_left_mask_10_1 = (0) + (k) * ftcn_right_mask_10_1) -> (exists ftcn_left_mask_10_2 ftcn_right_mask_10_2. (c) + (k) * ftcn_left_mask_10_2 = (g) + (k) * ftcn_right_mask_10_2) -> (exists ftcn_left_mask_10_3 ftcn_right_mask_10_3. (d + j) + (k) * ftcn_left_mask_10_3 = (0) + (k) * ftcn_right_mask_10_3) -> k * r = e * e + f * f + g * g + j * j -> (exists fsl_a_fssc_mask_10 fsl_b_fssc_mask_10 fsl_c_fssc_mask_10 fsl_d_fssc_mask_10. (p * r) = fsl_a_fssc_mask_10 * fsl_a_fssc_mask_10 + fsl_b_fssc_mask_10 * fsl_b_fssc_mask_10 + fsl_c_fssc_mask_10 * fsl_c_fssc_mask_10 + fsl_d_fssc_mask_10 * fsl_d_fssc_mask_10)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 = b * b + d * d + a * a + c * c - 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 ((b * b) + ((d * d) + ((a * a) + (c * c)))) - L27
trans ((b * b) + ((a * a) + ((c * c) + (d * d)))) - L28
apply four_square_add_swap_right_tail - L29
congr - L30
refl
04Calculate and transport equalitiesL31–34
05Use earlier factsL35–36
06Calculate and transport equalitiesL37–41
07Establish hcenter_permutedL42–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square add swap right tail.
- L42
have hcenter_permuted : k * r = f * f + j * j + e * e + g * g - L43
trans e * e + f * f + g * g + j * j - L44
exact hcenter - L45
trans ((e * e) + ((f * f) + ((g * g) + (j * j)))) - L46
simp [add_assoc] - L47
trans ((f * f) + ((j * j) + ((e * e) + (g * g)))) - L48
trans ((f * f) + ((e * e) + ((g * g) + (j * j)))) - L49
apply four_square_add_swap_right_tail - L50
congr - L51
refl
08Calculate and transport equalitiesL52–55
09Use earlier factsL56–57
10Calculate and transport equalitiesL58–62
11Establish hzeroL63–71
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.
- L63
have hzero : ModEq(k,f · f + j · j + e · e + g · g,0)Definitions: ModEq(k,f · f + j · j + e · e + g · g,0)Original native command in the exact edition - L64
specialize four_square_signed_cases_norm_quotient_zero_congruence k - L65
specialize four_square_signed_cases_norm_quotient_zero_congruence r - L66
specialize four_square_signed_cases_norm_quotient_zero_congruence f - L67
specialize four_square_signed_cases_norm_quotient_zero_congruence j - L68
specialize four_square_signed_cases_norm_quotient_zero_congruence e - L69
specialize four_square_signed_cases_norm_quotient_zero_congruence g - L70
apply four_square_signed_cases_norm_quotient_zero_congruence - L71
exact hcenter_permuted
12Establish hblocksL72–81
Establish this local claim before using it. It is not an additional assumption.
- L72
have hblocks : ModEq(k,b · g + d · e + a · j + c · f,0) ∧ (ModEq(k,b · e + a · f,d · g + c · j) ∧ (ModEq(k,b · j + c · e,a · g + d · f) ∧ ModEq(k,b · f + d · j,c · g + a · e)))Definitions: ModEq(k,b · g + d · e + a · j + c · f,0)ModEq(k,b · e + a · f,d · g + c · j)ModEq(k,b · j + c · e,a · g + d · f)ModEq(k,b · f + d · j,c · g + a · e)Original native command in the exact edition - L73
specialize four_square_signed_conjugate_mixed_blocks k - L74
specialize four_square_signed_conjugate_mixed_blocks b - L75
specialize four_square_signed_conjugate_mixed_blocks d - L76
specialize four_square_signed_conjugate_mixed_blocks a - L77
specialize four_square_signed_conjugate_mixed_blocks c - L78
specialize four_square_signed_conjugate_mixed_blocks f - L79
specialize four_square_signed_conjugate_mixed_blocks j - L80
specialize four_square_signed_conjugate_mixed_blocks e - L81
specialize four_square_signed_conjugate_mixed_blocks g
13Use earlier factsL82–87
14Establish hcoordinatesL88–97
Establish this local claim before using it. It is not an additional assumption.
- L88
have hcoordinates : exists m0 m1 m2 m3. (((((b * g + d * e + a * j + c * f) = (0) + m0) \/ ((0) = (b * g + d * e + a * j + c * f) + m0)) /\ ((((b * e + a * f) = (d * g + c * j) + m1) \/ ((d * g + c * j) = (b * e + a * f) + m1)) /\ ((((b * j + c * e) = (a * g + d * f) + m2) \/ ((a * g + d * f) = (b * j + c * e) + m2)) /\ (((b * f + d * j) = (c * g + a * e) + m3) \/ ((c * g + a * e) = (b * f + d * j) + m3))))) /\ ((b * b + d * d + a * a + c * c) * (g * g + e * e + j * j + f * f) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3)) - L89
specialize four_square_conjugate_absolute_coordinates_total b - L90
specialize four_square_conjugate_absolute_coordinates_total d - L91
specialize four_square_conjugate_absolute_coordinates_total a - L92
specialize four_square_conjugate_absolute_coordinates_total c - L93
specialize four_square_conjugate_absolute_coordinates_total g - L94
specialize four_square_conjugate_absolute_coordinates_total e - L95
specialize four_square_conjugate_absolute_coordinates_total j - L96
specialize four_square_conjugate_absolute_coordinates_total f - L97
exact four_square_conjugate_absolute_coordinates_total
15Separate the logical casesL98–102
16Establish habsoluteL103–104
Establish this local claim before using it. It is not an additional assumption.
- L103
have habsolute : ((((b * g + d * e + a * j + c * f) = (0) + x) \/ ((0) = (b * g + d * e + a * j + c * f) + x)) /\ ((((b * e + a * f) = (d * g + c * j) + x1) \/ ((d * g + c * j) = (b * e + a * f) + x1)) /\ ((((b * j + c * e) = (a * g + d * f) + x2) \/ ((a * g + d * f) = (b * j + c * e) + x2)) /\ (((b * f + d * j) = (c * g + a * e) + x3) \/ ((c * g + a * e) = (b * f + d * j) + x3))))) - L104
exact hcoordinates_witness_witness_witness_witness_left
17Establish hidentityL105–106
18Establish hcenter_identityL107–116
Establish this local claim before using it. It is not an additional assumption.
- L107
have hcenter_identity : k * r = g * g + e * e + j * j + f * f - L108
trans f * f + j * j + e * e + g * g - L109
exact hcenter_permuted - L110
trans ((f * f) + ((j * j) + ((e * e) + (g * g)))) - L111
simp [add_assoc] - L112
trans ((g * g) + ((e * e) + ((j * j) + (f * f)))) - L113
trans ((g * g) + ((f * f) + ((j * j) + (e * e)))) - L114
trans ((f * f) + ((g * g) + ((j * j) + (e * e)))) - L115
congr - L116
refl
19Calculate and transport equalitiesL117–119
20Use earlier factsL120–122
21Calculate and transport equalitiesL123–128
22Use earlier factsL129–130
23Calculate and transport equalitiesL131–133
24Use earlier factsL134–134
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L134
apply add_comm
25Calculate and transport equalitiesL135–139
26Establish hproductL140–145
Establish this local claim before using it. It is not an additional assumption.
27Separate the logical casesL146–151
28Use earlier factsL152–161
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L152
specialize four_square_signed_absolute_block_representation p - L153
specialize four_square_signed_absolute_block_representation k - L154
specialize four_square_signed_absolute_block_representation r - L155
specialize four_square_signed_absolute_block_representation (b * g + d * e + a * j + c * f) - L156
specialize four_square_signed_absolute_block_representation (b * e + a * f) - L157
specialize four_square_signed_absolute_block_representation (b * j + c * e) - L158
specialize four_square_signed_absolute_block_representation (b * f + d * j) - L159
specialize four_square_signed_absolute_block_representation (0) - L160
specialize four_square_signed_absolute_block_representation (d * g + c * j) - L161
specialize four_square_signed_absolute_block_representation (a * g + d * f)
29Use earlier factsL162–171
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L162
specialize four_square_signed_absolute_block_representation (c * g + a * e) - L163
specialize four_square_signed_absolute_block_representation x - L164
specialize four_square_signed_absolute_block_representation x1 - L165
specialize four_square_signed_absolute_block_representation x2 - L166
specialize four_square_signed_absolute_block_representation x3 - L167
apply four_square_signed_absolute_block_representation - L168
exact hnonzero - L169
exact hproduct - L170
exact hblocks_left - L171
exact habsolute_left
30Use earlier factsL172–177
Original defined command ledger · 177 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 = b * b + d * d + a * a + c * c - 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 ((b * b) + ((d * d) + ((a * a) + (c * c)))) - 0027
trans ((b * b) + ((a * a) + ((c * c) + (d * d)))) - 0028
apply four_square_add_swap_right_tail - 0029
congr - 0030
refl - 0031
trans ((d * d) + ((a * a) + (c * c))) - 0032
trans ((a * a) + ((d * d) + (c * c))) - 0033
congr - 0034
refl - 0035
apply add_comm - 0036
apply four_square_add_swap_right_tail - 0037
congr - 0038
refl - 0039
refl - 0040
symm - 0041
simp [add_assoc] - 0042
have hcenter_permuted : k * r = f * f + j * j + e * e + g * g - 0043
trans e * e + f * f + g * g + j * j - 0044
exact hcenter - 0045
trans ((e * e) + ((f * f) + ((g * g) + (j * j)))) - 0046
simp [add_assoc] - 0047
trans ((f * f) + ((j * j) + ((e * e) + (g * g)))) - 0048
trans ((f * f) + ((e * e) + ((g * g) + (j * j)))) - 0049
apply four_square_add_swap_right_tail - 0050
congr - 0051
refl - 0052
trans ((j * j) + ((e * e) + (g * g))) - 0053
trans ((e * e) + ((j * j) + (g * g))) - 0054
congr - 0055
refl - 0056
apply add_comm - 0057
apply four_square_add_swap_right_tail - 0058
congr - 0059
refl - 0060
refl - 0061
symm - 0062
simp [add_assoc] - 0063
have hzero : ModEq(k,f · f + j · j + e · e + g · g,0)Exact native replay line
have hzero : (exists ftcn_left_case_10_zero ftcn_right_case_10_zero. (f * f + j * j + e * e + g * g) + (k) * ftcn_left_case_10_zero = (0) + (k) * ftcn_right_case_10_zero) - 0064
specialize four_square_signed_cases_norm_quotient_zero_congruence k - 0065
specialize four_square_signed_cases_norm_quotient_zero_congruence r - 0066
specialize four_square_signed_cases_norm_quotient_zero_congruence f - 0067
specialize four_square_signed_cases_norm_quotient_zero_congruence j - 0068
specialize four_square_signed_cases_norm_quotient_zero_congruence e - 0069
specialize four_square_signed_cases_norm_quotient_zero_congruence g - 0070
apply four_square_signed_cases_norm_quotient_zero_congruence - 0071
exact hcenter_permuted - 0072
have hblocks : ModEq(k,b · g + d · e + a · j + c · f,0) ∧ (ModEq(k,b · e + a · f,d · g + c · j) ∧ (ModEq(k,b · j + c · e,a · g + d · f) ∧ ModEq(k,b · f + d · j,c · g + a · e)))Exact native replay line
have hblocks : ((exists ftcn_left_case_10_block_0 ftcn_right_case_10_block_0. (b * g + d * e + a * j + c * f) + (k) * ftcn_left_case_10_block_0 = (0) + (k) * ftcn_right_case_10_block_0) /\ ((exists ftcn_left_case_10_block_1 ftcn_right_case_10_block_1. (b * e + a * f) + (k) * ftcn_left_case_10_block_1 = (d * g + c * j) + (k) * ftcn_right_case_10_block_1) /\ ((exists ftcn_left_case_10_block_2 ftcn_right_case_10_block_2. (b * j + c * e) + (k) * ftcn_left_case_10_block_2 = (a * g + d * f) + (k) * ftcn_right_case_10_block_2) /\ (exists ftcn_left_case_10_block_3 ftcn_right_case_10_block_3. (b * f + d * j) + (k) * ftcn_left_case_10_block_3 = (c * g + a * e) + (k) * ftcn_right_case_10_block_3)))) - 0073
specialize four_square_signed_conjugate_mixed_blocks k - 0074
specialize four_square_signed_conjugate_mixed_blocks b - 0075
specialize four_square_signed_conjugate_mixed_blocks d - 0076
specialize four_square_signed_conjugate_mixed_blocks a - 0077
specialize four_square_signed_conjugate_mixed_blocks c - 0078
specialize four_square_signed_conjugate_mixed_blocks f - 0079
specialize four_square_signed_conjugate_mixed_blocks j - 0080
specialize four_square_signed_conjugate_mixed_blocks e - 0081
specialize four_square_signed_conjugate_mixed_blocks g - 0082
apply four_square_signed_conjugate_mixed_blocks - 0083
exact hzero - 0084
exact horientation1 - 0085
exact horientation3 - 0086
exact horientation0 - 0087
exact horientation2 - 0088
have hcoordinates : exists m0 m1 m2 m3. (((((b * g + d * e + a * j + c * f) = (0) + m0) \/ ((0) = (b * g + d * e + a * j + c * f) + m0)) /\ ((((b * e + a * f) = (d * g + c * j) + m1) \/ ((d * g + c * j) = (b * e + a * f) + m1)) /\ ((((b * j + c * e) = (a * g + d * f) + m2) \/ ((a * g + d * f) = (b * j + c * e) + m2)) /\ (((b * f + d * j) = (c * g + a * e) + m3) \/ ((c * g + a * e) = (b * f + d * j) + m3))))) /\ ((b * b + d * d + a * a + c * c) * (g * g + e * e + j * j + f * f) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3)) - 0089
specialize four_square_conjugate_absolute_coordinates_total b - 0090
specialize four_square_conjugate_absolute_coordinates_total d - 0091
specialize four_square_conjugate_absolute_coordinates_total a - 0092
specialize four_square_conjugate_absolute_coordinates_total c - 0093
specialize four_square_conjugate_absolute_coordinates_total g - 0094
specialize four_square_conjugate_absolute_coordinates_total e - 0095
specialize four_square_conjugate_absolute_coordinates_total j - 0096
specialize four_square_conjugate_absolute_coordinates_total f - 0097
exact four_square_conjugate_absolute_coordinates_total - 0098
cases hcoordinates - 0099
cases hcoordinates_witness - 0100
cases hcoordinates_witness_witness - 0101
cases hcoordinates_witness_witness_witness - 0102
cases hcoordinates_witness_witness_witness_witness - 0103
have habsolute : ((((b * g + d * e + a * j + c * f) = (0) + x) \/ ((0) = (b * g + d * e + a * j + c * f) + x)) /\ ((((b * e + a * f) = (d * g + c * j) + x1) \/ ((d * g + c * j) = (b * e + a * f) + x1)) /\ ((((b * j + c * e) = (a * g + d * f) + x2) \/ ((a * g + d * f) = (b * j + c * e) + x2)) /\ (((b * f + d * j) = (c * g + a * e) + x3) \/ ((c * g + a * e) = (b * f + d * j) + x3))))) - 0104
exact hcoordinates_witness_witness_witness_witness_left - 0105
have hidentity : (b * b + d * d + a * a + c * c) * (g * g + e * e + j * j + f * f) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0106
exact hcoordinates_witness_witness_witness_witness_right - 0107
have hcenter_identity : k * r = g * g + e * e + j * j + f * f - 0108
trans f * f + j * j + e * e + g * g - 0109
exact hcenter_permuted - 0110
trans ((f * f) + ((j * j) + ((e * e) + (g * g)))) - 0111
simp [add_assoc] - 0112
trans ((g * g) + ((e * e) + ((j * j) + (f * f)))) - 0113
trans ((g * g) + ((f * f) + ((j * j) + (e * e)))) - 0114
trans ((f * f) + ((g * g) + ((j * j) + (e * e)))) - 0115
congr - 0116
refl - 0117
trans ((j * j) + ((g * g) + (e * e))) - 0118
congr - 0119
refl - 0120
apply add_comm - 0121
apply four_square_add_swap_right_tail - 0122
apply four_square_add_swap_right_tail - 0123
congr - 0124
refl - 0125
trans ((e * e) + ((f * f) + (j * j))) - 0126
trans ((f * f) + ((e * e) + (j * j))) - 0127
congr - 0128
refl - 0129
apply add_comm - 0130
apply four_square_add_swap_right_tail - 0131
congr - 0132
refl - 0133
trans ((j * j) + (f * f)) - 0134
apply add_comm - 0135
congr - 0136
refl - 0137
refl - 0138
symm - 0139
simp [add_assoc] - 0140
have hproduct : (p * k) * (k * r) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0141
trans (b * b + d * d + a * a + c * c) * (g * g + e * e + j * j + f * f) - 0142
congr - 0143
exact hfirst_permuted - 0144
exact hcenter_identity - 0145
exact hidentity - 0146
cases hblocks - 0147
cases hblocks_right - 0148
cases hblocks_right_right - 0149
cases habsolute - 0150
cases habsolute_right - 0151
cases habsolute_right_right - 0152
specialize four_square_signed_absolute_block_representation p - 0153
specialize four_square_signed_absolute_block_representation k - 0154
specialize four_square_signed_absolute_block_representation r - 0155
specialize four_square_signed_absolute_block_representation (b * g + d * e + a * j + c * f) - 0156
specialize four_square_signed_absolute_block_representation (b * e + a * f) - 0157
specialize four_square_signed_absolute_block_representation (b * j + c * e) - 0158
specialize four_square_signed_absolute_block_representation (b * f + d * j) - 0159
specialize four_square_signed_absolute_block_representation (0) - 0160
specialize four_square_signed_absolute_block_representation (d * g + c * j) - 0161
specialize four_square_signed_absolute_block_representation (a * g + d * f) - 0162
specialize four_square_signed_absolute_block_representation (c * g + a * e) - 0163
specialize four_square_signed_absolute_block_representation x - 0164
specialize four_square_signed_absolute_block_representation x1 - 0165
specialize four_square_signed_absolute_block_representation x2 - 0166
specialize four_square_signed_absolute_block_representation x3 - 0167
apply four_square_signed_absolute_block_representation - 0168
exact hnonzero - 0169
exact hproduct - 0170
exact hblocks_left - 0171
exact habsolute_left - 0172
exact hblocks_right_left - 0173
exact habsolute_right_left - 0174
exact hblocks_right_right_left - 0175
exact habsolute_right_right_left - 0176
exact hblocks_right_right_right - 0177
exact habsolute_right_right_right