Skip to content

A comprehensive open source computer algebra system for computations in algebra, geometry, and number theory.

License

Notifications You must be signed in to change notification settings

oscar-system/Oscar.jl

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

02111c3 · Dec 13, 2023
Feb 13, 2021
Oct 27, 2023
Nov 30, 2023
Dec 7, 2023
May 12, 2023
Sep 11, 2023
Dec 8, 2023
Dec 7, 2023
Dec 13, 2023
Nov 2, 2023
Dec 13, 2023
Jun 4, 2023
Nov 23, 2023
Oct 20, 2023
May 5, 2022
Dec 30, 2020
Apr 3, 2023
Jul 6, 2023
Jun 20, 2023
Nov 29, 2023
Nov 10, 2022
Dec 8, 2023
Oct 16, 2023

Repository files navigation

Oscar.jl

Documentation Build Status

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.6 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> Pkg.add("Oscar")
julia> using Oscar

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

Contributing to OSCAR

Please read the introduction for new developers in the OSCAR manual to learn more on how to contribute to OSCAR.

Examples of usage

julia> using Oscar
 -----    -----    -----      -      -----
|     |  |     |  |     |    | |    |     |
|     |  |        |         |   |   |     |
|     |   -----   |        |     |  |-----
|     |        |  |        |-----|  |   |
|     |  |     |  |     |  |     |  |    |
 -----    -----    -----   -     -  -     -

...combining (and extending) ANTIC, GAP, Polymake and Singular
Version 0.14.0-DEV ...
... which comes with absolutely no warranty whatsoever
Type: '?Oscar' for more information
(c) 2019-2023 by The OSCAR Development Team

julia> k, a = quadratic_field(-5)
(Imaginary quadratic field defined by x^2 + 5, sqrt(-5))

julia> zk = maximal_order(k)
Maximal order of Imaginary quadratic field defined by x^2 + 5
with basis nf_elem[1, sqrt(-5)]

julia> factorisations(zk(6))
2-element Vector{Fac{NfOrdElem}}:
 -1 * (-sqrt(-5) - 1) * (-sqrt(-5) + 1)
 -1 * -3 * 2

julia> Qx, x = polynomial_ring(QQ, [:x1,:x2])
(Multivariate polynomial ring in 2 variables over QQ, QQMPolyRingElem[x1, x2])

julia> R = grade(Qx, [1,2])[1]
Multivariate polynomial ring in 2 variables over QQ graded by
  x1 -> [1]
  x2 -> [2]

julia> f = R(x[1]^2+x[2])
x1^2 + x2

julia> degree(f)
[2]

julia> F = free_module(R, 1)
Free module of rank 1 over R

julia> s = sub(F, [f*F[1]])[1]
Submodule with 1 generator
1 -> (x1^2 + x2)*e[1]
represented as subquotient with no relations.

julia> H, mH = hom(s, quo(F, s)[1])
(hom of (s, Subquotient of
1 -> e[1]
by
1 -> (x1^2 + x2)*e[1]), Map: hom of (s, Subquotient of
1 -> e[1]
by
1 -> (x1^2 + x2)*e[1]) -> set of all homomorphisms from Submodule with 1 generator
1 -> (x1^2 + x2)*e[1]
represented as subquotient with no relations. to Subquotient of Submodule with 1 generator
1 -> e[1]
by Submodule with 1 generator
1 -> (x1^2 + x2)*e[1])

julia> mH(H[1])
Map with following data
Domain:
=======
Submodule with 1 generator
1 -> (x1^2 + x2)*e[1]
represented as subquotient with no relations.
Codomain:
=========
Subquotient of Submodule with 1 generator
1 -> e[1]
by Submodule with 1 generator
1 -> (x1^2 + x2)*e[1]

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
pm::Array<topaz::HomologyGroup<pm::Integer> >
({} 0)
({(2 1)} 0)
({} 0)

Citing OSCAR

If you have used OSCAR in the preparation of a paper please cite it as described below:

[OSCAR]
    OSCAR -- Open Source Computer Algebra Research system, Version 0.14.0-DEV, The OSCAR Team, 2023. (https://www.oscar-system.org)
[OSCAR-book]
    Wolfram Decker, Christian Eder, Claus Fieker, Max Horn, Michael Joswig, The OSCAR book, 2024.

If you are using BibTeX, you can use the following BibTeX entries:

@misc{OSCAR,
  key          = {OSCAR},
  organization = {The OSCAR Team},
  title        = {OSCAR -- Open Source Computer Algebra Research system,
                  Version 0.14.0-DEV},
  year         = {2023},
  url          = {https://www.oscar-system.org},
  }

@Book{OSCAR-book,
  editor = {Decker, Wolfram and Eder, Christian and Fieker, Claus and Horn, Max and Joswig, Michael},
  title = {The OSCAR book},
  year = {2024},
}

Funding

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