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) → 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_1_0 ftcn_right_mask_1_0. (a + e) + (k) * ftcn_left_mask_1_0 = (0) + (k) * ftcn_right_mask_1_0) -> (exists ftcn_left_mask_1_1 ftcn_right_mask_1_1. (b) + (k) * ftcn_left_mask_1_1 = (f) + (k) * ftcn_right_mask_1_1) -> (exists ftcn_left_mask_1_2 ftcn_right_mask_1_2. (c) + (k) * ftcn_left_mask_1_2 = (g) + (k) * ftcn_right_mask_1_2) -> (exists ftcn_left_mask_1_3 ftcn_right_mask_1_3. (d) + (k) * ftcn_left_mask_1_3 = (j) + (k) * ftcn_right_mask_1_3) -> k * r = e * e + f * f + g * g + j * j -> (exists fsl_a_fssc_mask_1 fsl_b_fssc_mask_1 fsl_c_fssc_mask_1 fsl_d_fssc_mask_1. (p * r) = fsl_a_fssc_mask_1 * fsl_a_fssc_mask_1 + fsl_b_fssc_mask_1 * fsl_b_fssc_mask_1 + fsl_c_fssc_mask_1 * fsl_c_fssc_mask_1 + fsl_d_fssc_mask_1 * fsl_d_fssc_mask_1)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 (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 · e,b · f + c · g + d · j) ∧ (ModEq(k,a · f + b · e + c · j,d · g) ∧ (ModEq(k,a · g + c · e + d · f,b · j) ∧ ModEq(k,a · j + b · g + d · e,c · f)))Definitions: ModEq(k,a · e,b · f + c · g + d · j)ModEq(k,a · f + b · e + c · j,d · g)ModEq(k,a · g + c · e + d · f,b · j)ModEq(k,a · j + b · g + d · e,c · f)Original native command in the exact edition - L39
specialize four_square_signed_natural_negative_first_blocks k - L40
specialize four_square_signed_natural_negative_first_blocks a - L41
specialize four_square_signed_natural_negative_first_blocks b - L42
specialize four_square_signed_natural_negative_first_blocks c - L43
specialize four_square_signed_natural_negative_first_blocks d - L44
specialize four_square_signed_natural_negative_first_blocks e - L45
specialize four_square_signed_natural_negative_first_blocks f - L46
specialize four_square_signed_natural_negative_first_blocks g - L47
specialize four_square_signed_natural_negative_first_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 * e) = (b * f + c * g + d * j) + m0) \/ ((b * f + c * g + d * j) = (a * e) + m0)) /\ ((((a * f + b * e + c * j) = (d * g) + m1) \/ ((d * g) = (a * f + b * e + c * j) + m1)) /\ ((((a * g + c * e + d * f) = (b * j) + m2) \/ ((b * j) = (a * g + c * e + d * f) + m2)) /\ (((a * j + b * g + d * e) = (c * f) + m3) \/ ((c * f) = (a * j + b * g + d * e) + m3))))) - L55
specialize quaternion_coordinate_absolute_total a - L56
specialize quaternion_coordinate_absolute_total b - L57
specialize quaternion_coordinate_absolute_total c - L58
specialize quaternion_coordinate_absolute_total d - L59
specialize quaternion_coordinate_absolute_total e - L60
specialize quaternion_coordinate_absolute_total f - L61
specialize quaternion_coordinate_absolute_total g - L62
specialize quaternion_coordinate_absolute_total j - L63
exact quaternion_coordinate_absolute_total
09Separate the logical casesL64–67
10Establish habsoluteL68–69
Establish this local claim before using it. It is not an additional assumption.
- L68
have habsolute : ((((a * e) = (b * f + c * g + d * j) + x) \/ ((b * f + c * g + d * j) = (a * e) + x)) /\ ((((a * f + b * e + c * j) = (d * g) + x1) \/ ((d * g) = (a * f + b * e + c * j) + x1)) /\ ((((a * g + c * e + d * f) = (b * j) + x2) \/ ((b * j) = (a * g + c * e + d * f) + x2)) /\ (((a * j + b * g + d * e) = (c * f) + x3) \/ ((c * f) = (a * j + b * g + d * e) + x3))))) - L69
exact hcoordinates_witness_witness_witness_witness
11Establish hidentityL70–79
Establish this local claim before using it. It is not an additional assumption.
- L70
have hidentity : (a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + j * j) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - L71
specialize four_square_euler_quaternion a - L72
specialize four_square_euler_quaternion b - L73
specialize four_square_euler_quaternion c - L74
specialize four_square_euler_quaternion d - L75
specialize four_square_euler_quaternion e - L76
specialize four_square_euler_quaternion f - L77
specialize four_square_euler_quaternion g - L78
specialize four_square_euler_quaternion j - L79
specialize four_square_euler_quaternion x
12Use earlier factsL80–84
13Establish hcenter_identityL85–88
14Establish hproductL89–94
Establish this local claim before using it. It is not an additional assumption.
15Separate the logical casesL95–100
16Use earlier factsL101–110
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L101
specialize four_square_signed_absolute_block_representation p - L102
specialize four_square_signed_absolute_block_representation k - L103
specialize four_square_signed_absolute_block_representation r - L104
specialize four_square_signed_absolute_block_representation (a * e) - L105
specialize four_square_signed_absolute_block_representation (a * f + b * e + c * j) - L106
specialize four_square_signed_absolute_block_representation (a * g + c * e + d * f) - L107
specialize four_square_signed_absolute_block_representation (a * j + b * g + d * e) - L108
specialize four_square_signed_absolute_block_representation (b * f + c * g + d * j) - L109
specialize four_square_signed_absolute_block_representation (d * g) - L110
specialize four_square_signed_absolute_block_representation (b * j)
17Use earlier factsL111–120
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L111
specialize four_square_signed_absolute_block_representation (c * f) - L112
specialize four_square_signed_absolute_block_representation x - L113
specialize four_square_signed_absolute_block_representation x1 - L114
specialize four_square_signed_absolute_block_representation x2 - L115
specialize four_square_signed_absolute_block_representation x3 - L116
apply four_square_signed_absolute_block_representation - L117
exact hnonzero - L118
exact hproduct - L119
exact hblocks_left - L120
exact habsolute_left
18Use earlier factsL121–126
Original defined command ledger · 126 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_1_zero ftcn_right_case_1_zero. (e * e + f * f + g * g + j * j) + (k) * ftcn_left_case_1_zero = (0) + (k) * ftcn_right_case_1_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 · e,b · f + c · g + d · j) ∧ (ModEq(k,a · f + b · e + c · j,d · g) ∧ (ModEq(k,a · g + c · e + d · f,b · j) ∧ ModEq(k,a · j + b · g + d · e,c · f)))Exact native replay line
have hblocks : ((exists ftcn_left_case_1_block_0 ftcn_right_case_1_block_0. (a * e) + (k) * ftcn_left_case_1_block_0 = (b * f + c * g + d * j) + (k) * ftcn_right_case_1_block_0) /\ ((exists ftcn_left_case_1_block_1 ftcn_right_case_1_block_1. (a * f + b * e + c * j) + (k) * ftcn_left_case_1_block_1 = (d * g) + (k) * ftcn_right_case_1_block_1) /\ ((exists ftcn_left_case_1_block_2 ftcn_right_case_1_block_2. (a * g + c * e + d * f) + (k) * ftcn_left_case_1_block_2 = (b * j) + (k) * ftcn_right_case_1_block_2) /\ (exists ftcn_left_case_1_block_3 ftcn_right_case_1_block_3. (a * j + b * g + d * e) + (k) * ftcn_left_case_1_block_3 = (c * f) + (k) * ftcn_right_case_1_block_3)))) - 0039
specialize four_square_signed_natural_negative_first_blocks k - 0040
specialize four_square_signed_natural_negative_first_blocks a - 0041
specialize four_square_signed_natural_negative_first_blocks b - 0042
specialize four_square_signed_natural_negative_first_blocks c - 0043
specialize four_square_signed_natural_negative_first_blocks d - 0044
specialize four_square_signed_natural_negative_first_blocks e - 0045
specialize four_square_signed_natural_negative_first_blocks f - 0046
specialize four_square_signed_natural_negative_first_blocks g - 0047
specialize four_square_signed_natural_negative_first_blocks j - 0048
apply four_square_signed_natural_negative_first_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 * e) = (b * f + c * g + d * j) + m0) \/ ((b * f + c * g + d * j) = (a * e) + m0)) /\ ((((a * f + b * e + c * j) = (d * g) + m1) \/ ((d * g) = (a * f + b * e + c * j) + m1)) /\ ((((a * g + c * e + d * f) = (b * j) + m2) \/ ((b * j) = (a * g + c * e + d * f) + m2)) /\ (((a * j + b * g + d * e) = (c * f) + m3) \/ ((c * f) = (a * j + b * g + d * e) + m3))))) - 0055
specialize quaternion_coordinate_absolute_total a - 0056
specialize quaternion_coordinate_absolute_total b - 0057
specialize quaternion_coordinate_absolute_total c - 0058
specialize quaternion_coordinate_absolute_total d - 0059
specialize quaternion_coordinate_absolute_total e - 0060
specialize quaternion_coordinate_absolute_total f - 0061
specialize quaternion_coordinate_absolute_total g - 0062
specialize quaternion_coordinate_absolute_total j - 0063
exact quaternion_coordinate_absolute_total - 0064
cases hcoordinates - 0065
cases hcoordinates_witness - 0066
cases hcoordinates_witness_witness - 0067
cases hcoordinates_witness_witness_witness - 0068
have habsolute : ((((a * e) = (b * f + c * g + d * j) + x) \/ ((b * f + c * g + d * j) = (a * e) + x)) /\ ((((a * f + b * e + c * j) = (d * g) + x1) \/ ((d * g) = (a * f + b * e + c * j) + x1)) /\ ((((a * g + c * e + d * f) = (b * j) + x2) \/ ((b * j) = (a * g + c * e + d * f) + x2)) /\ (((a * j + b * g + d * e) = (c * f) + x3) \/ ((c * f) = (a * j + b * g + d * e) + x3))))) - 0069
exact hcoordinates_witness_witness_witness_witness - 0070
have hidentity : (a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + j * j) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0071
specialize four_square_euler_quaternion a - 0072
specialize four_square_euler_quaternion b - 0073
specialize four_square_euler_quaternion c - 0074
specialize four_square_euler_quaternion d - 0075
specialize four_square_euler_quaternion e - 0076
specialize four_square_euler_quaternion f - 0077
specialize four_square_euler_quaternion g - 0078
specialize four_square_euler_quaternion j - 0079
specialize four_square_euler_quaternion x - 0080
specialize four_square_euler_quaternion x1 - 0081
specialize four_square_euler_quaternion x2 - 0082
specialize four_square_euler_quaternion x3 - 0083
apply four_square_euler_quaternion - 0084
exact habsolute - 0085
have hcenter_identity : k * r = e * e + f * f + g * g + j * j - 0086
trans e * e + f * f + g * g + j * j - 0087
exact hcenter_permuted - 0088
refl - 0089
have hproduct : (p * k) * (k * r) = x * x + x1 * x1 + x2 * x2 + x3 * x3 - 0090
trans (a * a + b * b + c * c + d * d) * (e * e + f * f + g * g + j * j) - 0091
congr - 0092
exact hfirst_permuted - 0093
exact hcenter_identity - 0094
exact hidentity - 0095
cases hblocks - 0096
cases hblocks_right - 0097
cases hblocks_right_right - 0098
cases habsolute - 0099
cases habsolute_right - 0100
cases habsolute_right_right - 0101
specialize four_square_signed_absolute_block_representation p - 0102
specialize four_square_signed_absolute_block_representation k - 0103
specialize four_square_signed_absolute_block_representation r - 0104
specialize four_square_signed_absolute_block_representation (a * e) - 0105
specialize four_square_signed_absolute_block_representation (a * f + b * e + c * j) - 0106
specialize four_square_signed_absolute_block_representation (a * g + c * e + d * f) - 0107
specialize four_square_signed_absolute_block_representation (a * j + b * g + d * e) - 0108
specialize four_square_signed_absolute_block_representation (b * f + c * g + d * j) - 0109
specialize four_square_signed_absolute_block_representation (d * g) - 0110
specialize four_square_signed_absolute_block_representation (b * j) - 0111
specialize four_square_signed_absolute_block_representation (c * f) - 0112
specialize four_square_signed_absolute_block_representation x - 0113
specialize four_square_signed_absolute_block_representation x1 - 0114
specialize four_square_signed_absolute_block_representation x2 - 0115
specialize four_square_signed_absolute_block_representation x3 - 0116
apply four_square_signed_absolute_block_representation - 0117
exact hnonzero - 0118
exact hproduct - 0119
exact hblocks_left - 0120
exact habsolute_left - 0121
exact hblocks_right_left - 0122
exact habsolute_right_left - 0123
exact hblocks_right_right_left - 0124
exact habsolute_right_right_left - 0125
exact hblocks_right_right_right - 0126
exact habsolute_right_right_right