EI002D

eisenstein_product_conjugate

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

Actual Eisenstein conjugation preserves multiplication for all signed coordinate representatives.

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

Constructive proof overview

Generated structural guide

Actual Eisenstein conjugation preserves multiplication for all signed coordinate representatives.

The unchanged tactic script uses 6 declared prerequisites and contains 479 exact native proof lines.

Alpha v34 checked-use · first admitted v28 · 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 add_assoc Stable theorem; checked-use authorized add_comm Stable theorem; checked-use authorized four_square_add_swap_right_tail Alpha theorem; checked-use authorized

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

479 script commands · 74 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.

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 ((((a) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))))))
  2. L11
    simp [add_mul, mul_add, mul_assoc, add_assoc]
  3. L12
    trans ((((a) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (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
    congr
  7. L36
    refl
  8. L37
    congr
  9. L38
    refl
  10. L39
    congr
06Calculate and transport equalitiesL40–49

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

  1. L40
    refl
  2. L41
    congr
  3. L42
    refl
  4. L43
    congr
  5. L44
    refl
  6. L45
    congr
  7. L46
    refl
  8. L47
    congr
  9. L48
    refl
  10. L49
    congr
07Calculate and transport equalitiesL50–59

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

  1. L50
    refl
  2. L51
    refl
  3. L52
    trans ((((a) * (e))) + ((((a) * (h))) + ((((d) * (e))) + ((((d) * (h))) + ((((b) * (f))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (h))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  4. L53
    congr
  5. L54
    refl
  6. L55
    trans ((((a) * (h))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))))
  7. L56
    trans ((((b) * (f))) + ((((a) * (h))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))))
  8. L57
    congr
  9. L58
    refl
  10. L59
    trans ((((c) * (h))) + ((((a) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))))
08Calculate and transport equalitiesL60–61

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

  1. L60
    congr
  2. L61
    refl
09Use earlier factsL62–64

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

  1. L62
    apply four_square_add_swap_right_tail
  2. L63
    apply four_square_add_swap_right_tail
  3. L64
    apply four_square_add_swap_right_tail
10Calculate 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
    trans ((((d) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))))
  4. L68
    trans ((((b) * (f))) + ((((d) * (e))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))))
  5. L69
    congr
  6. L70
    refl
  7. L71
    trans ((((c) * (h))) + ((((d) * (e))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))
  8. L72
    congr
  9. L73
    refl
  10. L74
    trans ((((d) * (g))) + ((((d) * (e))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))
11Calculate and transport equalitiesL75–79

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

  1. L75
    congr
  2. L76
    refl
  3. L77
    trans ((((b) * (g))) + ((((d) * (e))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  4. L78
    congr
  5. L79
    refl
12Use earlier factsL80–84

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

  1. L80
    apply four_square_add_swap_right_tail
  2. L81
    apply four_square_add_swap_right_tail
  3. L82
    apply four_square_add_swap_right_tail
  4. L83
    apply four_square_add_swap_right_tail
  5. L84
    apply four_square_add_swap_right_tail
13Calculate and transport equalitiesL85–94

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

  1. L85
    congr
  2. L86
    refl
  3. L87
    trans ((((d) * (h))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))
  4. L88
    trans ((((b) * (f))) + ((((d) * (h))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))
  5. L89
    congr
  6. L90
    refl
  7. L91
    trans ((((c) * (h))) + ((((d) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))
  8. L92
    congr
  9. L93
    refl
  10. L94
    trans ((((d) * (g))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
14Calculate and transport equalitiesL95–102

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

  1. L95
    congr
  2. L96
    refl
  3. L97
    trans ((((b) * (g))) + ((((d) * (h))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))
  4. L98
    congr
  5. L99
    refl
  6. L100
    trans ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  7. L101
    congr
  8. L102
    refl
15Use earlier factsL103–108

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

  1. L103
    apply four_square_add_swap_right_tail
  2. L104
    apply four_square_add_swap_right_tail
  3. L105
    apply four_square_add_swap_right_tail
  4. L106
    apply four_square_add_swap_right_tail
  5. L107
    apply four_square_add_swap_right_tail
  6. L108
    apply four_square_add_swap_right_tail
16Calculate and transport equalitiesL109–116

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

  1. L109
    congr
  2. L110
    refl
  3. L111
    congr
  4. L112
    refl
  5. L113
    trans ((((b) * (g))) + ((((c) * (h))) + ((((d) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  6. L114
    trans ((((c) * (h))) + ((((b) * (g))) + ((((d) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  7. L115
    congr
  8. L116
    refl
17Use earlier factsL117–118

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

  1. L117
    apply four_square_add_swap_right_tail
  2. L118
    apply four_square_add_swap_right_tail
18Calculate and transport equalitiesL119–124

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

  1. L119
    congr
  2. L120
    refl
  3. L121
    trans ((((c) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))
  4. L122
    trans ((((c) * (h))) + ((((c) * (f))) + ((((d) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))
  5. L123
    congr
  6. L124
    refl
19Use earlier factsL125–126

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

  1. L125
    apply four_square_add_swap_right_tail
  2. L126
    apply four_square_add_swap_right_tail
20Calculate and transport equalitiesL127–132

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

  1. L127
    congr
  2. L128
    refl
  3. L129
    trans ((((c) * (g))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  4. L130
    trans ((((c) * (h))) + ((((c) * (g))) + ((((d) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  5. L131
    congr
  6. L132
    refl
21Use earlier factsL133–134

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

  1. L133
    apply four_square_add_swap_right_tail
  2. L134
    apply four_square_add_swap_right_tail
22Calculate and transport equalitiesL135–137

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

  1. L135
    congr
  2. L136
    refl
  3. L137
    trans ((((d) * (g))) + ((((c) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))
23Use earlier factsL138–138

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

  1. L138
    apply four_square_add_swap_right_tail
24Calculate and transport equalitiesL139–148

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

  1. L139
    congr
  2. L140
    refl
  3. L141
    congr
  4. L142
    refl
  5. L143
    congr
  6. L144
    refl
  7. L145
    trans ((((b) * (e))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))
  8. L146
    trans ((((a) * (g))) + ((((b) * (e))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))
  9. L147
    congr
  10. L148
    refl
25Calculate and transport equalitiesL149–151

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

  1. L149
    trans ((((d) * (f))) + ((((b) * (e))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))
  2. L150
    congr
  3. L151
    refl
26Use earlier factsL152–154

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

  1. L152
    apply four_square_add_swap_right_tail
  2. L153
    apply four_square_add_swap_right_tail
  3. L154
    apply four_square_add_swap_right_tail
27Calculate and transport equalitiesL155–164

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

  1. L155
    congr
  2. L156
    refl
  3. L157
    trans ((((c) * (g))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h))))))))))
  4. L158
    trans ((((a) * (g))) + ((((c) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h))))))))))
  5. L159
    congr
  6. L160
    refl
  7. L161
    trans ((((d) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h)))))))))
  8. L162
    congr
  9. L163
    refl
  10. L164
    trans ((((d) * (g))) + ((((c) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h))))))))
28Calculate and transport equalitiesL165–174

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

  1. L165
    congr
  2. L166
    refl
  3. L167
    trans ((((b) * (h))) + ((((c) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h)))))))
  4. L168
    congr
  5. L169
    refl
  6. L170
    trans ((((c) * (e))) + ((((c) * (g))) + ((((c) * (h))) + (((d) * (h))))))
  7. L171
    congr
  8. L172
    refl
  9. L173
    trans ((((c) * (h))) + ((((c) * (g))) + (((d) * (h)))))
  10. L174
    congr
29Calculate and transport equalitiesL175–175

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

  1. L175
    refl
30Use earlier factsL176–182

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

  1. L176
    apply add_comm
  2. L177
    apply four_square_add_swap_right_tail
  3. L178
    apply four_square_add_swap_right_tail
  4. L179
    apply four_square_add_swap_right_tail
  5. L180
    apply four_square_add_swap_right_tail
  6. L181
    apply four_square_add_swap_right_tail
  7. L182
    apply four_square_add_swap_right_tail
31Calculate and transport equalitiesL183–192

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

  1. L183
    congr
  2. L184
    refl
  3. L185
    trans ((((d) * (h))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + (((c) * (h)))))))))
  4. L186
    trans ((((a) * (g))) + ((((d) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + (((c) * (h)))))))))
  5. L187
    congr
  6. L188
    refl
  7. L189
    trans ((((d) * (f))) + ((((d) * (h))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + (((c) * (h))))))))
  8. L190
    congr
  9. L191
    refl
  10. L192
    trans ((((d) * (g))) + ((((d) * (h))) + ((((b) * (h))) + ((((c) * (e))) + (((c) * (h)))))))
32Calculate and transport equalitiesL193–200

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

  1. L193
    congr
  2. L194
    refl
  3. L195
    trans ((((b) * (h))) + ((((d) * (h))) + ((((c) * (e))) + (((c) * (h))))))
  4. L196
    congr
  5. L197
    refl
  6. L198
    trans ((((c) * (e))) + ((((d) * (h))) + (((c) * (h)))))
  7. L199
    congr
  8. L200
    refl
33Use earlier factsL201–206

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

  1. L201
    apply add_comm
  2. L202
    apply four_square_add_swap_right_tail
  3. L203
    apply four_square_add_swap_right_tail
  4. L204
    apply four_square_add_swap_right_tail
  5. L205
    apply four_square_add_swap_right_tail
  6. L206
    apply four_square_add_swap_right_tail
34Calculate and transport equalitiesL207–214

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

  1. L207
    congr
  2. L208
    refl
  3. L209
    congr
  4. L210
    refl
  5. L211
    trans ((((b) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))
  6. L212
    trans ((((d) * (f))) + ((((b) * (h))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))
  7. L213
    congr
  8. L214
    refl
35Use earlier factsL215–216

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

  1. L215
    apply four_square_add_swap_right_tail
  2. L216
    apply four_square_add_swap_right_tail
36Calculate and transport equalitiesL217–222

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

  1. L217
    congr
  2. L218
    refl
  3. L219
    trans ((((c) * (e))) + ((((d) * (f))) + ((((d) * (g))) + (((c) * (h))))))
  4. L220
    trans ((((d) * (f))) + ((((c) * (e))) + ((((d) * (g))) + (((c) * (h))))))
  5. L221
    congr
  6. L222
    refl
37Use earlier factsL223–224

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

  1. L223
    apply four_square_add_swap_right_tail
  2. L224
    apply four_square_add_swap_right_tail
38Calculate and transport equalitiesL225–229

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

  1. L225
    congr
  2. L226
    refl
  3. L227
    congr
  4. L228
    refl
  5. L229
    trans ((((c) * (h))) + (((d) * (g))))
39Use earlier factsL230–230

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

  1. L230
    apply add_comm
40Calculate and transport equalitiesL231–240

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

  1. L231
    congr
  2. L232
    refl
  3. L233
    refl
  4. L234
    trans ((((a) * (e))) + ((((a) * (h))) + ((((d) * (e))) + ((((d) * (h))) + ((((b) * (f))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (h))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  5. L235
    symm
  6. L236
    congr
  7. L237
    refl
  8. L238
    congr
  9. L239
    refl
  10. L240
    congr
41Calculate and transport equalitiesL241–250

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

  1. L241
    refl
  2. L242
    congr
  3. L243
    refl
  4. L244
    congr
  5. L245
    refl
  6. L246
    congr
  7. L247
    refl
  8. L248
    congr
  9. L249
    refl
  10. L250
    congr
42Calculate and transport equalitiesL251–260

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

  1. L251
    refl
  2. L252
    congr
  3. L253
    refl
  4. L254
    congr
  5. L255
    refl
  6. L256
    congr
  7. L257
    refl
  8. L258
    congr
  9. L259
    refl
  10. L260
    congr
43Calculate and transport equalitiesL261–270

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

  1. L261
    refl
  2. L262
    congr
  3. L263
    refl
  4. L264
    congr
  5. L265
    refl
  6. L266
    congr
  7. L267
    refl
  8. L268
    congr
  9. L269
    refl
  10. L270
    congr
44Calculate and transport equalitiesL271–280

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

  1. L271
    refl
  2. L272
    congr
  3. L273
    refl
  4. L274
    refl
  5. L275
    symm
  6. L276
    simp [add_mul, mul_add, mul_assoc, add_assoc]
  7. L277
    trans ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))
  8. L278
    simp [add_mul, mul_add, mul_assoc, add_assoc]
  9. L279
    trans ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))
  10. L280
    congr
45Calculate and transport equalitiesL281–290

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

  1. L281
    refl
  2. L282
    congr
  3. L283
    refl
  4. L284
    congr
  5. L285
    refl
  6. L286
    congr
  7. L287
    refl
  8. L288
    congr
  9. L289
    refl
  10. L290
    congr
46Calculate and transport equalitiesL291–300

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

  1. L291
    refl
  2. L292
    congr
  3. L293
    refl
  4. L294
    congr
  5. L295
    refl
  6. L296
    congr
  7. L297
    refl
  8. L298
    congr
  9. L299
    refl
  10. L300
    congr
47Calculate and transport equalitiesL301–310

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

  1. L301
    refl
  2. L302
    congr
  3. L303
    refl
  4. L304
    congr
  5. L305
    refl
  6. L306
    congr
  7. L307
    refl
  8. L308
    congr
  9. L309
    refl
  10. L310
    refl
48Calculate and transport equalitiesL311–320

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

  1. L311
    trans ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((d) * (e))) + ((((d) * (h))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))
  2. L312
    congr
  3. L313
    refl
  4. L314
    trans ((((d) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  5. L315
    trans ((((b) * (g))) + ((((d) * (h))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  6. L316
    congr
  7. L317
    refl
  8. L318
    trans ((((c) * (f))) + ((((d) * (h))) + ((((d) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))
  9. L319
    congr
  10. L320
    refl
49Calculate and transport equalitiesL321–323

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

  1. L321
    trans ((((d) * (e))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  2. L322
    congr
  3. L323
    refl
50Use earlier factsL324–327

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

  1. L324
    apply four_square_add_swap_right_tail
  2. L325
    apply four_square_add_swap_right_tail
  3. L326
    apply four_square_add_swap_right_tail
  4. L327
    apply four_square_add_swap_right_tail
51Calculate and transport equalitiesL328–335

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

  1. L328
    congr
  2. L329
    refl
  3. L330
    congr
  4. L331
    refl
  5. L332
    trans ((((c) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  6. L333
    trans ((((c) * (f))) + ((((c) * (g))) + ((((d) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  7. L334
    congr
  8. L335
    refl
52Use earlier factsL336–337

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

  1. L336
    apply four_square_add_swap_right_tail
  2. L337
    apply four_square_add_swap_right_tail
53Calculate and transport equalitiesL338–340

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

  1. L338
    congr
  2. L339
    refl
  3. L340
    trans ((((d) * (e))) + ((((c) * (f))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))
54Use earlier factsL341–341

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

  1. L341
    apply four_square_add_swap_right_tail
55Calculate and transport equalitiesL342–351

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

  1. L342
    congr
  2. L343
    refl
  3. L344
    trans ((((d) * (h))) + ((((c) * (f))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))))))))
  4. L345
    trans ((((c) * (f))) + ((((d) * (h))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))))))))
  5. L346
    congr
  6. L347
    refl
  7. L348
    trans ((((a) * (g))) + ((((d) * (h))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g))))))))))))
  8. L349
    congr
  9. L350
    refl
  10. L351
    trans ((((d) * (g))) + ((((d) * (h))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))))))
56Calculate and transport equalitiesL352–361

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

  1. L352
    congr
  2. L353
    refl
  3. L354
    trans ((((b) * (h))) + ((((d) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g))))))))))
  4. L355
    congr
  5. L356
    refl
  6. L357
    trans ((((c) * (h))) + ((((d) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))))
  7. L358
    congr
  8. L359
    refl
  9. L360
    trans ((((d) * (f))) + ((((d) * (h))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g))))))))
  10. L361
    congr
