# \[ANN\] Grassmann.jl : Differential geometric algebra

**URL:** <https://discourse.julialang.org/t/ann-grassmann-jl-differential-geometric-algebra/21125>\
**Category:** Package Announcements\
**Tags:** package, announcement, differentiation, array, linearalgebra\
**Created:** [February 23, 2019, 9:55pm UTC](https://discourse.julialang.org/t/ann-grassmann-jl-differential-geometric-algebra/21125 "2019-02-23T21:55:49Z")\
**Posts on this page:** 1\
**Showing post:** 17

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [October 7, 2019, 10:16am UTC](https://discourse.julialang.org/t/ann-grassmann-jl-differential-geometric-algebra/21125/17 "2019-10-07T10:16:44Z")

</div>

With v0.3.1 of [Grassmann.jl](https://github.com/chakravala/Grassmann.jl) it is now fairly stable to work with higher-order generalizations of derivations.

> **[Differential geometric algebra foundations using Grassmann.jl](https://discourse.bivector.net/t/differential-geometric-algebra-foundations-using-grassmann-jl/27)**
>
> Greetings, recently I have been working on a paper along with various packages in the Julia language to try to figure out the best foundations to unify differential geometry with geometric algebra. This work is still in progress and not complete...

Using the `tangent(V,D,#)` space it is possible to explore the higher order Leibniz derivations.

Based on the definitions of differential geometric algebra, a higher order derivation is `∂i^(D+1)==0`:

```plaintext
julia> using Reduce, Grassmann; @mixedbasis tangent(ℝ^2,3,2);

julia> x = :x*v1 + ∂1v1 + ∂1*∂1v1 + ∂1*∂1*∂1v1
0.0 + xv₁ + (1 + (1 + 1∂₁)∂₁)∂₁v₁

julia> x^2
x ^ 2 + (2x + (2x + 1 + (2 * (x + 1))∂₁)∂₁)∂₁

julia> x^3
0.0 + (x ^ 3)v₁ + (3 * x ^ 2 + (3 * (x + 1) * x + (3 * x ^ 2 + 6x + 1)∂₁)∂₁)∂₁v₁

julia> x^7
0.0 + (x ^ 7)v₁ + (7 * x ^ 6 + (7 * (x + 3) * x ^ 5 + (7 * (x ^ 2 + 6x + 5) * x ^ 4)∂₁)∂₁)∂₁v₁

julia> x^8
x ^ 8 + (8 * x ^ 7 + (4 * (2x + 7) * x ^ 6 + (8 * (x ^ 2 + 7x + 7) * x ^ 5)∂₁)∂₁)∂₁

julia> x^11
0.0 + (x ^ 11)v₁ + (11 * x ^ 10 + (11 * (x + 5) * x ^ 9 + (11 * (x ^ 2 + 10x + 15) * x ^ 8)∂₁)∂₁)∂₁v₁

```

As you can see, this is the 3rd order Leibniz-Taylor algebra. Arbitrary Leibniz-Taylor algebras are supported.

```plaintext
julia> V(∇)
0v₁₂ + 1∂₁v₁ + 0∂₂v₁ + 0∂₁v₂ + 1∂₂v₂ + 0∂₁₂

julia> V(∇)^2
0 + 1∂₁∂₁ + 1∂₂∂₂

julia> V(∇)^3
0.0 + 1∂₁∂₁∂₁v₁ + 1∂₂∂₂∂₂v₂ + 1∂₂∂₁₂v₁ + 1∂₁∂₁₂v₂

julia> V(∇)^4
0.0v⃖

```

---

_[View the full topic](https://discourse.julialang.org/t/ann-grassmann-jl-differential-geometric-algebra/21125)._
