1 | initial version |

At the moment (SageMath 8.7), differential forms of degree $p$ on a manifold $M$ are considered to belong to (i.e. their parent is) the set $\Omega^p(M)$ of all differential forms of degree $p$, which is a $C^\infty(M)$-module and not a ring. Hence one cannot construct matrices from them. However, since SageMath 8.8.beta3 (see the ticket #27584 for details), it is possible to consider the graded algebra
$$\Omega^*(M) = \bigoplus^n_{p=0} \Omega^p(M), $$
where $n = \mathrm{dim}\ M$.
$\Omega^*(M)$ is a ring, the multiplication of which is the wedge product. It is therefore possible to form matrices from its elements. The latter are called *mixed differential forms*, so that, continuing from your example, one may write

```
sage: aa = M.mixed_form(comp=[0, 0, a], name='aa')
sage: aa.parent()
Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional complex manifold M
sage: aa.display(eU)
aa = [0] + [0] + [(x*y^2 + 2*x) dx/\dy]
```

It is now possible to form a matrix and use the standard matrix operations:

```
sage: A = matrix([[aa, aa], [aa, aa]])
sage: A
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
sage: A[0,1]
Mixed differential form aa on the 2-dimensional complex manifold M
sage: det(A)
Mixed differential form aa/\aa-aa/\aa on the 2-dimensional complex manifold M
sage: det(A).display(eU)
aa/\aa-aa/\aa = [0] + [0] + [0]
```

The above feature will be available in the next stable release of SageMath (8.8), which should appear in a few weeks. Meanwhile you can install the latest development version (8.8.beta6 as of today) to use it, see e.g. the section *"1. Starting from the latest sources"* in this page.

2 | No.2 Revision |

At the moment (SageMath 8.7), differential forms of degree $p$ on a manifold $M$ are considered to belong to (i.e. their parent is) the set $\Omega^p(M)$ of all differential forms of degree $p$, which is a $C^\infty(M)$-module and not a ring. Hence one cannot construct matrices from them. However, since SageMath 8.8.beta3 (see the ticket #27584 for details), it is possible to consider the graded algebra ~~
$$\Omega^~~*(M) *

$$\Omega^*(M) = \bigoplus^n_{p=0} \Omega^p(M), ~~$$
~~$$

*where $n = \mathrm{dim}\ M$.
$\Omega^*

```
sage: aa = M.mixed_form(comp=[0, 0, a], name='aa')
sage: aa.parent()
Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional complex manifold M
sage: aa.display(eU)
aa = [0] + [0] + [(x*y^2 + 2*x) dx/\dy]
```

It is now possible to form a matrix and use the standard matrix operations:

```
sage: A = matrix([[aa, aa], [aa, aa]])
sage: A
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
sage: A[0,1]
Mixed differential form aa on the 2-dimensional complex manifold M
sage: det(A)
Mixed differential form aa/\aa-aa/\aa on the 2-dimensional complex manifold M
sage: det(A).display(eU)
aa/\aa-aa/\aa = [0] + [0] + [0]
```

The above feature will be available in the next stable release of SageMath (8.8), which should appear in a few weeks. Meanwhile you can install the latest development version (8.8.beta6 as of today) to use it, see e.g. the section *"1. Starting from the latest sources"* in this page~~. ~~

3 | No.3 Revision |

At the moment (SageMath 8.7), differential forms of degree $p$ on a manifold $M$ are considered to belong to (i.e. their parent is) the set $\Omega^p(M)$ of all differential forms of degree $p$, which is a $C^\infty(M)$-module and not a ring. Hence one cannot construct matrices from them. However, since SageMath 8.8.beta3 (see the ticket #27584 for details), it is possible to consider the graded algebra

$$\Omega^*(M) = \bigoplus^n_{p=0} \Omega^p(M), $$

where $n = \mathrm{dim}\ M$.
The set $\Omega^*(M)$ is a ring, the multiplication of which is the wedge product. It is therefore possible to form matrices from its elements. The latter are called *mixed differential forms*, so that, continuing from your example, one may write

```
sage: aa = M.mixed_form(comp=[0, 0, a], name='aa')
sage: aa.parent()
Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional complex manifold M
sage: aa.display(eU)
aa = [0] + [0] + [(x*y^2 + 2*x) dx/\dy]
```

It is now possible to form a matrix and use the standard matrix operations:

```
sage: A = matrix([[aa, aa], [aa, aa]])
sage: A
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
sage: A[0,1]
Mixed differential form aa on the 2-dimensional complex manifold M
sage: det(A)
Mixed differential form aa/\aa-aa/\aa on the 2-dimensional complex manifold M
sage: det(A).display(eU)
aa/\aa-aa/\aa = [0] + [0] + [0]
```

The above feature will be available in the next stable release of SageMath (8.8), which should appear in a few weeks. Meanwhile you can install the latest development version (8.8.beta6 as of today) to use it, see e.g. the section *"1. Starting from the latest sources"* in this page.

4 | No.4 Revision |

At the moment (SageMath 8.7), differential forms of degree $p$ on a manifold $M$ are considered to belong to (i.e. their parent is) the set $\Omega^p(M)$ of all differential forms of degree $p$, which is a $C^\infty(M)$-module and not a ring. Hence one cannot construct matrices from them. However, since SageMath 8.8.beta3 (see the ticket #27584 for details), it is possible to consider the graded algebra

$$\Omega^*(M) = \bigoplus^n_{p=0} \Omega^p(M), $$

where $n = \mathrm{dim}\ M$.
The set ~~$\Omega^~~$\Omega^{* (M)$ }(M)$ is a ring, the multiplication of which is the wedge product. It is therefore possible to form matrices from its elements. The latter are called *mixed differential forms*, so that, continuing from your example, one may write

```
sage: aa = M.mixed_form(comp=[0, 0, a], name='aa')
sage: aa.parent()
Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional complex manifold M
sage: aa.display(eU)
aa = [0] + [0] + [(x*y^2 + 2*x) dx/\dy]
```

It is now possible to form a matrix and use the standard matrix operations:

```
sage: A = matrix([[aa, aa], [aa, aa]])
sage: A
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
sage: A[0,1]
Mixed differential form aa on the 2-dimensional complex manifold M
sage: det(A)
Mixed differential form aa/\aa-aa/\aa on the 2-dimensional complex manifold M
sage: det(A).display(eU)
aa/\aa-aa/\aa = [0] + [0] + [0]
```

The above feature will be available in the next stable release of SageMath (8.8), which should appear in a few weeks. Meanwhile you can install the latest development version (8.8.beta6 as of today) to use it, see e.g. the section *"1. Starting from the latest sources"* in this page.

5 | No.5 Revision |

At the moment (SageMath 8.7), differential forms of degree $p$ on a manifold $M$ are considered to belong to (i.e. their parent is) the set $\Omega^p(M)$ of all differential forms of degree $p$, which is a $C^\infty(M)$-module and not a ring. Hence one cannot construct matrices from them. However, since SageMath 8.8.beta3 (see the ticket #27584 for details), it is possible to consider the graded algebra

$$\Omega^*(M) = \bigoplus^n_{p=0} \Omega^p(M), $$

where $n = \mathrm{dim}\ M$.
The set ~~$\Omega^{~~$ \Omega^{* }(M)$ }(M) $ is a ring, the multiplication of which is the wedge product. It is therefore possible to form matrices from its elements. The latter are called *mixed differential forms*, so that, continuing from your example, one may write

```
sage: aa = M.mixed_form(comp=[0, 0, a], name='aa')
sage: aa.parent()
Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional complex manifold M
sage: aa.display(eU)
aa = [0] + [0] + [(x*y^2 + 2*x) dx/\dy]
```

It is now possible to form a matrix and use the standard matrix operations:

```
sage: A = matrix([[aa, aa], [aa, aa]])
sage: A
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
sage: A[0,1]
Mixed differential form aa on the 2-dimensional complex manifold M
sage: det(A)
Mixed differential form aa/\aa-aa/\aa on the 2-dimensional complex manifold M
sage: det(A).display(eU)
aa/\aa-aa/\aa = [0] + [0] + [0]
```

*"1. Starting from the latest sources"* in this page.

6 | No.6 Revision |

$$\Omega^*(M) = \bigoplus^n_{p=0} \Omega^p(M), $$

where $n = \mathrm{dim}\ M$.
The set $ ~~\Omega^{~~*}(M) **\Omega (M) $ is a ring, the multiplication of which is the wedge product. It is therefore possible to form matrices from its elements. The latter are called *mixed mixed differential forms, so that, continuing from your example, one may write*

```
sage: aa = M.mixed_form(comp=[0, 0, a], name='aa')
sage: aa.parent()
Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional complex manifold M
sage: aa.display(eU)
aa = [0] + [0] + [(x*y^2 + 2*x) dx/\dy]
```

It is now possible to form a matrix and use the standard matrix operations:

```
sage: A = matrix([[aa, aa], [aa, aa]])
sage: A
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
sage: A[0,1]
Mixed differential form aa on the 2-dimensional complex manifold M
sage: det(A)
Mixed differential form aa/\aa-aa/\aa on the 2-dimensional complex manifold M
sage: det(A).display(eU)
aa/\aa-aa/\aa = [0] + [0] + [0]
```

*"1. Starting from the latest sources"* in this page.

7 | No.7 Revision |

$$\Omega^*(M) = \bigoplus^n_{p=0} \Omega^p(M), $$

where $n = \mathrm{dim}\ M$.
The set $ ~~\Omega ~~\Omega^* (M) $ is a ring, the multiplication of which is the wedge product. It is therefore possible to form matrices from its elements. The latter are called *mixed differential forms*, so that, continuing from your example, one may write

```
sage: aa = M.mixed_form(comp=[0, 0, a], name='aa')
sage: aa.parent()
Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional complex manifold M
sage: aa.display(eU)
aa = [0] + [0] + [(x*y^2 + 2*x) dx/\dy]
```

It is now possible to form a matrix and use the standard matrix operations:

```
sage: A = matrix([[aa, aa], [aa, aa]])
sage: A
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
sage: A[0,1]
Mixed differential form aa on the 2-dimensional complex manifold M
sage: det(A)
Mixed differential form aa/\aa-aa/\aa on the 2-dimensional complex manifold M
sage: det(A).display(eU)
aa/\aa-aa/\aa = [0] + [0] + [0]
```

*"1. Starting from the latest sources"* in this page.

8 | No.8 Revision |

$$\Omega^*(M) = \bigoplus^n_{p=0} \Omega^p(M), $$

where $n = \mathrm{dim}\ M$.
The set $ \Omega^* (M) $ is a ring, the multiplication of which is the wedge product. It is therefore possible to form matrices from its elements. The latter are called *mixed differential forms*, so that, continuing from your example, one may write

```
sage: aa = M.mixed_form(comp=[0, 0, a], name='aa')
sage: aa.parent()
Graded algebra Omega^*(M) of mixed differential forms on the 2-dimensional complex manifold M
sage: aa.display(eU)
aa = [0] + [0] + [(x*y^2 + 2*x) dx/\dy]
```

It is now possible to form a matrix and use the standard matrix operations:

```
sage: A = matrix([[aa, aa], [aa, aa]])
sage: A
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
[Mixed differential form aa on the 2-dimensional complex manifold M
Mixed differential form aa on the 2-dimensional complex manifold M]
sage: A.base_ring()
Graded algebra Omega^*(M) of mixed differential forms
on the 2-dimensional complex manifold M
sage: A[0,1]
Mixed differential form aa on the 2-dimensional complex manifold M
sage: det(A)
Mixed differential form aa/\aa-aa/\aa on the 2-dimensional complex manifold M
sage: det(A).display(eU)
aa/\aa-aa/\aa = [0] + [0] + [0]
```

*"1. Starting from the latest sources"* in this page.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.