Processing Math: Done
No jsMath TeX fonts found -- using unicode fonts instead.
This may be slow and might not print well.
Use the jsMath control panel to get additional information.
jsMath Control PanelHide this Message


jsMath

Introduction

Welcome to SageMath's Ideas Page for GSoC 2025! (Last year 2024)

The Timeline for GSoC 2025.

Make sure you have gone through the information regarding application procedures, requirements and general advice. The Application Template is also available on that wiki page. Also, please subscribe to the sage-gsoc mailing list and the Sage developer list. Archives of past GSoC project ideas can be found here.

We also require you to show us that you are able to execute actual development by submitting a relevant Pull Request and/or reviewing a Pull Request of the project you are interested in applying to. The developer guide is a great comprehensive resource that can guide you through your first steps in contributing to SageMath.

Apart from the project ideas listed below, there is also a wishlist for new features in our open GitHub Issues. They might contain or inspire the perfect project idea for you that we didn't even think about! Note that projects can be one of three lengths:

Project Ideas

Here is a list of project proposals with identified mentors. Other well-motivated proposals from prospective contributors involving SageMath in a substantial way will be gladly considered, as well.

Coordinate the graded commutative algebra and exterior algebra implementations and Gröbner bases

Mentor

Travis Scrimshaw

Area

Algebra, Performance

Skills

Understanding of abstract algebra and Cython. Knowledge of Gröbner basis is strongly recommended.

Length

175 hour and 350 hour variants

Difficulty

Medium-hard

