EI0024

eisenstein_omega_product_covariance

The genuine coordinate rotation for multiplication by ω commutes with right multiplication; this small bilinear identity recovers imaginary associativity from real associativity.

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

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.

A floor quotient in the fundamental parallelogram already gives the required strict norm decrease; global nearest-point optimality is not asserted. The shared carrier is identical to the Gaussian carrier, but the multiplication law and norm are different. Eisenstein gcd, factorization, and prime classification remain separate targets.

Exact theorem in conservative defined notation

∀ a. ∀ b. ∀ c. ∀ d. ∀ e. ∀ f. ∀ g. ∀ h. EisensteinCoordinateProduct(d,c,a + d,b + c,e,f,g,h,a · h + b · g + (c · f + d · e) + (c · g + d · h),a · g + b · h + (c · e + d · f) + (c · h + d · g),a · e + b · f + (c · h + d · g) + (a · h + b · g + (c · f + d · e) + (c · g + d · h)),a · f + b · e + (c · g + d · h) + (a · g + b · h + (c · e + d · f) + (c · h + d · g)))

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

add_mul · checked external prerequisitemul_add · checked external prerequisitemul_assoc · checked external prerequisiteadd_assoc · checked external prerequisiteadd_comm · checked external prerequisitefour_square_add_swap_right_tail · checked external prerequisite
Original expanded first-order statement
forall a b c d e f g h. (((((((((((d) * (e))) + (((c) * (f))))) + (((((((a) + (d))) * (h))) + (((((b) + (c))) * (g))))))) + (((((((((a) * (g))) + (((b) * (h))))) + (((((c) * (e))) + (((d) * (f))))))) + (((((c) * (h))) + (((d) * (g)))))))) = ((((((((((a) * (h))) + (((b) * (g))))) + (((((c) * (f))) + (((d) * (e))))))) + (((((c) * (g))) + (((d) * (h))))))) + (((((((d) * (f))) + (((c) * (e))))) + (((((((a) + (d))) * (g))) + (((((b) + (c))) * (h))))))))) /\ (((((((((((d) * (g))) + (((c) * (h))))) + (((((((a) + (d))) * (e))) + (((((b) + (c))) * (f))))))) + (((((((a) + (d))) * (h))) + (((((b) + (c))) * (g))))))) + (((((((((a) * (f))) + (((b) * (e))))) + (((((c) * (g))) + (((d) * (h))))))) + (((((((((a) * (g))) + (((b) * (h))))) + (((((c) * (e))) + (((d) * (f))))))) + (((((c) * (h))) + (((d) * (g)))))))))) = ((((((((((a) * (e))) + (((b) * (f))))) + (((((c) * (h))) + (((d) * (g))))))) + (((((((((a) * (h))) + (((b) * (g))))) + (((((c) * (f))) + (((d) * (e))))))) + (((((c) * (g))) + (((d) * (h))))))))) + (((((((((d) * (h))) + (((c) * (g))))) + (((((((a) + (d))) * (f))) + (((((b) + (c))) * (e))))))) + (((((((a) + (d))) * (g))) + (((((b) + (c))) * (h)))))))))))

Complete tactic proof in conservative notation

All 329 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

329 script commands · 58 reading checkpoints · 0 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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

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
02Separate the logical casesL9–9

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

  1. L9
    split
03Calculate and transport equalitiesL10–19

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

  1. L10
    trans ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
  2. L11
    simp [add_mul, mul_add, mul_assoc, add_assoc]
  3. L12
    trans ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
  4. L13
    congr
  5. L14
    refl
  6. L15
    congr
  7. L16
    refl
  8. L17
    congr
  9. L18
    refl
  10. L19
    congr
04Calculate and transport equalitiesL20–29

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

  1. L20
    refl
  2. L21
    congr
  3. L22
    refl
  4. L23
    congr
  5. L24
    refl
  6. L25
    congr
  7. L26
    refl
  8. L27
    congr
  9. L28
    refl
  10. L29
    congr
