The dot: commutators and the Jacobi identity in the clifford package

set.seed(0)
knitr::opts_chunk$set(echo = TRUE)
library("clifford")
knitr::include_graphics(system.file("help/figures/clifford.png", package = "clifford"))

To cite the freealg package in publications, please use @hankin2022_clifford. This short document introduces the dot object and shows how it can be used to work with commutators and verify the Jacobi identity. In the clifford package, we define $\left[A,B\right] := (AB-BA)/2$. The factor of $\frac{1}{2}$ is to consistentify the Lie bracket with the cross product $A\times B$. The prototypical dot.Rmd is that of the freealg package [@hankin2022_freealg]. The dot object is a (trivial) S4 object of class dot:

`.` <- new("dot")

The point of the dot (!) is that it allows one to calculate the Lie bracket $[x,y]=(xy-yx)/2$ using R idiom .[x,y] in the clifford package. Thus:

(x <- 1 + 3*e(2))
(y <- 5*e(3) - 7*e(1:3)) 
.[x,y]

We see that these two clifford objects do not commute. It is possible to apply the dot construction .[x,y] to more complicated examples. Here I show that the Lie bracket is nonassociative:

z <- 3 - e(1:4)
.[x,.[y,z]]
.[.[x,y],z]
.[x,.[y,z]] == .[.[x,y],z]

However, it does satisfy the Jacobi identity $\left[x,\left[y,z\right]\right]+\left[y,\left[z,x\right]\right]+ \left[z,\left[x,y\right]\right]=0$:

.[x,.[y,z]] + .[y,.[z,x]] + .[z,.[x,y]]

Bivectors {-}

It is an interesting, useful, and nontrivial fact that the commutator of two bivectors is a bivector:

(a <- rcliff(d=9,g=2,include.fewer=FALSE))
(b <- rcliff(d=9,g=2,include.fewer=FALSE))
.[a,b]
grades(.[a,b])

Package dataset {-}

Following lines create dot.rda, residing in the data/ directory of the package.

save(`.`,file="dot.rda")

References



Try the clifford package in your browser

Any scripts or data that you put into this service are public.

clifford documentation built on June 8, 2025, 10:56 a.m.