57Calculate and transport equalitiesL362–368

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

  1. L362
    refl
  2. L363
    trans ((((d) * (g))) + ((((d) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))
  3. L364
    congr
  4. L365
    refl
  5. L366
    trans ((((c) * (e))) + ((((d) * (h))) + ((((c) * (h))) + (((c) * (g))))))
  6. L367
    congr
  7. L368
    refl
58Use earlier factsL369–377

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

  1. L369
    apply four_square_add_swap_right_tail
  2. L370
    apply four_square_add_swap_right_tail
  3. L371
    apply four_square_add_swap_right_tail
  4. L372
    apply four_square_add_swap_right_tail
  5. L373
    apply four_square_add_swap_right_tail
  6. L374
    apply four_square_add_swap_right_tail
  7. L375
    apply four_square_add_swap_right_tail
  8. L376
    apply four_square_add_swap_right_tail
  9. L377
    apply four_square_add_swap_right_tail
59Calculate and transport equalitiesL378–387

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

  1. L378
    congr
  2. L379
    refl
  3. L380
    congr
  4. L381
    refl
  5. L382
    trans ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))))
  6. L383
    trans ((((a) * (g))) + ((((c) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))))
  7. L384
    congr
  8. L385
    refl
  9. L386
    trans ((((d) * (g))) + ((((c) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h))))))))))
  10. L387
    congr
