# Ideals from the Symbolic Data project#

This module implements a thin wrapper for the optional symbolic dataset of ideals as published on http://www.symbolicdata.org. From the project website:

For different purposes, algorithms and implementations are tested on certified and reliable data. The development of tools and data for such tests is usually ‘orthogonal’ to the main implementation efforts, it requires different skills and technologies and is not loved by programmers. On the other hand, in many cases, tools and data could easily be reused - with slight modifications - across similar projects. The SymbolicData Project is set out to coordinate such efforts within the Computer Algebra Community. Commonly collected certified and reliable data can also be used to compare otherwise incomparable approaches, algorithms, and implementations. Benchmark suites and Challenges for symbolic computations are not as well established as in other areas of computer science. This is probably due to the fact that there are not yet well agreed aims of such a benchmarking. Nevertheless various (often high quality) special benchmarks are scattered through the literature. During the last years, efforts toward collection of test data for symbolic computations were intensified. They focused mainly on the creation of general benchmarks for different areas of symbolic computation and the collection of such activities on different Web site. For further qualification of these efforts, it would be of great benefit to create a commonly available digital archive of these special benchmark data scattered through the literature. This would provide the community with an electronic repository of certified data that could be addressed and extended during further development.

In order to use this dataset, you need to install the optional database_symbolic_data package by the Sage command

```sage -i database_symbolic_data
```

EXAMPLES:

```sage: # optional - database_symbolic_data
sage: sd = SymbolicData(); sd
SymbolicData with 372 ideals
sage: sd.ZeroDim__example_1
Ideal (x1^2 + x2^2 - 10, x1^2 + x1*x2 + 2*x2^2 - 16) of Multivariate Polynomial Ring in x1, x2 over Rational Field
sage: sd.Katsura_3
Ideal (u0 + 2*u1 + 2*u2 + 2*u3 - 1,
u1^2 + 2*u0*u2 + 2*u1*u3 - u2,
2*u0*u1 + 2*u1*u2 + 2*u2*u3 - u1,
u0^2 + 2*u1^2 + 2*u2^2 + 2*u3^2 - u0) of Multivariate Polynomial Ring in u0, u1, u2, u3 over Rational Field
sage: sd.get_ideal('Katsura_3', GF(127), 'degrevlex')
Ideal (u0 + 2*u1 + 2*u2 + 2*u3 - 1,
u1^2 + 2*u0*u2 + 2*u1*u3 - u2,
2*u0*u1 + 2*u1*u2 + 2*u2*u3 - u1,
u0^2 + 2*u1^2 + 2*u2^2 + 2*u3^2 - u0) of Multivariate Polynomial Ring in u0, u1, u2, u3 over Finite Field of size 127
```
```>>> from sage.all import *
>>> # optional - database_symbolic_data
>>> sd = SymbolicData(); sd
SymbolicData with 372 ideals
>>> sd.ZeroDim__example_1
Ideal (x1^2 + x2^2 - 10, x1^2 + x1*x2 + 2*x2^2 - 16) of Multivariate Polynomial Ring in x1, x2 over Rational Field
>>> sd.Katsura_3
Ideal (u0 + 2*u1 + 2*u2 + 2*u3 - 1,
u1^2 + 2*u0*u2 + 2*u1*u3 - u2,
2*u0*u1 + 2*u1*u2 + 2*u2*u3 - u1,
u0^2 + 2*u1^2 + 2*u2^2 + 2*u3^2 - u0) of Multivariate Polynomial Ring in u0, u1, u2, u3 over Rational Field
>>> sd.get_ideal('Katsura_3', GF(Integer(127)), 'degrevlex')
Ideal (u0 + 2*u1 + 2*u2 + 2*u3 - 1,
u1^2 + 2*u0*u2 + 2*u1*u3 - u2,
2*u0*u1 + 2*u1*u2 + 2*u2*u3 - u1,
u0^2 + 2*u1^2 + 2*u2^2 + 2*u3^2 - u0) of Multivariate Polynomial Ring in u0, u1, u2, u3 over Finite Field of size 127
```

AUTHORS:

• Martin Albrecht (2007-02-19): initial version

class sage.databases.symbolic_data.SymbolicData[source]#

Bases: `object`

Database of ideals as distributed by The SymbolicData Project (http://symbolicdata.org).

This class needs the optional `database_symbolic_data` package to be installed.

get_ideal(name, base_ring=Rational Field, term_order='degrevlex')[source]#

Return the ideal given by ‘name’ over the base ring given by ‘base_ring’ in a polynomial ring with the term order given by ‘term_order’.

INPUT:

• `name` – name as on the symbolic data website

• `base_ring` – base ring for the polynomial ring (default: `QQ`)

• `term_order` – term order for the polynomial ring (default: `degrevlex`)

OUTPUT: ideal as given by `name` in `PolynomialRing(base_ring,vars,term_order)`

EXAMPLES:

```sage: sd = SymbolicData() # optional - database_symbolic_data
sage: sd.get_ideal('Katsura_3',GF(127),'degrevlex') # optional - database_symbolic_data
Ideal (u0 + 2*u1 + 2*u2 + 2*u3 - 1,
u1^2 + 2*u0*u2 + 2*u1*u3 - u2,
2*u0*u1 + 2*u1*u2 + 2*u2*u3 - u1,
u0^2 + 2*u1^2 + 2*u2^2 + 2*u3^2 - u0) of Multivariate Polynomial Ring in u0, u1, u2, u3 over Finite Field of size 127
```
```>>> from sage.all import *
>>> sd = SymbolicData() # optional - database_symbolic_data
>>> sd.get_ideal('Katsura_3',GF(Integer(127)),'degrevlex') # optional - database_symbolic_data
Ideal (u0 + 2*u1 + 2*u2 + 2*u3 - 1,
u1^2 + 2*u0*u2 + 2*u1*u3 - u2,
2*u0*u1 + 2*u1*u2 + 2*u2*u3 - u1,
u0^2 + 2*u1^2 + 2*u2^2 + 2*u3^2 - u0) of Multivariate Polynomial Ring in u0, u1, u2, u3 over Finite Field of size 127
```