Skip to content

Instantly share code, notes, and snippets.

@hcschuetz
Last active October 14, 2024 19:40
Show Gist options
  • Save hcschuetz/c6e01981d655bc99859e73ef58cd08c3 to your computer and use it in GitHub Desktop.
Save hcschuetz/c6e01981d655bc99859e73ef58cd08c3 to your computer and use it in GitHub Desktop.
Deriving Conformal Geometric Algebra from the Norm Condition

Deriving Conformal Geometric Algebra from the Norm Condition

Given a "base space" V$=\mathbb{R}^n$ with a Euclidean dot product ., we want to find

  • a "superspace" V' ⊃ V,
  • a mapping _' : V => V', and
  • a (commutative) dot product .' in the superspace V'

such that a' .' b' = (a - b)^2.

Ansatz

Define p' := p + p" with some auxiliary operator _" that still needs to be defined.

Now we try to match the LHS and the RHS of our requirement a' .' b' = (a - b)^2:

LHS
= a' .' b'
= (a + a") .' (b + b")
= a .' b + a .' b" + a" .' b + a" .' b"

and

RHS
= (a - b)^2
= a^2 - 2 (a . b) + b^2

We can match the LHS and the RHS if the following equalities hold:

∀ a, b ∈ V: a  .' b  = -2 (a . b)         (dot-prime-base-base)
∀ a, b ∈ V: a  .' b" = 0                  (dot-prime-base-aux)
∀ a, b ∈ V: a" .' b" = a^2 + b^2          (dot-prime-aux-aux)

Notes:

  • Condition (dot-prime-base-base) defines a negative dot product for base-space vectors a and b used directly in the superspace. But the dot product of of the mapped vectors a' and b' is still non-negative and actually positive if a != b.
  • Condition (dot-prime-base-aux) also implies a" .' b = 0 by commutativity of .'.
  • Condition (dot-prime-base-aux) says that the auxiliary vectors _" are orthogonal to vectors from the base space V.

[TODO: Motivate this.] It turns out that the conditions above can be fulfilled if we define the _" operator as

p" := p^2 e_aux1 + e_aux2

using two additional dimensions with basis vectors e_aux1 and e_aux2 and the following metrics:

∀ a ∈ V: a .' e_aux1 = 0                  (dot-prime-base-aux1)
∀ a ∈ V: a .' e_aux2 = 0                  (dot-prime-base-aux2)
e_aux1 .' e_aux1 = 0                       (dot-prime-aux1-aux1)
e_aux1 .' e_aux2 = 1                       (dot-prime-aux1-aux2)
e_aux2 .' e_aux2 = 0                       (dot-prime-aux2-aux2)

Notes:

  • Conditions (dot-prime-base-aux1) and (dot-prime-base-aux2) ensure that (dot-prime-base-aux) holds, that is, that the auxiliary dimensions are orthogonal to the basis space.

  • Conditions (dot-prime-aux1-aux1), (dot-prime-aux1-aux2), and (dot-prime-aux2-aux2) give the metrics within the auxiliary dimensions. They ensure that (dot-prime-aux-aux) holds:

    a" .' b"
    =
    (a^2 e_aux1 + e_aux2) .' (b^2 e_aux1 + e_aux2)
    =
      a^2 b^2 (e_aux1 .' e_aux1)
    + a^2 (e_aux1 .' e_aux2)
    + b^2 (e_aux2 .' e_aux1)
    + e_aux2 .' e_aux2
    =
    + a^2
    + b^2
    

Summary

Overall we have

p'
= p + p"
= p + p^2 e_aux1 + e_aux2

and thus

a' .' b'
=
(a + a^2 e_aux1 + e_aux2) .' (b + b^2 e_aux1 + e_aux2)
=
  a .' b
+ b^2 (a .' e_aux1)            // 0
+ (a . e_aux2)                 // 0
+ a^2 (e_aux1 .' b)            // 0
+ a^2 b^2 (e_aux1 .' e_aux1)   // 0
+ a^2 (e_aux1 .' e_aux2)       // 1
+ (e_aux2 .' b)                // 0
+ b^2 (e_aux2 .' e_aux1)       // 1
+ (e_aux2 .' e_aux2)           // 0

The terms marked with // 0 have metric factors of 0. In the terms marked with // 1 the metric factors e_aux1 . e_aux2 and e_aux2 . e_aux1 are 1. So we can continue the equation chain by simplifying significantly:

=
  a .' b
+ a^2 (e_aux1 .' e_aux2)
+ b^2 (e_aux2 .' e_aux1)
=
-2 (a . b) + a^2 + b^2
= (a - b)^2

Refinement

It is a bit cumbersome and error-prone to work with two incompatible dot products . and .' on members of V. We prefer a dot product in V' that is compatible with . for vectors in V, which also allows us to use the same symbol . for both dot products.

For this we have to relax the initial condition a' .' b' = (a - b)^2 and only require that a' . b' = k (a - b)^2 for some scalar constant k.

Adapting the derivation above (but keeping the ansatz p' = p + p") we get:

LHS
=
a' . b'
=
(a + a") . (b + b")
=
a . b + a . b" + a" . b + a" . b"

and

RHS
=
k (a - b)^2
=
k a^2 - 2 k (a . b) + k b^2

To match the (a . b) term we apparently need to set k := -1/2. So we continue

=
a . b - 1/2 a^2 - 1/2 b^2

Again we require the auxiliary dimension(s) to be orthogonal to the base space, that is, a . b" and a" . b are 0. To match the LHS and the RHS we now require

a" . b" = -(a^2 + b^2)/2

This can be achieved by defining _" by p" := 1/2 p^2 e_aux1 + e_aux2 with metric definitions

∀ a ∈ V: a . e_aux1 = 0                   (dot-prime-base-aux1)
∀ a ∈ V: a . e_aux2 = 0                   (dot-prime-base-aux2)
e_aux1 . e_aux1 = 0                        (dot-prime-aux1-aux1)
e_aux1 . e_aux2 = -1                       (dot-prime-aux1-aux2)
e_aux2 . e_aux2 = 0                        (dot-prime-aux2-aux2)

Overall we have

p'
= p + p"
= p + 1/2 p^2 e_aux1 + e_aux2

and thus

a' . b'
=
(a - 1/2 a^2 e_aux1 + e_aux2) . (b - 1/2 b^2 e_aux1 + e_aux2)
=
  a . b
+ 1/2 b^2 (a . e_aux1)            // 0
+ (a . e_aux2)                    // 0
+ 1/2 a^2 (e_aux1 . b)            // 0
+ 1/4 a^2 b^2 (e_aux1 . e_aux1)   // 0
+ 1/2 a^2 (e_aux1 . e_aux2)       // -1
+ (e_aux2 . b)                    // 0
+ 1/2 b^2 (e_aux2 . e_aux1)       // -1
+ (e_aux2 . e_aux2)               // 0

Again the metric factors are given as comments and we continue the equation chain simplifying:

=
a . b - 1/2 a^2 - b^2
=
-1/2 (a^2 - 2 (a . b) + b^2)
=
-1/2 (a - b)^2

TODO

  • Explain that e_aux1 is actually the point at infinity and that e_aux2 is the origin. (The latter is easy because 0' = e_aux2 according to our definition of the _' operator.)
  • I think we could have chosen p' := p - 1/2 p^2 e_aux1 + e_aux2 and e_aux1 . e_aux2 = e_aux2 . e_aux1 = +1. That would also fulfill our (relaxed) norm condition. (Or do I have a sign error here?)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment