Foundations of differential geometric algebra package in Wolfram language​
​by Michael Reed​
​https://crucialflow.com​
​https://github.com/chakravala

Abstract

The abbreviated foundations developed in the previous paper “Differential geometric algebra using Leibniz, Grassmann” can be used as a universal language for finite element methods based on a discrete manifold bundle, so an elaborated foundation is desired. Tools built on these foundations enable computations based on multi-linear algebra and spin groups using the geometric algebra known as Grassmann algebra or Clifford algebra. This foundation is built on a direct-sum parametric type system for tangent bundles, vector spaces, and also projective and differential geometry. Geometric algebra is a mathematical foundation for differential geometry, which, among other things can be used to simplify the Maxwell equations to a single wave equation due to the geometric product. Introduction of geometric algebra to engineering science disciplines will be easier with programmable foundations. In order to devise an expressive and performance oriented language for efficient discrete differential geometric algebra with the Grassmann elements, an efficient computer algebra representation is being programmed. With this unifying mathematical foundation, it is possible to improve efficiency of multi-disciplinary research using geometric tensor calculus by relying on universal mathematical principles. Tools built on universal differential geometric algebra provide a natural geometric language for the Helmholtz decomposition and Hodge-DeRahm co/homology.

Grassmann foundational design

Mathematical foundations and some of the nuances in the definitions specific to the Grassmann implementation are concisely described, along with the accompanying support packages that provide an extensible platform for computing with geometric algebra at high dimensions. The design is based on a tensor algebra abstract type interoperability with a tensor bundle argument parameter. Abstract vector space type operations result in an extensible differential geometric algebra of hypergraphs and multivector forms.
https://github.com/chakravala/Grassmann
In[]:=
Get["https://github.com/chakravala/Grassmann/raw/94665875ac41843f768d5876945032411ca7cef9/Grassmann.wl"]
The package is a work in progress providing the necessary tools to work with an arbitrary manifold specified by an encoding. Due to the parametric system for the generating tensor bundle, the Wolfram language can be made extensible for differential geometric algebra. This community post will get updated in the near future as Grassmann gets extended. Originally, this design was implemented in the Julia language as Grassmann.jl package. The abstract design is already fairly complete and can be tested in the Julia language. Currently, this Wolfram language implementation of Grassmann is still at its beginning. I would like to rewrite this community post in a more beginner friendly fashion, but on short notice for this project it will have to suffice to use these current notes.
Notation: the symbols
g
Λ
V
will be used to denote exterior product spaces. If the notation is unfamiliar, keep reading further, as the notation is employed before the actual definition of exterior product is introduced. When you go back, the notation will begin to make sense.
Definition (Vector space
1
Λ
V=V
is a -module instance of a field). Let
V
be a -module (abelian group with respect to +) with an element 1 ∈  such that
1V=V
by scalar multiplication
V→V
over field  satisfying
a(x+y)=ax+ay
distribution of vector addition,
(a+b)x=ax+bd
distribution of field addition,
(ab)x=a(bx)
associative compatibility.In the software package Grassmann, an underlying generating vector space is also synonymous with the term tensor bundle (an abstract type). In Grassmann, a standard vector space is initialized with Submanifold[dimension], the definition of which will be explained further below.
In[]:=
V=Submanifold[4]
Out[]=
Submanifold[4]
The FullForm is Submanifold[manifold, grade, basis, coefficient], encoded with Integer values.
In[]:=
FullForm[V]
Out[]//FullForm=
Submanifold[4,4,15,1]
The Grassmann package is intended for universal interoperability of the abstract tensor algebra type system. All tensor algebra subtypes have type parameter
V
, used to store a tensor bundle value. This means that different packages can create tensor types having a common underlying tensor bundle structure. For example, this is mainly used in Grassmann to define various sub algebra, tensor basis and mixed tensor types. The key to making the interoperability work is that each tensor algebra type shares a tensor bundle parameter, which contains all the info needed to make decisions about algebra. So other packages need only use the vector space information to generate the implementation of an a desired algebra.
Definition (Linear dependence). Let
V
be a vector space over field , then the set
{
v
i
}
i
is linearly dependent iff
n
∑
i=1
k
i
v
i
=0
for some
0≠k∈
n

