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 p n q m. ((((((((p) * (q))) + (((n) * (m))))) * (((((p) * (m))) + (((n) * (q))))))) + (((((((p) * (m))) + (((n) * (q))))) * (((((p) * (q))) + (((n) * (m)))))))) = ((((((((p) * (p))) + (((n) * (n))))) * (((((q) * (m))) + (((m) * (q))))))) + (((((((p) * (n))) + (((n) * (p))))) * (((((q) * (q))) + (((m) * (m))))))))Constructive proof overview
Generated structural guide
The negative square block of an actual signed product expands into the two negative convolution blocks.
The unchanged tactic script uses 8 declared prerequisites and contains 255 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
add_mul Stable theorem; checked-use authorized mul_add Stable theorem; checked-use authorized mul_assoc Stable theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized add_assoc Stable theorem; checked-use authorized add_comm Stable theorem; checked-use authorized four_square_add_swap_right_tail Alpha theorem; checked-use authorized GI0001 natural_mul_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 (1)
01Fix variables and assumptionsL1–4
02Calculate and transport equalitiesL5–14
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L5
trans ((((p) * (((q) * (((p) * (m))))))) + ((((p) * (((q) * (((n) * (q))))))) + ((((n) * (((m) * (((p) * (m))))))) + ((((n) * (((m) * (((n) * (q))))))) + ((((p) * (((m) * (((p) * (q))))))) + ((((p) * (((m) * (((n) * (m))))))) + ((((n) * (((q) * (((p) * (q))))))) + (((n) * (((q) * (((n) * (m)))))))))))))) - L6
simp [add_mul, mul_add, mul_assoc, add_assoc] - L7
trans ((((m) * (((p) * (((p) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((p) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q)))))))))))))) - L8
congr - L9
trans ((m) * (((p) * (((q) * (p)))))) - L10
trans ((p) * (((m) * (((q) * (p)))))) - L11
congr - L12
refl - L13
trans ((q) * (((m) * (p)))) - L14
congr
03Calculate and transport equalitiesL15–15
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L15
refl
04Use earlier factsL16–18
05Calculate and transport equalitiesL19–23
06Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
apply mul_comm
07Calculate and transport equalitiesL25–32
08Use earlier factsL33–34
09Calculate and transport equalitiesL35–39
10Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
apply natural_mul_swap_right_tail
11Calculate and transport equalitiesL41–46
12Use earlier factsL47–48
13Calculate and transport equalitiesL49–53
14Use earlier factsL54–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
apply natural_mul_swap_right_tail
15Calculate and transport equalitiesL55–59
16Use earlier factsL60–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
apply natural_mul_swap_right_tail
17Calculate and transport equalitiesL61–65
18Use earlier factsL66–66
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
apply natural_mul_swap_right_tail
19Calculate and transport equalitiesL67–72
20Use earlier factsL73–74
21Calculate and transport equalitiesL75–77
22Use earlier factsL78–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
apply mul_comm
23Calculate and transport equalitiesL79–85
24Use earlier factsL86–86
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
apply natural_mul_swap_right_tail
25Calculate and transport equalitiesL87–96
26Use earlier factsL97–99
27Calculate and transport equalitiesL100–104
28Use earlier factsL105–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L105
apply mul_comm
29Calculate and transport equalitiesL106–115
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L106
congr - L107
refl - L108
refl - L109
trans ((((m) * (((p) * (((p) * (q))))))) + ((((m) * (((p) * (((p) * (q))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((m) * (((n) * (p)))))))))))))) - L110
congr - L111
refl - L112
trans ((((m) * (((p) * (((p) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q))))))))))))) - L113
trans ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((p) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q))))))))))))) - L114
congr - L115
refl
30Calculate and transport equalitiesL116–118
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
31Use earlier factsL119–121
32Calculate and transport equalitiesL122–127
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L122
congr - L123
refl - L124
trans ((((m) * (((n) * (((n) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q)))))))))))) - L125
trans ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q)))))))))))) - L126
congr - L127
refl
33Use earlier factsL128–129
34Calculate and transport equalitiesL130–139
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L130
congr - L131
refl - L132
trans ((((m) * (((n) * (((n) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((m) * (((n) * (p))))))) + (((n) * (((p) * (((q) * (q))))))))))) - L133
trans ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((m) * (((n) * (p))))))) + (((n) * (((p) * (((q) * (q))))))))))) - L134
congr - L135
refl - L136
trans ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + (((n) * (((p) * (((q) * (q)))))))))) - L137
congr - L138
refl - L139
trans ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + (((n) * (((p) * (((q) * (q)))))))))
35Calculate and transport equalitiesL140–141
36Use earlier factsL142–145
37Calculate and transport equalitiesL146–152
38Use earlier factsL153–153
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L153
apply add_comm
39Calculate and transport equalitiesL154–163
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L154
congr - L155
refl - L156
refl - L157
trans ((((p) * (((p) * (((q) * (m))))))) + ((((p) * (((p) * (((m) * (q))))))) + ((((n) * (((n) * (((q) * (m))))))) + ((((n) * (((n) * (((m) * (q))))))) + ((((p) * (((n) * (((q) * (q))))))) + ((((p) * (((n) * (((m) * (m))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((n) * (((p) * (((m) * (m)))))))))))))) - L158
symm - L159
congr - L160
trans ((m) * (((p) * (((p) * (q)))))) - L161
trans ((p) * (((m) * (((p) * (q)))))) - L162
congr - L163
refl
40Calculate and transport equalitiesL164–166
41Use earlier factsL167–169
42Calculate and transport equalitiesL170–177
43Use earlier factsL178–179
44Calculate and transport equalitiesL180–189
45Calculate and transport equalitiesL190–190
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L190
refl
46Use earlier factsL191–193
47Calculate and transport equalitiesL194–201
48Use earlier factsL202–203
49Calculate and transport equalitiesL204–208
50Use earlier factsL209–209
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L209
apply natural_mul_swap_right_tail
51Calculate and transport equalitiesL210–217
52Use earlier factsL218–219
53Calculate and transport equalitiesL220–225
54Use earlier factsL226–227
55Calculate and transport equalitiesL228–230
56Use earlier factsL231–231
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L231
apply mul_comm
57Calculate and transport equalitiesL232–240
58Use earlier factsL241–242
59Calculate and transport equalitiesL243–248
60Use earlier factsL249–250
Original exact command ledger · 255 lines
- 0001
intro p - 0002
intro n - 0003
intro q - 0004
intro m - 0005
trans ((((p) * (((q) * (((p) * (m))))))) + ((((p) * (((q) * (((n) * (q))))))) + ((((n) * (((m) * (((p) * (m))))))) + ((((n) * (((m) * (((n) * (q))))))) + ((((p) * (((m) * (((p) * (q))))))) + ((((p) * (((m) * (((n) * (m))))))) + ((((n) * (((q) * (((p) * (q))))))) + (((n) * (((q) * (((n) * (m)))))))))))))) - 0006
simp [add_mul, mul_add, mul_assoc, add_assoc] - 0007
trans ((((m) * (((p) * (((p) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((p) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q)))))))))))))) - 0008
congr - 0009
trans ((m) * (((p) * (((q) * (p)))))) - 0010
trans ((p) * (((m) * (((q) * (p)))))) - 0011
congr - 0012
refl - 0013
trans ((q) * (((m) * (p)))) - 0014
congr - 0015
refl - 0016
apply mul_comm - 0017
apply natural_mul_swap_right_tail - 0018
apply natural_mul_swap_right_tail - 0019
congr - 0020
refl - 0021
congr - 0022
refl - 0023
trans ((p) * (q)) - 0024
apply mul_comm - 0025
congr - 0026
refl - 0027
refl - 0028
congr - 0029
trans ((n) * (((p) * (((q) * (q)))))) - 0030
trans ((p) * (((n) * (((q) * (q)))))) - 0031
congr - 0032
refl - 0033
apply natural_mul_swap_right_tail - 0034
apply natural_mul_swap_right_tail - 0035
congr - 0036
refl - 0037
refl - 0038
congr - 0039
trans ((m) * (((n) * (((p) * (m)))))) - 0040
apply natural_mul_swap_right_tail - 0041
congr - 0042
refl - 0043
trans ((m) * (((n) * (p)))) - 0044
trans ((n) * (((m) * (p)))) - 0045
congr - 0046
refl - 0047
apply mul_comm - 0048
apply natural_mul_swap_right_tail - 0049
congr - 0050
refl - 0051
refl - 0052
congr - 0053
trans ((m) * (((n) * (((n) * (q)))))) - 0054
apply natural_mul_swap_right_tail - 0055
congr - 0056
refl - 0057
refl - 0058
congr - 0059
trans ((m) * (((p) * (((p) * (q)))))) - 0060
apply natural_mul_swap_right_tail - 0061
congr - 0062
refl - 0063
refl - 0064
congr - 0065
trans ((m) * (((p) * (((n) * (m)))))) - 0066
apply natural_mul_swap_right_tail - 0067
congr - 0068
refl - 0069
trans ((m) * (((p) * (n)))) - 0070
trans ((p) * (((m) * (n)))) - 0071
congr - 0072
refl - 0073
apply mul_comm - 0074
apply natural_mul_swap_right_tail - 0075
congr - 0076
refl - 0077
trans ((n) * (p)) - 0078
apply mul_comm - 0079
congr - 0080
refl - 0081
refl - 0082
congr - 0083
congr - 0084
refl - 0085
trans ((p) * (((q) * (q)))) - 0086
apply natural_mul_swap_right_tail - 0087
congr - 0088
refl - 0089
refl - 0090
trans ((m) * (((n) * (((q) * (n)))))) - 0091
trans ((n) * (((m) * (((q) * (n)))))) - 0092
congr - 0093
refl - 0094
trans ((q) * (((m) * (n)))) - 0095
congr - 0096
refl - 0097
apply mul_comm - 0098
apply natural_mul_swap_right_tail - 0099
apply natural_mul_swap_right_tail - 0100
congr - 0101
refl - 0102
congr - 0103
refl - 0104
trans ((n) * (q)) - 0105
apply mul_comm - 0106
congr - 0107
refl - 0108
refl - 0109
trans ((((m) * (((p) * (((p) * (q))))))) + ((((m) * (((p) * (((p) * (q))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((m) * (((n) * (p)))))))))))))) - 0110
congr - 0111
refl - 0112
trans ((((m) * (((p) * (((p) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q))))))))))))) - 0113
trans ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((p) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q))))))))))))) - 0114
congr - 0115
refl - 0116
trans ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((p) * (((p) * (q))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q)))))))))))) - 0117
congr - 0118
refl - 0119
apply four_square_add_swap_right_tail - 0120
apply four_square_add_swap_right_tail - 0121
apply four_square_add_swap_right_tail - 0122
congr - 0123
refl - 0124
trans ((((m) * (((n) * (((n) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q)))))))))))) - 0125
trans ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((n) * (((n) * (q)))))))))))) - 0126
congr - 0127
refl - 0128
apply four_square_add_swap_right_tail - 0129
apply four_square_add_swap_right_tail - 0130
congr - 0131
refl - 0132
trans ((((m) * (((n) * (((n) * (q))))))) + ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((m) * (((n) * (p))))))) + (((n) * (((p) * (((q) * (q))))))))))) - 0133
trans ((((n) * (((p) * (((q) * (q))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((m) * (((n) * (p))))))) + (((n) * (((p) * (((q) * (q))))))))))) - 0134
congr - 0135
refl - 0136
trans ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + ((((m) * (((m) * (((n) * (p))))))) + (((n) * (((p) * (((q) * (q)))))))))) - 0137
congr - 0138
refl - 0139
trans ((((m) * (((m) * (((n) * (p))))))) + ((((m) * (((n) * (((n) * (q))))))) + (((n) * (((p) * (((q) * (q))))))))) - 0140
congr - 0141
refl - 0142
apply add_comm - 0143
apply four_square_add_swap_right_tail - 0144
apply four_square_add_swap_right_tail - 0145
apply four_square_add_swap_right_tail - 0146
congr - 0147
refl - 0148
congr - 0149
refl - 0150
congr - 0151
refl - 0152
trans ((((n) * (((p) * (((q) * (q))))))) + (((m) * (((m) * (((n) * (p)))))))) - 0153
apply add_comm - 0154
congr - 0155
refl - 0156
refl - 0157
trans ((((p) * (((p) * (((q) * (m))))))) + ((((p) * (((p) * (((m) * (q))))))) + ((((n) * (((n) * (((q) * (m))))))) + ((((n) * (((n) * (((m) * (q))))))) + ((((p) * (((n) * (((q) * (q))))))) + ((((p) * (((n) * (((m) * (m))))))) + ((((n) * (((p) * (((q) * (q))))))) + (((n) * (((p) * (((m) * (m)))))))))))))) - 0158
symm - 0159
congr - 0160
trans ((m) * (((p) * (((p) * (q)))))) - 0161
trans ((p) * (((m) * (((p) * (q)))))) - 0162
congr - 0163
refl - 0164
trans ((p) * (((m) * (q)))) - 0165
congr - 0166
refl - 0167
apply mul_comm - 0168
apply natural_mul_swap_right_tail - 0169
apply natural_mul_swap_right_tail - 0170
congr - 0171
refl - 0172
refl - 0173
congr - 0174
trans ((m) * (((p) * (((p) * (q)))))) - 0175
trans ((p) * (((m) * (((p) * (q)))))) - 0176
congr - 0177
refl - 0178
apply natural_mul_swap_right_tail - 0179
apply natural_mul_swap_right_tail - 0180
congr - 0181
refl - 0182
refl - 0183
congr - 0184
trans ((m) * (((n) * (((n) * (q)))))) - 0185
trans ((n) * (((m) * (((n) * (q)))))) - 0186
congr - 0187
refl - 0188
trans ((n) * (((m) * (q)))) - 0189
congr - 0190
refl - 0191
apply mul_comm - 0192
apply natural_mul_swap_right_tail - 0193
apply natural_mul_swap_right_tail - 0194
congr - 0195
refl - 0196
refl - 0197
congr - 0198
trans ((m) * (((n) * (((n) * (q)))))) - 0199
trans ((n) * (((m) * (((n) * (q)))))) - 0200
congr - 0201
refl - 0202
apply natural_mul_swap_right_tail - 0203
apply natural_mul_swap_right_tail - 0204
congr - 0205
refl - 0206
refl - 0207
congr - 0208
trans ((n) * (((p) * (((q) * (q)))))) - 0209
apply natural_mul_swap_right_tail - 0210
congr - 0211
refl - 0212
refl - 0213
congr - 0214
trans ((m) * (((p) * (((n) * (m)))))) - 0215
trans ((p) * (((m) * (((n) * (m)))))) - 0216
congr - 0217
refl - 0218
apply natural_mul_swap_right_tail - 0219
apply natural_mul_swap_right_tail - 0220
congr - 0221
refl - 0222
trans ((m) * (((p) * (n)))) - 0223
trans ((p) * (((m) * (n)))) - 0224
congr - 0225
refl - 0226
apply mul_comm - 0227
apply natural_mul_swap_right_tail - 0228
congr - 0229
refl - 0230
trans ((n) * (p)) - 0231
apply mul_comm - 0232
congr - 0233
refl - 0234
refl - 0235
congr - 0236
refl - 0237
trans ((m) * (((n) * (((p) * (m)))))) - 0238
trans ((n) * (((m) * (((p) * (m)))))) - 0239
congr - 0240
refl - 0241
apply natural_mul_swap_right_tail - 0242
apply natural_mul_swap_right_tail - 0243
congr - 0244
refl - 0245
trans ((m) * (((n) * (p)))) - 0246
trans ((n) * (((m) * (p)))) - 0247
congr - 0248
refl - 0249
apply mul_comm - 0250
apply natural_mul_swap_right_tail - 0251
congr - 0252
refl - 0253
refl - 0254
symm - 0255
simp [add_mul, mul_add, mul_assoc, add_assoc]