05Calculate and transport equalitiesL30–39

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

  1. L30
    refl
  2. L31
    congr
  3. L32
    refl
  4. L33
    congr
  5. L34
    refl
  6. L35
    refl
  7. L36
    trans ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((d) * (f))) + ((((c) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + (((c) * (h))))))))))))))
  8. L37
    trans ((((a) * (h))) + ((((d) * (e))) + ((((c) * (f))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
  9. L38
    trans ((((d) * (e))) + ((((a) * (h))) + ((((c) * (f))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
  10. L39
    congr
06Calculate and transport equalitiesL40–40

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

  1. L40
    refl
07Use earlier factsL41–42

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

  1. L41
    apply four_square_add_swap_right_tail
  2. L42
    apply four_square_add_swap_right_tail
08Calculate and transport equalitiesL43–51

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

  1. L43
    congr
  2. L44
    refl
  3. L45
    trans ((((b) * (g))) + ((((d) * (e))) + ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))
  4. L46
    trans ((((d) * (e))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))
  5. L47
    congr
  6. L48
    refl
  7. L49
    trans ((((c) * (f))) + ((((b) * (g))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))
  8. L50
    congr
  9. L51
    refl
09Use earlier factsL52–54

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

  1. L52
    apply four_square_add_swap_right_tail
  2. L53
    apply four_square_add_swap_right_tail
  3. L54
    apply four_square_add_swap_right_tail
10Calculate and transport equalitiesL55–57

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

  1. L55
    congr
  2. L56
    refl
  3. L57
    trans ((((c) * (f))) + ((((d) * (e))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))
11Use earlier factsL58–58

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

  1. L58
    apply four_square_add_swap_right_tail
12Calculate and transport equalitiesL59–63

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

  1. L59
    congr
  2. L60
    refl
  3. L61
    congr
  4. L62
    refl
  5. L63
    trans ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))
13Use earlier factsL64–64

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

  1. L64
    apply four_square_add_swap_right_tail
14Calculate and transport equalitiesL65–74

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

  1. L65
    congr
  2. L66
    refl
  3. L67
    congr
  4. L68
    refl
  5. L69
    trans ((((d) * (f))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g))))))))
  6. L70
    trans ((((a) * (g))) + ((((d) * (f))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g))))))))
  7. L71
    congr
  8. L72
    refl
  9. L73
    trans ((((b) * (h))) + ((((d) * (f))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g)))))))
  10. L74
    congr
15Calculate and transport equalitiesL75–75

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

  1. L75
    refl
16Use earlier factsL76–78

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

  1. L76
    apply four_square_add_swap_right_tail
  2. L77
    apply four_square_add_swap_right_tail
  3. L78
    apply four_square_add_swap_right_tail
17Calculate and transport equalitiesL79–84

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

  1. L79
    congr
  2. L80
    refl
  3. L81
    trans ((((c) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (h))) + (((d) * (g)))))))
  4. L82
    trans ((((a) * (g))) + ((((c) * (e))) + ((((b) * (h))) + ((((c) * (h))) + (((d) * (g)))))))
  5. L83
    congr
  6. L84
    refl
18Use earlier factsL85–86

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

  1. L85
    apply four_square_add_swap_right_tail
  2. L86
    apply four_square_add_swap_right_tail
19Calculate and transport equalitiesL87–94

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

  1. L87
    congr
  2. L88
    refl
  3. L89
    congr
  4. L90
    refl
  5. L91
    trans ((((d) * (g))) + ((((b) * (h))) + (((c) * (h)))))
  6. L92
    trans ((((b) * (h))) + ((((d) * (g))) + (((c) * (h)))))
  7. L93
    congr
  8. L94
    refl
20Use earlier factsL95–96

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

  1. L95
    apply add_comm
  2. L96
    apply four_square_add_swap_right_tail