.
Definition (⋀-product annihilation). For a linearly dependent set
{
v
i
}
i
⊂V
,
v
1
⋀
v
2
⋀⋯⋀
v
n
=0
. Initially, it is enough to understand that
⋀:
n
Λ
V
m
Λ
V→
n+m
Λ
V
is an operation which is zero for linearly dependent arguments. However, this idea comes from extending Grassmann's product (
v
i
⋀
v
j
=-
v
j
⋀
v
i
implies
v
i
⋀
v
i
=0=-
v
i
⋀
v
i
) to yield a tool for characterizing linear dependence. Grassmann's exterior product is an anti-symmetric tensor product
v
i
⋀
v
j
=-
v
j
⋀
v
i
implies
v
i
⋀
v
i
=0=-
v
i
⋀
v
i
, which generalizes the multilinear determinant transposition property
v
ω
1
⋀⋯⋀
v
ω
m
⋀
v
η
1
⋀⋯⋀
v
η
n
=
mn
(-1)
v
η
1
⋀⋯⋀
v
η
n
⋀
v
ω
1
⋀⋯⋀
v
ω
m
.Hence for graded elements it is possible to deduce that
ω∈
m
Λ
V,η∈
n
Λ
V:ω⋀η=
mn
(-1)
η⋀ω
. Observe that the anti-symmetric property implies that
ω⊗ω=0
, while the symmetric property neither implies nor denies such a property. Grassmann remarked in 1862 that the symmetric algebra of functions is by far more complicated than his anti-symmetric exterior algebra. The first part of the book focused on anti-symmetric exterior algebra, while the more complex symmetric function algebra of Leibniz was subject of the second multivariable part of the book. Elements
ω
k
in the space
ΛV
of anti-symmetric algebra are often studied as unit quantum state vectors in a unitary probability space, where
∑
k
ω
k
≠
⊗
k
η
k
is entanglement.
Definition (Dimension n-Submanifold in
n
Λ
V
). Hence, writing the product
v
i
⋀
v
2
⋀⋯⋀
v
n
≠0
implies a linearly independent set
n
{
v
i
}
1
⊆V
isomorphic to an n-Submanifold. With the product
0
Λ
n
Λ
(
v
1
⋀
v
2
⋀⋯⋀
v
n
)≅
it is also clear that a 1-dimensional basis subspace is induced by the construction of any n-Submanifold.
Example. Therefore,
=
0
Λ
≅
1
Λ

is a vector space or a 0-Submanifold.
Example.
n
Λ
V
is a vector space with
1
Λ
n
Λ
V=
n
Λ
V
and
0
Λ
n
Λ
V=
0
Λ
V
.
Definition (Direct sum ⊕). To consider a set of linearly independent spaces, let
π
i
:V→
V
i
be projections with vector space
V
i
⊂V
, define
V
1
⊕
V
2
⊕⋯⊕
V
n
=V⟺⋀:
*
V
1

*
V
2
⊕⋯⊕
*
V
n
→
n
Λ
*
V
, where we denote
*
V
=V\{0}
as the set
V
excluding the 0 element.
Direct sum of a full non-zero product implies an n-Submanifold.Definition. Grade-m projection is defined as
〈Λ〉
m
=
m
Λ
V
such that
ΛV=
n
⊕
m=0
〈ΛV〉
m
=
0
Λ
V⊕
1
Λ
V⊕⋯⊕
n
Λ
V
and
〈ΛV〉
m
=
n
(
m
)
⊕
m=1

