This is SuperLinearAlgebra.info, produced by Macaulay2, version 1.25.05

SuperLinearAlgebra -- Package for super algebra
***********************************************

Description
===========

This Package is to do the computation in superalgebras, or super vector spaces.

The computations are taken in a superRing, which is a ring with both symmetric
and antisymmetric variables.

To see the definitions and theorems, see Varadarajan, V. S. (2004).
"Supersymmetry for Mathematicians: An Introduction" (Vol. 11). American
Mathematical Soc.

Caveat
======

Authors
=======

  * Fereshteh Bahadorykhalily (see
    https://www.researchgate.net/profile/Fereshte_Bahadorykhalily )
    <f.bahadori.khalili@gmail.com>
  * Fatemeh Tarashi Kashani (see https://www.linkedin.com/in/fatemehtarashi/ )
    <tarashikashanifatemeh@gmail.com>

Version
=======

This documentation describes version 0.1 of SuperLinearAlgebra.

Citation
========

If you have used this package in your research, please cite it as follows:

+-----------------------------------------------------------------------------+
|@misc{SuperLinearAlgebraSource,                                              |
|  title = {{SuperLinearAlgebra: computations related to supermatrices. Versio|
|  author = {Fereshteh Bahadorykhalily and Fatemeh Tarashi Kashani},          |
|  howpublished = {A \emph{Macaulay2} package available at                    |
|    \url{https://github.com/Macaulay2/M2/tree/master/M2/Macaulay2/packages}} |
|}                                                                            |
|-----------------------------------------------------------------------------|
|n~0.1}},                                                                     |
+-----------------------------------------------------------------------------+

Exports
=======

  * Types
      * SuperMatrix -- Makes a super matrix from its four
        blocks.
  * Functions and commands
      * berezinian -- Computes the berezinian of a
        supermatrix.
      * inverseSuperMatrix -- The inverse of a super
        matrix.
      * parity -- parity of an element of a super ring.
      * "superMatrixGenerator" -- see SuperMatrix, -- Makes
        a super matrix from its four blocks.
      * superMatrixParity -- parity of a super
        Matrix.
      * superRing -- Makes a super ring from two polynomial
        rings.
      * superTrace -- Super trace of a homogeneous super
        matrix.
  * Methods
      * "berezinian(SuperMatrix,Ring)" -- see berezinian, --
        Computes the berezinian of a supermatrix.
      * "inverseSuperMatrix(SuperMatrix,Ring)" -- see inverseSuperMatrix,
        -- The inverse of a super matrix.
      * "parity(RingElement,Ring,List)" -- see parity, -- parity
        of an element of a super ring.
      * parity(Number,Ring,List) (missing documentation)
      * "superMatrixGenerator(Matrix,Matrix,Matrix,Matrix)" -- see
        SuperMatrix, -- Makes a super matrix from its four blocks.
      * "superMatrixParity(SuperMatrix,Ring,List)" -- see
        superMatrixParity, -- parity of a super Matrix.
      * "superRing(PolynomialRing,PolynomialRing)" -- see superRing,
        -- Makes a super ring from two polynomial rings.
      * "superTrace(SuperMatrix,Ring,List)" -- see superTrace,
        -- Super trace of a homogeneous super matrix.
  * Symbols
      * "supermatrix" -- see SuperMatrix, -- Makes a super
        matrix from its four blocks.

For the programmer
==================

The object SuperLinearAlgebra, is a package (Macaulay2Doc),
defined in SuperLinearAlgebra.m2.

-------------------------------------------------------------------------------

The source of this document is in SuperLinearAlgebra.m2:405:0.

berezinian -- Computes the berezinian of a supermatrix.
*******************************************************

  * Usage:
        N = berezinian(G, R)
  * Inputs:
      * G, an instance of the type SuperMatrix,
      * R, a ring (Macaulay2Doc),
  * Outputs:
      * N, a number (Macaulay2Doc),

Description
===========

This function works only when the entries of the even blocks are numbers, and
those of odd blocks are formed by odd generators. If in a super Matrix, one of
the first or the second diagonal blocks is invertible, then we can define the
berezinian (as a kind of super Determinant). The formula for the berezinian is
different base on which block is invertible. But it is shown that the two
formulas are equivalent if two blocks are invertible. If $M=\begin{pmatrix}
M1&M2\\ M3&M4\end{pmatrix}$.  is a super Matrix, and $M_4$ is invertible, then
$Ber(M)= det(M_1-M_2M^{-1}_4M_3) det(M_4)^{-1}$.

If $M_1$ is invertible, then $Ber(M) = det(M_4-M_3M_1^{-1}M_2)^{-1} det(M_1)$.

+--------------------------------------------------+
|i1 : M1 = matrix{{5, 7}, {1, 2}}                  |
|                                                  |
|o1 = | 5 7 |                                      |
|     | 1 2 |                                      |
|                                                  |
|              2       2                           |
|o1 : Matrix ZZ  <-- ZZ                            |
+--------------------------------------------------+
|i2 : M2 = matrix{{1, 2, 3}, {4, 5, 6}}            |
|                                                  |
|o2 = | 1 2 3 |                                    |
|     | 4 5 6 |                                    |
|                                                  |
|              2       3                           |
|o2 : Matrix ZZ  <-- ZZ                            |
+--------------------------------------------------+
|i3 : M3 = matrix{{3, 4}, {5, 6}, {7, 8}}          |
|                                                  |
|o3 = | 3 4 |                                      |
|     | 5 6 |                                      |
|     | 7 8 |                                      |
|                                                  |
|              3       2                           |
|o3 : Matrix ZZ  <-- ZZ                            |
+--------------------------------------------------+
|i4 : M4 = matrix{{2, 3, 11}, {4, 5, 6}, {7, 8, 9}}|
|                                                  |
|o4 = | 2 3 11 |                                   |
|     | 4 5 6  |                                   |
|     | 7 8 9  |                                   |
|                                                  |
|              3       3                           |
|o4 : Matrix ZZ  <-- ZZ                            |
+--------------------------------------------------+
|i5 : M5 = sub(M4, QQ)                             |
|                                                  |
|o5 = | 2 3 11 |                                   |
|     | 4 5 6  |                                   |
|     | 7 8 9  |                                   |
|                                                  |
|              3       3                           |
|o5 : Matrix QQ  <-- QQ                            |
+--------------------------------------------------+
|i6 : G = superMatrixGenerator(M1, M2, M3, M4)     |
|                                                  |
|o6 = SuperMatrix{...1...}                         |
|                                                  |
|o6 : SuperMatrix                                  |
+--------------------------------------------------+
|i7 : berezinian(G, QQ)                            |
|                                                  |
|        4                                         |
|o7 = - --                                         |
|       21                                         |
|                                                  |
|o7 : QQ                                           |
+--------------------------------------------------+

Caveat
======

Ways to use berezinian:
=======================

  * "berezinian(SuperMatrix,Ring)"

For the programmer
==================

The object berezinian, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in SuperLinearAlgebra.m2:572:0.

inverseSuperMatrix -- The inverse of a super matrix.
****************************************************

  * Usage:
        N = inverseSuperMatrix(G, R)
  * Inputs:
      * G, an instance of the type SuperMatrix,
      * R, a ring (Macaulay2Doc),
  * Outputs:
      * M, a matrix (Macaulay2Doc),

Description
===========

A super Matrix $M={{M1, M2}, {M3, M4}}$ is invertible, if both the diagonal
blocks, $M_1$ and $M_4$ are invertible.

In this case, the inverse is given by a blocked matrix, $T=\begin{pmatrix}
T1&T2\\ T3&T4\end{pmatrix}$, where $T_1=(M_1 − M_2M^{-1}_4 M_3)^{-1}$,
$T_2=−M^{-1}_1 M_2(M_4 − M_3M^{-1}_1 M_2)^{-1}$, $T_3=−M^{-1}_4 M_3(M_1 −
M_2M^{-1}_4 M_3)^{-1}$, and $T_4=(M_4 − M_3M^{-1}_1 M_2)^{-1}$.

+---------------------------------------------------+
|i1 : M1 = matrix{{5, 7}, {1, 2}};                  |
|                                                   |
|              2       2                            |
|o1 : Matrix ZZ  <-- ZZ                             |
+---------------------------------------------------+
|i2 : M2 = matrix{{1, 2, 3}, {4, 5, 6}};            |
|                                                   |
|              2       3                            |
|o2 : Matrix ZZ  <-- ZZ                             |
+---------------------------------------------------+
|i3 : M3 = matrix{{3, 4}, {5, 6}, {7, 8}};          |
|                                                   |
|              3       2                            |
|o3 : Matrix ZZ  <-- ZZ                             |
+---------------------------------------------------+
|i4 : M4 = matrix{{2, 3, 11}, {4, 5, 6}, {7, 8, 9}};|
|                                                   |
|              3       3                            |
|o4 : Matrix ZZ  <-- ZZ                             |
+---------------------------------------------------+
|i5 : G = superMatrixGenerator(M1, M2, M3, M4);     |
+---------------------------------------------------+
|i6 : inverseSuperMatrix(G, QQ)                     |
|                                                   |
|o6 = | -1 -3/4  0    11/4    -1     |              |
|     | 1  1/2   0    -5/2    1      |              |
|     | 1  5/84  1/7  -139/28 58/21  |              |
|     | -1 11/84 -2/7 131/28  -53/21 |              |
|     | 0  -1/42 1/7  -3/14   2/21   |              |
|                                                   |
|              5       5                            |
|o6 : Matrix QQ  <-- QQ                             |
+---------------------------------------------------+

Caveat
======

Ways to use inverseSuperMatrix:
===============================

  * "inverseSuperMatrix(SuperMatrix,Ring)"

For the programmer
==================

The object inverseSuperMatrix, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in SuperLinearAlgebra.m2:645:0.

parity -- parity of an element of a super ring.
***********************************************

  * Usage:
        N = parity(f, R, L)
  * Inputs:
      * f, a ring element (Macaulay2Doc),
      * R, a ring (Macaulay2Doc), superRing
      * L, a list (Macaulay2Doc),
  * Outputs:
      * N, a number (Macaulay2Doc), 0 for even, 1 for odd and-1
        for Nonhomogeneous

Description
===========

Let we have a super algebra (ring), $R=R_0 \oplus R_1$. A homogeneous element
of $R$ is an element belongs to $R_0$ or $R_1$. This function has three
outputs,-1 for non-homogeneous, 0 for homogeneous and even, and 1 for
homogeneous and odd elements.

+--------------------------------------------------+
|i1 : R1=QQ[x_0..x_4];                             |
+--------------------------------------------------+
|i2 : R2=QQ[e_0, e_1];                             |
+--------------------------------------------------+
|i3 : R= superRing(R1, R2)                         |
|                                                  |
|o3 = R                                            |
|                                                  |
|o3 : QuotientRing                                 |
+--------------------------------------------------+
|i4 : L={e_0, e_1}                                 |
|                                                  |
|o4 = {e , e }                                     |
|       0   1                                      |
|                                                  |
|o4 : List                                         |
+--------------------------------------------------+
|i5 : f=x_1*x_2*x_3+x_1*e_0+e_1*e_0-4*x_2*e_1*e_0+4|
|                                                  |
|o5 = x x x  + x e  + 4x e e  - e e  + 4           |
|      1 2 3    1 0     2 0 1    0 1               |
|                                                  |
|o5 : R                                            |
+--------------------------------------------------+
|i6 : parity(f, R, L)                              |
|                                                  |
|o6 = -1                                           |
+--------------------------------------------------+
|i7 : g=x_1*x_2*x_3+e_0*e_1+4;                     |
+--------------------------------------------------+
|i8 : parity(g, R, L)                              |
|                                                  |
|o8 = 0                                            |
+--------------------------------------------------+

Caveat
======

See also
========

  * superMatrixParity -- parity of a super Matrix.

Ways to use parity:
===================

  * "parity(RingElement,Ring,List)"
  * parity(Number,Ring,List) (missing documentation)

For the programmer
==================

The object parity, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in SuperLinearAlgebra.m2:608:0.

SuperMatrix -- Makes a super matrix from its four blocks.
*********************************************************

  * Usage:
        G = superMatrixGenerator(M1, M2, M3, M4)
  * Inputs:
      * M1, a matrix (Macaulay2Doc),
      * M2, a matrix (Macaulay2Doc),
      * M3, a matrix (Macaulay2Doc),
      * M4, a matrix (Macaulay2Doc),
  * Outputs:
      * G, an instance of the type SuperMatrix,

Description
===========

Let $M_1, M_2, M_3, M_4$ be four matrices. The number of rows in $M_1$ and
$M_2$, and those of $M_3$ and $M_4$ should be equal. Also, the number of
columns of $M_1$ and $M_3$, and those of M_2 and M_4 must be equal.

The idea is to define a (super) Matrix, which can be considered as $p|q\times
r|s$ matrix. This super Matrix can be a morphism between super modules
$A^{p|q}$ and $A^{r|s}$ over super algebra $A$.

The function uses four matrices M_1 and M_2, and also M_3 and M_4 as four
blocks of a new matrix, say $\begin{pmatrix} M1&M2\\ M3&M4\end{pmatrix}$.

The key supermatrix shows the result matrix created as above.

+---------------------------------------------+
|i1 : M1 = matrix {{1, 2}, {5, 6}, {9, 10}}   |
|                                             |
|o1 = | 1 2  |                                |
|     | 5 6  |                                |
|     | 9 10 |                                |
|                                             |
|              3       2                      |
|o1 : Matrix ZZ  <-- ZZ                       |
+---------------------------------------------+
|i2 : M2 = matrix {{3, 4}, {7, 8}, {11, 12}}  |
|                                             |
|o2 = | 3  4  |                               |
|     | 7  8  |                               |
|     | 11 12 |                               |
|                                             |
|              3       2                      |
|o2 : Matrix ZZ  <-- ZZ                       |
+---------------------------------------------+
|i3 : M3 = matrix {{13, 14}, {17, 18}}        |
|                                             |
|o3 = | 13 14 |                               |
|     | 17 18 |                               |
|                                             |
|              2       2                      |
|o3 : Matrix ZZ  <-- ZZ                       |
+---------------------------------------------+
|i4 : M4 = matrix {{15, 16}, {19, 20}}        |
|                                             |
|o4 = | 15 16 |                               |
|     | 19 20 |                               |
|                                             |
|              2       2                      |
|o4 : Matrix ZZ  <-- ZZ                       |
+---------------------------------------------+
|i5 : G = superMatrixGenerator(M1, M2, M3, M4)|
|                                             |
|o5 = SuperMatrix{...1...}                    |
|                                             |
|o5 : SuperMatrix                             |
+---------------------------------------------+
|i6 : G.supermatrix                           |
|                                             |
|o6 = | 1  2  3  4  |                         |
|     | 5  6  7  8  |                         |
|     | 9  10 11 12 |                         |
|     | 13 14 15 16 |                         |
|     | 17 18 19 20 |                         |
|                                             |
|              5       4                      |
|o6 : Matrix ZZ  <-- ZZ                       |
+---------------------------------------------+

Caveat
======

Methods that use an object of class SuperMatrix:
================================================

  * "berezinian(SuperMatrix,Ring)" -- see berezinian, --
    Computes the berezinian of a supermatrix.
  * "inverseSuperMatrix(SuperMatrix,Ring)" -- see inverseSuperMatrix,
    -- The inverse of a super matrix.
  * "superMatrixParity(SuperMatrix,Ring,List)" -- see superMatrixParity,
    -- parity of a super Matrix.
  * "superTrace(SuperMatrix,Ring,List)" -- see superTrace, --
    Super trace of a homogeneous super matrix.

For the programmer
==================

The object SuperMatrix, is a type (Macaulay2Doc),
with ancestor classes MutableHashTable (Macaulay2Doc),
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in SuperLinearAlgebra.m2:489:0.

superMatrixParity -- parity of a super Matrix.
**********************************************

  * Usage:
        N = superMatrixParity(SM, R, L)
  * Inputs:
      * SM, an instance of the type SuperMatrix,
      * R, a ring (Macaulay2Doc), superRing
      * L, a list (Macaulay2Doc),
  * Outputs:
      * N, a number (Macaulay2Doc), 0 for even, 1 for odd and-1
        for Nonhomogeneous

Description
===========

This function works only when the entries of the even blocks are numbers, and
those of odd blocks are formed by odd generators. Let $A^{p|q}=Ax_1\oplus
\cdots \oplus Ax_p \oplus Ae_1\oplus\cdots\oplus Ae_q$ be a free module over
$A$, where $x_i$s are even and $e_j$s are odd generators. A morphism
$T:A^{p|q}\rightarrow A^{r|s}$ has a matrix representation. Denote the matrix
by $T$ then we have $T=\begin{pmatrix} T1&T2\\ T3&T4\end{pmatrix}$.

The matrix (morphism) $T$ is said to be even (odd) if the blocks $T_1$ and
$T_4$ are even, and $T_2$ and $T_3$ are odd ($T_1$ and $T_4$ are odd, and $T_2$
and $T_3$ are even). Note that if $A$ is an algebra, i.e., it doesn't have odd
involution, then to have an even (odd) matrix $T$, we should have $T_3=0$ and
$T_2=0$ ($T_1=0$ and $T_4=0$). Example R1 = QQ[x_0..x_3]; R2 = QQ[z_0..z_2]; R
= superRing(R1, R2); D1 = matrix{{x_0, x_1}, {x_2, x_3}}; D2 = matrix{{z_0,
z_1}, {x_0*z_0, x_1*z_1}}; D3 = matrix{{z_2*x_3, z_1}, {z_0, z_2*x_2}}; D4 =
matrix{{x_1, x_3}, {x_0, x_2+x_3}}; SM = superMatrixGenerator(D1, D2, D3, D4);
superMatrixParity(SM, R, {z_0, z_1, z_2})

Caveat
======

See also
========

  * parity -- parity of an element of a super ring.

Ways to use superMatrixParity:
==============================

  * "superMatrixParity(SuperMatrix,Ring,List)"

For the programmer
==================

The object superMatrixParity, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in SuperLinearAlgebra.m2:691:0.

superRing -- Makes a super ring from two polynomial rings.
**********************************************************

  * Usage:
        R = superRing(R1, R2)
  * Inputs:
      * R1, a polynomial ring (Macaulay2Doc),
      * R2, a polynomial ring (Macaulay2Doc),
  * Outputs:
      * R, a quotient ring (Macaulay2Doc), which has both
        invertible and skew symmetric variables, superRing

Description
===========

Let $R_1$ and $R_2$ be Two Polynomial rings on different set of variables A
superRing is a new polynomial ring with three sets of variables. One set comes
from $R_1$ and the second one is the inverse of it.

For example, if we have x as a variable in $R_1$, then there is a new variable,
say $inverseVariable_0$ which is the inverse of $x$. The third set of variables
comes from $R_2$. We redefine this set to be a set of skew-symmetric variables.
So superRing of $R_1$ and $R_2$ is a quotient ring, which has both invertible
and skew symmetric variables. If the coefficient ring is a field, then we get a
super algebra.

+-----------------------------------------------------------------------------+
|i1 : R1=QQ[x_1..x_5]                                                         |
|                                                                             |
|o1 = R1                                                                      |
|                                                                             |
|o1 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i2 : R2=QQ[z_1..z_3]                                                         |
|                                                                             |
|o2 = R2                                                                      |
|                                                                             |
|o2 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i3 : superRing(R1, R2)                                                       |
|                                                                             |
|                                      QQ[x ..x , inverseVariable ..inverseVar|
|                                          1   5                 0            |
|o3 = ------------------------------------------------------------------------|
|     (x inverseVariable  - 1, x inverseVariable  - 1, x inverseVariable  - 1,|
|       1               0       2               1       3               2     |
|                                                                             |
|o3 : QuotientRing                                                            |
|-----------------------------------------------------------------------------|
|iable , z ..z ]                                                              |
|     4   1   3                                                               |
|------------------------------------------------                             |
| x inverseVariable  - 1, x inverseVariable  - 1)                             |
|  4               3       5               4                                  |
+-----------------------------------------------------------------------------+

Caveat
======

Ways to use superRing:
======================

  * "superRing(PolynomialRing,PolynomialRing)"

For the programmer
==================

The object superRing, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in SuperLinearAlgebra.m2:441:0.

superTrace -- Super trace of a homogeneous super matrix.
********************************************************

  * Usage:
        P = superTrace(SM, R, L)
  * Inputs:
      * SM, an instance of the type SuperMatrix,
      * R, a ring (Macaulay2Doc), superRing
      * L, a list (Macaulay2Doc),
  * Outputs:
      * P, a quotient ring (Macaulay2Doc),

Description
===========

Let $A^{p|q}=Ax_1 \oplus \cdots \oplus Ax_p \oplus Ae_1\oplus \cdots \oplus
Ae_q$ be a free module over $A$, where $x_i$s are even and $e_j$s are odd
generators. A (homogeneous) morphism $T:A^{p|q}\rightarrow A^{r|s}$ has a
matrix representation. Denote the matrix by $T$ then we have $T=\begin{pmatrix}
T1&T2\\ T3&T4\end{pmatrix}$.

The super trace of $T$ is defined by $superTrace(T)= Trace(T_1)-(-1)^{p(T)}
Trace(T_4)$. The inputs of this function are a SuperMatrix, a ring, which
should have skew-symmetric variables, and a list, which is the list of
skew-symmetric variables that are used in the superMatrixGenerator. In case
that the superMatrix is homogeneous, the output is the super trace of the
superMatrix.

+-----------------------------------------------+
|i1 : R1 = QQ[x_0..x_3];                        |
+-----------------------------------------------+
|i2 : R2 = QQ[z_0..z_2];                        |
+-----------------------------------------------+
|i3 : R = superRing(R1, R2);                    |
+-----------------------------------------------+
|i4 : P1 = matrix{{x_0, x_1}, {x_2, x_3}};      |
|                                               |
|             2      2                          |
|o4 : Matrix R  <-- R                           |
+-----------------------------------------------+
|i5 : P2 = matrix{{0, 0}, {0, 0}};              |
|                                               |
|              2       2                        |
|o5 : Matrix ZZ  <-- ZZ                         |
+-----------------------------------------------+
|i6 : P3 = matrix{{0, 0}, {0, 0}};              |
|                                               |
|              2       2                        |
|o6 : Matrix ZZ  <-- ZZ                         |
+-----------------------------------------------+
|i7 : P4 = matrix{{x_1, x_2}, {x_0, x_1}};      |
|                                               |
|             2      2                          |
|o7 : Matrix R  <-- R                           |
+-----------------------------------------------+
|i8 : SP = superMatrixGenerator(P1, P2, P3, P4);|
+-----------------------------------------------+
|i9 : superTrace(SP, R, {z_0, z_1})             |
|                                               |
|o9 = x  - 2x  + x                              |
|      0     1    3                             |
|                                               |
|o9 : R                                         |
+-----------------------------------------------+

Caveat
======

Ways to use superTrace:
=======================

  * "superTrace(SuperMatrix,Ring,List)"

For the programmer
==================

The object superTrace, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in SuperLinearAlgebra.m2:532:0.