21Calculate and transport equalitiesL97–106

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

  1. L97
    congr
  2. L98
    refl
  3. L99
    refl
  4. L100
    trans ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((d) * (f))) + ((((c) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + (((c) * (h))))))))))))))
  5. L101
    symm
  6. L102
    congr
  7. L103
    refl
  8. L104
    congr
  9. L105
    refl
  10. L106
    congr
22Calculate and transport equalitiesL107–116

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

  1. L107
    refl
  2. L108
    congr
  3. L109
    refl
  4. L110
    congr
  5. L111
    refl
  6. L112
    congr
  7. L113
    refl
  8. L114
    congr
  9. L115
    refl
  10. L116
    congr
23Calculate and transport equalitiesL117–126

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

  1. L117
    refl
  2. L118
    congr
  3. L119
    refl
  4. L120
    congr
  5. L121
    refl
  6. L122
    congr
  7. L123
    refl
  8. L124
    refl
  9. L125
    symm
  10. L126
    simp [add_mul, mul_add, mul_assoc, add_assoc]
24Calculate and transport equalitiesL127–136

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

  1. L127
    trans ((((d) * (g))) + ((((c) * (h))) + ((((a) * (e))) + ((((d) * (e))) + ((((b) * (f))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  2. L128
    simp [add_mul, mul_add, mul_assoc, add_assoc]
  3. L129
    trans ((((d) * (g))) + ((((c) * (h))) + ((((a) * (e))) + ((((d) * (e))) + ((((b) * (f))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  4. L130
    congr
  5. L131
    refl
  6. L132
    congr
  7. L133
    refl
  8. L134
    congr
  9. L135
    refl
  10. L136
    congr
25Calculate and transport equalitiesL137–146

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

  1. L137
    refl
  2. L138
    congr
  3. L139
    refl
  4. L140
    congr
  5. L141
    refl
  6. L142
    congr
  7. L143
    refl
  8. L144
    congr
  9. L145
    refl
  10. L146
    congr
26Calculate and transport equalitiesL147–156

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

  1. L147
    refl
  2. L148
    congr
  3. L149
    refl
  4. L150
    congr
  5. L151
    refl
  6. L152
    congr
  7. L153
    refl
  8. L154
    congr
  9. L155
    refl
  10. L156
    congr
27Calculate and transport equalitiesL157–166

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

  1. L157
    refl
  2. L158
    congr
  3. L159
    refl
  4. L160
    congr
  5. L161
    refl
  6. L162
    congr
  7. L163
    refl
  8. L164
    congr
  9. L165
    refl
  10. L166
    congr
28Calculate and transport equalitiesL167–173

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

  1. L167
    refl
  2. L168
    refl
  3. L169
    trans ((((a) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((d) * (f))) + ((((b) * (e))) + ((((c) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + (((c) * (h))))))))))))))))))))))
  4. L170
    trans ((((a) * (e))) + ((((d) * (g))) + ((((c) * (h))) + ((((d) * (e))) + ((((b) * (f))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  5. L171
    trans ((((d) * (g))) + ((((a) * (e))) + ((((c) * (h))) + ((((d) * (e))) + ((((b) * (f))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  6. L172
    congr
  7. L173
    refl
29Use earlier factsL174–175

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

  1. L174
    apply four_square_add_swap_right_tail
  2. L175
    apply four_square_add_swap_right_tail
30Calculate and transport equalitiesL176–184

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

  1. L176
    congr
  2. L177
    refl
  3. L178
    trans ((((b) * (f))) + ((((d) * (g))) + ((((c) * (h))) + ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))))))))))
  4. L179
    trans ((((d) * (g))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))))))))))
  5. L180
    congr
  6. L181
    refl
  7. L182
    trans ((((c) * (h))) + ((((b) * (f))) + ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))
  8. L183
    congr
  9. L184
    refl
