| Step | Hyp | Ref | Expression | 
|---|
        
          | 1 |  | eqtr | a1 * b1 + c1 * d1 + (a2 * d2 + b2 * c2) = a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) ->
  a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) ->
  a1 * b1 + c1 * d1 + (a2 * d2 + b2 * c2) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 2 |  | add4 | a1 * b1 + c1 * d1 + (a2 * d2 + b2 * c2) = a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) | 
        
          | 3 | 1, 2 | ax_mp | a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) ->
  a1 * b1 + c1 * d1 + (a2 * d2 + b2 * c2) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 4 |  | eqtr | a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) = a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) ->
  a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) ->
  a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 5 |  | addcan2 | b1 * c2 + (a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) <->
  a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) = a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) | 
        
          | 6 |  | eqtr3 | b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = b1 * c2 + (a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2)) ->
  b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  b1 * c2 + (a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 7 |  | addass | b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = b1 * c2 + (a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2)) | 
        
          | 8 | 6, 7 | ax_mp | b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  b1 * c2 + (a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 9 |  | eqtr | b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) ->
  a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 10 |  | addeq1 | b1 * c2 + (a1 * b1 + a2 * d2) = a2 * b2 + c1 * b1 + a2 * d1 ->
  b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 11 |  | eqtr | b1 * c2 + (a1 * b1 + a2 * d2) = a1 * b1 + a2 * d2 + b1 * c2 ->
  a1 * b1 + a2 * d2 + b1 * c2 = a2 * b2 + c1 * b1 + a2 * d1 ->
  b1 * c2 + (a1 * b1 + a2 * d2) = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 12 |  | addcom | b1 * c2 + (a1 * b1 + a2 * d2) = a1 * b1 + a2 * d2 + b1 * c2 | 
        
          | 13 | 11, 12 | ax_mp | a1 * b1 + a2 * d2 + b1 * c2 = a2 * b2 + c1 * b1 + a2 * d1 -> b1 * c2 + (a1 * b1 + a2 * d2) = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 14 |  | eqtr | a1 * b1 + a2 * d2 + b1 * c2 = a1 * b1 + b1 * c2 + a2 * d2 ->
  a1 * b1 + b1 * c2 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 ->
  a1 * b1 + a2 * d2 + b1 * c2 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 15 |  | addrass | a1 * b1 + a2 * d2 + b1 * c2 = a1 * b1 + b1 * c2 + a2 * d2 | 
        
          | 16 | 14, 15 | ax_mp | a1 * b1 + b1 * c2 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 -> a1 * b1 + a2 * d2 + b1 * c2 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 17 |  | eqtr | a1 * b1 + b1 * c2 + a2 * d2 = a2 * b1 + c1 * b1 + a2 * d2 ->
  a2 * b1 + c1 * b1 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 ->
  a1 * b1 + b1 * c2 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 18 |  | addeq1 | a1 * b1 + b1 * c2 = a2 * b1 + c1 * b1 -> a1 * b1 + b1 * c2 + a2 * d2 = a2 * b1 + c1 * b1 + a2 * d2 | 
        
          | 19 |  | eqtr | a1 * b1 + b1 * c2 = a1 * b1 + c2 * b1 -> a1 * b1 + c2 * b1 = a2 * b1 + c1 * b1 -> a1 * b1 + b1 * c2 = a2 * b1 + c1 * b1 | 
        
          | 20 |  | addeq2 | b1 * c2 = c2 * b1 -> a1 * b1 + b1 * c2 = a1 * b1 + c2 * b1 | 
        
          | 21 |  | mulcom | b1 * c2 = c2 * b1 | 
        
          | 22 | 20, 21 | ax_mp | a1 * b1 + b1 * c2 = a1 * b1 + c2 * b1 | 
        
          | 23 | 19, 22 | ax_mp | a1 * b1 + c2 * b1 = a2 * b1 + c1 * b1 -> a1 * b1 + b1 * c2 = a2 * b1 + c1 * b1 | 
        
          | 24 |  | eqtr3 | (a1 + c2) * b1 = a1 * b1 + c2 * b1 -> (a1 + c2) * b1 = a2 * b1 + c1 * b1 -> a1 * b1 + c2 * b1 = a2 * b1 + c1 * b1 | 
        
          | 25 |  | addmul | (a1 + c2) * b1 = a1 * b1 + c2 * b1 | 
        
          | 26 | 24, 25 | ax_mp | (a1 + c2) * b1 = a2 * b1 + c1 * b1 -> a1 * b1 + c2 * b1 = a2 * b1 + c1 * b1 | 
        
          | 27 |  | eqtr | (a1 + c2) * b1 = (a2 + c1) * b1 -> (a2 + c1) * b1 = a2 * b1 + c1 * b1 -> (a1 + c2) * b1 = a2 * b1 + c1 * b1 | 
        
          | 28 |  | muleq1 | a1 + c2 = a2 + c1 -> (a1 + c2) * b1 = (a2 + c1) * b1 | 
        
          | 29 |  | hyp h1 | a1 + c2 = a2 + c1 | 
        
          | 30 | 28, 29 | ax_mp | (a1 + c2) * b1 = (a2 + c1) * b1 | 
        
          | 31 | 27, 30 | ax_mp | (a2 + c1) * b1 = a2 * b1 + c1 * b1 -> (a1 + c2) * b1 = a2 * b1 + c1 * b1 | 
        
          | 32 |  | addmul | (a2 + c1) * b1 = a2 * b1 + c1 * b1 | 
        
          | 33 | 31, 32 | ax_mp | (a1 + c2) * b1 = a2 * b1 + c1 * b1 | 
        
          | 34 | 26, 33 | ax_mp | a1 * b1 + c2 * b1 = a2 * b1 + c1 * b1 | 
        
          | 35 | 23, 34 | ax_mp | a1 * b1 + b1 * c2 = a2 * b1 + c1 * b1 | 
        
          | 36 | 18, 35 | ax_mp | a1 * b1 + b1 * c2 + a2 * d2 = a2 * b1 + c1 * b1 + a2 * d2 | 
        
          | 37 | 17, 36 | ax_mp | a2 * b1 + c1 * b1 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 -> a1 * b1 + b1 * c2 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 38 |  | eqtr | a2 * b1 + c1 * b1 + a2 * d2 = a2 * b1 + a2 * d2 + c1 * b1 ->
  a2 * b1 + a2 * d2 + c1 * b1 = a2 * b2 + c1 * b1 + a2 * d1 ->
  a2 * b1 + c1 * b1 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 39 |  | addrass | a2 * b1 + c1 * b1 + a2 * d2 = a2 * b1 + a2 * d2 + c1 * b1 | 
        
          | 40 | 38, 39 | ax_mp | a2 * b1 + a2 * d2 + c1 * b1 = a2 * b2 + c1 * b1 + a2 * d1 -> a2 * b1 + c1 * b1 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 41 |  | eqtr | a2 * b1 + a2 * d2 + c1 * b1 = a2 * b2 + a2 * d1 + c1 * b1 ->
  a2 * b2 + a2 * d1 + c1 * b1 = a2 * b2 + c1 * b1 + a2 * d1 ->
  a2 * b1 + a2 * d2 + c1 * b1 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 42 |  | addeq1 | a2 * b1 + a2 * d2 = a2 * b2 + a2 * d1 -> a2 * b1 + a2 * d2 + c1 * b1 = a2 * b2 + a2 * d1 + c1 * b1 | 
        
          | 43 |  | eqtr3 | a2 * (b1 + d2) = a2 * b1 + a2 * d2 -> a2 * (b1 + d2) = a2 * b2 + a2 * d1 -> a2 * b1 + a2 * d2 = a2 * b2 + a2 * d1 | 
        
          | 44 |  | muladd | a2 * (b1 + d2) = a2 * b1 + a2 * d2 | 
        
          | 45 | 43, 44 | ax_mp | a2 * (b1 + d2) = a2 * b2 + a2 * d1 -> a2 * b1 + a2 * d2 = a2 * b2 + a2 * d1 | 
        
          | 46 |  | eqtr | a2 * (b1 + d2) = a2 * (b2 + d1) -> a2 * (b2 + d1) = a2 * b2 + a2 * d1 -> a2 * (b1 + d2) = a2 * b2 + a2 * d1 | 
        
          | 47 |  | muleq2 | b1 + d2 = b2 + d1 -> a2 * (b1 + d2) = a2 * (b2 + d1) | 
        
          | 48 |  | hyp h2 | b1 + d2 = b2 + d1 | 
        
          | 49 | 47, 48 | ax_mp | a2 * (b1 + d2) = a2 * (b2 + d1) | 
        
          | 50 | 46, 49 | ax_mp | a2 * (b2 + d1) = a2 * b2 + a2 * d1 -> a2 * (b1 + d2) = a2 * b2 + a2 * d1 | 
        
          | 51 |  | muladd | a2 * (b2 + d1) = a2 * b2 + a2 * d1 | 
        
          | 52 | 50, 51 | ax_mp | a2 * (b1 + d2) = a2 * b2 + a2 * d1 | 
        
          | 53 | 45, 52 | ax_mp | a2 * b1 + a2 * d2 = a2 * b2 + a2 * d1 | 
        
          | 54 | 42, 53 | ax_mp | a2 * b1 + a2 * d2 + c1 * b1 = a2 * b2 + a2 * d1 + c1 * b1 | 
        
          | 55 | 41, 54 | ax_mp | a2 * b2 + a2 * d1 + c1 * b1 = a2 * b2 + c1 * b1 + a2 * d1 -> a2 * b1 + a2 * d2 + c1 * b1 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 56 |  | addrass | a2 * b2 + a2 * d1 + c1 * b1 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 57 | 55, 56 | ax_mp | a2 * b1 + a2 * d2 + c1 * b1 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 58 | 40, 57 | ax_mp | a2 * b1 + c1 * b1 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 59 | 37, 58 | ax_mp | a1 * b1 + b1 * c2 + a2 * d2 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 60 | 16, 59 | ax_mp | a1 * b1 + a2 * d2 + b1 * c2 = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 61 | 13, 60 | ax_mp | b1 * c2 + (a1 * b1 + a2 * d2) = a2 * b2 + c1 * b1 + a2 * d1 | 
        
          | 62 | 10, 61 | ax_mp | b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 63 | 9, 62 | ax_mp | a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 64 |  | eqtr | a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) = a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) ->
  a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 65 |  | addass | a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) = a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) | 
        
          | 66 | 64, 65 | ax_mp | a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 67 |  | eqtr3 | a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) = a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) ->
  a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 68 |  | addeq2 | b1 * c2 + (c2 * d2 + a1 * d1) = a2 * d1 + (c1 * d1 + b2 * c2) ->
  a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) = a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) | 
        
          | 69 |  | eqtr3 | b1 * c2 + c2 * d2 + a1 * d1 = b1 * c2 + (c2 * d2 + a1 * d1) ->
  b1 * c2 + c2 * d2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) ->
  b1 * c2 + (c2 * d2 + a1 * d1) = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 70 |  | addass | b1 * c2 + c2 * d2 + a1 * d1 = b1 * c2 + (c2 * d2 + a1 * d1) | 
        
          | 71 | 69, 70 | ax_mp | b1 * c2 + c2 * d2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) -> b1 * c2 + (c2 * d2 + a1 * d1) = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 72 |  | eqtr | b1 * c2 + c2 * d2 + a1 * d1 = b2 * c2 + d1 * c2 + a1 * d1 ->
  b2 * c2 + d1 * c2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) ->
  b1 * c2 + c2 * d2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 73 |  | addeq1 | b1 * c2 + c2 * d2 = b2 * c2 + d1 * c2 -> b1 * c2 + c2 * d2 + a1 * d1 = b2 * c2 + d1 * c2 + a1 * d1 | 
        
          | 74 |  | eqtr | b1 * c2 + c2 * d2 = b1 * c2 + d2 * c2 -> b1 * c2 + d2 * c2 = b2 * c2 + d1 * c2 -> b1 * c2 + c2 * d2 = b2 * c2 + d1 * c2 | 
        
          | 75 |  | addeq2 | c2 * d2 = d2 * c2 -> b1 * c2 + c2 * d2 = b1 * c2 + d2 * c2 | 
        
          | 76 |  | mulcom | c2 * d2 = d2 * c2 | 
        
          | 77 | 75, 76 | ax_mp | b1 * c2 + c2 * d2 = b1 * c2 + d2 * c2 | 
        
          | 78 | 74, 77 | ax_mp | b1 * c2 + d2 * c2 = b2 * c2 + d1 * c2 -> b1 * c2 + c2 * d2 = b2 * c2 + d1 * c2 | 
        
          | 79 |  | eqtr3 | (b1 + d2) * c2 = b1 * c2 + d2 * c2 -> (b1 + d2) * c2 = b2 * c2 + d1 * c2 -> b1 * c2 + d2 * c2 = b2 * c2 + d1 * c2 | 
        
          | 80 |  | addmul | (b1 + d2) * c2 = b1 * c2 + d2 * c2 | 
        
          | 81 | 79, 80 | ax_mp | (b1 + d2) * c2 = b2 * c2 + d1 * c2 -> b1 * c2 + d2 * c2 = b2 * c2 + d1 * c2 | 
        
          | 82 |  | eqtr | (b1 + d2) * c2 = (b2 + d1) * c2 -> (b2 + d1) * c2 = b2 * c2 + d1 * c2 -> (b1 + d2) * c2 = b2 * c2 + d1 * c2 | 
        
          | 83 |  | muleq1 | b1 + d2 = b2 + d1 -> (b1 + d2) * c2 = (b2 + d1) * c2 | 
        
          | 84 | 83, 48 | ax_mp | (b1 + d2) * c2 = (b2 + d1) * c2 | 
        
          | 85 | 82, 84 | ax_mp | (b2 + d1) * c2 = b2 * c2 + d1 * c2 -> (b1 + d2) * c2 = b2 * c2 + d1 * c2 | 
        
          | 86 |  | addmul | (b2 + d1) * c2 = b2 * c2 + d1 * c2 | 
        
          | 87 | 85, 86 | ax_mp | (b1 + d2) * c2 = b2 * c2 + d1 * c2 | 
        
          | 88 | 81, 87 | ax_mp | b1 * c2 + d2 * c2 = b2 * c2 + d1 * c2 | 
        
          | 89 | 78, 88 | ax_mp | b1 * c2 + c2 * d2 = b2 * c2 + d1 * c2 | 
        
          | 90 | 73, 89 | ax_mp | b1 * c2 + c2 * d2 + a1 * d1 = b2 * c2 + d1 * c2 + a1 * d1 | 
        
          | 91 | 72, 90 | ax_mp | b2 * c2 + d1 * c2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) -> b1 * c2 + c2 * d2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 92 |  | eqtr | b2 * c2 + d1 * c2 + a1 * d1 = b2 * c2 + (d1 * c2 + a1 * d1) ->
  b2 * c2 + (d1 * c2 + a1 * d1) = a2 * d1 + (c1 * d1 + b2 * c2) ->
  b2 * c2 + d1 * c2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 93 |  | addass | b2 * c2 + d1 * c2 + a1 * d1 = b2 * c2 + (d1 * c2 + a1 * d1) | 
        
          | 94 | 92, 93 | ax_mp | b2 * c2 + (d1 * c2 + a1 * d1) = a2 * d1 + (c1 * d1 + b2 * c2) -> b2 * c2 + d1 * c2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 95 |  | eqtr4 | b2 * c2 + (d1 * c2 + a1 * d1) = b2 * c2 + (a2 * d1 + c1 * d1) ->
  a2 * d1 + (c1 * d1 + b2 * c2) = b2 * c2 + (a2 * d1 + c1 * d1) ->
  b2 * c2 + (d1 * c2 + a1 * d1) = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 96 |  | addeq2 | d1 * c2 + a1 * d1 = a2 * d1 + c1 * d1 -> b2 * c2 + (d1 * c2 + a1 * d1) = b2 * c2 + (a2 * d1 + c1 * d1) | 
        
          | 97 |  | eqtr | d1 * c2 + a1 * d1 = c2 * d1 + a1 * d1 -> c2 * d1 + a1 * d1 = a2 * d1 + c1 * d1 -> d1 * c2 + a1 * d1 = a2 * d1 + c1 * d1 | 
        
          | 98 |  | addeq1 | d1 * c2 = c2 * d1 -> d1 * c2 + a1 * d1 = c2 * d1 + a1 * d1 | 
        
          | 99 |  | mulcom | d1 * c2 = c2 * d1 | 
        
          | 100 | 98, 99 | ax_mp | d1 * c2 + a1 * d1 = c2 * d1 + a1 * d1 | 
        
          | 101 | 97, 100 | ax_mp | c2 * d1 + a1 * d1 = a2 * d1 + c1 * d1 -> d1 * c2 + a1 * d1 = a2 * d1 + c1 * d1 | 
        
          | 102 |  | eqtr | c2 * d1 + a1 * d1 = a1 * d1 + c2 * d1 -> a1 * d1 + c2 * d1 = a2 * d1 + c1 * d1 -> c2 * d1 + a1 * d1 = a2 * d1 + c1 * d1 | 
        
          | 103 |  | addcom | c2 * d1 + a1 * d1 = a1 * d1 + c2 * d1 | 
        
          | 104 | 102, 103 | ax_mp | a1 * d1 + c2 * d1 = a2 * d1 + c1 * d1 -> c2 * d1 + a1 * d1 = a2 * d1 + c1 * d1 | 
        
          | 105 |  | eqtr3 | (a1 + c2) * d1 = a1 * d1 + c2 * d1 -> (a1 + c2) * d1 = a2 * d1 + c1 * d1 -> a1 * d1 + c2 * d1 = a2 * d1 + c1 * d1 | 
        
          | 106 |  | addmul | (a1 + c2) * d1 = a1 * d1 + c2 * d1 | 
        
          | 107 | 105, 106 | ax_mp | (a1 + c2) * d1 = a2 * d1 + c1 * d1 -> a1 * d1 + c2 * d1 = a2 * d1 + c1 * d1 | 
        
          | 108 |  | eqtr | (a1 + c2) * d1 = (a2 + c1) * d1 -> (a2 + c1) * d1 = a2 * d1 + c1 * d1 -> (a1 + c2) * d1 = a2 * d1 + c1 * d1 | 
        
          | 109 |  | muleq1 | a1 + c2 = a2 + c1 -> (a1 + c2) * d1 = (a2 + c1) * d1 | 
        
          | 110 | 109, 29 | ax_mp | (a1 + c2) * d1 = (a2 + c1) * d1 | 
        
          | 111 | 108, 110 | ax_mp | (a2 + c1) * d1 = a2 * d1 + c1 * d1 -> (a1 + c2) * d1 = a2 * d1 + c1 * d1 | 
        
          | 112 |  | addmul | (a2 + c1) * d1 = a2 * d1 + c1 * d1 | 
        
          | 113 | 111, 112 | ax_mp | (a1 + c2) * d1 = a2 * d1 + c1 * d1 | 
        
          | 114 | 107, 113 | ax_mp | a1 * d1 + c2 * d1 = a2 * d1 + c1 * d1 | 
        
          | 115 | 104, 114 | ax_mp | c2 * d1 + a1 * d1 = a2 * d1 + c1 * d1 | 
        
          | 116 | 101, 115 | ax_mp | d1 * c2 + a1 * d1 = a2 * d1 + c1 * d1 | 
        
          | 117 | 96, 116 | ax_mp | b2 * c2 + (d1 * c2 + a1 * d1) = b2 * c2 + (a2 * d1 + c1 * d1) | 
        
          | 118 | 95, 117 | ax_mp | a2 * d1 + (c1 * d1 + b2 * c2) = b2 * c2 + (a2 * d1 + c1 * d1) -> b2 * c2 + (d1 * c2 + a1 * d1) = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 119 |  | eqtr3 | a2 * d1 + c1 * d1 + b2 * c2 = a2 * d1 + (c1 * d1 + b2 * c2) ->
  a2 * d1 + c1 * d1 + b2 * c2 = b2 * c2 + (a2 * d1 + c1 * d1) ->
  a2 * d1 + (c1 * d1 + b2 * c2) = b2 * c2 + (a2 * d1 + c1 * d1) | 
        
          | 120 |  | addass | a2 * d1 + c1 * d1 + b2 * c2 = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 121 | 119, 120 | ax_mp | a2 * d1 + c1 * d1 + b2 * c2 = b2 * c2 + (a2 * d1 + c1 * d1) -> a2 * d1 + (c1 * d1 + b2 * c2) = b2 * c2 + (a2 * d1 + c1 * d1) | 
        
          | 122 |  | addcom | a2 * d1 + c1 * d1 + b2 * c2 = b2 * c2 + (a2 * d1 + c1 * d1) | 
        
          | 123 | 121, 122 | ax_mp | a2 * d1 + (c1 * d1 + b2 * c2) = b2 * c2 + (a2 * d1 + c1 * d1) | 
        
          | 124 | 118, 123 | ax_mp | b2 * c2 + (d1 * c2 + a1 * d1) = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 125 | 94, 124 | ax_mp | b2 * c2 + d1 * c2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 126 | 91, 125 | ax_mp | b1 * c2 + c2 * d2 + a1 * d1 = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 127 | 71, 126 | ax_mp | b1 * c2 + (c2 * d2 + a1 * d1) = a2 * d1 + (c1 * d1 + b2 * c2) | 
        
          | 128 | 68, 127 | ax_mp | a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) = a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) | 
        
          | 129 | 67, 128 | ax_mp | a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 130 |  | eqtr3 | a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) ->
  a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 131 |  | addass | a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) | 
        
          | 132 | 130, 131 | ax_mp | a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 133 |  | eqtr | a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1) + (c2 * d2 + a1 * d1) ->
  b1 * c2 + (a2 * b2 + c1 * b1) + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 134 |  | addeq1 | a2 * b2 + c1 * b1 + b1 * c2 = b1 * c2 + (a2 * b2 + c1 * b1) ->
  a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1) + (c2 * d2 + a1 * d1) | 
        
          | 135 |  | addcom | a2 * b2 + c1 * b1 + b1 * c2 = b1 * c2 + (a2 * b2 + c1 * b1) | 
        
          | 136 | 134, 135 | ax_mp | a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1) + (c2 * d2 + a1 * d1) | 
        
          | 137 | 133, 136 | ax_mp | b1 * c2 + (a2 * b2 + c1 * b1) + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) ->
  a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 138 |  | addass | b1 * c2 + (a2 * b2 + c1 * b1) + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 139 | 137, 138 | ax_mp | a2 * b2 + c1 * b1 + b1 * c2 + (c2 * d2 + a1 * d1) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 140 | 132, 139 | ax_mp | a2 * b2 + c1 * b1 + (b1 * c2 + (c2 * d2 + a1 * d1)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 141 | 129, 140 | ax_mp | a2 * b2 + c1 * b1 + (a2 * d1 + (c1 * d1 + b2 * c2)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 142 | 66, 141 | ax_mp | a2 * b2 + c1 * b1 + a2 * d1 + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 143 | 63, 142 | ax_mp | b1 * c2 + (a1 * b1 + a2 * d2) + (c1 * d1 + b2 * c2) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 144 | 8, 143 | ax_mp | b1 * c2 + (a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2)) = b1 * c2 + (a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1)) | 
        
          | 145 | 5, 144 | mpbi | a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) = a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) | 
        
          | 146 | 4, 145 | ax_mp | a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) ->
  a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 147 |  | eqtr | a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) = a2 * b2 + c2 * d2 + (c1 * b1 + a1 * d1) ->
  a2 * b2 + c2 * d2 + (c1 * b1 + a1 * d1) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) ->
  a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 148 |  | add4 | a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) = a2 * b2 + c2 * d2 + (c1 * b1 + a1 * d1) | 
        
          | 149 | 147, 148 | ax_mp | a2 * b2 + c2 * d2 + (c1 * b1 + a1 * d1) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) ->
  a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 150 |  | addeq2 | c1 * b1 + a1 * d1 = a1 * d1 + c1 * b1 -> a2 * b2 + c2 * d2 + (c1 * b1 + a1 * d1) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 151 |  | addcom | c1 * b1 + a1 * d1 = a1 * d1 + c1 * b1 | 
        
          | 152 | 150, 151 | ax_mp | a2 * b2 + c2 * d2 + (c1 * b1 + a1 * d1) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 153 | 149, 152 | ax_mp | a2 * b2 + c1 * b1 + (c2 * d2 + a1 * d1) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 154 | 146, 153 | ax_mp | a1 * b1 + a2 * d2 + (c1 * d1 + b2 * c2) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) | 
        
          | 155 | 3, 154 | ax_mp | a1 * b1 + c1 * d1 + (a2 * d2 + b2 * c2) = a2 * b2 + c2 * d2 + (a1 * d1 + c1 * b1) |