Alakazam is a Julia-based solution to performing symbolic algebraic manipulations of tensors and tensor equations. It was designed primarily for studying field theories in physics. In particular, it includes the ability to raise and lower tensor indices with a metric, simplify expressions using symmetries of tensors, and perform covariant differentiation.

For those working on supersymmetric theories, Alakazam can handle covariant derivatives with multiple indices, perform superspace integration, and more.

Getting started

To get started import the package after installing by running

using Alakazam

The simplest thing you can do is create a tensor,


This creates a tensor named T. This however, isn't particularly useful. To create a tensor with indices, we can firstly create an IndexSet,

spacetime_indices = IndexSet("spacetime", 4,lower)

Then, we can create some index objects

μ = Index("μ", spacetime_indices)
ν = Index("ν", spacetime_indices)
ρ = Index("ρ", spacetime_indices)
τ = Index("τ", spacetime_indices)

Now we can create more interesting tensor objects,

T = Tensor("T", [μ => upper,  ν=> lower, τ=>upper])

We can now begin to perform some basic operations, for example raising and lowering with a metric,

η_νρ = Metric([ν=>upper, ρ=>upper])
expression = η_νρ*T

More important functionality includes taking covariant derivatves, pattern matching and replacements in expressions, and simplifications using symmetries of tensors. There is also inbuilt support for supersymmetric/fermionic objects, and some aspects of superspace.

This section will be updated when an upcoming paper on this package is published.

For more info, see demo.jl


If you'd like to support me and future development of this project, please donate here.


Alakazam is available under the conditions of the GNU General Public License. If you use this software in part of your work, please cite: (publication coming soon)


If you'd like to contribute, or have any questions in general, please get in touch at :)

Authors and acknowledgment

Written by me. Credits to Kasper Peeters, author of Cadabra, whose project inspired me to create Alakazam.