31Use earlier factsL185–187

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

  1. L185
    apply four_square_add_swap_right_tail
  2. L186
    apply four_square_add_swap_right_tail
  3. L187
    apply four_square_add_swap_right_tail
32Calculate and transport equalitiesL188–190

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

  1. L188
    congr
  2. L189
    refl
  3. L190
    trans ((((c) * (h))) + ((((d) * (g))) + ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))
33Use earlier factsL191–191

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

  1. L191
    apply four_square_add_swap_right_tail
34Calculate and transport equalitiesL192–199

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

  1. L192
    congr
  2. L193
    refl
  3. L194
    congr
  4. L195
    refl
  5. L196
    trans ((((a) * (h))) + ((((d) * (e))) + ((((c) * (f))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))
  6. L197
    trans ((((d) * (e))) + ((((a) * (h))) + ((((c) * (f))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))
  7. L198
    congr
  8. L199
    refl
35Use earlier factsL200–201

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

  1. L200
    apply four_square_add_swap_right_tail
  2. L201
    apply four_square_add_swap_right_tail
36Calculate and transport equalitiesL202–210

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

  1. L202
    congr
  2. L203
    refl
  3. L204
    trans ((((b) * (g))) + ((((d) * (e))) + ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))))))
  4. L205
    trans ((((d) * (e))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))))))
  5. L206
    congr
  6. L207
    refl
  7. L208
    trans ((((c) * (f))) + ((((b) * (g))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))
  8. L209
    congr
  9. L210
    refl
37Use earlier factsL211–213

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

  1. L211
    apply four_square_add_swap_right_tail
  2. L212
    apply four_square_add_swap_right_tail
  3. L213
    apply four_square_add_swap_right_tail
38Calculate and transport equalitiesL214–216

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

  1. L214
    congr
  2. L215
    refl
  3. L216
    trans ((((c) * (f))) + ((((d) * (e))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))
39Use earlier factsL217–217

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

  1. L217
    apply four_square_add_swap_right_tail
40Calculate and transport equalitiesL218–222

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

  1. L218
    congr
  2. L219
    refl
  3. L220
    congr
  4. L221
    refl
  5. L222
    trans ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
41Use earlier factsL223–223

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

  1. L223
    apply four_square_add_swap_right_tail
42Calculate and transport equalitiesL224–233

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

  1. L224
    congr
  2. L225
    refl
  3. L226
    congr
  4. L227
    refl
  5. L228
    trans ((((d) * (h))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))
  6. L229
    trans ((((a) * (f))) + ((((d) * (h))) + ((((b) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))
  7. L230
    congr
  8. L231
    refl
  9. L232
    trans ((((b) * (e))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))
  10. L233
    congr
43Calculate and transport equalitiesL234–234

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

  1. L234
    refl
44Use earlier factsL235–237

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

  1. L235
    apply four_square_add_swap_right_tail
  2. L236
    apply four_square_add_swap_right_tail
  3. L237
    apply four_square_add_swap_right_tail
45Calculate and transport equalitiesL238–243

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

  1. L238
    congr
  2. L239
    refl
  3. L240
    trans ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))
  4. L241
    trans ((((a) * (f))) + ((((c) * (g))) + ((((b) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))
  5. L242
    congr
  6. L243
    refl
46Use earlier factsL244–245

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

  1. L244
    apply four_square_add_swap_right_tail
  2. L245
    apply four_square_add_swap_right_tail
47Calculate and transport equalitiesL246–255

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

  1. L246
    congr
  2. L247
    refl
  3. L248
    congr
  4. L249
    refl
  5. L250
    trans ((((d) * (f))) + ((((b) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g)))))))))
  6. L251
    trans ((((b) * (e))) + ((((d) * (f))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g)))))))))
  7. L252
    congr
  8. L253
    refl
  9. L254
    trans ((((a) * (g))) + ((((d) * (f))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g))))))))
  10. L255
    congr
