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 d B Q. a = b + d -> a * (B + d * Q) = b * B + d * (a * Q + B)Constructive proof overview
Generated structural guide
A power-difference quotient advances by the actual recurrence a*Q+B.
The unchanged tactic script uses 7 declared prerequisites and contains 91 exact native proof lines.
Alpha v34 checked-use · first admitted v29 · 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 natural_mul_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.
01Fix variables and assumptionsL1–6
02Calculate and transport equalitiesL7–13
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
03Use earlier factsL14–14
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L14
apply mul_comm
04Calculate and transport equalitiesL15–22
05Use earlier factsL23–24
06Calculate and transport equalitiesL25–29
07Use earlier factsL30–30
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
apply mul_comm
08Calculate and transport equalitiesL31–37
09Use earlier factsL38–39
10Calculate and transport equalitiesL40–48
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
11Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
apply add_comm
12Calculate and transport equalitiesL50–56
13Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
apply mul_comm
14Calculate and transport equalitiesL58–65
15Use earlier factsL66–67
16Calculate and transport equalitiesL68–70
17Use earlier factsL71–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
apply mul_comm
18Calculate and transport equalitiesL72–79
19Use earlier factsL80–81
20Calculate and transport equalitiesL82–85
21Use earlier factsL86–86
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
apply mul_comm
Original exact command ledger · 91 lines
- 0001
intro a - 0002
intro b - 0003
intro d - 0004
intro B - 0005
intro Q - 0006
intro ha - 0007
rewrite ha - 0008
rewrite ha - 0009
trans ((((b) * (B))) + ((((b) * (((d) * (Q))))) + ((((d) * (B))) + (((d) * (((d) * (Q)))))))) - 0010
simp [add_mul, mul_add, mul_assoc, add_assoc] - 0011
trans ((((B) * (b))) + ((((Q) * (((b) * (d))))) + ((((B) * (d))) + (((Q) * (((d) * (d)))))))) - 0012
congr - 0013
trans ((B) * (b)) - 0014
apply mul_comm - 0015
congr - 0016
refl - 0017
refl - 0018
congr - 0019
trans ((Q) * (((b) * (d)))) - 0020
trans ((b) * (((Q) * (d)))) - 0021
congr - 0022
refl - 0023
apply mul_comm - 0024
apply natural_mul_swap_right_tail - 0025
congr - 0026
refl - 0027
refl - 0028
congr - 0029
trans ((B) * (d)) - 0030
apply mul_comm - 0031
congr - 0032
refl - 0033
refl - 0034
trans ((Q) * (((d) * (d)))) - 0035
trans ((d) * (((Q) * (d)))) - 0036
congr - 0037
refl - 0038
apply mul_comm - 0039
apply natural_mul_swap_right_tail - 0040
congr - 0041
refl - 0042
refl - 0043
trans ((((B) * (b))) + ((((Q) * (((b) * (d))))) + ((((Q) * (((d) * (d))))) + (((B) * (d)))))) - 0044
congr - 0045
refl - 0046
congr - 0047
refl - 0048
trans ((((Q) * (((d) * (d))))) + (((B) * (d)))) - 0049
apply add_comm - 0050
congr - 0051
refl - 0052
refl - 0053
trans ((((b) * (B))) + ((((d) * (((b) * (Q))))) + ((((d) * (((d) * (Q))))) + (((d) * (B)))))) - 0054
symm - 0055
congr - 0056
trans ((B) * (b)) - 0057
apply mul_comm - 0058
congr - 0059
refl - 0060
refl - 0061
congr - 0062
trans ((Q) * (((d) * (b)))) - 0063
trans ((d) * (((Q) * (b)))) - 0064
congr - 0065
refl - 0066
apply mul_comm - 0067
apply natural_mul_swap_right_tail - 0068
congr - 0069
refl - 0070
trans ((b) * (d)) - 0071
apply mul_comm - 0072
congr - 0073
refl - 0074
refl - 0075
congr - 0076
trans ((Q) * (((d) * (d)))) - 0077
trans ((d) * (((Q) * (d)))) - 0078
congr - 0079
refl - 0080
apply mul_comm - 0081
apply natural_mul_swap_right_tail - 0082
congr - 0083
refl - 0084
refl - 0085
trans ((B) * (d)) - 0086
apply mul_comm - 0087
congr - 0088
refl - 0089
refl - 0090
symm - 0091
simp [add_mul, mul_add, mul_assoc, add_assoc]