This stuff really isn't that hard once it is described well (which doesn't need to involve any simplification). I can't wait to see what happens to the programming community once these notions are embraced with the love and respect that it deserves. If anything is going to make a big dent in the field, on a 5-10 year horizon, it'll be this. What we need to do is not to think of it (modern concepts in pure mathematics, especially from algebra) as something separate from programming, but to allow it to mix and skew the fundamental language that we use to reason about coding.
I’ve been looking into this stuff as of late (I bought like 400 bucks worth of books on it). I always kinda liked math but always felt like some parts don’t make any fucking sense (cross product only in 3d? Nice algebra bro). Also wtf are complex numbers really about? Geometric algebra resolves all this and it has insane applications esp for any space related reasoning. Space time algebra is very much related and it’s also balls to the wall insanity.<p>Maxwells four equations reduce to a single equation, a simple fraction. It’s beyond me we aren’t going hard on this.
For a gentle appetiser, see Spivak's Calculus on Manifolds. It introduces exterior algebra as a means to and end in doing computations on (embedded) manifolds. At first, the definitions seem opaque and the formalism clunky. At the end, Spivak recovers Stokes' theorem as a computation. This was a breath of fresh air for me after I took a warped version of Calc III.
Doesn't the example show that<p><pre><code> (ii): e1□e2 = -e2□e1
</code></pre>
and<p><pre><code> (iii): (e1□e2)□e3 = e1□(e2□e3)
</code></pre>
contradict each other?
In the end we end up with<p><pre><code> (e1□e3)□e5 = e5□(e1□e3)
</code></pre>
which seems to go against (ii)