A graded commutative algebra (GCA) is an algebra where the even generators commute and the odd generators skew-commute. The implementation currently relies on singular's library plural as a quotient ring of a g-algebra. SageMath has a native implementation of the exterior algebra, but it does not interface well with the GCA implementation. The primary goal of this project would be to improve the interaction between the two implementations; likely with a native implementation of GCAs. A second goal would be to improve the implementation of SageMath's implementation of Gröbner bases for the exterior algebra, which is currently quite slow (see, e.g., #34437). For the ambitious, these computations would be extracted to an independent C++ library for many common rings (implemented using other libraries).

Add additional combinatorial (Hopf) algebras and additional bases

Mentor

Darij Grinberg, Travis Scrimshaw

Area

Algebra, Combinatorics

Skills

Foundations in algebra and combinatorics, experience reading research papers recommended.

Length

175 hours and 350 hours variants

Difficulty

Medium

There are a number of combinatorial Hopf algebras (CHAs) currently implemented in SageMath. However, there are a number of bases that are known and not yet implemented. For example, the double Schurs (as defined by Molev), and (weak) dual (canonical) Grothendiecks. There are also a number of related non-symmetric but still important polynomials that SageMath would benefit from providing. The goal of this project is to implement more of these bases and combinatorial (Hopf) algebras.

Refactor the diagram algebras/monoids and add new ones

Mentor

Darij Grinberg, Martin Rubey

Area

Algebra, Combinatorics

Skills

Foundations in algebra and combinatorics, experience reading research papers recommended.

Length

175 hours and 350 hours variants

Difficulty

Medium

The diagram algebras (i.e., subalgebras of the partition algebra) are implemented using code that has a number of redundancies that makes it hard to extend for new subalgebras. The main goal of this project is to refactor the underlying implementation in order to make it easier to implement new diagram algebras such as the Motzkin algebra. Furthermore, we will want to refactor the code so that the underlying diagram multiplication can be manipulated as a monoid. As an optional part, this would provide the cellular bases of these algebras in certain cases.

Improve (free) module implementations

Mentor

Travis Scrimshaw, Martin Rubey

Area

Linear Algebra, Performance, Refactoring

Skills

Understanding of linear algebra and object-oriented programming. Cython experience is highly recommended.

Length

175 hours

Difficulty

Medium-easy

SageMath has multiple implementations of free modules:

1. Finite dimensional coordinate representations in the "standard" basis using FreeModule that provides both a dense and sparse implementation. 2. Using CombinatorialFreeModule (CFM) as (possibly infinite dimensional) sparse vectors.

There are various benefits to each implementation. However, they are largely disjoint and would mutually benefit from having a common base classes. In particular, having a dense implementation for CFM elements for applications that require heavier use of (dense) linear algebra. The goal of this project is to refactor these classes to bring them closer together (although they will likely remain separate as they are likely not fully compatible implementations for the parents).

Create an interface to the SmallGrp database

Mentor

TBD

Area

Group Theory

Skills

Group Theory, GAP and Python experience

Length

350 hours

Difficulty

Medium-hard

Create a convenient Pythonic interface to the small groups database that wraps the SmallGrp GAP package. This will enable to create all small groups satisfying certain properties (e.g. abelian, solvable, non-nilpotent, given order) in an easy way, and to provide information about them. This project should also aim to improve the connection between the implementations of permutation, matrix and finitely presented groups in SageMath. This can also include programmable access to information about each group, like the subgroup lattice, as in GroupNames.

As an example, the interface might be SmallGroups(60, nilpotent=True, type="permutation") for an iterator that return Sage's PermutationGroup objects of all nilpotent groups of order 60, say sorted by GAP ID. For the implementation, the SmallGroups class might inherit from ​ConditionSet, and add methods for the information the SmallGrp GAP package provides such as cardinality and short summary as in SmallGroupsInformation.

Implement matrix spaces over commutative semirings

Mentor

TBD

Area

Mainly algebra, linear algebra and Sage basic data structures

Skills

At least an intermediate knowledge in Python. Knowing Cython or the Sage category framework is a big advantage

Length

350 hours

Difficulty

Medium-hard

The natural numbers with the standard addition and multiplication, and the min-plus tropical algebra over a commutative ring, are examples of well-known commutative semirings. The aim of this project is to implement matrix spaces and matrices over such semirings. They have many uses in combinatorics, optimization and other mathematical areas. The mathematical background needed is not advanced. The main difficulty will be to understand the current implementation of matrix spaces over rings, and how to add support for semirings that plays well with it. If time permits, an implementation of polynomial (semi)rings over semirings can be implemented.

Poincare normal form of Riemann matrices

Mentor

Linden Disney-Hogg

Area

Algebra, Algebraic Geometry

Skills

Knowledge of abstract algebra and Riemann surfaces desirable

Length

350 hours

Difficulty

Medium-Easy, becoming harder if desired by tackling the research questions

Riemann surfaces are key objects in many areas of maths, from mathematical physics to algebraic and arithmetic geometry, with modern usage of Sage typically focusing around computing the Riemann matrix and calculating the associated theta function. The project would involve an implementation of Poincare reduction of the Riemann matrix which allows the theta function to be factorised, following the paper of Martens (http://www.jstor.org/stable/43737152), which in turn will require some matrix methods to be implemented. There is scope for an enterprising applicant to make this into a research paper in two directions, either by analysing the improvement to complexity from computing with factorised theta functions, or by developing an algorithm to go from one reduction to a complete reduction.

Implement representations of Lie algebras and quantum groups

Mentor

TBD

Area

Algebra

Skills

Foundations in algebra and representation theory

Length

175 hours and 350 hours variants

Difficulty

Medium

Lie algebras, their associated quantum groups, and their representations are an important object with deep applications to physics. For this project, we want to construct a general framework for the representations of these algebraic objects and implement some general methods for algorithmically building certain (irreducible) representations.

Implement KLR algebras and their representations

Mentor

TBD

Area

Algebra

Skills

Foundations in algebra and representation theory

Length

175 hours and 350 hours variants

Difficulty

Medium-Hard

KLR algebras, also known as quiver Hecke algebras, categorify representations of quantum groups through their representations. The goal of this project is to implement these algebras in different bases, the modules of the KLR algebras, and their corresponding crystal structure. For a shorter variant, one can only implement the modules.

Implement a solver for the Killing equations

Mentor

TBD

Area

Analysis, PDEs

Skills

Understanding of PDEs is highly recommended

Length

350 hours

Difficulty

Hard

The Killing equations are a system of PDEs that determines the Killing vector field on a pseudo-Riemannian manifold, a vector that preserves the metric and has many other important properties. The goal of this project is to implement a program to solve the system of equations on a given manifold in some form.

Provide an implementation of q- and qt-characters

Mentor

Travis Scrimshaw

Area

Algebra, Combinatorics

Skills

Foundations in algebra and combinatorics, experience reading research papers recommended.

Length

175 hours

Difficulty

Easy-Medium

q-characters and qt-characters encode the essential information about finite dimensional affine Lie algebra representations. This project would provide an implementation of the FM algorithm and its t-deformed variation due to Nakajima, a method to compute the qt-characters of simple modules, and perform manipulations in this character ring.

Functionalities for Krylov methods over exact fields

Mentor

Xavier Caruso, Vincent Neiger

Area

Linear algebra

Skills

Foundations in algebra, linear algebra, and univariate polynomials.

Length

350 hours

Difficulty

Medium

This project aims to add functionalities for Krylov methods in exact linear algebra, notably in order to provide algorithmic solutions for the following two questions. A first task will be to split known algorithms for these problems into consistent sub-components that would be relevant by themselves for integration in SageMath.

1. Let K be a field, and let n and m be two integers with n << m. We are given an m x m matrix which brings a structure of K[x]-module to K^m, and we are given a K[x]-linear map f : K[x]n -> Km, represented by an m x n matrix over K. From this data, compute a representation of the kernel of f as a K[x]-module; and similarly for the co-kernel of f; and compute associated invariant factors. This body of problems is discussed in the book (Kailath, Linear Systems, 1980), and recent algorithms allow one to exploit fast matrix multiplication via ideas from Keller-Gehrig's characteristic polynomial algorithm (link).

2. Given a square matrix over a ring of univariate polynomials, compute its characteristic polynomial following the block-Krylov method described in Kaltofen and Villard's determinant algorithm (link).

Zariski closures of finitely generated matrix groups

Mentor

Vincent Delecroix

Area

Algebra

Skills

Group theory, Lie algebras, Number fields, familiarity with Python and GAP

Length

175 hours and 350 hours variants

Difficulty

Medium-hard

Finitely generated matrix groups over the rationals (or more generally over number fields) appear in number theory (diophantine equations, k-theory of number fields, etc.) as well as in geometry (holonomy of flat connections). An important invariant of such group is its Zariski closure: the smallest algebraic group it is contained in. The goal of this project is to write an algorithm to compute this Zariski closure using linear algebra in the Lie algebra of the ambient group.

Enhanced support and interfaces for solutions of recurrences and differential equations

Mentor

Vincent Delecroix

Area

Algebra, Combinatorics

Skills

Linear algebra, polynomial ring and power series, ODE, familiarity with Python

Length

175 hours and 350 hours variants

Difficulty

Medium-hard

gfun is a Maple library developed by B. Salvy (link). Equivalent features are available in SageMath (some of them in plain SageMath and others in the C-library flint or SageMath library ore_algebra). The goal of this project is to write an interface to these SageMath tools using the standardized names from gfun. Additionally, there we expect the developer to write a document explaining how each function call in gfun can be replaced by standard SageMath computations. In the course of the project, it is likely that the developer has to implement additional interface to the C-library flint. We also expect the developer to identify critical features that are missing in SageMath in order to propose a complete open source alternative for gfun integrated in the SageMath environment.

Lie group actions on manifolds

Mentor

Tobias Diez

Area

Differential Geometry

Skills

Knowledge of Lie groups and their actions is desirable

Length

350 hours

Difficulty

Medium

This project aims to extend SageMath’s differential geometry and group theory framework by implementing Lie groups and their actions on manifolds. Lie groups are fundamental in geometry, physics, and representation theory. The project will include:

Implement the boson-fermion correspondence and vertex operators

Mentor

Travis Scrimshaw

Area

Algebra

Skills

Understanding of formal power series; knowledge of Lie algebras desirable

Length

350 hours

Difficulty

Medium-Hard

The boson-fermion correspondence can be stated as a construction of Schur functions by using vertex operators. The goal of this project is to provide a way to construct vertex operators and give their action on different vector spaces. As a result, we would would be able to show by computer the boson-fermion correspondence. The main technical challenge is determining how far to expand a vertex operator before the action becomes 0.

Paths and cycles enumeration methods in graphs

Mentor

David Coudert

Area

Graph theory

Skills

Good knowledge of graph theory and graph algorithms

Length

175 hours and 350 hours variants

Difficulty

Medium-Hard

The objectives of this project are to:

GSoC/2025 (last edited 2025-03-12 02:07:56 by tscrim)