GI0017

gaussian_signed_product_shuffle

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Four actual signed factors admit the exact middle-factor interchange, assembled from checked associative and commutative components.

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) * (c))) + (((b) * (d))))) * (((((e) * (g))) + (((f) * (h))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (h))) + (((f) * (g))))))))) = (((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (g))) + (((d) * (h))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (h))) + (((d) * (g)))))))))) /\ ((((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (h))) + (((f) * (g))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (g))) + (((f) * (h))))))))) = (((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (h))) + (((d) * (g))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (g))) + (((d) * (h)))))))))))

Constructive proof overview

Generated structural guide

Four actual signed factors admit the exact middle-factor interchange, assembled from checked associative and commutative components.

The unchanged tactic script uses 3 declared prerequisites and contains 67 exact native proof lines.

Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

signed_pair_mul_components_associate Alpha theorem; checked-use authorized GI0014 gaussian_signed_product_interchange_positive GI0015 gaussian_signed_product_interchange_negative

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

67 script commands · 24 reading checkpoints · 4 local claims

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

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro a
  2. L2
    intro b
  3. L3
    intro c
  4. L4
    intro d
  5. L5
    intro e
  6. L6
    intro f
  7. L7
    intro g
  8. L8
    intro h
02Establish hleftL9–16

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed pair mul components associate.

  1. L9
    have hleft · expand full local formula (761 characters)have hleft : (((((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (g))) + (((f) * (h))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (h))) + (((f) * (g))))))))) = (((((a) * (((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g))))))))))) + (((b) * (((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h)))))))))))))) /\ ((((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (h))) + (((f) * (g))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (g))) + (((f) * (h))))))))) = (((((a) * (((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h))))))))))) + (((b) * (((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g)))))))))))))))
  2. L10
    specialize signed_pair_mul_components_associate a
  3. L11
    specialize signed_pair_mul_components_associate b
  4. L12
    specialize signed_pair_mul_components_associate c
  5. L13
    specialize signed_pair_mul_components_associate d
  6. L14
    specialize signed_pair_mul_components_associate ((((e) * (g))) + (((f) * (h))))
  7. L15
    specialize signed_pair_mul_components_associate ((((e) * (h))) + (((f) * (g))))
  8. L16
    apply signed_pair_mul_components_associate
03Separate the logical casesL17–17

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L17
    cases hleft
04Establish hrightL18–25

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed pair mul components associate.

  1. L18
    have hright · expand full local formula (762 characters)have hright : (((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (g))) + (((d) * (h))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (h))) + (((d) * (g))))))))) = (((((a) * (((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g))))))))))) + (((b) * (((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h)))))))))))))) /\ ((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (h))) + (((d) * (g))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (g))) + (((d) * (h))))))))) = (((((a) * (((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h))))))))))) + (((b) * (((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g)))))))))))))))
  2. L19
    specialize signed_pair_mul_components_associate a
  3. L20
    specialize signed_pair_mul_components_associate b
  4. L21
    specialize signed_pair_mul_components_associate e
  5. L22
    specialize signed_pair_mul_components_associate f
  6. L23
    specialize signed_pair_mul_components_associate ((((c) * (g))) + (((d) * (h))))
  7. L24
    specialize signed_pair_mul_components_associate ((((c) * (h))) + (((d) * (g))))
  8. L25
    apply signed_pair_mul_components_associate
05Separate the logical casesL26–26

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L26
    cases hright
06Establish hmiddle_positiveL27–34

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian signed product interchange positive.

  1. L27
    have hmiddle_positive : ((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g)))))))) = ((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g))))))))
  2. L28
    specialize gaussian_signed_product_interchange_positive c
  3. L29
    specialize gaussian_signed_product_interchange_positive d
  4. L30
    specialize gaussian_signed_product_interchange_positive e
  5. L31
    specialize gaussian_signed_product_interchange_positive f
  6. L32
    specialize gaussian_signed_product_interchange_positive g
  7. L33
    specialize gaussian_signed_product_interchange_positive h
  8. L34
    apply gaussian_signed_product_interchange_positive
07Establish hmiddle_negativeL35–42

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian signed product interchange negative.

  1. L35
    have hmiddle_negative : ((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h)))))))) = ((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h))))))))
  2. L36
    specialize gaussian_signed_product_interchange_negative c
  3. L37
    specialize gaussian_signed_product_interchange_negative d
  4. L38
    specialize gaussian_signed_product_interchange_negative e
  5. L39
    specialize gaussian_signed_product_interchange_negative f
  6. L40
    specialize gaussian_signed_product_interchange_negative g
  7. L41
    specialize gaussian_signed_product_interchange_negative h
  8. L42
    apply gaussian_signed_product_interchange_negative
08Separate the logical casesL43–43

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L43
    split
09Calculate and transport equalitiesL44–44

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L44
    trans ((((a) * (((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g))))))))))) + (((b) * (((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h))))))))))))
10Use earlier factsL45–45

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L45
    exact hleft_left
11Calculate and transport equalitiesL46–49

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L46
    trans ((((a) * (((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g))))))))))) + (((b) * (((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h))))))))))))
  2. L47
    congr
  3. L48
    congr
  4. L49
    refl
12Use earlier factsL50–50

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L50
    exact hmiddle_positive
13Calculate and transport equalitiesL51–52

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L51
    congr
  2. L52
    refl
14Use earlier factsL53–53

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L53
    exact hmiddle_negative
15Calculate and transport equalitiesL54–54

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L54
    symm
16Use earlier factsL55–55

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L55
    exact hright_left
17Calculate and transport equalitiesL56–56

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L56
    trans ((((a) * (((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h))))))))))) + (((b) * (((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g))))))))))))
