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.
A floor quotient in the fundamental parallelogram already gives the required strict norm decrease; global nearest-point optimality is not asserted. The shared carrier is identical to the Gaussian carrier, but the multiplication law and norm are different. Eisenstein gcd, factorization, and prime classification remain separate targets.
Exact theorem in conservative defined notation
∀ a. ∀ b. ∀ c. ∀ d. ∀ N. EisensteinCoordinateNorm(a,b,c,d,N) → EisensteinCoordinateProduct(a + d,b + c,d,c,a,b,c,d,N,0,0,0)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 307 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
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
02Establish hrealL7–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply eisenstein pair natural value transport.
- L7
have hreal : ((((((((a) + (d))) * (a))) + (((((b) + (c))) * (b))))) + (((((d) * (d))) + (((c) * (c)))))) = ((((((((((a) + (d))) * (b))) + (((((b) + (c))) * (a))))) + (((((d) * (c))) + (((c) * (d))))))) + (N)) - L8
specialize eisenstein_pair_natural_value_transport ((((((((a) * (a))) + (((b) * (b))))) + (((((c) * (c))) + (((d) * (d))))))) + (((((a) * (d))) + (((b) * (c)))))) - L9
specialize eisenstein_pair_natural_value_transport ((((((((a) * (b))) + (((b) * (a))))) + (((((c) * (d))) + (((d) * (c))))))) + (((((a) * (c))) + (((b) * (d)))))) - L10
specialize eisenstein_pair_natural_value_transport ((((((((a) + (d))) * (a))) + (((((b) + (c))) * (b))))) + (((((d) * (d))) + (((c) * (c)))))) - L11
specialize eisenstein_pair_natural_value_transport ((((((((a) + (d))) * (b))) + (((((b) + (c))) * (a))))) + (((((d) * (c))) + (((c) * (d)))))) - L12
specialize eisenstein_pair_natural_value_transport N - L13
apply eisenstein_pair_natural_value_transport - L14
exact hnorm - L15
trans ((((a) * (a))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((d) * (b))) + ((((b) * (a))) + ((((c) * (a))) + ((((d) * (c))) + (((c) * (d)))))))))))))) - L16
simp [add_mul, mul_add, mul_assoc, add_assoc]
03Calculate and transport equalitiesL17–26
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
04Calculate and transport equalitiesL27–33
05Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
apply mul_comm
06Calculate and transport equalitiesL35–39
07Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
apply mul_comm
08Calculate and transport equalitiesL41–45
09Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
apply mul_comm
10Calculate and transport equalitiesL47–51
11Use earlier factsL52–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
apply mul_comm
12Calculate and transport equalitiesL53–62
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L53
congr - L54
refl - L55
refl - L56
refl - L57
trans ((((a) * (a))) + ((((a) * (d))) + ((((b) * (b))) + ((((b) * (c))) + ((((d) * (d))) + ((((c) * (c))) + ((((a) * (b))) + ((((a) * (b))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (c))) + (((b) * (d)))))))))))))) - L58
congr - L59
refl - L60
trans ((((a) * (d))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))))))) - L61
trans ((((b) * (b))) + ((((a) * (d))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))))))) - L62
congr
13Calculate and transport equalitiesL63–66
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
14Use earlier factsL67–69
15Calculate and transport equalitiesL70–77
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L70
congr - L71
refl - L72
congr - L73
refl - L74
trans ((((b) * (c))) + ((((c) * (c))) + ((((d) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))))) - L75
trans ((((c) * (c))) + ((((b) * (c))) + ((((d) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))))) - L76
congr - L77
refl
16Use earlier factsL78–79
17Calculate and transport equalitiesL80–82
18Use earlier factsL83–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L83
apply four_square_add_swap_right_tail
19Calculate and transport equalitiesL84–90
20Use earlier factsL91–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L91
apply four_square_add_swap_right_tail
21Calculate and transport equalitiesL92–97
22Use earlier factsL98–99
23Calculate and transport equalitiesL100–105
24Use earlier factsL106–107
25Calculate and transport equalitiesL108–110
26Use earlier factsL111–111
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L111
apply add_comm
27Calculate and transport equalitiesL112–120
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L112
congr - L113
refl - L114
refl - L115
trans ((((a) * (a))) + ((((d) * (a))) + ((((b) * (b))) + ((((c) * (b))) + ((((d) * (d))) + ((((c) * (c))) + ((((a) * (b))) + ((((b) * (a))) + ((((c) * (d))) + ((((d) * (c))) + ((((a) * (c))) + (((b) * (d)))))))))))))) - L116
symm - L117
congr - L118
refl - L119
congr - L120
trans ((a) * (d))
28Use earlier factsL121–121
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L121
apply mul_comm
29Calculate and transport equalitiesL122–128
30Use earlier factsL129–129
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L129
apply mul_comm
31Calculate and transport equalitiesL130–139
32Calculate and transport equalitiesL140–140
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L140
trans ((a) * (b))
33Use earlier factsL141–141
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L141
apply mul_comm
34Calculate and transport equalitiesL142–148
35Use earlier factsL149–149
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L149
apply mul_comm
36Calculate and transport equalitiesL150–157
37Separate the logical casesL158–158
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L158
split
38Calculate and transport equalitiesL159–159
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L159
trans ((((((((a) + (d))) * (a))) + (((((b) + (c))) * (b))))) + (((((d) * (d))) + (((c) * (c))))))
39Use earlier factsL160–160
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L160
apply PA3
40Calculate and transport equalitiesL161–161
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L161
trans ((((((((((a) + (d))) * (b))) + (((((b) + (c))) * (a))))) + (((((d) * (c))) + (((c) * (d))))))) + (N))
41Use earlier factsL162–163
42Calculate and transport equalitiesL164–164
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L164
trans ((((((((((a) + (d))) * (c))) + (((((b) + (c))) * (d))))) + (((((d) * (a))) + (((c) * (b))))))) + (((((d) * (d))) + (((c) * (c))))))
43Use earlier factsL165–165
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L165
apply PA3
44Calculate and transport equalitiesL166–173
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L166
trans ((((((((((a) + (d))) * (d))) + (((((b) + (c))) * (c))))) + (((((d) * (b))) + (((c) * (a))))))) + (((((d) * (c))) + (((c) * (d)))))) - L167
trans ((((a) * (c))) + ((((d) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((d) * (a))) + ((((c) * (b))) + ((((d) * (d))) + (((c) * (c)))))))))) - L168
simp [add_mul, mul_add, mul_assoc, add_assoc] - L169
trans ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((d) * (d))) + (((c) * (c)))))))))) - L170
congr - L171
refl - L172
congr - L173
trans ((c) * (d))
45Use earlier factsL174–174
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L174
apply mul_comm
46Calculate and transport equalitiesL175–183
47Use earlier factsL184–184
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L184
apply mul_comm
48Calculate and transport equalitiesL185–189
49Use earlier factsL190–190
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L190
apply mul_comm
50Calculate and transport equalitiesL191–200
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L191
congr - L192
refl - L193
refl - L194
congr - L195
refl - L196
refl - L197
trans ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + ((((c) * (c))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d)))))))))) - L198
trans ((((a) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + ((((d) * (d))) + (((c) * (c)))))))))) - L199
trans ((((a) * (c))) + ((((a) * (d))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + ((((d) * (d))) + (((c) * (c)))))))))) - L200
congr
51Calculate and transport equalitiesL201–207
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
52Use earlier factsL208–211
53Calculate and transport equalitiesL212–221
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L212
congr - L213
refl - L214
trans ((((d) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + (((c) * (c))))))))) - L215
trans ((((a) * (c))) + ((((d) * (d))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + (((c) * (c))))))))) - L216
congr - L217
refl - L218
trans ((((c) * (d))) + ((((d) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + (((c) * (c)))))))) - L219
congr - L220
refl - L221
trans ((((b) * (d))) + ((((d) * (d))) + ((((c) * (d))) + ((((b) * (c))) + (((c) * (c)))))))
54Calculate and transport equalitiesL222–226
55Use earlier factsL227–231
56Calculate and transport equalitiesL232–241
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L232
congr - L233
refl - L234
trans ((((b) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + (((c) * (c)))))))) - L235
trans ((((a) * (c))) + ((((b) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + (((c) * (c)))))))) - L236
congr - L237
refl - L238
trans ((((c) * (d))) + ((((b) * (c))) + ((((b) * (d))) + ((((c) * (d))) + (((c) * (c))))))) - L239
congr - L240
refl - L241
trans ((((b) * (d))) + ((((b) * (c))) + ((((c) * (d))) + (((c) * (c))))))
57Calculate and transport equalitiesL242–243
58Use earlier factsL244–247
59Calculate and transport equalitiesL248–257
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L248
congr - L249
refl - L250
trans ((((c) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + (((c) * (d))))))) - L251
trans ((((a) * (c))) + ((((c) * (c))) + ((((c) * (d))) + ((((b) * (d))) + (((c) * (d))))))) - L252
congr - L253
refl - L254
trans ((((c) * (d))) + ((((c) * (c))) + ((((b) * (d))) + (((c) * (d)))))) - L255
congr - L256
refl - L257
trans ((((b) * (d))) + ((((c) * (c))) + (((c) * (d)))))
60Calculate and transport equalitiesL258–259
61Use earlier factsL260–263
62Calculate and transport equalitiesL264–269
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
63Use earlier factsL270–271
64Calculate and transport equalitiesL272–281
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
65Calculate and transport equalitiesL282–286
66Use earlier factsL287–287
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L287
apply mul_comm
67Calculate and transport equalitiesL288–292
68Use earlier factsL293–293
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L293
apply mul_comm
69Calculate and transport equalitiesL294–298
70Use earlier factsL299–299
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L299
apply mul_comm
71Calculate and transport equalitiesL300–306
72Use earlier factsL307–307
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L307
apply zero_add
Original defined command ledger · 307 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro N - 0006
intro hnorm - 0007
have hreal : ((((((((a) + (d))) * (a))) + (((((b) + (c))) * (b))))) + (((((d) * (d))) + (((c) * (c)))))) = ((((((((((a) + (d))) * (b))) + (((((b) + (c))) * (a))))) + (((((d) * (c))) + (((c) * (d))))))) + (N)) - 0008
specialize eisenstein_pair_natural_value_transport ((((((((a) * (a))) + (((b) * (b))))) + (((((c) * (c))) + (((d) * (d))))))) + (((((a) * (d))) + (((b) * (c)))))) - 0009
specialize eisenstein_pair_natural_value_transport ((((((((a) * (b))) + (((b) * (a))))) + (((((c) * (d))) + (((d) * (c))))))) + (((((a) * (c))) + (((b) * (d)))))) - 0010
specialize eisenstein_pair_natural_value_transport ((((((((a) + (d))) * (a))) + (((((b) + (c))) * (b))))) + (((((d) * (d))) + (((c) * (c)))))) - 0011
specialize eisenstein_pair_natural_value_transport ((((((((a) + (d))) * (b))) + (((((b) + (c))) * (a))))) + (((((d) * (c))) + (((c) * (d)))))) - 0012
specialize eisenstein_pair_natural_value_transport N - 0013
apply eisenstein_pair_natural_value_transport - 0014
exact hnorm - 0015
trans ((((a) * (a))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((d) * (b))) + ((((b) * (a))) + ((((c) * (a))) + ((((d) * (c))) + (((c) * (d)))))))))))))) - 0016
simp [add_mul, mul_add, mul_assoc, add_assoc] - 0017
trans ((((a) * (a))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d)))))))))))))) - 0018
congr - 0019
refl - 0020
congr - 0021
refl - 0022
congr - 0023
refl - 0024
congr - 0025
refl - 0026
congr - 0027
refl - 0028
congr - 0029
refl - 0030
congr - 0031
refl - 0032
congr - 0033
trans ((b) * (d)) - 0034
apply mul_comm - 0035
congr - 0036
refl - 0037
refl - 0038
congr - 0039
trans ((a) * (b)) - 0040
apply mul_comm - 0041
congr - 0042
refl - 0043
refl - 0044
congr - 0045
trans ((a) * (c)) - 0046
apply mul_comm - 0047
congr - 0048
refl - 0049
refl - 0050
congr - 0051
trans ((c) * (d)) - 0052
apply mul_comm - 0053
congr - 0054
refl - 0055
refl - 0056
refl - 0057
trans ((((a) * (a))) + ((((a) * (d))) + ((((b) * (b))) + ((((b) * (c))) + ((((d) * (d))) + ((((c) * (c))) + ((((a) * (b))) + ((((a) * (b))) + ((((c) * (d))) + ((((c) * (d))) + ((((a) * (c))) + (((b) * (d)))))))))))))) - 0058
congr - 0059
refl - 0060
trans ((((a) * (d))) + ((((b) * (b))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))))))) - 0061
trans ((((b) * (b))) + ((((a) * (d))) + ((((c) * (c))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))))))) - 0062
congr - 0063
refl - 0064
trans ((((c) * (c))) + ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d)))))))))))) - 0065
congr - 0066
refl - 0067
apply four_square_add_swap_right_tail - 0068
apply four_square_add_swap_right_tail - 0069
apply four_square_add_swap_right_tail - 0070
congr - 0071
refl - 0072
congr - 0073
refl - 0074
trans ((((b) * (c))) + ((((c) * (c))) + ((((d) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))))) - 0075
trans ((((c) * (c))) + ((((b) * (c))) + ((((d) * (d))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))))))) - 0076
congr - 0077
refl - 0078
apply four_square_add_swap_right_tail - 0079
apply four_square_add_swap_right_tail - 0080
congr - 0081
refl - 0082
trans ((((d) * (d))) + ((((c) * (c))) + ((((a) * (b))) + ((((b) * (d))) + ((((a) * (b))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d)))))))))) - 0083
apply four_square_add_swap_right_tail - 0084
congr - 0085
refl - 0086
congr - 0087
refl - 0088
congr - 0089
refl - 0090
trans ((((a) * (b))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d))))))) - 0091
apply four_square_add_swap_right_tail - 0092
congr - 0093
refl - 0094
trans ((((c) * (d))) + ((((b) * (d))) + ((((a) * (c))) + (((c) * (d)))))) - 0095
trans ((((b) * (d))) + ((((c) * (d))) + ((((a) * (c))) + (((c) * (d)))))) - 0096
congr - 0097
refl - 0098
apply four_square_add_swap_right_tail - 0099
apply four_square_add_swap_right_tail - 0100
congr - 0101
refl - 0102
trans ((((c) * (d))) + ((((b) * (d))) + (((a) * (c))))) - 0103
trans ((((b) * (d))) + ((((c) * (d))) + (((a) * (c))))) - 0104
congr - 0105
refl - 0106
apply add_comm - 0107
apply four_square_add_swap_right_tail - 0108
congr - 0109
refl - 0110
trans ((((a) * (c))) + (((b) * (d)))) - 0111
apply add_comm - 0112
congr - 0113
refl - 0114
refl - 0115
trans ((((a) * (a))) + ((((d) * (a))) + ((((b) * (b))) + ((((c) * (b))) + ((((d) * (d))) + ((((c) * (c))) + ((((a) * (b))) + ((((b) * (a))) + ((((c) * (d))) + ((((d) * (c))) + ((((a) * (c))) + (((b) * (d)))))))))))))) - 0116
symm - 0117
congr - 0118
refl - 0119
congr - 0120
trans ((a) * (d)) - 0121
apply mul_comm - 0122
congr - 0123
refl - 0124
refl - 0125
congr - 0126
refl - 0127
congr - 0128
trans ((b) * (c)) - 0129
apply mul_comm - 0130
congr - 0131
refl - 0132
refl - 0133
congr - 0134
refl - 0135
congr - 0136
refl - 0137
congr - 0138
refl - 0139
congr - 0140
trans ((a) * (b)) - 0141
apply mul_comm - 0142
congr - 0143
refl - 0144
refl - 0145
congr - 0146
refl - 0147
congr - 0148
trans ((c) * (d)) - 0149
apply mul_comm - 0150
congr - 0151
refl - 0152
refl - 0153
congr - 0154
refl - 0155
refl - 0156
symm - 0157
simp [add_mul, mul_add, mul_assoc, add_assoc] - 0158
split - 0159
trans ((((((((a) + (d))) * (a))) + (((((b) + (c))) * (b))))) + (((((d) * (d))) + (((c) * (c)))))) - 0160
apply PA3 - 0161
trans ((((((((((a) + (d))) * (b))) + (((((b) + (c))) * (a))))) + (((((d) * (c))) + (((c) * (d))))))) + (N)) - 0162
exact hreal - 0163
apply add_comm - 0164
trans ((((((((((a) + (d))) * (c))) + (((((b) + (c))) * (d))))) + (((((d) * (a))) + (((c) * (b))))))) + (((((d) * (d))) + (((c) * (c)))))) - 0165
apply PA3 - 0166
trans ((((((((((a) + (d))) * (d))) + (((((b) + (c))) * (c))))) + (((((d) * (b))) + (((c) * (a))))))) + (((((d) * (c))) + (((c) * (d)))))) - 0167
trans ((((a) * (c))) + ((((d) * (c))) + ((((b) * (d))) + ((((c) * (d))) + ((((d) * (a))) + ((((c) * (b))) + ((((d) * (d))) + (((c) * (c)))))))))) - 0168
simp [add_mul, mul_add, mul_assoc, add_assoc] - 0169
trans ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((a) * (d))) + ((((b) * (c))) + ((((d) * (d))) + (((c) * (c)))))))))) - 0170
congr - 0171
refl - 0172
congr - 0173
trans ((c) * (d)) - 0174
apply mul_comm - 0175
congr - 0176
refl - 0177
refl - 0178
congr - 0179
refl - 0180
congr - 0181
refl - 0182
congr - 0183
trans ((a) * (d)) - 0184
apply mul_comm - 0185
congr - 0186
refl - 0187
refl - 0188
congr - 0189
trans ((b) * (c)) - 0190
apply mul_comm - 0191
congr - 0192
refl - 0193
refl - 0194
congr - 0195
refl - 0196
refl - 0197
trans ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + ((((c) * (c))) + ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d)))))))))) - 0198
trans ((((a) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + ((((d) * (d))) + (((c) * (c)))))))))) - 0199
trans ((((a) * (c))) + ((((a) * (d))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + ((((d) * (d))) + (((c) * (c)))))))))) - 0200
congr - 0201
refl - 0202
trans ((((c) * (d))) + ((((a) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + ((((d) * (d))) + (((c) * (c))))))))) - 0203
congr - 0204
refl - 0205
trans ((((b) * (d))) + ((((a) * (d))) + ((((c) * (d))) + ((((b) * (c))) + ((((d) * (d))) + (((c) * (c)))))))) - 0206
congr - 0207
refl - 0208
apply four_square_add_swap_right_tail - 0209
apply four_square_add_swap_right_tail - 0210
apply four_square_add_swap_right_tail - 0211
apply four_square_add_swap_right_tail - 0212
congr - 0213
refl - 0214
trans ((((d) * (d))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + (((c) * (c))))))))) - 0215
trans ((((a) * (c))) + ((((d) * (d))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + (((c) * (c))))))))) - 0216
congr - 0217
refl - 0218
trans ((((c) * (d))) + ((((d) * (d))) + ((((b) * (d))) + ((((c) * (d))) + ((((b) * (c))) + (((c) * (c)))))))) - 0219
congr - 0220
refl - 0221
trans ((((b) * (d))) + ((((d) * (d))) + ((((c) * (d))) + ((((b) * (c))) + (((c) * (c))))))) - 0222
congr - 0223
refl - 0224
trans ((((c) * (d))) + ((((d) * (d))) + ((((b) * (c))) + (((c) * (c)))))) - 0225
congr - 0226
refl - 0227
apply four_square_add_swap_right_tail - 0228
apply four_square_add_swap_right_tail - 0229
apply four_square_add_swap_right_tail - 0230
apply four_square_add_swap_right_tail - 0231
apply four_square_add_swap_right_tail - 0232
congr - 0233
refl - 0234
trans ((((b) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + (((c) * (c)))))))) - 0235
trans ((((a) * (c))) + ((((b) * (c))) + ((((c) * (d))) + ((((b) * (d))) + ((((c) * (d))) + (((c) * (c)))))))) - 0236
congr - 0237
refl - 0238
trans ((((c) * (d))) + ((((b) * (c))) + ((((b) * (d))) + ((((c) * (d))) + (((c) * (c))))))) - 0239
congr - 0240
refl - 0241
trans ((((b) * (d))) + ((((b) * (c))) + ((((c) * (d))) + (((c) * (c)))))) - 0242
congr - 0243
refl - 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
congr - 0249
refl - 0250
trans ((((c) * (c))) + ((((a) * (c))) + ((((c) * (d))) + ((((b) * (d))) + (((c) * (d))))))) - 0251
trans ((((a) * (c))) + ((((c) * (c))) + ((((c) * (d))) + ((((b) * (d))) + (((c) * (d))))))) - 0252
congr - 0253
refl - 0254
trans ((((c) * (d))) + ((((c) * (c))) + ((((b) * (d))) + (((c) * (d)))))) - 0255
congr - 0256
refl - 0257
trans ((((b) * (d))) + ((((c) * (c))) + (((c) * (d))))) - 0258
congr - 0259
refl - 0260
apply add_comm - 0261
apply four_square_add_swap_right_tail - 0262
apply four_square_add_swap_right_tail - 0263
apply four_square_add_swap_right_tail - 0264
congr - 0265
refl - 0266
trans ((((b) * (d))) + ((((a) * (c))) + ((((c) * (d))) + (((c) * (d)))))) - 0267
trans ((((a) * (c))) + ((((b) * (d))) + ((((c) * (d))) + (((c) * (d)))))) - 0268
congr - 0269
refl - 0270
apply four_square_add_swap_right_tail - 0271
apply four_square_add_swap_right_tail - 0272
congr - 0273
refl - 0274
refl - 0275
trans ((((a) * (d))) + ((((d) * (d))) + ((((b) * (c))) + ((((c) * (c))) + ((((d) * (b))) + ((((c) * (a))) + ((((d) * (c))) + (((c) * (d)))))))))) - 0276
symm - 0277
congr - 0278
refl - 0279
congr - 0280
refl - 0281
congr - 0282
refl - 0283
congr - 0284
refl - 0285
congr - 0286
trans ((b) * (d)) - 0287
apply mul_comm - 0288
congr - 0289
refl - 0290
refl - 0291
congr - 0292
trans ((a) * (c)) - 0293
apply mul_comm - 0294
congr - 0295
refl - 0296
refl - 0297
congr - 0298
trans ((c) * (d)) - 0299
apply mul_comm - 0300
congr - 0301
refl - 0302
refl - 0303
refl - 0304
symm - 0305
simp [add_mul, mul_add, mul_assoc, add_assoc] - 0306
symm - 0307
apply zero_add