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.
Exact expanded first-order arithmetic statement
forall k a b c d e f g h. (exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_norm ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_norm. (e * e + f * f + g * g + h * h) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_norm = (0) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_norm) -> (exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_0 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_0. (a + e) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_0 = (0) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_0) -> (exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_1 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_1. (b + f) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_1 = (0) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_1) -> (exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_2 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_2. (c) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_2 = (g) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_2) -> (exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_3 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_3. (d) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_3 = (h) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_3) -> ((exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0. (a * h + b * g + c * f + d * e) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0 = (0) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0) /\ ((exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1. (a * g + c * e) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1 = (b * h + d * f) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1) /\ ((exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2. (a * f + d * g) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2 = (c * h + b * e) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2) /\ (exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3. (a * e + b * f) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3 = (d * h + c * g) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3))))Constructive proof overview
Generated structural guide
All four canonical signed quaternion blocks balance constructively modulo the multiplier under this exact orientation pattern.
The unchanged tactic script uses 16 declared prerequisites and contains 230 exact native proof lines.
dependency-curried kernel-checked theorem body; Alpha enrollment and checked-use authority follow separately sealed release evidence; Stable membership remains unchanged
Proof neighborhood
Direct dependencies
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 theorem; checked-use authorized mod_eq_symm Stable theorem; checked-use authorized mod_eq_trans Stable theorem; checked-use authorized add_assoc Stable theorem; checked-use authorized add_comm Stable theorem; checked-use authorized FS0006 four_square_add_swap_right_tailDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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 (9)
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 negative.
- L15
have hpair01 : exists ftcn_left_fssq_surface_pair_01 ftcn_right_fssq_surface_pair_01. (a * f) + (k) * ftcn_left_fssq_surface_pair_01 = (b * e) + (k) * ftcn_right_fssq_surface_pair_01 - L16
specialize four_square_signed_cross_negative k - L17
specialize four_square_signed_cross_negative a - L18
specialize four_square_signed_cross_negative b - L19
specialize four_square_signed_cross_negative e - L20
specialize four_square_signed_cross_negative f - L21
apply four_square_signed_cross_negative - 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 : 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 - 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 : 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 - 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 mixed zero reversed.
- L42
have hpair12 : exists ftcn_left_fssq_surface_pair_12 ftcn_right_fssq_surface_pair_12. (b * g + c * f) + (k) * ftcn_left_fssq_surface_pair_12 = (0) + (k) * ftcn_right_fssq_surface_pair_12 - L43
specialize four_square_signed_cross_mixed_zero_reversed k - L44
specialize four_square_signed_cross_mixed_zero_reversed b - L45
specialize four_square_signed_cross_mixed_zero_reversed c - L46
specialize four_square_signed_cross_mixed_zero_reversed f - L47
specialize four_square_signed_cross_mixed_zero_reversed g - L48
apply four_square_signed_cross_mixed_zero_reversed - 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 mixed zero reversed.
- L51
have hpair13 : exists ftcn_left_fssq_surface_pair_13 ftcn_right_fssq_surface_pair_13. (b * h + d * f) + (k) * ftcn_left_fssq_surface_pair_13 = (0) + (k) * ftcn_right_fssq_surface_pair_13 - L52
specialize four_square_signed_cross_mixed_zero_reversed k - L53
specialize four_square_signed_cross_mixed_zero_reversed b - L54
specialize four_square_signed_cross_mixed_zero_reversed d - L55
specialize four_square_signed_cross_mixed_zero_reversed f - L56
specialize four_square_signed_cross_mixed_zero_reversed h - L57
apply four_square_signed_cross_mixed_zero_reversed - 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 : 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 - 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 hdot2L69–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 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 - L70
specialize four_square_signed_dot_positive k - L71
specialize four_square_signed_dot_positive c - L72
specialize four_square_signed_dot_positive g - L73
apply four_square_signed_dot_positive - L74
exact horient2
10Establish hdot3L75–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 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 - L76
specialize four_square_signed_dot_positive k - L77
specialize four_square_signed_dot_positive d - L78
specialize four_square_signed_dot_positive h - L79
apply four_square_signed_dot_positive - L80
exact horient3
11Establish hpositive3L81–89
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq add.
- L81
have hpositive3 : exists ftcn_left_fssq_surface_hpositive3 ftcn_right_fssq_surface_hpositive3. ((c * g) + (d * h)) + (k) * ftcn_left_fssq_surface_hpositive3 = ((g * g) + (h * h)) + (k) * ftcn_right_fssq_surface_hpositive3 - L82
specialize mod_eq_add k - L83
specialize mod_eq_add (c * g) - L84
specialize mod_eq_add (g * g) - L85
specialize mod_eq_add (d * h) - L86
specialize mod_eq_add (h * h) - L87
apply mod_eq_add - L88
exact hdot2 - L89
exact hdot3
12Establish hdot0L90–95
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed dot negative zero.
- L90
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 - L91
specialize four_square_signed_dot_negative_zero k - L92
specialize four_square_signed_dot_negative_zero a - L93
specialize four_square_signed_dot_negative_zero e - L94
apply four_square_signed_dot_negative_zero - L95
exact horient0
13Establish hdot1L96–101
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed dot negative zero.
- L96
have hdot1 : exists ftcn_left_fssq_surface_dot_1 ftcn_right_fssq_surface_dot_1. (b * f + f * f) + (k) * ftcn_left_fssq_surface_dot_1 = (0) + (k) * ftcn_right_fssq_surface_dot_1 - L97
specialize four_square_signed_dot_negative_zero k - L98
specialize four_square_signed_dot_negative_zero b - L99
specialize four_square_signed_dot_negative_zero f - L100
apply four_square_signed_dot_negative_zero - L101
exact horient1
14Establish hnegative1L102–108
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed mod zero add.
- L102
have hnegative1 : exists ftcn_left_fssq_surface_hnegative1 ftcn_right_fssq_surface_hnegative1. (((a * e) + (e * e)) + ((b * f) + (f * f))) + (k) * ftcn_left_fssq_surface_hnegative1 = (0) + (k) * ftcn_right_fssq_surface_hnegative1 - L103
specialize four_square_signed_mod_zero_add k - L104
specialize four_square_signed_mod_zero_add ((a * e) + (e * e)) - L105
specialize four_square_signed_mod_zero_add ((b * f) + (f * f)) - L106
apply four_square_signed_mod_zero_add - L107
exact hdot0 - L108
exact hdot1
15Establish hnegative_shuffleL109–118
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square add swap right tail.
- L109
have hnegative_shuffle : (((a * e) + (e * e)) + ((b * f) + (f * f))) = ((a * e + b * f) + (e * e + f * f)) - L110
trans ((a * e) + ((e * e) + ((b * f) + (f * f)))) - L111
simp [add_assoc] - L112
trans ((a * e) + ((b * f) + ((e * e) + (f * f)))) - L113
congr - L114
refl - L115
trans ((b * f) + ((e * e) + (f * f))) - L116
apply four_square_add_swap_right_tail - L117
congr - L118
refl
16Calculate and transport equalitiesL119–122
17Establish hnorm_shuffleL123–132
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square add swap right tail.
- L123
have hnorm_shuffle : (((g * g) + (h * h)) + (e * e + f * f)) = (e * e + f * f + g * g + h * h) - L124
trans ((g * g) + ((h * h) + ((e * e) + (f * f)))) - L125
simp [add_assoc] - L126
trans ((e * e) + ((f * f) + ((g * g) + (h * h)))) - L127
trans ((e * e) + ((g * g) + ((h * h) + (f * f)))) - L128
trans ((g * g) + ((e * e) + ((h * h) + (f * f)))) - L129
congr - L130
refl - L131
apply four_square_add_swap_right_tail - L132
apply four_square_add_swap_right_tail
18Calculate and transport equalitiesL133–138
19Use earlier factsL139–140
20Calculate and transport equalitiesL141–145
21Establish hordered_normL146–148
Establish this local claim before using it. It is not an additional assumption.
22Establish hpartitionL149–158
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed partition balance.
- L149
have hpartition : exists ftcn_left_fssq_surface_partition ftcn_right_fssq_surface_partition. ((c * g) + (d * h)) + (k) * ftcn_left_fssq_surface_partition = (a * e + b * f) + (k) * ftcn_right_fssq_surface_partition - L150
specialize four_square_signed_partition_balance k - L151
specialize four_square_signed_partition_balance ((c * g) + (d * h)) - L152
specialize four_square_signed_partition_balance ((g * g) + (h * h)) - L153
specialize four_square_signed_partition_balance (a * e + b * f) - L154
specialize four_square_signed_partition_balance (e * e + f * f) - L155
apply four_square_signed_partition_balance - L156
exact hpositive3 - L157
exact hnegative1 - L158
exact hordered_norm
23Establish hblock0_reorderedL159–165
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed mod zero add.
- L159
have hblock0_reordered : exists ftcn_left_fssq_surface_hblock0_reordered ftcn_right_fssq_surface_hblock0_reordered. ((a * h + d * e) + (b * g + c * f)) + (k) * ftcn_left_fssq_surface_hblock0_reordered = (0) + (k) * ftcn_right_fssq_surface_hblock0_reordered - L160
specialize four_square_signed_mod_zero_add k - L161
specialize four_square_signed_mod_zero_add (a * h + d * e) - L162
specialize four_square_signed_mod_zero_add (b * g + c * f) - L163
apply four_square_signed_mod_zero_add - L164
exact hpair03 - L165
exact hpair12
24Establish hblock0_shuffleL166–175
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square add swap right tail.
- L166
have hblock0_shuffle : (a * h + d * e) + (b * g + c * f) = a * h + b * g + c * f + d * e - L167
trans ((a * h) + ((d * e) + ((b * g) + (c * f)))) - L168
simp [add_assoc] - L169
trans ((a * h) + ((b * g) + ((c * f) + (d * e)))) - L170
congr - L171
refl - L172
trans ((b * g) + ((d * e) + (c * f))) - L173
apply four_square_add_swap_right_tail - L174
congr - L175
refl
25Calculate and transport equalitiesL176–176
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L176
trans ((c * f) + (d * e))
26Use earlier factsL177–177
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L177
apply add_comm
27Calculate and transport equalitiesL178–183
28Establish hblock0L184–185
Establish this local claim before using it. It is not an additional assumption.
- L184
have hblock0 : exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0. (a * h + b * g + c * f + d * e) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0 = (0) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0 - L185
exact hblock0_reordered
29Establish hblock1L186–192
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply four square signed mod zero equivalent.
- L186
have hblock1 : exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1. (a * g + c * e) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1 = (b * h + d * f) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1 - L187
specialize four_square_signed_mod_zero_equivalent k - L188
specialize four_square_signed_mod_zero_equivalent (a * g + c * e) - L189
specialize four_square_signed_mod_zero_equivalent (b * h + d * f) - L190
apply four_square_signed_mod_zero_equivalent - L191
exact hpair02 - L192
exact hpair13
30Establish hpair23_reverseL193–198
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L193
have hpair23_reverse : exists ftcn_left_fssq_surface_hpair23_reverse ftcn_right_fssq_surface_hpair23_reverse. (d * g) + (k) * ftcn_left_fssq_surface_hpair23_reverse = (c * h) + (k) * ftcn_right_fssq_surface_hpair23_reverse - L194
specialize mod_eq_symm k - L195
specialize mod_eq_symm (c * h) - L196
specialize mod_eq_symm (d * g) - L197
apply mod_eq_symm - L198
exact hpair23
31Establish hblock2_reorderedL199–207
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq add.
- L199
have hblock2_reordered : exists ftcn_left_fssq_surface_hblock2_reordered ftcn_right_fssq_surface_hblock2_reordered. ((a * f) + (d * g)) + (k) * ftcn_left_fssq_surface_hblock2_reordered = ((b * e) + (c * h)) + (k) * ftcn_right_fssq_surface_hblock2_reordered - L200
specialize mod_eq_add k - L201
specialize mod_eq_add (a * f) - L202
specialize mod_eq_add (b * e) - L203
specialize mod_eq_add (d * g) - L204
specialize mod_eq_add (c * h) - L205
apply mod_eq_add - L206
exact hpair01 - L207
exact hpair23_reverse
32Establish hblock2_swapL208–210
33Establish hblock2L211–212
Establish this local claim before using it. It is not an additional assumption.
- L211
have hblock2 : exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2. (a * f + d * g) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2 = (c * h + b * e) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2 - L212
exact hblock2_reordered
34Establish hblock3_reorderedL213–218
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq symm.
- L213
have hblock3_reordered : exists ftcn_left_fssq_surface_hblock3_reordered ftcn_right_fssq_surface_hblock3_reordered. (a * e + b * f) + (k) * ftcn_left_fssq_surface_hblock3_reordered = ((c * g) + (d * h)) + (k) * ftcn_right_fssq_surface_hblock3_reordered - L214
specialize mod_eq_symm k - L215
specialize mod_eq_symm ((c * g) + (d * h)) - L216
specialize mod_eq_symm (a * e + b * f) - L217
apply mod_eq_symm - L218
exact hpartition
35Establish hblock3_swapL219–221
36Establish hblock3L222–223
Establish this local claim before using it. It is not an additional assumption.
- L222
have hblock3 : exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3. (a * e + b * f) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3 = (d * h + c * g) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3 - L223
exact hblock3_reordered
37Separate the logical casesL224–224
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L224
split
38Use earlier factsL225–225
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L225
exact hblock0
39Separate the logical casesL226–226
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L226
split
40Use earlier factsL227–227
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L227
exact hblock1
41Separate the logical casesL228–228
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L228
split
Original exact command ledger · 230 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 : exists ftcn_left_fssq_surface_pair_01 ftcn_right_fssq_surface_pair_01. (a * f) + (k) * ftcn_left_fssq_surface_pair_01 = (b * e) + (k) * ftcn_right_fssq_surface_pair_01 - 0016
specialize four_square_signed_cross_negative k - 0017
specialize four_square_signed_cross_negative a - 0018
specialize four_square_signed_cross_negative b - 0019
specialize four_square_signed_cross_negative e - 0020
specialize four_square_signed_cross_negative f - 0021
apply four_square_signed_cross_negative - 0022
exact horient0 - 0023
exact horient1 - 0024
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 : 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 : exists ftcn_left_fssq_surface_pair_12 ftcn_right_fssq_surface_pair_12. (b * g + c * f) + (k) * ftcn_left_fssq_surface_pair_12 = (0) + (k) * ftcn_right_fssq_surface_pair_12 - 0043
specialize four_square_signed_cross_mixed_zero_reversed k - 0044
specialize four_square_signed_cross_mixed_zero_reversed b - 0045
specialize four_square_signed_cross_mixed_zero_reversed c - 0046
specialize four_square_signed_cross_mixed_zero_reversed f - 0047
specialize four_square_signed_cross_mixed_zero_reversed g - 0048
apply four_square_signed_cross_mixed_zero_reversed - 0049
exact horient1 - 0050
exact horient2 - 0051
have hpair13 : exists ftcn_left_fssq_surface_pair_13 ftcn_right_fssq_surface_pair_13. (b * h + d * f) + (k) * ftcn_left_fssq_surface_pair_13 = (0) + (k) * ftcn_right_fssq_surface_pair_13 - 0052
specialize four_square_signed_cross_mixed_zero_reversed k - 0053
specialize four_square_signed_cross_mixed_zero_reversed b - 0054
specialize four_square_signed_cross_mixed_zero_reversed d - 0055
specialize four_square_signed_cross_mixed_zero_reversed f - 0056
specialize four_square_signed_cross_mixed_zero_reversed h - 0057
apply four_square_signed_cross_mixed_zero_reversed - 0058
exact horient1 - 0059
exact horient3 - 0060
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 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 - 0070
specialize four_square_signed_dot_positive k - 0071
specialize four_square_signed_dot_positive c - 0072
specialize four_square_signed_dot_positive g - 0073
apply four_square_signed_dot_positive - 0074
exact horient2 - 0075
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 - 0076
specialize four_square_signed_dot_positive k - 0077
specialize four_square_signed_dot_positive d - 0078
specialize four_square_signed_dot_positive h - 0079
apply four_square_signed_dot_positive - 0080
exact horient3 - 0081
have hpositive3 : exists ftcn_left_fssq_surface_hpositive3 ftcn_right_fssq_surface_hpositive3. ((c * g) + (d * h)) + (k) * ftcn_left_fssq_surface_hpositive3 = ((g * g) + (h * h)) + (k) * ftcn_right_fssq_surface_hpositive3 - 0082
specialize mod_eq_add k - 0083
specialize mod_eq_add (c * g) - 0084
specialize mod_eq_add (g * g) - 0085
specialize mod_eq_add (d * h) - 0086
specialize mod_eq_add (h * h) - 0087
apply mod_eq_add - 0088
exact hdot2 - 0089
exact hdot3 - 0090
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 - 0091
specialize four_square_signed_dot_negative_zero k - 0092
specialize four_square_signed_dot_negative_zero a - 0093
specialize four_square_signed_dot_negative_zero e - 0094
apply four_square_signed_dot_negative_zero - 0095
exact horient0 - 0096
have hdot1 : exists ftcn_left_fssq_surface_dot_1 ftcn_right_fssq_surface_dot_1. (b * f + f * f) + (k) * ftcn_left_fssq_surface_dot_1 = (0) + (k) * ftcn_right_fssq_surface_dot_1 - 0097
specialize four_square_signed_dot_negative_zero k - 0098
specialize four_square_signed_dot_negative_zero b - 0099
specialize four_square_signed_dot_negative_zero f - 0100
apply four_square_signed_dot_negative_zero - 0101
exact horient1 - 0102
have hnegative1 : exists ftcn_left_fssq_surface_hnegative1 ftcn_right_fssq_surface_hnegative1. (((a * e) + (e * e)) + ((b * f) + (f * f))) + (k) * ftcn_left_fssq_surface_hnegative1 = (0) + (k) * ftcn_right_fssq_surface_hnegative1 - 0103
specialize four_square_signed_mod_zero_add k - 0104
specialize four_square_signed_mod_zero_add ((a * e) + (e * e)) - 0105
specialize four_square_signed_mod_zero_add ((b * f) + (f * f)) - 0106
apply four_square_signed_mod_zero_add - 0107
exact hdot0 - 0108
exact hdot1 - 0109
have hnegative_shuffle : (((a * e) + (e * e)) + ((b * f) + (f * f))) = ((a * e + b * f) + (e * e + f * f)) - 0110
trans ((a * e) + ((e * e) + ((b * f) + (f * f)))) - 0111
simp [add_assoc] - 0112
trans ((a * e) + ((b * f) + ((e * e) + (f * f)))) - 0113
congr - 0114
refl - 0115
trans ((b * f) + ((e * e) + (f * f))) - 0116
apply four_square_add_swap_right_tail - 0117
congr - 0118
refl - 0119
refl - 0120
symm - 0121
simp [add_assoc] - 0122
rewrite hnegative_shuffle at hnegative1 - 0123
have hnorm_shuffle : (((g * g) + (h * h)) + (e * e + f * f)) = (e * e + f * f + g * g + h * h) - 0124
trans ((g * g) + ((h * h) + ((e * e) + (f * f)))) - 0125
simp [add_assoc] - 0126
trans ((e * e) + ((f * f) + ((g * g) + (h * h)))) - 0127
trans ((e * e) + ((g * g) + ((h * h) + (f * f)))) - 0128
trans ((g * g) + ((e * e) + ((h * h) + (f * f)))) - 0129
congr - 0130
refl - 0131
apply four_square_add_swap_right_tail - 0132
apply four_square_add_swap_right_tail - 0133
congr - 0134
refl - 0135
trans ((f * f) + ((g * g) + (h * h))) - 0136
trans ((g * g) + ((f * f) + (h * h))) - 0137
congr - 0138
refl - 0139
apply add_comm - 0140
apply four_square_add_swap_right_tail - 0141
congr - 0142
refl - 0143
refl - 0144
symm - 0145
simp [add_assoc] - 0146
have hordered_norm : exists ftcn_left_fssq_surface_ordered_norm ftcn_right_fssq_surface_ordered_norm. (((g * g) + (h * h)) + (e * e + f * f)) + (k) * ftcn_left_fssq_surface_ordered_norm = (0) + (k) * ftcn_right_fssq_surface_ordered_norm - 0147
rewrite hnorm_shuffle - 0148
exact hnorm - 0149
have hpartition : exists ftcn_left_fssq_surface_partition ftcn_right_fssq_surface_partition. ((c * g) + (d * h)) + (k) * ftcn_left_fssq_surface_partition = (a * e + b * f) + (k) * ftcn_right_fssq_surface_partition - 0150
specialize four_square_signed_partition_balance k - 0151
specialize four_square_signed_partition_balance ((c * g) + (d * h)) - 0152
specialize four_square_signed_partition_balance ((g * g) + (h * h)) - 0153
specialize four_square_signed_partition_balance (a * e + b * f) - 0154
specialize four_square_signed_partition_balance (e * e + f * f) - 0155
apply four_square_signed_partition_balance - 0156
exact hpositive3 - 0157
exact hnegative1 - 0158
exact hordered_norm - 0159
have hblock0_reordered : exists ftcn_left_fssq_surface_hblock0_reordered ftcn_right_fssq_surface_hblock0_reordered. ((a * h + d * e) + (b * g + c * f)) + (k) * ftcn_left_fssq_surface_hblock0_reordered = (0) + (k) * ftcn_right_fssq_surface_hblock0_reordered - 0160
specialize four_square_signed_mod_zero_add k - 0161
specialize four_square_signed_mod_zero_add (a * h + d * e) - 0162
specialize four_square_signed_mod_zero_add (b * g + c * f) - 0163
apply four_square_signed_mod_zero_add - 0164
exact hpair03 - 0165
exact hpair12 - 0166
have hblock0_shuffle : (a * h + d * e) + (b * g + c * f) = a * h + b * g + c * f + d * e - 0167
trans ((a * h) + ((d * e) + ((b * g) + (c * f)))) - 0168
simp [add_assoc] - 0169
trans ((a * h) + ((b * g) + ((c * f) + (d * e)))) - 0170
congr - 0171
refl - 0172
trans ((b * g) + ((d * e) + (c * f))) - 0173
apply four_square_add_swap_right_tail - 0174
congr - 0175
refl - 0176
trans ((c * f) + (d * e)) - 0177
apply add_comm - 0178
congr - 0179
refl - 0180
refl - 0181
symm - 0182
simp [add_assoc] - 0183
rewrite hblock0_shuffle at hblock0_reordered - 0184
have hblock0 : exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0. (a * h + b * g + c * f + d * e) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0 = (0) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_0 - 0185
exact hblock0_reordered - 0186
have hblock1 : exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1. (a * g + c * e) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1 = (b * h + d * f) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_1 - 0187
specialize four_square_signed_mod_zero_equivalent k - 0188
specialize four_square_signed_mod_zero_equivalent (a * g + c * e) - 0189
specialize four_square_signed_mod_zero_equivalent (b * h + d * f) - 0190
apply four_square_signed_mod_zero_equivalent - 0191
exact hpair02 - 0192
exact hpair13 - 0193
have hpair23_reverse : exists ftcn_left_fssq_surface_hpair23_reverse ftcn_right_fssq_surface_hpair23_reverse. (d * g) + (k) * ftcn_left_fssq_surface_hpair23_reverse = (c * h) + (k) * ftcn_right_fssq_surface_hpair23_reverse - 0194
specialize mod_eq_symm k - 0195
specialize mod_eq_symm (c * h) - 0196
specialize mod_eq_symm (d * g) - 0197
apply mod_eq_symm - 0198
exact hpair23 - 0199
have hblock2_reordered : exists ftcn_left_fssq_surface_hblock2_reordered ftcn_right_fssq_surface_hblock2_reordered. ((a * f) + (d * g)) + (k) * ftcn_left_fssq_surface_hblock2_reordered = ((b * e) + (c * h)) + (k) * ftcn_right_fssq_surface_hblock2_reordered - 0200
specialize mod_eq_add k - 0201
specialize mod_eq_add (a * f) - 0202
specialize mod_eq_add (b * e) - 0203
specialize mod_eq_add (d * g) - 0204
specialize mod_eq_add (c * h) - 0205
apply mod_eq_add - 0206
exact hpair01 - 0207
exact hpair23_reverse - 0208
have hblock2_swap : b * e + c * h = c * h + b * e - 0209
apply add_comm - 0210
rewrite hblock2_swap at hblock2_reordered - 0211
have hblock2 : exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2. (a * f + d * g) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2 = (c * h + b * e) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_2 - 0212
exact hblock2_reordered - 0213
have hblock3_reordered : exists ftcn_left_fssq_surface_hblock3_reordered ftcn_right_fssq_surface_hblock3_reordered. (a * e + b * f) + (k) * ftcn_left_fssq_surface_hblock3_reordered = ((c * g) + (d * h)) + (k) * ftcn_right_fssq_surface_hblock3_reordered - 0214
specialize mod_eq_symm k - 0215
specialize mod_eq_symm ((c * g) + (d * h)) - 0216
specialize mod_eq_symm (a * e + b * f) - 0217
apply mod_eq_symm - 0218
exact hpartition - 0219
have hblock3_swap : c * g + d * h = d * h + c * g - 0220
apply add_comm - 0221
rewrite hblock3_swap at hblock3_reordered - 0222
have hblock3 : exists ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3 ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3. (a * e + b * f) + (k) * ftcn_left_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3 = (d * h + c * g) + (k) * ftcn_right_fssq_surface_four_square_signed_conjugate_mixed_blocks_block_3 - 0223
exact hblock3_reordered - 0224
split - 0225
exact hblock0 - 0226
split - 0227
exact hblock1 - 0228
split - 0229
exact hblock2 - 0230
exact hblock3