18Use earlier factsL57–57

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L57
    exact hleft_right
19Calculate and transport equalitiesL58–61

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L58
    trans ((((a) * (((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h))))))))))) + (((b) * (((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g))))))))))))
  2. L59
    congr
  3. L60
    congr
  4. L61
    refl
20Use earlier factsL62–62

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L62
    exact hmiddle_negative
21Calculate and transport equalitiesL63–64

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L63
    congr
  2. L64
    refl
22Use earlier factsL65–65

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L65
    exact hmiddle_positive
23Calculate and transport equalitiesL66–66

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L66
    symm
24Use earlier factsL67–67

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L67
    exact hright_right

Library-wide reading audit

Original exact command ledger · 67 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro c
  4. 0004intro d
  5. 0005intro e
  6. 0006intro f
  7. 0007intro g
  8. 0008intro h
  9. 0009have hleft : (((((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (g))) + (((f) * (h))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (h))) + (((f) * (g))))))))) = (((((a) * (((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g))))))))))) + (((b) * (((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h)))))))))))))) /\ ((((((((((a) * (c))) + (((b) * (d))))) * (((((e) * (h))) + (((f) * (g))))))) + (((((((a) * (d))) + (((b) * (c))))) * (((((e) * (g))) + (((f) * (h))))))))) = (((((a) * (((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h))))))))))) + (((b) * (((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g)))))))))))))))
  10. 0010specialize signed_pair_mul_components_associate a
  11. 0011specialize signed_pair_mul_components_associate b
  12. 0012specialize signed_pair_mul_components_associate c
  13. 0013specialize signed_pair_mul_components_associate d
  14. 0014specialize signed_pair_mul_components_associate ((((e) * (g))) + (((f) * (h))))
  15. 0015specialize signed_pair_mul_components_associate ((((e) * (h))) + (((f) * (g))))
  16. 0016apply signed_pair_mul_components_associate
  17. 0017cases hleft
  18. 0018have hright : (((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (g))) + (((d) * (h))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (h))) + (((d) * (g))))))))) = (((((a) * (((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g))))))))))) + (((b) * (((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h)))))))))))))) /\ ((((((((((a) * (e))) + (((b) * (f))))) * (((((c) * (h))) + (((d) * (g))))))) + (((((((a) * (f))) + (((b) * (e))))) * (((((c) * (g))) + (((d) * (h))))))))) = (((((a) * (((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h))))))))))) + (((b) * (((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g)))))))))))))))
  19. 0019specialize signed_pair_mul_components_associate a
  20. 0020specialize signed_pair_mul_components_associate b
  21. 0021specialize signed_pair_mul_components_associate e
  22. 0022specialize signed_pair_mul_components_associate f
  23. 0023specialize signed_pair_mul_components_associate ((((c) * (g))) + (((d) * (h))))
  24. 0024specialize signed_pair_mul_components_associate ((((c) * (h))) + (((d) * (g))))
  25. 0025apply signed_pair_mul_components_associate
  26. 0026cases hright
  27. 0027have hmiddle_positive : ((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g)))))))) = ((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g))))))))
  28. 0028specialize gaussian_signed_product_interchange_positive c
  29. 0029specialize gaussian_signed_product_interchange_positive d
  30. 0030specialize gaussian_signed_product_interchange_positive e
  31. 0031specialize gaussian_signed_product_interchange_positive f
  32. 0032specialize gaussian_signed_product_interchange_positive g
  33. 0033specialize gaussian_signed_product_interchange_positive h
  34. 0034apply gaussian_signed_product_interchange_positive
  35. 0035have hmiddle_negative : ((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h)))))))) = ((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h))))))))
  36. 0036specialize gaussian_signed_product_interchange_negative c
  37. 0037specialize gaussian_signed_product_interchange_negative d
  38. 0038specialize gaussian_signed_product_interchange_negative e
  39. 0039specialize gaussian_signed_product_interchange_negative f
  40. 0040specialize gaussian_signed_product_interchange_negative g
  41. 0041specialize gaussian_signed_product_interchange_negative h
  42. 0042apply gaussian_signed_product_interchange_negative
  43. 0043split
  44. 0044trans ((((a) * (((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g))))))))))) + (((b) * (((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h))))))))))))
  45. 0045exact hleft_left
  46. 0046trans ((((a) * (((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g))))))))))) + (((b) * (((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h))))))))))))
  47. 0047congr
  48. 0048congr
  49. 0049refl
  50. 0050exact hmiddle_positive
  51. 0051congr
  52. 0052refl
  53. 0053exact hmiddle_negative
  54. 0054symm
  55. 0055exact hright_left
  56. 0056trans ((((a) * (((((c) * (((((e) * (h))) + (((f) * (g))))))) + (((d) * (((((e) * (g))) + (((f) * (h))))))))))) + (((b) * (((((c) * (((((e) * (g))) + (((f) * (h))))))) + (((d) * (((((e) * (h))) + (((f) * (g))))))))))))
  57. 0057exact hleft_right
  58. 0058trans ((((a) * (((((e) * (((((c) * (h))) + (((d) * (g))))))) + (((f) * (((((c) * (g))) + (((d) * (h))))))))))) + (((b) * (((((e) * (((((c) * (g))) + (((d) * (h))))))) + (((f) * (((((c) * (h))) + (((d) * (g))))))))))))
  59. 0059congr
  60. 0060congr
  61. 0061refl
  62. 0062exact hmiddle_negative
  63. 0063congr
  64. 0064refl
  65. 0065exact hmiddle_positive
  66. 0066symm
  67. 0067exact hright_right