The cl-buchberger Reference Manual
Table of Contents
The cl-buchberger Reference Manual
This is the cl-buchberger Reference Manual, version 0.0.4,
generated automatically by Declt version 3.0 "Montgomery Scott"
on Tue Dec 22 12:06:06 2020 GMT+0.
1 Introduction
cl-buchberger
=============
Juan M. Bello Rivas
June 2009
image::images/cl-buchberger.png[Screenshot]
Overview
--------
cl-buchberger is a Common Lisp implementation of Buchberger's
algorithm for the computation of Gröbner bases.
Currently this package can compute Gröbner bases of ideals in
multivariate polynomial rings over the rationals.
Availability
------------
Download the latest version of this package from
http://github.com/jmbr/cl-buchberger/tarball/master
Portability
-----------
The code has been tested under
1. ABCL 0.16.0-dev
2. CLISP 2.47
3. ECL 9.6.1
4. SBCL 1.0.29
License
-------
cl-buchberger is released under the GNU GPLv2.
Usage
-----
Loading the package
~~~~~~~~~~~~~~~~~~~
You need ASDF installed in your system. To load cl-buchberger,
write:
------------------------------------------------------
CL-USER> (asdf:operate 'asdf:load-op :cl-buchberger)
NIL
CL-USER> (use-package :cl-buchberger)
T
------------------------------------------------------
Defining a polynomial ring
~~~~~~~~~~~~~~~~~~~~~~~~~~
There's a default ring which is the ring of polynomials on X, Y, Z
over the rationals. To define custom polynomial rings use:
---------------------------------------------------------
CL-USER> (make-instance 'polynomial-ring :variables
(list 'x 'y 'z 'u 'w 'r 's 't))
#
---------------------------------------------------------
To change the default ring just bind \*RING\* to whatever you want:
---------------------------------------------------------------------
CL-USER> (defparameter *ring*
(make-instance 'polynomial-ring :variables (list 'x 'y))
"QQ[X, Y]")
*RING*
CL-USER> *ring*
#
---------------------------------------------------------------------
Defining polynomials
~~~~~~~~~~~~~~~~~~~~
Polynomials are defined using a list of terms where each term is a
list with the coefficient as its first term and where the remaining
elements are variable exponents. For example: (1 1 2 3) would
correspond to the term $$`xy^2z^3`$$
Thus, to create a polynomial write:
-------------------------------------------------------------------
CL-USER> (defparameter *l* (make-polynomial '((1 3 0) (-2 1 1))))
*L*
CL-USER> *l*
#
CL-USER> (defparameter *m* (make-polynomial '((3 4 1) (1 2 0))))
*M*
CL-USER> *m*
#
-------------------------------------------------------------------
Polynomial arithmetic
~~~~~~~~~~~~~~~~~~~~~
Use the generic functions RING+, RING-, RING*, and RING/ for the usual
arithmetic operations.
The function RING/ is the multivariate polynomial division algorithm
and takes a polynomial and a sequence of divisors to produce a
sequence of quotients and a remainder.
To set the default monomial ordering, bind \*MONOMIAL-ORDERING\* to the
relevant function (which defaults to LEX>). For example:
--------------------------------------------------------
CL-USER> (defparameter *monomial-ordering* #'grevlex>)
*MONOMIAL-ORDERING*
--------------------------------------------------------
Also, you can use the macro WITH-MONOMIAL-ORDERING to define the
current monomial ordering as in:
-------------------------------------------
CL-USER> (with-monomial-ordering #'grlex>
(ring/ *m* *l*))
#(#)
#
-------------------------------------------
Computing Gröbner bases
~~~~~~~~~~~~~~~~~~~~~~~
The functions GROEBNER and REDUCED-GROEBNER compute Gröbner bases and
reduced Gröbner bases respectively. Both of them take a sequence of
polynomials as parameter. An alternative is to construct a polynomial
ideal and obtain its reduced Gröbner basis using the BASIS generic
function.
For example:
--------------------------------------------------------------------------------
CL-USER> (defparameter *katsura-3*
(make-ideal (list (make-polynomial '((1 1 0 0) (2 0 1 0) (2 0 0 1) (-1 0 0 0)))
(make-polynomial '((1 2 0 0) (-1 1 0 0) (2 0 2 0) (2 0 0 2)))
(make-polynomial '((2 1 1 0) (2 0 1 1) (-1 0 1 0)))))
"Katsura-3 over QQ[x, y, z] (default ring)")
*KATSURA-3*
CL-USER> *katsura-3*
# :GENERATORS #(#
#
#)>
CL-USER> (basis *katsura-3*)
#(#
#
#)
--------------------------------------------------------------------------------
Bug reports
-----------
There's a bug tracker available at http://github.com/jmbr/cl-buchberger/issues
2 Systems
The main system appears first, followed by any subsystem dependency.
2.1 cl-buchberger
- Author
Juan M. Bello Rivas <jmbr@superadditive.com>
- License
GNU GPLv2
- Description
cl-buchberger: A Common Lisp implementation of Buchberger’s algorithm.
- Version
0.0.4
- Source
cl-buchberger.asd (file)
- Components
-
3 Files
Files are sorted by type and then listed depth-first from the systems
components trees.
3.1 Lisp
3.1.1 cl-buchberger.asd
- Location
cl-buchberger.asd
- Systems
cl-buchberger (system)
- Packages
com.superadditive.cl-buchberger-system
3.1.2 cl-buchberger/package.lisp
- Parent
cl-buchberger (system)
- Location
package.lisp
- Packages
com.superadditive.cl-buchberger
3.1.3 cl-buchberger/vector.lisp
- Dependency
package.lisp (file)
- Parent
cl-buchberger (system)
- Location
vector.lisp
- Internal Definitions
-
3.1.4 cl-buchberger/ring.lisp
- Dependency
vector.lisp (file)
- Parent
cl-buchberger (system)
- Location
ring.lisp
- Internal Definitions
ring (class)
3.1.5 cl-buchberger/ring-element.lisp
- Dependency
ring.lisp (file)
- Parent
cl-buchberger (system)
- Location
ring-element.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.6 cl-buchberger/term.lisp
- Dependency
ring-element.lisp (file)
- Parent
cl-buchberger (system)
- Location
term.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.7 cl-buchberger/monomial-orderings.lisp
- Dependency
term.lisp (file)
- Parent
cl-buchberger (system)
- Location
monomial-orderings.lisp
- Exported Definitions
-
3.1.8 cl-buchberger/polynomial-ring.lisp
- Dependency
monomial-orderings.lisp (file)
- Parent
cl-buchberger (system)
- Location
polynomial-ring.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.9 cl-buchberger/polynomial.lisp
- Dependency
polynomial-ring.lisp (file)
- Parent
cl-buchberger (system)
- Location
polynomial.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.10 cl-buchberger/arithmetic.lisp
- Dependency
polynomial.lisp (file)
- Parent
cl-buchberger (system)
- Location
arithmetic.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.11 cl-buchberger/groebner.lisp
- Dependency
arithmetic.lisp (file)
- Parent
cl-buchberger (system)
- Location
groebner.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.12 cl-buchberger/ideal.lisp
- Dependency
groebner.lisp (file)
- Parent
cl-buchberger (system)
- Location
ideal.lisp
- Exported Definitions
-
- Internal Definitions
-
4 Packages
Packages are listed by definition order.
4.1 com.superadditive.cl-buchberger-system
- Source
cl-buchberger.asd
- Use List
- asdf/interface
- common-lisp
4.2 com.superadditive.cl-buchberger
- Source
package.lisp (file)
- Nickname
cl-buchberger
- Use List
- asdf/interface
- common-lisp
- Exported Definitions
-
- Internal Definitions
-
5 Definitions
Definitions are sorted by export status, category, package, and then by
lexicographic order.
5.1 Exported definitions
5.1.1 Special variables
- Special Variable: *monomial-ordering*
-
Specifies the ordering of monomials in a polynomial
- Package
com.superadditive.cl-buchberger
- Source
monomial-orderings.lisp (file)
- Special Variable: *ring*
-
Default polynomial ring
- Package
com.superadditive.cl-buchberger
- Source
polynomial-ring.lisp (file)
5.1.2 Macros
- Macro: doterms (VAR POLY &optional RESULTFORM) &body BODY
-
- Package
com.superadditive.cl-buchberger
- Source
polynomial.lisp (file)
- Macro: with-monomial-ordering ORDERING &body BODY
-
- Package
com.superadditive.cl-buchberger
- Source
monomial-orderings.lisp (file)
- Macro: with-polynomial-ring RING &body BODY
-
- Package
com.superadditive.cl-buchberger
- Source
polynomial-ring.lisp (file)
5.1.3 Functions
- Function: degree M
-
Returns the total degree of a monomial
- Package
com.superadditive.cl-buchberger
- Source
monomial-orderings.lisp (file)
- Function: grevlex> M1 M2
-
Graded Reverse Lex Order
- Package
com.superadditive.cl-buchberger
- Source
monomial-orderings.lisp (file)
- Function: grlex> M1 M2
-
Graded Lex Order
- Package
com.superadditive.cl-buchberger
- Source
monomial-orderings.lisp (file)
- Function: groebner POLYNOMIALS
-
Returns a Groebner basis for the ideal generated by the specified
array of polynomials.
- Package
com.superadditive.cl-buchberger
- Source
groebner.lisp (file)
- Function: lex> M1 M2
-
Lexicographic Order
- Package
com.superadditive.cl-buchberger
- Source
monomial-orderings.lisp (file)
- Function: make-ideal GENERATORS
-
Create a new ideal generated by the elements contained in the
‘generators’ list.
- Package
com.superadditive.cl-buchberger
- Source
ideal.lisp (file)
- Function: make-polynomial TERM-LIST &key RING
-
- Package
com.superadditive.cl-buchberger
- Source
polynomial.lisp (file)
- Function: mapterm FUNCTION POLYNOMIAL
-
Apply FUNCTION to successive terms of POLYNOMIAL. Return list
of FUNCTION return values.
- Package
com.superadditive.cl-buchberger
- Source
polynomial.lisp (file)
- Function: reduce-gb G
-
Returns a reduced Groebner basis.
- Package
com.superadditive.cl-buchberger
- Source
groebner.lisp (file)
- Function: reduced-groebner F
-
Computes and reduces a Groebner basis of the ideal generated by F.
- Package
com.superadditive.cl-buchberger
- Source
groebner.lisp (file)
- Function: s-poly F G
-
Returns the S-polynomial of f and g
- Package
com.superadditive.cl-buchberger
- Source
groebner.lisp (file)
5.1.4 Generic functions
- Generic Function: basis IDEAL
-
Returns an array of generators for ‘ideal’.
- Package
com.superadditive.cl-buchberger
- Source
ideal.lisp (file)
- Methods
- Method: basis (IDEAL ideal)
-
- Generic Function: lc POLY
-
Returns the leading coefficient of a polynomial
- Package
com.superadditive.cl-buchberger
- Source
polynomial.lisp (file)
- Methods
- Method: lc (POLY polynomial)
-
- Generic Function: lm POLY
-
Returns the leading monomial of a polynomial.
That is, the leading term with 1 as coefficient
- Package
com.superadditive.cl-buchberger
- Source
polynomial.lisp (file)
- Methods
- Method: lm (POLY polynomial)
-
- Generic Function: lt POLY
-
Returns the leading term of a polynomial.
- Package
com.superadditive.cl-buchberger
- Source
polynomial.lisp (file)
- Methods
- Method: lt (POLY polynomial)
-
- Generic Function: member-p ELEMENT IDEAL
-
- Package
com.superadditive.cl-buchberger
- Source
ideal.lisp (file)
- Methods
- Method: member-p (ELEMENT ring-element) (IDEAL ideal)
-
- Generic Function: multideg POLY
-
Returns the multidegree of a polynomial
- Package
com.superadditive.cl-buchberger
- Source
polynomial.lisp (file)
- Methods
- Method: multideg (POLY polynomial)
-
- Generic Function: ring* ELEMENT &rest MORE-ELEMENTS
-
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: ring* (POLY polynomial) &rest MORE-POLYNOMIALS
-
- Source
arithmetic.lisp (file)
- Generic Function: ring+ ELEMENT &rest MORE-ELEMENTS
-
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: ring+ (POLY polynomial) &rest MORE-POLYNOMIALS
-
- Source
arithmetic.lisp (file)
- Generic Function: ring- ELEMENT &rest MORE-ELEMENTS
-
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: ring- (POLY polynomial) &rest MORE-POLYNOMIALS
-
- Source
arithmetic.lisp (file)
- Generic Function: ring-equal-p E1 E2
-
Returns t if e1 equals e2, nil otherwise
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: ring-equal-p (T1 term) (T2 term)
-
- Source
term.lisp (file)
- Generic Function: ring-identity-p ELEMENT
-
Returns t if element is the multiplicative
identity, nil otherwise
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Generic Function: ring-lcm E1 E2
-
Returns the LCM of e1 and e2
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: ring-lcm (R1 rational) (R2 rational)
-
LCM over the rationals.
- Source
arithmetic.lisp (file)
- Method: ring-lcm (T1 term) (T2 term)
-
Returns LCM(t1, t2)
- Source
arithmetic.lisp (file)
- Generic Function: ring-zero-p ELEMENT
-
Returns t if element is zero, nil otherwise
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: ring-zero-p (POLY polynomial)
-
- Source
polynomial.lisp (file)
- Method: ring-zero-p (TM term)
-
- Source
term.lisp (file)
- Generic Function: ring/ ELEMENT &rest MORE-ELEMENTS
-
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: ring/ (POLY polynomial) &rest MORE-POLYNOMIALS
-
- Source
arithmetic.lisp (file)
5.1.5 Classes
- Class: polynomial ()
-
- Package
com.superadditive.cl-buchberger
- Source
polynomial.lisp (file)
- Direct superclasses
ring-element (class)
- Direct methods
-
- Direct slots
- Slot: base-ring
-
- Initargs
:ring
- Initform
(error "you must specify a base ring")
- Readers
base-ring (generic function)
- Writers
(setf base-ring) (generic function)
- Slot: terms
-
- Type
hash-table
- Initargs
:terms
- Initform
(make-hash-table :test (function equalp))
- Readers
terms (generic function)
- Writers
(setf terms) (generic function)
- Class: polynomial-ring ()
-
- Package
com.superadditive.cl-buchberger
- Source
polynomial-ring.lisp (file)
- Direct superclasses
ring (class)
- Direct methods
-
- Direct slots
- Slot: variables
-
- Initargs
:variables
- Initform
(error "you must specify at least one variable")
- Readers
variables (generic function)
- Slot: base-field
-
- Initargs
:base-field
- Initform
(quote rational)
- Readers
base-field (generic function)
5.2 Internal definitions
5.2.1 Functions
- Function: criterion G B I J FI FJ
-
Returns t if S_{ij} has to be considered
- Package
com.superadditive.cl-buchberger
- Source
groebner.lisp (file)
- Function: make-index-set S
-
- Package
com.superadditive.cl-buchberger
- Source
groebner.lisp (file)
- Function: normal-form F G
-
- Package
com.superadditive.cl-buchberger
- Source
groebner.lisp (file)
- Function: pair-member L M B
-
- Package
com.superadditive.cl-buchberger
- Source
groebner.lisp (file)
- Function: terms->list POLY
-
- Package
com.superadditive.cl-buchberger
- Source
polynomial.lisp (file)
- Function: vector+ V1 V2
-
Returns the sum of the two vectors V1 and V2.
- Package
com.superadditive.cl-buchberger
- Source
vector.lisp (file)
- Function: vector- V1 V2
-
Returns the difference of the two vectors V1 and V2.
- Package
com.superadditive.cl-buchberger
- Source
vector.lisp (file)
- Function: vector-zero-p V
-
Returns T if every compoment in V is zero.
- Package
com.superadditive.cl-buchberger
- Source
vector.lisp (file)
- Function: vector= V1 V2
-
Returns T if both vectors V1 and V2 have the same components, NIL
otherwise.
- Package
com.superadditive.cl-buchberger
- Source
vector.lisp (file)
- Function: vector> V1 V2
-
Returns T if every component in V1 is greater than the
corresponding component in V2, NIL otherwise.
- Package
com.superadditive.cl-buchberger
- Source
vector.lisp (file)
5.2.2 Generic functions
- Generic Function: add E1 E2
-
Adds ring elements
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: add (P1 polynomial) (P2 polynomial)
-
Returns the sum of two polynomials
- Source
arithmetic.lisp (file)
- Method: add (POLY polynomial) (TM term)
-
Returns the polynomial with the added term
- Source
arithmetic.lisp (file)
- Generic Function: base-field OBJECT
-
- Package
com.superadditive.cl-buchberger
- Methods
- Method: base-field (POLYNOMIAL-RING polynomial-ring)
-
automatically generated reader method
- Source
polynomial-ring.lisp (file)
- Generic Function: base-ring OBJECT
-
- Generic Function: (setf base-ring) NEW-VALUE OBJECT
-
- Package
com.superadditive.cl-buchberger
- Methods
- Method: base-ring (POLYNOMIAL polynomial)
-
automatically generated reader method
- Source
polynomial.lisp (file)
- Method: (setf base-ring) NEW-VALUE (POLYNOMIAL polynomial)
-
automatically generated writer method
- Source
polynomial.lisp (file)
- Generic Function: coefficient OBJECT
-
- Generic Function: (setf coefficient) NEW-VALUE OBJECT
-
- Package
com.superadditive.cl-buchberger
- Methods
- Method: coefficient (TERM term)
-
automatically generated reader method
- Source
term.lisp (file)
- Method: (setf coefficient) NEW-VALUE (TERM term)
-
automatically generated writer method
- Source
term.lisp (file)
- Generic Function: div E1 E2
-
Divides ring elements
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: div (T1 term) (T2 term)
-
Returns the quotient of two terms
- Source
arithmetic.lisp (file)
- Generic Function: divides-p E1 E2
-
Returns t if e1 divides e2 in the base ring
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: divides-p (T1 term) (P polynomial)
-
- Source
arithmetic.lisp (file)
- Method: divides-p (T1 term) (T2 term)
-
- Source
arithmetic.lisp (file)
- Generic Function: divmod ELEMENT DIVISORS
-
Returns quotient(s) and remainder if we are working
in an Euclidean ring.
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: divmod (F polynomial) FS
-
Divides F by the polynomials in the sequence FS and returns the
quotients (as an array) and a remainder.
- Source
arithmetic.lisp (file)
- Generic Function: element->string ELEMENT &key RING LEADING-TERM &allow-other-keys
-
Returns a human-readable string representation of
an element
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: element->string (POLY polynomial) &key
-
- Source
polynomial.lisp (file)
- Method: element->string (TM term) &key RING LEADING-TERM
-
- Source
term.lisp (file)
- Generic Function: generators OBJECT
-
- Generic Function: (setf generators) NEW-VALUE OBJECT
-
- Package
com.superadditive.cl-buchberger
- Methods
- Method: generators (IDEAL ideal)
-
automatically generated reader method
- Source
ideal.lisp (file)
- Method: (setf generators) NEW-VALUE (IDEAL ideal)
-
automatically generated writer method
- Source
ideal.lisp (file)
- Generic Function: monomial OBJECT
-
- Generic Function: (setf monomial) NEW-VALUE OBJECT
-
- Package
com.superadditive.cl-buchberger
- Methods
- Method: monomial (TERM term)
-
automatically generated reader method
- Source
term.lisp (file)
- Method: (setf monomial) NEW-VALUE (TERM term)
-
automatically generated writer method
- Source
term.lisp (file)
- Generic Function: mul E1 E2
-
Multiplies ring elements
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: mul (P1 polynomial) (P2 polynomial)
-
Returns the product of two polynomials
- Source
arithmetic.lisp (file)
- Method: mul (POLY polynomial) (TM term)
-
Returns the product of a polynomial by a term
- Source
arithmetic.lisp (file)
- Method: mul (T1 term) (T2 term)
-
Multiplies two terms storing the result in the first term.
- Source
arithmetic.lisp (file)
- Method: mul (T1 term) (NUM number)
-
- Source
arithmetic.lisp (file)
- Method: mul (POLY polynomial) (NUM number)
-
- Source
arithmetic.lisp (file)
- Generic Function: operands CONDITION
-
- Package
com.superadditive.cl-buchberger
- Methods
- Method: operands (CONDITION ring-division-by-zero)
-
- Source
ring-element.lisp (file)
- Generic Function: ring OBJECT
-
- Generic Function: (setf ring) NEW-VALUE OBJECT
-
- Package
com.superadditive.cl-buchberger
- Methods
- Method: ring (IDEAL ideal)
-
automatically generated reader method
- Source
ideal.lisp (file)
- Method: (setf ring) NEW-VALUE (IDEAL ideal)
-
automatically generated writer method
- Source
ideal.lisp (file)
- Generic Function: ring-copy ELEMENT
-
Returns a deep copy of an element
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: ring-copy (POLY polynomial)
-
Returns a (deep) copy of the given polynomial
- Source
polynomial.lisp (file)
- Generic Function: ring-mod ELEMENT &rest MORE-ELEMENTS
-
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: ring-mod F &rest FS
-
- Source
arithmetic.lisp (file)
- Generic Function: sub E1 E2
-
Subtracts ring elements
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Methods
- Method: sub (P1 polynomial) (P2 polynomial)
-
Returns the result of subtracting two polynomials.
- Source
arithmetic.lisp (file)
- Method: sub (POLY polynomial) (TM term)
-
Returns the result of subtracting the term from the polynomial
- Source
arithmetic.lisp (file)
- Generic Function: terms OBJECT
-
- Generic Function: (setf terms) NEW-VALUE OBJECT
-
- Package
com.superadditive.cl-buchberger
- Methods
- Method: terms (POLYNOMIAL polynomial)
-
automatically generated reader method
- Source
polynomial.lisp (file)
- Method: (setf terms) NEW-VALUE (POLYNOMIAL polynomial)
-
automatically generated writer method
- Source
polynomial.lisp (file)
- Generic Function: variables OBJECT
-
- Package
com.superadditive.cl-buchberger
- Methods
- Method: variables (POLYNOMIAL-RING polynomial-ring)
-
automatically generated reader method
- Source
polynomial-ring.lisp (file)
5.2.3 Conditions
- Condition: ring-division-by-zero ()
-
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Direct superclasses
error (condition)
- Direct methods
operands (method)
- Direct slots
- Slot: operands
-
- Initargs
:operands
- Readers
operands (generic function)
5.2.4 Classes
- Class: ideal ()
-
- Package
com.superadditive.cl-buchberger
- Source
ideal.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: ring
-
- Initargs
:ring
- Initform
(error "you must specify a ring for the polynomial ideal.")
- Readers
ring (generic function)
- Writers
(setf ring) (generic function)
- Slot: generators
-
- Initargs
:generators
- Initform
(error "you must give a set of generators for the ideal.")
- Readers
generators (generic function)
- Writers
(setf generators) (generic function)
- Class: ring ()
-
Base class for rings.
- Package
com.superadditive.cl-buchberger
- Source
ring.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
polynomial-ring (class)
- Class: ring-element ()
-
Base class for ring elements.
- Package
com.superadditive.cl-buchberger
- Source
ring-element.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
-
- Direct methods
member-p (method)
- Direct slots
- Slot: base-ring
-
- Class: term ()
-
- Package
com.superadditive.cl-buchberger
- Source
term.lisp (file)
- Direct superclasses
ring-element (class)
- Direct methods
-
- Direct slots
- Slot: coefficient
-
- Initargs
:coefficient
- Initform
0
- Readers
coefficient (generic function)
- Writers
(setf coefficient) (generic function)
- Slot: monomial
-
- Type
vector
- Initargs
:monomial
- Initform
#()
- Readers
monomial (generic function)
- Writers
(setf monomial) (generic function)
Appendix A Indexes
A.1 Concepts
| Index Entry | | Section |
|
C | | |
| cl-buchberger.asd: | | The cl-buchberger․asd file |
| cl-buchberger/arithmetic.lisp: | | The cl-buchberger/arithmetic․lisp file |
| cl-buchberger/groebner.lisp: | | The cl-buchberger/groebner․lisp file |
| cl-buchberger/ideal.lisp: | | The cl-buchberger/ideal․lisp file |
| cl-buchberger/monomial-orderings.lisp: | | The cl-buchberger/monomial-orderings․lisp file |
| cl-buchberger/package.lisp: | | The cl-buchberger/package․lisp file |
| cl-buchberger/polynomial-ring.lisp: | | The cl-buchberger/polynomial-ring․lisp file |
| cl-buchberger/polynomial.lisp: | | The cl-buchberger/polynomial․lisp file |
| cl-buchberger/ring-element.lisp: | | The cl-buchberger/ring-element․lisp file |
| cl-buchberger/ring.lisp: | | The cl-buchberger/ring․lisp file |
| cl-buchberger/term.lisp: | | The cl-buchberger/term․lisp file |
| cl-buchberger/vector.lisp: | | The cl-buchberger/vector․lisp file |
|
F | | |
| File, Lisp, cl-buchberger.asd: | | The cl-buchberger․asd file |
| File, Lisp, cl-buchberger/arithmetic.lisp: | | The cl-buchberger/arithmetic․lisp file |
| File, Lisp, cl-buchberger/groebner.lisp: | | The cl-buchberger/groebner․lisp file |
| File, Lisp, cl-buchberger/ideal.lisp: | | The cl-buchberger/ideal․lisp file |
| File, Lisp, cl-buchberger/monomial-orderings.lisp: | | The cl-buchberger/monomial-orderings․lisp file |
| File, Lisp, cl-buchberger/package.lisp: | | The cl-buchberger/package․lisp file |
| File, Lisp, cl-buchberger/polynomial-ring.lisp: | | The cl-buchberger/polynomial-ring․lisp file |
| File, Lisp, cl-buchberger/polynomial.lisp: | | The cl-buchberger/polynomial․lisp file |
| File, Lisp, cl-buchberger/ring-element.lisp: | | The cl-buchberger/ring-element․lisp file |
| File, Lisp, cl-buchberger/ring.lisp: | | The cl-buchberger/ring․lisp file |
| File, Lisp, cl-buchberger/term.lisp: | | The cl-buchberger/term․lisp file |
| File, Lisp, cl-buchberger/vector.lisp: | | The cl-buchberger/vector․lisp file |
|
L | | |
| Lisp File, cl-buchberger.asd: | | The cl-buchberger․asd file |
| Lisp File, cl-buchberger/arithmetic.lisp: | | The cl-buchberger/arithmetic․lisp file |
| Lisp File, cl-buchberger/groebner.lisp: | | The cl-buchberger/groebner․lisp file |
| Lisp File, cl-buchberger/ideal.lisp: | | The cl-buchberger/ideal․lisp file |
| Lisp File, cl-buchberger/monomial-orderings.lisp: | | The cl-buchberger/monomial-orderings․lisp file |
| Lisp File, cl-buchberger/package.lisp: | | The cl-buchberger/package․lisp file |
| Lisp File, cl-buchberger/polynomial-ring.lisp: | | The cl-buchberger/polynomial-ring․lisp file |
| Lisp File, cl-buchberger/polynomial.lisp: | | The cl-buchberger/polynomial․lisp file |
| Lisp File, cl-buchberger/ring-element.lisp: | | The cl-buchberger/ring-element․lisp file |
| Lisp File, cl-buchberger/ring.lisp: | | The cl-buchberger/ring․lisp file |
| Lisp File, cl-buchberger/term.lisp: | | The cl-buchberger/term․lisp file |
| Lisp File, cl-buchberger/vector.lisp: | | The cl-buchberger/vector․lisp file |
|
A.2 Functions
| Index Entry | | Section |
|
( | | |
| (setf base-ring) : | | Internal generic functions |
| (setf base-ring) : | | Internal generic functions |
| (setf coefficient) : | | Internal generic functions |
| (setf coefficient) : | | Internal generic functions |
| (setf generators) : | | Internal generic functions |
| (setf generators) : | | Internal generic functions |
| (setf monomial) : | | Internal generic functions |
| (setf monomial) : | | Internal generic functions |
| (setf ring) : | | Internal generic functions |
| (setf ring) : | | Internal generic functions |
| (setf terms) : | | Internal generic functions |
| (setf terms) : | | Internal generic functions |
|
A | | |
| add : | | Internal generic functions |
| add : | | Internal generic functions |
| add : | | Internal generic functions |
|
B | | |
| base-field : | | Internal generic functions |
| base-field : | | Internal generic functions |
| base-ring : | | Internal generic functions |
| base-ring : | | Internal generic functions |
| basis : | | Exported generic functions |
| basis : | | Exported generic functions |
|
C | | |
| coefficient : | | Internal generic functions |
| coefficient : | | Internal generic functions |
| criterion : | | Internal functions |
|
D | | |
| degree : | | Exported functions |
| div : | | Internal generic functions |
| div : | | Internal generic functions |
| divides-p : | | Internal generic functions |
| divides-p : | | Internal generic functions |
| divides-p : | | Internal generic functions |
| divmod : | | Internal generic functions |
| divmod : | | Internal generic functions |
| doterms : | | Exported macros |
|
E | | |
| element->string : | | Internal generic functions |
| element->string : | | Internal generic functions |
| element->string : | | Internal generic functions |
|
F | | |
| Function, criterion : | | Internal functions |
| Function, degree : | | Exported functions |
| Function, grevlex> : | | Exported functions |
| Function, grlex> : | | Exported functions |
| Function, groebner : | | Exported functions |
| Function, lex> : | | Exported functions |
| Function, make-ideal : | | Exported functions |
| Function, make-index-set : | | Internal functions |
| Function, make-polynomial : | | Exported functions |
| Function, mapterm : | | Exported functions |
| Function, normal-form : | | Internal functions |
| Function, pair-member : | | Internal functions |
| Function, reduce-gb : | | Exported functions |
| Function, reduced-groebner : | | Exported functions |
| Function, s-poly : | | Exported functions |
| Function, terms->list : | | Internal functions |
| Function, vector+ : | | Internal functions |
| Function, vector- : | | Internal functions |
| Function, vector-zero-p : | | Internal functions |
| Function, vector= : | | Internal functions |
| Function, vector> : | | Internal functions |
|
G | | |
| generators : | | Internal generic functions |
| generators : | | Internal generic functions |
| Generic Function, (setf base-ring) : | | Internal generic functions |
| Generic Function, (setf coefficient) : | | Internal generic functions |
| Generic Function, (setf generators) : | | Internal generic functions |
| Generic Function, (setf monomial) : | | Internal generic functions |
| Generic Function, (setf ring) : | | Internal generic functions |
| Generic Function, (setf terms) : | | Internal generic functions |
| Generic Function, add : | | Internal generic functions |
| Generic Function, base-field : | | Internal generic functions |
| Generic Function, base-ring : | | Internal generic functions |
| Generic Function, basis : | | Exported generic functions |
| Generic Function, coefficient : | | Internal generic functions |
| Generic Function, div : | | Internal generic functions |
| Generic Function, divides-p : | | Internal generic functions |
| Generic Function, divmod : | | Internal generic functions |
| Generic Function, element->string : | | Internal generic functions |
| Generic Function, generators : | | Internal generic functions |
| Generic Function, lc : | | Exported generic functions |
| Generic Function, lm : | | Exported generic functions |
| Generic Function, lt : | | Exported generic functions |
| Generic Function, member-p : | | Exported generic functions |
| Generic Function, monomial : | | Internal generic functions |
| Generic Function, mul : | | Internal generic functions |
| Generic Function, multideg : | | Exported generic functions |
| Generic Function, operands : | | Internal generic functions |
| Generic Function, ring : | | Internal generic functions |
| Generic Function, ring* : | | Exported generic functions |
| Generic Function, ring+ : | | Exported generic functions |
| Generic Function, ring- : | | Exported generic functions |
| Generic Function, ring-copy : | | Internal generic functions |
| Generic Function, ring-equal-p : | | Exported generic functions |
| Generic Function, ring-identity-p : | | Exported generic functions |
| Generic Function, ring-lcm : | | Exported generic functions |
| Generic Function, ring-mod : | | Internal generic functions |
| Generic Function, ring-zero-p : | | Exported generic functions |
| Generic Function, ring/ : | | Exported generic functions |
| Generic Function, sub : | | Internal generic functions |
| Generic Function, terms : | | Internal generic functions |
| Generic Function, variables : | | Internal generic functions |
| grevlex> : | | Exported functions |
| grlex> : | | Exported functions |
| groebner : | | Exported functions |
|
L | | |
| lc : | | Exported generic functions |
| lc : | | Exported generic functions |
| lex> : | | Exported functions |
| lm : | | Exported generic functions |
| lm : | | Exported generic functions |
| lt : | | Exported generic functions |
| lt : | | Exported generic functions |
|
M | | |
| Macro, doterms : | | Exported macros |
| Macro, with-monomial-ordering : | | Exported macros |
| Macro, with-polynomial-ring : | | Exported macros |
| make-ideal : | | Exported functions |
| make-index-set : | | Internal functions |
| make-polynomial : | | Exported functions |
| mapterm : | | Exported functions |
| member-p : | | Exported generic functions |
| member-p : | | Exported generic functions |
| Method, (setf base-ring) : | | Internal generic functions |
| Method, (setf coefficient) : | | Internal generic functions |
| Method, (setf generators) : | | Internal generic functions |
| Method, (setf monomial) : | | Internal generic functions |
| Method, (setf ring) : | | Internal generic functions |
| Method, (setf terms) : | | Internal generic functions |
| Method, add : | | Internal generic functions |
| Method, add : | | Internal generic functions |
| Method, base-field : | | Internal generic functions |
| Method, base-ring : | | Internal generic functions |
| Method, basis : | | Exported generic functions |
| Method, coefficient : | | Internal generic functions |
| Method, div : | | Internal generic functions |
| Method, divides-p : | | Internal generic functions |
| Method, divides-p : | | Internal generic functions |
| Method, divmod : | | Internal generic functions |
| Method, element->string : | | Internal generic functions |
| Method, element->string : | | Internal generic functions |
| Method, generators : | | Internal generic functions |
| Method, lc : | | Exported generic functions |
| Method, lm : | | Exported generic functions |
| Method, lt : | | Exported generic functions |
| Method, member-p : | | Exported generic functions |
| Method, monomial : | | Internal generic functions |
| Method, mul : | | Internal generic functions |
| Method, mul : | | Internal generic functions |
| Method, mul : | | Internal generic functions |
| Method, mul : | | Internal generic functions |
| Method, mul : | | Internal generic functions |
| Method, multideg : | | Exported generic functions |
| Method, operands : | | Internal generic functions |
| Method, ring : | | Internal generic functions |
| Method, ring* : | | Exported generic functions |
| Method, ring+ : | | Exported generic functions |
| Method, ring- : | | Exported generic functions |
| Method, ring-copy : | | Internal generic functions |
| Method, ring-equal-p : | | Exported generic functions |
| Method, ring-lcm : | | Exported generic functions |
| Method, ring-lcm : | | Exported generic functions |
| Method, ring-mod : | | Internal generic functions |
| Method, ring-zero-p : | | Exported generic functions |
| Method, ring-zero-p : | | Exported generic functions |
| Method, ring/ : | | Exported generic functions |
| Method, sub : | | Internal generic functions |
| Method, sub : | | Internal generic functions |
| Method, terms : | | Internal generic functions |
| Method, variables : | | Internal generic functions |
| monomial : | | Internal generic functions |
| monomial : | | Internal generic functions |
| mul : | | Internal generic functions |
| mul : | | Internal generic functions |
| mul : | | Internal generic functions |
| mul : | | Internal generic functions |
| mul : | | Internal generic functions |
| mul : | | Internal generic functions |
| multideg : | | Exported generic functions |
| multideg : | | Exported generic functions |
|
N | | |
| normal-form : | | Internal functions |
|
O | | |
| operands : | | Internal generic functions |
| operands : | | Internal generic functions |
|
P | | |
| pair-member : | | Internal functions |
|
R | | |
| reduce-gb : | | Exported functions |
| reduced-groebner : | | Exported functions |
| ring : | | Internal generic functions |
| ring : | | Internal generic functions |
| ring* : | | Exported generic functions |
| ring* : | | Exported generic functions |
| ring+ : | | Exported generic functions |
| ring+ : | | Exported generic functions |
| ring- : | | Exported generic functions |
| ring- : | | Exported generic functions |
| ring-copy : | | Internal generic functions |
| ring-copy : | | Internal generic functions |
| ring-equal-p : | | Exported generic functions |
| ring-equal-p : | | Exported generic functions |
| ring-identity-p : | | Exported generic functions |
| ring-lcm : | | Exported generic functions |
| ring-lcm : | | Exported generic functions |
| ring-lcm : | | Exported generic functions |
| ring-mod : | | Internal generic functions |
| ring-mod : | | Internal generic functions |
| ring-zero-p : | | Exported generic functions |
| ring-zero-p : | | Exported generic functions |
| ring-zero-p : | | Exported generic functions |
| ring/ : | | Exported generic functions |
| ring/ : | | Exported generic functions |
|
S | | |
| s-poly : | | Exported functions |
| sub : | | Internal generic functions |
| sub : | | Internal generic functions |
| sub : | | Internal generic functions |
|
T | | |
| terms : | | Internal generic functions |
| terms : | | Internal generic functions |
| terms->list : | | Internal functions |
|
V | | |
| variables : | | Internal generic functions |
| variables : | | Internal generic functions |
| vector+ : | | Internal functions |
| vector- : | | Internal functions |
| vector-zero-p : | | Internal functions |
| vector= : | | Internal functions |
| vector> : | | Internal functions |
|
W | | |
| with-monomial-ordering : | | Exported macros |
| with-polynomial-ring : | | Exported macros |
|
A.3 Variables
| Index Entry | | Section |
|
* | | |
| *monomial-ordering* : | | Exported special variables |
| *ring* : | | Exported special variables |
|
B | | |
| base-field : | | Exported classes |
| base-ring : | | Exported classes |
| base-ring : | | Internal classes |
|
C | | |
| coefficient : | | Internal classes |
|
G | | |
| generators : | | Internal classes |
|
M | | |
| monomial : | | Internal classes |
|
O | | |
| operands : | | Internal conditions |
|
R | | |
| ring : | | Internal classes |
|
S | | |
| Slot, base-field : | | Exported classes |
| Slot, base-ring : | | Exported classes |
| Slot, base-ring : | | Internal classes |
| Slot, coefficient : | | Internal classes |
| Slot, generators : | | Internal classes |
| Slot, monomial : | | Internal classes |
| Slot, operands : | | Internal conditions |
| Slot, ring : | | Internal classes |
| Slot, terms : | | Exported classes |
| Slot, variables : | | Exported classes |
| Special Variable, *monomial-ordering* : | | Exported special variables |
| Special Variable, *ring* : | | Exported special variables |
|
T | | |
| terms : | | Exported classes |
|
V | | |
| variables : | | Exported classes |
|
A.4 Data types
| Index Entry | | Section |
|
C | | |
| cl-buchberger : | | The cl-buchberger system |
| Class, ideal : | | Internal classes |
| Class, polynomial : | | Exported classes |
| Class, polynomial-ring : | | Exported classes |
| Class, ring : | | Internal classes |
| Class, ring-element : | | Internal classes |
| Class, term : | | Internal classes |
| com.superadditive.cl-buchberger : | | The com․superadditive․cl-buchberger package |
| com.superadditive.cl-buchberger-system : | | The com․superadditive․cl-buchberger-system package |
| Condition, ring-division-by-zero : | | Internal conditions |
|
I | | |
| ideal : | | Internal classes |
|
P | | |
| Package, com.superadditive.cl-buchberger : | | The com․superadditive․cl-buchberger package |
| Package, com.superadditive.cl-buchberger-system : | | The com․superadditive․cl-buchberger-system package |
| polynomial : | | Exported classes |
| polynomial-ring : | | Exported classes |
|
R | | |
| ring : | | Internal classes |
| ring-division-by-zero : | | Internal conditions |
| ring-element : | | Internal classes |
|
S | | |
| System, cl-buchberger : | | The cl-buchberger system |
|
T | | |
| term : | | Internal classes |
|