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,0) → ModEq(k,c,g) → 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_3_0 ftcn_right_mask_3_0. (a + e) + (k) * ftcn_left_mask_3_0 = (0) + (k) * ftcn_right_mask_3_0) -> (exists ftcn_left_mask_3_1 ftcn_right_mask_3_1. (b + f) + (k) * ftcn_left_mask_3_1 = (0) + (k) * ftcn_right_mask_3_1) -> (exists ftcn_left_mask_3_2 ftcn_right_mask_3_2. (c) + (k) * ftcn_left_mask_3_2 = (g) + (k) * ftcn_right_mask_3_2) -> (exists ftcn_left_mask_3_3 ftcn_right_mask_3_3. (d) + (k) * ftcn_left_mask_3_3 = (j) + (k) * ftcn_right_mask_3_3) -> k * r = e * e + f * f + g * g + j * j -> (exists fsl_a_fssc_mask_3 fsl_b_fssc_mask_3 fsl_c_fssc_mask_3 fsl_d_fssc_mask_3. (p * r) = fsl_a_fssc_mask_3 * fsl_a_fssc_mask_3 + fsl_b_fssc_mask_3 * fsl_b_fssc_mask_3 + fsl_c_fssc_mask_3 * fsl_c_fssc_mask_3 + fsl_d_fssc_mask_3 * fsl_d_fssc_mask_3)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–24
04Establish hcenter_permutedL25–28
05Establish hzeroL29–37
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.
- L29
have hzero : ModEq(k,e · e + f · f + g · g + j · j,0)Definitions: ModEq(k,e · e + f · f + g · g + j · j,0)Original native command in the exact edition - L30
specialize four_square_signed_cases_norm_quotient_zero_congruence k - L31
specialize four_square_signed_cases_norm_quotient_zero_congruence r - L32
specialize four_square_signed_cases_norm_quotient_zero_congruence e - L33
specialize four_square_signed_cases_norm_quotient_zero_congruence f - L34
specialize four_square_signed_cases_norm_quotient_zero_congruence g - L35
specialize four_square_signed_cases_norm_quotient_zero_congruence j - L36
apply four_square_signed_cases_norm_quotient_zero_congruence - L37
exact hcenter_permuted
06Establish hblocksL38–47
Establish this local claim before using it. It is not an additional assumption.
- L38
have hblocks : ModEq(k,a · j + b · g + c · f + d · e,0) ∧ (ModEq(k,a · g + c · e,b · j + d · f) ∧ (ModEq(k,a · f + d · g,c · j + b · e) ∧ ModEq(k,a · e + b · f,d · j + c · g)))Definitions: ModEq(k,a · j + b · g + c · f + d · e,0)ModEq(k,a · g + c · e,b · j + d · f)ModEq(k,a · f + d · g,c · j + b · e)ModEq(k,a · e + b · f,d · j + c · g)Original native command in the exact edition - L39
specialize four_square_signed_conjugate_mixed_blocks k - L40
specialize four_square_signed_conjugate_mixed_blocks a - L41
specialize four_square_signed_conjugate_mixed_blocks b - L42
specialize four_square_signed_conjugate_mixed_blocks c - L43
specialize four_square_signed_conjugate_mixed_blocks d - L44
specialize four_square_signed_conjugate_mixed_blocks e - L45
specialize four_square_signed_conjugate_mixed_blocks f - L46
specialize four_square_signed_conjugate_mixed_blocks g - L47
specialize four_square_signed_conjugate_mixed_blocks j
07Use earlier factsL48–53
08Establish hcoordinatesL54–63
Establish this local claim before using it. It is not an additional assumption.
- L54
have hcoordinates : exists m0 m1 m2 m3. (((((a * j + b * g + c * f + d * e) = (0) + m0) \/ ((0) = (a * j + b * g + c * f + d * e) + m0)) /\ ((((a * g + c * e) = (b * j + d * f) + m1) \/ ((b * j + d * f) = (a * g + c * e) + m1)) /\ ((((a * f + d * g) = (c * j + b * e) + m2) \/ ((c * j + b * e) = (a * f + d * g) + m2)) /\ (((a * e + b * f) = (d * j + c * g) + m3) \/ ((d * j + c * g) = (a * e + b * f) + m3))))) /\ ((a * a + b * b + c * c + d * d) * (j * j + g * g + f * f + e * e) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3)) - L55
specialize four_square_conjugate_absolute_coordinates_total a - L56
specialize four_square_conjugate_absolute_coordinates_total b - L57
specialize four_square_conjugate_absolute_coordinates_total c - L58
specialize four_square_conjugate_absolute_coordinates_total d - L59
specialize four_square_conjugate_absolute_coordinates_total j - L60
specialize four_square_conjugate_absolute_coordinates_total g - L61
specialize four_square_conjugate_absolute_coordinates_total f - L62
specialize four_square_conjugate_absolute_coordinates_total e - L63
exact four_square_conjugate_absolute_coordinates_total
09Separate the logical casesL64–68
10Establish habsoluteL69–70
Establish this local claim before using it. It is not an additional assumption.
- L69
have habsolute : ((((a * j + b * g + c * f + d * e) = (0) + x) \/ ((0) = (a * j + b * g + c * f + d * e) + x)) /\ ((((a * g + c * e) = (b * j + d * f) + x1) \/ ((b * j + d * f) = (a * g + c * e) + x1)) /\ ((((a * f + d * g) = (c * j + b * e) + x2) \/ ((c * j + b * e) = (a * f + d * g) + x2)) /\ (((a * e + b * f) = (d * j + c * g) + x3) \/ ((d * j + c * g) = (a * e + b * f) + x3))))) - L70
exact hcoordinates_witness_witness_witness_witness_left
11Establish hidentityL71–72
12Establish hcenter_identityL73–82
Establish this local claim before using it. It is not an additional assumption.
- L73
have hcenter_identity : k * r = j * j + g * g + f * f + e * e - L74
trans e * e + f * f + g * g + j * j - L75
exact hcenter_permuted - L76
trans ((e * e) + ((f * f) + ((g * g) + (j * j)))) - L77
simp [add_assoc] - L78
trans ((j * j) + ((g * g) + ((f * f) + (e * e)))) - L79
trans ((j * j) + ((e * e) + ((f * f) + (g * g)))) - L80
trans ((e * e) + ((j * j) + ((f * f) + (g * g)))) - L81
congr - L82
refl
13Calculate and transport equalitiesL83–85
14Use earlier factsL86–88
15Calculate and transport equalitiesL89–94
16Use earlier factsL95–96
17Calculate and transport equalitiesL97–99
18Use earlier factsL100–100
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L100
apply add_comm
19Calculate and transport equalitiesL101–105
20Establish hproductL106–111
Establish this local claim before using it. It is not an additional assumption.
21Separate the logical casesL112–117
22Use earlier factsL118–127
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L118
specialize four_square_signed_absolute_block_representation p - L119
specialize four_square_signed_absolute_block_representation k - L120
specialize four_square_signed_absolute_block_representation r - L121
specialize four_square_signed_absolute_block_representation (a * j + b * g + c * f + d * e) - L122
specialize four_square_signed_absolute_block_representation (a * g + c * e) - L123
specialize four_square_signed_absolute_block_representation (a * f + d * g) - L124
specialize four_square_signed_absolute_block_representation (a * e + b * f) - L125
specialize four_square_signed_absolute_block_representation (0) - L126
specialize four_square_signed_absolute_block_representation (b * j + d * f) - L127
specialize four_square_signed_absolute_block_representation (c * j + b * e)
23Use earlier factsL128–137
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L128
specialize four_square_signed_absolute_block_representation (d * j + c * g) - L129
specialize four_square_signed_absolute_block_representation x - L130
specialize four_square_signed_absolute_block_representation x1 - L131
specialize four_square_signed_absolute_block_representation x2 - L132
specialize four_square_signed_absolute_block_representation x3 - L133
apply four_square_signed_absolute_block_representation - L134
exact hnonzero - L135
exact hproduct - L136
exact hblocks_left - L137
exact habsolute_left
24Use earlier factsL138–143
Original defined command ledger · 143 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 + b * b + c * c + d * d - 0022
trans a * a + b * b + c * c + d * d - 0023
exact hfirst - 0024
refl - 0025
have hcenter_permuted : k * r = e * e + f * f + g * g + j * j - 0026
trans e * e + f * f + g * g + j * j - 0027
exact hcenter - 0028
refl - 0029
have hzero : ModEq(k,e · e + f · f + g · g + j · j,0)Exact native replay line
have hzero : (exists ftcn_left_case_3_zero ftcn_right_case_3_zero. (e * e + f * f + g * g + j * j) + (k) * ftcn_left_case_3_zero = (0) + (k) * ftcn_right_case_3_zero) - 0030
specialize four_square_signed_cases_norm_quotient_zero_congruence k - 0031
specialize four_square_signed_cases_norm_quotient_zero_congruence r - 0032
specialize four_square_signed_cases_norm_quotient_zero_congruence e - 0033
specialize four_square_signed_cases_norm_quotient_zero_congruence f - 0034
specialize four_square_signed_cases_norm_quotient_zero_congruence g - 0035
specialize four_square_signed_cases_norm_quotient_zero_congruence j - 0036
apply four_square_signed_cases_norm_quotient_zero_congruence - 0037
exact hcenter_permuted - 0038
have hblocks : ModEq(k,a · j + b · g + c · f + d · e,0) ∧ (ModEq(k,a · g + c · e,b · j + d · f) ∧ (ModEq(k,a · f + d · g,c · j + b · e) ∧ ModEq(k,a · e + b · f,d · j + c · g)))Exact native replay line
have hblocks : ((exists ftcn_left_case_3_block_0 ftcn_right_case_3_block_0. (a * j + b * g + c * f + d * e) + (k) * ftcn_left_case_3_block_0 = (0) + (k) * ftcn_right_case_3_block_0) /\ ((exists ftcn_left_case_3_block_1 ftcn_right_case_3_block_1. (a * g + c * e) + (k) * ftcn_left_case_3_block_1 = (b * j + d * f) + (k) * ftcn_right_case_3_block_1) /\ ((exists ftcn_left_case_3_block_2 ftcn_right_case_3_block_2. (a * f + d * g) + (k) * ftcn_left_case_3_block_2 = (c * j + b * e) + (k) * ftcn_right_case_3_block_2) /\ (exists ftcn_left_case_3_block_3 ftcn_right_case_3_block_3. (a * e + b * f) + (k) * ftcn_left_case_3_block_3 = (d * j + c * g) + (k) * ftcn_right_case_3_block_3)))) - 0039
specialize four_square_signed_conjugate_mixed_blocks k - 0040
specialize four_square_signed_conjugate_mixed_blocks a - 0041
specialize four_square_signed_conjugate_mixed_blocks b - 0042
specialize four_square_signed_conjugate_mixed_blocks c - 0043
specialize four_square_signed_conjugate_mixed_blocks d - 0044
specialize four_square_signed_conjugate_mixed_blocks e - 0045
specialize four_square_signed_conjugate_mixed_blocks f - 0046
specialize four_square_signed_conjugate_mixed_blocks g - 0047
specialize four_square_signed_conjugate_mixed_blocks j - 0048
apply four_square_signed_conjugate_mixed_blocks - 0049
exact hzero - 0050
exact horientation0 - 0051
exact horientation1 - 0052
exact horientation2 - 0053
exact horientation3 - 0054
have hcoordinates : exists m0 m1 m2 m3. (((((a * j + b * g + c * f + d * e) = (0) + m0) \/ ((0) = (a * j + b * g + c * f + d * e) + m0)) /\ ((((a * g + c * e) = (b * j + d * f) + m1) \/ ((b * j + d * f) = (a * g + c * e) + m1)) /\ ((((a * f + d * g) = (c * j + b * e) + m2) \/ ((c * j + b * e) = (a * f + d * g) + m2)) /\ (((a * e + b * f) = (d * j + c * g) + m3) \/ ((d * j + c * g) = (a * e + b * f) + m3))))) /\ ((a * a + b * b + c * c + d * d) * (j * j + g * g + f * f + e * e) = m0 * m0 + m1 * m1 + m2 * m2 + m3 * m3)) - 0055
specialize four_square_conjugate_absolute_coordinates_total a - 0056
specialize four_square_conjugate_absolute_coordinates_total b - 0057
specialize four_square_conjugate_absolute_coordinates_total c - 0058
specialize four_square_conjugate_absolute_coordinates_total d - 0059
specialize four_square_conjugate_absolute_coordinates_total j - 0060
specialize four_square_conjugate_absolute_coordinates_total g - 0061
specialize four_square_conjugate_absolute_coordinates_total f - 0062
specialize four_square_conjugate_absolute_coordinates_total e - 0063
exact four_square_conjugate_absolute_coordinates_total - 0064
cases hcoordinates - 0065
cases hcoordinates_witness - 0066
cases hcoordinates_witness_witness - 0067
cases hcoordinates_witness_witness_witness - 0068
cases hcoordinates_witness_witness_witness_witness - 0069
have habsolute : ((((a * j + b * g + c * f + d * e) = (0) + x) \/ ((0) = (a * j + b * g + c * f + d * e) + x)) /\ ((((a * g + c * e) = (b * j + d * f) + x1) \/ ((b * j + d * f) = (a * g + c * e) + x1)) /\ ((((a * f + d * g) = (c * j + b * e) + x2) \/ ((c * j + b * e) = (a * f + d * g) + x2)) /\ (((a * e + b * f) = (d * j + c * g) + x3) \/ ((d * j + c * g) = (a * e + b * f) + x3))))) - 0070
exact hcoordinates_witness_witness_witness_witness_left - 0071
have hidentity : (a * a + b * b + c * c + d * d) * (j * j + g * g + f * f + e * e) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0072
exact hcoordinates_witness_witness_witness_witness_right - 0073
have hcenter_identity : k * r = j * j + g * g + f * f + e * e - 0074
trans e * e + f * f + g * g + j * j - 0075
exact hcenter_permuted - 0076
trans ((e * e) + ((f * f) + ((g * g) + (j * j)))) - 0077
simp [add_assoc] - 0078
trans ((j * j) + ((g * g) + ((f * f) + (e * e)))) - 0079
trans ((j * j) + ((e * e) + ((f * f) + (g * g)))) - 0080
trans ((e * e) + ((j * j) + ((f * f) + (g * g)))) - 0081
congr - 0082
refl - 0083
trans ((f * f) + ((j * j) + (g * g))) - 0084
congr - 0085
refl - 0086
apply add_comm - 0087
apply four_square_add_swap_right_tail - 0088
apply four_square_add_swap_right_tail - 0089
congr - 0090
refl - 0091
trans ((g * g) + ((e * e) + (f * f))) - 0092
trans ((e * e) + ((g * g) + (f * f))) - 0093
congr - 0094
refl - 0095
apply add_comm - 0096
apply four_square_add_swap_right_tail - 0097
congr - 0098
refl - 0099
trans ((f * f) + (e * e)) - 0100
apply add_comm - 0101
congr - 0102
refl - 0103
refl - 0104
symm - 0105
simp [add_assoc] - 0106
have hproduct : (p * k) * (k * r) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0107
trans (a * a + b * b + c * c + d * d) * (j * j + g * g + f * f + e * e) - 0108
congr - 0109
exact hfirst_permuted - 0110
exact hcenter_identity - 0111
exact hidentity - 0112
cases hblocks - 0113
cases hblocks_right - 0114
cases hblocks_right_right - 0115
cases habsolute - 0116
cases habsolute_right - 0117
cases habsolute_right_right - 0118
specialize four_square_signed_absolute_block_representation p - 0119
specialize four_square_signed_absolute_block_representation k - 0120
specialize four_square_signed_absolute_block_representation r - 0121
specialize four_square_signed_absolute_block_representation (a * j + b * g + c * f + d * e) - 0122
specialize four_square_signed_absolute_block_representation (a * g + c * e) - 0123
specialize four_square_signed_absolute_block_representation (a * f + d * g) - 0124
specialize four_square_signed_absolute_block_representation (a * e + b * f) - 0125
specialize four_square_signed_absolute_block_representation (0) - 0126
specialize four_square_signed_absolute_block_representation (b * j + d * f) - 0127
specialize four_square_signed_absolute_block_representation (c * j + b * e) - 0128
specialize four_square_signed_absolute_block_representation (d * j + c * g) - 0129
specialize four_square_signed_absolute_block_representation x - 0130
specialize four_square_signed_absolute_block_representation x1 - 0131
specialize four_square_signed_absolute_block_representation x2 - 0132
specialize four_square_signed_absolute_block_representation x3 - 0133
apply four_square_signed_absolute_block_representation - 0134
exact hnonzero - 0135
exact hproduct - 0136
exact hblocks_left - 0137
exact habsolute_left - 0138
exact hblocks_right_left - 0139
exact habsolute_right_left - 0140
exact hblocks_right_right_left - 0141
exact habsolute_right_right_left - 0142
exact hblocks_right_right_right - 0143
exact habsolute_right_right_right