48Calculate and transport equalitiesL256–259

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

  1. L256
    refl
  2. L257
    trans ((((b) * (h))) + ((((d) * (f))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g)))))))
  3. L258
    congr
  4. L259
    refl
49Use earlier factsL260–263

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

  1. L260
    apply four_square_add_swap_right_tail
  2. L261
    apply four_square_add_swap_right_tail
  3. L262
    apply four_square_add_swap_right_tail
  4. L263
    apply four_square_add_swap_right_tail
50Calculate and transport equalitiesL264–271

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

  1. L264
    congr
  2. L265
    refl
  3. L266
    congr
  4. L267
    refl
  5. L268
    trans ((((c) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (h))) + (((d) * (g)))))))
  6. L269
    trans ((((a) * (g))) + ((((c) * (e))) + ((((b) * (h))) + ((((c) * (h))) + (((d) * (g)))))))
  7. L270
    congr
  8. L271
    refl
51Use earlier factsL272–273

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

  1. L272
    apply four_square_add_swap_right_tail
  2. L273
    apply four_square_add_swap_right_tail
52Calculate and transport equalitiesL274–281

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

  1. L274
    congr
  2. L275
    refl
  3. L276
    congr
  4. L277
    refl
  5. L278
    trans ((((d) * (g))) + ((((b) * (h))) + (((c) * (h)))))
  6. L279
    trans ((((b) * (h))) + ((((d) * (g))) + (((c) * (h)))))
  7. L280
    congr
  8. L281
    refl
53Use earlier factsL282–283

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

  1. L282
    apply add_comm
  2. L283
    apply four_square_add_swap_right_tail
54Calculate and transport equalitiesL284–293

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

  1. L284
    congr
  2. L285
    refl
  3. L286
    refl
  4. L287
    trans ((((a) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((d) * (f))) + ((((b) * (e))) + ((((c) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + (((c) * (h))))))))))))))))))))))
  5. L288
    symm
  6. L289
    congr
  7. L290
    refl
  8. L291
    congr
  9. L292
    refl
  10. L293
    congr
55Calculate and transport equalitiesL294–303

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

  1. L294
    refl
  2. L295
    congr
  3. L296
    refl
  4. L297
    congr
  5. L298
    refl
  6. L299
    congr
  7. L300
    refl
  8. L301
    congr
  9. L302
    refl
  10. L303
    congr
56Calculate and transport equalitiesL304–313

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

  1. L304
    refl
  2. L305
    congr
  3. L306
    refl
  4. L307
    congr
  5. L308
    refl
  6. L309
    congr
  7. L310
    refl
  8. L311
    congr
  9. L312
    refl
  10. L313
    congr
57Calculate and transport equalitiesL314–323

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

  1. L314
    refl
  2. L315
    congr
  3. L316
    refl
  4. L317
    congr
  5. L318
    refl
  6. L319
    congr
  7. L320
    refl
  8. L321
    congr
  9. L322
    refl
  10. L323
    congr
58Calculate and transport equalitiesL324–329

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

  1. L324
    refl
  2. L325
    congr
  3. L326
    refl
  4. L327
    refl
  5. L328
    symm
  6. L329
    simp [add_mul, mul_add, mul_assoc, add_assoc]

Library-wide reading audit

