## Oscar.jl

Author oscar-system
Popularity
41 Stars
Updated Last
2 Years Ago
Started In
September 2019

# Oscar.jl

Welcome to the OSCAR project, a visionary new computer algebra system which combines the capabilities of four cornerstone systems: GAP, Polymake, Antic and Singular.

## Installation

OSCAR requires Julia 1.3 or newer. In principle it can be installed and used like any other Julia package; doing so will take a couple of minutes:

```julia> using Pkg
julia> using Oscar```

However, some of Oscar's components have additional requirements. For more detailed information, please consult the installation instructions on our website.

## Examples of usage

```julia> using Oscar
...
-----    -----    -----      -      -----
|     |  |     |  |     |    | |    |     |
|     |  |        |         |   |   |     |
|     |   -----   |        |     |  |-----
|     |        |  |        |-----|  |   |
|     |  |     |  |     |  |     |  |    |
-----    -----    -----   -     -  -     -

...combining (and extending) GAP, Hecke, Nemo, Polymake and Singular
Version 0.5.1-DEV ...
... which comes with absolutely no warranty whatsoever
(c) 2019-2021 by The Oscar Development Team

(Number field over Rational Field with defining polynomial x^2+5, sqrt(-5))

julia> zk = maximal_order(k)
Maximal order of Number field over Rational Field with defining polynomial x^2+5
with basis nf_elem[1, sqrt(-5)]

julia> factorisations(zk(6))
2-element Array{Fac{NfAbsOrdElem{AnticNumberField,nf_elem}},1}:
-1 * (2) * (-3)
-1 * (sqrt(-5)+1) * (sqrt(-5)-1)

julia> Qx, x = PolynomialRing(QQ, :x=>1:2)
(Multivariate Polynomial Ring in x1, x2 over Rational Field, fmpq_mpoly[x1, x2])

Multivariate Polynomial Ring in x1, x2 over Rational Field graded by
x1 -> 
x2 -> 

julia> f = R(x^2+x)
x1^2 + x2
julia> degree(f)

julia> F = FreeModule(R, 1)
Free module of rank 1 over R, graded as R^1()

julia> s = sub(F, [f*F])
Subquotient by Array of length 1
1 -> (x1^2 + x2)*e

a> mH(H)
Map with following data
Domain:
=======
s
Codomain:
=========
Subquotient of Array of length 1
1 -> (1)*e
by Array of length 1
1 -> (x1^2 + x2)*e
defined on the Singular side

julia> H, mH = hom(s, quo(F, s))
(hom of (s, Subquotient of Array of length 1
1 -> (1)*e
by Array of length 1
1 -> (x1^2 + x2)*e
defined on the Singular side

), Map from
H to Set of all homomorphisms from Subquotient by Array of length 1
1 -> (x1^2 + x2)*e
defined on the Singular side

to Subquotient of Array of length 1
1 -> (1)*e
by Array of length 1
1 -> (x1^2 + x2)*e
defined on the Singular side

defined by a julia-function with inverse
)

julia> D = decoration(H)
GrpAb: Z

julia> homogenous_component(H, D)
(H_ of dim 2, Map from
H_ of dim 2 to H defined by a julia-function with inverse
)```

Of course, the cornerstones are also available directly:

```julia> C = Polymake.polytope.cube(3);

julia> C.F_VECTOR
pm::Vector<pm::Integer>
8 12 6

julia> RP2 = Polymake.topaz.real_projective_plane();

julia> RP2.HOMOLOGY
PropertyValue wrapping pm::Array<polymake::topaz::HomologyGroup<pm::Integer>>
({} 0)
({(2 1)} 0)
({} 0)
```

## Funding

The development of this Julia package is supported by the Deutsche Forschungsgemeinschaft DFG within the Collaborative Research Center TRR 195.

### Used By Packages

No packages found.