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,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_6_0 ftcn_right_mask_6_0. (a) + (k) * ftcn_left_mask_6_0 = (e) + (k) * ftcn_right_mask_6_0) -> (exists ftcn_left_mask_6_1 ftcn_right_mask_6_1. (b + f) + (k) * ftcn_left_mask_6_1 = (0) + (k) * ftcn_right_mask_6_1) -> (exists ftcn_left_mask_6_2 ftcn_right_mask_6_2. (c + g) + (k) * ftcn_left_mask_6_2 = (0) + (k) * ftcn_right_mask_6_2) -> (exists ftcn_left_mask_6_3 ftcn_right_mask_6_3. (d) + (k) * ftcn_left_mask_6_3 = (j) + (k) * ftcn_right_mask_6_3) -> k * r = e * e + f * f + g * g + j * j -> (exists fsl_a_fssc_mask_6 fsl_b_fssc_mask_6 fsl_c_fssc_mask_6 fsl_d_fssc_mask_6. (p * r) = fsl_a_fssc_mask_6 * fsl_a_fssc_mask_6 + fsl_b_fssc_mask_6 * fsl_b_fssc_mask_6 + fsl_c_fssc_mask_6 * fsl_c_fssc_mask_6 + fsl_d_fssc_mask_6 * fsl_d_fssc_mask_6)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 + c * c + a * a + 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 ((b * b) + ((c * c) + ((a * a) + (d * d)))) - 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–31
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L31
trans ((c * c) + ((a * a) + (d * d)))
05Use earlier factsL32–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
apply four_square_add_swap_right_tail
06Calculate and transport equalitiesL33–37
07Establish hcenter_permutedL38–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square add swap right tail.
- L38
have hcenter_permuted : k * r = f * f + g * g + e * e + 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 ((f * f) + ((g * g) + ((e * e) + (j * j)))) - L44
trans ((f * f) + ((e * e) + ((g * g) + (j * j)))) - L45
apply four_square_add_swap_right_tail - L46
congr - L47
refl
08Calculate and transport equalitiesL48–48
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L48
trans ((g * g) + ((e * e) + (j * j)))
09Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
apply four_square_add_swap_right_tail
10Calculate and transport equalitiesL50–54
11Establish 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,f · f + g · g + e · e + j · j,0)Definitions: ModEq(k,f · f + g · g + e · e + 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 f - L59
specialize four_square_signed_cases_norm_quotient_zero_congruence g - L60
specialize four_square_signed_cases_norm_quotient_zero_congruence e - 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
12Establish hblocksL64–73
Establish this local claim before using it. It is not an additional assumption.
- L64
have hblocks : ModEq(k,b · j + c · e + a · g + d · f,0) ∧ (ModEq(k,b · e + a · f,c · j + d · g) ∧ (ModEq(k,b · g + d · e,a · j + c · f) ∧ ModEq(k,b · f + c · g,d · j + a · e)))Definitions: ModEq(k,b · j + c · e + a · g + d · f,0)ModEq(k,b · e + a · f,c · j + d · g)ModEq(k,b · g + d · e,a · j + c · f)ModEq(k,b · f + c · g,d · j + a · e)Original native command in the exact edition - L65
specialize four_square_signed_conjugate_mixed_blocks k - L66
specialize four_square_signed_conjugate_mixed_blocks b - L67
specialize four_square_signed_conjugate_mixed_blocks c - L68
specialize four_square_signed_conjugate_mixed_blocks a - L69
specialize four_square_signed_conjugate_mixed_blocks d - L70
specialize four_square_signed_conjugate_mixed_blocks f - L71
specialize four_square_signed_conjugate_mixed_blocks g - L72
specialize four_square_signed_conjugate_mixed_blocks e - L73
specialize four_square_signed_conjugate_mixed_blocks j
13Use earlier factsL74–79
14Establish hcoordinatesL80–89
Establish this local claim before using it. It is not an additional assumption.
- L80
have hcoordinates : exists m0 m1 m2 m3. (((((b * j + c * e + a * g + d * f) = (0) + m0) \/ ((0) = (b * j + c * e + a * g + d * f) + m0)) /\ ((((b * e + a * f) = (c * j + d * g) + m1) \/ ((c * j + d * g) = (b * e + a * f) + m1)) /\ ((((b * g + d * e) = (a * j + c * f) + m2) \/ ((a * j + c * f) = (b * g + d * e) + m2)) /\ (((b * f + c * g) = (d * j + a * e) + m3) \/ ((d * j + a * e) = (b * f + c * g) + m3))))) /\ ((b * b + c * c + a * a + d * d) * (j * j + e * e + g * g + f * f) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3)) - L81
specialize four_square_conjugate_absolute_coordinates_total b - L82
specialize four_square_conjugate_absolute_coordinates_total c - L83
specialize four_square_conjugate_absolute_coordinates_total a - L84
specialize four_square_conjugate_absolute_coordinates_total d - L85
specialize four_square_conjugate_absolute_coordinates_total j - L86
specialize four_square_conjugate_absolute_coordinates_total e - L87
specialize four_square_conjugate_absolute_coordinates_total g - L88
specialize four_square_conjugate_absolute_coordinates_total f - L89
exact four_square_conjugate_absolute_coordinates_total
15Separate the logical casesL90–94
16Establish habsoluteL95–96
Establish this local claim before using it. It is not an additional assumption.
- L95
have habsolute : ((((b * j + c * e + a * g + d * f) = (0) + x) \/ ((0) = (b * j + c * e + a * g + d * f) + x)) /\ ((((b * e + a * f) = (c * j + d * g) + x1) \/ ((c * j + d * g) = (b * e + a * f) + x1)) /\ ((((b * g + d * e) = (a * j + c * f) + x2) \/ ((a * j + c * f) = (b * g + d * e) + x2)) /\ (((b * f + c * g) = (d * j + a * e) + x3) \/ ((d * j + a * e) = (b * f + c * g) + x3))))) - L96
exact hcoordinates_witness_witness_witness_witness_left
17Establish hidentityL97–98
18Establish hcenter_identityL99–108
Establish this local claim before using it. It is not an additional assumption.
- L99
have hcenter_identity : k * r = j * j + e * e + g * g + f * f - L100
trans f * f + g * g + e * e + j * j - L101
exact hcenter_permuted - L102
trans ((f * f) + ((g * g) + ((e * e) + (j * j)))) - L103
simp [add_assoc] - L104
trans ((j * j) + ((e * e) + ((g * g) + (f * f)))) - L105
trans ((j * j) + ((f * f) + ((g * g) + (e * e)))) - L106
trans ((f * f) + ((j * j) + ((g * g) + (e * e)))) - L107
congr - L108
refl
19Calculate and transport equalitiesL109–111
20Use earlier factsL112–114
21Calculate and transport equalitiesL115–120
22Use earlier factsL121–122
23Calculate and transport equalitiesL123–125
24Use earlier factsL126–126
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L126
apply add_comm
25Calculate and transport equalitiesL127–131
26Establish hproductL132–137
Establish this local claim before using it. It is not an additional assumption.
27Separate the logical casesL138–143
28Use earlier factsL144–153
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L144
specialize four_square_signed_absolute_block_representation p - L145
specialize four_square_signed_absolute_block_representation k - L146
specialize four_square_signed_absolute_block_representation r - L147
specialize four_square_signed_absolute_block_representation (b * j + c * e + a * g + d * f) - L148
specialize four_square_signed_absolute_block_representation (b * e + a * f) - L149
specialize four_square_signed_absolute_block_representation (b * g + d * e) - L150
specialize four_square_signed_absolute_block_representation (b * f + c * g) - L151
specialize four_square_signed_absolute_block_representation (0) - L152
specialize four_square_signed_absolute_block_representation (c * j + d * g) - L153
specialize four_square_signed_absolute_block_representation (a * j + c * f)
29Use earlier factsL154–163
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L154
specialize four_square_signed_absolute_block_representation (d * j + a * e) - L155
specialize four_square_signed_absolute_block_representation x - L156
specialize four_square_signed_absolute_block_representation x1 - L157
specialize four_square_signed_absolute_block_representation x2 - L158
specialize four_square_signed_absolute_block_representation x3 - L159
apply four_square_signed_absolute_block_representation - L160
exact hnonzero - L161
exact hproduct - L162
exact hblocks_left - L163
exact habsolute_left
30Use earlier factsL164–169
Original defined command ledger · 169 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 + c * c + a * a + 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 ((b * b) + ((c * c) + ((a * a) + (d * d)))) - 0027
trans ((b * b) + ((a * a) + ((c * c) + (d * d)))) - 0028
apply four_square_add_swap_right_tail - 0029
congr - 0030
refl - 0031
trans ((c * c) + ((a * a) + (d * d))) - 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 = f * f + g * g + e * e + 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 ((f * f) + ((g * g) + ((e * e) + (j * j)))) - 0044
trans ((f * f) + ((e * e) + ((g * g) + (j * j)))) - 0045
apply four_square_add_swap_right_tail - 0046
congr - 0047
refl - 0048
trans ((g * g) + ((e * e) + (j * j))) - 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,f · f + g · g + e · e + j · j,0)Exact native replay line
have hzero : (exists ftcn_left_case_6_zero ftcn_right_case_6_zero. (f * f + g * g + e * e + j * j) + (k) * ftcn_left_case_6_zero = (0) + (k) * ftcn_right_case_6_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 f - 0059
specialize four_square_signed_cases_norm_quotient_zero_congruence g - 0060
specialize four_square_signed_cases_norm_quotient_zero_congruence e - 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,b · j + c · e + a · g + d · f,0) ∧ (ModEq(k,b · e + a · f,c · j + d · g) ∧ (ModEq(k,b · g + d · e,a · j + c · f) ∧ ModEq(k,b · f + c · g,d · j + a · e)))Exact native replay line
have hblocks : ((exists ftcn_left_case_6_block_0 ftcn_right_case_6_block_0. (b * j + c * e + a * g + d * f) + (k) * ftcn_left_case_6_block_0 = (0) + (k) * ftcn_right_case_6_block_0) /\ ((exists ftcn_left_case_6_block_1 ftcn_right_case_6_block_1. (b * e + a * f) + (k) * ftcn_left_case_6_block_1 = (c * j + d * g) + (k) * ftcn_right_case_6_block_1) /\ ((exists ftcn_left_case_6_block_2 ftcn_right_case_6_block_2. (b * g + d * e) + (k) * ftcn_left_case_6_block_2 = (a * j + c * f) + (k) * ftcn_right_case_6_block_2) /\ (exists ftcn_left_case_6_block_3 ftcn_right_case_6_block_3. (b * f + c * g) + (k) * ftcn_left_case_6_block_3 = (d * j + a * e) + (k) * ftcn_right_case_6_block_3)))) - 0065
specialize four_square_signed_conjugate_mixed_blocks k - 0066
specialize four_square_signed_conjugate_mixed_blocks b - 0067
specialize four_square_signed_conjugate_mixed_blocks c - 0068
specialize four_square_signed_conjugate_mixed_blocks a - 0069
specialize four_square_signed_conjugate_mixed_blocks d - 0070
specialize four_square_signed_conjugate_mixed_blocks f - 0071
specialize four_square_signed_conjugate_mixed_blocks g - 0072
specialize four_square_signed_conjugate_mixed_blocks e - 0073
specialize four_square_signed_conjugate_mixed_blocks j - 0074
apply four_square_signed_conjugate_mixed_blocks - 0075
exact hzero - 0076
exact horientation1 - 0077
exact horientation2 - 0078
exact horientation0 - 0079
exact horientation3 - 0080
have hcoordinates : exists m0 m1 m2 m3. (((((b * j + c * e + a * g + d * f) = (0) + m0) \/ ((0) = (b * j + c * e + a * g + d * f) + m0)) /\ ((((b * e + a * f) = (c * j + d * g) + m1) \/ ((c * j + d * g) = (b * e + a * f) + m1)) /\ ((((b * g + d * e) = (a * j + c * f) + m2) \/ ((a * j + c * f) = (b * g + d * e) + m2)) /\ (((b * f + c * g) = (d * j + a * e) + m3) \/ ((d * j + a * e) = (b * f + c * g) + m3))))) /\ ((b * b + c * c + a * a + d * d) * (j * j + e * e + g * g + f * f) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3)) - 0081
specialize four_square_conjugate_absolute_coordinates_total b - 0082
specialize four_square_conjugate_absolute_coordinates_total c - 0083
specialize four_square_conjugate_absolute_coordinates_total a - 0084
specialize four_square_conjugate_absolute_coordinates_total d - 0085
specialize four_square_conjugate_absolute_coordinates_total j - 0086
specialize four_square_conjugate_absolute_coordinates_total e - 0087
specialize four_square_conjugate_absolute_coordinates_total g - 0088
specialize four_square_conjugate_absolute_coordinates_total f - 0089
exact four_square_conjugate_absolute_coordinates_total - 0090
cases hcoordinates - 0091
cases hcoordinates_witness - 0092
cases hcoordinates_witness_witness - 0093
cases hcoordinates_witness_witness_witness - 0094
cases hcoordinates_witness_witness_witness_witness - 0095
have habsolute : ((((b * j + c * e + a * g + d * f) = (0) + x) \/ ((0) = (b * j + c * e + a * g + d * f) + x)) /\ ((((b * e + a * f) = (c * j + d * g) + x1) \/ ((c * j + d * g) = (b * e + a * f) + x1)) /\ ((((b * g + d * e) = (a * j + c * f) + x2) \/ ((a * j + c * f) = (b * g + d * e) + x2)) /\ (((b * f + c * g) = (d * j + a * e) + x3) \/ ((d * j + a * e) = (b * f + c * g) + x3))))) - 0096
exact hcoordinates_witness_witness_witness_witness_left - 0097
have hidentity : (b * b + c * c + a * a + d * d) * (j * j + e * e + g * g + f * f) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0098
exact hcoordinates_witness_witness_witness_witness_right - 0099
have hcenter_identity : k * r = j * j + e * e + g * g + f * f - 0100
trans f * f + g * g + e * e + j * j - 0101
exact hcenter_permuted - 0102
trans ((f * f) + ((g * g) + ((e * e) + (j * j)))) - 0103
simp [add_assoc] - 0104
trans ((j * j) + ((e * e) + ((g * g) + (f * f)))) - 0105
trans ((j * j) + ((f * f) + ((g * g) + (e * e)))) - 0106
trans ((f * f) + ((j * j) + ((g * g) + (e * e)))) - 0107
congr - 0108
refl - 0109
trans ((g * g) + ((j * j) + (e * e))) - 0110
congr - 0111
refl - 0112
apply add_comm - 0113
apply four_square_add_swap_right_tail - 0114
apply four_square_add_swap_right_tail - 0115
congr - 0116
refl - 0117
trans ((e * e) + ((f * f) + (g * g))) - 0118
trans ((f * f) + ((e * e) + (g * g))) - 0119
congr - 0120
refl - 0121
apply add_comm - 0122
apply four_square_add_swap_right_tail - 0123
congr - 0124
refl - 0125
trans ((g * g) + (f * f)) - 0126
apply add_comm - 0127
congr - 0128
refl - 0129
refl - 0130
symm - 0131
simp [add_assoc] - 0132
have hproduct : (p * k) * (k * r) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0133
trans (b * b + c * c + a * a + d * d) * (j * j + e * e + g * g + f * f) - 0134
congr - 0135
exact hfirst_permuted - 0136
exact hcenter_identity - 0137
exact hidentity - 0138
cases hblocks - 0139
cases hblocks_right - 0140
cases hblocks_right_right - 0141
cases habsolute - 0142
cases habsolute_right - 0143
cases habsolute_right_right - 0144
specialize four_square_signed_absolute_block_representation p - 0145
specialize four_square_signed_absolute_block_representation k - 0146
specialize four_square_signed_absolute_block_representation r - 0147
specialize four_square_signed_absolute_block_representation (b * j + c * e + a * g + d * f) - 0148
specialize four_square_signed_absolute_block_representation (b * e + a * f) - 0149
specialize four_square_signed_absolute_block_representation (b * g + d * e) - 0150
specialize four_square_signed_absolute_block_representation (b * f + c * g) - 0151
specialize four_square_signed_absolute_block_representation (0) - 0152
specialize four_square_signed_absolute_block_representation (c * j + d * g) - 0153
specialize four_square_signed_absolute_block_representation (a * j + c * f) - 0154
specialize four_square_signed_absolute_block_representation (d * j + a * e) - 0155
specialize four_square_signed_absolute_block_representation x - 0156
specialize four_square_signed_absolute_block_representation x1 - 0157
specialize four_square_signed_absolute_block_representation x2 - 0158
specialize four_square_signed_absolute_block_representation x3 - 0159
apply four_square_signed_absolute_block_representation - 0160
exact hnonzero - 0161
exact hproduct - 0162
exact hblocks_left - 0163
exact habsolute_left - 0164
exact hblocks_right_left - 0165
exact habsolute_right_left - 0166
exact hblocks_right_right_left - 0167
exact habsolute_right_right_left - 0168
exact hblocks_right_right_right - 0169
exact habsolute_right_right_right