60Calculate and transport equalitiesL388–397

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

  1. L388
    refl
  2. L389
    trans ((((b) * (h))) + ((((c) * (g))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))
  3. L390
    congr
  4. L391
    refl
  5. L392
    trans ((((c) * (h))) + ((((c) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h))))))))
  6. L393
    congr
  7. L394
    refl
  8. L395
    trans ((((d) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))
  9. L396
    congr
  10. L397
    refl
61Calculate and transport equalitiesL398–403

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

  1. L398
    trans ((((d) * (g))) + ((((c) * (g))) + ((((c) * (e))) + (((c) * (h))))))
  2. L399
    congr
  3. L400
    refl
  4. L401
    trans ((((c) * (e))) + ((((c) * (g))) + (((c) * (h)))))
  5. L402
    congr
  6. L403
    refl
62Use earlier factsL404–411

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

  1. L404
    apply add_comm
  2. L405
    apply four_square_add_swap_right_tail
  3. L406
    apply four_square_add_swap_right_tail
  4. L407
    apply four_square_add_swap_right_tail
  5. L408
    apply four_square_add_swap_right_tail
  6. L409
    apply four_square_add_swap_right_tail
  7. L410
    apply four_square_add_swap_right_tail
  8. L411
    apply four_square_add_swap_right_tail
63Calculate and transport equalitiesL412–414

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

  1. L412
    congr
  2. L413
    refl
  3. L414
    trans ((((d) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h))))))))))