Original defined command ledger · 329 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. 0009split
  10. 0010trans ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
  11. 0011simp [add_mul, mul_add, mul_assoc, add_assoc]
  12. 0012trans ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
  13. 0013congr
  14. 0014refl
  15. 0015congr
  16. 0016refl
  17. 0017congr
  18. 0018refl
  19. 0019congr
  20. 0020refl
  21. 0021congr
  22. 0022refl
  23. 0023congr
  24. 0024refl
  25. 0025congr
  26. 0026refl
  27. 0027congr
  28. 0028refl
  29. 0029congr
  30. 0030refl
  31. 0031congr
  32. 0032refl
  33. 0033congr
  34. 0034refl
  35. 0035refl
  36. 0036trans ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((d) * (f))) + ((((c) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + (((c) * (h))))))))))))))
  37. 0037trans ((((a) * (h))) + ((((d) * (e))) + ((((c) * (f))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
  38. 0038trans ((((d) * (e))) + ((((a) * (h))) + ((((c) * (f))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
  39. 0039congr
  40. 0040refl
  41. 0041apply four_square_add_swap_right_tail
  42. 0042apply four_square_add_swap_right_tail
  43. 0043congr
  44. 0044refl
  45. 0045trans ((((b) * (g))) + ((((d) * (e))) + ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))
  46. 0046trans ((((d) * (e))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))
  47. 0047congr
  48. 0048refl
  49. 0049trans ((((c) * (f))) + ((((b) * (g))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))
  50. 0050congr
  51. 0051refl
  52. 0052apply four_square_add_swap_right_tail
  53. 0053apply four_square_add_swap_right_tail
  54. 0054apply four_square_add_swap_right_tail
  55. 0055congr
  56. 0056refl
  57. 0057trans ((((c) * (f))) + ((((d) * (e))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))
  58. 0058apply four_square_add_swap_right_tail
  59. 0059congr
  60. 0060refl
  61. 0061congr
  62. 0062refl
  63. 0063trans ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))
  64. 0064apply four_square_add_swap_right_tail
  65. 0065congr
  66. 0066refl
  67. 0067congr
  68. 0068refl
  69. 0069trans ((((d) * (f))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g))))))))
  70. 0070trans ((((a) * (g))) + ((((d) * (f))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g))))))))
  71. 0071congr
  72. 0072refl
  73. 0073trans ((((b) * (h))) + ((((d) * (f))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g)))))))
  74. 0074congr
  75. 0075refl
  76. 0076apply four_square_add_swap_right_tail
  77. 0077apply four_square_add_swap_right_tail
  78. 0078apply four_square_add_swap_right_tail
  79. 0079congr
  80. 0080refl
  81. 0081trans ((((c) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (h))) + (((d) * (g)))))))
  82. 0082trans ((((a) * (g))) + ((((c) * (e))) + ((((b) * (h))) + ((((c) * (h))) + (((d) * (g)))))))
  83. 0083congr
  84. 0084refl
  85. 0085apply four_square_add_swap_right_tail
  86. 0086apply four_square_add_swap_right_tail
  87. 0087congr
  88. 0088refl
  89. 0089congr
  90. 0090refl
  91. 0091trans ((((d) * (g))) + ((((b) * (h))) + (((c) * (h)))))
  92. 0092trans ((((b) * (h))) + ((((d) * (g))) + (((c) * (h)))))
  93. 0093congr
  94. 0094refl
  95. 0095apply add_comm
  96. 0096apply four_square_add_swap_right_tail
  97. 0097congr
  98. 0098refl
  99. 0099refl
  100. 0100trans ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((d) * (f))) + ((((c) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + (((c) * (h))))))))))))))
  101. 0101symm
  102. 0102congr
  103. 0103refl
  104. 0104congr
  105. 0105refl
  106. 0106congr
  107. 0107refl
  108. 0108congr
  109. 0109refl
  110. 0110congr
  111. 0111refl
  112. 0112congr
  113. 0113refl
  114. 0114congr
  115. 0115refl
  116. 0116congr
  117. 0117refl
  118. 0118congr
  119. 0119refl
  120. 0120congr
  121. 0121refl
  122. 0122congr
  123. 0123refl
  124. 0124refl
  125. 0125symm
  126. 0126simp [add_mul, mul_add, mul_assoc, add_assoc]
  127. 0127trans ((((d) * (g))) + ((((c) * (h))) + ((((a) * (e))) + ((((d) * (e))) + ((((b) * (f))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  128. 0128simp [add_mul, mul_add, mul_assoc, add_assoc]
  129. 0129trans ((((d) * (g))) + ((((c) * (h))) + ((((a) * (e))) + ((((d) * (e))) + ((((b) * (f))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  130. 0130congr
  131. 0131refl
  132. 0132congr
  133. 0133refl
  134. 0134congr
  135. 0135refl
  136. 0136congr
  137. 0137refl
  138. 0138congr
  139. 0139refl
  140. 0140congr
  141. 0141refl
  142. 0142congr
  143. 0143refl
  144. 0144congr
  145. 0145refl
  146. 0146congr
  147. 0147refl
  148. 0148congr
  149. 0149refl
  150. 0150congr
  151. 0151refl
  152. 0152congr
  153. 0153refl
  154. 0154congr
  155. 0155refl
  156. 0156congr
  157. 0157refl
  158. 0158congr
  159. 0159refl
  160. 0160congr
  161. 0161refl
  162. 0162congr
  163. 0163refl
  164. 0164congr
  165. 0165refl
  166. 0166congr
  167. 0167refl
  168. 0168refl
  169. 0169trans ((((a) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((d) * (f))) + ((((b) * (e))) + ((((c) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + (((c) * (h))))))))))))))))))))))
  170. 0170trans ((((a) * (e))) + ((((d) * (g))) + ((((c) * (h))) + ((((d) * (e))) + ((((b) * (f))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  171. 0171trans ((((d) * (g))) + ((((a) * (e))) + ((((c) * (h))) + ((((d) * (e))) + ((((b) * (f))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  172. 0172congr
  173. 0173refl
  174. 0174apply four_square_add_swap_right_tail
  175. 0175apply four_square_add_swap_right_tail
  176. 0176congr
  177. 0177refl
  178. 0178trans ((((b) * (f))) + ((((d) * (g))) + ((((c) * (h))) + ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))))))))))
  179. 0179trans ((((d) * (g))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))))))))))
  180. 0180congr
  181. 0181refl
  182. 0182trans ((((c) * (h))) + ((((b) * (f))) + ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))
  183. 0183congr
  184. 0184refl
  185. 0185apply four_square_add_swap_right_tail
  186. 0186apply four_square_add_swap_right_tail
  187. 0187apply four_square_add_swap_right_tail
  188. 0188congr
  189. 0189refl
  190. 0190trans ((((c) * (h))) + ((((d) * (g))) + ((((d) * (e))) + ((((c) * (f))) + ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))
  191. 0191apply four_square_add_swap_right_tail
  192. 0192congr
  193. 0193refl
  194. 0194congr
  195. 0195refl
  196. 0196trans ((((a) * (h))) + ((((d) * (e))) + ((((c) * (f))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))
  197. 0197trans ((((d) * (e))) + ((((a) * (h))) + ((((c) * (f))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))
  198. 0198congr
  199. 0199refl
  200. 0200apply four_square_add_swap_right_tail
  201. 0201apply four_square_add_swap_right_tail
  202. 0202congr
  203. 0203refl
  204. 0204trans ((((b) * (g))) + ((((d) * (e))) + ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))))))
  205. 0205trans ((((d) * (e))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))))))))
  206. 0206congr
  207. 0207refl
  208. 0208trans ((((c) * (f))) + ((((b) * (g))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))
  209. 0209congr
  210. 0210refl
  211. 0211apply four_square_add_swap_right_tail
  212. 0212apply four_square_add_swap_right_tail
  213. 0213apply four_square_add_swap_right_tail
  214. 0214congr
  215. 0215refl
  216. 0216trans ((((c) * (f))) + ((((d) * (e))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))
  217. 0217apply four_square_add_swap_right_tail
  218. 0218congr
  219. 0219refl
  220. 0220congr
  221. 0221refl
  222. 0222trans ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))
  223. 0223apply four_square_add_swap_right_tail
  224. 0224congr
  225. 0225refl
  226. 0226congr
  227. 0227refl
  228. 0228trans ((((d) * (h))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))
  229. 0229trans ((((a) * (f))) + ((((d) * (h))) + ((((b) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))
  230. 0230congr
  231. 0231refl
  232. 0232trans ((((b) * (e))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))
  233. 0233congr
  234. 0234refl
  235. 0235apply four_square_add_swap_right_tail
  236. 0236apply four_square_add_swap_right_tail
  237. 0237apply four_square_add_swap_right_tail
  238. 0238congr
  239. 0239refl
  240. 0240trans ((((c) * (g))) + ((((a) * (f))) + ((((b) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))
  241. 0241trans ((((a) * (f))) + ((((c) * (g))) + ((((b) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g)))))))))))
  242. 0242congr
  243. 0243refl
  244. 0244apply four_square_add_swap_right_tail
  245. 0245apply four_square_add_swap_right_tail
  246. 0246congr
  247. 0247refl
  248. 0248congr
  249. 0249refl
  250. 0250trans ((((d) * (f))) + ((((b) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g)))))))))
  251. 0251trans ((((b) * (e))) + ((((d) * (f))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g)))))))))
  252. 0252congr
  253. 0253refl
  254. 0254trans ((((a) * (g))) + ((((d) * (f))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g))))))))
  255. 0255congr
  256. 0256refl
  257. 0257trans ((((b) * (h))) + ((((d) * (f))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (g)))))))
  258. 0258congr
  259. 0259refl
  260. 0260apply four_square_add_swap_right_tail
  261. 0261apply four_square_add_swap_right_tail
  262. 0262apply four_square_add_swap_right_tail
  263. 0263apply four_square_add_swap_right_tail
  264. 0264congr
  265. 0265refl
  266. 0266congr
  267. 0267refl
  268. 0268trans ((((c) * (e))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (h))) + (((d) * (g)))))))
  269. 0269trans ((((a) * (g))) + ((((c) * (e))) + ((((b) * (h))) + ((((c) * (h))) + (((d) * (g)))))))
  270. 0270congr
  271. 0271refl
  272. 0272apply four_square_add_swap_right_tail
  273. 0273apply four_square_add_swap_right_tail
  274. 0274congr
  275. 0275refl
  276. 0276congr
  277. 0277refl
  278. 0278trans ((((d) * (g))) + ((((b) * (h))) + (((c) * (h)))))
  279. 0279trans ((((b) * (h))) + ((((d) * (g))) + (((c) * (h)))))
  280. 0280congr
  281. 0281refl
  282. 0282apply add_comm
  283. 0283apply four_square_add_swap_right_tail
  284. 0284congr
  285. 0285refl
  286. 0286refl
  287. 0287trans ((((a) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((d) * (f))) + ((((b) * (e))) + ((((c) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + (((c) * (h))))))))))))))))))))))
  288. 0288symm
  289. 0289congr
  290. 0290refl
  291. 0291congr
  292. 0292refl
  293. 0293congr
  294. 0294refl
  295. 0295congr
  296. 0296refl
  297. 0297congr
  298. 0298refl
  299. 0299congr
  300. 0300refl
  301. 0301congr
  302. 0302refl
  303. 0303congr
  304. 0304refl
  305. 0305congr
  306. 0306refl
  307. 0307congr
  308. 0308refl
  309. 0309congr
  310. 0310refl
  311. 0311congr
  312. 0312refl
  313. 0313congr
  314. 0314refl
  315. 0315congr
  316. 0316refl
  317. 0317congr
  318. 0318refl
  319. 0319congr
  320. 0320refl
  321. 0321congr
  322. 0322refl
  323. 0323congr
  324. 0324refl
  325. 0325congr
  326. 0326refl
  327. 0327refl
  328. 0328symm
  329. 0329simp [add_mul, mul_add, mul_assoc, add_assoc]