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 e f g h. (((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (g))) + (((d) * (h))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (h))) + (((d) * (g))))))))) = (((((((((a) * (g))) + (((b) * (h))))) * (((((c) * (e))) + (((d) * (f))))))) + (((((((a) * (h))) + (((b) * (g))))) * (((((c) * (f))) + (((d) * (e)))))))))) /\ ((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (h))) + (((d) * (g))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (g))) + (((d) * (h))))))))) = (((((((((a) * (g))) + (((b) * (h))))) * (((((c) * (f))) + (((d) * (e))))))) + (((((((a) * (h))) + (((b) * (g))))) * (((((c) * (e))) + (((d) * (f)))))))))))Constructive proof overview
Generated structural guide
The actual cross products (ac)(bd) and (ad)(bc) agree in both signed components.
The unchanged tactic script uses 2 declared prerequisites and contains 62 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
Direct 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 (2)
01Fix variables and assumptionsL1–8
02Establish hleftL9–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian signed product shuffle.
- L9
have hleft · expand full local formula (641 characters)
have hleft : (((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (g))) + (((d) * (h))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (h))) + (((d) * (g))))))))) = (((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (g))) + (((f) * (h))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (h))) + (((f) * (g)))))))))) /\ ((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (h))) + (((d) * (g))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (g))) + (((d) * (h))))))))) = (((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (h))) + (((f) * (g))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (g))) + (((f) * (h))))))))))) - L10
specialize gaussian_signed_product_shuffle a - L11
specialize gaussian_signed_product_shuffle b - L12
specialize gaussian_signed_product_shuffle e - L13
specialize gaussian_signed_product_shuffle f - L14
specialize gaussian_signed_product_shuffle c - L15
specialize gaussian_signed_product_shuffle d - L16
specialize gaussian_signed_product_shuffle g - L17
specialize gaussian_signed_product_shuffle h - L18
apply gaussian_signed_product_shuffle
03Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hleft
04Establish hrightL20–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian signed product shuffle.
- L20
have hright · expand full local formula (642 characters)
have hright : (((((((((((a) * (g))) + (((b) * (h))))) * (((((c) * (e))) + (((d) * (f))))))) + (((((((a) * (h))) + (((b) * (g))))) * (((((c) * (f))) + (((d) * (e))))))))) = (((((((((a) * (c))) + (((b) * (d))))) * (((((g) * (e))) + (((h) * (f))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((g) * (f))) + (((h) * (e)))))))))) /\ ((((((((((a) * (g))) + (((b) * (h))))) * (((((c) * (f))) + (((d) * (e))))))) + (((((((a) * (h))) + (((b) * (g))))) * (((((c) * (e))) + (((d) * (f))))))))) = (((((((((a) * (c))) + (((b) * (d))))) * (((((g) * (f))) + (((h) * (e))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((g) * (e))) + (((h) * (f))))))))))) - L21
specialize gaussian_signed_product_shuffle a - L22
specialize gaussian_signed_product_shuffle b - L23
specialize gaussian_signed_product_shuffle g - L24
specialize gaussian_signed_product_shuffle h - L25
specialize gaussian_signed_product_shuffle c - L26
specialize gaussian_signed_product_shuffle d - L27
specialize gaussian_signed_product_shuffle e - L28
specialize gaussian_signed_product_shuffle f - L29
apply gaussian_signed_product_shuffle
05Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hright
06Establish hcommuteL31–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian signed product commutative.
- L31
have hcommute : (((((((e) * (g))) + (((f) * (h))))) = (((((g) * (e))) + (((h) * (f)))))) /\ ((((((e) * (h))) + (((f) * (g))))) = (((((g) * (f))) + (((h) * (e))))))) - L32
specialize gaussian_signed_product_commutative e - L33
specialize gaussian_signed_product_commutative f - L34
specialize gaussian_signed_product_commutative g - L35
specialize gaussian_signed_product_commutative h - L36
apply gaussian_signed_product_commutative
07Separate the logical casesL37–38
08Calculate and transport equalitiesL39–39
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L39
trans ((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (g))) + (((f) * (h))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (h))) + (((f) * (g))))))))
09Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact hleft_left
10Calculate and transport equalitiesL41–44
11Use earlier factsL45–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
exact hcommute_left
12Calculate and transport equalitiesL46–47
13Use earlier factsL48–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hcommute_right
14Calculate and transport equalitiesL49–49
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L49
symm
15Use earlier factsL50–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L50
exact hright_left
16Calculate and transport equalitiesL51–51
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L51
trans ((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (h))) + (((f) * (g))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (g))) + (((f) * (h))))))))
17Use earlier factsL52–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
exact hleft_right
18Calculate and transport equalitiesL53–56
19Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact hcommute_right
20Calculate and transport equalitiesL58–59
21Use earlier factsL60–60
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
exact hcommute_left
22Calculate and transport equalitiesL61–61
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L61
symm
23Use earlier factsL62–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L62
exact hright_right
Original exact command ledger · 62 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro f - 0007
intro g - 0008
intro h - 0009
have hleft : (((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (g))) + (((d) * (h))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (h))) + (((d) * (g))))))))) = (((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (g))) + (((f) * (h))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (h))) + (((f) * (g)))))))))) /\ ((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (h))) + (((d) * (g))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (g))) + (((d) * (h))))))))) = (((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (h))) + (((f) * (g))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (g))) + (((f) * (h))))))))))) - 0010
specialize gaussian_signed_product_shuffle a - 0011
specialize gaussian_signed_product_shuffle b - 0012
specialize gaussian_signed_product_shuffle e - 0013
specialize gaussian_signed_product_shuffle f - 0014
specialize gaussian_signed_product_shuffle c - 0015
specialize gaussian_signed_product_shuffle d - 0016
specialize gaussian_signed_product_shuffle g - 0017
specialize gaussian_signed_product_shuffle h - 0018
apply gaussian_signed_product_shuffle - 0019
cases hleft - 0020
have hright : (((((((((((a) * (g))) + (((b) * (h))))) * (((((c) * (e))) + (((d) * (f))))))) + (((((((a) * (h))) + (((b) * (g))))) * (((((c) * (f))) + (((d) * (e))))))))) = (((((((((a) * (c))) + (((b) * (d))))) * (((((g) * (e))) + (((h) * (f))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((g) * (f))) + (((h) * (e)))))))))) /\ ((((((((((a) * (g))) + (((b) * (h))))) * (((((c) * (f))) + (((d) * (e))))))) + (((((((a) * (h))) + (((b) * (g))))) * (((((c) * (e))) + (((d) * (f))))))))) = (((((((((a) * (c))) + (((b) * (d))))) * (((((g) * (f))) + (((h) * (e))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((g) * (e))) + (((h) * (f))))))))))) - 0021
specialize gaussian_signed_product_shuffle a - 0022
specialize gaussian_signed_product_shuffle b - 0023
specialize gaussian_signed_product_shuffle g - 0024
specialize gaussian_signed_product_shuffle h - 0025
specialize gaussian_signed_product_shuffle c - 0026
specialize gaussian_signed_product_shuffle d - 0027
specialize gaussian_signed_product_shuffle e - 0028
specialize gaussian_signed_product_shuffle f - 0029
apply gaussian_signed_product_shuffle - 0030
cases hright - 0031
have hcommute : (((((((e) * (g))) + (((f) * (h))))) = (((((g) * (e))) + (((h) * (f)))))) /\ ((((((e) * (h))) + (((f) * (g))))) = (((((g) * (f))) + (((h) * (e))))))) - 0032
specialize gaussian_signed_product_commutative e - 0033
specialize gaussian_signed_product_commutative f - 0034
specialize gaussian_signed_product_commutative g - 0035
specialize gaussian_signed_product_commutative h - 0036
apply gaussian_signed_product_commutative - 0037
cases hcommute - 0038
split - 0039
trans ((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (g))) + (((f) * (h))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (h))) + (((f) * (g)))))))) - 0040
exact hleft_left - 0041
trans ((((((((a) * (c))) + (((b) * (d))))) * (((((g) * (e))) + (((h) * (f))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((g) * (f))) + (((h) * (e)))))))) - 0042
congr - 0043
congr - 0044
refl - 0045
exact hcommute_left - 0046
congr - 0047
refl - 0048
exact hcommute_right - 0049
symm - 0050
exact hright_left - 0051
trans ((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (h))) + (((f) * (g))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (g))) + (((f) * (h)))))))) - 0052
exact hleft_right - 0053
trans ((((((((a) * (c))) + (((b) * (d))))) * (((((g) * (f))) + (((h) * (e))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((g) * (e))) + (((h) * (f)))))))) - 0054
congr - 0055
congr - 0056
refl - 0057
exact hcommute_right - 0058
congr - 0059
refl - 0060
exact hcommute_left - 0061
symm - 0062
exact hright_right