64Use earlier factsL415–415

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

  1. L415
    apply four_square_add_swap_right_tail
65Calculate and transport equalitiesL416–421

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

  1. L416
    congr
  2. L417
    refl
  3. L418
    trans ((((c) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))
  4. L419
    trans ((((a) * (g))) + ((((c) * (h))) + ((((b) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))
  5. L420
    congr
  6. L421
    refl
66Use earlier factsL422–423

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

  1. L422
    apply four_square_add_swap_right_tail
  2. L423
    apply four_square_add_swap_right_tail
67Calculate and transport equalitiesL424–433

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

  1. L424
    congr
  2. L425
    refl
  3. L426
    congr
  4. L427
    refl
  5. L428
    congr
  6. L429
    refl
  7. L430
    trans ((((c) * (e))) + ((((d) * (f))) + ((((d) * (g))) + (((c) * (h))))))
  8. L431
    trans ((((d) * (f))) + ((((c) * (e))) + ((((d) * (g))) + (((c) * (h))))))
  9. L432
    congr
  10. L433
    refl
68Use earlier factsL434–435

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

  1. L434
    apply four_square_add_swap_right_tail
  2. L435
    apply four_square_add_swap_right_tail
69Calculate and transport equalitiesL436–440

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

  1. L436
    congr
  2. L437
    refl
  3. L438
    congr
  4. L439
    refl
  5. L440
    trans ((((c) * (h))) + (((d) * (g))))
70Use earlier factsL441–441

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

  1. L441
    apply add_comm
71Calculate and transport equalitiesL442–451

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

  1. L442
    congr
  2. L443
    refl
  3. L444
    refl
  4. L445
    trans ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((d) * (e))) + ((((d) * (h))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))
  5. L446
    symm
  6. L447
    congr
  7. L448
    refl
  8. L449
    congr
  9. L450
    refl
  10. L451
    congr
72Calculate and transport equalitiesL452–461

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

  1. L452
    refl
  2. L453
    congr
  3. L454
    refl
  4. L455
    congr
  5. L456
    refl
  6. L457
    congr
  7. L458
    refl
  8. L459
    congr
  9. L460
    refl
  10. L461
    congr
73Calculate and transport equalitiesL462–471

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

  1. L462
    refl
  2. L463
    congr
  3. L464
    refl
  4. L465
    congr
  5. L466
    refl
  6. L467
    congr
  7. L468
    refl
  8. L469
    congr
  9. L470
    refl
  10. L471
    congr
74Calculate and transport equalitiesL472–479

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

  1. L472
    refl
  2. L473
    congr
  3. L474
    refl
  4. L475
    congr
  5. L476
    refl
  6. L477
    refl
  7. L478
    symm
  8. L479
    simp [add_mul, mul_add, mul_assoc, add_assoc]

Library-wide reading audit

Original exact command ledger · 479 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 ((((a) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))))))
  11. 0011simp [add_mul, mul_add, mul_assoc, add_assoc]
  12. 0012trans ((((a) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (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. 0035congr
  36. 0036refl
  37. 0037congr
  38. 0038refl
  39. 0039congr
  40. 0040refl
  41. 0041congr
  42. 0042refl
  43. 0043congr
  44. 0044refl
  45. 0045congr
  46. 0046refl
  47. 0047congr
  48. 0048refl
  49. 0049congr
  50. 0050refl
  51. 0051refl
  52. 0052trans ((((a) * (e))) + ((((a) * (h))) + ((((d) * (e))) + ((((d) * (h))) + ((((b) * (f))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (h))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  53. 0053congr
  54. 0054refl
  55. 0055trans ((((a) * (h))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))))
  56. 0056trans ((((b) * (f))) + ((((a) * (h))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))))
  57. 0057congr
  58. 0058refl
  59. 0059trans ((((c) * (h))) + ((((a) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))))
  60. 0060congr
  61. 0061refl
  62. 0062apply four_square_add_swap_right_tail
  63. 0063apply four_square_add_swap_right_tail
  64. 0064apply four_square_add_swap_right_tail
  65. 0065congr
  66. 0066refl
  67. 0067trans ((((d) * (e))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))))
  68. 0068trans ((((b) * (f))) + ((((d) * (e))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))))
  69. 0069congr
  70. 0070refl
  71. 0071trans ((((c) * (h))) + ((((d) * (e))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))
  72. 0072congr
  73. 0073refl
  74. 0074trans ((((d) * (g))) + ((((d) * (e))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))
  75. 0075congr
  76. 0076refl
  77. 0077trans ((((b) * (g))) + ((((d) * (e))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  78. 0078congr
  79. 0079refl
  80. 0080apply four_square_add_swap_right_tail
  81. 0081apply four_square_add_swap_right_tail
  82. 0082apply four_square_add_swap_right_tail
  83. 0083apply four_square_add_swap_right_tail
  84. 0084apply four_square_add_swap_right_tail
  85. 0085congr
  86. 0086refl
  87. 0087trans ((((d) * (h))) + ((((b) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))
  88. 0088trans ((((b) * (f))) + ((((d) * (h))) + ((((c) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))))
  89. 0089congr
  90. 0090refl
  91. 0091trans ((((c) * (h))) + ((((d) * (h))) + ((((d) * (g))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))
  92. 0092congr
  93. 0093refl
  94. 0094trans ((((d) * (g))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  95. 0095congr
  96. 0096refl
  97. 0097trans ((((b) * (g))) + ((((d) * (h))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))
  98. 0098congr
  99. 0099refl
  100. 0100trans ((((c) * (f))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  101. 0101congr
  102. 0102refl
  103. 0103apply four_square_add_swap_right_tail
  104. 0104apply four_square_add_swap_right_tail
  105. 0105apply four_square_add_swap_right_tail
  106. 0106apply four_square_add_swap_right_tail
  107. 0107apply four_square_add_swap_right_tail
  108. 0108apply four_square_add_swap_right_tail
  109. 0109congr
  110. 0110refl
  111. 0111congr
  112. 0112refl
  113. 0113trans ((((b) * (g))) + ((((c) * (h))) + ((((d) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  114. 0114trans ((((c) * (h))) + ((((b) * (g))) + ((((d) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  115. 0115congr
  116. 0116refl
  117. 0117apply four_square_add_swap_right_tail
  118. 0118apply four_square_add_swap_right_tail
  119. 0119congr
  120. 0120refl
  121. 0121trans ((((c) * (f))) + ((((c) * (h))) + ((((d) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))
  122. 0122trans ((((c) * (h))) + ((((c) * (f))) + ((((d) * (g))) + ((((c) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))
  123. 0123congr
  124. 0124refl
  125. 0125apply four_square_add_swap_right_tail
  126. 0126apply four_square_add_swap_right_tail
  127. 0127congr
  128. 0128refl
  129. 0129trans ((((c) * (g))) + ((((c) * (h))) + ((((d) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  130. 0130trans ((((c) * (h))) + ((((c) * (g))) + ((((d) * (g))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  131. 0131congr
  132. 0132refl
  133. 0133apply four_square_add_swap_right_tail
  134. 0134apply four_square_add_swap_right_tail
  135. 0135congr
  136. 0136refl
  137. 0137trans ((((d) * (g))) + ((((c) * (h))) + ((((a) * (f))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (e))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))
  138. 0138apply four_square_add_swap_right_tail
  139. 0139congr
  140. 0140refl
  141. 0141congr
  142. 0142refl
  143. 0143congr
  144. 0144refl
  145. 0145trans ((((b) * (e))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))
  146. 0146trans ((((a) * (g))) + ((((b) * (e))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))
  147. 0147congr
  148. 0148refl
  149. 0149trans ((((d) * (f))) + ((((b) * (e))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))
  150. 0150congr
  151. 0151refl
  152. 0152apply four_square_add_swap_right_tail
  153. 0153apply four_square_add_swap_right_tail
  154. 0154apply four_square_add_swap_right_tail
  155. 0155congr
  156. 0156refl
  157. 0157trans ((((c) * (g))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h))))))))))
  158. 0158trans ((((a) * (g))) + ((((c) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h))))))))))
  159. 0159congr
  160. 0160refl
  161. 0161trans ((((d) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h)))))))))
  162. 0162congr
  163. 0163refl
  164. 0164trans ((((d) * (g))) + ((((c) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h))))))))
  165. 0165congr
  166. 0166refl
  167. 0167trans ((((b) * (h))) + ((((c) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((d) * (h)))))))
  168. 0168congr
  169. 0169refl
  170. 0170trans ((((c) * (e))) + ((((c) * (g))) + ((((c) * (h))) + (((d) * (h))))))
  171. 0171congr
  172. 0172refl
  173. 0173trans ((((c) * (h))) + ((((c) * (g))) + (((d) * (h)))))
  174. 0174congr
  175. 0175refl
  176. 0176apply add_comm
  177. 0177apply four_square_add_swap_right_tail
  178. 0178apply four_square_add_swap_right_tail
  179. 0179apply four_square_add_swap_right_tail
  180. 0180apply four_square_add_swap_right_tail
  181. 0181apply four_square_add_swap_right_tail
  182. 0182apply four_square_add_swap_right_tail
  183. 0183congr
  184. 0184refl
  185. 0185trans ((((d) * (h))) + ((((a) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + (((c) * (h)))))))))
  186. 0186trans ((((a) * (g))) + ((((d) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + (((c) * (h)))))))))
  187. 0187congr
  188. 0188refl
  189. 0189trans ((((d) * (f))) + ((((d) * (h))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (e))) + (((c) * (h))))))))
  190. 0190congr
  191. 0191refl
  192. 0192trans ((((d) * (g))) + ((((d) * (h))) + ((((b) * (h))) + ((((c) * (e))) + (((c) * (h)))))))
  193. 0193congr
  194. 0194refl
  195. 0195trans ((((b) * (h))) + ((((d) * (h))) + ((((c) * (e))) + (((c) * (h))))))
  196. 0196congr
  197. 0197refl
  198. 0198trans ((((c) * (e))) + ((((d) * (h))) + (((c) * (h)))))
  199. 0199congr
  200. 0200refl
  201. 0201apply add_comm
  202. 0202apply four_square_add_swap_right_tail
  203. 0203apply four_square_add_swap_right_tail
  204. 0204apply four_square_add_swap_right_tail
  205. 0205apply four_square_add_swap_right_tail
  206. 0206apply four_square_add_swap_right_tail
  207. 0207congr
  208. 0208refl
  209. 0209congr
  210. 0210refl
  211. 0211trans ((((b) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))
  212. 0212trans ((((d) * (f))) + ((((b) * (h))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))
  213. 0213congr
  214. 0214refl
  215. 0215apply four_square_add_swap_right_tail
  216. 0216apply four_square_add_swap_right_tail
  217. 0217congr
  218. 0218refl
  219. 0219trans ((((c) * (e))) + ((((d) * (f))) + ((((d) * (g))) + (((c) * (h))))))
  220. 0220trans ((((d) * (f))) + ((((c) * (e))) + ((((d) * (g))) + (((c) * (h))))))
  221. 0221congr
  222. 0222refl
  223. 0223apply four_square_add_swap_right_tail
  224. 0224apply four_square_add_swap_right_tail
  225. 0225congr
  226. 0226refl
  227. 0227congr
  228. 0228refl
  229. 0229trans ((((c) * (h))) + (((d) * (g))))
  230. 0230apply add_comm
  231. 0231congr
  232. 0232refl
  233. 0233refl
  234. 0234trans ((((a) * (e))) + ((((a) * (h))) + ((((d) * (e))) + ((((d) * (h))) + ((((b) * (f))) + ((((b) * (g))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (h))) + ((((a) * (f))) + ((((b) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))))))
  235. 0235symm
  236. 0236congr
  237. 0237refl
  238. 0238congr
  239. 0239refl
  240. 0240congr
  241. 0241refl
  242. 0242congr
  243. 0243refl
  244. 0244congr
  245. 0245refl
  246. 0246congr
  247. 0247refl
  248. 0248congr
  249. 0249refl
  250. 0250congr
  251. 0251refl
  252. 0252congr
  253. 0253refl
  254. 0254congr
  255. 0255refl
  256. 0256congr
  257. 0257refl
  258. 0258congr
  259. 0259refl
  260. 0260congr
  261. 0261refl
  262. 0262congr
  263. 0263refl
  264. 0264congr
  265. 0265refl
  266. 0266congr
  267. 0267refl
  268. 0268congr
  269. 0269refl
  270. 0270congr
  271. 0271refl
  272. 0272congr
  273. 0273refl
  274. 0274refl
  275. 0275symm
  276. 0276simp [add_mul, mul_add, mul_assoc, add_assoc]
  277. 0277trans ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))
  278. 0278simp [add_mul, mul_add, mul_assoc, add_assoc]
  279. 0279trans ((((a) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((d) * (h))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))))
  280. 0280congr
  281. 0281refl
  282. 0282congr
  283. 0283refl
  284. 0284congr
  285. 0285refl
  286. 0286congr
  287. 0287refl
  288. 0288congr
  289. 0289refl
  290. 0290congr
  291. 0291refl
  292. 0292congr
  293. 0293refl
  294. 0294congr
  295. 0295refl
  296. 0296congr
  297. 0297refl
  298. 0298congr
  299. 0299refl
  300. 0300congr
  301. 0301refl
  302. 0302congr
  303. 0303refl
  304. 0304congr
  305. 0305refl
  306. 0306congr
  307. 0307refl
  308. 0308congr
  309. 0309refl
  310. 0310refl
  311. 0311trans ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((d) * (e))) + ((((d) * (h))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))
  312. 0312congr
  313. 0313refl
  314. 0314trans ((((d) * (h))) + ((((b) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  315. 0315trans ((((b) * (g))) + ((((d) * (h))) + ((((c) * (f))) + ((((d) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))))
  316. 0316congr
  317. 0317refl
  318. 0318trans ((((c) * (f))) + ((((d) * (h))) + ((((d) * (e))) + ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))))
  319. 0319congr
  320. 0320refl
  321. 0321trans ((((d) * (e))) + ((((d) * (h))) + ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  322. 0322congr
  323. 0323refl
  324. 0324apply four_square_add_swap_right_tail
  325. 0325apply four_square_add_swap_right_tail
  326. 0326apply four_square_add_swap_right_tail
  327. 0327apply four_square_add_swap_right_tail
  328. 0328congr
  329. 0329refl
  330. 0330congr
  331. 0331refl
  332. 0332trans ((((c) * (g))) + ((((c) * (f))) + ((((d) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  333. 0333trans ((((c) * (f))) + ((((c) * (g))) + ((((d) * (e))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g)))))))))))))))
  334. 0334congr
  335. 0335refl
  336. 0336apply four_square_add_swap_right_tail
  337. 0337apply four_square_add_swap_right_tail
  338. 0338congr
  339. 0339refl
  340. 0340trans ((((d) * (e))) + ((((c) * (f))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + ((((d) * (h))) + (((c) * (g))))))))))))))
  341. 0341apply four_square_add_swap_right_tail
  342. 0342congr
  343. 0343refl
  344. 0344trans ((((d) * (h))) + ((((c) * (f))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))))))))
  345. 0345trans ((((c) * (f))) + ((((d) * (h))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))))))))
  346. 0346congr
  347. 0347refl
  348. 0348trans ((((a) * (g))) + ((((d) * (h))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g))))))))))))
  349. 0349congr
  350. 0350refl
  351. 0351trans ((((d) * (g))) + ((((d) * (h))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))))))
  352. 0352congr
  353. 0353refl
  354. 0354trans ((((b) * (h))) + ((((d) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g))))))))))
  355. 0355congr
  356. 0356refl
  357. 0357trans ((((c) * (h))) + ((((d) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))))
  358. 0358congr
  359. 0359refl
  360. 0360trans ((((d) * (f))) + ((((d) * (h))) + ((((d) * (g))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g))))))))
  361. 0361congr
  362. 0362refl
  363. 0363trans ((((d) * (g))) + ((((d) * (h))) + ((((c) * (e))) + ((((c) * (h))) + (((c) * (g)))))))
  364. 0364congr
  365. 0365refl
  366. 0366trans ((((c) * (e))) + ((((d) * (h))) + ((((c) * (h))) + (((c) * (g))))))
  367. 0367congr
  368. 0368refl
  369. 0369apply four_square_add_swap_right_tail
  370. 0370apply four_square_add_swap_right_tail
  371. 0371apply four_square_add_swap_right_tail
  372. 0372apply four_square_add_swap_right_tail
  373. 0373apply four_square_add_swap_right_tail
  374. 0374apply four_square_add_swap_right_tail
  375. 0375apply four_square_add_swap_right_tail
  376. 0376apply four_square_add_swap_right_tail
  377. 0377apply four_square_add_swap_right_tail
  378. 0378congr
  379. 0379refl
  380. 0380congr
  381. 0381refl
  382. 0382trans ((((c) * (g))) + ((((a) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))))
  383. 0383trans ((((a) * (g))) + ((((c) * (g))) + ((((d) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))))
  384. 0384congr
  385. 0385refl
  386. 0386trans ((((d) * (g))) + ((((c) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h))))))))))
  387. 0387congr
  388. 0388refl
  389. 0389trans ((((b) * (h))) + ((((c) * (g))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))
  390. 0390congr
  391. 0391refl
  392. 0392trans ((((c) * (h))) + ((((c) * (g))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h))))))))
  393. 0393congr
  394. 0394refl
  395. 0395trans ((((d) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))
  396. 0396congr
  397. 0397refl
  398. 0398trans ((((d) * (g))) + ((((c) * (g))) + ((((c) * (e))) + (((c) * (h))))))
  399. 0399congr
  400. 0400refl
  401. 0401trans ((((c) * (e))) + ((((c) * (g))) + (((c) * (h)))))
  402. 0402congr
  403. 0403refl
  404. 0404apply add_comm
  405. 0405apply four_square_add_swap_right_tail
  406. 0406apply four_square_add_swap_right_tail
  407. 0407apply four_square_add_swap_right_tail
  408. 0408apply four_square_add_swap_right_tail
  409. 0409apply four_square_add_swap_right_tail
  410. 0410apply four_square_add_swap_right_tail
  411. 0411apply four_square_add_swap_right_tail
  412. 0412congr
  413. 0413refl
  414. 0414trans ((((d) * (g))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h))))))))))
  415. 0415apply four_square_add_swap_right_tail
  416. 0416congr
  417. 0417refl
  418. 0418trans ((((c) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))
  419. 0419trans ((((a) * (g))) + ((((c) * (h))) + ((((b) * (h))) + ((((d) * (f))) + ((((d) * (g))) + ((((c) * (e))) + (((c) * (h)))))))))
  420. 0420congr
  421. 0421refl
  422. 0422apply four_square_add_swap_right_tail
  423. 0423apply four_square_add_swap_right_tail
  424. 0424congr
  425. 0425refl
  426. 0426congr
  427. 0427refl
  428. 0428congr
  429. 0429refl
  430. 0430trans ((((c) * (e))) + ((((d) * (f))) + ((((d) * (g))) + (((c) * (h))))))
  431. 0431trans ((((d) * (f))) + ((((c) * (e))) + ((((d) * (g))) + (((c) * (h))))))
  432. 0432congr
  433. 0433refl
  434. 0434apply four_square_add_swap_right_tail
  435. 0435apply four_square_add_swap_right_tail
  436. 0436congr
  437. 0437refl
  438. 0438congr
  439. 0439refl
  440. 0440trans ((((c) * (h))) + (((d) * (g))))
  441. 0441apply add_comm
  442. 0442congr
  443. 0443refl
  444. 0444refl
  445. 0445trans ((((a) * (h))) + ((((d) * (h))) + ((((b) * (g))) + ((((c) * (g))) + ((((d) * (e))) + ((((d) * (h))) + ((((c) * (f))) + ((((c) * (g))) + ((((d) * (g))) + ((((c) * (h))) + ((((a) * (g))) + ((((b) * (h))) + ((((c) * (e))) + ((((d) * (f))) + ((((c) * (h))) + (((d) * (g))))))))))))))))))
  446. 0446symm
  447. 0447congr
  448. 0448refl
  449. 0449congr
  450. 0450refl
  451. 0451congr
  452. 0452refl
  453. 0453congr
  454. 0454refl
  455. 0455congr
  456. 0456refl
  457. 0457congr
  458. 0458refl
  459. 0459congr
  460. 0460refl
  461. 0461congr
  462. 0462refl
  463. 0463congr
  464. 0464refl
  465. 0465congr
  466. 0466refl
  467. 0467congr
  468. 0468refl
  469. 0469congr
  470. 0470refl
  471. 0471congr
  472. 0472refl
  473. 0473congr
  474. 0474refl
  475. 0475congr
  476. 0476refl
  477. 0477refl
  478. 0478symm
  479. 0479simp [add_mul, mul_add, mul_assoc, add_assoc]