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
∀ k. ∀ a. ∀ b. ∀ c. ∀ d. ∀ e. ∀ f. ∀ g. ∀ h. ModEq(k,e · e + f · f + g · g + h · h,0) → ModEq(k,a + e,0) → ModEq(k,b,f) → ModEq(k,c,g) → ModEq(k,d,h) → ModEq(k,a · e,b · f + c · g + d · h) ∧ (ModEq(k,a · f + b · e + c · h,d · g) ∧ (ModEq(k,a · g + c · e + d · f,b · h) ∧ ModEq(k,a · h + b · g + d · e,c · f)))Every 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 k a b c d e f g h. (exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_norm ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_norm. (e * e + f * f + g * g + h * h) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_norm = (0) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_norm) -> (exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_0 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_0. (a + e) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_0 = (0) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_0) -> (exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_1 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_1. (b) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_1 = (f) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_1) -> (exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_2 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_2. (c) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_2 = (g) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_2) -> (exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_3 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_3. (d) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_3 = (h) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_3) -> ((exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_0 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_0. (a * e) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_0 = (b * f + c * g + d * h) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_0) /\ ((exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_1 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_1. (a * f + b * e + c * h) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_1 = (d * g) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_1) /\ ((exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_2 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_2. (a * g + c * e + d * f) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_2 = (b * h) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_2) /\ (exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_3 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_3. (a * h + b * g + d * e) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_3 = (c * f) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_3))))Proof neighborhood
Direct theorem prerequisites
FS005M four_square_signed_cross_positive FS005N four_square_signed_cross_negative FS005O four_square_signed_cross_mixed_zero FS005T four_square_signed_cross_mixed_zero_reversed FS005U four_square_signed_dot_positive FS005V four_square_signed_dot_negative_zero FS005P four_square_signed_mod_zero_add FS005Q four_square_signed_mod_zero_equivalent FS005W four_square_signed_mod_zero_plus_congruent FS005X four_square_signed_partition_balance mod_eq_add · Stable closed mod_eq_symm · Stable closed mod_eq_trans · Stable closed add_assoc · Stable closed add_comm · Stable closed FS0006 four_square_add_swap_right_tailDirect 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 (7)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Establish hpair01L15–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed cross mixed zero reversed.
- L15
have hpair01 : ModEq(k,a · f + b · e,0)Definitions: ModEq(k,a · f + b · e,0)Original native command in the exact edition - L16
specialize four_square_signed_cross_mixed_zero_reversed k - L17
specialize four_square_signed_cross_mixed_zero_reversed a - L18
specialize four_square_signed_cross_mixed_zero_reversed b - L19
specialize four_square_signed_cross_mixed_zero_reversed e - L20
specialize four_square_signed_cross_mixed_zero_reversed f - L21
apply four_square_signed_cross_mixed_zero_reversed - L22
exact horient0 - L23
exact horient1
04Establish hpair02L24–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed cross mixed zero reversed.
- L24
have hpair02 : ModEq(k,a · g + c · e,0)Definitions: ModEq(k,a · g + c · e,0)Original native command in the exact edition - L25
specialize four_square_signed_cross_mixed_zero_reversed k - L26
specialize four_square_signed_cross_mixed_zero_reversed a - L27
specialize four_square_signed_cross_mixed_zero_reversed c - L28
specialize four_square_signed_cross_mixed_zero_reversed e - L29
specialize four_square_signed_cross_mixed_zero_reversed g - L30
apply four_square_signed_cross_mixed_zero_reversed - L31
exact horient0 - L32
exact horient2
05Establish hpair03L33–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed cross mixed zero reversed.
- L33
have hpair03 : ModEq(k,a · h + d · e,0)Definitions: ModEq(k,a · h + d · e,0)Original native command in the exact edition - L34
specialize four_square_signed_cross_mixed_zero_reversed k - L35
specialize four_square_signed_cross_mixed_zero_reversed a - L36
specialize four_square_signed_cross_mixed_zero_reversed d - L37
specialize four_square_signed_cross_mixed_zero_reversed e - L38
specialize four_square_signed_cross_mixed_zero_reversed h - L39
apply four_square_signed_cross_mixed_zero_reversed - L40
exact horient0 - L41
exact horient3
06Establish hpair12L42–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed cross positive.
- L42
have hpair12 : ModEq(k,b · g,c · f)Definitions: ModEq(k,b · g,c · f)Original native command in the exact edition - L43
specialize four_square_signed_cross_positive k - L44
specialize four_square_signed_cross_positive b - L45
specialize four_square_signed_cross_positive c - L46
specialize four_square_signed_cross_positive f - L47
specialize four_square_signed_cross_positive g - L48
apply four_square_signed_cross_positive - L49
exact horient1 - L50
exact horient2
07Establish hpair13L51–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed cross positive.
- L51
have hpair13 : ModEq(k,b · h,d · f)Definitions: ModEq(k,b · h,d · f)Original native command in the exact edition - L52
specialize four_square_signed_cross_positive k - L53
specialize four_square_signed_cross_positive b - L54
specialize four_square_signed_cross_positive d - L55
specialize four_square_signed_cross_positive f - L56
specialize four_square_signed_cross_positive h - L57
apply four_square_signed_cross_positive - L58
exact horient1 - L59
exact horient3
08Establish hpair23L60–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed cross positive.
- L60
have hpair23 : ModEq(k,c · h,d · g)Definitions: ModEq(k,c · h,d · g)Original native command in the exact edition - L61
specialize four_square_signed_cross_positive k - L62
specialize four_square_signed_cross_positive c - L63
specialize four_square_signed_cross_positive d - L64
specialize four_square_signed_cross_positive g - L65
specialize four_square_signed_cross_positive h - L66
apply four_square_signed_cross_positive - L67
exact horient2 - L68
exact horient3
09Establish hdot1L69–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed dot positive.
- L69
have hdot1 : ModEq(k,b · f,f · f)Definitions: ModEq(k,b · f,f · f)Original native command in the exact edition - L70
specialize four_square_signed_dot_positive k - L71
specialize four_square_signed_dot_positive b - L72
specialize four_square_signed_dot_positive f - L73
apply four_square_signed_dot_positive - L74
exact horient1
10Establish hdot2L75–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed dot positive.
- L75
have hdot2 : ModEq(k,c · g,g · g)Definitions: ModEq(k,c · g,g · g)Original native command in the exact edition - L76
specialize four_square_signed_dot_positive k - L77
specialize four_square_signed_dot_positive c - L78
specialize four_square_signed_dot_positive g - L79
apply four_square_signed_dot_positive - L80
exact horient2
11Establish hdot3L81–86
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed dot positive.
- L81
have hdot3 : ModEq(k,d · h,h · h)Definitions: ModEq(k,d · h,h · h)Original native command in the exact edition - L82
specialize four_square_signed_dot_positive k - L83
specialize four_square_signed_dot_positive d - L84
specialize four_square_signed_dot_positive h - L85
apply four_square_signed_dot_positive - L86
exact horient3
12Establish hpositive2L87–95
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq add.
- L87
have hpositive2 : ModEq(k,b · f + c · g,f · f + g · g)Definitions: ModEq(k,b · f + c · g,f · f + g · g)Original native command in the exact edition - L88
specialize mod_eq_add k - L89
specialize mod_eq_add (b * f) - L90
specialize mod_eq_add (f * f) - L91
specialize mod_eq_add (c * g) - L92
specialize mod_eq_add (g * g) - L93
apply mod_eq_add - L94
exact hdot1 - L95
exact hdot2
13Establish hpositive3L96–104
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq add.
- L96
have hpositive3 : ModEq(k,b · f + c · g + d · h,f · f + g · g + h · h)Definitions: ModEq(k,b · f + c · g + d · h,f · f + g · g + h · h)Original native command in the exact edition - L97
specialize mod_eq_add k - L98
specialize mod_eq_add ((b * f) + (c * g)) - L99
specialize mod_eq_add ((f * f) + (g * g)) - L100
specialize mod_eq_add (d * h) - L101
specialize mod_eq_add (h * h) - L102
apply mod_eq_add - L103
exact hpositive2 - L104
exact hdot3
14Establish hdot0L105–110
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed dot negative zero.
- L105
have hdot0 : ModEq(k,a · e + e · e,0)Definitions: ModEq(k,a · e + e · e,0)Original native command in the exact edition - L106
specialize four_square_signed_dot_negative_zero k - L107
specialize four_square_signed_dot_negative_zero a - L108
specialize four_square_signed_dot_negative_zero e - L109
apply four_square_signed_dot_negative_zero - L110
exact horient0
15Establish hnorm_shuffleL111–120
Establish this local claim before using it. It is not an additional assumption.
- L111
have hnorm_shuffle : ((((f * f) + (g * g)) + (h * h)) + (e * e)) = (e * e + f * f + g * g + h * h) - L112
trans ((f * f) + ((g * g) + ((h * h) + (e * e)))) - L113
simp [add_assoc] - L114
trans ((e * e) + ((f * f) + ((g * g) + (h * h)))) - L115
trans ((e * e) + ((f * f) + ((g * g) + (h * h)))) - L116
trans ((f * f) + ((e * e) + ((g * g) + (h * h)))) - L117
congr - L118
refl - L119
trans ((g * g) + ((e * e) + (h * h))) - L120
congr
16Calculate and transport equalitiesL121–121
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L121
refl
17Use earlier factsL122–124
18Calculate and transport equalitiesL125–129
19Establish hordered_normL130–132
Establish this local claim before using it. It is not an additional assumption.
- L130
have hordered_norm : ModEq(k,f · f + g · g + h · h + e · e,0)Definitions: ModEq(k,f · f + g · g + h · h + e · e,0)Original native command in the exact edition - L131
rewrite hnorm_shuffle - L132
exact hnorm
20Establish hpartitionL133–142
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed partition balance.
- L133
have hpartition : ModEq(k,b · f + c · g + d · h,a · e)Definitions: ModEq(k,b · f + c · g + d · h,a · e)Original native command in the exact edition - L134
specialize four_square_signed_partition_balance k - L135
specialize four_square_signed_partition_balance (((b * f) + (c * g)) + (d * h)) - L136
specialize four_square_signed_partition_balance (((f * f) + (g * g)) + (h * h)) - L137
specialize four_square_signed_partition_balance (a * e) - L138
specialize four_square_signed_partition_balance (e * e) - L139
apply four_square_signed_partition_balance - L140
exact hpositive3 - L141
exact hdot0 - L142
exact hordered_norm
21Establish hblock0L143–148
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L143
have hblock0 : ModEq(k,a · e,b · f + c · g + d · h)Definitions: ModEq(k,a · e,b · f + c · g + d · h)Original native command in the exact edition - L144
specialize mod_eq_symm k - L145
specialize mod_eq_symm (((b * f) + (c * g)) + (d * h)) - L146
specialize mod_eq_symm (a * e) - L147
apply mod_eq_symm - L148
exact hpartition
22Establish hblock1L149–156
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed mod zero plus congruent.
- L149
have hblock1 : ModEq(k,a · f + b · e + c · h,d · g)Definitions: ModEq(k,a · f + b · e + c · h,d · g)Original native command in the exact edition - L150
specialize four_square_signed_mod_zero_plus_congruent k - L151
specialize four_square_signed_mod_zero_plus_congruent (a * f + b * e) - L152
specialize four_square_signed_mod_zero_plus_congruent (c * h) - L153
specialize four_square_signed_mod_zero_plus_congruent (d * g) - L154
apply four_square_signed_mod_zero_plus_congruent - L155
exact hpair01 - L156
exact hpair23
23Establish hpair13_reverseL157–162
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L157
have hpair13_reverse : ModEq(k,d · f,b · h)Definitions: ModEq(k,d · f,b · h)Original native command in the exact edition - L158
specialize mod_eq_symm k - L159
specialize mod_eq_symm (b * h) - L160
specialize mod_eq_symm (d * f) - L161
apply mod_eq_symm - L162
exact hpair13
24Establish hblock2L163–170
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed mod zero plus congruent.
- L163
have hblock2 : ModEq(k,a · g + c · e + d · f,b · h)Definitions: ModEq(k,a · g + c · e + d · f,b · h)Original native command in the exact edition - L164
specialize four_square_signed_mod_zero_plus_congruent k - L165
specialize four_square_signed_mod_zero_plus_congruent (a * g + c * e) - L166
specialize four_square_signed_mod_zero_plus_congruent (d * f) - L167
specialize four_square_signed_mod_zero_plus_congruent (b * h) - L168
apply four_square_signed_mod_zero_plus_congruent - L169
exact hpair02 - L170
exact hpair13_reverse
25Establish hblock3_reorderedL171–178
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed mod zero plus congruent.
- L171
have hblock3_reordered : ModEq(k,a · h + d · e + b · g,c · f)Definitions: ModEq(k,a · h + d · e + b · g,c · f)Original native command in the exact edition - L172
specialize four_square_signed_mod_zero_plus_congruent k - L173
specialize four_square_signed_mod_zero_plus_congruent (a * h + d * e) - L174
specialize four_square_signed_mod_zero_plus_congruent (b * g) - L175
specialize four_square_signed_mod_zero_plus_congruent (c * f) - L176
apply four_square_signed_mod_zero_plus_congruent - L177
exact hpair03 - L178
exact hpair12
26Establish hblock3_shuffleL179–188
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add comm.
27Calculate and transport equalitiesL189–192
28Establish hblock3L193–194
Establish this local claim before using it. It is not an additional assumption.
- L193
have hblock3 : ModEq(k,a · h + b · g + d · e,c · f)Definitions: ModEq(k,a · h + b · g + d · e,c · f)Original native command in the exact edition - L194
exact hblock3_reordered
29Separate the logical casesL195–195
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L195
split
30Use earlier factsL196–196
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L196
exact hblock0
31Separate the logical casesL197–197
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L197
split
32Use earlier factsL198–198
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L198
exact hblock1
33Separate the logical casesL199–199
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L199
split
Original defined command ledger · 201 lines
- 0001
intro k - 0002
intro a - 0003
intro b - 0004
intro c - 0005
intro d - 0006
intro e - 0007
intro f - 0008
intro g - 0009
intro h - 0010
intro hnorm - 0011
intro horient0 - 0012
intro horient1 - 0013
intro horient2 - 0014
intro horient3 - 0015
have hpair01 : ModEq(k,a · f + b · e,0)Exact native replay line
have hpair01 : exists ftcn_left_fssq_surface_pair_01 ftcn_right_fssq_surface_pair_01. (a * f + b * e) + (k) * ftcn_left_fssq_surface_pair_01 = (0) + (k) * ftcn_right_fssq_surface_pair_01 - 0016
specialize four_square_signed_cross_mixed_zero_reversed k - 0017
specialize four_square_signed_cross_mixed_zero_reversed a - 0018
specialize four_square_signed_cross_mixed_zero_reversed b - 0019
specialize four_square_signed_cross_mixed_zero_reversed e - 0020
specialize four_square_signed_cross_mixed_zero_reversed f - 0021
apply four_square_signed_cross_mixed_zero_reversed - 0022
exact horient0 - 0023
exact horient1 - 0024
have hpair02 : ModEq(k,a · g + c · e,0)Exact native replay line
have hpair02 : exists ftcn_left_fssq_surface_pair_02 ftcn_right_fssq_surface_pair_02. (a * g + c * e) + (k) * ftcn_left_fssq_surface_pair_02 = (0) + (k) * ftcn_right_fssq_surface_pair_02 - 0025
specialize four_square_signed_cross_mixed_zero_reversed k - 0026
specialize four_square_signed_cross_mixed_zero_reversed a - 0027
specialize four_square_signed_cross_mixed_zero_reversed c - 0028
specialize four_square_signed_cross_mixed_zero_reversed e - 0029
specialize four_square_signed_cross_mixed_zero_reversed g - 0030
apply four_square_signed_cross_mixed_zero_reversed - 0031
exact horient0 - 0032
exact horient2 - 0033
have hpair03 : ModEq(k,a · h + d · e,0)Exact native replay line
have hpair03 : exists ftcn_left_fssq_surface_pair_03 ftcn_right_fssq_surface_pair_03. (a * h + d * e) + (k) * ftcn_left_fssq_surface_pair_03 = (0) + (k) * ftcn_right_fssq_surface_pair_03 - 0034
specialize four_square_signed_cross_mixed_zero_reversed k - 0035
specialize four_square_signed_cross_mixed_zero_reversed a - 0036
specialize four_square_signed_cross_mixed_zero_reversed d - 0037
specialize four_square_signed_cross_mixed_zero_reversed e - 0038
specialize four_square_signed_cross_mixed_zero_reversed h - 0039
apply four_square_signed_cross_mixed_zero_reversed - 0040
exact horient0 - 0041
exact horient3 - 0042
have hpair12 : ModEq(k,b · g,c · f)Exact native replay line
have hpair12 : exists ftcn_left_fssq_surface_pair_12 ftcn_right_fssq_surface_pair_12. (b * g) + (k) * ftcn_left_fssq_surface_pair_12 = (c * f) + (k) * ftcn_right_fssq_surface_pair_12 - 0043
specialize four_square_signed_cross_positive k - 0044
specialize four_square_signed_cross_positive b - 0045
specialize four_square_signed_cross_positive c - 0046
specialize four_square_signed_cross_positive f - 0047
specialize four_square_signed_cross_positive g - 0048
apply four_square_signed_cross_positive - 0049
exact horient1 - 0050
exact horient2 - 0051
have hpair13 : ModEq(k,b · h,d · f)Exact native replay line
have hpair13 : exists ftcn_left_fssq_surface_pair_13 ftcn_right_fssq_surface_pair_13. (b * h) + (k) * ftcn_left_fssq_surface_pair_13 = (d * f) + (k) * ftcn_right_fssq_surface_pair_13 - 0052
specialize four_square_signed_cross_positive k - 0053
specialize four_square_signed_cross_positive b - 0054
specialize four_square_signed_cross_positive d - 0055
specialize four_square_signed_cross_positive f - 0056
specialize four_square_signed_cross_positive h - 0057
apply four_square_signed_cross_positive - 0058
exact horient1 - 0059
exact horient3 - 0060
have hpair23 : ModEq(k,c · h,d · g)Exact native replay line
have hpair23 : exists ftcn_left_fssq_surface_pair_23 ftcn_right_fssq_surface_pair_23. (c * h) + (k) * ftcn_left_fssq_surface_pair_23 = (d * g) + (k) * ftcn_right_fssq_surface_pair_23 - 0061
specialize four_square_signed_cross_positive k - 0062
specialize four_square_signed_cross_positive c - 0063
specialize four_square_signed_cross_positive d - 0064
specialize four_square_signed_cross_positive g - 0065
specialize four_square_signed_cross_positive h - 0066
apply four_square_signed_cross_positive - 0067
exact horient2 - 0068
exact horient3 - 0069
have hdot1 : ModEq(k,b · f,f · f)Exact native replay line
have hdot1 : exists ftcn_left_fssq_surface_dot_1 ftcn_right_fssq_surface_dot_1. (b * f) + (k) * ftcn_left_fssq_surface_dot_1 = (f * f) + (k) * ftcn_right_fssq_surface_dot_1 - 0070
specialize four_square_signed_dot_positive k - 0071
specialize four_square_signed_dot_positive b - 0072
specialize four_square_signed_dot_positive f - 0073
apply four_square_signed_dot_positive - 0074
exact horient1 - 0075
have hdot2 : ModEq(k,c · g,g · g)Exact native replay line
have hdot2 : exists ftcn_left_fssq_surface_dot_2 ftcn_right_fssq_surface_dot_2. (c * g) + (k) * ftcn_left_fssq_surface_dot_2 = (g * g) + (k) * ftcn_right_fssq_surface_dot_2 - 0076
specialize four_square_signed_dot_positive k - 0077
specialize four_square_signed_dot_positive c - 0078
specialize four_square_signed_dot_positive g - 0079
apply four_square_signed_dot_positive - 0080
exact horient2 - 0081
have hdot3 : ModEq(k,d · h,h · h)Exact native replay line
have hdot3 : exists ftcn_left_fssq_surface_dot_3 ftcn_right_fssq_surface_dot_3. (d * h) + (k) * ftcn_left_fssq_surface_dot_3 = (h * h) + (k) * ftcn_right_fssq_surface_dot_3 - 0082
specialize four_square_signed_dot_positive k - 0083
specialize four_square_signed_dot_positive d - 0084
specialize four_square_signed_dot_positive h - 0085
apply four_square_signed_dot_positive - 0086
exact horient3 - 0087
have hpositive2 : ModEq(k,b · f + c · g,f · f + g · g)Exact native replay line
have hpositive2 : exists ftcn_left_fssq_surface_hpositive2 ftcn_right_fssq_surface_hpositive2. ((b * f) + (c * g)) + (k) * ftcn_left_fssq_surface_hpositive2 = ((f * f) + (g * g)) + (k) * ftcn_right_fssq_surface_hpositive2 - 0088
specialize mod_eq_add k - 0089
specialize mod_eq_add (b * f) - 0090
specialize mod_eq_add (f * f) - 0091
specialize mod_eq_add (c * g) - 0092
specialize mod_eq_add (g * g) - 0093
apply mod_eq_add - 0094
exact hdot1 - 0095
exact hdot2 - 0096
have hpositive3 : ModEq(k,b · f + c · g + d · h,f · f + g · g + h · h)Exact native replay line
have hpositive3 : exists ftcn_left_fssq_surface_hpositive3 ftcn_right_fssq_surface_hpositive3. (((b * f) + (c * g)) + (d * h)) + (k) * ftcn_left_fssq_surface_hpositive3 = (((f * f) + (g * g)) + (h * h)) + (k) * ftcn_right_fssq_surface_hpositive3 - 0097
specialize mod_eq_add k - 0098
specialize mod_eq_add ((b * f) + (c * g)) - 0099
specialize mod_eq_add ((f * f) + (g * g)) - 0100
specialize mod_eq_add (d * h) - 0101
specialize mod_eq_add (h * h) - 0102
apply mod_eq_add - 0103
exact hpositive2 - 0104
exact hdot3 - 0105
have hdot0 : ModEq(k,a · e + e · e,0)Exact native replay line
have hdot0 : exists ftcn_left_fssq_surface_dot_0 ftcn_right_fssq_surface_dot_0. (a * e + e * e) + (k) * ftcn_left_fssq_surface_dot_0 = (0) + (k) * ftcn_right_fssq_surface_dot_0 - 0106
specialize four_square_signed_dot_negative_zero k - 0107
specialize four_square_signed_dot_negative_zero a - 0108
specialize four_square_signed_dot_negative_zero e - 0109
apply four_square_signed_dot_negative_zero - 0110
exact horient0 - 0111
have hnorm_shuffle : ((((f * f) + (g * g)) + (h * h)) + (e * e)) = (e * e + f * f + g * g + h * h) - 0112
trans ((f * f) + ((g * g) + ((h * h) + (e * e)))) - 0113
simp [add_assoc] - 0114
trans ((e * e) + ((f * f) + ((g * g) + (h * h)))) - 0115
trans ((e * e) + ((f * f) + ((g * g) + (h * h)))) - 0116
trans ((f * f) + ((e * e) + ((g * g) + (h * h)))) - 0117
congr - 0118
refl - 0119
trans ((g * g) + ((e * e) + (h * h))) - 0120
congr - 0121
refl - 0122
apply add_comm - 0123
apply four_square_add_swap_right_tail - 0124
apply four_square_add_swap_right_tail - 0125
congr - 0126
refl - 0127
refl - 0128
symm - 0129
simp [add_assoc] - 0130
have hordered_norm : ModEq(k,f · f + g · g + h · h + e · e,0)Exact native replay line
have hordered_norm : exists ftcn_left_fssq_surface_ordered_norm ftcn_right_fssq_surface_ordered_norm. ((((f * f) + (g * g)) + (h * h)) + (e * e)) + (k) * ftcn_left_fssq_surface_ordered_norm = (0) + (k) * ftcn_right_fssq_surface_ordered_norm - 0131
rewrite hnorm_shuffle - 0132
exact hnorm - 0133
have hpartition : ModEq(k,b · f + c · g + d · h,a · e)Exact native replay line
have hpartition : exists ftcn_left_fssq_surface_partition ftcn_right_fssq_surface_partition. (((b * f) + (c * g)) + (d * h)) + (k) * ftcn_left_fssq_surface_partition = (a * e) + (k) * ftcn_right_fssq_surface_partition - 0134
specialize four_square_signed_partition_balance k - 0135
specialize four_square_signed_partition_balance (((b * f) + (c * g)) + (d * h)) - 0136
specialize four_square_signed_partition_balance (((f * f) + (g * g)) + (h * h)) - 0137
specialize four_square_signed_partition_balance (a * e) - 0138
specialize four_square_signed_partition_balance (e * e) - 0139
apply four_square_signed_partition_balance - 0140
exact hpositive3 - 0141
exact hdot0 - 0142
exact hordered_norm - 0143
have hblock0 : ModEq(k,a · e,b · f + c · g + d · h)Exact native replay line
have hblock0 : exists ftcn_left_fssq_surface_hblock0 ftcn_right_fssq_surface_hblock0. (a * e) + (k) * ftcn_left_fssq_surface_hblock0 = (((b * f) + (c * g)) + (d * h)) + (k) * ftcn_right_fssq_surface_hblock0 - 0144
specialize mod_eq_symm k - 0145
specialize mod_eq_symm (((b * f) + (c * g)) + (d * h)) - 0146
specialize mod_eq_symm (a * e) - 0147
apply mod_eq_symm - 0148
exact hpartition - 0149
have hblock1 : ModEq(k,a · f + b · e + c · h,d · g)Exact native replay line
have hblock1 : exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_1 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_1. (a * f + b * e + c * h) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_1 = (d * g) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_1 - 0150
specialize four_square_signed_mod_zero_plus_congruent k - 0151
specialize four_square_signed_mod_zero_plus_congruent (a * f + b * e) - 0152
specialize four_square_signed_mod_zero_plus_congruent (c * h) - 0153
specialize four_square_signed_mod_zero_plus_congruent (d * g) - 0154
apply four_square_signed_mod_zero_plus_congruent - 0155
exact hpair01 - 0156
exact hpair23 - 0157
have hpair13_reverse : ModEq(k,d · f,b · h)Exact native replay line
have hpair13_reverse : exists ftcn_left_fssq_surface_hpair13_reverse ftcn_right_fssq_surface_hpair13_reverse. (d * f) + (k) * ftcn_left_fssq_surface_hpair13_reverse = (b * h) + (k) * ftcn_right_fssq_surface_hpair13_reverse - 0158
specialize mod_eq_symm k - 0159
specialize mod_eq_symm (b * h) - 0160
specialize mod_eq_symm (d * f) - 0161
apply mod_eq_symm - 0162
exact hpair13 - 0163
have hblock2 : ModEq(k,a · g + c · e + d · f,b · h)Exact native replay line
have hblock2 : exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_2 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_2. (a * g + c * e + d * f) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_2 = (b * h) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_2 - 0164
specialize four_square_signed_mod_zero_plus_congruent k - 0165
specialize four_square_signed_mod_zero_plus_congruent (a * g + c * e) - 0166
specialize four_square_signed_mod_zero_plus_congruent (d * f) - 0167
specialize four_square_signed_mod_zero_plus_congruent (b * h) - 0168
apply four_square_signed_mod_zero_plus_congruent - 0169
exact hpair02 - 0170
exact hpair13_reverse - 0171
have hblock3_reordered : ModEq(k,a · h + d · e + b · g,c · f)Exact native replay line
have hblock3_reordered : exists ftcn_left_fssq_surface_natural_reordered ftcn_right_fssq_surface_natural_reordered. ((a * h + d * e) + b * g) + (k) * ftcn_left_fssq_surface_natural_reordered = (c * f) + (k) * ftcn_right_fssq_surface_natural_reordered - 0172
specialize four_square_signed_mod_zero_plus_congruent k - 0173
specialize four_square_signed_mod_zero_plus_congruent (a * h + d * e) - 0174
specialize four_square_signed_mod_zero_plus_congruent (b * g) - 0175
specialize four_square_signed_mod_zero_plus_congruent (c * f) - 0176
apply four_square_signed_mod_zero_plus_congruent - 0177
exact hpair03 - 0178
exact hpair12 - 0179
have hblock3_shuffle : (a * h + d * e) + b * g = a * h + b * g + d * e - 0180
trans ((a * h) + ((d * e) + (b * g))) - 0181
simp [add_assoc] - 0182
trans ((a * h) + ((b * g) + (d * e))) - 0183
congr - 0184
refl - 0185
trans ((b * g) + (d * e)) - 0186
apply add_comm - 0187
congr - 0188
refl - 0189
refl - 0190
symm - 0191
simp [add_assoc] - 0192
rewrite hblock3_shuffle at hblock3_reordered - 0193
have hblock3 : ModEq(k,a · h + b · g + d · e,c · f)Exact native replay line
have hblock3 : exists ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_3 ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_3. (a * h + b * g + d * e) + (k) * ftcn_left_fssq_surface_four_square_signed_natural_negative_first_blocks_block_3 = (c * f) + (k) * ftcn_right_fssq_surface_four_square_signed_natural_negative_first_blocks_block_3 - 0194
exact hblock3_reordered - 0195
split - 0196
exact hblock0 - 0197
split - 0198
exact hblock1 - 0199
split - 0200
exact hblock2 - 0201
exact hblock3