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) * (q))) + (((n) * (m))))))) + (((((((p) * (m))) + (((n) * (q))))) * (((((p) * (m))) + (((n) * (q)))))))) = ((((((((p) * (p))) + (((n) * (n))))) * (((((q) * (q))) + (((m) * (m))))))) + (((((((p) * (n))) + (((n) * (p))))) * (((((q) * (m))) + (((m) * (q))))))))Constructive proof overview
Generated structural guide
The positive square block of an actual signed product expands into its two positive convolution blocks.
The unchanged tactic script uses 8 declared prerequisites and contains 251 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–11
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L5
trans ((((p) * (((q) * (((p) * (q))))))) + ((((p) * (((q) * (((n) * (m))))))) + ((((n) * (((m) * (((p) * (q))))))) + ((((n) * (((m) * (((n) * (m))))))) + ((((p) * (((m) * (((p) * (m))))))) + ((((p) * (((m) * (((n) * (q))))))) + ((((n) * (((q) * (((p) * (m))))))) + (((n) * (((q) * (((n) * (q)))))))))))))) - L6
simp [add_mul, mul_add, mul_assoc, add_assoc] - L7
trans ((((p) * (((p) * (((q) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((m) * (((p) * (p))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((n) * (((n) * (((q) * (q)))))))))))))) - L8
congr - L9
congr - L10
refl - L11
trans ((p) * (((q) * (q))))
03Use earlier factsL12–12
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L12
apply natural_mul_swap_right_tail
04Calculate and transport equalitiesL13–22
05Calculate and transport equalitiesL23–23
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L23
refl
06Use earlier factsL24–26
07Calculate and transport equalitiesL27–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–45
12Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
apply natural_mul_swap_right_tail
13Calculate and transport equalitiesL47–52
14Use earlier factsL53–54
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–66
18Use earlier factsL67–68
19Calculate and transport equalitiesL69–73
20Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
apply natural_mul_swap_right_tail
21Calculate and transport equalitiesL75–77
22Use earlier factsL78–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
apply natural_mul_swap_right_tail
23Calculate and transport equalitiesL79–88
24Calculate and transport equalitiesL89–89
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L89
refl
25Use earlier factsL90–92
26Calculate and transport equalitiesL93–97
27Use earlier factsL98–98
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L98
apply mul_comm
28Calculate and transport equalitiesL99–104
29Use earlier factsL105–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L105
apply natural_mul_swap_right_tail
30Calculate 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 ((((p) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((p) * (p))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q)))))))))))))) - L110
congr - L111
refl - L112
trans ((((m) * (((m) * (((p) * (p))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((n) * (((n) * (((q) * (q))))))))))))) - L113
trans ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((p) * (p))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((n) * (((n) * (((q) * (q))))))))))))) - L114
congr - L115
refl
31Calculate and transport equalitiesL116–118
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
32Use earlier factsL119–121
33Calculate and transport equalitiesL122–131
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L122
congr - L123
refl - L124
trans ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q)))))))))))) - L125
trans ((((m) * (((n) * (((p) * (q))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q)))))))))))) - L126
congr - L127
refl - L128
trans ((((m) * (((n) * (((p) * (q))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q))))))))))) - L129
congr - L130
refl - L131
trans ((((m) * (((m) * (((n) * (n))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q))))))))))
34Calculate and transport equalitiesL132–136
35Use earlier factsL137–141
36Calculate and transport equalitiesL142–147
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L142
congr - L143
refl - L144
trans ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q))))))))))) - L145
trans ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q))))))))))) - L146
congr - L147
refl
37Use earlier factsL148–149
38Calculate and transport equalitiesL150–159
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L150
congr - L151
refl - L152
refl - L153
trans ((((p) * (((p) * (((q) * (q))))))) + ((((p) * (((p) * (((m) * (m))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((n) * (((n) * (((m) * (m))))))) + ((((p) * (((n) * (((q) * (m))))))) + ((((p) * (((n) * (((m) * (q))))))) + ((((n) * (((p) * (((q) * (m))))))) + (((n) * (((p) * (((m) * (q)))))))))))))) - L154
symm - L155
congr - L156
refl - L157
congr - L158
trans ((m) * (((p) * (((p) * (m)))))) - L159
trans ((p) * (((m) * (((p) * (m))))))
39Calculate and transport equalitiesL160–161
40Use earlier factsL162–163
41Calculate and transport equalitiesL164–169
42Use earlier factsL170–171
43Calculate and transport equalitiesL172–181
44Use earlier factsL182–183
45Calculate and transport equalitiesL184–189
46Use earlier factsL190–191
47Calculate and transport equalitiesL192–201
48Calculate and transport equalitiesL202–202
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L202
refl
49Use earlier factsL203–205
50Calculate and transport equalitiesL206–208
51Use earlier factsL209–209
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L209
apply natural_mul_swap_right_tail
52Calculate and transport equalitiesL210–217
53Use earlier factsL218–219
54Calculate and transport equalitiesL220–222
55Use earlier factsL223–223
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L223
apply natural_mul_swap_right_tail
56Calculate and transport equalitiesL224–233
57Calculate and transport equalitiesL234–234
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L234
refl
58Use earlier factsL235–237
59Calculate and transport equalitiesL238–244
60Use earlier factsL245–246
Original exact command ledger · 251 lines
- 0001
intro p - 0002
intro n - 0003
intro q - 0004
intro m - 0005
trans ((((p) * (((q) * (((p) * (q))))))) + ((((p) * (((q) * (((n) * (m))))))) + ((((n) * (((m) * (((p) * (q))))))) + ((((n) * (((m) * (((n) * (m))))))) + ((((p) * (((m) * (((p) * (m))))))) + ((((p) * (((m) * (((n) * (q))))))) + ((((n) * (((q) * (((p) * (m))))))) + (((n) * (((q) * (((n) * (q)))))))))))))) - 0006
simp [add_mul, mul_add, mul_assoc, add_assoc] - 0007
trans ((((p) * (((p) * (((q) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((m) * (((p) * (p))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((n) * (((n) * (((q) * (q)))))))))))))) - 0008
congr - 0009
congr - 0010
refl - 0011
trans ((p) * (((q) * (q)))) - 0012
apply natural_mul_swap_right_tail - 0013
congr - 0014
refl - 0015
refl - 0016
congr - 0017
trans ((m) * (((p) * (((q) * (n)))))) - 0018
trans ((p) * (((m) * (((q) * (n)))))) - 0019
congr - 0020
refl - 0021
trans ((q) * (((m) * (n)))) - 0022
congr - 0023
refl - 0024
apply mul_comm - 0025
apply natural_mul_swap_right_tail - 0026
apply natural_mul_swap_right_tail - 0027
congr - 0028
refl - 0029
trans ((n) * (((p) * (q)))) - 0030
trans ((p) * (((n) * (q)))) - 0031
congr - 0032
refl - 0033
apply mul_comm - 0034
apply natural_mul_swap_right_tail - 0035
congr - 0036
refl - 0037
refl - 0038
congr - 0039
trans ((m) * (((n) * (((p) * (q)))))) - 0040
apply natural_mul_swap_right_tail - 0041
congr - 0042
refl - 0043
refl - 0044
congr - 0045
trans ((m) * (((n) * (((n) * (m)))))) - 0046
apply natural_mul_swap_right_tail - 0047
congr - 0048
refl - 0049
trans ((m) * (((n) * (n)))) - 0050
trans ((n) * (((m) * (n)))) - 0051
congr - 0052
refl - 0053
apply mul_comm - 0054
apply natural_mul_swap_right_tail - 0055
congr - 0056
refl - 0057
refl - 0058
congr - 0059
trans ((m) * (((p) * (((p) * (m)))))) - 0060
apply natural_mul_swap_right_tail - 0061
congr - 0062
refl - 0063
trans ((m) * (((p) * (p)))) - 0064
trans ((p) * (((m) * (p)))) - 0065
congr - 0066
refl - 0067
apply mul_comm - 0068
apply natural_mul_swap_right_tail - 0069
congr - 0070
refl - 0071
refl - 0072
congr - 0073
trans ((m) * (((p) * (((n) * (q)))))) - 0074
apply natural_mul_swap_right_tail - 0075
congr - 0076
refl - 0077
trans ((n) * (((p) * (q)))) - 0078
apply natural_mul_swap_right_tail - 0079
congr - 0080
refl - 0081
refl - 0082
congr - 0083
trans ((m) * (((n) * (((q) * (p)))))) - 0084
trans ((n) * (((m) * (((q) * (p)))))) - 0085
congr - 0086
refl - 0087
trans ((q) * (((m) * (p)))) - 0088
congr - 0089
refl - 0090
apply mul_comm - 0091
apply natural_mul_swap_right_tail - 0092
apply natural_mul_swap_right_tail - 0093
congr - 0094
refl - 0095
congr - 0096
refl - 0097
trans ((p) * (q)) - 0098
apply mul_comm - 0099
congr - 0100
refl - 0101
refl - 0102
congr - 0103
refl - 0104
trans ((n) * (((q) * (q)))) - 0105
apply natural_mul_swap_right_tail - 0106
congr - 0107
refl - 0108
refl - 0109
trans ((((p) * (((p) * (((q) * (q))))))) + ((((m) * (((m) * (((p) * (p))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q)))))))))))))) - 0110
congr - 0111
refl - 0112
trans ((((m) * (((m) * (((p) * (p))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((n) * (((n) * (((q) * (q))))))))))))) - 0113
trans ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((p) * (p))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((n) * (((n) * (((q) * (q))))))))))))) - 0114
congr - 0115
refl - 0116
trans ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((p) * (p))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((n) * (((n) * (((q) * (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 ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q)))))))))))) - 0125
trans ((((m) * (((n) * (((p) * (q))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q)))))))))))) - 0126
congr - 0127
refl - 0128
trans ((((m) * (((n) * (((p) * (q))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q))))))))))) - 0129
congr - 0130
refl - 0131
trans ((((m) * (((m) * (((n) * (n))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q)))))))))) - 0132
congr - 0133
refl - 0134
trans ((((m) * (((n) * (((p) * (q))))))) + ((((n) * (((n) * (((q) * (q))))))) + (((m) * (((n) * (((p) * (q))))))))) - 0135
congr - 0136
refl - 0137
apply add_comm - 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
congr - 0143
refl - 0144
trans ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q))))))))))) - 0145
trans ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((m) * (((n) * (n))))))) + ((((m) * (((n) * (((p) * (q))))))) + ((((m) * (((n) * (((p) * (q))))))) + (((m) * (((n) * (((p) * (q))))))))))) - 0146
congr - 0147
refl - 0148
apply four_square_add_swap_right_tail - 0149
apply four_square_add_swap_right_tail - 0150
congr - 0151
refl - 0152
refl - 0153
trans ((((p) * (((p) * (((q) * (q))))))) + ((((p) * (((p) * (((m) * (m))))))) + ((((n) * (((n) * (((q) * (q))))))) + ((((n) * (((n) * (((m) * (m))))))) + ((((p) * (((n) * (((q) * (m))))))) + ((((p) * (((n) * (((m) * (q))))))) + ((((n) * (((p) * (((q) * (m))))))) + (((n) * (((p) * (((m) * (q)))))))))))))) - 0154
symm - 0155
congr - 0156
refl - 0157
congr - 0158
trans ((m) * (((p) * (((p) * (m)))))) - 0159
trans ((p) * (((m) * (((p) * (m)))))) - 0160
congr - 0161
refl - 0162
apply natural_mul_swap_right_tail - 0163
apply natural_mul_swap_right_tail - 0164
congr - 0165
refl - 0166
trans ((m) * (((p) * (p)))) - 0167
trans ((p) * (((m) * (p)))) - 0168
congr - 0169
refl - 0170
apply mul_comm - 0171
apply natural_mul_swap_right_tail - 0172
congr - 0173
refl - 0174
refl - 0175
congr - 0176
refl - 0177
congr - 0178
trans ((m) * (((n) * (((n) * (m)))))) - 0179
trans ((n) * (((m) * (((n) * (m)))))) - 0180
congr - 0181
refl - 0182
apply natural_mul_swap_right_tail - 0183
apply natural_mul_swap_right_tail - 0184
congr - 0185
refl - 0186
trans ((m) * (((n) * (n)))) - 0187
trans ((n) * (((m) * (n)))) - 0188
congr - 0189
refl - 0190
apply mul_comm - 0191
apply natural_mul_swap_right_tail - 0192
congr - 0193
refl - 0194
refl - 0195
congr - 0196
trans ((m) * (((p) * (((n) * (q)))))) - 0197
trans ((p) * (((m) * (((n) * (q)))))) - 0198
congr - 0199
refl - 0200
trans ((n) * (((m) * (q)))) - 0201
congr - 0202
refl - 0203
apply mul_comm - 0204
apply natural_mul_swap_right_tail - 0205
apply natural_mul_swap_right_tail - 0206
congr - 0207
refl - 0208
trans ((n) * (((p) * (q)))) - 0209
apply natural_mul_swap_right_tail - 0210
congr - 0211
refl - 0212
refl - 0213
congr - 0214
trans ((m) * (((p) * (((n) * (q)))))) - 0215
trans ((p) * (((m) * (((n) * (q)))))) - 0216
congr - 0217
refl - 0218
apply natural_mul_swap_right_tail - 0219
apply natural_mul_swap_right_tail - 0220
congr - 0221
refl - 0222
trans ((n) * (((p) * (q)))) - 0223
apply natural_mul_swap_right_tail - 0224
congr - 0225
refl - 0226
refl - 0227
congr - 0228
trans ((m) * (((n) * (((p) * (q)))))) - 0229
trans ((n) * (((m) * (((p) * (q)))))) - 0230
congr - 0231
refl - 0232
trans ((p) * (((m) * (q)))) - 0233
congr - 0234
refl - 0235
apply mul_comm - 0236
apply natural_mul_swap_right_tail - 0237
apply natural_mul_swap_right_tail - 0238
congr - 0239
refl - 0240
refl - 0241
trans ((m) * (((n) * (((p) * (q)))))) - 0242
trans ((n) * (((m) * (((p) * (q)))))) - 0243
congr - 0244
refl - 0245
apply natural_mul_swap_right_tail - 0246
apply natural_mul_swap_right_tail - 0247
congr - 0248
refl - 0249
refl - 0250
symm - 0251
simp [add_mul, mul_add, mul_assoc, add_assoc]