​Note that dim
〈ΛV〉
m
=
n
(
m
)
and hence dim
ΛV=
n
∑
m=0
n
(
m
=
n
2
.
Example (Combinatorics of (V) and hypergraphs ⊆ (V)\{∅}). Let
v
1
,
v
2
,
v
3
∈
3

, then the power set of elements is:
(
3

)={∅,{
v
1
},{
v
2
},{
v
3
},{
v
1
,
v
2
},{
v
1
,
v
3
},{
v
2
,
v
3
},{
v
1
,
v
2
,
v
3
}}
. Form a direct sum over the elements of (V) with ⋀ to define ΛV, e.g.
Λ(
3

)=
0
Λ
(
3

)⊕
1
Λ
(
3

)⊕
2
Λ
(
3

)⊕
3
Λ
(
3

)
​ =
v⊕(
v
1
⊕
v
2
⊕
v
3
)⊕((
v
1
⋀
v
2
)⊕(
v
1
⋀
v
3
)⊕(
v
2
⋀
v
3
)⊕(
v
1
⋀
v
2
⋀
v
3
)
​Example (Case of 3rd order tangent bundle operator composition).
3
T
(
0

)=v⊕
∂
1
⊕
∂
2
⊕
∂
3
⊕(
∂
1
◦
∂
2
)⊕(
∂
1
◦
∂
3
)⊕(
∂
2
◦
∂
3
)⊕(
∂
1
◦
∂
2
◦
∂
3
)
​In order to shorten the notation, the operation symbol is left out:
{
v
1
,
v
2
,
v
3
,
v
1,2
,
v
1,3
,
v
2,3
,
v
1,2,3
},{
∂
1
,
∂
2
,
∂
3
,
∂
1,2
,
∂
1,3
,
∂
2,3
,
∂
1,2,3
}
.The elements of the basis can be generated in many ways using the Submanifold elements,
In[]:=
GeometricAlgebraBasis[Submanifold[3]]
Out[]=
{
v
​
,
v
1
,
v
2
,
v
3
,
v
1,2
,
v
1,3
,
v
2,3
,
v
1,2,3
}
It is entirely possible to assign multiple different bases with different signatures without issues.
The Grassmann SubManifold elements
v
k
∈
1
Λ
V
and
w
k
∈
1
Λ
V
are linearly independent vector and covector elements of V, while the Leibniz operator elements
∂
k
∈
1
L
V
are partial tangent derivations and
ϵ
k
∈
1
L
V
are dependent functions of the tangent manifold. An element of a mixed-symmetry tensor algebra is a multilinear mapping that is formally constructed by taking the tensor products of linear and multilinear maps,
(⊗
ω
k
)(
v
1
,...,
v
∑
k
p
k
)=
∏
k
ω
k
(
v
1
,...,
v
p
k
)
. Higher Grade elements correspond to Submanifold subspaces, while higher order function elements become homogenous polynomials and Taylor series.
Definition (Mixed-symmetry basis). Combining the linear basis generating elements with each other using the multilinear tensor product yields a graded (decomposable) Submanifold
〈
v
p
1
⊗⋯⊗
v
p
k
〉
k
, where Rank k is determined by the sum of basis index multiplicities in the tensor product decomposition. The Grassmann anti-symmetric exterior basis is denoted by
v
i
1
⋯i
g
∈
g
Λ
V
with its dual
w
i
1
⋯i
g
∈
g
Λ
V
, while the Leibniz symmetric basis are
μ
1
∂
i
1
⋯
μ
g
∂
i
g
∈
g
L
V
with corresponding
μ
1
ϵ
i
1
μ
g
⋯ϵ
i
g
∈
g
L
V
adjoint elements. The algebra partitions into symmetric and anti-symmetric tensor equivalence classes. For any pair, either
ω⊗η=-η⊗ω
or
ω⊗η=η⊗ω
.
Combined, this space produces the full Leibniz tangent algebra and the Grassmann exterior algebra with
n
2
elements. The mixed index algebra is partitioned into both symmetric and anti-symmetric tensor equivalence classes. Any mixed tensor Submanifold pair ω, η satisfies either.
In[]:=
Submanifold[3]​​GeometricAlgebraBasis[%]
Out[]=
〈xxx〉
Out[]=
{
v
​
,
v
1
,
v
2
,
v
3
,
v
1,2
,
v
1,3
,
v
2,3
,
v
1,2,3
}
In[]:=
TangentSpace[MetricSignature[2]]​​GeometricAlgebraBasis[%]
Out[]=
1
T
〈++
​
1
〉
Out[]=
{
v
​
,
v
1
,
v
2
,
∂
1
,
v
1,2
,
∂
1
v
1
,
∂
1
v
2
,
∂
1
v
1,2
}
In[]:=
TangentSpace[MetricSignature[0],3,3]​​GeometricAlgebraBasis[%]
Out[]=
3
T
〈
123
​
〉
Out[]=
{
w
​
,
1
ϵ
,
2
ϵ
,
3
ϵ
,
1,2
ϵ
,
1,3
ϵ
,
2,3
ϵ
,
1,2,3
ϵ
}
Definition. Typically the k in a product
(k)
(
∂
p
1
⊗⋯⊗
∂
p
k
)
is referred to as the Order/Degree of the element if it is fully symmetric, which is overall tracked separately from the Grade such that
∂
k

v
j

r
=

∂
k
v
j

r
and
(r)
(
∂
k
)
v
j
=
(r)

∂
k
v
j

.
A higher-order composite tensor element is an oriented-multi-set X such that
v
X
=
⊗
k
⊗
μ
k
v
i
k
with the indices
X=((
i
1
,
μ
i
),...,(
i
g
,
μ
g
))
and
|X|=
∑
k
μ
k
is tensor Rank. Anti-symmetric indices
ΛX⊆ΛV
have two orientations and higher multiplicities of them result in zero values, so the only interesting multiplicity is
μ
k
≡1
. The Leibniz-Taylor algebra is a quotient polynomial ring
LV≅R[
∂
1
,...,
∂
n
]
μ+1
∏
k=1
∂
p
k

so that
μ+1
∂
k
is zero. Additionally, the indices can also be interpreted as oriented hypergraphs and multigraphs (depending on the symmetry).
In[]:=
V=Submanifold[3];​​v=Submanifold[V,0,0];
It is possible to use the scalar Submanifold[V,0,0] as a convenient basis generator, and if Subscript is used on this, different Submanifold elements can be created
In[]:=
v
1,2
==v[1,2]
Out[]=
True
In[]:=
FullForm/@{
v
1,2
,
v
1
,
v
4
,
v
3,4
}
Out[]=
{Submanifold[Submanifold[3,3,7,1],2,3,1],Submanifold[Submanifold[3,3,7,1],1,1,1],Submanifold[Submanifold[3,3,7,1],1,0,1],Submanifold[Submanifold[3,3,7,1],2,4,1]}
In[]:=
Indices[
v
1,2
]
Out[]=
{1,2}
In[]:=
Indices[15]
Out[]=
{1,2,3,4}
To each set of Indices an Integer is associated which encodes the index position bits. Therefore, there are
n
2
possible integers to represent all of the IndexBasisSet combinations.
In[]:=
IndexBasis[4]
Out[]=
{0,1,2,4,8,3,5,9,6,10,12,7,11,13,14,15}
Thus, any Submanifold V induces a combinatorial set of nested Submanifold instances.
In[]:=
GeometricAlgebraBasis[4]
Out[]=
{
v
​
,
v
1
,
v
2
,
v
3
,
v
4
,
v
1,2
,
v
1,3
,
v
1,4
,
v
2,3
,
v
2,4
,
v
3,4
,
v
1,2,3
,
v
1,2,4
,
v
1,3,4
,
v
2,3,4
,
v
1,2,3,4
}
Grassmann’s exterior algebra doesn’t invoke the properties of multi-sets, as it is related to the algebra of oriented sets; while the Leibniz symmetric algebra is that of unoriented multi-sets. Combined, the mixed-symmetry algebra yields a multi-linear propositional lattice. The formal sum of equal Grade elements is an oriented Chain and with mixed Grade it is a Multivector simplicial complex. Thus, various standard operations on the oriented multi-sets are possible including ⋃, ⋂, ⊕ and the index operation
X⊖Y=(X⋃Y)\(X⋂Y)
, which is symmetric difference operation ⊻.
In[]:=
V=Submanifold[MetricSignature["-+++"]];​​v=Submanifold[V];​​FullForm[V]
Out[]//FullForm=
Submanifold[MetricSignature[4,0,1],4,15,1]
In[]:=
FullForm[
v
1,3
]
Out[]//FullForm=
Submanifold[Submanifold[MetricSignature[4,0,1],4,15,1],2,5,1]
In[]:=
2
v
1
+
v
3
Out[]=
2
v
1
+1
v
3
In[]:=
5v+
v
2
+
v
2,3,4
Out[]=
1
v
2
+1
v
2,3,4
+5
v
1,2,3,4
Definition (Submanifold[V, g, b, c], e.g.
5
v
1
,7
v
3,4
,8
v
1,2,3
). Coefficient c associated with a grade g Submanifold with IndexBasis b of V, element of
g
Λ
V
.
Definition (Chain[V, g, c], e.g.
3
v
1
+4
v
2
or
1
v
1,2
+1
v
1,3
+1
v
2,3
). Grade g subspaces of dimension
n
(
g

with coefficients c, are elements of
g
Λ
V
.
Definition (Multivector[V, c]). Full
n
2
dimensional representation of ΛV with coefficients c are a generalization of (mixed) oriented hypergraphs.
These are the foundations for Grassmann, which will be extended and turned into a friendly and intuitive user interface. Settling down the full set of features and making it accessible will require further additional work from this rather short Wolfram Summer School experience. Some of the features which will be created include many other types of metric tensors, geometric algebra operations, user interface experience, efficiency, and underlying design.

Encoding geometric spaces with tensor bundles

There are several types of TensorBundle. Initially, the most important is MetricSignature. Other types may include DiagonalForm, QuadraticForm, and generalized metric tensor fields. The simplest TensorBundle is an Integer n specifying the Rank and assuming an identity metric.
Submanifold[3](*Integermakesidentitymetric*)
Out[]=
〈xxx〉
Definition (Vector bundle of Submanifold). Let
M=
μ
T
V
be a tensor bundle of Rank n,
μ
T
V=(n,,g,ν,μ)
,
⊆〈
v
∞
,
v
∅
〉
,
g:VV→
​The type MetricSignature[n, , g, ν, μ] uses byte-encoded data to carry around with the algebra, where  specifies the basis for up and down projection, g is a bilinear form that specifies the metric of the space, μ is an integer specifying the order of the tangent bundle (i.e. multiplicity limit of Leibniz-Taylor monomials). Lastly, ν is the number of tangent variables. The dual space functor
(·)
is an involution which toggles a dual vector space with inverted signature with property
V=Hom(V,)
and having basis generators
〈
v
1
,...,
v
n-ν
,
∂
1
,...,
∂
ν
〉=M↔M=〈
w
1
,...,
w
n-ν
,
ϵ
1
,...,
ϵ
ν
〉
​where
v
i
,
w
i
are a basis for the vectors and covectors, while
∂
j
,
ϵ
j
are a basis for differential operators and tensor fields.
The direct sum operator ⊕ can be used to join spaces (alternatively +), and the dual space functor
(·)
is an involution which toggles a dual vector space with inverted signature. In addition to the direct-sum operation, several other operations are supported, such as ⋃, ⋂, ⊆, ⊇ for set operations. Due to the design of the tensor bundle dispatch, these operations enable code optimizations at compile-time provided by the bit parameters.
⋃
i
μ
i
T
V
i
=(||+max
{
n
i
-|

i
|}
i
,
⋃
i

i
,
⋃
i
g
i
,max
{
ν
i
}
i
,max
{
μ
i
}
i
)
​
⊕
i
μ
i
T
V
i
=(||+
∑
i
(
n
i
-|

i
|),
⋃
i

i
,
⊕
i
g
i
,max
{
ν
i
}
i
,max
{
μ
i
}
i
)
​These are roughly the formulas used for those operations. Note differences between the operations ⋃ and ⊕, which are similar
Calling manifolds with sets of indices constructs the subspace representations. Given
M
{
s
i
}
i
one can encode
Submanifold[M,
{
s
i
}
i
]
with induced orthogonal space Z, such that computing unions of submanifolds is done by inspecting the parameter
s∈V⊆W
and
s∉Z
. Here, calling a Manifold with a set of indices produces a Submanifold representation.
e
T
V⊂
μ
T
W⟺∃Z:(
e
T
(V⊕Z)=
e≤μ
T
W)⋀(V⟂Z)
.Operations on Manifold types is automatically handled.
In[]:=
V=MetricSignature["-"]⊕MetricSignature["+++"]
Out[]=
〈-+++〉
In[]:=
Transpose[V]
Out[]=
〈+---〉
The direct sum of a tensor bundle and its dual
V⊕V
represents the full mother space, which is yet another

2
-grading of a vector space.
In[]:=
V⊕V
Out[]=
〈-++++---〉*
Since tensor bundle choices are fundamental to tensor algebra operations, the universal interoperability between tensor algebra elements with different associated tensor bundle choices is naturally realized by applying the Union morphism to operations, e.g.
⋀:
p
1
Λ
V
1
⋯
p
g
Λ
V
g
→
∑
k
p
k
Λ
⋃
k
V
k
.Some of the method names like +, -, *, ⊗, ⊙, ★ for tensor algebra elements can be shared across different algebras, with interoperability.
The MetricSignature of the Submanifold[V, 1, _] elements of a vector space V can be specified with the MetricSignature["..."] constructor by using + and - to specify whether the Submanifold[V, 1, _] element of the corresponding index squares to +1 or -1. For example, MetricSignature["+++"] constructs a positive definite 3-dimensional tensor bundle, so constructors such as MetricSignature["..."] are convenient.
MetricSignature[3]==MetricSignature["+++"](*TODO*)
Out[]=
〈+++〉〈+++〉
It is possible to specify an arbitrary DiagonalForm (not yet implemented) having numerical values for the basis including degeneracy DiagonalForm[{1,1,1,0}], although the MetricSignature format has a more compact representation if limited to +1 and -1. It is also possible to change the diagonal scaling, such as with DiagonalForm[“0.3,2.4,1”]. Further development will result in more metric types, including non-diagonal metric tensors.
Declaring an additional point at infinity is done by specifying it in the string constructor with ∞ at the first index (i.e. Riemann sphere MetricSignature["∞+++"]). The hyperbolic geometry can be declared by ∅ subsequently (i.e. hyperbolic projection MetricSignature["∅+++"]). Additionally, the null-basis based on the projective split for conformal geometric algebra would be specified with ∞∅ initially (i.e. 5D CGA MetricSignature["∞∅+++"]). These two declared basis elements are interpreted in the type system. The TangentSpace[V, μ, ν] map can be used to specify μ and ν.
In[]:=
GeometricAlgebraBasis["∞∅+++"]
Out[]=
{
v
​
,
v
∞
,
v
∅
,
v
1
,
v
2
,
v
3
,
v
∞,∅
,
v
∞,1
,
v
∞,2
,
v
∞,3
,
v
∅,1
,
v
∅,2
,
v
∅,3
,
v
1,2
,
v
1,3
,
v
2,3
,
v
∞,∅,1
,
v
∞,∅,2
,
v
∞,∅,3
,
v
∞,1,2
,
v
∞,1,3
,
v
∞,2,3
,
v
∅,1,2
,
v
∅,1,3
,
v
∅,2,3
,
v
1,2,3
,
v
∞,∅,1,2
,
v
∞,∅,1,3
,
v
∞,∅,2,3
,
v
∞,1,2,3
,
v
∅,1,2,3
,
v
∞,∅,1,2,3
}
The index number n of the MetricSignature corresponds to the total number of generator elements. However, MetricSignature[“∞∅+++“] with 5 generator elements can be internally recognized in the direct sum algebra as being an embedding of a 3-index space with additional encoding of the null-basis (origin and point at infinity) in the parameter  of the expression.
The TangentSpace map takes V to its tangent space and can be applied repeatedly for higher orders, such that Tangent[V, μ, ν] can be used to specify μ and ν.
In[]:=
V=TangentSpace[MetricSignature[3]]
Out[]=
1
T
〈+++
​
1
〉
In[]:=
TangentSpace[V]
Out[]=
2
T
〈----
1
​
〉
V⊕(V)(*displaybug?TODO*)
Out[]=
1
T
++++--
​
1
​
*
In[]:=
TV=Submanifold[TangentSpace[MetricSignature[2],2,2]]
Out[]=
2
T
〈++
​
1,2
〉
In[]:=
GeometricAlgebraBasis[TV,2]
Out[]=
{
v
1,2
,
∂
1
v
1
,
∂
2
v
1
,
∂
1
v
2
,
∂
2
v
2
,
∂
1,2
}
In[]:=
TangentSpace[MetricSignature[3],2]==
2
T
MetricSignature[3]
Out[]=
True
More types of metric tensors and algebras will be supported, the extensibility of this Grassmann foundation enables this without much change to the stable Submanifold syntax, while allowing a turbulent syntax regime for tensor bundles which may change and evolve further.

Geometric algebra operations

Following initialization of Submanifold, it is possible to create geometric algebra operations, including the geometric product, exterior product, regressive product, interior product, Hodge complement, reverse, union, intersection, differential operators, non-diagonal metrics, exponential function, trigonometric functions, and much more. These have all already been implemented in terms of this Grassmann design before in the Julia language, so it’s simply a matter of following through and making them available in Wolfram language also.
In the very near future, most of these operations should be implemented, and this community post will be updated with more information then.

Conclusion

Geometric algebra has a long and somewhat obscure history yet it was practiced and developed further into a full foundation. Another interesting development is the usage of hypergraph rewriting with SetReplace and the ZX-Calculus in the Wolfram Physics Project as this is a type of quantum logic formalism isomorphic to what the multilinear geometric algebra can express.
This project is still in its beginning, but has already been implemented in the Julia language, so fully realizing it in the Wolfram language is simply a matter of following through with it. The foundations have been laid now, making it possible to create all the algebraic operations soon. Once that is complete, it will be interesting to see how this can be interface with the Wolfram Physics Project and various other Wolfram language tools and APIs
Grassmann and its accompanying support functionality provides extensible platform for fully generalized computing with geometric algebra at high dimensions. This will enable the usage of many different types of tensor algebra along with various parameters and interoperability for a wide range of scientific and research applications. All of the types and operations in this paper are implemented using only a few thousand lines of code with Wolfram's rewrite language, which will continue to be refined and is being optimized for research over time.
Thus, computations involving geometric algebra, anti-symmetric tensor products, rotational algebras, and Lie bivector groups are possible with a full trigonometric suite. Conformal geometric algebra is possible with the Minkowski plane, based on the null-basis. Multivalued quantum logic is enabled by the ⋀, ⋁, ★ Grassmann lattice. Mixed-symmetry algebra based on Leibniz differential algebra and Grassmann exterior calculus, having the geometric algebraic product chain rule, yields automatic differentiation and Hodge-DeRahm co/homology as unveiled by the algebra. Most importantly, the Dirac-Clifford product yields generalized Hodge-Laplacian and the Betti numbers with Euler characteristic χ. Geometric algebra unifies this all.
Grassmann algebra is a unifying mathematical foundation. Improving efficiency of multi-disciplinary research using differential geometric algebra by relying on universal mathematical principles is possible. Transforming superficial knowledge into deeper understanding is then achieved with the unified foundations widely applicable to the many different sub-disciplines related to geometry and mathematical physics. Software tooling will help overcome present challenges, such as geometric algebra not yet being standardized or taught in schools & universities or used at scale for industrial engineering science unification. Thus, the Grassmann software enables ascending future steps to teach geometric algebra in schools/universities, use it in research and development practices, and deploy it in industrial applications. Differential geometric algebra is the future of unifying math & engineering pipelines.

Acknowledgements

Many thanks for past discussions with Utensil Song, Steven De Keninck, Alexander Arsenovic, Hugo Hadfield, David Hestenes, Chris Doran, Charles Gunn, Eric Wieser; project supporters Alan Reed, Micah Fitch, Zack Li, Karl Wessel, Oliver Evans, Hongying Li, Petr Krysl, Saketh Rama, Michael Ewert, Adam Semiz, Alok Singh; and the wonderful people from Wolfram Research such as Stephen Wolfram, Taliesin Beynon, Max Piskunov, Jonathan Gorard, Erin Cherry, Jesse Friedman, Silvia Hao, etc.

References

https://grassmann.crucialflow.com
◼
  • Michael Reed, Differential geometric algebra with Leibniz and Grassmann, JuliaCon (2019)
  • ◼
  • Emil Artin, Geometric Algebra (1957)
  • ◼
  • John Browne, Grassmann Algebra, Volume 1: Foundations (2011)
  • ◼
  • C. Doran, D. Hestenes, F. Sommen, and N. Van Acker, Lie groups as spin groups, J. Math Phys. (1993)
  • ◼
  • David Hestenes, Universal Geometric Algebra, Pure and Applied (1988)
  • ◼
  • David Hestenes, Renatus Ziegler, Projective Geometry with Clifford Algebra, Acta Appl. Math. (1991)
  • ◼
  • David Hestenes, Tutorial on geometric calculus. Advances in Applied Clifford Algebra (2013)
  • ◼
  • Lachlan Gunn, Derek Abbott, James Chappell, Ashar Iqbal, Functions of multivector variables (2011)
  • ◼
  • Aaron D. Schutte, A nilpotent algebra approach to Lagrangian mechanics and constrained motion (2016)
  • ◼
  • Vladimir and Tijana Ivancevic, Undergraduate lecture notes in DeRahm-Hodge theory. arXiv (2011)