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.
The natural-code carrier consists of genuine pairs of the existing signed integers; no new primitive arithmetic is trusted. The theorem constructs quotient, remainder, and actual norm witnesses. Gaussian gcd, unique factorization, and prime classification are separate targets.
Exact theorem in conservative defined notation
∀ 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)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 62 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 (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 defined 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