This is BooleanGB.info, produced by Macaulay2, version 1.21

BooleanGB -- Groebner Bases for Ideals in Boolean Polynomial Quotient Ring
**************************************************************************

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

BooleanGB is a package to compute Groebner Bases in lexicographic order for
polynomial ideals in the quotient ring $\mathbb F_2[x_1, \ldots, x_n]/J$, where
J is the ideal generated by field polynomials $x_i^2 - x_i $ for $i \in \{ 1,
\ldots, n\}$. The algorithm is implemented bitwise rather than symbolically,
which reduces the computational complexity.

+--------------------------------------+
|i1 : n = 3;                           |
+--------------------------------------+
|i2 : R = ZZ/2[vars(0)..vars(n-1)];    |
+--------------------------------------+
|i3 : J = apply( gens R, x -> x^2 + x);|
+--------------------------------------+
|i4 : QR = R/J;                        |
+--------------------------------------+
|i5 : I = ideal(a+b,b);                |
|                                      |
|o5 : Ideal of QR                      |
+--------------------------------------+
|i6 : gbBoolean I                      |
|                                      |
|o6 = ideal (b, a)                     |
|                                      |
|o6 : Ideal of QR                      |
+--------------------------------------+
|i7 : gens gb I                        |
|                                      |
|o7 = | b a |                          |
|                                      |
|              1        2              |
|o7 : Matrix QR  <--- QR               |
+--------------------------------------+

Caveat
======

BooleanGB always assumes that the ideal is in the Boolean quotient ring, i.e.,
$\mathbb F_2[x_1, \ldots, x_n] / <x_1^2-x_1, \ldots, x_n^2-x_n >$, regardless
of the ring in which the ideal was generated. Thus, any ideal in the base ring
is promoted to the quotient ring automatically, even if the quotient ring has
not been defined.

Authors
=======

  * Franziska Hinkelmann (see http://www.math.vt.edu/people/fhinkel/ )
    <fhinkel@vt.edu>
  * Mike Stillman
  * Elizabeth Arnold

Version
=======

This documentation describes version 1.0 of BooleanGB.

Source code
===========

The source code from which this documentation is derived is in the file
BooleanGB.m2 (see common/share/Macaulay2/BooleanGB.m2 ).

Exports
=======

  * Functions and commands
      * "gbBoolean" -- see gbBoolean(Ideal), --
        Compute Groebner Basis for Ideals in Boolean Polynomial Quotient Ring
  * Methods
      * gbBoolean(Ideal) -- Compute Groebner Basis
        for Ideals in Boolean Polynomial Quotient Ring

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

The object BooleanGB, is a package (Macaulay2Doc).

gbBoolean(Ideal) -- Compute Groebner Basis for Ideals in Boolean Polynomial Quotient Ring
*****************************************************************************************

Synopsis
========

  * Function: gbBoolean,
  * Usage:
        gbBoolean I
  * Inputs:
      * I, an ideal (Macaulay2Doc),
  * Outputs:
      * J, an ideal (Macaulay2Doc), the reduced Groebner basis of
        I

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

gbBoolean computes $J$, a reduced Groebner basis in lexicographic order for the
ideal $I$ in the Boolean quotient ring, i.e., $\mathbb F_2[x_1, \ldots, x_n] /
<x_1^2-x_1, \ldots, x_n^2-x_n >$. The algorithm is implemented bitwise rather
than symbolic, which reduces the computational complexity.

+-------------------------------------+
|i1 : n = 3                           |
|                                     |
|o1 = 3                               |
+-------------------------------------+
|i2 : R = ZZ/2[vars(0)..vars(n-1)]    |
|                                     |
|o2 = R                               |
|                                     |
|o2 : PolynomialRing                  |
+-------------------------------------+
|i3 : J = apply( gens R, x -> x^2 + x)|
|                                     |
|       2       2       2             |
|o3 = {a  + a, b  + b, c  + c}        |
|                                     |
|o3 : List                            |
+-------------------------------------+
|i4 : QR = R/J                        |
|                                     |
|o4 = QR                              |
|                                     |
|o4 : QuotientRing                    |
+-------------------------------------+
|i5 : I = ideal(a+b,b)                |
|                                     |
|o5 = ideal (a + b, b)                |
|                                     |
|o5 : Ideal of QR                     |
+-------------------------------------+
|i6 : gbBoolean I                     |
|                                     |
|o6 = ideal (b, a)                    |
|                                     |
|o6 : Ideal of QR                     |
+-------------------------------------+
|i7 : gens gb I                       |
|                                     |
|o7 = | b a |                         |
|                                     |
|              1        2             |
|o7 : Matrix QR  <--- QR              |
+-------------------------------------+

Caveat
======

gbBoolean always assumes that the ideal is in the Boolean quotient ring, i.e.,
$\mathbb F_2[x_1, \ldots, x_n] / <x_1^2-x_1, \ldots, x_n^2-x_n >$, regardless
of the ring in which the ideal was generated. Thus, gbBoolean promotes an ideal
in the base ring to the quotient ring automatically, even if the quotient ring
has not been defined.

See also
========

  * gb (Macaulay2Doc) -- compute a Gröbner basis

Ways to use this method:
========================

  * gbBoolean(Ideal) -- Compute Groebner Basis for
    Ideals in Boolean Polynomial Quotient Ring