# GAP Days Spring 2026, Porto - [Main website](https://www.gapdays.de/gapdays2026-spring/) - [GAP Slack](https://gap-system.org/slack) - [Zoom](https://fc-up-pt.zoom.us/j/94145708951) for online talks ## Table of contents [TOC] ## Afternoon stand-up / Results and accomplishments Here we summarize what we've done each day. The intended format: - Name: Summary of what was done ### Monday - [Link](https://pypi.org/project/passagemath-gap/) as shared by Matthias, to access passagemath. - [Some examples of visualisations in GAP Jupyter notebooks](https://github.com/OpenDreamKit/gap-demos/blob/master/Index.ipynb) - this is the index page, with links to further notebooks - [GitHub issue](https://github.com/gap-packages/JupyterKernel/issues/138): GAP Jupyter kernel does not work with Notebook 7 ### Tuesday - Max: - gave a talk - added `IsSingularExecutableAvailable` to `singular` package and made a new release of that - helped Pedro improve the CI setup for `numericalsgp` - explained how to set up code coverage reporting for GAP packages on GitHub to two people - [NormalizInterface](https://github.com/gap-packages/NormalizInterface): pull request merged; [enhance `configure` to detect and use system libnormaliz](https://github.com/gap-packages/NormalizInterface/pull/126); made a release - [ClassicalMaximal](https://github.com/gap-packages/ClassicalMaximals): pull request review - review and merge GAP PRs - ... - Ruth: - scrolled through about 50 manuals and found some with visualisations (still working on the last 50) - submitted an issue to ```LinearAlgebraForCAP``` complaining about the formatting in their PDF manual - had a productive discussion with Leonard on what do we mean by "easy data representation" - Pedro: - did some commints to NumericalSgps so that tests will be passed with optional packages loaded (Max is helping to setup CI on github) - figured out with Frank's help how to check if singular executable is present - did some experiments with tikz output using graphs, similar to those existing in NumericalSgps for dot - Meike: - Did some organization for teaching - Cleaned up some old pull requests - Joseph: - Tried to implement an `in` function for `GeneralizedConjugacyClasses`. The `in` I have implemented is not being called at all. - Wrote tests for the enumerator and size which was implemented last night - Editied documentation which refers to `GeneralizedConjugacyClasses` - Pete: - Spoke to Josh about his code for finding proto-essentials - Did some work on the presentation on Thursday - Josh: - Spoke to Pete about my results and algorithms relating to essential subgroups in fusion systems. - Further prep for my presentation on Thursday. - Lukas - Worked on compatibility with Oscar in one of my packages instead of just relying on polymaking - Discussed with Rafal about Carat, cryst, crystcat and future of them - Discussed with many people about visualisations - Reinis - Worked on an enumerator for `PartitionSet`. Started implementing a pickle/unpickle function in Rocq to make sure its correct before implementing it. ### Wednesday Morning - Max: - will give a talk - Ruth: - finishing the list of pkgs for visualisations - shall update the schedule - will talk to leonard about his wikipage - Lukas - Will try to get some visualisations running in a draft version - Leonard: - Had good conversations and found speedups (but won't be programming them into C) - Frank: - Helped Zacharias with his work - Will look into GAPDoc issues for next release - Kamil: - Created a bunch of issues for a bunch of packages - Will be preparing for his talk - Reinis: - Will be working on the enumerator for ```PartitionSet```. - Has implemented it in Rocq and proven it and is about to implement it into GAP. - Will be working on the formatter - Meike: - Cleaned up some PRs and working on more - Joseph: - Looking into the IN function (Max has an idea) - Working on Brauer Tables into GAP. - Vedran: - Working on calculations of Anton Betten (but the designs are missing) - Tomorrow's bridge walk! Talk to Vedran! Cut-off is the morning coffee break! - Josh: - Discussing and merging Fusion System algorithms. - Preparing for talk - Pete: - Discussing and merging Fusion System algorithms. - Will be asking for advise on when to run what code. - Pedro: - Finding (and fixing) Singular - Working on tikz for posets. - Manuel: - Had many interesting conversations - Is busy organisiting things - Looking into PRs for numerical semigroups, and keeping an eye on the visualisation progress - Dinis: - Programming on numerical semigroups - Rafal: - Gave talk and following discussions - Will be working on github bits and pieces ### Wednesday Afternoon - Max: - worked on alnuth, classicalmaximales, numericalsgps, ... package - tracked down bugs in today's GAPDoc release - helped Leonard make his first pull request for GAP - explained about categories and families - Ruth: - Created a (almost) complete list of GAP packages which have visualisations and which might want visualisations. See at the bottom of this document. - Added list of (selected) publications to Leonard's wiki page. - Joseph: - Made a tree of types - Added method to projective characters to get their character values - Action on conjugacy classes fails - Found a `IsWholeFamily` default function for `IsCollection` which may be why the `in` function always returns false - Added a `IsWholeFamily` method to `IsGeneralizedConjugacyClasses` but it did not resolve the problem - `IsWholeFamily` cant be called on the `AsList` that was made - Lukas - Worked on getting a basic initial version done which can visualise graphs in tikz with the option to extend it to DOT/graphviz potentially with what James and his student have and/or Pedro and Manuel have already done - Realised what a student of us has done in the package does not what I expect - Wilf - Worked and discussed Leonard's Wikipedia page further, and took a beautiful picture for it. - Didn't turn on the coffee machine at any awkward times. - Meike: - Finished (hopefully) teaching duties for this week - Reviewed the pull request of my student assistant and requested changes - Tought on changes in the class structure of our `SimplicialSurfaces` package due to some new class that we need - Dinis: - Programmed on numericalsemigroup - Reinis: - Started implementing an enumerator for `PartitionsSet`, turns out it is a bit more difficult to port the functional Rocq code to imperative GAP code - Complained about the GAP formatter and javascript ecosystem - Called James Mitchell and discussed a bit about some issues that need to be checked out for the Semigroups package prior to the release of a new version of GAP - Zachariae: - Wrote a new GAP function! - Leonard: - Had his picture taken. - Liased for the wiki page - Created a [PR](https://github.com/gap-system/gap/pull/6370) for GAP and wants to implement it. - Kamil: - Matthias: - GAP 4.16.0-beta1 update in https://github.com/passagemath/passagemath/pull/2376 ### Thursday - Joseph - Resolved \^ with help from Meike - Resolved \in with help from Max - Added test for all added methods - ToDo add docs for added things and use GAPDoc to update examples - Changing name of functions to remove monoid prefix - Might make a pull request for QPA CartanMatrix - Max - helped Meike to debug SimplicalSurface CI (turned out to be a GitHub-caused issue in PackageDistro) - helped Lukas to make SimplicalSurface documentation image generation reproducible (in progress) - opened PackageManager issue requesting more helpful errors - fixed several more recog bugs - improve GAP release notes script to ignore dependabot PRs - - Meike - thought about the new class that we would like to include and did some test - corrected some small mistakes in the SimplicialSurfaces package - found a mistake in the documentation of Digraphs (opened issue) - started working on an issue for Digraphs - Reinis - Fixed an issue with `EnumeratorOfPartitionsSet` with respect to ordering - Confirmed that `Semigroups` main branch works with `GAP` master branch and liased with James Mitchell about this. - Looked into boolean matrix representations of the Temperley-Lieb monoid. - Lukas - Did not work on the visualisations - Worked on the simplicialsurfaces packages trying to get the old issues and PRs resolved - Pete - Gave a talk - Combined my code with Josh to run it to find essential subgroups for some p-groups ### Friday - Lukas - Wants to work on visualisations, got message from Pedro with file which might be related - Reinis - [ ] Investigating a bug in `Semigroups` relating to hash function choice for compressed matrices. - [x] Minimal reproducer - [ ] Root cause? - [x] Adding tests for the `EnumeratorOfPartitionsSet` and making a PR. - [ ] Making some small fixes to the `EdgeConnectivity` PR in `Digraphs`. - [ ] Investigating some computational results relating to boolean matrix representations of the Temperley-Lieb monoid. - [x] Review some PRs into GAP - Joseph - Rerwiting documentation to include the changes made this week - Passed all but 4 tests which may be related to the greater semigroups bug with gap 4.15 ## Ideas, topics, plans What is everyone interested in doing or learning? List it here! We might find other people who are sharing an interest and can collaborate - Some more work on "MatrixObj" - Max - Prepare GAP 4.16.0 - Max - Wilf - Complete and publish a [Wikipedia page for Leonard](https://en.wikipedia.org/w/index.php?title=Draft:Leonard_Soicher) - Wilf - Ruth - TODO: - Take and add a photograph of Leonard - Collate some "best of" publications - **Unofficial** because it's not really in the spirit/rules of Wikipedia: - Get Leonard's general input on the draft - Ask Leonard's date (or at least year) of birth, ideally with reference - Investigate/summarise all packages which have "visualisation" capabilities - People - Ruth - Lukas - Pedro - Some starting list from Lukas talk, additions are welcome: https://github.com/schnellecom/GAPDays-presentation-spring-26/blob/main/todos.md - Package Lukas mentioned for visualising triangulated polyhedra - https://github.com/GAP-ART-RWTH/GAPic - Goals: - Something to put e.g. tables and matrices/vectors in a paper -> typeset package can do this - Automata tikz: https://tikz.dev/library-automata - Some ideas for graphs: https://www.tcs.uni-luebeck.de/downloads/mitarbeiter/tantau/2012-gd-presentation.pdf - And the manual for graph in tikz: https://tikz.dev/gd-usage-tikz - Release new version of NumericalSgps - Manuel - Pedro - Prepare the release of new version of [LocalNR](https://gap-packages.github.io/LocalNR/) - Iryna - Maryna - Olexandr - Proofreading of the [Ukrainian translation](https://ukrainian-carpentries.github.io/gap-lesson/) of the [Carpentries-style lesson on GAP](https://carpentries-incubator.github.io/gap-lesson/) - Iryna - Maryna - Olexandr - Implement [suggestions](https://hackmd.io/@JosephDayngerRuiz/Hyj63oLR-l) to [Generalized Conjugacy Classes](https://github.com/semigroups/Semigroups/pull/1175) in [Semigroups](https://github.com/semigroups/Semigroups) - Joseph - Add more enumerators for combinatorial species (`PartitionSet`, `CombinationsK` etc.), cf. [Issue #6362](https://github.com/gap-system/gap/issues/6362). - Reinis - Work on a formatter for GAP. - Reinis - Current draft: [prettier-plugin-gap](https://github.com/reiniscirpons/prettier-plugin-gap) - Needs work to make it handle comments - Uses the `javascript`/`node` ecosystem, how do you build binaries from this? - Fusion Systems. - Josh - Pete - Combine our work on finding proto-essential subgroups for a p-group - Documentation and examples for passagemath-gap (Matthias) - What should be added or changed in the README at https://pypi.org/project/passagemath-gap/? - Add passagemath-gap example notebook(s) to https://github.com/passagemath/passagemath-marimo-notebooks? Source material for that? # State of Visualisation techniques in GAP This list is based on the pkg list on gap-system.org (i.e. deposited pkgs) as on 06/05/26. I (Ruth) might have missed some but I believe it to be (almost) complete. The list of pkgs which might want visualisations (because they have pictures in their documentation or are doing some amazing ascii art) is not exhaustive. ## Packages WITH visualisation functionalities Note that for each package, I have 'extracted' which visualisation technology/output is being used: - [ ] automata (GraphViz) - [ ] corefreesub (GraphViz) - [ ] design (in XML?) - [ ] digraphs (amongst others GraphViz) - [ ] fining (dotty) - [ ] fr (GraphViz, imagemagick) - [ ] francy (JavaScript) - [ ] fwtree (xgap) - [ ] hap (GraphViz, asymptote) - [ ] intpic (viz, tikz) - [ ] JupyterViz (JavaScript) - [ ] numericalsgps (dot) - [ ] qdistrnd (own matrix MTXE format) - [ ] rcwa (bitmap file, same as ResClasses) - [ ] resclasses (bitmap, pixel matrix) - [ ] scscp (EdenTV) - [ ] semigroups (dot, tex, tikz) - [ ] sgpviz (GraphViz) - [ ] sonata (xgap or gap.app) - [ ] typeset (LaTeX, we are pushing the definition of visualisation here) - [ ] xgap (??, X Window) ## Packages which might want visualisations Many of these packages have are relying on good ASCII tables or matrices or return a graph in (V,E) notation but don't have a visualisation. In brackets I provide what the "name" of the object that would want a visualisation - [ ] AGT - [ ] browse (rubiks cube amongst others) - [ ] corelg (diagrams) - [ ] examplesforhomalg (the spectral sequence) - [ ] forms (gram matrix) - [ ] gauss (matrix) - [ ] gradedmodules (betti diagrams) - [ ] grape (graphs) - [ ] groupoids (graphs, function diagrams) - [ ] guava (histogram?) - [ ] hecke (matrix) - [ ] help (tables) - [ ] homalg (spectral sequence) - [ ] ibnp (reduction diagram) - [ ] lins (lins graph) - [ ] loops (cayley table) - [ ] patternclass (graphs, automata) - [ ] qpa (quivers/graphs) - [ ] quagroup (graphs) - [ ] sco (triangulations) - [ ] simpcomp (unclear if they have something or not....) - [ ] sla (dynkin diagrams, weight diagram) - [ ] sonata (multiplication tables) - [ ] thelma (boolean function table?) - [ ] wpe (wreath product elements) - [ ] xmod (function diagrams)