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 a b c d N. (((((((((a) * (a))) + (((b) * (b))))) + (((((c) * (c))) + (((d) * (d))))))) + (((((a) * (d))) + (((b) * (c)))))) = ((((((((((a) * (b))) + (((b) * (a))))) + (((((c) * (d))) + (((d) * (c))))))) + (((((a) * (c))) + (((b) * (d))))))) + (N))) -> (((((((((((a) + (d))) * (((a) + (d))))) + (((((b) + (c))) * (((b) + (c))))))) + (((((d) * (d))) + (((c) * (c))))))) + (((((((a) + (d))) * (c))) + (((((b) + (c))) * (d)))))) = ((((((((((((a) + (d))) * (((b) + (c))))) + (((((b) + (c))) * (((a) + (d))))))) + (((((d) * (c))) + (((c) * (d))))))) + (((((((a) + (d))) * (d))) + (((((b) + (c))) * (c))))))) + (N)))Constructive proof overview
Generated structural guide
The actual Eisenstein conjugate (a-b)-bω has the same norm as a+bω for all signed representatives.
The unchanged tactic script uses 8 declared prerequisites and contains 410 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
EI000A eisenstein_pair_natural_value_transport add_mul Stable theorem; checked-use authorized mul_add Stable theorem; checked-use authorized mul_assoc Stable theorem; checked-use authorized add_assoc Stable theorem; checked-use authorized add_comm Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized four_square_add_swap_right_tail Alpha theorem; checked-use authorizedDirect 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 (1)
01Fix variables and assumptionsL1–6
02Use earlier factsL7–13
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L7
specialize eisenstein_pair_natural_value_transport ((((((((a) * (a))) + (((b) * (b))))) + (((((c) * (c))) + (((d) * (d))))))) + (((((a) * (d))) + (((b) * (c)))))) - L8
specialize eisenstein_pair_natural_value_transport ((((((((a) * (b))) + (((b) * (a))))) + (((((c) * (d))) + (((d) * (c))))))) + (((((a) * (c))) + (((b) * (d)))))) - L9
specialize eisenstein_pair_natural_value_transport ((((((((((a) + (d))) * (((a) + (d))))) + (((((b) + (c))) * (((b) + (c))))))) + (((((d) * (d))) + (((c) * (c))))))) + (((((((a) + (d))) * (c))) + (((((b) + (c))) * (d)))))) - L10
specialize eisenstein_pair_natural_value_transport ((((((((((a) + (d))) * (((b) + (c))))) + (((((b) + (c))) * (((a) + (d))))))) + (((((d) * (c))) + (((c) * (d))))))) + (((((((a) + (d))) * (d))) + (((((b) + (c))) * (c)))))) - L11
specialize eisenstein_pair_natural_value_transport N - L12
apply eisenstein_pair_natural_value_transport - L13
exact hnorm
03Calculate and transport equalitiesL14–23
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L14
trans ((((a) * (a))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((d) * (b))) + ((((d) * (c))) + ((((b) * (a))) + ((((b) * (d))) + ((((c) * (a))) + ((((c) * (d))) + ((((d) * (c))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))))))) - L15
simp [add_mul, mul_add, mul_assoc, add_assoc] - L16
trans ((((a) * (a))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))))))) - L17
congr - L18
refl - L19
congr - L20
refl - L21
congr - L22
refl - L23
congr
04Calculate and transport equalitiesL24–33
05Calculate and transport equalitiesL34–34
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L34
trans ((b) * (d))
06Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
apply mul_comm
07Calculate and transport equalitiesL36–40
08Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
apply mul_comm
09Calculate and transport equalitiesL42–46
10Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
apply mul_comm
11Calculate and transport equalitiesL48–54
12Use earlier factsL55–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L55
apply mul_comm
13Calculate and transport equalitiesL56–62
14Use earlier factsL63–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
apply mul_comm
15Calculate and transport equalitiesL64–73
16Calculate and transport equalitiesL74–83
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L74
refl - L75
refl - L76
trans ((((a) * (a))) + ((((a) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (b))) + ((((b) * (c))) + ((((b) * (c))) + ((((c) * (c))) + ((((d) * (d))) + ((((c) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((a) * (b))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (c))) + (((b) * (d)))))))))))))))))))))) - L77
congr - L78
refl - L79
trans ((((a) * (d))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))))) - L80
trans ((((b) * (b))) + ((((a) * (d))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))))) - L81
congr - L82
refl - L83
trans ((((c) * (c))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))))
17Calculate and transport equalitiesL84–85
18Use earlier factsL86–88
19Calculate and transport equalitiesL89–98
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L89
congr - L90
refl - L91
trans ((((a) * (d))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))))) - L92
trans ((((b) * (b))) + ((((a) * (d))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))))) - L93
congr - L94
refl - L95
trans ((((c) * (c))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))) - L96
congr - L97
refl - L98
trans ((((d) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))
20Calculate and transport equalitiesL99–108
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L99
congr - L100
refl - L101
trans ((((b) * (c))) + ((((a) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))) - L102
congr - L103
refl - L104
trans ((((a) * (b))) + ((((a) * (d))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))) - L105
congr - L106
refl - L107
trans ((((a) * (c))) + ((((a) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))) - L108
congr
21Calculate and transport equalitiesL109–118
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L109
refl - L110
trans ((((b) * (d))) + ((((a) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))) - L111
congr - L112
refl - L113
trans ((((c) * (d))) + ((((a) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))) - L114
congr - L115
refl - L116
trans ((((a) * (b))) + ((((a) * (d))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))) - L117
congr - L118
refl
22Calculate and transport equalitiesL119–128
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L119
trans ((((b) * (d))) + ((((a) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))) - L120
congr - L121
refl - L122
trans ((((a) * (c))) + ((((a) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))) - L123
congr - L124
refl - L125
trans ((((c) * (d))) + ((((a) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))) - L126
congr - L127
refl - L128
trans ((((c) * (d))) + ((((a) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))
23Calculate and transport equalitiesL129–130
24Use earlier factsL131–140
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L131
apply four_square_add_swap_right_tail - L132
apply four_square_add_swap_right_tail - L133
apply four_square_add_swap_right_tail - L134
apply four_square_add_swap_right_tail - L135
apply four_square_add_swap_right_tail - L136
apply four_square_add_swap_right_tail - L137
apply four_square_add_swap_right_tail - L138
apply four_square_add_swap_right_tail - L139
apply four_square_add_swap_right_tail - L140
apply four_square_add_swap_right_tail
25Use earlier factsL141–144
26Calculate and transport equalitiesL145–150
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L145
congr - L146
refl - L147
trans ((((d) * (d))) + ((((b) * (b))) + ((((c) * (c))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))) - L148
trans ((((b) * (b))) + ((((d) * (d))) + ((((c) * (c))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))) - L149
congr - L150
refl
27Use earlier factsL151–152
28Calculate and transport equalitiesL153–157
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L153
congr - L154
refl - L155
congr - L156
refl - L157
trans ((((b) * (c))) + ((((c) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))
29Use earlier factsL158–158
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L158
apply four_square_add_swap_right_tail
30Calculate and transport equalitiesL159–168
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L159
congr - L160
refl - L161
trans ((((b) * (c))) + ((((c) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))))))))))) - L162
trans ((((c) * (c))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))))))))))) - L163
congr - L164
refl - L165
trans ((((a) * (b))) + ((((b) * (c))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))))))))))) - L166
congr - L167
refl - L168
trans ((((a) * (c))) + ((((b) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))))))))))
31Calculate and transport equalitiesL169–178
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L169
congr - L170
refl - L171
trans ((((b) * (d))) + ((((b) * (c))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))))))))) - L172
congr - L173
refl - L174
trans ((((c) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))))))) - L175
congr - L176
refl - L177
trans ((((a) * (b))) + ((((b) * (c))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))))))) - L178
congr
32Calculate and transport equalitiesL179–188
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L179
refl - L180
trans ((((b) * (d))) + ((((b) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))))) - L181
congr - L182
refl - L183
trans ((((a) * (c))) + ((((b) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))))) - L184
congr - L185
refl - L186
trans ((((c) * (d))) + ((((b) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))) - L187
congr - L188
refl
33Calculate and transport equalitiesL189–194
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
34Use earlier factsL195–204
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L195
apply four_square_add_swap_right_tail - L196
apply four_square_add_swap_right_tail - L197
apply four_square_add_swap_right_tail - L198
apply four_square_add_swap_right_tail - L199
apply four_square_add_swap_right_tail - L200
apply four_square_add_swap_right_tail - L201
apply four_square_add_swap_right_tail - L202
apply four_square_add_swap_right_tail - L203
apply four_square_add_swap_right_tail - L204
apply four_square_add_swap_right_tail
35Use earlier factsL205–206
36Calculate and transport equalitiesL207–216
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L207
congr - L208
refl - L209
congr - L210
refl - L211
trans ((((d) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))))))))) - L212
trans ((((a) * (b))) + ((((d) * (d))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))))))))) - L213
congr - L214
refl - L215
trans ((((a) * (c))) + ((((d) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c))))))))))))) - L216
congr
37Calculate and transport equalitiesL217–226
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L217
refl - L218
trans ((((b) * (d))) + ((((d) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))))))) - L219
congr - L220
refl - L221
trans ((((c) * (d))) + ((((d) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c))))))))))) - L222
congr - L223
refl - L224
trans ((((a) * (b))) + ((((d) * (d))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))))) - L225
congr - L226
refl
38Calculate and transport equalitiesL227–236
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L227
trans ((((b) * (d))) + ((((d) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c))))))))) - L228
congr - L229
refl - L230
trans ((((a) * (c))) + ((((d) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))) - L231
congr - L232
refl - L233
trans ((((c) * (d))) + ((((d) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c))))))) - L234
congr - L235
refl - L236
trans ((((c) * (d))) + ((((d) * (d))) + ((((c) * (d))) + (((c) * (c))))))
39Calculate and transport equalitiesL237–238
40Use earlier factsL239–248
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L239
apply four_square_add_swap_right_tail - L240
apply four_square_add_swap_right_tail - L241
apply four_square_add_swap_right_tail - L242
apply four_square_add_swap_right_tail - L243
apply four_square_add_swap_right_tail - L244
apply four_square_add_swap_right_tail - L245
apply four_square_add_swap_right_tail - L246
apply four_square_add_swap_right_tail - L247
apply four_square_add_swap_right_tail - L248
apply four_square_add_swap_right_tail
41Calculate and transport equalitiesL249–258
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L249
congr - L250
refl - L251
trans ((((c) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))))))) - L252
trans ((((a) * (b))) + ((((c) * (c))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))))))) - L253
congr - L254
refl - L255
trans ((((a) * (c))) + ((((c) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d)))))))))))) - L256
congr - L257
refl - L258
trans ((((b) * (d))) + ((((c) * (c))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d)))))))))))
42Calculate and transport equalitiesL259–268
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L259
congr - L260
refl - L261
trans ((((c) * (d))) + ((((c) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d)))))))))) - L262
congr - L263
refl - L264
trans ((((a) * (b))) + ((((c) * (c))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))) - L265
congr - L266
refl - L267
trans ((((b) * (d))) + ((((c) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d)))))))) - L268
congr
43Calculate and transport equalitiesL269–278
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
44Use earlier factsL279–288
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L279
apply add_comm - L280
apply four_square_add_swap_right_tail - L281
apply four_square_add_swap_right_tail - L282
apply four_square_add_swap_right_tail - L283
apply four_square_add_swap_right_tail - L284
apply four_square_add_swap_right_tail - L285
apply four_square_add_swap_right_tail - L286
apply four_square_add_swap_right_tail - L287
apply four_square_add_swap_right_tail - L288
apply four_square_add_swap_right_tail
45Calculate and transport equalitiesL289–291
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
46Use earlier factsL292–292
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L292
apply four_square_add_swap_right_tail
47Calculate and transport equalitiesL293–298
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L293
congr - L294
refl - L295
trans ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))))) - L296
trans ((((a) * (b))) + ((((c) * (d))) + ((((b) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))))) - L297
congr - L298
refl
48Use earlier factsL299–300
49Calculate and transport equalitiesL301–303
50Use earlier factsL304–304
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L304
apply four_square_add_swap_right_tail
51Calculate and transport equalitiesL305–314
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L305
congr - L306
refl - L307
trans ((((c) * (d))) + ((((a) * (b))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))) - L308
trans ((((a) * (b))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))) - L309
congr - L310
refl - L311
trans ((((a) * (b))) + ((((c) * (d))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d)))))))) - L312
congr - L313
refl - L314
trans ((((b) * (d))) + ((((c) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d)))))))
52Calculate and transport equalitiesL315–316
53Use earlier factsL317–320
54Calculate and transport equalitiesL321–330
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
55Use earlier factsL331–332
56Calculate and transport equalitiesL333–338
57Use earlier factsL339–340
58Calculate and transport equalitiesL341–343
59Use earlier factsL344–344
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L344
apply add_comm
60Calculate and transport equalitiesL345–354
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L345
congr - L346
refl - L347
refl - L348
trans ((((a) * (a))) + ((((a) * (d))) + ((((d) * (a))) + ((((d) * (d))) + ((((b) * (b))) + ((((b) * (c))) + ((((c) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((c) * (c))) + ((((a) * (c))) + ((((d) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (a))) + ((((c) * (d))) + ((((d) * (c))) + ((((a) * (c))) + (((b) * (d)))))))))))))))))))))) - L349
symm - L350
congr - L351
refl - L352
congr - L353
refl - L354
congr
61Calculate and transport equalitiesL355–355
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L355
trans ((a) * (d))
62Use earlier factsL356–356
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L356
apply mul_comm
63Calculate and transport equalitiesL357–366
64Calculate and transport equalitiesL367–367
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L367
trans ((b) * (c))
65Use earlier factsL368–368
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L368
apply mul_comm
66Calculate and transport equalitiesL369–378
67Calculate and transport equalitiesL379–381
68Use earlier factsL382–382
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L382
apply mul_comm
69Calculate and transport equalitiesL383–392
70Calculate and transport equalitiesL393–393
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L393
trans ((a) * (b))
71Use earlier factsL394–394
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L394
apply mul_comm
72Calculate and transport equalitiesL395–401
73Use earlier factsL402–402
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L402
apply mul_comm
Original exact command ledger · 410 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro N - 0006
intro hnorm - 0007
specialize eisenstein_pair_natural_value_transport ((((((((a) * (a))) + (((b) * (b))))) + (((((c) * (c))) + (((d) * (d))))))) + (((((a) * (d))) + (((b) * (c)))))) - 0008
specialize eisenstein_pair_natural_value_transport ((((((((a) * (b))) + (((b) * (a))))) + (((((c) * (d))) + (((d) * (c))))))) + (((((a) * (c))) + (((b) * (d)))))) - 0009
specialize eisenstein_pair_natural_value_transport ((((((((((a) + (d))) * (((a) + (d))))) + (((((b) + (c))) * (((b) + (c))))))) + (((((d) * (d))) + (((c) * (c))))))) + (((((((a) + (d))) * (c))) + (((((b) + (c))) * (d)))))) - 0010
specialize eisenstein_pair_natural_value_transport ((((((((((a) + (d))) * (((b) + (c))))) + (((((b) + (c))) * (((a) + (d))))))) + (((((d) * (c))) + (((c) * (d))))))) + (((((((a) + (d))) * (d))) + (((((b) + (c))) * (c)))))) - 0011
specialize eisenstein_pair_natural_value_transport N - 0012
apply eisenstein_pair_natural_value_transport - 0013
exact hnorm - 0014
trans ((((a) * (a))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((d) * (b))) + ((((d) * (c))) + ((((b) * (a))) + ((((b) * (d))) + ((((c) * (a))) + ((((c) * (d))) + ((((d) * (c))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))))))) - 0015
simp [add_mul, mul_add, mul_assoc, add_assoc] - 0016
trans ((((a) * (a))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))))))) - 0017
congr - 0018
refl - 0019
congr - 0020
refl - 0021
congr - 0022
refl - 0023
congr - 0024
refl - 0025
congr - 0026
refl - 0027
congr - 0028
refl - 0029
congr - 0030
refl - 0031
congr - 0032
refl - 0033
congr - 0034
trans ((b) * (d)) - 0035
apply mul_comm - 0036
congr - 0037
refl - 0038
refl - 0039
congr - 0040
trans ((c) * (d)) - 0041
apply mul_comm - 0042
congr - 0043
refl - 0044
refl - 0045
congr - 0046
trans ((a) * (b)) - 0047
apply mul_comm - 0048
congr - 0049
refl - 0050
refl - 0051
congr - 0052
refl - 0053
congr - 0054
trans ((a) * (c)) - 0055
apply mul_comm - 0056
congr - 0057
refl - 0058
refl - 0059
congr - 0060
refl - 0061
congr - 0062
trans ((c) * (d)) - 0063
apply mul_comm - 0064
congr - 0065
refl - 0066
refl - 0067
congr - 0068
refl - 0069
congr - 0070
refl - 0071
congr - 0072
refl - 0073
congr - 0074
refl - 0075
refl - 0076
trans ((((a) * (a))) + ((((a) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (b))) + ((((b) * (c))) + ((((b) * (c))) + ((((c) * (c))) + ((((d) * (d))) + ((((c) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((a) * (b))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (c))) + (((b) * (d)))))))))))))))))))))) - 0077
congr - 0078
refl - 0079
trans ((((a) * (d))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))))) - 0080
trans ((((b) * (b))) + ((((a) * (d))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))))) - 0081
congr - 0082
refl - 0083
trans ((((c) * (c))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))))) - 0084
congr - 0085
refl - 0086
apply four_square_add_swap_right_tail - 0087
apply four_square_add_swap_right_tail - 0088
apply four_square_add_swap_right_tail - 0089
congr - 0090
refl - 0091
trans ((((a) * (d))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))))) - 0092
trans ((((b) * (b))) + ((((a) * (d))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))))) - 0093
congr - 0094
refl - 0095
trans ((((c) * (c))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))) - 0096
congr - 0097
refl - 0098
trans ((((d) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))))) - 0099
congr - 0100
refl - 0101
trans ((((b) * (c))) + ((((a) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))) - 0102
congr - 0103
refl - 0104
trans ((((a) * (b))) + ((((a) * (d))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))))) - 0105
congr - 0106
refl - 0107
trans ((((a) * (c))) + ((((a) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))) - 0108
congr - 0109
refl - 0110
trans ((((b) * (d))) + ((((a) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))))) - 0111
congr - 0112
refl - 0113
trans ((((c) * (d))) + ((((a) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))) - 0114
congr - 0115
refl - 0116
trans ((((a) * (b))) + ((((a) * (d))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))))) - 0117
congr - 0118
refl - 0119
trans ((((b) * (d))) + ((((a) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))) - 0120
congr - 0121
refl - 0122
trans ((((a) * (c))) + ((((a) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))))) - 0123
congr - 0124
refl - 0125
trans ((((c) * (d))) + ((((a) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))) - 0126
congr - 0127
refl - 0128
trans ((((c) * (d))) + ((((a) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))))) - 0129
congr - 0130
refl - 0131
apply four_square_add_swap_right_tail - 0132
apply four_square_add_swap_right_tail - 0133
apply four_square_add_swap_right_tail - 0134
apply four_square_add_swap_right_tail - 0135
apply four_square_add_swap_right_tail - 0136
apply four_square_add_swap_right_tail - 0137
apply four_square_add_swap_right_tail - 0138
apply four_square_add_swap_right_tail - 0139
apply four_square_add_swap_right_tail - 0140
apply four_square_add_swap_right_tail - 0141
apply four_square_add_swap_right_tail - 0142
apply four_square_add_swap_right_tail - 0143
apply four_square_add_swap_right_tail - 0144
apply four_square_add_swap_right_tail - 0145
congr - 0146
refl - 0147
trans ((((d) * (d))) + ((((b) * (b))) + ((((c) * (c))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))) - 0148
trans ((((b) * (b))) + ((((d) * (d))) + ((((c) * (c))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))))) - 0149
congr - 0150
refl - 0151
apply four_square_add_swap_right_tail - 0152
apply four_square_add_swap_right_tail - 0153
congr - 0154
refl - 0155
congr - 0156
refl - 0157
trans ((((b) * (c))) + ((((c) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c))))))))))))))))) - 0158
apply four_square_add_swap_right_tail - 0159
congr - 0160
refl - 0161
trans ((((b) * (c))) + ((((c) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))))))))))) - 0162
trans ((((c) * (c))) + ((((b) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))))))))))) - 0163
congr - 0164
refl - 0165
trans ((((a) * (b))) + ((((b) * (c))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))))))))))) - 0166
congr - 0167
refl - 0168
trans ((((a) * (c))) + ((((b) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))))))))) - 0169
congr - 0170
refl - 0171
trans ((((b) * (d))) + ((((b) * (c))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))))))))) - 0172
congr - 0173
refl - 0174
trans ((((c) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))))))) - 0175
congr - 0176
refl - 0177
trans ((((a) * (b))) + ((((b) * (c))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))))))) - 0178
congr - 0179
refl - 0180
trans ((((b) * (d))) + ((((b) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))))) - 0181
congr - 0182
refl - 0183
trans ((((a) * (c))) + ((((b) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))))) - 0184
congr - 0185
refl - 0186
trans ((((c) * (d))) + ((((b) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c)))))))) - 0187
congr - 0188
refl - 0189
trans ((((c) * (d))) + ((((b) * (c))) + ((((c) * (d))) + ((((d) * (d))) + (((c) * (c))))))) - 0190
congr - 0191
refl - 0192
trans ((((c) * (d))) + ((((b) * (c))) + ((((d) * (d))) + (((c) * (c)))))) - 0193
congr - 0194
refl - 0195
apply four_square_add_swap_right_tail - 0196
apply four_square_add_swap_right_tail - 0197
apply four_square_add_swap_right_tail - 0198
apply four_square_add_swap_right_tail - 0199
apply four_square_add_swap_right_tail - 0200
apply four_square_add_swap_right_tail - 0201
apply four_square_add_swap_right_tail - 0202
apply four_square_add_swap_right_tail - 0203
apply four_square_add_swap_right_tail - 0204
apply four_square_add_swap_right_tail - 0205
apply four_square_add_swap_right_tail - 0206
apply four_square_add_swap_right_tail - 0207
congr - 0208
refl - 0209
congr - 0210
refl - 0211
trans ((((d) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))))))))) - 0212
trans ((((a) * (b))) + ((((d) * (d))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))))))))) - 0213
congr - 0214
refl - 0215
trans ((((a) * (c))) + ((((d) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c))))))))))))) - 0216
congr - 0217
refl - 0218
trans ((((b) * (d))) + ((((d) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))))))) - 0219
congr - 0220
refl - 0221
trans ((((c) * (d))) + ((((d) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c))))))))))) - 0222
congr - 0223
refl - 0224
trans ((((a) * (b))) + ((((d) * (d))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))))) - 0225
congr - 0226
refl - 0227
trans ((((b) * (d))) + ((((d) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c))))))))) - 0228
congr - 0229
refl - 0230
trans ((((a) * (c))) + ((((d) * (d))) + ((((c) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c)))))))) - 0231
congr - 0232
refl - 0233
trans ((((c) * (d))) + ((((d) * (d))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (c))))))) - 0234
congr - 0235
refl - 0236
trans ((((c) * (d))) + ((((d) * (d))) + ((((c) * (d))) + (((c) * (c)))))) - 0237
congr - 0238
refl - 0239
apply four_square_add_swap_right_tail - 0240
apply four_square_add_swap_right_tail - 0241
apply four_square_add_swap_right_tail - 0242
apply four_square_add_swap_right_tail - 0243
apply four_square_add_swap_right_tail - 0244
apply four_square_add_swap_right_tail - 0245
apply four_square_add_swap_right_tail - 0246
apply four_square_add_swap_right_tail - 0247
apply four_square_add_swap_right_tail - 0248
apply four_square_add_swap_right_tail - 0249
congr - 0250
refl - 0251
trans ((((c) * (c))) + ((((a) * (b))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))))))) - 0252
trans ((((a) * (b))) + ((((c) * (c))) + ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))))))) - 0253
congr - 0254
refl - 0255
trans ((((a) * (c))) + ((((c) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d)))))))))))) - 0256
congr - 0257
refl - 0258
trans ((((b) * (d))) + ((((c) * (c))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))))) - 0259
congr - 0260
refl - 0261
trans ((((c) * (d))) + ((((c) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d)))))))))) - 0262
congr - 0263
refl - 0264
trans ((((a) * (b))) + ((((c) * (c))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))) - 0265
congr - 0266
refl - 0267
trans ((((b) * (d))) + ((((c) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d)))))))) - 0268
congr - 0269
refl - 0270
trans ((((a) * (c))) + ((((c) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))) - 0271
congr - 0272
refl - 0273
trans ((((c) * (d))) + ((((c) * (c))) + ((((c) * (d))) + (((c) * (d)))))) - 0274
congr - 0275
refl - 0276
trans ((((c) * (d))) + ((((c) * (c))) + (((c) * (d))))) - 0277
congr - 0278
refl - 0279
apply add_comm - 0280
apply four_square_add_swap_right_tail - 0281
apply four_square_add_swap_right_tail - 0282
apply four_square_add_swap_right_tail - 0283
apply four_square_add_swap_right_tail - 0284
apply four_square_add_swap_right_tail - 0285
apply four_square_add_swap_right_tail - 0286
apply four_square_add_swap_right_tail - 0287
apply four_square_add_swap_right_tail - 0288
apply four_square_add_swap_right_tail - 0289
congr - 0290
refl - 0291
trans ((((a) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d)))))))))))) - 0292
apply four_square_add_swap_right_tail - 0293
congr - 0294
refl - 0295
trans ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))))) - 0296
trans ((((a) * (b))) + ((((c) * (d))) + ((((b) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d))))))))))) - 0297
congr - 0298
refl - 0299
apply four_square_add_swap_right_tail - 0300
apply four_square_add_swap_right_tail - 0301
congr - 0302
refl - 0303
trans ((((b) * (d))) + ((((a) * (b))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((c) * (d))) + (((c) * (d)))))))))) - 0304
apply four_square_add_swap_right_tail - 0305
congr - 0306
refl - 0307
trans ((((c) * (d))) + ((((a) * (b))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))) - 0308
trans ((((a) * (b))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))) - 0309
congr - 0310
refl - 0311
trans ((((a) * (b))) + ((((c) * (d))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d)))))))) - 0312
congr - 0313
refl - 0314
trans ((((b) * (d))) + ((((c) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))) - 0315
congr - 0316
refl - 0317
apply four_square_add_swap_right_tail - 0318
apply four_square_add_swap_right_tail - 0319
apply four_square_add_swap_right_tail - 0320
apply four_square_add_swap_right_tail - 0321
congr - 0322
refl - 0323
congr - 0324
refl - 0325
congr - 0326
refl - 0327
trans ((((c) * (d))) + ((((b) * (d))) + ((((a) * (c))) + (((c) * (d)))))) - 0328
trans ((((b) * (d))) + ((((c) * (d))) + ((((a) * (c))) + (((c) * (d)))))) - 0329
congr - 0330
refl - 0331
apply four_square_add_swap_right_tail - 0332
apply four_square_add_swap_right_tail - 0333
congr - 0334
refl - 0335
trans ((((c) * (d))) + ((((b) * (d))) + (((a) * (c))))) - 0336
trans ((((b) * (d))) + ((((c) * (d))) + (((a) * (c))))) - 0337
congr - 0338
refl - 0339
apply add_comm - 0340
apply four_square_add_swap_right_tail - 0341
congr - 0342
refl - 0343
trans ((((a) * (c))) + (((b) * (d)))) - 0344
apply add_comm - 0345
congr - 0346
refl - 0347
refl - 0348
trans ((((a) * (a))) + ((((a) * (d))) + ((((d) * (a))) + ((((d) * (d))) + ((((b) * (b))) + ((((b) * (c))) + ((((c) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((c) * (c))) + ((((a) * (c))) + ((((d) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (b))) + ((((b) * (a))) + ((((c) * (d))) + ((((d) * (c))) + ((((a) * (c))) + (((b) * (d)))))))))))))))))))))) - 0349
symm - 0350
congr - 0351
refl - 0352
congr - 0353
refl - 0354
congr - 0355
trans ((a) * (d)) - 0356
apply mul_comm - 0357
congr - 0358
refl - 0359
refl - 0360
congr - 0361
refl - 0362
congr - 0363
refl - 0364
congr - 0365
refl - 0366
congr - 0367
trans ((b) * (c)) - 0368
apply mul_comm - 0369
congr - 0370
refl - 0371
refl - 0372
congr - 0373
refl - 0374
congr - 0375
refl - 0376
congr - 0377
refl - 0378
congr - 0379
refl - 0380
congr - 0381
trans ((c) * (d)) - 0382
apply mul_comm - 0383
congr - 0384
refl - 0385
refl - 0386
congr - 0387
refl - 0388
congr - 0389
refl - 0390
congr - 0391
refl - 0392
congr - 0393
trans ((a) * (b)) - 0394
apply mul_comm - 0395
congr - 0396
refl - 0397
refl - 0398
congr - 0399
refl - 0400
congr - 0401
trans ((c) * (d)) - 0402
apply mul_comm - 0403
congr - 0404
refl - 0405
refl - 0406
congr - 0407
refl - 0408
refl - 0409
symm - 0410
simp [add_mul, mul_add, mul_assoc, add_assoc]